Está en la página 1de 98

Control de seguimiento de

trayectorias repetitivas para un


quadcopter

Paula Andrea Mozuca Tamayo

Universidad Nacional de Colombia


Facultad de Ingeniería, Departamento de Ingeniería Eléctrica y Electrónica
Bogotá, Colombia
2021
Control de seguimiento de
trayectorias repetitivas para un
quadcopter

Paula Andrea Mozuca Tamayo

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)

Universidad Nacional de Colombia


Facultad de Ingeniería, Departamento de Ingeniería Eéctrica y Electrónica
Bogotá, Colombia
2021
A cada persona que lucha por sus sueños, a pesar
de las adversidades.
Agradecimientos
A la Universidad Nacional de Colombia por formarme como profesional. Al Departamen-
to de Ingeniería Eléctrica y Electrónica por apoyarme con la beca de asistente docente. A
la Dirección de Investigación y Extensión de la sede de Bogotá, por la financiación de este
proyecto de investigación.

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 mi padre, a mi hermana y a mi gatita Maní, quienes fueron mi sustento y más grande


apoyo en cada momento de dificultad. Quienes confiaron ciegamente en mí en cada instante,
impulsándome y motivándome para conseguir cada sueño y meta planteada.

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

Lista de símbolos XIII

Lista de figuras XVII

Lista de tablas XIX

Introducción 2

1 Control y drones en la literatura 4


1.1 Enfoques en el modelo del dron . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Control de drones, diferentes perspectivas . . . . . . . . . . . . . . . . . . . 5
1.2.1 Control de aprendizaje iterativo . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Control basado en rechazo activo de perturbaciones (ADRC) . . . . . 9
1.2.3 Control ILC basado en ADRC . . . . . . . . . . . . . . . . . . . . . . 10

2 Modelo y control clásico del dron 12


2.1 Modelo matemático de un cuadricóptero . . . . . . . . . . . . . . . . . . . . 12
2.1.1 Cinemática del dron . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Dinámica del dron . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 De la simulación a la experimentación . . . . . . . . . . . . . . . . . . . . . 15
2.3 Control PID en cascada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 Control PID basado en ADRC 19


3.1 Modelo simplificado del dron . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 Diseño del observador de estados extendidos, ESO . . . . . . . . . . . . . . . 21
3.2.1 Síntesis de los ESOs . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.2 Modificación de la ley de control . . . . . . . . . . . . . . . . . . . . 23
3.3 Implementación del control PID basado en ADRC . . . . . . . . . . . . . . . 25
3.3.1 Evaluación del desempeño en experimentación . . . . . . . . . . . . . 26
3.3.2 Evaluación de la robustez del sistema en experimentación . . . . . . 31
3.3.3 Conclusiones de la experimentación . . . . . . . . . . . . . . . . . . . 34
xii Contenido

4 Control de aprendizaje iterativo-ILC 35


4.1 Control ILC en configuración serie . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1 Control ILC con el método P lead + D . . . . . . . . . . . . . . . . . 36
4.1.2 Control ILC con el método de la Inversa . . . . . . . . . . . . . . . . 38
4.2 Síntesis y simulación de los algoritmos . . . . . . . . . . . . . . . . . . . . . 39
4.2.1 Control ILC con P lead +D . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.2 Control ILC con la Inversa . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3 Implementación de los algoritmos ILC con el control PID clásico . . . . . . . 45
4.3.1 Control ILC con el método P lead +D . . . . . . . . . . . . . . . . . 45
4.3.2 Control ILC con el método de la inversa . . . . . . . . . . . . . . . . 47
4.3.3 Conclusiones de la experimentación . . . . . . . . . . . . . . . . . . . 49

5 Control ILC con PID basado en ADRC 50


5.1 ILC-PID basado en ADRC con método P lead +D . . . . . . . . . . . . . . 50
5.1.1 Prueba de desempeño con viento desde el intento 7 . . . . . . . . . . 53
5.1.2 Prueba de desempeño con viento desde el intento 7 hasta el intento 10 55
5.2 ILC-PID basado en ADRC con método de la Inversa . . . . . . . . . . . . . 59
5.2.1 Prueba de desempeño con viento desde el intento 7 . . . . . . . . . . 61
5.2.2 Prueba de desempeño con viento desde el intento 7 hasta el intento 10 63
5.3 Conclusiones de la experimentación . . . . . . . . . . . . . . . . . . . . . . . 67

6 Conclusiones y recomendaciones 70
6.1 Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.2 Recomendaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Bibliografía 73
Lista de símbolos

Símbolos con letras latinas

Símbolo Término Unidad SI


A Matriz de estados para definir el espacio de estados Adimensional
B Matriz de entrada para definir el espacio de estados Adimensional
C Matriz de salida para definir el espacio de estados Adimensional
C Abreviación de la función Coseno Adimensional
e Error de seguimiento en posición o velocidad en un eje de movimiento m, ms
m
G Vector de la fuerza de gravedad s2
m
g Constante de la aceleración de gravedad s2

I Matriz de Inercias kg.m2


k Paso de muestreo Adimensional
kp Ganancia proporcional Adimensional
ki Ganancia integral Adimensional
kd Ganancia derivativa Adimensional
ℓ Ganancia del observador Adimensional
m Masa total del drone kg
rad
p Velocidad angular en el eje xB s
rad
q Velocidad angular en el eje yB s

qa Operador de avance Adimensional


rad
r Velocidad angular en el eje zB s

r Vector de posición lineal en el marco de referencia inercial m


R Matriz de rotación Adimensional
S Abreviación de la función Seno Adimensional
T Vector de la fuerza de empuje N
xiv Contenido

Símbolo Término Unidad SI


T Fuerza de empuje total o Thrust en el eje zB N
t Abreviación de la función Tangente Adimensional
Ts Periodo de muestreo s
m
V Vector de velocidad lineal s
m
v Componente de velocidad lineal s

W Matriz de rotación para velocidades Adimensional


X∗ Eje de referencia en el marco inercial Adimensional
Y∗ Eje de referencia en el marco inercial Adimensional
Z∗ Eje de referencia en el marco inercial Adimensional
xB Eje de referencia en el marco del drone Adimensional
yB Eje de referencia en el marco del drone Adimensional
zB Eje de referencia en el marco del drone Adimensional
x Desplazamiento lineal en el eje X ∗ m
y Desplazamiento lineal en el eje Y ∗ m
z Desplazamiento lineal en el eje Z ∗ m
x̂ Posición en el eje X ∗ estimada por el ESO m
ŷ Posición en el eje Y ∗ estimada por el ESO m
ẑ Posición en el eje Z ∗ estimada por el ESO m

Símbolos con letras griegas

Símbolo Término Unidad SI

Γ Vector de fuerzas giroscópicas N.m


γp Ganancia proporcional para el algoritmo ILC Adimensional
γd Ganancia derivativa para el algoritmo ILC Adimensional
∆ Operador derivativo aproximado por aproximación de Euler Adimensional
η Vector de orientación en el marco de referencia inercial rad
Contenido xv

Símbolo Término Unidad SI

θ Posición angular en el eje de referencia Y ∗ rad


θ̂ Posición angular en el eje de referencia Y ∗ estimada por el ESO rad
λ Polo de un sistema Adimensional
rad
ν Vector de velocidad angular en el marco del drone s

ξ Perturbación total del sistema Adimensional


ξˆ Perturbación total del sistema estimada por el ESO Adimensional
τ Torques externos N.m
ϕ Posición angular en el eje de referencia X ∗ rad
ϕ̂ Posición angular en el eje de referencia X ∗ estimada por el ESO rad
ψ Posición angular en el eje de referencia Z ∗ rad
ψ̂ Posición angular en el eje de referencia Z ∗ estimada por el ESO rad

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

2-1 Marcos de referencia para definir el modelo del dron . . . . . . . . . . . . . . 12


2-2 Diagrama de configuración de hardware para la implementación . . . . . . . 15
2-3 Esquema básico del controlador en cascada . . . . . . . . . . . . . . . . . . . 16
2-4 Control de orientación en cascada . . . . . . . . . . . . . . . . . . . . . . . . 17
2-5 Control de posición en cascada . . . . . . . . . . . . . . . . . . . . . . . . . 17

3-1 Esquema general de una planta lineal . . . . . . . . . . . . . . . . . . . . . . 21


3-2 Sistema de control PID basado en ADRC . . . . . . . . . . . . . . . . . . . . 23
3-3 Comparación entre el control PID clásico y el control PID basado en ADRC
en simulación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3-4 Comparación entre el control PID clásico y el control PID basado en ADRC
en experimentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3-5 Posición del dron a lo largo del tiempo al aplicar viento durante todo el
experimento, manteniendo el dron en hover en la posición (0, 0, 0,7). . . . . . 27
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). . . . . . . . . 27
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). . . . . . . . . . . . . 28
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). . . . . . . . . . . . 29
3-9 Comparación del desempeño en el seguimiento de la trayectoria tipo flor en
un ambiente sin perturbaciones. . . . . . . . . . . . . . . . . . . . . . . . . . 30
3-10 Comparación del desempeño en el seguimiento de la trayectoria tipo flor con
perturbación a lo largo del vuelo. . . . . . . . . . . . . . . . . . . . . . . . . 30
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) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
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) . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3-13 Seguimiento de la trayectoria tipo flor al aumentar la masa a 31 g . . . . . . 33
3-14 Seguimiento de la trayectoria tipo flor al aumentar la masa a . . . . . . . . 33
xviii Lista de Figuras

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

3-1 Polos y ganancias para los observadores extendidos . . . . . . . . . . . . . . 22

5-1 Convergencia de los algoritmos ILC con cada controlador de realimentación . 67


