Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Control de Seguimiento de Trayectorias Repetitivas para Un Quadcopter
Control de Seguimiento de Trayectorias Repetitivas para Un Quadcopter
Tesis o trabajo de grado presentada(o) como requisito parcial para optar al título de:
Magister en Ingeniería - Automatización Industrial
Director:
Germán Andrés Ramos Fuentes Ph.D.
Profesor Asociado Universidad Nacional de Colombia
Línea de Investigación:
Control-Robótica Móvil
Grupo de Investigación:
Electrical Drives and Machines (EM&D)
Quiero agradecer especialmente al director de esta tesis, el profesor Germán Ramos PhD,
quien confió en mis capacidades y me dio la oportunidad de continuar investigando en el
área de mi interés. Cada consejo entregado fue un valioso aporte tanto para mi crecimiento
profesional como personal. Aunque el camino no fue sencillo, gracias a su apoyo, paciencia y
conocimientos he logrado alcanzar importantes objetivos, como culminar satisfactoriamente
esta tesis.
A los profesores Jhon Jairo Ramírez PhD, director de área curricular en el año 2020, y al
profesor Leonardo Bermeo PhD, coordinador de la maestría, quienes diligentemente me ayu-
daron a resolver cada situación administrativa, sin ellos mi admisión al programa no hubiera
sido posible.
A cada persona que me apoyo en este camino, les agradezco y sepan que siempre estarán en
mi memoria y mi corazón.
Contenido
Agradecimientos VII
Resumen IX
Introducción 2
6 Conclusiones y recomendaciones 70
6.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.2 Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Bibliografía 73
Lista de símbolos
Subíndices
Subíndice Término
B Marco de referencia del drone
d Variable en tiempo discreto, variable deseada
ex Matriz del sistema de estados extendido
I Marco de referencia inercial
j Número de intento
o Matriz del sistema en lazo cerrado
x variable para el sistema en el eje X ∗
y variable para el sistema en el eje Y ∗
z variable para el sistema en el eje Z ∗
θ variable para el sistema de rotación en el eje Y ∗
ξ Matriz o variable relacionada al sistema o al estado de la perturbación total
ϕ variable para el sistema de rotación en el eje X ∗
ψ variable para el sistema de rotación en el eje Z ∗
xvi Contenido
Superíndices
Superíndice Término
* Referencia para la variable asociada
o Matriz o vector del sistema en lazo cerrado
p Variable asociada a la posición
v Variable asociada a la velocidad
x variable para el sistema en el eje X ∗
y variable para el sistema en el eje Y ∗
z variable para el sistema en el eje Z ∗
θ variable para el sistema de rotación en el eje Y ∗
ξ Variable relacionada al sistema o al estado de la perturbación total
ϕ variable para el sistema de rotación en el eje X ∗
ψ variable para el sistema de rotación en el eje Z ∗
Abreviaturas
Abreviatura Término
ADRC Control basado en rechazo activo de perturbaciónes
ESO Observador de estados extendido
ILC Control de aprendizaje iterativo
IMU Unidad de medición inercial
UAV Vehículo aéreo no tripulado.
Lista de Figuras
1-1 Generación de movimientos en un cuadricóptero . . . . . . . . . . . . . . . . 5
1-2 Control en cascada para un UAV . . . . . . . . . . . . . . . . . . . . . . . . 6
1-3 Esquema de control ILC basado en ADRC . . . . . . . . . . . . . . . . . . . 10
4-1 Errores absolutos y RMS en cada eje con el control ILC de tipo PD . . . . . 37
4-2 Resultados del desfase en la respuesta en cada uno de los ejes en simulación 39
4-3 Errores absolutos y RMS en cada eje con el control ILC de tipo P lead +D en
simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4-4 Trayectoria obtenida en diferentes intentos con el control ILC P lead +D en
simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4-5 Seguimiento de posición y velocidad en cada eje con el control ILC de tipo P
lead +D en simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4-6 Identificación con el control PID en experimentación y simulación . . . . . . 42
4-7 Filtros digitales utilizados en el algoritmo de ILC con el método de la inversa 43
4-8 Errores absolutos y RMS en cada eje con el control ILC con Inversa en simu-
lación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4-9 Trayectoria obtenida en diferentes intentos con el control ILC con Inversa en
simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4-10 Seguimiento de posición y velocidad en cada eje con el control ILC con Inversa
en simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4-11 Errores absolutos y RMS en cada eje con el control ILC con P lead +D en
experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4-12 Trayectoria obtenida en diferentes intentos con el control ILC con P lead +D
en experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4-13 Seguimiento de posición y velocidad en cada eje con el control ILC con P lead
+D en experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4-14 Errores absolutos y RMS en cada eje con el control ILC con Inversa en expe-
rimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4-15 Trayectoria obtenida en diferentes intentos con el control ILC con Inversa en
experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4-16 Seguimiento de posición y velocidad en cada eje con el control ILC con Inversa
en experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5-1 Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método P lead +D en experimentación . . . . . . . . . . . . . . . . . . . 51
5-2 Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método P lead +D en experimentación . . . . . . . . . . . . . . . 52
5-3 Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método P lead +D en experimentación . . . . . . . . . . . . . 52
5-4 Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método P lead +D y perturbación desde el intento 7 . . . . . . . . . . . 53
5-5 Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método P lead +D con perturbación desde el intento 7 . . . . . . 54
Lista de Figuras xix
5-6 Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método P lead +D con perturbación desde el intento 7 . . . . 55
5-7 Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método P lead +D con perturbación desde el intento 7 al intento 10 . . 56
5-8 Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método P lead +D con perturbación desde el intento 7 hasta el 10 57
5-9 Seguimiento en cada eje con el control ILC-PID basado en ADRC con método
P lead +D con perturbación desde el intento 7 al 10 . . . . . . . . . . . . . . 58
5-10 Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método Inversa en experimentación . . . . . . . . . . . . . . . . . . . . 59
5-11 Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método Inversa en experimentación . . . . . . . . . . . . . . . . 60
5-12 Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método Inversa en experimentación . . . . . . . . . . . . . . . 60
5-13 Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método Inversa con perturbación desde el intento 7 . . . . . . . . . . . . 61
5-14 Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método Inversa con perturbación desde el intento 7 . . . . . . . 62
5-15 Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método Inversa con perturbación desde el intento 7 . . . . . . 63
5-16 Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método Inversa con perturbación desde el intento 7 al intento 10 . . . . 64
5-17 Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método Inversa con perturbación desde el intento 7 al intento 10 65
5-18 Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método Inversa con perturbación desde el intento 7 al intento 10 66
Lista de Tablas
2-1 Ganancias de los controladores PID . . . . . . . . . . . . . . . . . . . . . . . 18
Un seguimiento autónomo de trayectorias significa que el dron debe seguir un camino pre-
programado sin la intervención de un piloto, manteniendo un buen desempeño. Este objetivo
únicamente puede conseguirse al diseñar e implementar un controlador de posición [Suwans-
rikham and Singkhamfu, 2017], el cuál a partir de la ubicación medida, lleva al dron a la
posición deseada. Para obtener un buen desempeño en el seguimiento, el dron debe tener
la capacidad de rechazar diferentes perturbaciones aleatorias que pueden llegar inespera-
damente. Adicionalmente, los modelos matemáticos que representan la dinámica de vuelo
contienen varios parámetros difíciles de identificar, sumado a algunas dinámicas, como el
modelo interno del motor [Amezquita-Brooks L., 2017] o el efecto de las corrientes de aire
causadas por vuelos cercanos a objetos en el ambiente [Albers et al., 2010], que no son mo-
deladas. Tanto las perturbaciones como la incertidumbre en el modelo puede comprometer
el desempeño de los controladores e incluso causar inestabilidad [Tian and Gao, 2009].
El control de posición más utilizado es el control clásico PID [Szafranski and Czyba, 2011]
con algunas variaciones en su estructura, como el control PI-D [Fabrice, 2018]. Aunque es
un controlador de diseño e implementación sencilla, su desempeño en aplicaciones reales no
es bueno, mostrando que no logra conseguir un seguimiento cercano a las trayectorias. Para
disminuir el error en el seguimiento se han utilizado diferentes tipos de controladores de alto
desempeño. Las investigaciones han estudiado cómo utilizar controladores que consideren
las dificultades del modelo y las perturbaciones del ambiente. Los controladores más utiliza-
dos son los predictivos [Mckinnon and Schoellig, 2019] y los adaptativos [Trong-Toan Tran,
2018], además se han explorado diferentes fusiones tanto entre ellos como con controladores
deslizantes [Pereida and Schoellig, 2018], sin embargo algunas estrategias pueden ser difíciles
de implementar debido a las no lineales.
Lista de Tablas 3
Al tener trayectorias repetitivas, el dron debe seguir el mismo camino una y otra vez con
alta precisión. Un controlador de aprendizaje iterativo (ILC) modifica la entrada al sistema
de acuerdo al error obtenido durante un vuelo, así, en cada intento, el error es corregido ite-
rativamente [M. Zhaowei and Kaidi, 2015]. Sin embargo, el algoritmo ILC es de lazo abierto
y requiere ser implementado con un control de realimentación, además, para que converja
a un error mínimo constante, las condiciones de vuelo deben repetirse en cada iteración
[Bristow et al., 2006]. En aplicaciones reales las perturbaciones aparecen repentinamente,
y pueden generar desviaciones e incluso inestabilidad. Esas perturbaciones provienen de di-
ferentes fuentes, siendo las más comunes el viento y el rebote del aire al volar cerca de objetos.
Para que los controladores de vuelo autónomo consigan un buen desempeño, deben tener
la capacidad de rechazar las perturbaciones del ambiente (perturbaciones exógenas), además
se deben considerar las incertidumbres, dinámicas no modeladas y las no linealidades del
modelo (perturbaciones endógenas). El control basado en rechazo activo de perturbaciones
(ADRC), utiliza un observador de estados extendido (ESO) [Han, 2009], el cuál tiene un
estado adicional que estima la perturbación total del sistema. Esa perturbación incluye tanto
las perturbaciones exógenas como las perturbaciones endógenas dentro de un mismo estado y
es añadida dentro de la ley de control para ser rechazada activamente [Huang and Xue, 2014].
En el primer capítulo se presenta la revisión del estado del arte, mostrando las diferentes
perspectivas tanto en el modelo del dron como del diseño de control. En el capítulo 2 se
obtiene el modelo dinámico del dron utilizando el enfoque de Newton-Euler, además es
explicado el proceso de implementación y el control PID en cascada clásico utilizado para la
comparación. El tercer capítulo muestra el diseño y la implementación del observador ESO
con la modificación de la ley de control donde se incluye la perturbación total, teniendo así
el control de realimentación basado en ADRC, además se presentan varios experimentos que
permiten evaluar el seguimiento de trayectorias, el rechazo de perturbaciones y la robustez.
El capítulo 4 muestra el diseño de dos métodos de aprendizaje ILC, el P lead +D y la Inversa,
los cuales son mostrados en simulación e implementación con el control de realimentación
clásico PID. En el capítulo 5 son implementados los dos métodos de aprendizaje ILC basados
en ADRC, adicionalmente es evaluada la capacidad de rechazo perturbaciones de los dos
controladores de realimentación cuando son complementados con el control ILC. Finalmente,
se muestra un resumen de los resultados junto con recomendaciones para trabajos futuros.
1 Control y drones en la literatura
Al diseñar el control de un dron se deben tener en cuenta diferentes aspectos, desde las
características de su hardware como los objetivos del controlador. Los drones son clasifi-
cados de acuerdo a la cantidad de brazos y motores que lo componen, además de su peso
[Hassanalian and Abdelkefi, 2017]. En este trabajo, fue utilizado el dron Crazyflie 2.1, un
micro cuadricóptero compuesto por cuatro motores con hélices rotativas y un peso de 80g
[Bitcraze, Crazyflie 2.1, 2022].
Otras aplicaciones requieren que el dron siga trayectorias repetitivas de forma autónoma y
con buen desempeño, por ejemplo en la agricultura de precisión, entretenimiento, conteo
de inventarios, entre otras [Kwon et al., 2019; Radoglou-Grammatikis et al., 2020]. Esto es
logrado al implementar un control de posición, donde además del movimiento en el eje z,
también es controlada la posición en los dos ejes restantes, x y y.
En el diseño de los dos controladores se deben considerar diferentes retos que pueden impedir
mantener un buen desempeño. Los drones son sistemas no lineales y generalmente al definir
su modelo matemático son omitidas algunas de sus dinámicas [Ye et al., 2021; Zhang et al.,
2014; Chovancová et al., 2014]. Adicionalmente, en los ambientes de vuelo pueden aparecer
diferentes perturbaciones aleatorias que pueden llevar incluso a la inestabilidad del sistema,
las cuales afectan en mayor medida a los drones de tamaños pequeños [Lei and Wang, 2020].
Al definir las ecuaciones de movimiento, diferentes dinámicas que al ser muy rápidas, pueden
despreciarse, por ejemplo la dinámica interna de los motores o el modelo de propulsión de las
hélices. Además, para diseñar los controladores suelen usarse modelos simplificados, donde
se restringen los ángulos a valores cercanos a cero, implicando que algunos controladores no
puedan operar alejados del punto de equilibrio [Amezquita-Brooks L., 2017].
En general, los movimientos del cuadricóptero son generados de acuerdo a las fuerzas de
empuje de cada hélice. Cuando las fuerzas son iguales se genera un movimiento sobre el
eje Z (Fig. 1-1d), gracias a la fuerza de empuje conocida como Thrust. Si la fuerza en los
dos motores transversales es mayor (Fig. 1-1a), un giro θ sobre el eje Y es generado, lo cual
produce un desplazamiento sobre el eje X. Al aumentar la fuerza en los dos motores laterales
(Fig. 1-1b), el giro ϕ es generado en el eje X y produciendo a su vez un desplazamiento en
el eje Y . El último movimiento, conocido como yaw, consiste en realizar un giro ψ sobre el
eje Z, este movimiento se produce al aumentar la fuerza en dos motores diagonales.
Las estrategias de control basadas en PID suelen ser utilizadas debido a su facilidad de
entendimiento y de diseño, y aunque pueden obtenerse resultados con algo de robustez, las
trayectorias no pueden ser seguidas con buen desempeño, el cuál puede verse aún más afec-
tado al tener presencia de perturbaciones. Los problemas existentes con la estrategia PID,
han llevado al desarrollo de diferentes investigaciones, donde se espera conseguir resultados
con mejor desempeño, manteniendo o aumentando la robustez del sistema.
Las estrategias basadas en Deep Learning y Lógica difusa, han sido utilizadas como com-
plementos a las estrategias PID [Efe, 2011]. Por ejemplo en el trabajo [Li et al., 2017] es
agregado un lazo externo de Depp Neural Network (DNN), de tal forma que la entrada al
sistema sea ajustada para obtener un mejor desempeño. En otros casos, estas estrategias son
utilizadas como controladores únicos, como en los trabajos [Jiang et al., 2020; Wai and Pra-
setia, 2019], o como complementos a otros controladores, como en el trabajo [Zhang, 2019]
donde es utilizado un controlador de lógica difusa junto con un controlador de tipo deslizante.
Aunque estas estrategias muestran buenos resultados en simulación [Yang et al., 2009] y
1.2 Control de drones, diferentes perspectivas 7
[Sangyam et al., 2010], son estrategias que pueden verse comprometidas en la implementa-
ción, debido a las no linealidades e incertidumbres del sistema. Los inconvenientes mencio-
nados han llevado al desarrollo de diferentes estrategias que consideran las dificultades del
modelo, las más comunes son las estrategias basadas en control adaptativo y predictivo, pero
también se han diseñado controladores no lineales como el control deslizante.
En el trabajo [Zhao et al., 2015] y [Lei et al., 2018], se analiza el desempeño de un control
adaptativo para rechazar perturbaciones, en el primero el análisis es realizado en simulación,
mientras que en el segundo en implementación, sin embargo, en ninguno de los dos artículos
es analizado el desempeño al seguir trayectorias. El trabajo [Fernández et al., 2017], realizan
la implementación de un controlador adaptativo L1 , los resultados son comparados con un
controlador PID sintonizado con la estrategia LQR, mostrando mejoras considerables, tanto
en el seguimiento de trayectorias como en el rechazo de perturbaciones.
El desempeño del control predictivo ha sido analizado tanto en simulación [Islam et al.,
2019] como en experimentación. En el trabajo [Altan and Hacıoğlu, 2020] es realizado un
análisis interesante, donde se diseña un control predictivo para un hexacóptero, y se realizan
pruebas en ambientes exteriores. También han sido comparados los controladores predictivos
de diseños no lineales (NMPC) con los diseños clásicos de control predictivo (MPC) [Kamel
et al., 2017], mostrando mejores desempeños.
Una de las estrategias más utilizadas es la de control de modo deslizante (SMC) [Antonio-
Toledo et al., 2018], pero debido a la naturaleza de su diseño, para conseguir un seguimiento
suave debe ser complementada con otras estrategias. En el trabajo [Labbadi et al., 2020] se
ve un diseño de Continuous Fractional-Order Super Twisting Sliding Mode (FO), es anali-
zado el desempeño del sistema al someterse a perturbaciones, sin embargo únicamente es
realizado en simulación.
Los buenos resultados de los controladores adaptativos, predictivos y deslizantes han mo-
tivado trabajos donde son combinadas dichas estrategias. Un controlador SMC con NMPC
se puede ver en [Bhattacharjee and Subbarao, 2020], donde en simulación es analizado su
rechazo de perturbaciones. La fusión de la estrategia de control adaptativo puede verse en
[Mofid and Mobayen, 2018]. Experimentalmente, un control adaptativo junto con un MPC,
obtuvo buenos resultados, tal como se muestra en [Pereida and Schoellig, 2018].
señal de control es ajustada hasta llegar a la convergencia [Ardakani et al., 2017]. Este con-
trolador ha sido implementado, por ejemplo, en un twin rotor [Mascaró Palliser et al., 2017],
el cual tiene una dinámica similar a la de un dron, obteniendo que al añadir un control ILC se
logra ajustar la entrada al sistema de forma tal que el seguimiento mejora considerablemente.
Es importante tener en cuenta que el control ILC es de lazo abierto, lo cual significa que en
sistemas de naturaleza inestable debe ser combinado con un control de realimentación. La
combinación puede realizarse en paralelo con el control de realimentación, donde se suma
directamente la señal generada por el ILC a la ley de control. Otra opción es añadir en serie
el control ILC, donde se modifica la señal de referencia enviada al controlador. La configu-
ración en serie es conveniente para sistemas que tengan diseñado un sistema de control de
realimentación previamente [Bristow et al., 2006].
Para los drones, la configuración en paralelo es la más usada. Pipatpaibul et al. diseñaron
en su investigación un ILC online tipo PD en paralelo [Pipatpaibul and Ouyang, 2013],
donde una de las ganancias era switcheada, sin embargo este artículo solo muestra análisis
en simulaciones. Por otro lado, Ke C. et al. usaron un ILC tipo D en paralelo, usando la
perspectiva de Descomposición del Estado Aditivo (ASD), ellos obtuvieron buenos resulta-
dos en simulación [Ke et al., 2018]. Resultados experimentales pueden verse en el trabajo
de Zhaowei M.A. et al. donde se diseño un ILC tipo P en paralelo a un control clásico de
realimentación [Zhaowei et al., 2015]. En cuanto la configuración en serie, se han diseñado
varios ILC óptimos, obteniendo un buen desempeño en seguimiento de trayectorias a pesar
de la presencia de perturbaciones durante el vuelo [Schoellig et al., 2012]. Otra estrategia
fue presentada por Jian Dong y Bin He, quienes diseñaron un ILC tipo PID difuso, el cual
fue añadido en serie a un control de realimentación por linealización [Dong and He, 2018].
Como el controlador ILC calcula la nueva referencia o la nueva señal de control basándose en
la iteración anterior, impide que pueda tener una respuesta inmediata a las perturbaciones
presentes durante el vuelo y que pueden no ser repetitivas. Esto implica que el rechazo de
las perturbaciones no repetitivas es realizado por el control por realimentación.
Diferentes estrategias para rechazar las perturbaciones han sido estudiadas al añadir diferen-
tes estimadores que las compensen en la ley de control. Nicolas Degen y Angela P. Schoellig
1.2 Control de drones, diferentes perspectivas 9
[Degen and Schoellig, 2014], diseñaron un filtro de Kalman iterativo para estimar la pertur-
bación de un sistema masa-resorte, al añadir este filtro se mostró que la convergencia del
error de seguimiento era más rápida. Han sido utilizadas otras alternativas que permiten es-
timar la perturbación, como un filtro de Kalman no lineal [Christopher D. McKinnon, 2020]
o basándose en la Estimación de Cuaterniones No descendidos [McKinnon and Schoellig,
2016]. Otra alternativa estudiada es el Control de Fuerza Activada (AFC) que al fusionarse
con el control ILC muestra mejores resultados [Abdelmaksoud et al., 2020].
Estos aspectos, desde la perspectiva del control basado en ADRC, pueden ser incluidos en
un solo término conocido como la Perturbación Total [Tian and Gao, 2009]. Este término
puede ser estimado con un Observador de estados extendido (ESO), así, la perturbación
total puede ser añadida a la ley de control para ser rechazada activamente [Gao, 2006]. La
principal ventaja de esta perspectiva es que el observador puede ser diseñado a partir de un
modelo simplificado, obteniendo un alto desempeño.
En cuadricóptero, esta perspectiva fue estudiada inicialmente por H. Sira Ramírez en el 2011
[Sira-Ramírez, 2011], desarrollando la teoría de control Proporcional Integral Generalizado
(GPI) basada en ADRC con planitud diferencial cuya estrategia está evaluada en simulación.
Diferentes controladores, tanto en orientación como en posición, han sido diseñados para los
drones. En el caso de control de orientación se destacan los trabajos [Trejo-Escamilla et al.,
2017] y [Stankovic et al., 2020], mientras que para el controlador de posición, donde se
espera que el dron siga autónomamente las trayectorias, se puede ver el trabajo [Fernández-
Caballero et al., 2015], sin embargo, en estos tres artículos únicamente se evalúa el desempeño
en simulación. Una implementación es realizada por [López-Gutiérrez et al., 2017], sin em-
bargo, la estrategia diseñada es únicamente aplicada para el control de orientación. Por lo
tanto, hasta la elaboración de este estado del arte no se encuentran trabajos que tengan
implementación de un control basado en ADRC para control de posición de drones.
10 1 Control y drones en la literatura
et al., 2015; Cortés and Ramos, 2015], se analiza la estabilidad del sistema con un controlador
repetitivo basado en ADRC, las estrategias de diseño y los resultados de la implementación
en un sistema de motores acoplados y un motor perturbado por imanes. La estrategia de
ADRC complementada con ILC ha sido implementada en aplicaciones donde se requiere un
alto desempeño en el seguimiento autónomo de trayectorias, por ejemplo en un actuador
piezoeléctrico [Huang et al., 2020], un aire acondicionado [Lu et al., 2018], motores brushless
[Ai et al., 2019], robots doble junta [Xu et al., 2020]. En las aplicaciones donde se imple-
mentaron estrategias de control ILC basados en ADRC han presentado buenos resultados.
Mientras que el control ILC, a través de las iteraciones va mejorando el desempeño en el se-
guimiento de trayectorias periódicas, los controladores basados en ADRC logran compensar
las perturbaciones no repetitivas a las que es sometido el sistema.
2 Modelo y control clásico del dron
De acuerdo a la revisión bibliográfica se puede concluir que para el caso del control de
posición, el modelo basado en las ecuaciones de Newton-Euler permite tener un sistema
que representa de forma correcta al sistema, sin embargo, por la complejidad del sistema se
suelen despreciar varias dinámicas. Adicionalmente, el control de posición más utilizado es
un controlador en cascada PID debido a la facilidad de diseño, sin embargo este controlador
no tiene un alto desempeño. En el presente capítulo serán definidos tanto el modelo básico
del dron, basado en las ecuaciones de Newton-Euler, así como el control PID en cascada
clásico implementado en la plataforma de experimentación.
La ubicación del dron consiste en determinar los vectores tanto de posición como de orienta-
ción, esto se logra al definir dos marcos de referencia: el marco inercial y el marco del dron,
tal como se puede ver en la figura 2-1. El marco inercial, X ∗ , Y ∗ , Z ∗ , es un marco fijo en el
espacio, lo que quiere decir que no se mueve ni se desplaza. Por el contrario, el marco del
dron, xB , yB , zB , coincide con el centro de gravedad del cuadricóptero, lo que significa que
se mueve y rota con el mismo.
2.1 Modelo matemático de un cuadricóptero 13
Tanto la posición r como la orientación η del dron se definen en términos del marco de
referencia inicial de la siguiente manera:
x ϕ
r=
y , η=
θ , (2-1)
z ψ
donde las componentes x, y, z, corresponden al desplazamiento en los ejes X ∗ , Y ∗ , Z ∗ respec-
tivamente. El giro ϕ se conoce como roll y corresponde a un giro en el eje X ∗ , el movimiento
de pitch, definido como θ, es un giro en el eje Y ∗ , finalmente, el ángulo ψ, conocido como
yaw, es un giro sobre el eje Z ∗ .
Por otro lado, la velocidad lineal VB y la velocidad angular ν son definidas en el marco del
dron así:
vxB p
VB =
vyB , ν=
q , (2-2)
vzB r
en este caso, las componentes vxB , vyB y vzB son las velocidades en los ejes xB , yB y zB res-
pectivamente, mientras que p, q y r son las componentes de la velocidad angular en el mismo
orden. Hay que resaltar que las velocidades VB y ν no son las derivadas de los vectores de
ubicación r y η.
Los diferentes vectores presentes en la dinámica del dron pueden definirse en cualquiera de
los marcos definidos anteriormente. Para expresar un vector definido en el marco del dron,
como la fuerza TB en la figura 2-1, en el marco inercial, es usada la matriz de rotación RIB ,
definida como:
C ψ C θ C ψ S θ Sϕ − Sψ C ϕ C ψ Sθ C ϕ + S ψ Sϕ
RIB =
S ψ C θ S ψ S θ S ϕ + C ψ C ϕ S ψ S θ C ϕ − C ψ S ϕ
,
(2-3)
−Sθ C θ Sϕ Cθ Cϕ
donde S, C y T son utilizadas como abreviaciones de las funciones sen, cos y tan respec-
tivamente. Por ejemplo, la expresión Cθ corresponde a cosθ. En el caso contrario, donde se
requiera transformar del marco inercial al marco del dron, debe usarse la inversa de la matriz
de rotación definida anteriormente, que como es ortogonal se cumple que: (RIB )−1 = (RIB )T .
Cuando se quiera transformar la velocidad angular, la matriz que transforma del marco de
referencia inercial al marco de referencia del dron es Wη , definida así:
14 2 Modelo y control clásico del dron
ϕ̇ 1 Sϕ T θ Cϕ T θ p
η̇ = W−1
η ν,
θ̇ = 0 −Sϕ (2-4)
Cϕ q ,
ψ̇ 0 Sϕ /Cθ Cϕ /Cθ r
para transformar en el sentido contrario se utiliza la inversa de la matriz Wη , así:
p 1 0 −Sθ ϕ̇
ν = Wη η̇, q = 0 Cϕ Cθ Sϕ θ̇ . (2-5)
r 0 −Sϕ Cθ Cϕ ψ̇
Para obtener las ecuaciones de Newton-Euler, son definidas las fuerzas que actúan sobre el
cuadricóptero en el marco referencial del dron. Las únicas fuerzas externas tomadas son:
h iT
la fuerza de la gravedad, G = 0 0 −g , y la fuerza de empuje total o Thrust, TB =
h iT
0 0 T , teniendo que g es el valor de la gravedad en el marco inercial mientras que T
es la fuerza de empuje que actúa en el eje zB . De esta forma, la sumatoria de fuerzas en el
marco de referencia del dron es:
Por otro lado, la orientación del dron se obtiene con una Unidad de Medición Inercial (IMU)
de seis grados de libertad (6-DOF, 3 ejes en el acelerómetro y 3 ejes en el giroscopio), además
de un sensor de presión de alta precisión [cra, 2020]. La IMU entrega los datos de la tasa de
cambio de los ángulos de Euler, los cuales son procesados en un estimador de Kalman para
obtener θ, ϕ y ψ. Los datos de la ubicación obtenidos con los sensores son utilizados en el
control de realimentación, ese algoritmo es ejecutado en el procesador STM32F405 del dron.
Al terminar el intento de vuelo, los datos son enviados a través del Crazyradio, con un ancho
de banda de 2.4 GHz, a un computador externo, donde se ejecutan los algoritmos ILC en
Matlab. Las nuevas referencias generadas con el algoritmo ILC, son enviadas nuevamente al
dron utilizando el mismo radio.
El control en cascada consiste en configurar los controladores con un lazo interno y otro
externo. En el cuadricóptero se tiene un lazo interno para controlar la orientación de los
ángulos θ, ϕ y adicionalmente, se tiene un lazo externo para controlar la posición del dron
2.3 Control PID en cascada 17
El lazo interno del sistema está compuesto por seis controladores tipo PID, tres de ellos
controlan los ángulos θ, ϕ y ψ, los tres restantes son conectados en cascada para controlar
las velocidades angulares θ̇, ϕ̇ y ψ̇. Como se puede ver en la figura 2-4, la entrada al lazo
son las referencias de los ángulos (θ∗ , ϕ∗ , ψ ∗ ), el primer controlador de tipo PID recibe los
valores calculados por el estimador de Kalman y genera las referencias para el controlador
de las velocidades angulares (θ̇∗ , ϕ̇∗ , ψ̇ ∗ ). La segunda señal de control es calculada a partir
de las mediciones directas del sensor (IMU) y genera como salidas los torques en cada uno
de los ejes.
En el lazo externo, mostrado en la figura 2-5, son generadas las referencias para el control
de orientación. También está compuesto por seis controladores PID, tres de ellos para las
velocidades lineales y los tres restantes para la posición. El lazo de control de posición recibe
las referencias deseadas x∗ , y ∗ y z ∗ , a partir de las estimaciones de la posición los primeros
tres controladores generan las referencias de velocidad lineal (ẋ∗ , ẏ ∗ , ż ∗ ). Con los valores de
la velocidad estimada, los siguientes tres controladores calculan las referencias para el lazo
interno de control.
Las ganancias de cada controlador tipo PID pueden verse en la tabla a continuación:
T
Al despejar de la componente z, el valor de m = z̈ + g, se obtienen las siguientes expresiones
para cada eje:
ẍ = θ(z̈ + g) + ψϕ(z̈ + g) (3-4)
ÿ = −ϕ(z̈ + g) + ψθ(z̈ + g) (3-5)
Los términos independientes de la entrada al sistema son tomados como la perturbación
endógena ϑ(y) a la cuál es sumada cualquier perturbación exógena δ(t). Adicionalmente,
como los valores máximos en los perfiles de aceleración son considerablemente más pequeños
que la gravedad (cercano a un orden de magnitud menor), se aproxima z̈ + g ≈ g, teniendo
como resultado que:
ẍ = gθ + ξx (3-6)
ÿ = −gϕ + ξy (3-7)
1
z̈ = T + ξz , (3-8)
m
donde ξx , ξy y ξz son las perturbaciones totales de cada sistema.
Al aplicar el operador (3-9), los estados del sistema pueden definirse como x1 (k) = x(k) y
x2 (k) = ∆x(k), siendo la posición y la velocidad del dron sobre el eje X ∗ , respectivamente,
y quedando el sistema en tiempo discreto definido como:
∆x1 (k) = x2 (k),
(3-10)
∆x2 (k) = gθ(k) + ξx (k).
De igual forma, en los ejes Y ∗ y Z ∗ , se obtienen los estados y1 (k) = y(k), y2 (k) = ∆y(k),
z1 (k) = z(k) y z2 (k) = ∆z(k), con y1 (k) y y2 (k) siendo la posición y la velocidad sobre el
eje Y ∗ y z1 (k) y z2 (k) sobre el eje Z ∗ , con lo cual los sistemas en tiempo discreto quedan:
además, también se puede aproximar la perturbación con un modelo lineal dado por:
xξ (k + 1) = Aξ xξ (k),
(3-14)
ξ(k) = Cξ xξ (k).
xex Aex B
z }| { z }| { z}|ex{
x(k + 1) A BCξ x(k) B
= + u
xξ (k + 1) 0 Aξ xξ (k) 0
(3-15)
C
zh }|ex i{
x(k)
y(k) = C 0 ,
xξ (k)
Así, con el modelo extendido mostrado en la ecuación 3-16, puede definirse un observador
de estados de la misma forma que el observador clásico de Luenberger:
x̂ex (k + 1) = Aex x̂ex (k) + Bex u(k) + Lex (y(k) − ŷ(k)) (3-17)
x̂ex (k + 1) = (Aex − Lex Cex )x̂ex (k) + Bex u(k) + Lex y(k), (3-18)
Los polos en tiempo continuo y las ganancias de los observadores obtenidas son las mostradas
a continuación en la tabla 3-1:
ŷ1 (k + 1) = ŷ1 (k) + Ts ŷ2 (k) + ℓy1 (y1 (k) − ŷ1 (k)),
Ts
ŷ2 (k + 1) = ŷ2 (k) + ϕ(k) + ξˆy (k) + ℓy2 (y1 (k) − ŷ1 (k)), (3-20)
g
ŷ3 (k + 1) = ŷ3 + ℓ3 (y1 (k) − ŷ1 (k)),
y
ẑ1 (k + 1) = ẑ1 (k) + Ts ẑ2 (k) + ℓz1 (z1 (k) − ẑ1 (k)),
ẑ2 (k + 1) = ẑ2 (k) + mTs ϕ(k) + ξˆz (k) + ℓz (z1 (k) − ẑ1 (k)),
2 (3-21)
ẑ3 (k + 1) = ẑ3 + ℓz3 (z1 (k) − ẑ1 (k)),
Las leyes de control para cada uno de los ejes quedan definidas de la siguiente forma:
X
k−1
ξˆx
θ = kpẋ kpx (x∗ − x̂1 ) − x̂2 + Ts kiẋ kpx (x∗ − x̂1 ) − x̂2 − (3-22)
i=0
g
X
k−1
ξˆy
ϕ= −kpẏ kpy (y ∗ − ŷ1 ) − ŷ2 + Ts kiẏ kpy (y ∗ − ŷ1 ) − ŷ2 + (3-23)
i=0
g
24 3 Control PID basado en ADRC
X
k−1
uz1 = kpz (z ∗ − ẑ1 ) + Ts kiz (z ∗ − ẑ1 )
i=0
(3-24)
X
k−1
T = kpż (uz1 − ẑ2 ) + Ts kiż (uz1 − ẑ2 ) − mξˆ
i=0
Para determinar que el sistema es estable, se verifica que los polos del polinomio característi-
co, en tiempo discreto, estén dentro del círculo unitario. Al reemplazar las ecuaciones (3-22),
(3-23) y (3-24) en (3-10), (3-11) y (3-12) respectivamente, se puede obtener la relación entre
las entradas y las salidas del sistema para hallar los polinomios característicos en tiempo
discreto.
Adicionalmente, para tener una relación más directa entre el sistema en tiempo continuo y
discreto se observa lo siguiente. Se define una ecuación diferencial de la siguiente forma:
dn dn−1
x(t) + α n−1 x(t) + · · · + α1 x(t) + α0 = 0, (3-25)
dtn dtn−1
con un polinomio característico que escrito en el dominio de Laplace se define así:
sn + αn−1 sn−1 + · · · + α1 s + α0 = 0, (3-26)
y cuyas raíces λi , con i = 0, 1, ..., n, cumplen que (s − λ1 )(s − λ2 ) · · · (s − λn ) = 0. Como
el operador ∆, mostrado en la ecuación (3-9), es equivalente a la aproximación de Euler,
la ecuación diferencial (3-25) puede reescribirse como una aproximación en tiempo discreto,
así:
∆n x(k) + αn−1 ∆n−1 x(k) + · · · + α1 ∆x(k) + α0 = 0. (3-27)
La dinámica de (3-26) y (3-27) es determinada por los coeficientes αi . Para verificar la esta-
bilidad del lazo cerrado, se halla el polinomio característico en el dominio de Laplace, y con
la relación entre la variable compleja discreta z y la continua s, dada por z = 1 + sTs , se
verifica que cada uno de los polos se encuentre dentro del círculo unitario.
0.1 0.8
Y[m]
Z[m]
0 0.6
-0.1 0.4
-0.2 0.2
-0.3 0
0 5 10 15 20 25 0 5 10 15 20 25
Tiempo [seg] Tiempo [seg]
Figura 3-3: Comparación entre el control PID clásico y el control PID basado en ADRC en
simulación
Como se puede ver en la figura 3-3, el desempeño de los controladores es validado en simu-
lación al enviar, en el eje Y una referencia cuadrada, mientras que en el eje Z es enviada
la rampa del despegue para luego mantenerse en hover, es decir, mantener la posición. Hay
que resaltar que con los dos controladores se obtienen resultados similares, aunque el control
basado en ADRC tiene un sobrepico más pequeño, el tiempo de respuesta es similar y con
los dos se obtiene un error de estado estacionario igual a cero.
Z[m]
Y[m]
0 0.6
0.55
-0.1
0.5
-0.2 0.45
-0.3 0.4
0 5 10 15 20 25 0 5 10 15 20 25
Tiempo [seg] Tiempo [seg]
Figura 3-4: Comparación entre el control PID clásico y el control PID basado en ADRC en
experimentación
los tiempos de respuesta de los dos controladores se mantiene similar, el error en estado
estacionario con el control ADRC es cero, mientras que con el control clásico, en mayor
medida en el eje Y , es diferente de cero. Se puede detallar también que con el control PID
clásico, el movimiento en el eje Y afecta el desempeño en el eje Z, esto quiere decir que con
este controlador no se logra desacoplar los sistemas, mostrando así que no hay rechazo de
las perturbaciones endógenas.
0.1
0.75
0.05
Y [m]
Z [m]
0.7
0 Referencia
ADRC-Int 1
ADRC-Int 2
0.65 ADRC-Int 3
-0.05 PID-Int 1
PID-Int 2
PID-Int 3
-0.1 0.6
0 5 10 15 20 0 5 10 15 20
Tiempo [seg] Tiempo [seg]
Figura 3-5: Posición del dron a lo largo del tiempo al aplicar viento durante todo el expe-
rimento, manteniendo el dron en hover en la posición (0, 0, 0,7).
En la figura 3-5 se puede ver cómo el viento afecta la posición en el eje Y ∗ y Z ∗ a lo largo
del tiempo. Al igual que en el primer experimento, el control PID tiene error en el eje Y ∗ ,
además se nota una mayor amplitud de las oscilaciones, tanto en el eje Y ∗ como en Z ∗ ,
ocasionadas por el viento. Por otro lado, el control ADRC mantiene, en promedio, en cero
la posición en el eje Y ∗ y después de un tiempo transitorio al comienzo del experimento la
amplitud de las oscilaciones son significativamente más bajas que con el control PID.
0.72 0.72
0.71 0.71
Z [m]
Z [m]
0.7 0.7
0.69 0.69
0.68 0.68
0.67 0.67
0.66 0.66
0.65 0.65
-0.025 0 0.025 0.05 0.075 0.1 0.12 -0.025 0 0.025 0.05 0.075 0.1 0.12
Y [m] Y [m]
Figura 3-6: Posición del dron en el plano X ∗ Y ∗ al aplicar viento durante todo el experi-
mento, manteniendo el dron en hover en la posición (0, 0, 0,7).
28 3 Control PID basado en ADRC
Los resultados del experimento también pueden verse en la figura 3-6, donde es muestra la
posición del dron en el plano Y ∗ Z ∗ . Para los experimentos de ADRC y PID se mantienen
el mismo tamaño de los ejes con el fin de obtener una comparación de forma más objetiva.
En el caso del PID se nota la desviación en el eje Y ∗ debido al error de estado estacionario,
mientras que en el caso del control basado en ADRC la posición se mantiene cercana al
punto 0. En esta figura también se puede ver que debido a la amplitud de las oscilaciones,
la cual es mayor con el control PID, el dron hace un mayor recorrido en ambas direcciones,
abarcando un espacio mayor.
0.75
0 Tiempo de
perturbación
-0.02
Y [m]
Z [m]
0.7
-0.04 Referencia
ADRC-Int 1
-0.06 ADRC-Int 2
0.65 ADRC-Int 3
PID-Int 1
-0.08 PID-Int 2
PID-Int 3
-0.1 0.6
0 5 10 15 20 25 0 5 10 15 20 25
Tiempo [seg] Tiempo [seg]
Figura 3-7: Posición del dron a lo largo del tiempo al aplicar viento durante 10 segundos,
manteniendo el dron en hover en la posición (0; 0; 0,7).
Los resultados del experimento se pueden ver en la figura 3-7, donde se observa el compor-
tamiento a lo largo del tiempo de la posición en cada uno de los ejes. Se puede ver que el
control ADRC mantiene la posición cercana a los valores de referencia, incluso en la entrada
y la salida de la perturbación. El control PID muestra oscilaciones de mayor amplitud a la
entrada de la perturbación, y a la salida de la misma se puede ver que cambia el valor de
su estado estacionario en el eje Y ∗ . Tanto en el eje Y ∗ como en el eje Z ∗ el viento afecta en
mayor medida al controlador PID, ese efecto de la perturbación sobre el dron puede notarse
más significativamente en el eje Y ∗ , pues la componente de la fuerza aplicada sobre el dron
es mayor en esa dirección.
3.3 Implementación del control PID basado en ADRC 29
0.71 0.71
Z [m]
Z [m]
0.7 0.7
0.69 0.69
0.68 0.68
-0.1 -0.075 -0.05 -0.025 0 0.025 -0.1 -0.075 -0.05 -0.025 0 0.025
Y [m] Y [m]
Figura 3-8: Posición del dron en el plano Y ∗ Z ∗ al aplicar viento durante 10 segundos,
manteniendo el dron en hover en la posición (0 : 0 : 0,7).
Como en el experimento anterior, en la figura 3-8 se puede ver el desplazamiento del dron en
el plano Y ∗ Z ∗ , los datos muestran el resultado del vuelo entre el segundo 10 y 20, mientras
estaba activa la perturbación. Los resultados muestran, nuevamente, que el control basado
en ADRC mantiene al dron más cerca del punto de referencia durante todo el experimento,
mientras que el control PID muestra un mayor recorrido a lo largo del plano.
Los siguientes experimentos muestran el desempeño de los controladores al seguir una tra-
yectoria preprogramada. En este caso la trayectoria consiste en una flor sobre el plano Y ∗ Z ∗
manteniendo la posición en el eje X ∗ en cero. Las trayectorias enviadas en cada dirección
son trayectorias suaves, sin embargo son diseñadas con el fin de que la velocidad sea lo sufi-
cientemente alta como para ser una dificultad para el dron.
0.1
Y [m]
Z [m]
0.8
Z [m]
0.8
0
-0.1
0.6 0.6
-0.2
-0.3 0.4 0.4
-0.4
-0.5 0.2 0.2
0 5 10 15 0 5 10 15 -0.5 -0.35 -0.2 -0.05 0.1 0.25 0.4 0.5
Tiempo [seg] Tiempo [seg] Y [m]
El seguimiento en el eje Z ∗ muestra un comportamiento bastante similar con los dos contro-
ladores, mientras que en el eje Y ∗ se ve que la amplitud en el seguimiento con el control PID
tiene un error mayor con respecto al control basado en ADRC, sin embargo esa diferencia
no es significativa al ver los resultados del seguimiento sobre el plano Y ∗ Z ∗ .
Z [m]
Z [m]
0
-0.1 0.6 0.6
-0.2 0.4
0.4
-0.3
0.2
-0.4 0.2
-0.5 0
0 5 10 15 0 5 10 15 -0.5 -0.35 -0.2 -0.05 0.1 0.25 0.4 0.5
Tiempo [seg] Tiempo [seg] Y [m]
Figura 3-10: Comparación del desempeño en el seguimiento de la trayectoria tipo flor con
perturbación a lo largo del vuelo.
Los resultados de la prueba se ven en la figura 3-10, donde se muestra que el control basado
en ADRC tiene un desempeño apreciablemente mejor. Con el control PID, el seguimiento
tanto en el eje Y ∗ como en el eje Z ∗ se ve afectado por la presencia del viento durante
el vuelo, donde se nota que la respuesta del dron se ve más alejada de la referencia. La
3.3 Implementación del control PID basado en ADRC 31
diferencia entre los dos controladores se hace más notable al graficar el seguimiento sobre
el plano Y ∗ Z ∗ , aunque el control basado en ADRC muestra cambios con respecto al segui-
miento sin perturbación, el desempeño es mayor al ser comparado con el control clásico PID.
En general, los resultados de las pruebas anteriores, muestran que la capacidad para re-
chazar perturbaciones mejora considerablemente al añadir la perturbación total en la ley
de control. Esta modificación, además permite mejorar el desempeño del controlador en la
implementación en ambientes de vuelo reales, gracias a la capacidad de rechazar también
las perturbaciones endógenas del sistema, tales como las dinámicas no modeladas y las in-
certidumbres. Y aunque en referencias dinámicas no hay una diferencia en el seguimiento, se
puede ver que al llevar al dron a un punto en hover el control clásico presenta error de es-
tado estacionario mientras que el control ADRC lo elimina, permitiendo obtener aterrizajes
y despegues de mayor precisión.
0.05
0.85
0
0.8
-0.05
Y [m]
Z [m]
-0.1 0.75
-0.15
Referencia 0.7
ADRC-Int 1
-0.2 ADRC-Int 2
ADRC-Int 3
PID-Int 1 0.65
-0.25 PID-Int 2
PID-Int 3
-0.3 0.6
0 5 10 15 20 0 5 10 15 20
Tiempo [seg] Tiempo [seg]
Figura 3-11: Posición del dron en cada eje al aumentar la masa 4 g, manteniendo hover en
la posición (0; 0; 0,7)
32 3 Control PID basado en ADRC
0.72 0.72
0.715 0.715
0.71 0.71
Z [m]
Z [m]
0.705 0.705
0.7 0.7
0.695 0.695
0.69 0.69
0.685 0.685
0.68 0.68
-0.02 -0.01 0 0.01 0.02 0.03 0.04 -0.02 -0.01 0 0.01 0.02 0.03 0.04
Y [m] Y [m]
Figura 3-12: Posición del dron en cada eje al aumentar la masa del sistema, manteniendo
hover en la posición (0; 0; 0,7)
En cuánto a los resultados obtenidos en el plano Y ∗ Z ∗ , son mostrados en la figura 3-12, donde
se puede observar que aunque el PID logra mantenerse más cerca del punto de referencia, aún
tiene error de estado estacionario, adicionalmente, al igual que con las pruebas del viento, el
recorrido del dron sobre el plano es mayor al ser comparado con el control basado en ADRC.
Las pruebas de seguimiento de trayectorias fueron realizadas con dos masas diferentes, la
primera de ellas de un valor de 4 g y la otra de 6 g, lo que significa un cambio en el pará-
metro de 14 % y 22 %, respectivamente. En los experimentos fueron utilizadas las mismas
referencias en los ejes Y ∗ y Z ∗ para generar la flor en el plano Y ∗ Z ∗ .
En la figura 3-13, se muestran los resultados del seguimiento de referencias usando la masa
más baja. El seguimiento con el control PID, tanto en el eje Y ∗ como en el eje Z ∗ se ve
3.3 Implementación del control PID basado en ADRC 33
afectado, mostrando una variación en la amplitud. Estos resultados pueden verse de forma
más clara en el plano Y ∗ Z ∗ , donde tres de los cuatro pétalos de la flor muestran un cambio
con respecto al seguimiento original. Por otro lado, el controlador basado en ADRC tiene
mayor capacidad para mantener un buen seguimiento a pesar de la variación en el parámetro
asociado a la señal de control.
0.8
Z [m]
Z [m]
0
-0.1
0.6 0.6
-0.2
-0.3
0.4 0.4
-0.4
-0.5
0.2 0.2
0 5 10 15 0 5 10 15 -0.6 -0.4 -0.2 0 0.2 0.4 0.6
Tiempo [seg] Tiempo [seg] Y [m]
Al aumentar la masa a 31 g se puede ver, en la figura 3-14, que el control PID no logra
elevarse, sino por el contrario, ese aumento en la masa lleva el sistema a la inestabilidad.
Sin embargo, el control ADRC, aunque muestra un seguimiento con un desempeño más
bajo, logra completar la trayectoria, sin mostrar oscilaciones no deseadas. De esta forma
se puede ver que al añadir los ESOs al sistema se aumenta su robustez, teniendo así la
capacidad de completar las trayectorias deseadas aún con un aumento en la incertidumbre
de los parámetros.
Z [m]
0
0.6
-0.1 0.6
-0.2 0.4
-0.3 0.4
-0.4 0.2
-0.5 0.2
0
0 5 10 15 0 5 10 15 -0.6 -0.4 -0.2 0 0.2 0.4 0.6
Tiempo [seg] Tiempo [seg] Y [m]
En general, el control diseñado mostró una mayor capacidad para rechazar perturbaciones,
tanto endógenas como exógenas. A pesar de que en el ambiente de vuelo real aparecen
perturbaciones aleatorias y que los parámetros físicos no son iguales a los tomados en simu-
lación, el controlador lograba tener un error en estado estacionario cercano a cero, contrario
al control PID, el cuál en experimentación sí tenía error de estado estacionario.
Al añadir una perturbación con algún grado de aleatoriedad al ambiente de vuelo, el control
ADRC mostró un mejor desempeño al seguir la trayectoria y una capacidad más alta para
rechazar la perturbación. Lo mismo sucedió al cambiar la masa del dron, donde con el mayor
cambio en la masa los resultados del control PID mostraron inestabilidad, mientras que el
control basado en ADRC demostraba su mayor robustez pues el dron logra completar las
trayectorias satisfactoriamente.
Sin embargo, es importante mostrar que los dos controladores probados en esta sección
tienen un retraso en su respuesta, ocasionando que el seguimiento tenga un error en fase.
Para solucionar este problema, es diseñado un control ILC para así obtener el desempeño
deseado en el seguimiento de trayectorias.
4 Control de aprendizaje iterativo-ILC
En el capítulo anterior, los resultados del seguimiento de la trayectoria tipo flor (figura 3-9),
mostraron que al añadir los ESOs no se corregía el retraso que tenía el control PID original-
mente. Por esta razón se diseñara un control ILC que permita eliminar el error de la fase y
obtener la mayor precisión posible.
El cálculo de cada nueva referencia será realizado offline, lo que quiere decir que una vez
terminado un vuelo los datos son enviados al computador para calcular la nueva referencia.
Por simplicidad en la presentación y por limitaciones en las comunicaciones solo se pueden
obtener datos de dos ejes de movimiento, los algoritmos de ILC únicamente serán diseñados
para Y ∗ y Z ∗ .
En donde se puede ver la relación entrada salida y la respuesta ante las condiciones iniciales.
Para garantizar la convergencia de ese sistema se debe asumir que las siguientes afirmaciones
son verdaderas:
tal que:
lı́m yj (k) = yd (k) (4-4)
j→∞
La ley de control ILC diseñada modifica la entrada del sistema realimentado, es decir las
referencias del dron y se busca que el sistema converja en el menor número de intentos po-
sibles. En este capítulo se diseñaran dos controladores ILC y serán probados con el control
de realimentación original en simulación y en experimentación.
Para evaluar el desempeño del control ILC se obtienen los errores RMS y absoluto de cada
iteración de la siguiente forma:
v
u
u1 X N
RM S
Ej =t ej (k) (4-5)
N k=1
siendo γ el parámetro de diseño. A esta ley de control se le conoce como ILC tipo D, pues
únicamente tiene parte derivativa.
4.1 Control ILC en configuración serie 37
Error en Y Error en Z
1 0.3
0.25
Error Abs [m]
0.1 0
0 5 10 15 20 25 30 35 40 45 50 55 60 0 5 10 15 20 25 30 35 40 45 50 55 60
Intentos [j] Intentos [j]
(a) Error en el eje Y ∗ con control ILC tipo (b) Error en el eje Z ∗ con control ILC tipo
PD PD
Figura 4-1: Errores absolutos y RMS en cada eje con el control ILC de tipo PD
La forma más tradicional del control ILC es el tipo tipo PD, que incluye también un término
proporcional del error:
rj+1 (k) = rj (k) + γp e(k + 1) + γd (e(k + 1) − e(k)), (4-8)
donde ya se tienen dos parámetros de diseño, γp y γd .
La principal ventaja de estos métodos es que por su sencillez pueden ser sintonizados heurís-
ticamente, sin necesidad de tener el modelo del sistema. Sin embargo, con una ley de control
de este tipo es difícil lograr una convergencia monotónica, pudiéndose obtener transitorios
largos y con crecimientos no deseados. Este problema en la práctica, ocasiona que sea muy
difícil distinguir la inestabilidad, además que las referencias obtenidas no son implementables
[Chen and Wen, 1999].
El control ILC de tipo PD es diseñado para los dos ejes de movimiento Y ∗ y Z ∗ , los resultados
de la simulación pueden verse en la figura 4-1. Esta figura muestra el error RMS y el error
absoluto en cada iteración. El eje Y ∗ (fig. 4-1a) muestra que este controlador no garantiza la
estabilidad monotónica para el sistema y muestra la amplitud que pueden tomar los errores
durante el transitorio, por otro lado el eje Z ∗ (fig. 4-1b), aunque es monotónicamente estable
tiene un transitorio largo.
Para lograr una mejor convergencia se propone añadir un adelanto de fase o phase lead que
elimine el delay del sistema. De esta forma la ley de control dependerá del error adelantado
en el tiempo y no del tiempo instantáneo. Añadiendo un adelanto de fase en la componente
proporcional se obtiene:
rj+1 (k) = rj (k) + γp e(k + λ) + γd (e(k + 1) − e(k)), (4-9)
38 4 Control de aprendizaje iterativo-ILC
En el cuadricóptero, tanto con el control PID como con el control basado en ADRC, se
tienen estimaciones de las velocidades, esto permite cambiar la componente derivativa de la
ley de control de la ecuación (4-9) por el error de velocidad, quedando definida una ley de
control ILC tipo P+D. Al implementar una derivada se amplifica el ruido presente en las
señales originales y esto puede llevar a una desestabilización del sistema, y como el error de
velocidad es equivalente a la derivada, el inconveniente de la amplificación del ruido puede
evitarse con este cambio. Finalmente la nueva ley de control ILC que llamaremos P lead +D
queda definida de la siguiente forma:
rj+1 (k) = rj (k) + γp epj (k + λ) + γd evj (k + 1), (4-10)
donde el error de posición es epj (k + 1) = yd (k + 1) − y(k + 1) y el error de velocidad
evj (k + 1) = ẏd (k + 1) − ẏ(k + 1). Con esta nueva ley de control es necesario definir tanto
la referencia de posición yd como la de velocidad ẏd , además se debe tener una medición o
estimación de la posición y y la velocidad ẏ del dron.
Teniendo en cuenta lo anterior, una forma de alcanzar la convergencia más rápido es aña-
diendo información del sistema en la ley de control. Por ejemplo, en el algoritmo P lead +D
se añadió el atraso que tenía el sistema. Entonces, se propone añadir la inversa del sistema
en lazo cerrado Go con el fin de conseguir una convergencia más rápida.
Teniendo Go como la función de transferencia en tiempo discreto del sistema de lazo cerrado,
el algoritmo basado en la inversa del modelo queda definido así:
rj+1 (k) = rj (k) + G−1 p
o ej (k). (4-11)
Sin embargo, al aplicar el método que incluye la inversa el ruido de la medición es amplificado,
así que es necesario incluir un filtro de la siguiente forma:
rj+1 (k) = F(rj (k) + G−1 p
o ej (k)), (4-12)
4.2 Síntesis y simulación de los algoritmos 39
Desfase en la respuesta
1.5 1
Referencia
0.8 Respuesta Z
0.6
Z [m]
1 11 12
0.5
4 6 8 10 12 14 16 18 20
Tiempo [seg]
0.5 0
Referencia
-0.2 Respuesta Y
-0.4
Y [m]
0 11 12
-0.5
4 6 8 10 12 14 16 18 20
Tiempo [seg]
Figura 4-2: Resultados del desfase en la respuesta en cada uno de los ejes en simulación
Las ganancias de las leyes de control son sintonizadas heurísticamente, teniendo en cuenta
que con la ganancia asociada a la derivada se consigue una convergencia más rápidamente
que con la ganancia proporcional. Las leyes de control para cada uno de los ejes quedan
40 4 Control de aprendizaje iterativo-ILC
0.15
0.1
0.1
0.05
0.05
0 0
5 10 15 20 25 30 5 10 15 20 25 30
Intentos [i] Intentos [i]
0.4 0.3
0.25
0.3
0.2
0.2 0.15
0.1
0.1
0.05
0 0
5 10 15 20 25 30 5 10 15 20 25 30
Intentos [i] Intentos [i]
(a) Error en el eje Y ∗ con control ILC tipo (b) Error en el eje Z ∗ con control ILC tipo
PD PD
Figura 4-3: Errores absolutos y RMS en cada eje con el control ILC de tipo P lead +D en
simulación
definidas así:
y
rj+1 (k) = rjy (k) + 0,5epy vy
j (k + 60) + 0,1ej (k + 1), (4-13)
z
rj+1 (k) = rjz (k) + epz vz
j (k + 50) + 0,1ej (k + 1). (4-14)
La dinámica del error absoluto y RMS obtenida puede verse en la figura 4-3. En los dos ejes
de movimiento se logra la convergencia en un número bajo de intentos, en el eje Y ∗ , figura
4-3a, el sistema llega a estado estacionario en el intento 6, mientras que en el eje Z ∗ , figura
4-3b, en el intento 5. La simulación es realizada a largo de un número considerablemente
alto de intentos para asegurar que la dinámica obtenida sí es la deseada.
Por otro lado, el seguimiento en cada eje en el tiempo está mostrado en la figura 4-5, donde
puede verse que el seguimiento no solo mejora para la posición (figura 4-5a) sino también
para la velocidad (figura 4-5b). Se puede notar que el seguimiento mejora progresivamente,
eliminando el retraso que tenía inicialmente el sistema y ajustando también cada uno de
los picos de la referencia. Adicionalmente, en la figura 4-5 puede verse la referencia final de
cada uno de los ejes, las cuales están adelantadas en el tiempo y con picos que compensan
el comportamiento de los intentos iniciales.
4.2 Síntesis y simulación de los algoritmos 41
Z [m]
Z [m]
1 1 1
Z [m]
Z [m]
1 1 1
Figura 4-4: Trayectoria obtenida en diferentes intentos con el control ILC P lead +D en
simulación
Int. 30
Z [m]
0.5 0.5
VY [m/s]
Y [m]
0 0
-0.5
-0.5
5 10 15 20
5 10 15 20
Tiempo [seg] Tiempo [seg
Figura 4-5: Seguimiento de posición y velocidad en cada eje con el control ILC de tipo P
lead +D en simulación
42 4 Control de aprendizaje iterativo-ILC
0.6 0.15
0.4 0.1
0.2 Identificación 0.05
Experimental
Simulación
0 0
Referencia
-0.2 -0.05
0 10 20 30 40 0 5 10 15 20 25 30
Tiempo [seg] Tiempo [seg]
Las funciones de transferencia que representan los sistemas de posición en lazo cerrado son
las siguientes:
3,826e−5 z − 3,714e−5
Gy = (4-15)
z 4 − 3,928z 3 + 5,789z 2 − 3,793z − 0,9323
1,157−4 z − 1,152−4
Gz = 4 (4-16)
z − 3,901z 3 + 5,71z 2 − 3,716z + 0,9073
Magnitud [dB]
-50 -50
-100 -100
-150 -150
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
Frec. Normalizada (×π rad/muestra) Frec. Normalizada (×π rad/muestra)
0 0
-200 -200
Fase [deg]
Fase [deg]
-400
-400
-600
-600 -800
-800 -1000
0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 1
Frec. Normalizada (×π rad/muestra) Frec. Normalizada (×π rad/muestra)
(a) Filtro digital diseñado para el algo- (b) Filtro digital diseñado para el algo-
ritmo ILC inversa en el eje Z ∗ ritmo ILC inversa en el eje Y ∗
Figura 4-7: Filtros digitales utilizados en el algoritmo de ILC con el método de la inversa
Al implementar las ley de control ILC basada en la inversa se obtienen en simulación los
resultados mostrados en la figura 4-8, donde se puede ver que en ambos ejes se tiene una
dinámica del error más rápida que con el algoritmo P lead +D. En el eje Y ∗ , como se ve en
la figura 4-8a, se tiene que el sistema llega a estado estacionario en el intento 4, mientras
que en el eje Z ∗ , en la figura 4-8b, se obtiene en el intento 3. Además, se puede notar que
en el intento 2 se obtiene una respuesta cercana a la deseada.
0.15
0.1
0.1
0.05
0.05
0 0
5 10 15 20 25 30 5 10 15 20 25 30
Intentos [j] Intentos [j]
0.3
0.3
Error Abs [m]
Error Abs [m]
0.2
0.2
0.1
0.1
0 0
5 10 15 20 25 30 5 10 15 20 25 30
Intentos [j] Intentos [j]
(a) Error en el eje Y ∗ con control ILC con (b) Error en el eje Z ∗ con control ILC con
Inversa Inversa
Figura 4-8: Errores absolutos y RMS en cada eje con el control ILC con Inversa en simu-
lación
El seguimiento mejora a lo largo de los primeros intentos, tal como se puede ver en la figura
44 4 Control de aprendizaje iterativo-ILC
Z [m]
Z [m]
1 1 1
Z [m]
Z [m]
1 1 1
Figura 4-9: Trayectoria obtenida en diferentes intentos con el control ILC con Inversa en
simulación
Int. 30
Z [m]
1 Ref. Final 0
Ref.
0.8 -0.2 Int. 1
Int. 2
0.6 -0.4 Int. 15
Int. 30
0.4 -0.6
4 6 8 10 12 14 16 18 20 4 6 8 10 12 14 16 18 20
Tiempo [seg] Tiempo [seg]
0.5
0.4
0.2
VY [m/s]
Y [m]
0 0
-0.2
-0.4
-0.5 -0.6
4 6 8 10 12 14 16 18 20 4 6 8 10 12 14 16 18 20
Tiempo [seg] Tiempo [seg]
Figura 4-10: Seguimiento de posición y velocidad en cada eje con el control ILC con Inversa
en simulación
4.3 Implementación de los algoritmos ILC con el control PID clásico 45
Finalmente, el seguimiento en el dominio del tiempo puede verse en la figura 4-10, donde se
puede notar que desde el segundo intento el error en la fase es corregido. También pueden
verse las referencias finales en la figura 4-10a, las cuales están adelantadas en el tiempo y con
correcciones en los picos que permiten obtener el seguimiento exacto deseado. En la figura
4-10b puede verse el progreso en el seguimiento en la velocidad, teniendo como resultado
también un seguimiento exacto.
0.15 0.15
0.1 0.1
0.05 0.05
0 0
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Intentos [j] Intentos [j]
0.3 0.4
Error Abs [m]
0.3
0.2
0.2
0.1
0.1
0 0
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Intentos [j] Intentos [j]
(a) Error en el eje Y ∗ con control ILC con P (b) Error en el eje Z ∗ con control ILC con P
lead +D lead +D
Figura 4-11: Errores absolutos y RMS en cada eje con el control ILC con P lead +D en
experimentación
1 1 1
Z [m]
Z [m]
0.6 0.6 0.6
1 1 1
Z [m]
Z [m]
Figura 4-12: Trayectoria obtenida en diferentes intentos con el control ILC con P lead +D
en experimentación
Los resultados del seguimiento a lo largo del experimento se ven en la figura 4-12, donde
se puede ver que desde el segundo intento hay un seguimiento más cercano, sin embargo la
mejora aumenta considerablemente a partir del tercer intento. El desempeño se mantiene en
intentos intermedios, como se puede ver en el intento 10, al igual que en el último intento.
La comparación muestra que el seguimiento obtenido después de llegar a la convergencia es
significativamente mejor que en el primer intento y que a pesar del desempeño no ideal del
control del PID clásico, el algoritmo logra aprender de los errores anteriores para alcanzar
los resultados deseados.
En el dominio del tiempo, mostrado en la figura 4-13, se ve que al igual que en la simulación,
el sistema inicia con un desfase en el seguimiento tanto en el eje Y ∗ como en el eje Z ∗ . Ese
4.3 Implementación de los algoritmos ILC con el control PID clásico 47
VZ [m/s]
1
Z [m]
0.8 0
0.6
0.4 -0.5
0.2
2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16
Tiempo [seg] Tiempo [seg]
0.5
0.5
VY [m/s]
0.25
Y [m]
0 0
-0.25 -0.5
-0.5
2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16
Tiempo [seg] Tiempo [seg]
Figura 4-13: Seguimiento de posición y velocidad en cada eje con el control ILC con P lead
+D en experimentación
atraso en el tiempo es corregido desde el segundo intento, y a partir del tercero el seguimiento
es corregido también en la amplitud de los picos. En la gráfica 4-13a puede verse también
la referencia final que fue enviada al dron con el fin de obtener un seguimiento mucho
más cercano al deseado, mostrando que está adelantada en el tiempo además del ajuste
necesario en cada uno de los picos. El seguimiento en velocidad también muestra mejoras al
ser comparadas con el intento inicial, tal como se observa en la figura 4-13b.
Al igual que en el algoritmo P lead +D, el seguimiento mejora progresivamente, sin embargo
en este caso se puede ver que el desempeño obtenido en el segundo y tercer intento es me-
jor que con el algoritmo anterior. Nuevamente se puede ver que el desempeño se mantiene
en intentos intermedios, como el intento 5 y el intento 10, hasta llegar al intento final con
buenos resultados.
48 4 Control de aprendizaje iterativo-ILC
0.15
0.1
0.1
0.05
0.05
0 0
2 4 6 8 10 12 14 2 4 6 8 10 12 14
0.3
Intentos [j] 0.4
Intentos [j]
Error Abs [m]
0 0
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Intentos [j] Intentos [j]
(a) Error en el eje Y ∗ con control ILC con (b) Error en el eje Z ∗ con control ILC con
Inversa Inversa
Figura 4-14: Errores absolutos y RMS en cada eje con el control ILC con Inversa en expe-
rimentación
1 1 1
Z [m]
Z [m]
1 1 1
Z [m]
Z [m]
Figura 4-15: Trayectoria obtenida en diferentes intentos con el control ILC con Inversa en
experimentación
VY [m/s]
1
Z [m]
0.8 0
0.6
0.4 -0.5
0.2
2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16
Tiempo [seg] Tiempo [seg]
0.5
0.5
0.25
VY [m/s]
Y [m]
0 0
-0.25 -0.5
-0.5
2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16
Tiempo [seg] Tiempo [seg]
Figura 4-16: Seguimiento de posición y velocidad en cada eje con el control ILC con Inversa
en experimentación
Con los dos algoritmos se corrige el error inicial en la fase, y los picos de la referencia son
ajustados con el fin de mejorar el seguimiento, sin embargo los experimentos fueron realizados
sin la presencia de perturbaciones.
5 Control ILC con PID basado en ADRC
En los capítulos anteriores se vio que con el control basado en ADRC el dron tenía una mayor
capacidad de rechazar perturbaciones, sin embargo no mejora el seguimiento de trayectorias.
Por otro lado, el control ILC, en cada iteración, mejora el seguimiento de las trayectorias
pero no logra mejorar el desempeño en el rechazo de perturbaciones no periódicas. En este
capítulo se integrarán las dos estrategias con el fin de mejorar el desempeño tanto en el
seguimiento de trayectorias como en el rechazo de perturbaciones. Primero se evaluará cómo
mejora el seguimiento con los algoritmos ILC implementados con el control de realimenta-
ción basado en ADRC. Luego, los dos métodos propuestos de ILC serán puestos a prueba
tanto con el control de realimentación clásico PID como con el PID basado en ADRC cuando
hay presencia de perturbaciones no repetitivas.
Se presentan dos experimentos donde se añade viento como perturbación una vez el algo-
ritmo de ILC llega a convergencia. La fuente de aire se ubica de tal forma que el dron es
perturbado, en mayor medida, sobre el eje Y ∗ . Aunque la perturbación es añadida en el mis-
mo instante de tiempo en cada iteración, hay variables no controlables en la dinámica del
viento, teniendo entonces perturbaciones aleatorias. En el primer experimento se mantiene
la perturbación desde el intento 7 hasta el intento final, con el fin de analizar si los algorit-
mos ILC mejoran el desempeño, ya que se tienen variables repetibles en la perturbación. En
el segundo experimento, el viento se añade en el intento 7 y se mantiene hasta el intento
10. En este experimento se espera ver cómo los controladores responden a la salida de la
perturbación.
Comparación método P lead D: Error en el eje Y Comparación método P lead D: Error en el eje Z
0.2 0.15
PID PID
Error RMS [m]
0 0
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.3
0.3
Error Abs [m]
0.1 0.1
0 0
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Intentos [i] Intentos [i]
(a) Error en el eje Y ∗ con control ILC-PID ba- (b) Error en el eje Z ∗ con control ILC-PID ba-
sado en ADRC con método P lead +D sado en ADRC con método P lead +D
Figura 5-1: Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método P lead +D en experimentación
En la figura 5-2 se puede ver el seguimiento de la trayectoria con el control basado en ADRC
en diferentes intentos, comparados al control de realimentación clásico PID. En los primeros
intentos se puede ver que los dos controladores tienen una respuesta similar. Además, los
dos controladores logran, después de llegar a la convergencia, seguir de forma muy cercana
la referencia deseada, manteniendo el desempeño en los intentos intermedios.
En la figura 5-3 se puede ver el seguimiento en el dominio del tiempo del controlador de
realimentación basado en ADRC. El progreso en la posición se ve en la figura 5-3a, teniendo
como resultados que desde el segundo intento es corregido significativamente el error en fase
inicial. La referencia generada por el control ILC, denominada como Ref. Final, muestra
el adelanto en fase y las diferentes modificaciones en amplitud que permiten obtener el
desempeño deseado. Finalmente, el seguimiento de la referencia de velocidad también mejora
con cada intento, tal como puede verse en la figura 5-3b, donde también se corrige tanto el
error en fase como en amplitud.
52 5 Control ILC con PID basado en ADRC
1 1 1
Z [m]
Z [m]
Z [m]
1 1 1
Z [m]
Z [m]
Figura 5-2: Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método P lead +D en experimentación
0.8 0
0.6
0.4
-0.5
0.2
2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16
Tiempo [seg] Tiempo [seg]
1
0.5
0.5
0.25
VY [m/s]
Y [m]
0 0
-0.25 -0.5
-0.5 -1
2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16
Tiempo [seg] Tiempo [seg]
Figura 5-3: Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método P lead +D en experimentación
5.1 ILC-PID basado en ADRC con método P lead +D 53
*
ILC P lead D, Rechazo perturbación desde intento 7, Error en Y
Gráfica de error Detalle gráfica error
0.2 0.04
PID
Error RMS [m]
ADRC
0.1 0.02
0.05 0.01
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.3 0.15
Error Abs [m]
0.1 0.05
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
(a) Error en el eje Y ∗ con control ILC-PID basado en ADRC con método P lead +D con pertur-
bación desde el intento 7
*
ILC P lead D, Rechazo perturbación desde intento 7, Error en Z
Gráfica de error Detalle gráfica de error
0.15 0.03
Error RMS [m]
0.1 0.02
0.05 0.01
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.08
0.3
0.06
Error Abs [m]
Error Abs [m]
0.2
0.04
0.1
0.02
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
(b) Error en el eje Z ∗ con control ILC-PID basado en ADRC con método P lead +D con pertur-
bación desde el intento 7
Figura 5-4: Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método P lead +D y perturbación desde el intento 7
54 5 Control ILC con PID basado en ADRC
1 1 1
Z [m]
1 1 1
Z [m]
-0.5 -0.3 -0.1 0.1 0.3 0.5 -0.5 -0.3 -0.1 0.1 0.3 0.5 -0.5 -0.3 -0.1 0.1 0.3 0.5
Y [m] Y [m] Y [m]
Figura 5-5: Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método P lead +D con perturbación desde el intento 7
ILC P lead D, Rechazo perturbación desde ILC P lead D, Rechazo perturbación desde
intento 7, Posición intento 7, Velocidad
1
Ref. Int. 7 PID Int. 10 Int. 13 PID Ref. Int. 7 PID Int. 10 PID Int. 13 PID
1.2 Int. 7 ADRC Int. 10 ADRC Int. 13 ADRC Int. 7 ADRC Int. 10 ADRC Int. 13 ADRC
1 0.5
Z [m]
VZ [m/s]
0.8
0
0.6
0.4
-0.5
0.2
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
0.5
0.5
0.25
VY [m/s]
Y [m]
0 0
-0.25
-0.5
-0.5
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg]
Tiempo [seg]
Figura 5-6: Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método P lead +D con perturbación desde el intento 7
seguimiento aún cercano a la trayectoria. Por otro lado, el control PID clásico muestra des-
viaciones de alta magnitud en el centro de la trayectoria, donde el viento llega con mayor
amplitud. En los intentos posteriores, se modifica las trayectorias enviadas al dron con el
fin de obtener un mejor desempeño en el seguimiento, pero debido a la aleatoriedad presen-
te en la perturbación, el control PID no logra seguir la trayectoria con el rendimiento deseado.
En la figura 5-6 se puede ver el resultado del seguimiento en cada uno de los ejes. La
subfigura 5-6a muestra que el desempeño se ve mayormente afectado en el eje Y ∗ , donde la
perturbación aplicada tiene una mayor amplitud. En general, se puede ver que los intentos
realizados con el control PID se alejan más de la trayectoria. Finalmente, en la subfigura
5-6b se puede ver que al igual que en la posición, la velocidad se ve más afectada por la
perturbación con el control clásico PID.
*
ILC P lead D, Rechazo perturbación entre intento 7 y 10, Error en Y
Gráfica de error Detalle gráfica error
0.2 0.04
PID
0.1 0.02
0.05 0.01
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.3 0.15
0.2 0.1
0.1 0.05
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
(a) Error en el eje Y ∗ con control ILC-PID basado en ADRC con método P lead +D con pertur-
bación desde el intento 7 al intento 10
ILC P lead D, Rechazo perturbación entre intento 7 y 10, Error en Z *
Gráfica de error Detalle gráfica error
0.15 0.02
PID
Error RMS [m]
Error RMS [m]
ADRC
0.1 0.015
0.05 0.01
0 0.005
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.3 0.06
Error Abs [m]
Error Abs [m]
0.05
0.2
0.04
0.1 0.03
0.02
0 4 6 8 10 12 14
2 4 6 8 10 12 14
Intentos [i]
Intentos [i]
(b) Error en el eje Z ∗ con control ILC-PID basado en ADRC con método P lead +D con pertur-
bación desde el intento 7 al intento 10
Figura 5-7: Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método P lead +D con perturbación desde el intento 7 al intento 10
La dinámica del error obtenida tanto con el controlador de realimentación PID como con
el controlador basado en ADRC puede verse en la figura 5-7. Los resultados muestran que
el error RMS y el error absoluto aumentan considerablemente tanto a la entrada como a la
5.1 ILC-PID basado en ADRC con método P lead +D 57
salida de la perturbación. Los picos causados por la perturbación tienen una amplitud mayor
con el control de realimentación PID, lo cuál muestra, nuevamente, que el control basado en
ADRC permite tener un mejor rechazo de perturbaciones.
1 1 1
Z [m]
Z [m]
Z [m]
0.6 0.6 0.6
1 1 1
Z [m]
Z [m]
Z [m]
Figura 5-8: Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método P lead +D con perturbación desde el intento 7 hasta el 10
Los resultados del seguimiento tanto de posición como velocidad en cada eje de movimiento
se puede ver en la figura 5-9. Tanto en la entrada como en la salida de la perturbación
58 5 Control ILC con PID basado en ADRC
1 1
0.8 0.8
Z [m]
Z [m]
0.6 0.6
0.4 0.4
0.2 0.2
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
0.5 Referencia Int. 7 PID
0.5 Referencia Int. 11 PID
Int. 8 PID Int. 10 PID Int. 12 PID Int. 15 PID
0.25 Int. 7 ADRC Int. 8 ADRC 0.25 Int. 11 ADRC Int. 12 ADRC
Int. 10 ADRC Int. 15 ADRC
Y [m]
Y [m]
0 0
-0.25 -0.25
-0.5 -0.5
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
VZ [m/s]
0 0
-0.5 -0.5
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
Referencia Int. 7 PID Int. 8 PID Referencia Int. 11 PID Int. 12 PID
1 Int. 10 PID Int. 7 ADRC Int. 8 ADRC 1 Int. 15 PID Int. 11 ADRC Int. 12 ADRC
Int. 10 ADRC Int. 15 ADRC
VY [m/s]
VY [m/s]
0.5 0.5
0 0
-0.5 -0.5
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
Figura 5-9: Seguimiento en cada eje con el control ILC-PID basado en ADRC con método
P lead +D con perturbación desde el intento 7 al 10
5.2 ILC-PID basado en ADRC con método de la Inversa 59
Comparación método Inversa: Error en el eje Y Comparación método Inversa: Error en el eje Z
0.2 0.15
PID PID
Error RMS [m]
Error RMS [m]
ADRC ADRC
0.15
0.1
0.1
0.05
0.05
0 0
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.3 0.3
Error Abs [m]
0.2 0.2
0.1 0.1
0 0
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Intentos [i] Intentos [i]
(a) Error en el eje Y ∗ con control ILC-PID ba- (b) Error en el eje Z ∗ con control ILC-PID ba-
sado en ADRC con método Inversa sado en ADRC con método Inversa
Figura 5-10: Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método Inversa en experimentación
En el plano Y ∗ Z ∗ , tal como se ve en la figura 5-11, con los dos controladores de realimenta-
ción, el dron alcanza un buen desempeño desde el segundo intento. A partir del tercer intento
y hasta llegar al final del experimento, el dron sigue de forma muy cercana la trayectoria
deseada, manteniendo un buen desempeño, así como se ve en los intentos 10 y 15.
El seguimiento de las trayectorias en cada una de los ejes puede verse en la figura 5-12. Los
resultados muestran cómo desde el segundo intento es corregido el error de fase inicial, y có-
mo se mantiene el desempeño en los intentos siguientes. El error de seguimiento es corregido
tanto en la posición (figura 5-12a) como en la velocidad (figura 5-12b).
60 5 Control ILC con PID basado en ADRC
1 1 1
Z [m]
Z [m]
Z [m]
1 1 1
Z [m]
Z [m]
Z [m]
Figura 5-11: Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método Inversa en experimentación
0.8 0
0.6
0.4
-0.5
0.2
0 2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16
Tiempo [seg] Tiempo [seg]
0.5 0.5
0.25
Vy [m/s]
Y [m]
0 0
-0.25
-0.5
-0.5
2 4 6 8 10 12 14 16 2 4 6 8 10 12 14 16
Tiempo [seg] Tiempo [seg]
Figura 5-12: Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método Inversa en experimentación
5.2 ILC-PID basado en ADRC con método de la Inversa 61
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.3 0.1
Error Abs [m]
0.2
0.05
0.1
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
(a) Error en el eje Y ∗ con control ILC-PID basado en ADRC con método Inversa con pertur-
bación desde el intento 7
ILC Inversa, Rechazo perturbación desde intento 7, Error en Z*
Gráfica error Gráfica error
0.15 0.02
Error RMS [m/s]
PID
Error RMS [m/s]
ADRC
0.1 0.015
0.05 0.01
0.005
0 4 6 8 10 12 14
2 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.06
0.3
Error Abs [m/s]
Error Abs [m/s]
0.2
0.04
0.1
0.02
0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
(b) Error en el eje Z ∗ con control ILC-PID basado en ADRC con método Inversa con pertur-
bación desde el intento 7
Figura 5-13: Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método Inversa con perturbación desde el intento 7
62 5 Control ILC con PID basado en ADRC
La dinámica del error obtenida se muestra en la figura 5-13. Las gráficas muestran que al
entrar el viento el error aumenta, en mayor medida, con el controlador PID. Al comparar con
los resultados obtenidos con el método P lead +D, se puede ver que con la Inversa se obtiene
en este caso una respuesta más lenta, e incluso en el eje Z ∗ , como se ve en la figura 5-13b,
con el control PID no se logra corregir el error en el seguimiento. En el caso del control
de realimentación basado en ADRC, se puede ver que no es afectado significativamente el
desempeño del controlador, además, el algoritmo ILC con el método de la Inversa, en el eje
Z ∗ , si logra ajustar las trayectorias para disminuir la amplitud del error.
1 1 1
Z [m]
Z [m]
Z [m]
1 1 1
Z [m]
Z [m]
Figura 5-14: Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método Inversa con perturbación desde el intento 7
En el seguimiento de cada uno de los ejes, como se ve en la figura 5-15, el viento afecta
en mayor medida el seguimiento en el eje Y ∗ . Tanto el seguimiento en la posición (figura
5.2 ILC-PID basado en ADRC con método de la Inversa 63
ILC Inversa, Rechazo perturbación desde ILC Inversa, Rechazo perturbación desde
intento 7, Posición intento 7, Velocidad
Ref. Int. 7 PID Int. 10 PID Int. 13 PID 1
Ref. Int. 7 PID Int. 10 PID Int. 13 PID
1.2 Int. 7 ADRC Int. 10 ADRC Int. 13 ADRC Int. 7 ADRC Int. 10 ADRC Int. 13 ADRC
1 0.5
VZ [m/s]
Z [m]
0.8
0
0.6
0.4
-0.5
0.2
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
0.5
0.5
0.25
VY [m/s]
Y [m]
0 0
-0.25
-0.5
-0.5
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
Figura 5-15: Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método Inversa con perturbación desde el intento 7
La dinámica del error, mostrada en la figura 5-16, se ve que con el control de realimentación
clásico PID, en el intento 7 el error aumenta considerablemente, mientras que con el control
basado en ADRC se mantiene cercano a los intentos previos. En los siguientes intentos, el
algoritmo ILC logra ajustar la referencia de tal forma que el error con el control PID dismi-
nuye, pero aún sin lograr el desempeño inicial. El efecto de la salida de la perturbación es más
notorio en el eje Y ∗ (figura 5-16a) con el control PID, donde se puede ver que la amplitud
del error es incluso mayor que en la entrada del viento. En el intento 13 el error empieza
a disminuir gracias al efecto del algoritmo de ILC pero no logra llegar al desempeño esperado.
64 5 Control ILC con PID basado en ADRC
0.15 PID
0.02
0.1
0.01
0.05
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.3 0.1
0.2
0.05
0.1
0 0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
(a) Error en el eje Y ∗ con control ILC-PID basado en ADRC con método Inversa con perturbación
desde el intento 7 al intento 10
ILC Inversa, Rechazo perturbación entre intento 7 y 10, Error en Z *
Gráfica de error Detalle gráfica error
0.15 0.02
ADRC
PID
Error RMS [m]
0.1 0.015
0.05 0.01
0.005
0
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
0.3 0.05
Error Abs [m]
0.04
0.2
0.03
0.1
0.02
0 0.01
2 4 6 8 10 12 14 4 6 8 10 12 14
Intentos [i] Intentos [i]
(b) Error en el eje Z ∗ con control ILC-PID basado en ADRC con método Inversa con perturbación
desde el intento 7 al intento 10
Figura 5-16: Errores absolutos y RMS en cada eje con el control ILC-PID basado en ADRC
con método Inversa con perturbación desde el intento 7 al intento 10
Por otro lado, en el caso del eje Z ∗ (figura 5-16b), la salida de la perturbación, con el control
de realimentación PID clásico, no afecta al desempeño pero el algoritmo tampoco logra llevar
5.2 ILC-PID basado en ADRC con método de la Inversa 65
1 1 1
Z [m]
Z [m]
Z [m]
0.6 0.6 0.6
1 1 1
Z [m]
Z [m]
Z [m]
Figura 5-17: Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método Inversa con perturbación desde el intento 7 al intento 10
El efecto de la entrada y la salida de la perturbación en cada uno de los ejes puede verse
en la figura 5-18. La gráfica muestra que el efecto es más notorio en el eje Y ∗ , y que hay
una mayor desviación de la referencia a la salida de la perturbación con el control PID, tal
como se ve en el intento 11 y 12, tanto en posición (figura 5-18a) como en velocidad (figura
5-18b). En el caso del control ADRC, se puede ver que en la entrada y en la salida del
viento, el efecto es mínimo, manteniendo un seguimiento cercano a la referencia.
66 5 Control ILC con PID basado en ADRC
1 1
0.8 0.8
Z [m]
Z [m]
0.6 0.6
0.4 0.4
0.2 0.2
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
0.5 Referencia Int. 7 PID
0.5 Referencia Int. 11 PID
Int. 7 ADRC Int. 8 PID Int. 11 ADRC Int. 12 PID
0.25 Int. 8 ADRC Int. 10 PID 0.25 Int. 12 ADRC Int. 15 PID
Int. 10 ADRC Int. 15 ADRC
Y [m]
0 Y [m] 0
-0.25 -0.25
-0.5 -0.5
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
Vz [m/s]
0 0
-0.5 -0.5
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
1 Referencia Int. 7 ADRC Int. 8 ADRC
1 Referencia Int. 11 ADRC Int. 12 ADRC
Int. 10 ADRC Int. 7 PID Int. 8 PID Int. 15 ADRC Int. 11 PID Int. 12 PID
Int. 10 PID Int. 15 PID
0.5 0.5
Vy [m/s]
Vy [m/s]
0 0
-0.5 -0.5
2 4 6 8 10 12 14 2 4 6 8 10 12 14
Tiempo [seg] Tiempo [seg]
Figura 5-18: Seguimiento de posición y velocidad en cada eje con el control ILC-PID basado
en ADRC con método Inversa con perturbación desde el intento 7 al intento
10
5.3 Conclusiones de la experimentación 67
Tabla 5-1: Convergencia de los algoritmos ILC con cada controlador de realimentación
PID-Plead+D PID-Inv ADRC-Plead+D ADRC-Inv
Conv. en Y 4 3 4 3
Conv. en Z 4 2 4 2
Conv.Y (en. per.) 2 5 3 2
Conv.Z (en. per.) 3 no corr. 2 5
Conv.Y (sal. per) 3 4 - -
Conv. Z (sal. per.) 3 - - -
La convergencia de los algoritmos con cada uno de los controladores de realimentación pue-
de verse en la tabla 5-1. Los primero s datos, Conv. Y y Conv. Z indican el número de
intentos que se tardan los algoritmos, sin perturbación, en alcanzar la convergencia en cada
eje. Los datos de Conv.Y (en. per.) y Conv.Z (en. per.) muestran los intentos que requirió
cada algoritmo para converger a la entrada de la perturbación en cada eje, el indicador no
corr. es utilizado cuando el algoritmo no logra corregir significativamente el error causado
por el viento. Finalmente, en los datos de Conv.Y (sal. per) y Conv. Z (sal. per.) se ve,
para cada eje, el número de intentos requeridos para que los algoritmos converjan después
de que se retira la perturbación, los indicadores − son utilizados para mostrar los casos en
que el error no aumentó considerablemente al retirar la perturbación y por consiguiente el
algoritmo ILC no modificó la trayectoria significativamente.
Tanto con el control de realimentación clásico PID como con el control basado en ADRC,
el experimento sin perturbación muestra que con los algoritmos ILC los dos sistemas lle-
gan a convergencia en el mismo número de intentos, lo que quiere decir que ninguno de
los controladores corrige el error de seguimiento y que la convergencia es independiente de
los controladores de realimentación. El algoritmo de la inversa es más rápido, consiguiendo
converger en el eje Y ∗ en el intento 3 y en el eje Z ∗ en el intento 2. A la entrada de la
perturbación, se tiene que el algoritmo P lead +D, en general, tiene una mejor respuesta,
comparado al algoritmo de la Inversa. En el eje Z ∗ el algoritmo de la Inversa con el control
68 5 Control ILC con PID basado en ADRC
Tabla 5-2: Errores de los algoritmos ILC con cada controlador de realimentación
PID-Plead+D PID-Inv ADRC-Plead+D ADRC-Inv
erms (y)[m] 0.008
eabs (y)[m] 0.02
erms (z)[m] 0.006
eabs (z)[m] 0.02
erms
en.per (y)[m] 0.038 0.022 0.01 0.009
eabs
en.per (y)[m] 0.125 0.09 0.04 0.025
erms
en.per (z)[m] 0.025 0.018 0.01 0.007
eabs
en.per (z)[m] 0.08 0.05 0.03 0.027
min(erms
en.per )(y)[m] 0.015 0.011 0.008 0.007
min(eabs
en.per )(y)[m] 0.04 0.04 0.025 0.02
min(erms
en.per )(z)[m] 0.008 0.011 0.005 0.006
min(eabs
en.per )(z)[m] 0.03 0.03 0.018 0.002
erms
sal.per (y)[m] 0.038 0.025 0.01 0.01
eabs
sal.per (y)[m] 0.14 0.08 0.025 0.025
erms
sal.per (z)[m] 0.015 0.0065 0.0051 0.0065
eabs
sal.per (z)[m] 0.05 0.025 0.021 0.015
En la tabla 5-2 se pueden ver los errores absolutos y RMS obtenidos en el intento donde
entra la perturbación en cada uno de los ejes (erms abs rms abs
en.per (y), een.per (y), een.per (z), een.per (z)), los
errores mínimos alcanzados al mantener la perturbación (min(erms abs
en.per )(y), min(een.per )(y),
min(erms abs
en.per )(z), min(een.per )(z)) y los errores obtenidos en el intento inmediatamente des-
pués de la salida de la perturbación (erms abs rms abs
sal.per (y), esal.per (y), esal.per (z), esal.per (z)). Los cuatro
primeros datos, erms (y), eabs (y), erms (z) y eabs (z) muestran tanto el error RMS como el error
absoluto en cada eje alcanzados en el último intento de la prueba sin perturbación.
5.3 Conclusiones de la experimentación 69
Cuando entra la perturbación, se puede ver que los errores con el control de realimentación
PID clásico aumentan considerablemente. Por ejemplo, con el algoritmo P lead +D, el error
RMS en el eje Y ∗ alcanza un valor de 3.8 cm, mientras que con el control de realimentación
basado en ADRC es de solo 1 cm, manteniéndose cercano al valor sin perturbación de 0.8
cm. Como la perturbación tiene componentes repetitivas, los algoritmos ILC pueden mejorar
los errores iniciales obtenidos con la perturbación. Por ejemplo, con el algoritmo P lead +D
el error RMS en el eje Y ∗ , es reducido a 1.5 cm, es decir que corrige aproximadamente el
40 % del efecto de la perturbación, sin embargo, por las componentes no repetitivas, no se
alcanza el valor sin perturbación. Finalmente, a la salida de la perturbación, se puede ver
que se obtienen errores cercanos a los errores obtenidos a la entrada de la perturbación, en
el caso del algoritmo P lead +D, el error RMS en el eje Y ∗ , se tiene el mismo valor de 3.8 cm.
En el caso del control de realimentación basado en ADRC, se puede ver que con los dos
algoritmos ILC, los errores se mantienen cercanos a los errores obtenidos sin perturbación,
mostrando así un desempeño significativamente mayor en el rechazo de perturbaciones que
el control clásico PID.
En general, los resultados de los experimentos permiten concluir que los dos algoritmos ILC
modifican la trayectoria enviada al dron para obtener un mejor desempeño. Sin embargo,
para que esa modificaciones de las referencias permitan corregir el error causado por las
perturbaciones, estas deben ser repetitivas. Al complementar los algoritmos ILC con un
controlador de realimentación basado en ADRC se puede observar que el rechazo de pertur-
baciones mejora significativamente, a pesar de tener componentes no repetitivas. Gracias a
eso se tiene como resultado que los algoritmos ILC no deben modificar la trayectoria con-
siderablemente ni a la entrada de perturbaciones como tampoco a la salida. En general,
con un control de seguimiento ILC basado en ADRC se logra tanto corregir los errores en
el seguimiento que tiene un control tradicional, como aumentar capacidad de rechazo de
perturbaciones.
6 Conclusiones y recomendaciones
6.1. Conclusiones
Las aplicaciones actuales de vuelo autónomo de drones requieren controladores de alto de-
sempeño que permitan seguir autónomamente las trayectorias con alta precisión. En los
ambientes de vuelo pueden aparecer diferentes tipos de perturbaciones aleatorias generadas
por diversas fuentes. Adicionalmente, el modelo matemático que lo representa es complejo y
contiene diferentes parámetros difíciles de determinar numéricamente, además varias diná-
micas son despreciadas. Los controladores más utilizados para realizar control de posición
de drones son los PIDs y algunas variaciones como los PID en cascada, sin embargo estos
controladores no garantizan un alto desempeño.
En general, el diseño propuesto permite que el dron siga trayectorias repetitivas con un
desempeño sustancialmente mayor que con el control clásico PID. Gracias al observador de
estados extendido se logran rechazar tanto las perturbaciones que puedan aparecer en el
ambiente de vuelo como las incertidumbres asociadas al modelo matemático. Por otro lado,
el error de fase y amplitud en el seguimiento de la trayectoria es notablemente corregido con
los algoritmos ILC, y de forma más rápida con el algoritmo de la Inversa, teniendo como
resultado final un seguimiento cercano a la trayectoria deseada a pesar de la aleatoriedad
presente en la perturbación aplicada.
6.2. Recomendaciones
Los resultados mostrados en esta investigación muestran como el seguimiento de trayectorias
repetitivas mejoró significativamente en los ejes Y ∗ y Z ∗ . El diseño y la implementación del
control de realimentación basado en ADRC fue realizado también para el eje X ∗ , pero el
diseño del control ILC únicamente fue revisado en simulación. Para la implementación de
trayectorias en tres dimensiones es necesario cambiar el almacenamiento, de tal forma que
se puedan almacenar todos los datos del vuelo. La experimentación en tres dimensiones es
recomendable hacerla en un espacio de 2x3x2 m aproximadamente, de tal forma que las
bases puedan estar lo suficientemente alejadas del espacio de vuelo y así evitar daños en los
equipos en caso de accidente.
posibilidad de que los sistemas implementados pueden ser inestables, así que las pruebas de
vuelo deberían realizarse siguiendo las siguientes recomendaciones:
Tener rodeada el área de vuelo con la malla de la arena sin estar completamente
tensionada. Como son nano-drones, de tamaño muy pequeño, la malla tensionada
podría causar daños en los equipos en caso de choque, además los drones no tienen la
suficiente fuerza como para desplazarla significativamente.
Los primeros experimentos deberían realizarse en hover a una altura baja, así se pueden
prevenir caídas o choques muy aparatosos.
Las recomendaciones anteriores también podrían seguirse en los casos de pruebas de robustez.
Durante las implementaciones de los algoritmos ILC, es importante antes de cada intento
revisar el resultado de las trayectorias modificadas antes de ser enviadas al dron, asegurándose
de que son suaves y que no presentan picos o sobresaltos, de ser así es necesario realizar una
re sintonización.
Bibliografía
(2020). Datasheet Crazyflie 2.1. Bitcraze. Rev. 3.
Abdelmaksoud, S. I., Mailah, M., and Abdallah, A. M. (2020). Robust intelligent self-tuning
active force control of a quadrotor with improved body jerk performance. IEEE Access,
8:150037–150050.
Ai, W., Wang, H., and Li, X. (2019). Research and application of active disturbance rejection
based iterative learning control for the brushless dc motor. In 2019 IEEE 8th Data Driven
Control and Learning Systems Conference (DDCLS), pages 1049–1054.
Alaimo, A., Artale, V., Milazzo, C., and Ricciardello, A. (2013). Comparison between euler
and quaternion parametrization in uav dynamics. In AIP Conference Proceedings, volume
1558, pages 1228–1231. American Institute of Physics.
Albers, A., Trautmann, S., Howard, T., Trong Anh Nguyen, Frietsch, M., and Sauter, C.
(2010). Semi-autonomous flying robot for physical interaction with environment. In 2010
IEEE Conference on Robotics, Automation and Mechatronics, pages 441–446.
Altan, A. and Hacıoğlu, R. (2020). Model predictive control of three-axis gimbal system
mounted on uav for real-time target tracking under external disturbances. Mechanical
Systems and Signal Processing, 138:106548.
Antonio-Toledo, M. E., Sanchez, E. N., Alanis, A. Y., Flórez, J., and Perez-Cisneros, M. A.
(2018). Real-time integral backstepping with sliding mode control for a quadrotor uav.
IFAC-PapersOnLine, 51(13):549–554.
Arimoto, S., Kawamura, S., and Miyazaki, F. (1984). Bettering operation of robots by
learning. Journal of Robotic systems, 1(2):123–140.
Bhattacharjee, D. and Subbarao, K. (2020). Robust control strategy for quadcopters using
sliding mode control and model predictive control. In AIAA Scitech 2020 Forum, page
2071.
Bristow, D. A., Tharayil, M., and Alleyne, A. G. (2006). A survey of iterative learning
control. IEEE control systems magazine, 26(3):96–114.
C. Teuliére, E. M. and Eck, L. (2015). 3-d model-based tracking for uav indoor localization.
IEEE Transactions on Cybernetics, 45(5):869–879.
Chen, Y. and Wen, C. (1999). Iterative learning control: convergence, robustness and appli-
cations. Springer.
Chovancová, A., Fico, T., Chovanec, L., and Hubinsk, P. (2014). Mathematical modelling
and parameter identification of quadrotor (a survey). Procedia Engineering, 96:172–181.
Cortés, J. A. and Ramos, G. A. (2015). Control gpi-repetitivo para sistemas lineales con
incertidumbre/variación en los parámetros. TecnoLógicas, 18(34):13–24.
Criado, R. M. and Rubio, F. R. (2015). Autonomous path tracking control design for a
comercial quadcopter. IFAC-PapersOnLine, 48(9):73–78.
Dong, J. and He, B. (2018). Novel fuzzy pid-type iterative learning control for quadrotor
uav. Sensors, 19(1):24.
Efe, M. �. (2011). Neural network assisted computationally simple piλ dµ control of a qua-
drotor uav. IEEE Transactions on Industrial Informatics, 7(2):354–361.
Bibliografía 75
Fabrice, P. M. (2018). Control of the quadcopter crazyflie. Technical report, The University
of manchester.
Fernández, R. A. S., Dominguez, S., and Campoy, P. (2017). L 1 adaptive control for wind
gust rejection in quad-rotor uav wind turbine inspection. In 2017 International Conference
on Unmanned Aircraft Systems (ICUAS), pages 1840–1849. IEEE.
Fernández-Caballero, A., Maria Belmonte, L., Morales, R., and Andres Somolinos, J. (2015).
Generalized proportional integral control for an unmanned quadrotor system. Internatio-
nal Journal of Advanced Robotic Systems, 12(7):85.
Freeman*, C., Lewin, P., and Rogers, E. (2005). Experimental evaluation of iterative lear-
ning control algorithms for non-minimum phase plants. International Journal of Control,
78(11):826–846.
Gao, Z. (2006). Active disturbance rejection control: a paradigm shift in feedback control
system design. In 2006 American control conference, pages 7–pp. IEEE.
Han, J. (2009). From pid to active disturbance rejection control. IEEE transactions on
Industrial Electronics, 56(3):900–906.
Huang, D., Min, D., Jian, Y., and Li, Y. (2020). Current-cycle iterative learning control
for high-precision position tracking of piezoelectric actuator system via active disturbance
rejection control for hysteresis compensation. IEEE Transactions on Industrial Electronics,
67(10):8680–8690.
Huang, Y. and Xue, W. (2014). Active disturbance rejection control: methodology and
theoretical analysis. ISA transactions, 53(4):963–976.
Hunt, K. J., Sbarbaro, D., Żbikowski, R., and Gawthrop, P. J. (1992). Neural networks for
control systems—a survey. Automatica, 28(6):1083–1112.
Islam, M., Okasha, M., and Sulaeman, E. (2019). A model predictive control (mpc) approach
on unit quaternion orientation based quadrotor for trajectory tracking. International
Journal of Control, Automation and Systems, 17(11):2819–2832.
J. Tisdale, Z. K. and Hedrick, J. (2009). Autonomous uav path planning and estimation.
IEEE Robotics Automation Magazine, 16(2):35–42.
Jiang, F., Pourpanah, F., and Hao, Q. (2020). Design, implementation, and evaluation of a
neural-network-based quadcopter uav system. IEEE Transactions on Industrial Electro-
nics, 67(3):2076–2085.
Kamel, M., Burri, M., and Siegwart, R. (2017). Linear vs nonlinear mpc for trajectory
tracking applied to rotary wing micro aerial vehicles. IFAC-PapersOnLine, 50(1):3463–
3469.
Ke, C., Ren, J., and Quan, Q. (2018). Saturated d-type ilc for multicopter trajectory tracking
based on additive state decomposition. In 2018 IEEE 7th Data Driven Control and
Learning Systems Conference (DDCLS), pages 1146–1151. IEEE.
Kwon, W., Park, J. H., Lee, M., Her, J., Kim, S.-H., and Seo, J.-W. (2019). Robust autono-
mous navigation of unmanned aerial vehicles (uavs) for warehouses’ inventory application.
IEEE Robotics and Automation Letters, 5(1):243–249.
Labbadi, M., Boukal, Y., and Cherkaoui, M. (2020). Path following control of quadrotor
uav with continuous fractional-order super twisting sliding mode. Journal of Intelligent
& Robotic Systems, pages 1–23.
Lei, W., Li, C., and Chen, M. Z. (2018). Robust adaptive tracking control for quadrotors by
combining pi and self-tuning regulator. IEEE Transactions on Control Systems Technology,
27(6):2663–2671.
Lei, Y. and Wang, H. (2020). Aerodynamic performance of a quadrotor mav considering the
horizontal wind. Ieee Access, 8:109421–109428.
Li, Q., Qian, J., Zhu, Z., Bao, X., Helwa, M. K., and Schoellig, A. P. (2017). Deep neu-
ral networks for improved, impromptu trajectory tracking of quadrotors. In 2017 IEEE
International Conference on Robotics and Automation (ICRA), pages 5183–5189.
Liang, X., Zheng, M., and Zhang, F. (2018). A scalable model-based learning algorithm with
application to uavs. IEEE Control Systems Letters, 2(4):839–844.
Liu, C., Pan, J., and Chang, Y. (2016). Pid and lqr trajectory tracking control for an
unmanned quadrotor helicopter: Experimental studies. In 2016 35th Chinese Control
Conference (CCC), pages 10845–10850.
López-Gutiérrez, R., Rodriguez-Mata, A. E., Salazar, S., González-Hernández, I., and Lo-
zano, R. (2017). Robust quadrotor control: attitude and altitude real-time results. Journal
of Intelligent & Robotic Systems, 88(2-4):299–312.
Lu, S., Ai, W., and Li, X. (2018). Active disturbance rejection based iterative learning
control for variable air volume central air-conditioning system. In 2018 IEEE 7th Data
Driven Control and Learning Systems Conference (DDCLS), pages 1073–1078.
Bibliografía 77
Mascaró Palliser, R., Costa-Castelló, R., and Ramos, G. A. (2017). Iterative learning control
experimental results in twin-rotor device. Mathematical Problems in Engineering, 2017.
McKinnon, C. D. and Schoellig, A. P. (2016). Unscented external force and torque estimation
for quadrotors. In 2016 IEEE/RSJ International Conference on Intelligent Robots and
Systems (IROS), pages 5651–5657.
Mckinnon, C. D. and Schoellig, A. P. (2019). Learning probabilistic models for safe predictive
control in unknown environments. pages 2472–2479.
Mofid, O. and Mobayen, S. (2018). Adaptive sliding mode control for finite-time stability of
quad-rotor uavs with parametric uncertainties. ISA Transactions, 72:1 – 14.
Mueller, F. L., Schoellig, A. P., and D’Andrea, R. (2012). Iterative learning of feed-forward
corrections for high-performance tracking. In 2012 IEEE/RSJ International Conference
on Intelligent Robots and Systems, pages 3276–3281.
Pereida, K. and Schoellig, A. P. (2018). Adaptive model predictive control for high-accuracy
trajectory tracking in changing conditions. In 2018 IEEE/RSJ International Conference
on Intelligent Robots and Systems (IROS), pages 7831–7837. IEEE.
Pipatpaibul, P.-i. and Ouyang, P. (2013). Application of online iterative learning tracking
control for quadrotor uavs. International Scholarly Research Notices, 2013.
Radoglou-Grammatikis, P., Sarigiannidis, P., Lagkas, T., and Moscholios, I. (2020). A com-
pilation of uav applications for precision agriculture. Computer Networks, 172:107148.
Ramírez-Neria, M., Madonski, R., Shao, S., and Gao, Z. (2020). Robust tracking in unde-
ractuated systems using flatness-based adrc with cascade observers. Journal of Dynamic
Systems, Measurement, and Control, 142(9):091002.
Ramos, G., Cortés-Romero, J., and Coral-Enriquez, H. (2015). Spatial observer-based repe-
titive controller: An active disturbance rejection approach. Control Engineering Practice,
42:1–11.
78 Bibliografía
Sangyam, T., Laohapiengsak, P., Chongcharoen, W., and Nilkhamhang, I. (2010). Path
tracking of uav using self-tuning pid controller based on fuzzy logic. In Proceedings of
SICE Annual Conference 2010, pages 1265–1269.
Sira-Ramírez, H. (2018). From flatness, gpi observers, gpi control and flat filters to observer-
based adrc. Control Theory and Technology, 16(4):249–260.
Stankovic, M., Madonski, R., Manojlovic, S., Lechekhab, T. E., and Mikluc, D. (2020).
Error-based active disturbance rejection altitude/attitude control of a quadrotor uav. In
Advanced, Contemporary Control, pages 1348–1358. Springer.
Suwansrikham, P. and Singkhamfu, P. (2017). Indoor vision based guidance system for
autonomous drone and control application. pages 110–114, Chiang Mai.
Szafranski, G. and Czyba, R. (2011). Different approaches of pid control uav type quadrotor.
Tian, G. and Gao, Z. (2009). From poncelet’s invariance principle to active disturbance
rejection. In 2009 American Control Conference, pages 2451–2457. IEEE.
Trejo-Escamilla, E. G., Romero, H., Santos, O., Salzar, S., and Lozano, R. (2017). Gpi
controller for quadrotor uav stabilization. In 2017 International Conference on Unmanned
Aircraft Systems (ICUAS), pages 1833–1839. IEEE.
Wai, R. and Prasetia, A. S. (2019). Adaptive neural network control and optimal path
planning of uav surveillance system with energy consumption prediction. IEEE Access,
7:126137–126153.
Wang, J., Zhu, S., Luo, X., Chen, G., Xu, Z., Liu, X., and Li, Y. (2020). Refined micro-
scale geological disaster susceptibility evaluation based on uav tilt photography data and
weighted certainty factor method in mountainous area. Ecotoxicology and Environmental
Safety, 189:110005.
Xu, J., Li, D., Ma, X., Zhang, B., and Jin, Q. (2020). Study of an adaptive iterative learning
control based on extended state observer in path tracking of double joint robot. In 2020
39th Chinese Control Conference (CCC), pages 2037–2042.
Bibliografía 79
Yang, S., Li, K., and Shi, J. (2009). Design and simulation of the longitudinal autopilot
of uav based on self-adaptive fuzzy pid control. In 2009 International Conference on
Computational Intelligence and Security, volume 1, pages 634–638.
Ye, J., Wang, J., Song, T., Wu, Z., and Tang, P. (2021). Nonlinear modeling the quadcopter
considering the aerodynamic interaction. IEEE Access, 9:134716–134732.
Zhang, J., R. Z. D. C. e. a. (2019). Adaptive fuzzy global sliding mode control for trajectory
tracking of quadrotor uavs. Nonlinear Dyn, 97:609–627.
Zhang, X., Li, X., Wang, K., and Lu, Y. (2014). A survey of modelling and identification of
quadrotor robot. In Abstract and Applied Analysis, volume 2014. Hindawi.
Zhao, B., Xian, B., Zhang, Y., and Zhang, X. (2015). Nonlinear robust adaptive tracking
control of a quadrotor uav via immersion and invariance methodology. IEEE Transactions
on Industrial Electronics, 62(5):2891–2902.
Zhaowei, M., Tianjiang, H., Lincheng, S., Weiwei, K., Boxin, Z., and Kaidi, Y. (2015). An
iterative learning controller for quadrotor uav path following at a constant altitude. In
2015 34th Chinese control conference (CCC), pages 4406–4411. IEEE.