5-2 Errores de los algoritmos ILC con cada controlador de realimentación . . . . 68
Introducción
El desarrollo de nuevas tecnologías ha permitido incluir drons o vehículos aéreos no tripula-
dos (UAV) en diferentes áreas [J. Tisdale and Hedrick, 2009]. Por su diversidad en tamaños y
su capacidad de aprovechar mejor los espacios tridimensionales, han sido integrados en apli-
caciones tanto en interiores [C. Teuliére and Eck, 2015] como en exteriores [J.D.C. Tsouros
and Sarigannidis, 2019]. Algunas tareas como la agricultura de precisión, vigilancia, conteo
de inventarios, entre otras, requieren que el dron siga trayectorias repetitivas autónomamen-
te, es decir, que los UAVs deben recorrer el mismo camino una y otra vez.

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 esta investigación es diseñado e implementado un controlador de aprendizaje iterativo


(ILC) basado en rechazo activo de perturbaciones (ADRC). Los resultados de la implementa-
ción muestran como el seguimiento de las trayectorias repetitivas mejoran significativamente
al compararse con el seguimiento de un control de realimentación tradicional. Gracias al
control de realimentación basado en ADRC, el sistema de lazo cerrado tiene la capacidad de
rechazar perturbaciones, mientras que el algoritmo ILC corrige el error de seguimiento inicial.

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].

En algunas aplicaciones, como en la fotografía aérea o reconocimiento de áreas, el dron es


manejado por un piloto a través de un control remoto [Wang et al., 2020]. En este caso, el
dron únicamente requiere del control de orientación o estabilización, donde son diseñados
controladores para los ángulos de giro, pitch θ, roll ϕ y yaw ψ, y la altura z.

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].

1.1. Enfoques en el modelo del dron


El modelo de un dron puede hallarse de acuerdo a tres enfoques diferentes, definiendo las
ecuaciones de Newton-Euler, obteniendo las ecuaciones de energía de Lagrange-Euler y con
las ecuaciones de movimiento basadas en cuaterniones.
1.2 Control de drones, diferentes perspectivas 5

Al utilizar el método de Newton-Euler o de Lagrange-Euler se llegan a las mismas ecuaciones


de movimiento después de manipularse adecuadamente. El modelo obtenido es el más común
debido a la facilidad de manejo y comprensión que tiene, sin embargo presenta una singula-
ridad cuando el segundo ángulo, pitch, tiene valores de ±90o [Luukkonen, 2011]. Al utilizar
el enfoque de cuaterniones, el modelo es expresado en un espacio diferente, lo cuál implica
la pérdida de los ángulos de Euler, sin embargo con este modelo ya no hay singularidades
[Alaimo et al., 2013]. Para el diseño de controladores de posición puede utilizarse cualquiera
de los modelos obtenidos, pues la singularidad presente con los ángulos de Euler únicamente
es alcanzaba al realizar acrobacias.

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].

(a) Pitch θ ⇒ x (b) Roll ϕ ⇒ y (c) Yaw γ ⇒ giro (d) Thrust ⇒ Z

Figura 1-1: Generación de movimientos en un cuadricóptero

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.

1.2. Control de drones, diferentes perspectivas


Generalmente, el control de posición de un dron es diseñado en cascada con el control de
orientación [Criado and Rubio, 2015]. En este caso, es importante que el control de orien-
tación no tenga error de estado estacionario, pues una variación en el ángulo genera un
movimiento en los ejes X y Y .
6 1 Control y drones en la literatura

Figura 1-2: Control en cascada para un UAV

El control en cascada, mostrado en la Fig. 1-2 consiste en un controlador interno de orien-


tación, donde la salida es la señal de torque en cada dirección. El lazo externo, el control
de posición, recibe como entrada las referencias de posición, mientras que su salida son las
respectivas señales de referencia para el control de orientación. En cada uno de los lazos
pueden diseñarse controladores con diferentes estrategias.

La estrategia de control más estudiada e implementada, tanto en el control de posición como


en el de orientación, es el PID [Szafranski and Czyba, 2011] con diferentes variaciones como
el PI-D [Fabrice, 2018]. Esta variación consiste en reemplazar la componente diferencial por
un control tipo P en velocidad, evitando así derivar señales en la implementación, para esto
es necesario tener acceso a la medida con diferentes sensores [Liu et al., 2016; Alvarez-Valle
and Rivadeneira, 2019].

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].

1.2.1. Control de aprendizaje iterativo


Cuando hay trayectorias repetitivas, se puede obtener un alto desempeño con el Control de
Aprendizaje Iterativo (ILC), esta estrategia permite seguir trayectorias repetitivas con un
error de seguimiento muy bajo. De acuerdo a los resultados obtenidos en cada iteración, la
8 1 Control y drones en la literatura

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.

En el 2012, se desarrolló una estrategia ILC implementada en un cuadricóptero [Mueller


et al., 2012] mostrando buenos resultados. Otras investigaciones exploran opciones para lo-
grar un aprendizaje más rápido, en [Liang et al., 2018] se muestra que los datos de aprendizaje
obtenidos en un cuadricóptero pueden ser llevados a otros drones que van a estar sometidos
en ambientes de vuelos similares, reduciendo las iteraciones necesarias para lograr un buen
seguimiento.

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].

1.2.2. Control basado en rechazo activo de perturbaciones (ADRC)


El diseño del sistema de control de posición de un dron requiere tener en cuenta tres aspec-
tos importantes que pueden comprometer tanto la estabilidad como el buen desempeño: las
perturbaciones, las no linealidades y la incertidumbre del modelo. Durante el vuelo, el dron
es sometido a diferentes perturbaciones que suelen ser aleatorias, el viento del ambiente o
el generado por las mismas hélices son las más comunes. Adicionalmente, el modelo mate-
mático comúnmente usado para el diseño del dron es aproximado, donde se suelen ignorar
algunas dinámicas y otras son linealizadas alrededor del punto de equilibrio. Finalmente, los
parámetros del modelo no son exactos, las inercias son difíciles de caracterizar y sus valores
resultantes tienen alta incertidumbre.

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

Los resultados en simulación de las diferentes investigaciones en control de posición basado


en ADRC son prometedores, sin embargo, para llevar a implementación hay que tener en
cuenta varios inconvenientes que pueden ocasionar malos resultados experimentales. Gene-
ralmente, para que los ESOs obtengan una buena estimación de la perturbación total, deben
tener ganancias con un alto orden de magnitud, lo cuál puede ocasionar una amplificación del
ruido e incluso inestabilidad [Madoński and Herman, 2015; Ramírez-Neria et al., 2020]. Adi-
cionalmente, cuando los diseños son realizados en tiempo continuo, es necesario discretizar.
Durante el procedimiento de discretización se pueden ver comprometida la precisión tanto
de los observadores como de la ley de control [Madoński and Herman, 2015; Ramírez-Neria
et al., 2020], además, se requiere de un periodo de muestreo muy corto para obtener una bue-
na aproximación de la perturbación total [Madoński and Herman, 2015]. Finalmente, en los
controladores de posición propuestos [Sira-Ramírez, 2011; Fernández-Caballero et al., 2015],
es utilizada una linealización por realimentación, lo que quiere decir que la ley de control
obtenida es no lineal. En implementación, la no linealidad puede ocasionar un alto costo
computacional además de problemas numéricos en el algoritmo. También hay que tener en
cuenta que las condiciones iniciales de las funciones no lineales pueden causar problemas en
momentos críticos de los vuelos, por ejemplo durante los despegues y aterrizajes.

1.2.3. Control ILC basado en ADRC


La principal idea de esta investigación consiste en diseñar e implementar un controlador
basado en ADRC que permita obtener un buen desempeño a pesar de las perturbaciones,
incertidumbres y no linealidades presentes en el sistema, además, complementarlo con un
control ILC con el que se pueda obtener un seguimiento de trayectorias repetitivas con alto
desempeño. Los controladores serán implementados en configuración tipo serie, tal como se
puede ver en la figura 1-3.

Figura 1-3: Esquema de control ILC basado en ADRC

Este tipo de controlador no ha sido implementado en drones anteriormente, sin embargo


se han desarrollado en otros sistemas. En los artículos [Cortés-Romero et al., 2014; Ramos
1.2 Control de drones, diferentes perspectivas 11

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.

2.1. Modelo matemático de un cuadricóptero


Para obtener el modelo matemático del dron se deben definir tanto su cinemática como
su dinámica. Con la primera se define la ubicación del dron en el espacio, mientras con la
segunda son definidas las ecuaciones Newton-Euler.

2.1.1. Cinemática del dron

Figura 2-1: Marcos de referencia para definir el modelo del dron

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ϕ ψ̇

2.1.2. Dinámica del dron


Suposición 1: Antes de definir la dinámica de dron, se asumirá que éste tiene un fuselaje
rígido.

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:

mV̇B + ν × (mVB ) = RT G + TB . (2-6)


En la ecuación (2-6), el término mV̇B es la fuerza necesaria para acelerar la masa del dron
m, y ν × (mVB ) es la fuerza centrifuga que tiene un valor nulo en el eje inercial. Ahora,
la matriz de rotación RIB será expresada como R. Así, en el marco de referencia inercial, la
ecuación (2-6) queda expresada como sigue:

mr̈ = G + RTB , (2-7)


la cual puede reescribirse en términos de cada componente de la siguiente forma:
     
ẍ 0 C ψ S θ C ϕ + Sψ Sϕ
    T  
ÿ  =  0  + Sψ Sθ Cϕ − Cψ Sϕ  . (2-8)
    m 
z̈ −g Cθ Cϕ
Para finalizar, es necesaria la expresión de la sumatoria de torques definida en el marco
inercial, la cuál es:
2.2 De la simulación a la experimentación 15

Iν̇ + ν × (Iν) + Γ = τ . (2-9)


En el caso de la ecuación (2-9), el término ν × (Iν) corresponde a la fuerza centrípeta, I
es una matriz diagonal, cuyos términos son Ix , Iy y Iz , y que corresponden a las inercias
en los ejes X ∗ , Y ∗ y Z ∗ , respectivamente, Γ es la componente que representa las fuerzas
giroscópicas y τ torques externos. Al expresar la ecuación (2-9) en el marco de referencia
del dron y asumiendo ν × (Iν) y Γ como cero, sus componentes quedan definidas como:
  τ τ S t τ C t

ϕ
ṗ + θ Ixϕ θ + ψ Izϕ θ
   Ix

q̇  =  τ θ Cϕ

τ ψ Sϕ . (2-10)
   Iy Iz 
τ ψ Cϕ τ ψ Sϕ
ṙ I z Cθ
+ I x Cθ
Así, el modelo del dron queda definido por las seis ecuaciones mostradas en (2-8) y (2-10).

2.2. De la simulación a la experimentación


La validación de los controladores propuestos es realizada tanto en simulación como en ex-
perimentación. Primero, en cada una de las simulaciones, realizada en Simulink, es probado
el desempeño del controlador. Después de obtener los resultados deseados, es llevado a la
implementación. El control de realimentación es obtenido en ecuaciones de diferencias pa-
ra así ser implementado en el firmware del dron. En el caso de las nuevas referencias, los
polinomios que la definen son calculados en Matlab, para posteriormente ser enviados al dron.

Figura 2-2: Diagrama de configuración de hardware para la implementación


16 2 Modelo y control clásico del dron

La arquitectura de la plataforma de experimentación puede verse en la figura 2-2. Los vuelos


son realizados con un nano dron Crazyflie 2.1, el cuál tiene un tamaño de 92x92x29 mm y
un peso de 27g. La posición del dron en el espacio tridimensional es obtenida con un sistema
basado en realidad virtual. Dos Bases Station 1.0 de la compañía HTC son ubicadas en los
extremos de la arena y envían un haz de luz infrarroja que recorre toda el área de vuelo. Con
el sistema de posicionamiento lighthouse, desarrollado por el equipo Bitcraze, se sensa la luz
infrarroja y se calcula la posición de acuerdo a la geometría del dron. Utilizar este sistema
de posicionamiento permite que se puedan realizar vuelos en diferentes horas del día pues
no se ve significativamente afectado por los cambios de iluminación.

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.

2.3. Control PID en cascada

Figura 2-3: Esquema básico del controlador en cascada

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

en x y y. Los estados z y ψ tienen controladores independientes. El esquema básico del


controlador se puede ver en la figura 2-3, y es el controlador original del Crazyflie 2.1, cada
lazo es explicado a continuación.

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.

Figura 2-4: Control de orientación en cascada

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.

Figura 2-5: Control de posición en cascada


18 2 Modelo y control clásico del dron

Las ganancias de cada controlador tipo PID pueden verse en la tabla a continuación:

Tabla 2-1: Ganancias de los controladores PID

Ganancias Estados del sistema

PID θ, ϕ ψ θ̇, ϕ̇ ψ̇ x, y ẋ, ẏ z ż


kp 6 6 250 120 2 25 2 25
ki 3 1 500 16.7 0 1 0.5 15
kd 0 0.35 2.5 0 0 0 0 0
3 Control PID basado en ADRC
La propuesta para mejorar el desempeño del sistema es diseñar un Observador de Estados
Extendido (ESO) de tal forma que el estado adicional, correspondiente a la perturbación
total, pueda ser añadida a la ley de control y así rechazarla activamente. Una de las venta-
jas de este observador, es que puede ser diseñado a partir de un modelo simplificado y las
dinámicas despreciadas son incluidas en la perturbación total.

Como es explicado en [Sira-Ramírez, 2018], en un sistema plano de la forma ẋ = f (x)+g(x)u,


y = h(x), existe una relación entre la entrada al sistema u y la salida y, dada por:
y (n) = ϑ(y) + b(y)u + δ(t), (3-1)
siendo y = (y, ẏ, ÿ, ..., y (n) ), ϑ(y) es la dinámica independiente de la señal de control y que
puede ser considerada como una entrada al sistema llamada perturbación endógena, b(y) es
la ganancia de entrada y δ(t) es la perturbación exógena que afecta al sistema. En el término
ϑ(y) son incluidas las dinámicas no modeladas y las diferentes aproximaciones realizadas,
quedando así como un término no conocido. La incertidumbre en este término impide que
haya una cancelación perfecta al implementar una ley de realimentación tradicional. Al sumar
ϑ(y) y δ(t) se obtiene la perturbación total que puede ser rechazada con la estimación dada
por el ESO. Así, el sistema plano puede ser definido como un sistema perturbado de la
siguiente forma:
y (n) = b(y)u + ξ(t). (3-2)

3.1. Modelo simplificado del dron


Para diseñar el ESO, primero debe hallarse el modelo simplificado del sistema (??) con
entrada correspondiente a los ángulos de Euler, θ, ϕ y la fuerza T y con salida la posición del
dron en x, y y z, respectivamente. Los tres sistemas pueden reescribirse de la forma mostrada
en la ecuación (3-2). Primero, los ángulos θ, ϕ y ψ son restringidos a valores pequeños, de
esta forma se obtiene que Cθ = 1, Cϕ = 1, Cψ = 1 y Sθ = θ, Sϕ = ϕ y Sψ = ψ. Así, la
ecuación (??) queda de la forma:
     
ẍ 0 θ + ψϕ
    T  
ÿ  =  0  + ψθ − ϕ . (3-3)
    m 
z̈ −g 1
20 3 Control PID basado en ADRC

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.

Para lograr una implementación en la plataforma de experimentación es necesario diseñar y


sintetizar el observador y la ley de control el tiempo discreto. Por esta razón, se debe obtener
el modelo discreto, en este caso, usando la siguiente aproximación de Euler:
dn x(t) (q − 1)n
≈ x(k) = ∆n x(k), (3-9)
dtn Tsn
siendo q el operador de avance definido como qx(k) = x(k + 1), k es el paso de muestreo, Ts
el periodo de muestreo, finalmente, el operador se define como ∆ = (q − 1)/Ts .

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:

∆y1 (k) = y2 (k),


(3-11)
∆y2 (k) = gϕ(k) + ξy (k).

∆z1 (k) = z2 (k),


1 (3-12)
∆z2 (k) = T + ξz (k).
m
3.2 Diseño del observador de estados extendidos, ESO 21

3.2. Diseño del observador de estados extendidos, ESO


La perturbación total de cada sistema es estimada con un observador de estados extendidos.
Ese observador es calculado a partir de una planta de la siguiente forma:

Figura 3-1: Esquema general de una planta lineal

donde la planta se define, en general, por las siguientes ecuaciones:

x(k + 1) = Ax(k) + Bu(k) + Bξ(k),


(3-13)
y(k) = Cx(k),

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).

Con la definición matemática tanto de la planta como de la perturbación se puede obtener


un modelo extendido, así:

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)

que al reescribirse queda:

xex (k + 1) = Aex xex (k) + Bex u(k),


(3-16)
yex (k) = Cex xex (k).
22 3 Control PID basado en ADRC

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)

Al reemplazar ŷ(k) = Cex xex (k) y factorizando, se obtiene:

x̂ex (k + 1) = (Aex − Lex Cex )x̂ex (k) + Bex u(k) + Lex y(k), (3-18)

3.2.1. Síntesis de los ESOs


Para sintetizar cada uno de los observadores extendidos, primero se definen los modelos tanto
de la planta como de la perturbación total. La perturbación es aproximada a un integrador,
utilizando su modelo como el estado extendido. Con esto, se hallan los modelos extendidos
de la forma (3-16) y por medio de la fórmula de Ackermann son halladas las ganancias del
observador.

La sintonización de las ganancias comienza al escoger, de forma más intuitiva, la ubicación


de los polos en el dominio continuo, iniciando en la misma posición sobre el eje real negati-
vo. Luego, los polos son llevados a tiempo discreto a través de la relación z = 1 + sTs , para
finalmente sintetizar el observador con la fórmula de Ackermann. Cuando se obtiene una
buena respuesta del observador, los polos se alejan entre sí con el fin de mejorar la respuesta
transitoria, es decir que se reduce tanto el sobrepico como el tiempo de subida. El proceso de
ubicación de los polos en tiempo continuo, la discretización y la síntesis, es repetida hasta
obtener el desempeño del observador esperado, teniendo la respuesta más rápida posible sin
llegar a amplificar el ruido.

Los polos en tiempo continuo y las ganancias de los observadores obtenidas son las mostradas
a continuación en la tabla 3-1:

Tabla 3-1: Polos y ganancias para los observa-


dores extendidos
Polos Ganancias
Ejes
λ1 λ2 λ3 ℓ1 ℓ2 ℓ3
x -25 -25 -25 75 1875 1593.3
y -36 -30 -36 102 3456 3964.7
z -50 -120 -50 220 14500 9291
3.2 Diseño del observador de estados extendidos, ESO 23

La implementación de los ESOs, es realizada mediante las ecuaciones de diferencias. Es-


tas ecuaciones corresponden a cada componente de la ecuación (3-18), y para cada eje de
movimiento son:
x̂1 (k + 1) = x̂1 (k) + Ts x̂2 (k) + ℓx1 (x1 (k) − x̂1 (k)),
Ts
x̂2 (k + 1) = x̂2 (k) + θ(k) + ξˆx (k) + ℓx2 (x1 (k) − x̂1 (k)), (3-19)
g
x̂3 (k + 1) = x̂3 + ℓx3 (x1 (k) − x̂1 (k))

ŷ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)),

3.2.2. Modificación de la ley de control


A cada ley de control de realimentación PID de cada eje, mostrada en el capítulo anterior, es
añadida la estimación de la perturbación obtenida con cada observador, restándola como se
puede ver en la figura 3-2. De esta forma, la perturbación extendida es rechazada activamente
si la estimación de la perturbación ξˆ es aproximadamente igual a la perturbación real ξ lo
que se logra con una sintonización adecuada del observador.

Figura 3-2: Sistema de control PID basado en ADRC

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.

Al realizar la matemática correspondiente se obtienen los siguientes polinomios característi-


cos, en tiempo continuo, para cada uno de los ejes:

py = px = s3 + gkpẋ s2 + gkpx kpẋ + kiẋ s + gkpx kiẋ
(3-28)
py = px = s3 + 245,25s2 + 491,35s + 19,61
1 ż 3 1 z ż  1 ż z  1
p z = s4 + kp s + kp kp − kiż s2 + kp ki + kpz kiż s + kiz kiż
m m m m (3-29)
4 3 2
pz = s + 807,45s + 1130,3s + 1372,4s + 242,2
Finalmente, los polos en tiempo discreto en los sistemas x y y son λxd1 = λyd1 = 0,0879,
λxd2 = λyd2 = 0,9804 y λxd3 = λyd3 = 0,9995, mientras que para el eje z quedan ubicados en
λzd1 = 0,9979, λzd2 = 0,9939 + 0,0104i, λzd3 = 0,9939 − 0,0104i y λzd14 = 0,0003, cumpliendo
con su ubicación dentro del círculo unitario.
3.3 Implementación del control PID basado en ADRC 25

3.3. Implementación del control PID basado en ADRC


Antes de implementar la ley de control y el ESO diseñados, estos son validados en simu-
lación. Primero verificando que los estados estimados del observador sean cercanos a los
estados reales. Finalmente, se agrega el estado extendido a la ley de control con el fin de
comparar los desempeños del PID original con el PID basado en ADRC.

Para simplificar la presentación de los resultados y debido a una restricción en la cantidad


de datos que se podían obtener con las comunicaciones, las experimentaciones son realizadas
en el plano Y ∗ Z ∗ . Teniendo en cuenta que el comportamiento en el eje X ∗ es similar al de
Y ∗ , no se pierde generalidad en la experimentación. El modelo utilizado en la simulación es
el mostrado en las ecuaciones (2-8) y (2-10) con un periodo de muestreo de 0.005s.

Comparación en simulación, Hover con PID y ADRC


0.3 1.2
REF
PID
0.2 ADRC 1

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.

Al verificar el comportamiento de los controladores en simulación, tanto la ley de control co-


mo los observadores son implementados en el dron. Son enviadas las mismas referencias que
en la simulación con el fin de comparar el comportamiento del dron en simulación y en expe-
rimentación, y así evaluar como el desempeño puede verse afectado por las incertidumbres
en los parámetros y las perturbaciones aleatorias.
Los resultados en la experimentación pueden verse en la figura 3-4, donde se nota que el
PID clásico se ve considerablemente más afectado que el control basado en ADRC. Aunque
26 3 Control PID basado en ADRC

Comparación en experimentación, Hover con PID y ADRC


0.3 0.8
ADRC
REF 0.75
0.2 PID
0.7
0.1
0.65

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.

3.3.1. Evaluación del desempeño en experimentación


Además de la comparación entre la simulación y la experimentación, el desempeño en el
rechazo de perturbaciones es evaluado para los dos controladores. Para esto, se diseña un
experimento que consiste en perturbar al sistema de forma controlada, al aplicar una fuerza
sobre el eje Y ∗ generada por un ventilador. Es de notar que aunque la fuente de viento se
encuentra siempre en la misma posición y es encendida en el mismo instante de tiempo, el
despegue del dron y la dinámica del viento no son completamente controlables, permitiendo
tener también variables y perturbaciones aleatorias.

Desempeño de los controladores en hover


El primer experimento consiste en mantener el dron en la misma posición haciendo hover,
el cuadricóptero despega a una altura de 0,7m, manteniendo en 0 su posición en el eje Y ∗ .
En este caso, el viento es encendido durante todo el experimento con el fin de evaluar que
el comportamiento en el rechazo de la perturbación se mantenga constante a lo largo del
tiempo. Adicionalmente, cada experimento es repetido tres veces con cada controlador para
mostrar que a pesar de que no es un experimento completamente controlado, no hay gran
variabilidad en las condiciones de vuelo.
3.3 Implementación del control PID basado en ADRC 27

Comparación con viento, Hover en X* y Y*


0.15 0.8

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.

Comparación con viento, Hover en el plano Y*Z*


ADRC PID
0.75 0.75
ADRC-Int 1 PID-Int 1
0.74 ADRC-Int 2 0.74 PID-Int 2
ADRC-Int 3 PID-Int 3
0.73 0.73

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.

El siguiente experimento consiste en encender y apagar el ventilador en un tiempo deter-


minado, así el dron estará en estado estacionario en el eje Y ∗ antes de que la perturbación
entre al sistema. Nuevamente se realizan tres intentos con cada controlador, el ventilador es
encendido en el segundo 10 y apagado en el segundo 20.

Comparación viento entre seg 10 y 20, Hover en Y* y Z*


0.04 0.8
Tiempo de
0.02 perturbación

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

Comparación con viento de seg 10 a 20, Hover en plano Y*Z*


ADRC PID
0.73 0.73
ADRC-Int 1 PID-Int 1
ADRC-Int 2 PID-Int 2
ADRC-Int 3 PID-Int 3
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.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.

Desempeño de los controladores en seguimiento de trayectorias

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.

La primera prueba es diseñada para evaluar el desempeño del controlador en el seguimiento


de trayectorias cuando no hay presencia de perturbaciones. Los resultados se pueden ver en
la figura 3-9, donde se puede ver el seguimiento de la trayectoria en cada uno de los ejes,
además de los resultados en el plano Y ∗ Z ∗ . La primera observación importante que se puede
ver, es que tanto el control PID como el control basado en ADRC muestran el mismo error
significativo en la fase, teniendo así un atraso en el seguimiento.
30 3 Control PID basado en ADRC

Comparación en experimentación, Flor


0.5
ADRC
0.4 1.2 PID 1.2
Referencia
0.3
0.2 1 1

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]

Figura 3-9: Comparación del desempeño en el seguimiento de la trayectoria tipo flor en un


ambiente sin perturbaciones.

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 ∗ .

Finalmente, se realiza la prueba de seguimiento de trayectorias en presencia de la perturba-


ción controlada. En el experimento el viento nuevamente se ubica con el fin de perturbar en
mayor medida en el eje Y ∗ y el viento se mantiene durante todo el tiempo de vuelo.

Comparación con viento, Flor


0.5 1.4
1.2 ADRC
0.4 PID
Referencia 1.2
0.3
1
0.2 1

0.1 0.8 0.8


Y [m]

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.

3.3.2. Evaluación de la robustez del sistema en experimentación


Además de los experimentos mostrados anteriormente, también fueron implementadas prue-
bas de robustez del sistema de forma experimental. Las pruebas consisten en cambiar la
masa m del dron, el cuál es el parámetro que acompaña a la señal de control en el sistema
de movimiento en el eje Z ∗ , como se ve en la ecuación (3-12), lo que significa que su incer-
tidumbre no puede ser incluida dentro de la perturbación total ξˆz . El cambio de la masa es
realizado al añadir un peso sobre el cuadricóptero, tal como se muestra en la figura.

Experimento de robustez en hover

Comparación con peso, Hover, Posición X* y Y*


0.9

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

Al igual que en las pruebas de desempeño, el primer experimento consiste en mantener al


dron en hover en la posición (0; 0; 0,7) y así analizar la respuesta del sistema ante el cambio
de la masa del dron. En los resultados de la prueba, mostrados en la figura 3-11, se puede
ver que el efecto de la masa adicional sobre el dron afecta en mayor medida a los tiempos
transitorios de cada controlador y más significativamente al control clásico PID. Además, en
la respuesta en el eje Y ∗ , se puede ver que las oscilaciones en el estado estacionario tienen
una amplitud mayor con el control PID, mostrando nuevamente que con este controlador,
los sistemas de cada eje se ven más afectados por el acople entre ellos.

Comparación con peso, Hover en plano XY


ADRC PID
0.73 0.73
ADRC-Int 1 PID-Int 1
ADRC-Int 2 PID-Int 2
0.725 ADRC-Int 3 0.725 PID-Int 3

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.

Experimento de robustez en seguimiento de trayectorias

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.

Comparación con peso bajo, Flor


0.5 Referencia
1.2 ADRC 1.2
0.4 PID
0.3
1 1
0.2
0.1
0.8
Y [m]

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]

Figura 3-13: Seguimiento de la trayectoria tipo flor al aumentar la masa a 31 g

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.

Comparación con mayor peso, flor


0.5 Referencia 1.2
1.2 ADRC
0.4 PID
0.3 1 1
0.2
0.1 0.8 0.8
Z [m]
Y [m]

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]

Figura 3-14: Seguimiento de la trayectoria tipo flor al aumentar la masa a


34 3 Control PID basado en ADRC

3.3.3. Conclusiones de la experimentación


A lo largo de esta sección se mostraron diferentes experimentos que comparaban el compor-
tamiento del control clásico PID con el control PID basado en ADRC.

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.

Un controlador ILC toma el error obtenido en el experimento y modifica la entrada al siste-


ma con el fin de que en la siguiente iteración se obtenga un resultado mejor. Esta estrategia
permite que cuando se requiera seguir trayectorias repetitivas se obtengan errores de segui-
miento muy bajos [Arimoto et al., 1984]. La diferencia de los controladores adaptativos o
con redes neuronales, es que el controlador ILC modifica directamente la entrada al sistema
y no los parámetros del controlador [Moore, 2012; Hunt et al., 1992].

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 ∗ .

4.1. Control ILC en configuración serie


La configuración en serie es conveniente cuando ya se cuenta con un sistema de realimentación
pues no modifica la señal de control directamente, sino que el cambio es realizado en las
señales de referencia. Para obtener la ley de control ILC se define que el dron junto con el
control de posición en lazo cerrado es un sistema lineal de la siguiente forma:

xoj (k + 1) = Ao xoj (k) + Bo rj (k)


(4-1)
yjo = Co xoj (k),

donde xoj representa el vector de estados el sistema de posicionamiento de cada eje, Ao , Bo


y Co son las matrices que representan el sistema de lazo cerrado, rj es la referencia generada
por el control ILC en cada iteración, yjo es la salida de los sistemas, es decir la posición en
cada uno de los ejes y j es el índice para la iteración. El sistema anterior es equivalente a:

yjo (k) = Co (qI − Ao )−1 Bo rj (k) + Co Ako xo0 . (4-2)


36 4 Control de aprendizaje iterativo-ILC

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:

1: Cada iteración finaliza en el mismo tiempo fijo, con k ∈ [0, T ] y T > 0.


2: El sistema dado por Go = Co (qI−Ao )−1 Bo , es asintóticamente estable. Lo cuál se cumple
al ser Go el diseño de un sistema de lazo cerrado.
3: El estado inicial del sistema xo0 es el mismo en cada iteración.
4: La dinámica del sistema es invertible, es decir que existe una única entrada rd (k) que
produce la salida deseada yd (k) [Bristow et al., 2006; Chen and Wen, 1999].

El objetivo es diseñar una ley de control recursiva de la siguiente forma:

rj+1 = F (rj (k), ej (k)), (4-3)

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

Ejabs = máx(|ej (k)|) (4-6)


k

4.1.1. Control ILC con el método P lead + D


Originalmente, el control ILC fue propuesto por Arimoto [Arimoto et al., 1984], el cuál
consistía en modificar la señal de control a partir de la derivada del error:

rj+1 (k) = rj (k) + γ(e(k + 1) − e(k)), (4-7)

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]

Error Abs [m]


0.8
0.2
0.6
0.15
0.4 0.1
0.2 0.05
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]
0.5 0.15
Error RMS [m]

Error RMS [m]


0.4
0.1
0.3
0.05
0.2

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

el valor de λ corresponde al número aproximado de muestras que componen el delay de cada


sistema, así se minimiza la diferencia entre la referencia y la salida del sistema [Freeman*
et al., 2005].

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.

4.1.2. Control ILC con el método de la Inversa


En general, un algoritmo de ILC modifica la entrada al sistema en cada intento, basándose
en el error de realimentación obtenidos en las iteraciones previas. Esto quiere decir que el de-
sempeño en el seguimiento irá mejorando al compararse con las iteraciones pasadas. Al final,
cuando el algoritmo converge, la señal de entrada al sistema ha sido modificada de tal forma
que se obtiene la trayectoria necesaria para producir la salida deseada. Matemáticamente, lo
anterior significa que la entrada del sistema, calculada por el algoritmo ILC, converge a la
solución de la inversa del sistema cuando se le aplica la salida deseada [Chen and Wen, 1999].

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

donde F es el filtro diseñado para eliminar el ruido.

4.2. Síntesis y simulación de los algoritmos


Los algoritmos planteados en la sección anterior se aplicaran para el sistema del dron, sin-
tonizándolos para cada uno de los ejes de movimiento. En esta sección cada algoritmo es
sintonizado teniendo como base el control clásico PID como control de realimentación y será
simulado antes de su implementación. Mientras que en el siguiente capítulo se utilizará como
base el control de realimentación basado en ADRC.

4.2.1. Control ILC con P lead +D


En este algoritmo primero se establece el valor del adelanto de fase λ, para esto se evalúa
cuál es el valor aproximado del desfase en cada uno de los ejes de movimiento. En la figura
4-2 se pueden ver la respuestas de la simulación, tanto para Y ∗ como para Z ∗ , además del
detalle para tener un valor aproximado del desfase. La respuesta en Z ∗ es más rápida que
Y ∗ , teniendo que en Z ∗ la respuesta empieza aproximadamente en 0,5 s, que corresponden
a 50 muestras. Por otro lado, en Y ∗ se tiene aproximadamente 0,6 s correspondientes a 60
muestras.

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

PID-ILC P lead D, Seguimiento en PID-ILC P lead D, Seguimiento en


simulación - Error en Y* simulación - Error en Z*
0.2 0.15

Error RMS [m]


Error RMS [m]

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

Error Abs [m]


Error Abs [m]

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.

El progreso en el seguimiento de trayectorias puede verse en la figura 4-4, donde se observa


que en cada intento, el seguimiento mejora con respecto al intento 1, como se puede ver
en los intentos 2 y 3, donde el resultado es un seguimiento más cercano a la trayectoria
deseada. Esta mejora se mantiene hasta llegar al seguimiento de mejor desempeño y la cuál
se mantiene en los siguientes intentos, como el 10, 20 y 30.

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

PID-ILC P lead D, Seguimiento en simulación


Intento 1 Intento 2 Intento 3
1.6 1.6 1.6

1.4 1.4 1.4

1.2 1.2 1.2


Z [m]

Z [m]

Z [m]
1 1 1

0.8 0.8 0.8

0.6 0.6 0.6


Ref. Int. 1 Ref. Int. 2 Ref. Int. 3
0.4 0.4 0.4
0.4 0.2 0 -0.2 -0.4 -0.6 0.4 0.2 0 -0.2 -0.4 -0.6 0.4 0.2 0 -0.2 -0.4 -0.6
Y [m] Y [m] Y [m]
Intento 10 Intento 20 Intento 1, 2 y 30
1.6 1.6 1.6

1.4 1.4 1.4

1.2 1.2 1.2


Z [m]

Z [m]
Z [m]

1 1 1

0.8 0.8 0.8

0.6 0.6 0.6


Ref. Int. 10 Ref. Int. 20
0.4 0.4 0.4
0.4 0.2 0 -0.2 -0.4 -0.6 0.4 0.2 0 -0.2 -0.4 -0.6 0.4 0.2 0 -0.2 -0.4 -0.6
Y [m] Y [m] Y [m]

Figura 4-4: Trayectoria obtenida en diferentes intentos con el control ILC P lead +D en
simulación

PID-ILC P lead D, Seguimiento en PID-ILC P lead D, Seguimiento en


* *
1.6
simulación - Ejes Y* y Z* simulación - Velocidad en Y y Z
Ref.
1.4 Int. 1 0.5
Int. 2
1.2 Int. 15
VZ [m/s]

Int. 30
Z [m]

1 Ref. Final 0 Ref.


Int. 1
0.8 Int. 2
0.6 -0.5 Int. 15
Int. 30
0.4
5 10 15 20 4 6 8 10 12 14 16 18 20
Tiempo [seg] Tiempo [seg]

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

(a) Cambios en el seguimiento de posición (b) Cambios en el seguimiento de velocidad


con control ILC tipo P lead +D con control ILC tipo P lead +D

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

4.2.2. Control ILC con la Inversa


La ley de control basada en la inversa necesita de la identificación de la planta en los dos
ejes. Para obtener la función de transferencia que representa el modelo de la planta es uti-
lizada una referencia cuadrada tanto en la simulación como en la experimentación. Con los
resultados obtenidos se pueden identificar los parámetros de las funciones de transferencia.
En la figura 4-6 pueden verse los resultados la identificación, donde se comparan los com-
portamientos obtenidos tanto en simulación como en experimentación. Puede notarse que
los resultados de la simulación son similares a los obtenidos en experimentación y aunque la
identificación tiene diferencias con respecto a estas, el control ILC aprenderá de las diferen-
cias y mejorará el seguimiento en cada iteración.

Identificación PID en el eje Z * Identificación PID en el eje Y *


1.4 0.35
Identificación
1.2 0.3 Experimental
Simulación
Referencia
1 0.25
0.8 0.2
Y [m]
Z [m]

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]

(a) Resultados de identificación con el (b) Resultados de identificación con el


control PID en el eje Z ∗ control PID en el eje Y ∗

Figura 4-6: Identificación con el control PID en experimentación y simulación

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

Adicional a la función de transferencia, el algoritmo basado en la inversa requiere del dise-


ño de filtros que permitan obtener una referencia suave. Los diagramas de la respuesta en
frecuencia de los filtros digitales diseñados pueden verse en la figura 4-7. Los filtros son dise-
ñados en Matlab con la función fir1, para el eje Z ∗ el filtro es de orden 70 con una frecuencia
de corte de 0.05, mientras que en el eje Y ∗ se usa un orden de 90 con la misma frecuencia
de corte.
4.2 Síntesis y simulación de los algoritmos 43

Filtro para el eje Z * Filtro para el eje Y*


0 0
Magnitud [dB]

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.

PID-ILC Inversa, Seguimiento en PID-ILC Inversa, Seguimiento en


*
simulación - Error en Y
0.15
simulación - Error en Z*
0.2
Error RMS [m]
Error RMS [m]

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

PID-ILC Inversa, Seguimiento en simulación


Intento 1 Intento 2 Intento 3
1.6 1.6 1.6

1.4 1.4 1.4

1.2 1.2 1.2


Z [m]

Z [m]
Z [m]
1 1 1

0.8 0.8 0.8

0.6 0.6 0.6


Ref. Int. 1
Int. 2 Ref. Ref. Int. 3
0.4 0.4 0.4
-0.4 -0.2 0 0.2 0.4 -0.4 -0.2 0 0.2 0.4 -0.4 -0.2 0 0.2 0.4
Y [m] Y [m] Y [m]
Intento 10 Intento 20 Intento 1, 2 y 30
1.6 1.6 1.6

1.4 1.4 1.4

1.2 1.2 1.2


Z [m]

Z [m]
Z [m]

1 1 1

0.8 0.8 0.8

0.6 0.6 0.6


Ref. Int. 10 Ref. Int. 20
0.4 0.4 0.4
-0.4 -0.2 0 0.2 0.4 -0.4 -0.2 0 0.2 0.4 -0.4 -0.2 0 0.2 0.4
Y [m] Y [m] Y [m]

Figura 4-9: Trayectoria obtenida en diferentes intentos con el control ILC con Inversa en
simulación

4-9, y el desempeño en el seguimiento se mantiene durante todo el experimento. En el in-


tento 3 se obtiene un seguimiento considerablemente más cercano al deseado y durante los
intentos intermedios, como el 10 y el 20, se tiene el comportamiento deseado.

PID-ILC Inversa, Seguimiento en PID-ILC Inversa, Seguimiento en


* * * *
simulación - Ejes Y y Z simulación - Velocidad en Y y Z
1.6
Ref.
1.4 Int. 1 0.4
Int. 2
1.2 Int. 15 0.2
VZ [m/s]

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]

(a) Cambios en el seguimiento de posición (b) Cambios en el seguimiento de velocidad


con control ILC con Inversa con control ILC con Inversa

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.

4.3. Implementación de los algoritmos ILC con el control


PID clásico
Después de la validación de los diseños en simulación, los algoritmos ILC son llevados a la
implementación en el dron. El algoritmo ILC inicia después del despegue del dron y finaliza
previo al aterrizaje. El experimento es realizado hasta el intento 15, asegurando que el dron
inicia en la misma posición, sin embargo al tener un control de realimentación con error estado
estacionario no se pueden garantizar las mismas condiciones iniciales después del despegue.
Adicionalmente, a lo largo del experimento el voltaje de la batería presentará variaciones y
de acuerdo al nivel de carga el dron puede presentar cambios en su comportamiento.

4.3.1. Control ILC con el método P lead +D

Método P lead D: Error en el eje Y * Método P lead D: Error en el eje Z*


0.2 0.2
Error RMS [m]

Error RMS [m]

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]

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

La primera implementación realizada es la del algoritmo basado en P lead +D con el control


de realimentación PID clásico. En la figura 4-11 se puede ver la dinámica del error obtenida
en la experimentación, teniendo como resultado que en ambos ejes de movimiento se llega
46 4 Control de aprendizaje iterativo-ILC

a la convergencia en un menor número de intentos al ser comparado con la simulación ,


teniendo como resultado un error de seguimiento cercano a cero y mostrando una reducción
en el error RMS de aproximadamente 15 cm con respecto al intento inicial. En el caso de la
dinámica del eje Y ∗ , mostrado en la figura 4-11a, la convergencia es obtenida en el tercer
intento, pero mostrando variaciones a lo largo del experimento en el error absoluto. Por otro
lado, en el eje Z ∗ , que puede verse en la figura 4-11b, se tiene también una convergencia en
el tercer intento pero un comportamiento más constante durante todo el experimento.

PID-ILC P lead D, Seguimiento en experimentación


Intento 1 Intento 2 Intento 3
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8


Z [m]

Z [m]

Z [m]
0.6 0.6 0.6

0.4 0.4 0.4


Ref. Ref. Ref.
Int. 1 Int. 2 Int. 3
0.2 0.2 0.2
-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]

Intento 10 Intento 15 Intento 1, 2 y 15


1.2 1.2 1.2

1 1 1

0.8 0.8 0.8


Z [m]

Z [m]
Z [m]

0.6 0.6 0.6

0.4 0.4 0.4


Ref. Ref.
Int. 10 Int. 15
0.2 0.2 0.2
-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 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

PID-ILC P lead D, Seguimiento en PID-ILC P lead D, Seguimiento en


experimentación - Ejes Y * y Z* experimentación - Velocidad en Y* y Z*
Ref. Int.10 Int. 1 Int. 15 Int. 2 Ref. Fin Ref. Int. 1 Int. 2 Int. 10 Int. 15
1.2 0.5

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]

(a) Cambios en el seguimiento de posición (b) Cambios en el seguimiento de velocidad


con control ILC con P lead +D con control ILC con P lead +D

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.

4.3.2. Control ILC con el método de la inversa


Con el algoritmo de la Inversa, se obtienen los resultados para la dinámica del error mostra-
dos en la figura 4-14, donde se puede ver que en el segundo intento, los dos ejes muestran
un error menor que el obtenido con el algoritmo P lead +D, sin embargo también se alcanza
la convergencia en los dos ejes en el tercer intento. En este caso, el error absoluto en el eje
Y ∗ muestra variaciones menores con respecto al algoritmo anterior, tal como se ve en la
figura 4-14a. En el caso del eje Z ∗ , mostrado en la figura 4-14b, el error presenta un pico
en el intento 8 ocasionado por el cambio de batería, sin embargo basta con un intento para
alcanzar nuevamente el desempeño deseado.

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

Método Inversa: Error en el eje Y* 0.15


Método Inversa: Error en el eje Z *
0.2

Error RMS [m]


Error RMS [m]

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]

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 (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

PID-ILC Inversa, Seguimiento en experimentación


Intento 1 Intento 2 Intento 3
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8


Z [m]

Z [m]
Z [m]

0.6 0.6 0.6

0.4 0.4 0.4


Ref. Ref. Ref.
Int. 1 Int. 2 Int. 3
0.2 0.2 0.2
-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
X[m] X[m] X[m]
Intento 5 Intento 10 Intento 1, 2 y 15
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8


Z [m]

Z [m]
Z [m]

0.6 0.6 0.6

0.4 0.4 0.4


Ref. Ref.
Int. 5 Int. 10
0.2 0.2 0.2
-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
X[m] X[m] X[m]

Figura 4-15: Trayectoria obtenida en diferentes intentos con el control ILC con Inversa en
experimentación

Finalmente, en el dominio del tiempo, la posición y la velocidad, mostradas en las figuras 4-


16a y 4-16b, respectivamente, muestran el desempeño obtenido a lo largo del experimento.
Los resultados muestran que desde el segundo intento el desfase es corregido, y que los picos
4.3 Implementación de los algoritmos ILC con el control PID clásico 49

de la respuesta son cercanos a los de la referencia deseada. La referencia final muestra el


adelanto requerido para obtener la corrección en la fase, y en este caso se tienen picos más
cercanos a los iniciales.
PID-ILC Inversa, Seguimiento en PID-ILC Inversa, Seguimiento en
experimentación - Ejes Y * y Z* experimentación - Velocidad en Y* y Z*
Ref. Int. 1 Int. 2 Int. 10 Int. 15 Ref. Fin. Ref. Int. 1 Int. 2 Int. 10 Int. 15
1.2 0.5

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]

(a) Cambios en el seguimiento de posición (b) Cambios en el seguimiento de velocidad


con control ILC con Inversa con control ILC con Inversa

Figura 4-16: Seguimiento de posición y velocidad en cada eje con el control ILC con Inversa
en experimentación

4.3.3. Conclusiones de la experimentación


En esta sección se mostraron los resultados experimentales de los algoritmos ILC - P Lead
+D e ILC - Inversa al ser implementados como complemento al control clásico PID en
cascada. Los resultados de la experimentación muestran que los dos algoritmos diseñados
logran que el dron siga las trayectorias de forma más precisa al llegar a la convergencia y
manteniendo el desempeño a lo largo de los intentos. Tanto en el eje Y ∗ como en el eje
Z ∗ se obtiene una reducción en el error RMS de 15 cm aproximadamente con respecto a la
primera iteración, mientras que en el error absoluto de 25 cm. Estos valores muestran que
al implementar un algoritmo ILC el desempeño en el seguimiento mejora significativamente
con respecto al seguimiento obtenido únicamente con el control de realimentación.

El algoritmo basado en la inversa de la planta muestra que tanto en el segundo como en el


tercer intento el desempeño es mejor al ser comparado con el ILC- P lead +D. Esto indica
que el modelo utilizado, a pesar de ser un modelo lineal con alta incertidumbre, es suficiente
para obtener un buen comportamiento en la dinámica del error.

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.

5.1. ILC-PID basado en ADRC con método P lead +D


Los resultados mostrados a continuación presentan el comportamiento en cada iteración del
seguimiento de trayectorias obtenido con el control de realimentación basado en ADRC y es
comparado con los resultados obtenidos con el control clásico PID. El primer algoritmo en
ser probado en experimentación es el P lead +D sin añadir ninguna perturbación durante
los experimentos. Como se puede ver en la figura 5-1, la dinámica del error con los dos
controladores de realimentación se comporta de forma similar, llegando al mismo valor y en
el mismo número de intentos a la convergencia. Tanto el control clásico PID como el control
PID basado en ADRC mantienen el desempeño durante los vuelos finales. De acuerdo a los
resultados del capítulo 3, los dos controladores de realimentación, el PID clásico y el basado
5.1 ILC-PID basado en ADRC con método P lead +D 51

en ADRC, tienen desempeño similares en el seguimiento de trayectorias cuando no hay per-


turbaciones en el ambiente, teniendo un error significativo en fase. Esa similitud ocasiona
que la dinámica del error a lo largo de las iteraciones sean equiparables, donde el error tanto
en fase como en amplitud va siendo corregido en cada intento.

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]

Error RMS [m]


0.15 ADRC ADRC
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 Error Abs [m] 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 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

ADRC-ILC P lead D, Seguimiento en experimentación


Intento 1 Intento 2 Intento 3
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8

Z [m]

Z [m]
Z [m]

0.6 0.6 0.6

0.4 Ref. 0.4 Ref. 0.4 Ref.


PID PID PID
ADRC ADRC ADRC
0.2 0.2 0.2
5 35 2 05 5 5 2 05 0.1 5 0.4 0.5 5 35 2 05 0.1 5 0.4 0.5
-0. -0. -0. -0. 0.1 0.2
5 0.4 0.5 -0. -0.
3 -0. -0. 0.2 -0. -0. -0. -0. 0.2
Y [m] Y [m] Y [m]
Intento 10 Intento 20 Intento 1, 2 y 30
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8


Z [m]

Z [m]
Z [m]

0.6 0.6 0.6

0.4 Ref. 0.4 Ref. 0.4


PID PID
ADRC ADRC
0.2 0.2 0.2
5 35 2 05 0.1 5 0.4 0.5 5 5 2 05 0.1 5 0.4 0.5 5 35 2 5 0.1 5 0.4 0.5
-0. -0. -0. -0. 0.2 -0. -0.3 -0. -0. 0.2 -0. -0. -0. -0.0 0.2
Y [m] Y [m] Y [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

ADRC-ILC P lead D, Seguimiento en experimentación - ADRC-ILC P lead D, Seguimiento en experimentación -


Ejes Y* y Z * Velocidad en Y* y Z *
Ref. Int. 1 Int. 2 Int. 10 Int. 20 Ref. Final Ref. Int. 1 Int. 2 Int. 10 Int. 15
1.2 0.5
1
VZ [m/s]
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]
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]

(a) Cambios en el seguimiento de posición (b) Cambios en el seguimiento de velocidad


con control ILC-PID basado en ADRC con control ILC-PID basado en ADRC
con método P lead +D con método P lead +D

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

5.1.1. Prueba de desempeño con viento desde el intento 7

*
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

Error RMS [m]


0.15 0.03

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]

Error Abs [m]


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
*
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]

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

Al añadir la perturbación desde el intento 7 se obtiene la dinámica del error mostrada en


la figura 5-4. Los resultados muestran que el viento aumenta la amplitud del error en los
dos ejes de movimiento. Como el viento es aplicado sobre el eje Y ∗ , el error es mayor en
esa componente, tal como se ve en la figura 5-4a. En general, durante todo el experimento
el control de realimentación basado en ADRC tiene un mejor desempeño, manteniendo el
error con una magnitud cercana a a la alcanzada en los intentos iniciales. Cuando entra
la perturbación en el intento 7 del experimento, el error aumenta considerablemente, sin
embargo, este disminuye en los siguientes intentos gracias al efecto del control ILC. Al
comparar la respuesta del control basado en ADRC y el control clásico PID, se puede ver que
la amplitud del error es cuatro veces mayor con el control clásico. Durante el experimento, el
error varía en los intentos siguientes a la entrada de la perturbación debido a la aleatoriedad
del viento y aunque la magnitud del error disminuye con el control ILC, el control PID no
logra llegar al valor de estado estacionario alcanzado en el experimento sin perturbación.

ILC P lead D, Rechazo de perturbación desde intento 7


Intento 6 Intento 7 Intento 8
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8


Z [m]
Z [m]

Z [m]

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2


-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]
Intento 10 Intento 13 Intento 15
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8


Z [m]
Z [m]

Z [m]

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 Ref. PID ADRC 0.2

-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

En la figura 5-5, se ve el resultado del seguimiento de trayectorias en diferentes intentos tan-


to con el control de realimentación PID como con el control basado en ADRC. Se puede ver
que en el intento 6, previo a que entre la perturbación, aunque los dos controladores tienen
buen desempeño, el control basado en ADRC sigue de forma más cercana la trayectoria. En
el intento 7, a la entrada del viento, el control de realimentación basado en ADRC muestra
tener una capacidad significativamente mayor de rechazar la perturbación, manteniendo un
5.1 ILC-PID basado en ADRC con método P lead +D 55

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]

(a) Cambios en el seguimiento de posición (b) Cambios en el seguimiento de velocidad


con control ILC-PID basado en ADRC con control ILC-PID basado en ADRC
con método P lead +D con perturbación con método P lead +D con perturbación
desde el intento 7 desde el intento 7

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.

5.1.2. Prueba de desempeño con viento desde el intento 7 hasta el


intento 10
En el segundo experimento, la perturbación es añadida nuevamente en el intento 7 pero
es aplicada únicamente hasta el intento 10. Con el experimento se pretende observar la
capacidad de cada uno de los controladores para retomar a su desempeño original después
de que las trayectorias han sido modificadas por el control ILC al tener perturbación.
56 5 Control ILC con PID basado en ADRC

*
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

Error RMS [m]


Error RMS [m]

0.15 ADRC 0.03

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]


Error Abs [m]

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.

ILC P lead D, Rechazo de perturbación entre intento 7 y 10


Intento 7 Intento 8 Intento 10
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8

Z [m]
Z [m]

Z [m]
0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2


-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]
Intento 11 Intento 22 Intento 15
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8

Z [m]
Z [m]
Z [m]

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 Ref. PID ADRC 0.2


-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-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

El seguimiento en el plano Y ∗ Z ∗ en este experimento se muestra en la figura 5-8. Al entrar


el viento, en el intento 7, se puede ver que el desempeño del control PID es considerable-
mente más bajo que el conseguido con el controlador basado en ADRC, el cuál logra un
seguimiento cercano a la referencia a pesar de la perturbación. En los siguientes intentos, el
control ILC modifica la referencia con el fin de reducir el error causado por la perturbación.
Como resultado, se puede ver que el seguimiento mejora en el intento 8, y que en el intento
10, el seguimiento con el control PID es más cercano a la referencia pero aún sin conseguir
el mismo desempeño que con el control ADRC. Como en el control basado en ADRC, el
algoritmo ILC no requirió modificar la trayectoria considerablemente por la presencia de la
perturbación, en el intento 11, al retirar el viento, no se ve un cambio en el desempeño obte-
nido. Por otro lado, el cambio de referencia con el control PID ocasiona que el desempeño se
vea notablemente afectado. Después de la salida de la perturbación, el algoritmo ILC ajusta
la referencia, y se puede ver que en el intento 12 ya se obtiene un buen resultado con el
control PID.

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

se ve que el seguimiento se ve mayormente afectado en el eje Y ∗ . Lo mismo sucede con la


velocidad, tal como se ve en la subfigura 5-9b.

ILC P lead D, Rechazo perturbación entre intento


7 y 10, Posición
Entrada del viento Salida del viento

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]

(a) Cambios en el seguimiento de posición con control ILC-PID basado en ADRC


con método P lead +D con perturbación desde el intento 7 al 10
ILC P lead D, Rechazo perturbación entre intento
7 y 10, Velocidad
Entrada Viento Salida Viento
0.5 0.5
VZ [m/s]

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]

(b) Cambios en el seguimiento de velocidad con control ILC-PID basado en ADRC


con método P lead +D con perturbación desde el intento 7 al 10

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

5.2. ILC-PID basado en ADRC con método de la Inversa


En esta sección se mostrarán los resultados de la experimentación con el algoritmo ILC con
el método de la Inversa. Sin añadir la perturbación durante el experimento se tiene la diná-
mica del error mostrada en la figura 5-10. Los resultados muestran que los dos controladores
de realimentación, el PID clásico y el basado en ADRC, tienen un comportamiento similar
con el método de la inversa. En este caso se tiene que el algoritmo ILC llega a convergencia
aproximadamente dos intentos antes que con el método P lead +D, lo cuál quiere decir que
el error en fase es corregido más rápidamente. Cuando los sistemas llegan a convergencia,
los dos controladores conservan el desempeño durante los intentos posteriores, manteniendo
un error con amplitud baja.

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]

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

ADRC-ILC Inversa, Seguimiento en experimentación


Intento 1 Intento 2 Intento 3
1.2 1.2 Ref. PID ADRC 1.2

1 1 1

Z [m]

Z [m]
Z [m]

0.8 0.8 0.8

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2


-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]
Intento 10 Intento 15 Intento 1, 2 y 15
1.2 1.2 1.2

1 1 1
Z [m]

Z [m]
Z [m]

0.8 0.8 0.8

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2


-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-11: Trayectoria obtenida en diferentes intentos con el control ILC-PID basado en
ADRC con método Inversa en experimentación

ADRC-ILC Inversa, Seguimiento en experimentación - ADRC-ILC Inversa, Seguimiento en


Ejes Y* y Z * experimentación - Velocidad en Y * y Z *
Ref. Int. 1 Int. 2 Int. 10 Int. 20 Ref. Final Ref. Intento 1 Intento 2 Intento 10 Intento 15
1.2 0.5
1
Vz [m/s]
Z [m]

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]

(a) Cambios en el seguimiento de posición con (b) Cambios en el seguimiento de velocidad


control ILC-PID basado en ADRC con mé- con control ILC-PID basado en ADRC con
todo Inversa método Inversa

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

5.2.1. Prueba de desempeño con viento desde el intento 7


El primer experimento, donde es añadida la perturbación desde el intento 7 hasta el intento
final, muestra nuevamente que el control de realimentación basado en ADRC tiene un mejor
desempeño en el rechazo de perturbaciones.

ILC Inversa, Rechazo perturbación desde intento 7, Error en Y *


Gráfica de error Detalle gráfica error
0.2 0.03
PID
ADRC
Error RMS [m]

Error RMS [m]


0.15
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
Error Abs [m]

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.

ILC Inversa, Rechazo de perturbación desde intento 7


1.2 Intento 6 1.2 Intento 7 1.2 Intento 8

1 1 1

0.8 0.8 0.8

Z [m]
Z [m]
Z [m]

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2


-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]
1.2 Intento 10 1.2 Intento 13 1.2 Intento 15

1 1 1

0.8 0.8 0.8


Z [m]

Z [m]
Z [m]

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 Ref. PID ADRC 0.2


-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-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

La figura 5-14 muestra el seguimiento de los dos controladores de realimentación en el plano


Y ∗ Z ∗ . Los resultados muestran que antes de la perturbación, en el intento 6, aunque con los
dos controladores el dron seguía cercanamente la trayectoria, el control basado en ADRC
tiene un error menor. En la entrada de la perturbación, en el intento 7, se puede ver como
el control PID es notablemente más afectado, mientras que el control basado en ADRC
consigue un mejor rechazo de las perturbaciones. En los siguientes intentos se puede ver
que aunque el seguimiento mejora, el algoritmo ILC con el método de la Inversa no logra
eliminar el error cuando actúa junto con el control de realimentación PID clásico.

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]

(a) Cambios en el seguimiento de posición (b) Cambios en el seguimiento de velocidad


con control ILC-PID basado en ADRC con control ILC-PID basado en ADRC
con método Inversa con perturbación con método Inversa con perturbación
desde el intento 7 desde el intento 7

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

5-15a) como el seguimiento en velocidad (5-15b) se ven afectados por la perturbación, la


cuál genera un error en amplitud. En general, se puede ver que cada uno de los intentos
realizados con el control basado en ADRC muestran un mejor desempeño que con el control
PID, lo que quiere decir que el control basado en ADRC tiene una mayor capacidad de
rechazar la perturbación.

5.2.2. Prueba de desempeño con viento desde el intento 7 hasta el


intento 10
En la última prueba se añade la perturbación en el intento 7, sosteniéndola hasta el intento
10, con el fin de evaluar si el algoritmo de la Inversa, con cada uno de los controladores de
realimentación, puede volver a su desempeño inicial.

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

ILC Inversa, Rechazo perturbación entre intento 7 y 10, Error en Y*


Gráfica de error Detalle gráfica error
0.2 0.03
ADRC

Error RMS [m]


Error RMS [m]

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

Error Abs [m]


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 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]

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]

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

ILC Inversa, Rechazo de perturbación entre intento 7 y 10


Intento 7 Intento 8 Intento 10
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8

Z [m]
Z [m]

Z [m]
0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 0.2


-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]
Intento 11 Intento 12 Intento 15
1.2 1.2 1.2

1 1 1

0.8 0.8 0.8

Z [m]
Z [m]

Z [m]

0.6 0.6 0.6

0.4 0.4 0.4

0.2 0.2 Ref. PID ADRC 0.2


-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-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

al sistema a su desempeño inicial. Por el contrario, el control basado en ADRC mantiene


el desempeño en el seguimiento durante todo el experimento a pesar de la perturbación,
mostrando un efecto mínimo tanto a la entrada como a la salida del viento.

El seguimiento en el plano Y ∗ Z ∗ se puede ver en la figura 5-17. A la entrada del viento,


en el intento 7, se ve que con el control PID se genera un error mayor en el seguimiento
de la trayectoria, mientras que el efecto con control basado en ADRC es mucho menor.
Los intentos siguientes muestran como mejora la respuesta de ambos controladores gracias
al efecto del ILC, llegando a tener seguimientos cercanos a la trayectoria deseada. En el
intento 11 se ve la salida de la perturbación, los resultados muestran que, nuevamente, el
control PID es el más afectado y aunque el algoritmo ILC actúa en los intentos posteriores,
no se consigue un seguimiento tan cercano como el obtenido con el control basado en ADRC.

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

ILC Inversa, Rechazo perturbación entre intento


7 y 10, Posición
Entrada del viento Salida del viento

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]

(a) Cambios en el seguimiento de posición 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, Velocidad
Entrada Viento Salida Viento
0.5 0.5
Vz [m/s]

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]

(b) Cambios en el seguimiento de velocidad con control ILC-PID basado en ADRC


con método Inversa con perturbación desde el intento 7 al intento 10

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

5.3. Conclusiones de la experimentación


En este capítulo, los resultados muestran en general, que el control de realimentación ba-
sado en ADRC permite rechazar las perturbaciones, de tal forma que el desempeño en el
seguimiento conseguido por el control ILC se mantiene a pesar de añadir viento durante
los experimentos. Al contrario, el control de realimentación clásico PID se ve notablemen-
te afectado en el desempeño en el seguimiento de trayectorias al tener viento durante el vuelo.

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

de realimentación PID clásico, no corrige el efecto de la perturbación. Por otro lado, a la


salida de la perturbación, como con el control de realimentación basado en ADRC no se
generan grandes cambios en la trayectoria, no se ve un efecto significativo con ninguno de
los dos algoritmos ILC, permitiendo observar que el control de realimentación basado en
ADRC aumenta significativamente el rechazo de perturbaciones.

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.

Para aumentar la capacidad de rechazar perturbaciones es diseñado un observador de estados


extendidos (ESO), el cuál tiene un estado adicional que estima la perturbación total presente
en el sistema. Una ventaja de este observador es que es diseñado a partir de un modelo lineal
simplificado, y cada una de las dinámicas despreciadas o aproximadas son incluidas en el
estado extendido. Aunque en simulación los resultados muestran que tanto el control PID
como en control basado en ADRC tienen error 0 a entradas tipo paso, en experimentación
se ve que las perturbaciones del ambiente y la incertidumbre del sistema ocasionan un error
de estado estacionario con el control PID. Adicionalmente, los experimentos realizados de
hover y de seguimiento de trayectorias muestran que el control basado en ADRC tiene una
capacidad significativamente mayor de rechazar perturbaciones, obteniendo una desviación
menor de desplazamiento durante el hover y un seguimiento más cercano a las referencias.

Como los dos controladores de realimentación implementados no tienen la capacidad de co-


rregir el error en fase de trayectorias repetitivas, se diseñó un control de aprendizaje iterativo
(ILC) utilizando dos algoritmos de aprendizaje, P lead + D e Inversa. En la implementación
de los algoritmos se puede observar que los dos controladores de realimentación, cuando no
hay perturbación, tienen respuestas similares en la dinámica del error, llegando a convergen-
cia con el método P lead +D en 4 intentos, mientras que con la Inversa en 3 intentos. Los
resultados muestran que los algoritmos de aprendizaje corrigen tanto el error de fase como el
error en amplitud, obteniendo como resultado un seguimiento muy cercano a la trayectoria
deseada.
6.2 Recomendaciones 71

Finalmente, la contribución principal consiste en implementar el control de realimentación


basado en ADRC junto con los dos algoritmos de aprendizaje, comparando su desempeño
en el rechazo de perturbaciones frente al desempeño del control clásico PID. Los experimen-
tos muestran que al añadir viento, el error con el control PID aumenta considerablemente
mientras que el control basado en ADRC mantiene el desempeño. A pesar de que la pertur-
bación entra en el mismo instante de tiempo y que la fuente de aire está fija en el espacio,
hay variables no controlables que ocasionan aleatoriedad. Los algoritmos ILC modifican la
referencia en cada iteración de acuerdo al error de seguimiento obtenido, es decir que actúa
en lazo abierto, lo anterior implica que la referencia modificada únicamente podría corregir
el error ocasionado por perturbaciones repetitivas. Al mantener la perturbación durante to-
do el experimento, se puede ver que el control de realimentación PID no logra corregir por
completo el error generado por el viento con ninguno de los dos algoritmos de aprendizaje.
Cuando la perturbación es retirada en el intento 10, se puede ver que aunque el método de
la Inversa puede corregir más rápidamente cuando entra la perturbación, en la salida tiene
una respuesta más lenta comparada al método de P lead +D.

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.

En general, durante cualquier experimentación es importante que los investigadores no estén


dentro del área de vuelo y que las pruebas sean realizadas siguiendo todos los protocolos
de seguridad. Si se realizan cambios en el control de realimentación se debe considerar la
72 6 Conclusiones y recomendaciones

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.

En caso de no tener un espacio completamente despejado, los objetos al rededor (por


ejemplo los trípodes de las bases) deben ser recubiertos con materiales suaves que
amortigüen la caída del dron en caso de choque, el suelo también debe permitir una
caída suave.

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.

Alvarez-Valle, R. S. and Rivadeneira, P. S. (2019). Design of controllers to track trajectories


for multi-rotor unmanned aerial vehicles. In 2019 IEEE 4th Colombian Conference on
Automatic Control (CCAC), pages 1–6. IEEE.

Amezquita-Brooks L., Liceaga-Castro E., G.-S. M. G.-S. O. M.-V. D. (2017). Towards a


standard design model for quad-rotors: A review of current models, their accuracy and a
novel simplified model. Progress in Aerospace Sciences, 95:1–23.

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.

Ardakani, M. M. G., Khong, S. Z., and Bernhardsson, B. (2017). On the convergence of


iterative learning control. Automatica, 78:266–273.
74 Bibliografía

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.

Bitcraze, Crazyflie 2.1 (2022). www.bitcraze.io/products/crazyflie-2-1/, 14 de mayo


de 2022.

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.

Christopher D. McKinnon, A. P. S. (2020). Estimating and reacting to forces and torques


resulting from common aerodynamic disturbances acting on quadrotors. Robotics and
Autonomous Systems, 123.

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.

Cortés-Romero, J., Ramos, G. A., and Coral-Enriquez, H. (2014). Generalized proportional


integral control for periodic signals under active disturbance rejection approach. ISA
transactions, 53(6):1901–1909.

Criado, R. M. and Rubio, F. R. (2015). Autonomous path tracking control design for a
comercial quadcopter. IFAC-PapersOnLine, 48(9):73–78.

Degen, N. and Schoellig, A. P. (2014). Design of norm-optimal iterative learning controllers:


The effect of an iteration-domain kalman filter for disturbance estimation. In 53rd IEEE
Conference on Decision and Control, pages 3590–3596. IEEE.

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.

Hassanalian, M. and Abdelkefi, A. (2017). Classifications, applications, and design challenges


of drones: A review. Progress in Aerospace Sciences, 91:99–131.

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.

J.D.C. Tsouros, A. Triantafyllou, S. B. and Sarigannidis, P. G. (2019). Data acquisition


and analysis methods in uav- based applications for precision agriculture. pages 377–384,
Santorini Island Greece.
76 Bibliografía

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

Luukkonen, T. (2011). Modelling and control of quadcopter. Independent research project


in applied mathematics, Espoo, 22.

M. Zhaowei, H. Tianjiang, S. L. K. W. Z. B. and Kaidi, Y. (2015). An iterative learning


controller for quadrotor uav path following at a constant altitude. pages 4406–4411,
Hangzhou.

Madoński, R. and Herman, P. (2015). Survey on methods of increasing the efficiency of


extended state disturbance observers. volume 56, pages 18–27. Elsevier.

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.

Moore, K. L. (2012). Iterative learning control for deterministic systems.

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.

Schoellig, A. P., Mueller, F. L., and D’andrea, R. (2012). Optimization-based iterative


learning for precise quadrocopter trajectory tracking. Autonomous Robots, 33(1):103–127.

Sira-Ramírez, H. (2011). On the linear control of the quad-rotor system. In Proceedings of


the 2011 American Control Conference, pages 3178–3183. IEEE.

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.

Trong-Toan Tran, S. S. G. . W. H. (2018). Adaptive control of a quadrotor aerial vehicle


with input constraints and uncertain parameters. International Journal Control, pages
4406–4411.

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.

También podría gustarte