You are on page 1of 326

ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)

INGENIERO 200803085

MODELADO Y CONTROL DE UN
CUADRICPTERO

Autor: LUIS SEVILLA FERNNDEZ


Director: JUAN LUIS ZAMORA MACHO
JOS PORRAS GALN
CESREO FERNNDEZ MARTNEZ
Madrid
Junio y 2014

AUTORIZACIN PARA LA DIGITALIZACIN, DEPSITO Y


DIVULGACIN EN ACCESO ABIERTO ( RESTRINGIDO) DE
DOCUMENTACIN

1. Declaracin de la autora y acreditacin de la misma.


El autor D. LUIS SEVILLA FERNANDEZ, como ESTUDIANTE
UNIVERSIDAD PONTIFICIA COMILLAS (COMILLAS), DECLARA

de

la

que es el titular de los derechos de propiedad intelectual, objeto de la


presente cesin, en relacin con la obra MODELADO Y CONTROL DE UN
CUADRICOPTERO1, que sta es una obra original, y que ostenta la condicin
de autor en el sentido que otorga la Ley de Propiedad Intelectual como
titular nico o cotitular de la obra.
En caso de ser cotitular, el autor (irmante) declara asimismo que cuenta
con el consentimiento de los restantes titulares para hacer la presente
cesin. En caso de previa cesin a terceros de derechos de explotacin de la
obra, el autor declara que tiene la oportuna autorizacin de dichos titulares
de derechos a los ines de esta cesin o bien que retiene la facultad de
ceder estos derechos en la forma prevista en la presente cesin y as lo
acredita.
2. Objeto y ines de la cesin.
Con el in de dar la mxima difusin a la obra citada a travs del Repositorio
institucional de la Universidad y hacer posible su utilizacin de forma libre y
gratuita ( con las limitaciones que ms adelante se detallan) por todos los
usuarios del repositorio y del portal e-ciencia, el autor CEDE a la
Universidad Pontiicia Comillas de forma gratuita y no exclusiva, por el
mximo plazo legal y con mbito universal, los derechos de digitalizacin,
de archivo, de reproduccin, de distribucin, de comunicacin pblica,
incluido el derecho de puesta a disposicin electrnica, tal y como se
describen en la Ley de Propiedad Intelectual. El derecho de transformacin
se cede a los nicos efectos de lo dispuesto en la letra (a) del apartado
siguiente.
3. Condiciones de la cesin.

Proyecto in de carrera

Sin perjuicio de la titularidad de la obra, que sigue correspondiendo a su


autor, la cesin de derechos contemplada en esta licencia, el repositorio
institucional podr:
(a) Transformarla para adaptarla a cualquier tecnologa susceptible de
incorporarla a internet; realizar adaptaciones para hacer posible la
utilizacin de la obra en formatos electrnicos, as como incorporar
metadatos para realizar el registro de la obra e incorporar marcas de agua
o cualquier otro sistema de seguridad o de proteccin.
(b) Reproducirla en un soporte digital para su incorporacin a una base de
datos electrnica, incluyendo el derecho de reproducir y almacenar la obra
en servidores, a los efectos de garantizar su seguridad, conservacin y
preservar el formato. .
(c) Comunicarla y ponerla a disposicin del pblico a travs de un archivo
abierto institucional, accesible de modo libre y gratuito a travs de internet. 2
(d) Distribuir copias electrnicas de la obra a los usuarios en un soporte
digital. 3

4. Derechos del autor.


El autor, en tanto que titular de una obra que cede con carcter no
exclusivo a la Universidad por medio de su registro en el Repositorio
Institucional tiene derecho a:
a) A que la Universidad identiique claramente su nombre como el autor o
propietario de los derechos del documento.
b) Comunicar y dar publicidad a la obra en la versin que ceda y en otras
posteriores a travs de cualquier medio.
2

En el supuesto de que el autor opte por el acceso restringido, este apartado


quedara redactado en los siguientes trminos:
(c) Comunicarla y ponerla a disposicin del pblico a travs de un archivo
institucional, accesible de modo restringido, en los trminos previstos en el
Reglamento del Repositorio Institucional

En el supuesto de que el autor opte por el acceso restringido, este apartado


quedara eliminado.

ii

c) Solicitar la retirada de la obra del repositorio por causa justiicada. A tal


in deber ponerse en contacto con el vicerrector/a de investigacin
(curiarte@rec.upcomillas.es).
d) Autorizar expresamente a COMILLAS para, en su caso, realizar los
trmites necesarios para la obtencin del ISBN.
d) Recibir notiicacin fehaciente de cualquier reclamacin que puedan
formular terceras personas en relacin con la obra y, en particular, de
reclamaciones relativas a los derechos de propiedad intelectual sobre ella.
5. Deberes del autor.
El autor se compromete a:
a) Garantizar que el compromiso que adquiere mediante el presente escrito
no infringe ningn derecho de terceros, ya sean de propiedad industrial,
intelectual o cualquier otro.
b) Garantizar que el contenido de las obras no atenta contra los derechos al
honor, a la intimidad y a la imagen de terceros.
c) Asumir
toda reclamacin o responsabilidad, incluyendo las
indemnizaciones por daos, que pudieran ejercitarse contra la Universidad
por terceros que vieran infringidos sus derechos e intereses a causa de la
cesin.
d) Asumir la responsabilidad en el caso de que las instituciones fueran
condenadas por infraccin de derechos derivada de las obras objeto de la
cesin.
6. Fines y funcionamiento del Repositorio Institucional.
La obra se pondr a disposicin de los usuarios para que hagan de ella un
uso justo y respetuoso con los derechos del autor, segn lo permitido por la
legislacin aplicable, y con ines de estudio, investigacin, o cualquier otro
in lcito. Con dicha inalidad, la Universidad asume los siguientes deberes y
se reserva las siguientes facultades:
a) Deberes del repositorio Institucional:
- La Universidad informar a los usuarios del archivo sobre los usos
permitidos, y no garantiza ni asume responsabilidad alguna por otras formas
en que los usuarios hagan un uso posterior de las obras no conforme con la
legislacin vigente. El uso posterior, ms all de la copia privada, requerir

iii

que se cite la fuente y se reconozca la autora, que no se obtenga beneicio


comercial, y que no se realicen obras derivadas.
- La Universidad no revisar el contenido de las obras, que en todo caso
permanecer bajo la responsabilidad exclusiva del autor y no estar
obligada a ejercitar acciones legales en nombre del autor en el supuesto de
infracciones a derechos de propiedad intelectual derivados del depsito y
archivo de las obras. El autor renuncia a cualquier reclamacin frente a la
Universidad por las formas no ajustadas a la legislacin vigente en que los
usuarios hagan uso de las obras.
- La Universidad adoptar las medidas necesarias para la preservacin de la
obra en un futuro.
b) Derechos que se reserva el Repositorio institucional respecto de las obras
en l registradas:
- retirar la obra, previa notiicacin al autor, en supuestos suicientemente
justiicados, o en caso de reclamaciones de terceros.

Madrid, a 3 de Junio de 2014

ACEPTA

Fdo:.................................

iv

ESCUELA TCNICA SUPERIOR DE INGENIERA (ICAI)

INGENIERO 200803085

MODELADO Y CONTROL DE UN
CUADRICPTERO

Autor: LUIS SEVILLA FERNNDEZ


Director: JUAN LUIS ZAMORA MACHO
JOS PORRAS GALN
CESREO FERNNDEZ MARTNEZ
Madrid
Junio y 2014


MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014

MODELADO Y CONTROL DE UN

CUADRICOPTERO

Autor:
Sevilla Fernandez,
Luis
Directores: Zamora Macho, Juan Luis.
Jose.

Porras Galan,

Fernandez
Martnez, Cesareo.
Entidad colaboradora: ICAI Universidad Pontificia Comillas.

ResumenEl objetivo de la lnea de trabajo donde se enmarca este proyecto es modelar y controlar un vehculo aereo
no tripulado

(UAV) provisto de cuatro rotores (cuadricoptero)


accionados mediante motores brushless. El sistema de control permitira el vuelo
guiada mediante una emisora de radiocontrol y la navegacion
autonoma

estacionario, la navegacion
mediante sensores de distancia.
Con el fin de poder utilizar el vehculo en docencia, se implantara tanto el modelo como las estrategias de control que se exploren en
el entorno Matlab/Simulink.

Index TermsCuadricoptero,
UAV, Proyecto, ICAI, Comillas.

1.

I NTRODUCCI ON

N los ultimos
anos
hemos sido testigos de un
crecimiento importante en el desarrollo de vehculos
aereos no tripulados (UAV), especialmente de despegue

y aterrizaje vertical (VTOL), debido a sus multiples


aplicaciones tales como vigilancia de instalaciones,

acceso a zonas de riesgo, captacion


de imagenes
aereas, etc. Ademas este tipo de plataformas son
muy apropiadas para la docencia, pues integran una
gran diversidad de a reas de conocimiento tales como

mecanica del solido


rgido (momentos y tensores

de inercia, matrices de rotacion,


a ngulos de Euler),

matematica aplicada (cuaterniones), electronica


de

potencia (controladores electronicos


de velocidad),
(el control del vehculo), etc.
automatizacion
El objetivo de la lnea de trabajo donde se enmarca
este proyecto es modelar y controlar un vehculo aereo

no tripulado provisto de cuatro rotores (cuadricoptero)


accionados mediante motores brushless para vuelo en
interiores (ver figura 1). El sistema de control permitira el
guiada mediante una
vuelo estacionario, la navegacion
autonoma

emisora de radiocontrol y la navegacion


mediante sensores de distancia. Con el fin de poder utilizar
el vehculo en docencia, se desarrollara tanto el modelo
las estrategias de control y estimacion

de simulacion,

de estado y los driver blocks de sensores y generacion

automatica de codigo
en el entorno Matlab/Simulink.
Ademas, este proyecto aportara a la Universidad Ponti de UAV para
ficia Comillas experiencia en la operacion

facilitar el desarrollo de nuevas lneas de investigacion


en este a mbito.

El cuadricoptero
empleado en este proyecto (ver figura
1) esta accionado por cuatro motores brushless situados

en los extremos de sus brazos y regulados a traves

de cuatro controladores electronicos


de velocidad (ESC).
Cuenta con una tarjeta controladora Crius, con un microprocesador ATMega 2560 de Arduino, y con una unidad

inercial de medidas (IMU) compuesta por acelerometros,

entre el
giroscopos
y magnetometros.
La comunicacion
dispositivo y el piloto se realiza a traves de una emisora
del dispode radio control. Finalmente, la alimentacion
sitivo se realiza mediante una batera LiPo.

Figura 1: Cuadricoptero
y emisora

2.

E STADO

DEL

A RTE

y rotacion
de un cuaLos movimientos de traslacion

dricoptero
se controlan mediante variaciones en la velocidad de giro de sus rotores que definen las fuerzas
de empuje vertical en cada uno de ellos. As pues,
para que el dispositivo ascienda/descienda se debe
de todos
aumentar/disminuir la velocidad de rotacion
los motores simultaneamente. Las traslaciones en las


MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014

tres direcciones del espacio se producen generando un


empuje diferencial entre dos rotores alternos. As pues,
x, se
para producir un desplazamiento en la direccion
debera reducir la velocidad del rotor 2 de la figura 2
y aumentar la del 4. Finalmente, el incremento de la
de los motores 1 y 3 permitira al
velocidad de rotacion

dispositivo realizar una guinada


dextrogira,
mientras
que el aumento de la velocidad de 2 y 4 resulta en una

guinada
levogira.

controles PID como el disenado


por Bouabdallah [11].
Es importante remarcar que en internet hay disponible
una gran variedad de firmwares para controladores
de vuelo basados en Arduino como el Multiwii o el
Mega-Pirate disponibles para el controlador Crius y
el firmware APM para el controlador Ardu-Pilot. Sin
embargo, no se conocen versiones disponibles para el
entorno Matlab Simulink.
de cuadricopteros

Finalmente, la aplicacion
en cursos
de control avanzado en distintas universidades esta au

mentando significativamente durante los ultimos


anos,
como por ejemplo en la Universidad de Hong Kong [12],
la Universodad de Illinois o el Swiss Federal Institute of
Technology, entre otros muchos casos.

3.

Figura 2: Esquema de los pares generados por los rotores


El modelado matematico de una aeronave es un tema
ampliamente estudiado en la literatura. En la actualidad,
existe una gran variedad de modelos tanto para vuelos
interiores [1],[2],[3] como para vuelos exteriores, en
cuyo caso se incluyen los efectos aerodinamicos [4],[5].
de un modelo es crtica tanto
La correcta definicion
de la estrategia de control como para los
para el diseno

estudios de simulacion.
El control asume la disponibilidad de las variables
de la orientacion
del
de estado, es decir la estimacion

cuadricoptero
definida a partir de los a ngulos de Euler.
Los estimadores de estado mas comunes para este tipo
son:
de aplicacion
El filtro complementario [6]: se basa en una pon de la estimacion
de los a ngulos de Euler
deracion

realizada a partir de las medidas de los acelerome


tros y los giroscopos.
Hace uso de un filtro paso

bajo para eliminar el ruido del acelerometro


(alta
frecuencia) y de un filtro paso alto para eliminar el

bias de los giroscopos


(baja frecuencia).
El filtro de Kalman [7]: Se trata de un algoritmo de
de los a ngulos de Euler a partir de un
estimacion
modelo estocastico del sistema de medida, basado

en los acelerometros
y giroscopos.
a la estrategia de control, existe una
En relacion
gran variedad de algoritmos propuestos en la

literatura debido a que el modelo del cuadricoptero


es multivariable y no lineal. Entre los algoritmos
propuestos destacan los algoritmos basados en la
teora de Lyapunov de H.Voos [1] y Bouabdallah
del estado
[3], los controladores por realimentacion

como el control LQ disenado


por Hoffmann [10] y los

M ODELADO

El modelo matematico del cuadricoptero


viene dado
por el conjunto de ecuaciones que describen el comportamiento fsico de la aeronave. En este proyecto se han
desarrollado dos modelos:
Modelo no lineal completo. Conjunto de ecuaciones que permite representar de forma detallada el

comportamiento del cuadricoptero


en vuelo. Las
entradas del modelo son las tensiones aplicadas a
los cuatro motores brushless, y las salidas son las
posiciones y velocidades en los seis grados de liber
fundamental
tad del cuadricoptero.
La aplicacion
de este modelo es comparar diferentes estrategias
lo mas realista
de control mediante una simulacion
previo a la
posible, como un paso de validacion
del sistema de control en el equipo.
implantacion
Modelo simplificado. Este modelo incluye exclusivamente las dinamicas correspondientes a la orien del cuadricoptero,

tacion
permitiendo disenar
la
estrategia de control que estabiliza la aeronave.
Cada uno de estos modelos requiere de un conjunto
de parametros (dimensiones, masa, momentos de inercia
y caractersticas dinamicas de los sistemas propulsores),
que deben ser adecuadamente estimados. Consecuentemente, se ha desarrollado un modelo CAD y se han
en un banco
realizado pruebas del sistema de propulsion
de ensayos.
En este proyecto se ha hecho uso del programa Solid
grafica (CAD) del
Edge para obtener la representacion

cuadricoptero
mostrada en la figura 3.

CAD de la estructura del cuaFigura 3: Representacion

dricoptero


MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014

Este programa permite calcular los parametros


mecanicos de la estructura incluidos en la tabla 1.
Parametros mecanicos de la estructura
Masa
(Kg)

Volumen
(mm3 )

0.2722

94059.7154

Ixx
(Kgm2 )
7,83 104

Iyy
(Kgm2 )
7,85 104

Izz
(Kgm2 )
1,401 103

Parametros dinamicos de los rotores


Kv
(rpm/v)
2900

Rm
()
0.6

b
(N s/rad)
5.44e-7

d
(N ms/rad)
7.32e-9

para aligerar la carga computacional del conjunto y


ademas evitar el gimbal lock [9].
de este filtro de Kalman comprende
La aplicacion
varias fases de calculos complejos como se ilustra en

la figura 5 a modo de ilustracion.


Los detalles del
funcionamiento del mismo se pueden encontrar en la
memoria del proyecto.

Tabla 1: Parametros del cuadricoptero


de los parametros dinamicos de los
Para la estimacion
rotores se han realizado pruebas en el banco de ensayos
mostrado en la figura 4. Las variables medidas durante
la corriente, la velocidad de
los ensayos son la tension,
los motores, la fuerza de empuje y el par de arrastre. A
partir de estas medidas, se han deducido los valores de
los parametros dinamicos de los rotores mostrados en la
tabla 1.
Figura 5: Esquema de funcionamiento del filtro
En la figura 6 se muestran las estimaciones del a ngulo
de alabeo realizadas mediante el filtro de Kalman (verde)
en dicho a ngulo por el filtro comy de una variacion
Se ha incluido
plementario (azul) durante la simulacion.
tambien el valor real del a ngulo (rojo) para facilitar
Se puede observar que ambos filtros
la comparacion.
razonablemente
son capaces de realizar una estimacion
buena, a pesar de existir ruido en las medidas. Sin
mas
embargo, el filtro de Kalman realiza una estimacion
precisa que el filtro complementario.
Estimacin del angulo de alabeo
3
Filtro complementario
Filtro de Kalman
Referencia

Figura 4: Banco de ensayos

0
1

ngulo()

En ninguno de los modelos presentados se han incluido los efectos aerodinamicos que pueden afectar al
dispositivo pues, tras un analisis de e stos (especialmente
el efecto suelo y el efecto techo), se ha demostrado que
no son relevantes en condiciones de vuelo en interiores.

2
3
4
5
6
7

4.

E STIMACI ON

DE ESTADOS

8
9.5

10

10.5

11

11.5

12

12.5

13

13.5

14

Tiempo(s)

En este proyecto se ha hecho uso de un filtro multiplicativo extendido de Kalman, ya que resulta mas robusto
de cara a las vibraciones de la estructura. Se trata de un
filtro extendido porque se basa en un modelo no lineal
del sistema de medida. Se dice tambien que es multiplicativo porque, a pesar de que es capaz de realizar es

timaciones unicamente
con giroscopos
y acelerometros,

pueden incluirse otros sensores (magnetometros,


GPS,
etc). Por contra, este filtro requiere de un alto nivel de
y por tanto se ha hecho uso de cuatercomputacion
de las variables estimadas. Un
niones para la obtencion
[8] es un vector de cuatro componentes que
cuaternion
contenida en
representa de forma precisa la informacion
los a ngulos de Euler para simplificar las operaciones.
As pues se hara uso de estos elementos matematicos

de a ngulos de Euler en simulacion

Figura 6: Estimacion

5.

D ISE NO

DEL SISTEMA DE CONTROL

del disEl sistema de control gestiona la regulacion


de unas senales

positivo a traves de la aplicacion


de
mando (tensiones de los motores). En este estudio se

han disenado
un conjunto de controladores basados
en el modelo simplificado a fin de abarcar un mayor
rango de posibilidades. Posteriormente se ha hecho uso
mediante
del modelo completo para su comparacion
Los algoritmos de control disenados

simulacion.
son:
de la referencia con
1. Control PID con ponderacion

mecanismo anti-windup disenado


por respuesta en


MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014

frecuencia. Se ha hecho uso de los ndices signifi de cruce, etc)


cativos (margen de fase, pulsacion
recomendados por la literatura. La presencia del
mecanismo anti-windup es esencial para evitar la
del error en la integracion
cuando el
acumulacion
mando satura.
2. Control PID incremental. Se trata de una modifica realizada sobre el control PID anterior en la
cion
que se trabaja con incrementos en vez de con valores absolutos. La principal ventaja es que permite
limitar los incrementos del mando y que simplifica

la logica
del mecanismo anti-windup.
de estado por posi3. Control por realimentacion
cionamiento de polos. Los polos del sistema en
lazo cerrado se han seleccionado para optimizar la
respuesta del sistema.
de estado. Se ha
4. Regulador LQ por realimentacion
hecho uso de un modelo estocastico del sistema
para para obtener la matriz de ganancias de re del estado que permita minimizar el
alimentacion
error de seguimiento de la referencia y el esfuerzo
de control.
de estado con ac5. Control LQ por realimentacion
integral(LQI). Se ha anadido

intecion
una accion
gral para corregir las perturbaciones en carga que
presenta el sistema.
Adicionalmente, se ha desarrollado un modelo del

cuadricoptero
sobre una motocicleta (pendulo invertido)
para evaluar los algoritmos de control anteriores a la

hora de estabilizar el cuadricoptero,


mientras se reduce

el riesgo de danar
el dispositivo ante errores en la
y un mal ajuste del control.
implantacion

6.

I MPLEMENTACI ON

Al no existir experiencia previa en el uso anteriores de

cuadricopteros
en la UPCO, una gran parte del trabajo
realizado se ha destinado a construir y poner a punto

el cuadricoptero.
Estas tareas incluyen el montaje de
de los elementos necesala estructura, la incorporacion
rios para su funcionamiento (ESC, rotores, la tarjeta de
control, etc) y el conexionado de los mismos. Adicio
nalmente se ha disenado
y construido una placa para
de la batera. Se trata del circuito
monitorizar la tension

mostrado en la figura 7 que incluye un divisor de tension


con un buffer.

de la
Figura 7: Esquema del circuito de monitorizacion
de la batera
tension
Otra de las principales tareas realizadas es la de
los driver blocks que permiten intercambiar
disenar

entre el algoritmo de control programado


informacion
en Simulink y los sensores y actuadores instalados en

el cuadricoptero.
Estos driver blocks han sido programados en C++ e integrados en bloques de Simulink, lo

cual supone una dificultad anadida


por la novedad que

supone. Los drivers disenados


son los siguientes:
Driver para la IMU. Con este driver se pretende
disponible en la IMU. Para
acceder a la informacion
se ha hecho uso de la librera
su programacion
FreeIMU, originalmente escrita en C++.

Driver para el transmisor-receptor RC. Este codigo


entre el receptor
es el que establece la comunicacion

RC y el microcontrolador. Este codigo


programado
hace uso de interrupciones para evitar un exceso
de consumo de memoria por parte del microcontrolador. Adicionalmente se ha incluido un filtro de
Savitzky-Golay para reducir el nivel de ruido de las

senales.

Driver para los ESC. Se trata de generar una senal


aplicada al
PWM que permite variar la tension
motor.
Driver para el lector de la tension
de la batera.

Este driver permite obtener la medida analogica


de
en la batera.
la tension
Finalmente se ha programado un maquina de estados
de las sipara el arranque seguro del sistema y la gestion
tuaciones de fallo. Esta maquina estados ha introducido
al sistema:
1. Elementos de seguridad como control de altura

maxima, arranque del sistema controlado o tension


mnima de la batera.
2. Variaciones en el algoritmo de control, como por
de la accion
integral duejemplo la desactivacion
rante el proceso de arranque para evitar que se

acumule el error en la integracion.


3. Un arranque suave y controlado del sistema.

7.

E NSAYOS

Los ensayos realizados sobre el cuadricoptero


han
se precisa seleccionar el algoritmo
demostrado que solo
de control adecuado para realizar vuelos estables. Por
tanto, el montaje y conexionado de todos los elementos
del equipo es el adecuado. Ademas, la maquina
de estados que se encarga de gestionar el arranque
del sistema ha sido evaluada ofreciendo resultados
satisfactorios.
Los ensayos realizados sobre todos los drivers
programados han ofrecido tambien resultados positivos
en futuros estudios. En
permitiendo su aplicacion

el caso de las senales


obtenidas por el receptor RC,
se ha observado cierto nivel de ruido en ella. Por

tanto, se ha disenado
un filtro de Savitzky-Golay

para su cancelacion.
Este filtro se ha usado tambien
de tension
en la batera de forma
para retrasar la senal
que sea menos sensible a los picos presentes en la misma.


MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014

de los a ngulos de
La figura 8 muestra la estimacion
Euler en el sistema real realizada por el filtro de Kalman

disenado
(azul) y la realizada por el estimador de la
realizada por el filtro de
IMU (verde). La estimacion
Kalman es mejor tanto con los rotores desconectados
como activos. Sin embargo se puede apreciar una deriva
del a ngulo, debido a que no se
o bias en la estimacion

han podido usar los magnetometros


en el filtro. Esta
deriva puede tener un efecto importante en el control
y debe ser estudiada en el futuro.
Estimacin corregida
40
MEKF
Filtro IMU

integral.
controlador LQ con accion
de mando de la
Finalmente, se ha incluido la senal
figura 10 proporcionada por el controlador LQ incre integral y mecanismo anti-windup al
mental con accion
del cuadricopte
realizar un ensayo real de estabilizacion
ro. Tal respuesta no permite regular el dispositivo pues
que oscila entre los valores de
se trata de una senal
fijados en el controlador. Queda como tarea
saturacion
pendiente en futuros proyectos revisar el estimador de
para
estado y las ganancias de la cadena de actuacion
resolver este problema.

20

Mandos U1, U3
260
Phi
Theta
240

220
Tensin(PWM)

ngulos ()

20

200

180

160

140

120
40

0.05

0.1

0.15

0.2

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

0.5

Mandos U2, U4
260
60

U2
U4
240

80

0.1

0.2

0.3

0.4

0.5

0.6

Tensin(PWM)

220

0.7

Tiempo (s)

200

180

160

del a ngulo de alabeo


Figura 8: Estimacion

140

120

En la figura 9 se muestran las respuestas temporales


superpuestas de los controladores PID, de realimenta de estado por posicionamiento de polos y por el
cion
en la referencia obtenidas
metodo LQ ante un escalon
Como se puede observar, los tiemmediante simulacion.
pos de establecimiento con el control PID son menores
que los correspondientes a los controles basados en la
del estado.
realimentacion
11

11

10

10

PID
Realimentacin
LQR

ngulo ()

ngulo ()

10

ngulo ()

11

0.5

1.5
2
Tiempo (s)

2.5

4.5

5.5
6
Tiempo (s)

6.5

7.5

8.5
9
Tiempo (s)

9.5

10

Figura 9: Respuesta de los tres controladores ante escalones de 10o

La respuesta del control PID presenta un pequeno


sobrepaso mientras que las de los otros dos controles
son sobreamortiguadas. Si los a ngulos a introducir en
la referencia son cercanos al valor unitario, la mejor
respuesta es la proporcionada por el control PID, dado
que su tiempo de establecimiento es el menor. Si por
el contrario, se pretende trabajar con a ngulos de Euler
mayores la respuesta sufre modificaciones indeseables,
como ocurre con el a ngulo psi. Sin embargo, las

respuestas de los controladores LQ y por realimentacion


de estado no sufren este efecto. Consecuentemente,
el control que se ensayara en el sistema real sera el

0.05

0.1

0.15

0.2

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

0.5

Figura 10: Mandos aplicados sobre el dispositivo con el


controlador LQI

8.

C ONCLUSIONES

general del proyecto se puede


A modo de conclusion
un controlador capaz
decir que no se ha podido disenar

de regular el comportamiento del cuadricoptero.


Sin embargo, evaluando el volumen de aportaciones realizadas,
s se ha facilitado considerablemente el esfuerzo requerido para alcanzar este objetico en futuros proyectos. Las
tareas realizadas con e xito son las siguientes:
Se dispone de los modelos, tanto matematicos como

en CAD, para disenar


un algoritmo de control
adecuado.
de
Los drivers programados realizan su funcion
forma adecuada.
La maquina de estados gestiona el arranque del
dispositivo adecuadamente.
del estado de la batera se lleva
La monitorizacion
acabo de forma correcta.
Se dispone del diagrama de bloques general di
senado
para volcar el algoritmo al dispositivo.

El cuadricoptero
esta listo para volar de forma regulada, a falta de ajustar correctamente el algoritmo
de estado.
de control y la estimacion
La causa principal por la cual el controlador no es capaz
de los
de regular el dispositivo parece ser la estimacion
a ngulos de Euler, bien por la deriva que presentan o
de
bien por una velocidad inadecuada de estimacion
los mismos. Existe tambien la posibilidad de que el funcionamiento incorrecto del controlador sea consecuencia
de la senal
de mando, es decir, la
de la conversion
de fuerzas acopladas de empuje a tension

transformacion
en cada motor.


MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014

9.

F UTURAS

MEJORAS

Las mejoras que se proponen hacen referencia a mejo de estado. Por


rar el ajuste del algoritmo de estimacion
tanto se propone:

de los a nguIncluir magnetometros


en la estimacion
de la aeronave. Para ello debera prolos de posicion
gramarse un algoritmo de calibrado de los mag

netometros.
El codigo
del estimador ya esta prepa
rado para realizar la ampliacion.
de un sistema telemetrico para moImplementacion
nitorizar los ensayos en tiempo real.
una carcasa que permita absorber las vibraDisenar
ciones de los rotores.

R EFERENCIAS
[1] Holger Voos, Nonlinear Control of a Quadrotor
Micro-UAV using Feedback-Linearization. Proceedings of the 2009 IEEE International Conference on
Mechatronics. Malaga, Spain, April 2009.
[2] C BALAS and Dr J.F. Whidborne, Modelling and
Linear Control of a Quadrotor. CRANFIELD UNIVERSITY, September 2007.
[3] Bouabdallah, S., Murrieri, P. and Siegwart,
R.,Towards autonomous indoor micro VTO,
Autonomous Robots, France, 2005.
[4] Paul Pounds, Robert Mahony, Peter Corke, Modelling and Control of a Quad-Rotor Robot. Australian
National University, 2006.
[5] McKerrow, P.,Modelling the Draganflyer four rotor
helicopter. IEEE International Conference on Robotics and Automation, April 2004.
[6] Robert W Klein, Flight control system employing
complementary filter. Grumman Aerospace Corp,
May 1987
[7] James K. Hall, Nathan B. Knoebel, Timothy W.
McLain, Quaternion Attitude Estimation for Miniature Air Vehicles Using a Multiplicative Extended
Kalman Filter. Brigham Young University, Provo, UT
84602.
[8] Nikolas Trawny and Stergios I. Roumeliotis, Indirect
Kalman Filter for 3D Attitude Estimation. A tutorial for quaternion algebra. University of Minnesota,
March 2005.
[9] Manuel Kramer, Douglas J. Dapprich, Gyro stabilized inertial reference system with gimbal lock prevention means. The Charles Stark Draper Laboratory,
Inc. October 1977.
[10] Hoffmann,G.M., Rajnarayan, D.G., Waslander, S.L.,
Dostal, D., Jang, J.S. and Tomlin, C.J., The stanford
testbed of autonomous rotorcraft for multi agent
control. Digital Avionics Systems Conference, 2004.
[11] Bouabdallah, S., Noth, A. and Siegwart, R., PID
vs LQ control techniques applied to an indoor micro quadrotor. Swiss Federal Institute of Technology,
2004
[12] Igor Gaponov,Anastasia Razinkova, Quadcopter
Design and Implementation as a Multidisciplinary

Engineering Course. IEEE International Conference


on Teaching, Assessment, and Learning for Engineering (TALE), August 2012.

MODELLING AND CONTROL OF A QUADCOPTER, JUNE 2014

MODELLING AND CONTROL OF A


QUADCOPTER
Author:
Sevilla Fernndez, Luis
Project managers: Zamora Macho, Juan Luis.
Jose.

Porras Galan,

Fernandez
Martnez, Cesareo.
Partner entity : ICAI Universidad Pontificia Comillas.
AbstractThe objective of the research path where this project is framed is to model and control an unmanned aerial vehicle (UAV)
provided with four rotors (quadcopter) powered by brushless motors. The control system will allow the system to hover, to fly guided
by a transmitter and to fly autonomously using proximity sensors. As this project is aimed to be applied in future courses within the
university, all the control strategies as well as the models created will be adapted to Matlab/Simulink.
Index TermsQuadcopter, UAV, Thesis, ICAI, Comillas.

I NTRODUCTION

I thin the last years, we have witnessed a great


growth on the development of unmanned aerial
vehicles, specially the vertical take-off landing kind.
This is due to their multiple applications such as facility
surveillance, access to risk areas, aerial imaging, etc.
Besides, this kind of devices are quite useful within
the academical world as they cover a wide range of
knowledge fields such as mechanics, mathematics,
power electronics, control theory, etc.

The objective of the research path where this project


is framed, is to model and control an unmanned aerial
vehicle (UAV) provided with four rotors (quadcopter)
powered by brushless motors constrained to indoor
flights (see figure 1). The control system will allow the
system to hover, to fly guided by a transmitter and
to fly autonomously using proximity sensors. As this
project is aimed to be applied in future courses within
the university, all the control strategies as well as the
models created will be adapted to Matlab/Simulink.
Besides, this project will give the Pontifical University
of Comillas experience in the UAV world in order to
ease the development of new research lines within this
subject.
The quadcopter that will be used is powered by four
brushless motors, placed at the end of the structures
arms, which are driven by four electronic speed controllers (ESC). It includes a Crius microcontroller chip
card with an Arduino ATMega 2560 processor, as well as
an inertial measure unit (IMU) made up of gyroscopes,
accelerometers and magnetometers. The communication
between the device and the pilot is done by a radio

control system. Finally, the power supply for the device


will be performed by LiPo batteries.

Fig. 1: Quadcopter and RC transmitter

S TATE

OF THE ART

The quadcopter translation and rotation movements


are performed shifting the rotation speed of its rotors.
Consequently, in order for the UAV to ascend/descend
vertically, the speed of all the motors must be increased/decreased simultaneously. Increasing the angular speed of motors 1 and 3 will make the quadcopter
to rotate clockwise, whereas the increase in the speed
of motors 2 and 4 with result in a counter-clockwise
rotation. Finally, the vehicle can be made to fly in either
direction horizontally: for instance, reducing the speed
of motor 4 and increasing the speed of motor 2 will result
in the frame roll, making the device fly to the left.

MODELLING AND CONTROL OF A QUADCOPTER, JUNE 2014

algorithms, easing the implementation of a controller


software to the quadcopter used. Nevertheless, there
are not firmwares available for the Matlab Simulink
environment.
The use of this kind of devices on advanced control
courses in different Universities is increasing along the
last few years, such as the Hong Kong University [12],
the Illinois University or Swiss Federal Institute of Technology, among others.
Fig. 2: Schematics on torques generated by each motor
of a quadrotor
The modelling of this kind of devices, where the
mathematical description of the quadcopter is deduced,
has been widely studied along the last decades.
Therefore, now a days there is a wide variety of models
for indoor flights [1],[2],[3] as well as for outdoor flights
[4],[5] to work with. The main difference between the
two groups is that outdoor flights models include the
aero-dynamical effects. The definition of a precise model
is critical for both the design of the controller and the
simulation tests.
The control strategy assumes that the state variables
are available, thats to say, the estimation of the quadcopter attitude from the Euler angles. The most common
state observers within this subject are:
The complementary filter [6]: The estimation of
the attitude angles, done with the measures of
both accelerometers and gyroscopes, is properly
weighted in order to obtain an accurate and
relatively noise-free estimation. The noise carried in
the accelerometer measures (high frequency noise)
is filtered by a low pass filter, as well as the bias
from the gyroscopes (low frequency) is removed by
a high pass filter.
A Kalman filter [7]: It is an algorithm used to
estimate the Euler angles of a device based on the
stochastic model of the measure system, using the
accelerometers and the gyroscopes included in the
IMU.

M ODELLING

The mathematical model of the quadcopter is defined


by the set of equations which describe the physics of the
spaceship. In this project, there have been developed the
two following models:

Full non-lineal model. Set of equations which allow


to accurately represent the flight behaviour of the
quadcopter. The inputs to the model are the four
voltages applied to the bushless motors, and the
outputs are the position and speed values along
the six degrees of freedom of the quadcopter. The
main use for this algorithm is to compare different
control strategies in order to make the simulation as
much accurate as possible, thus it can be seen as a
validation test before using it in the real device.
Simplified model This model includes the
dynamics corresponding to the attitude of the
quadcopter exclusively, allowing to design the
control strategy which makes the spaceship stable.

Each of these models requires a set of parameters


(dimensions, mass, inertia momentums and the thrust
systems dynamics) which must be accurately estimated.
Consequently, a CAD model has been developed and
some tests have been carried out over the thrust systems
on the test bench built for this purpose. In this project, it
has been used Solid Edge in order to obtain the graphic
representation (CAD) of the quadcopter shown in figure
3.

Related to the control strategy, there have been


developed a wide variety of algorithms due the fact
that the quadcopter model is a multi-variable nonlinear model. Within the proposed algorithms, the
Lyapunov based controllers developed by H.Voos[1]
and Bouabdallah [3] stand out, although it may be also
used state-feedback controllers such as the LQ regulator
designed by Hoffman [10] or the PID controller designed
by Bouabdallah [11].
It may be important to highlight that there are many
PID controller firmwares available in the Internet. The
Arduino based controller chip cards such Crius or
the Ardu-Pilot offer the Multiwii or the Mega-Pirate

Fig. 3: CAD representation of the quadcopter structure


This program allows to compute the mechanical parameters of the structure, which have been included in
the table 1.

MODELLING AND CONTROL OF A QUADCOPTER, JUNE 2014

Mechanical parameters for the structure


Mass
(Kg)

Volume
(mm3 )

0.2722

94059.7154

Ixx
(Kgm2 )
7.83 104

Iyy
(Kgm2 )
7.85 104

Izz
(Kgm2 )
1.401 103

Dynamic parameter for the motors


Kv
(rpm/v)
2900

Rm
()
0.6

b
(N s/rad)
5.44e-7

d
(N ms/rad)
7.32e-9

TABLE 1: Parameters for the quadcopter


In order to estimate the dynamic parameters for the
rotors, there have been performed a set of tests on the
test bench shown in figure 4. The variables measured
during the test are the voltage, the current, the rotational
speed, the thrust and the torque. The values of the
parameters shown in table 1 has been deduced from the
set of measures that were described above.

Fig. 5: Estimation process for the Kalman filter


Figure 6 shows the attitude estimation of the pitch
angle gathered by the Kalman filter designed (green) as
well as the estimation performed by the complementary
filter (blue) during the simulation. The real value of
that angle (red) has also been included in order to ease
the comparison. As it can be seen, both filters are well
capable of performing an accurate estimation, despite
the noise contained in the measures. Nevertheless, the
Kalman filter performs a more precise estimation than
the complementary filter.
Estimacin del angulo de alabeo
3
Filtro complementario
Filtro de Kalman
Referencia

2
1
0

Fig. 4: Test bench

ngulo()

1
2
3
4

None of the models introduced above includes the


aero-dynamical effects which may affect the dynamics
of this kind of devices, because it has being proved that
they are not relevant for indoor flights.

S TATE

ESTIMATION

In order to achieve a proper estimation of the attitude


angles, a multiplicative extended Kalman filter has been
designed. This robust algorithm, able to handle a significant noise in the measures, is able to achieve the attitude
estimation using only gyroscopes and accelerometers
although it can also use other sensors such as the magnetometers, a GPS, etc. Besides, it is said that this is an
extended filter because it is based on a non-lineal model
of the measures system. On the other hand, this filter
requires a high computational cost. Therefore, quaternions have been used in order to obtain the estimated
variables. A quaternion [8] is a four dimensional vector
which accurately represents the information contained
in the attitude angles. Thus, this mathematical elements
will be used in order to reduced the computational cost
of the system as well as to avoid the gimbal lock [9].
The mathematical process of the Kalman filter involves
a number of complex computation steps as it is shown,
as an illustration, in figure 5. The detailed process is
deeply described in the proyect memory.

5
6
7
8
9.5

10

10.5

11

11.5

12

12.5

13

13.5

14

Tiempo(s)

Fig. 6: Attitude angles estimation during the simulations

C ONTROL

SYSTEM DESIGN

The control systems handles the regulation of the device


through the controller signal applied in the motors. In
order to cover a wider range of possibilities, it has been
developed a set of controllers based on the simplified
model. Afterwards, the full model has been used to
validate them through simulations. The control algorithms designed are:
1) Referenced weighted PID controller with antiwindup, design through frequency response. The
design has used the meaningful indicators (phase
margin, cross frequency, etc.) recommended by the
literature. The anti-windup mechanism is critical
in order to avoid the error accumulation in the
integral action of the controller, when a saturation
takes places in the actuators.
2) Incremental PID controller. It is a slight modification over the former PID controller as it works with
increments instead of absolute values. The main

MODELLING AND CONTROL OF A QUADCOPTER, JUNE 2014

advantage of this modification is that it allows to


set a constraint on the control signal as well as it
simplifies the anti-windup logic.
3) State feedback controller designed by pole placement. The close loop poles of the system habe been
chosen to optimize the system response.
4) State feedback LQ regulator. The stochastic model
of the system has been used to obtain the state
feedback gain matrix which allows to minimize the
reference tracking error and the control effort.
5) State feedback LQ regulator with integral action
(LQI). An integral action has been added to the
former LQ controller in order to reject the load
disturbances present in the system.
In addition, it has been developed a model of the
quadcopter placed on a Lego Motorbike (modelled as
a inverted pendulum) in order to test the control algorithms while stabilizing the device. This new model
reduces the risk of damaging the quadcopter against
implementation errors or an inappropriate fit of the
quadcopters paramenters.

Finally, a state machine has been programmed in order


to ensure a safe and smooth start up as well as the
management of the fault situations. The state machine
has introduced to the system:
1) Safety features such as the maximum altitude
control, the regulated start up and the minimum
charge of the battery.
2) Variations over the control algorithm, such as the
disconnection of the integral action during the start
up process in order to avoid the error accumulation
in the integral action.
3) A smooth and regulated start up.

I MPLEMENTATION

As there is no previous experience on the use of quadcopters within the UPCO, a great amount of the job done
has gone to build and set the device. This tasks include
the assembly of the structure, the placing of the required
elements (ESC, rotors, controller chip card, etc.) as well
as their connection. In addition, a chip card has been
both designed and built to monitor the battery charge.
The circuit, shown in figure 7, is made up of a voltage
divisor with a buffer.

Fig. 7: Layout of the monitoring circuit for the battery


charge
Another set of tasks is the design of the driver blocks
which allow to exchange information between the control algorithm programmed in Simulink and the sensors
and actuators placed on the quadcopter. These drivers
have been programmed in C++ and integrated into
Simulink blocks, thus they add additional challenges due
to the newness introduced.
Driver for the IMU. This driver is intended to access
to the information available in the IMU. In order to
ease its programming, the library FreeIMU has been
used, originally programmed in C++.
Driver for the RC system. This code sets the
communication between the RC receptor and the
microcontroller card. The programmed code uses

interruptions in order to lighten the memory consumption of the microprocessor. In addition, a


Savitzky-Golay filter has been designed in order to
reduce the amount of noises carried by the signals.
Driver for the ESC. It produced a PWM signal
which allows to shift the voltage applied in the
motors.
Driver for the monitoring system of the battery
charge. This driver gets the analogue measure of
the battery voltage.

T ESTS

The tests performed over the quadcopter have shown


that it only requires to choose the proper control
algorithm to perform stable flights. Therefore, the
assembly and connection of all the system elements
have been properly done. Besides, the state machine in
charge of handling the start up of the system has been
tested throwing positive results.
The tests carried out over the programmed drivers
have also shown positive results, allowing to be used in
future studies among this field. Regarding the obtained
signals from the RC receptor, it has been identified a
significant amount of noise. Thus, a Savitzky-Golay
filter has been designed in order to reject it. This filter
has also been used to set up a delay in the voltage
signal coming from the battery, so that I will be less
sensitive to the present peaks.
Figure 8 shows the estimation of the Euler angles in
the real system, done by the Kalman filter designed
(blue) and by the IMU estimator (green). The estimation
performed by the Kalman filter is better than the one
done by the other estimator, even if the motors are
turned on. Nevertheless, a drift on the estimation can be
appreciated, due to the lack of magnetometer measures
during the estimation process. This drift may have an
important effect on the control efficiency and should be
studied in the near future.

MODELLING AND CONTROL OF A QUADCOPTER, JUNE 2014

Estimacin corregida

Mandos U1, U3

40

260
Phi
Theta

MEKF
Filtro IMU

240

Tensin(PWM)

220

20

200

180

160

140

ngulos ()

120

0.05

0.1

0.15

0.2

20

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

0.5

Mandos U2, U4
260
U2
U4
240

Tensin(PWM)

220

40

200

180

160

60

140

120

80

0.1

0.2

0.3

0.4

0.5

0.6

Figure 9 shows the simulated overlapped time


responses of the PID controller, the state feedback controller designed by pole placement and by the LQ
method, when a step is introduced in the reference. As
it can be seen, the settling times for the PID controller
responses are smaller than the controllers based on a
state feedback.

11

10

10

ngulo ()

ngulo ()

ngulo ()

11
PID
Realimentacin
LQR

10

0.5

1.5
2
Tiempo (s)

2.5

4.5

5.5
6
Tiempo (s)

6.5

0.05

0.1

0.15

0.2

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

0.5

Fig. 10: Control signals applied in the device with the


LQI controller

Fig. 8: Pith angle estimation

11

0.7

Tiempo (s)

7.5

8.5
9
Tiempo (s)

9.5

10

Fig. 9: Time response of the three main controllers when


a 10o step is applied in the system
The PID controller response shows a small overshoot
while the responses of the other two controlles are overdamped responses. If the angles that will be introduced
in the reference are close to the unitary values, the best
response is the PIDs as its settling time is the smallest.
If, instead, the angles introduced as references are bigger
than the unit, then the response suffers undesirable
modifications, as it happens with the yaw angle.
Nevertheless, the state feedback controlled responses
do not suffer this shift. Consequently, the controller that
will be tested in the real system will be the LQI regulator.
Finally, the control signal to stabilize the quadcopter
with the incremental LQI with anti-windup has been
included in figure 10. That response shows that the
control is unable to regulate the device as the signals
ranges between the minimum and maximum saturation
values set in the controller. Therefore, the state estimator
and the gains from the actuator chain should be studied
in future research among this field, in order to solve
these problems.

C ONCLUSIONS

The general conclusion of this project is that it has


not been possible to design a proper controller able to
regulate the quadcopter behaviour. Nevertheless, looking to the volume of contributions done, it can be said
that this project has considerably eased the required
effort to achieve the main goal of this project in future works. The tasks successfully performed are the
following:
It has been created a set of models both mathematical and graphical (CAD) which can be used to
design a proper controller.
The programmed drivers work properly.
The state machine handles the start up of the device
appropriately.
The monitoring of battery charge is done correctly.
It has been designed a detailed block diagram prepared to be loaded into the quadcopters microcontroller card.
The quadcopter is ready to fly properly controlled
as long as the proper algorithm and state estimation
is provided.
The main cause of the controller inability to regulate
the device seems to be the incorrect estimation of the
attitude angles, rather by the drift they show up or
by the inappropriate estimation speed of these angles.
There is also the chance that the incorrect operation of
the controller is due to conversion chain of the control
signal, changing from coupled thrust forces to each
motor voltage.

F UTURE

IMPROVEMENTS

The improvements proposed lead into an improvement


of the state estimation algorithm. Therefore, it is recommended to:
Include the magnetometers into the attitude estimation of the quadcopter. In order to achieve such a
task, a calibration algorithm for the magnetometer
should be programmed. The Kalman filter code is
already prepared for this enlargement.
Implement a telemetric system in order to monitor
in realtime the tests performed.
Design a casing which allows to absorb the vibrations from the rotors.

MODELLING AND CONTROL OF A QUADCOPTER, JUNE 2014

R EFERENCES
[1] Holger Voos, Nonlinear Control of a Quadrotor
Micro-UAV using Feedback-Linearization. Proceedings of the 2009 IEEE International Conference on
Mechatronics. Mlaga, Spain, April 2009.
[2] C BALAS and Dr J.F. Whidborne, Modelling and
Linear Control of a Quadrotor. CRANFIELD UNIVERSITY, September 2007.
[3] Bouabdallah, S., Murrieri, P. and Siegwart,
R.,Towards autonomous indoor micro VTO,
Autonomous Robots, France, 2005.
[4] Paul Pounds, Robert Mahony, Peter Corke, Modelling and Control of a Quad-Rotor Robot. Australian
National University, 2006.
[5] McKerrow, P.,Modelling the Draganflyer four rotor helicopter. IEEE International Conference on
Robotics and Automation, April 2004.
[6] Robert W Klein, Flight control system employing
complementary filter. Grumman Aerospace Corp,
May 1987
[7] James K. Hall, Nathan B. Knoebel, Timothy W.
McLain, Quaternion Attitude Estimation for Miniature Air Vehicles Using a Multiplicative Extended
Kalman Filter. Brigham Young University, Provo, UT
84602.
[8] Nikolas Trawny and Stergios I. Roumeliotis, Indirect
Kalman Filter for 3D Attitude Estimation. A tutorial for quaternion algebra. University of Minnesota,
March 2005.
[9] Manuel Kramer, Douglas J. Dapprich, Gyro stabilized inertial reference system with gimbal lock prevention means. The Charles Stark Draper Laboratory,
Inc. October 1977.
[10] Hoffmann,G.M., Rajnarayan, D.G., Waslander, S.L.,
Dostal, D., Jang, J.S. and Tomlin, C.J., The stanford
testbed of autonomous rotorcraft for multi agent
control. Digital Avionics Systems Conference, 2004.
[11] Bouabdallah, S., Noth, A. and Siegwart, R., PID
vs LQ control techniques applied to an indoor micro quadrotor. Swiss Federal Institute of Technology,
2004
[12] Igor Gaponov,Anastasia Razinkova, Quadcopter
Design and Implementation as a Multidisciplinary
Engineering Course. IEEE International Conference
on Teaching, Assessment, and Learning for Engineering (TALE), August 2012.

MODELADO Y CONTROL

DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS

PROYECTO FIN DE CARRERA

Autor:

Directores:

Luis Sevilla

Juan Luis Zamora


Porras
Jose
reo Ferna
ndez
Cesa

3 de junio de 2014

Indice general
1. Documento I: Memoria

2. Documento II: Manual de Usuario

206

3. Documento III: C
odigo Fuente

217

4. Documento IV: Presupuesto

263

5. Anexo A

281

6. Anexo B

283

7. Anexo C

289

8. Anexo D

299

MODELADO Y CONTROL
DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
DOCUMENTO I

MEMORIA

Autor:

Directores:

Luis Sevilla

Juan Luis Zamora


Porras
Jose
reo Ferna
ndez
Cesa

3 de junio de 2014

Indice general
1. Introducci
on
1.1. Aplicaciones de cuadricopteros en la industria
1.2. Motivacion del proyecto . . . . . . . . . . . .
1.3. Objetivos . . . . . . . . . . . . . . . . . . . .
1.4. Metodologa de trabajo . . . . . . . . . . . .
1.5. Recursos y herramientas empleadas . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

16
17
17
18
19
19

2. Estado de la cuesti
on
2.1. Modelado del cuadricoptero . . . . . . . . . . . . . . . . . . .
2.1.1. Sistemas de referencia . . . . . . . . . . . . . . . . . .
2.1.2. Fuerzas y Momentos . . . . . . . . . . . . . . . . . . .
2.1.3. Ecuaciones del Movimiento . . . . . . . . . . . . . . .
2.2. Elementos del cuadricoptero . . . . . . . . . . . . . . . . . . .
2.2.1. La estructura o marco . . . . . . . . . . . . . . . . . .
2.2.2. Motores . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3. Controlador electronico de velocidad . . . . . . . . . .
2.2.4. Batera . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.5. Unidad inercial de medidas (IMU) . . . . . . . . . . .
2.2.6. Controlador . . . . . . . . . . . . . . . . . . . . . . . .
2.2.7. Comunicacion piloto-aeronave . . . . . . . . . . . . . .
2.2.8. Sensores de distancia . . . . . . . . . . . . . . . . . . .
2.2.9. Dispositivos adicionales . . . . . . . . . . . . . . . . .
2.3. Banco de ensayos . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Banco de ensayo para los motores . . . . . . . . . . .
2.3.2. Banco de ensayo para el cuadricoptero . . . . . . . . .
2.4. Efectos Aerodinamicos . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Efecto suelo y efecto techo . . . . . . . . . . . . . . . .
2.4.2. Translaciones y oscilaciones en las palas de los rotores
2.5. Metodos de control . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1. Control usando la teora del Lyapunov . . . . . . . . .
2.5.2. Controlador por linealizaci
on en la realimentacion. . .
2.5.3. Controlador PID . . . . . . . . . . . . . . . . . . . . .
2.5.4. LQR . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.5. Controlador H . . . . . . . . . . . . . . . . . . . . .
2.6. Estimador de Estados . . . . . . . . . . . . . . . . . . . . . .
2.6.1. Filtro Complementario . . . . . . . . . . . . . . . . . .
2.6.2. Filtro de Kalman . . . . . . . . . . . . . . . . . . . . .
2.7. Complementos . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1. Cuaterniones . . . . . . . . . . . . . . . . . . . . . . .
2.7.2. M
aquinas de estado . . . . . . . . . . . . . . . . . . .
2.7.3. Driver Blocks . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

20
22
22
23
25
25
25
26
27
28
29
32
34
37
39
41
42
44
45
45
46
48
48
49
51
52
53
53
55
55
61
61
62
63

vii

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

3. Estudio mec
anico del sistema
3.1. Modelado CAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Ensayos de los motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Estudios aerodin
amicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

64
64
67
73

4. Control del sistema


4.1. Modelado matem
atico . . . . . . . . . . . . . . . . . . . .
4.1.1. Modelo no lineal completo . . . . . . . . . . . . . .
4.1.2. Modelo simplificado . . . . . . . . . . . . . . . . .
4.1.3. Modelo de un pendulo invertido . . . . . . . . . . .
4.2. Estimacion de estados . . . . . . . . . . . . . . . . . . . .
4.2.1. Programaci
on del filtro de Kalman . . . . . . . . .
4.2.2. Estimacion de las matrices de covarianza . . . . .
4.3. Control . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1. Obtencion de las funciones de transferencia para el
4.3.2. Control para el modelo completo . . . . . . . . . .
4.3.3. Control para el modelo simplificado . . . . . . . .
4.3.4. Control para el modelo del pendulo invertido . . .
4.3.5. Lmites de los mandos . . . . . . . . . . . . . . . .
4.4. M
aquina de estados . . . . . . . . . . . . . . . . . . . . .
4.4.1. M
aquina de estados para el modelo completo . . .
4.4.2. M
aquina de estados para el modelo simplificado . .

. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
control
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

76
77
77
82
84
86
86
90
91
92
94
99
106
106
109
110
111

5. Implementaci
on
5.1. Dise
no de drivers . . . . . . . . . . . . . .
5.1.1. Driver para la IMU . . . . . . . . .
5.1.2. Driver para el transmistor-receptor
5.1.3. Driver para los motores . . . . . .
5.1.4. Driver para el lector de batera . .
5.2. Montaje del dispositivo . . . . . . . . . .
5.3. Conexionado . . . . . . . . . . . . . . . .

. . .
. . .
RC
. . .
. . .
. . .
. . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

114
114
115
117
121
122
123
127

6. Ensayos
6.1. Simulaciones . . . . . . . . . . . . . . . . . .
6.1.1. Control para el modelo completo . . .
6.1.2. Controles para el modelo simplificado
6.1.3. Control para el pendulo invertido . . .
6.2. Ensayos en el dispositivo . . . . . . . . . . . .
6.2.1. Filtro de Kalman . . . . . . . . . . . .
6.2.2. Filtro de Savitzky-Golay . . . . . . . .
6.3. Ensayo de los controladores . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

130
131
131
140
165
171
171
177
179

7. Conclusiones
7.1. Resumen de las tareas realizadas
7.2. Conclusiones del proyecto . . . .
7.2.1. Estudios mecanicos . . . .
7.2.2. Regulaci
on del sistema . .
7.2.3. Implementaci
on . . . . . .
7.2.4. Estudio en conjunto . . .
7.3. Precauciones a tener en cuenta .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

186
187
193
194
194
198
199
199

.
.
.
.
.
.
.

.
.
.
.
.
.
.

8. Futuras mejoras

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

202
viii

Indice de tablas
2.1. Comparacion entre motores con y sin escobillas . . . . . . . . . . . . . . . . 27
2.2. Controladores de cuadricopteros mas comunes . . . . . . . . . . . . . . . . . 33
2.3. Valores obtenidos en el ensayo de un motor [4] . . . . . . . . . . . . . . . . 43
3.1. Parametros mecanicos del cuadric
optero . . . . . . . . . . . . . . . . . . . . 65
3.2. Parametros de los motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.1.
4.2.
4.3.
4.4.
4.5.

Funciones de transferencia para el control de la posicion . . . . . . . . . . . 93


Funciones de transferencia para la traslacion del dispositivo . . . . . . . . . 94
Parametros de los controles PI con ponderacion de la referencia . . . . . . . 97
Parametros de los controles PD . . . . . . . . . . . . . . . . . . . . . . . . . 98
Parametros de los controles PID con ponderacion de la referencia para el
modelo simplificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.6. Parametros del control por realimentacion de estado en el modelo simplificado104
4.7. Parametros del control LQR para el modelo simplificado . . . . . . . . . . . 106
4.8. Parametros de los controles PD . . . . . . . . . . . . . . . . . . . . . . . . . 106
4.9. Valores de saturacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
4.10. Modificaci
on de la ponderaci
on de la referencia para el PID por saturacion . 109
5.1. Variable emitida por canal . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
5.2. Asignaci
on de pines en el microcontrolador . . . . . . . . . . . . . . . . . . 129
6.1.
6.2.
6.3.
6.4.
6.5.
6.6.
6.7.
6.8.

Valores caractersticos de la respuesta en frecuencia . . . . . . . . .


Valores caractersticos del estudio de la sensibilidad . . . . . . . . .
Valores caractersticos de la respuesta en frecuencia . . . . . . . . .
Valores caractersticos del estudio de la sensibilidad . . . . . . . . .
Valores de las primeras ponderaciones a la referencia para el PID .
Valores de las ponderaciones a la referencia corregidas para el PID
Valores de las omegas del cuerpo ante un escalon de 10o . . . . . .
Correcci
on en la KI del control por realimentacion de estados con
integral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.9. Valores de las omegas del cuerpo ante un escalon de 10o . . . . . .
6.10. Valores de las omegas del cuerpo ante un escalon de 10o . . . . . .
6.11. Nuevos parametros del control PD para el pendulo . . . . . . . . .

. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
accion
. . . .
. . . .
. . . .
. . . .

.
.
.
.
.
.
.

134
136
143
144
146
149
152

.
.
.
.

155
158
162
168

7.1.
7.2.
7.3.
7.4.
7.5.
7.6.
7.7.
7.8.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

187
189
189
190
190
191
192
192

Parametros mecanicos del cuadric


optero . . . .
Conjunto de funciones de transferencia . . . . .
Parametros de regulacion del filtro de Kalman .
Controles para el modelo completo . . . . . . .
Controles para el modelo simplificado . . . . .
Parametros del control del pendulo . . . . . . .
Relacion entre canales y variables fsicas . . . .
Relacion entre canales y pines de conexi
on . . .
ix

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

7.9. Resumen de conclusiones para la regulacion del sistema . . . . . . . . . . . 198


7.10. Resumen de las conclusiones en la implementaci
on del dispositivo . . . . . . 199

Indice de figuras
1.1. Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1. Desarrollo de los cuadricopteros . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Modelo de un cuadricoptero . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Diagrama de funcionamiento de un cuadricoptero . . . . . . . . . . . . . .
2.4. Sistemas de ejes[1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Giros[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Giros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7. Diagrama del Cuerpo Libre [3] . . . . . . . . . . . . . . . . . . . . . . . .
2.8. Motor brushless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9. Controlador electr
onico de velocidad . . . . . . . . . . . . . . . . . . . . .
2.10. Batera LIPo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.11. Giroscopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.12. Esquema simb
olico de un aceler
ometro . . . . . . . . . . . . . . . . . . . .
2.13. IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.14. Diagrama del microcontrolador . . . . . . . . . . . . . . . . . . . . . . . .
2.15. Ejemplo de un transmisor de 5 canales . . . . . . . . . . . . . . . . . . . .
2.16. Simulacion de la onda emitida por un sensor de ultrasonido . . . . . . . .
2.17. Error en la percepcion por la proximidad de los sensores . . . . . . . . . .
2.18. Ejemplo de vuelo inmovil basado en sensores infrarrojos. . . . . . . . . . .
2.19. Ejemplo de un banco de ensayo para motores brushless. . . . . . . . . . .
2.20. Graficas de empuje y velocidad para distintas intensidades en un motor
brushless [4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.21. Banco de ensayo para cuadricopteros de eje fijo . . . . . . . . . . . . . . .
2.22. Grafica efecto suelo con datos del ensayo . . . . . . . . . . . . . . . . . . .
2.23. Grafica efecto techo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.24. Oscilacion en la pala como consecuencia de una translacion[5] . . . . . . .
2.25. Ciclo de oscilacion de la helice como consecuencia de una translacion . . .
2.26. Relacion entre el empuje y el
angulo de ataque para una velocidad de translacion constante.[5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.27. Diagrama de bloques del control por linealizaci
on en la realimentaci
on.[6]
2.28. Diagrama de bloques de un observador. . . . . . . . . . . . . . . . . . . .
2.29. Esquema de funcionamiento de un filtro complementario . . . . . . . . . .
2.30. Diagrama de bloques de un filtro de Kalman con planta lineal . . . . . . .
2.31. Esquema del proceso interno del filtro de Kalman . . . . . . . . . . . . . .
2.32. Maquina de estados del PX4 Autopilot [7] . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

20
20
21
22
23
24
25
26
28
28
30
30
31
33
36
37
38
39
43

.
.
.
.
.
.

43
44
45
46
47
47

.
.
.
.
.
.
.

48
50
53
55
55
56
63

3.1.
3.2.
3.3.
3.4.
3.5.

.
.
.
.
.

65
67
68
68
69

Representacion CAD de la estructura del cuadricoptero . .


Banco de ensayos, vista frontal . . . . . . . . . . . . . . . .
Banco de ensayos, vista lateral . . . . . . . . . . . . . . . .
Galga extensiometrica para la medici
on del par de arrastre
Galga extensiometrica para la medici
on del empuje . . . . .

xi

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

3.6. Placa controladora de Arduino . . . . . . . . . . . . . . . . . . .


3.7. Evoluci
on de la velocidad de giro durante el ensayo . . . . . . . .
3.8. Evoluci
on del empuje al aumentar la velocidad de giro del motor
3.9. Evoluci
on del par al aumentar la velocidad de giro del motor . .
3.10. Recta de ajuste por mnimos cuadrados . . . . . . . . . . . . . .
3.11. Simulacion efecto suelo . . . . . . . . . . . . . . . . . . . . . . . .
3.12. Grafica efecto suelo . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.

70
70
71
72
72
73
74

4.1. Diagrama del cuerpo libre del sistema . . . . . . . . . . . . . . . . . . . . .


= [, , ]) . . . . . . . . . . . . . . .
4.2. Diagrama del modelo (
r = [x, y, z],
4.3. Diagrama del modelo completo . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Diagrama del modelo simplificado . . . . . . . . . . . . . . . . . . . . . . . .
4.5. Diagrama de fuerzas del pendulo invertido en estudio . . . . . . . . . . . . .
4.6. Diagrama del modelo de un pendulo invertido . . . . . . . . . . . . . . . . .
4.7. Diagrama de funcionamiento del filtro de Kalman dise
nado . . . . . . . . .
4.8. Ruido en la medida del aceler
ometro . . . . . . . . . . . . . . . . . . . . . .
4.9. Esquema general del sistema . . . . . . . . . . . . . . . . . . . . . . . . . .
4.10. Esquema del sistema con el modelo completo . . . . . . . . . . . . . . . . .
4.11. Esquema del control PI con ponderacion de la referencia . . . . . . . . . . .
4.12. Esquema del control Proporcional . . . . . . . . . . . . . . . . . . . . . . . .
4.13. Esquema del control PD para la regulacion de los angulos de Euler . . . . .
4.14. Esquema del sistema con el modelo simplificado . . . . . . . . . . . . . . . .
4.15. Respuesta en frecuencia de las plantas (izq) y repuesta en frecuencia del
lazo abierto (drcha) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.16. Diagrama del PID incremental con ponderacion de la referencia) . . . . . .
4.17. Diagrama del control por realimentacion de estados . . . . . . . . . . . . . .
4.18. Lugar de las races de la planta y del sistema con realimentacion de estado .
4.19. Lugar de las races de la planta y el sistema con control LQ . . . . . . . . .
4.20. Diagrama del filtro antiwindup . . . . . . . . . . . . . . . . . . . . . . . . .
4.21. Maquina de estados para el modelo completo . . . . . . . . . . . . . . . . .
4.22. Maquina de estados para modelo simplicado . . . . . . . . . . . . . . . . . .

78
79
80
83
84
85
87
91
95
95
97
97
98
99
101
102
103
104
105
109
110
111

5.1. Bloque del driver para la IMU . . . . . . . . . . . . .


5.2. Emisora con los canales por los que emite cada se
nal
5.3. Bloque de Arduino para generar PWMs . . . . . . .
5.4. Esquema del divisor de tension con buer . . . . . .
5.5. Bloque de Arduino para leer la tensi
on de la bateria
5.6. Piezas para la construccion de la estructura . . . . .
5.7. Descomposici
on del conjunto . . . . . . . . . . . . .
5.8. Parte inferior de la estructura . . . . . . . . . . . . .
5.9. Parte superior de la estructura . . . . . . . . . . . .
5.10. Estructura con refuerzos en los brazos . . . . . . . .
5.11. Cuadric
optero montado . . . . . . . . . . . . . . . .
5.12. Placa con el divisor de tension . . . . . . . . . . . .
5.13. Pistas de la placa del divisor . . . . . . . . . . . . .
5.14. Conexionado al microcontrolador . . . . . . . . . . .
5.15. Esquema de conexi
on para el divisor de tensi
on . . .
5.16. Conexi
on de los reguladores electronicos de velocidad
6.1.
6.2.
6.3.
6.4.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

117
118
121
122
123
123
124
124
125
125
126
126
127
128
129
129

Respuesta en frecuencia del regulador para el


angulo
Respuesta en frecuencia del regulador para Vx,y . . . .
Respuesta en frecuencia del regulador para Vz . . . . .
Sensibilidad para el
angulo . . . . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

132
132
133
135

xii

6.5. Sensibilidad del regulador para Vx,y . . . . . . . . . . . . . . . . . . . . . . . 135


6.6. Sensibilidad del regulador para Vz . . . . . . . . . . . . . . . . . . . . . . . 136
6.7. Simulacion completa. Velocidades lineales . . . . . . . . . . . . . . . . . . . 136
6.8. Respuesta al escalon de los
angulos de Euler y el mando . . . . . . . . . . . 138
6.9. Respuesta al escalon de las velocidades lineales . . . . . . . . . . . . . . . . 140
6.10. Diagrama de Black-Nichols de las plantas y del control en lazo abierto . . . 141
6.11. Respuesta en frecuencia del modelo analogico, el modificado y el lazo abierto143
6.12. Diagrama de bode del control en lazo abierto . . . . . . . . . . . . . . . . . 144
6.13. Diagrama de bode para el estudio de la sensibilidad complementaria . . . . 144
6.14. Respuesta libre del sistema y accion del mando . . . . . . . . . . . . . . . . 145
6.15. Respuesta al escalon unitario sin ponderaci
on a la referencia . . . . . . . . . 146
6.16. Respuesta al escalon unitario con ponderacion a la referencia . . . . . . . . 147
6.17. Se
nal de mando para la respuesta al escalon unitario con ponderacion a la
referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
6.18. Respuesta a un escal
on de 10o con ponderacion a la referencia . . . . . . . . 148
6.19. Respuesta a un escal
on de 20o con ponderacion a la referencia . . . . . . . . 148
6.20. Respuesta a un escal
on de 20o con ponderacion a la referencia corregida . . 149
6.21. Respuesta a un escal
on de 20o con ponderacion y sin anti-windup . . . . . . 150
6.22. Respuesta a un escal
on de 50o con ponderacion corregida . . . . . . . . . . 151
6.23. Respuesta a un escal
on de 10o con perturbacion en carga de 5 . . . . . . . . 151
6.24. Respuesta a un escal
on de 1o con ruido en la medida . . . . . . . . . . . . . 152
6.25. Derivadas de los
angulos de Euler ante escalones de 10o . . . . . . . . . . . 153
6.26. Respuesta libre con el control por realimentacion de estados . . . . . . . . . 154
6.27. Respuesta al escalon unitario . . . . . . . . . . . . . . . . . . . . . . . . . . 155
6.28. Respuesta al escalon unitario corregida . . . . . . . . . . . . . . . . . . . . . 155
6.29. Respuesta a un escal
on de 10 . . . . . . . . . . . . . . . . . . . . . . . . . . 156
6.30. Respuesta a un escal
on de 20 . . . . . . . . . . . . . . . . . . . . . . . . . . 156
6.31. Respuesta a un escal
on de 50 . . . . . . . . . . . . . . . . . . . . . . . . . . 157
6.32. Derivadas de los
angulos de Euler ante escalones de 10o . . . . . . . . . . . 158
6.33. Respuesta libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.34. Respuesta al escalon unitario . . . . . . . . . . . . . . . . . . . . . . . . . . 159
6.35. Respuesta a un escal
on de 10o . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.36. Respuesta a un escal
on de 20o . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.37. Respuesta a un escal
on de 50o . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.38. Respuesta a un escal
on de 90o . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.39. Derivadas de los
angulos de Euler ante escalones de 10o . . . . . . . . . . . 162
6.40. Respuesta de los tres controladores ante escalones unitarios . . . . . . . . . 163
6.41. Respuesta de los tres controladores ante escalones de 10o . . . . . . . . . . 164
6.42. Respuesta de los tres controladores ante escalones de 20o . . . . . . . . . . 164
6.43. Diagrama de Black del lazo abierto . . . . . . . . . . . . . . . . . . . . . . 166
6.44. Respuesta de la funci
on sensibilidad . . . . . . . . . . . . . . . . . . . . . . 167
6.45. Respuesta de la funci
on sensibilidad complementaria . . . . . . . . . . . . . 167
6.46. Respuesta al escalon unitario . . . . . . . . . . . . . . . . . . . . . . . . . . 168
6.47. Diagrama de Black del lazo abierto con el control reajustado . . . . . . . . 169
6.48. Respuesta de la funci
on sensibilidad con el control reajustado . . . . . . . . 169
6.49. Respuesta de la funci
on sensibilidad complementaria con el control reajustado170
6.50. Respuesta al escalon unitario con el control reajustado . . . . . . . . . . . . 170
6.51. Estimacion del
angulo phi sin movimiento de las helices . . . . . . . . . . . 172
6.52. Estimacion del
angulo phi con cambios en la orientacion del dispositivo y
movimiento en las helices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
6.53. Estimacion del
angulo phi con movimiento en las helices y Q recalibrada . . 174
6.54. Filtrado de la referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
xiii

6.55. Se
nales de referencia con y sin filtrado . . . . . . . . . . . . . . . . . . . . . 178
6.56. Filtrado en la se
nal de tensi
on de la batera . . . . . . . . . . . . . . . . . . 178
6.57. Mandos en funcion de la referencia aplicada . . . . . . . . . . . . . . . . . . 179
6.58. Mandos aplicados sobre el dispositivo en lazo abierto con el controlador PID.180
6.59. Mandos aplicados sobre el dispositivo con el controlador PID . . . . . . . . 181
6.60. Mandos aplicados sobre el dispositivo con el controlador LQ . . . . . . . . . 182
6.61. Mandos aplicados sobre el dispositivo con el controlador LQI . . . . . . . . 183
7.1. Esquema de tareas realizadas . . . . . . . . . . . . . . . . . . . . . . . . . . 186
7.2. Conexionado al microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . 191
7.3. Estructura final del cuadricoptero . . . . . . . . . . . . . . . . . . . . . . . . 192

xiv

Captulo 1

Introducci
on
En los u
ltimos a
nos hemos sido testigos de un desarrollo importante en el campo de la
electronica. Sensores y microprocesadores, entre otros muchos dispositivos, han sido mejorados abriendo nuevas lneas de investigacion en proyectos para los que anteriormente
no exista soporte fsico o cuyos componentes no respondan adecuadamente a las necesidades fijadas. Una de esas lneas de investigacion es el control y modelado de vehculos
aereos no tripulados (UAV), basados especialmente en sistemas de despegue y aterrizaje
vertical (VTOL). En este proyecto modelaremos y controlaremos uno de los UAVs mas
caractersticos, el cuadric
optero o quadcopter. A traves del control de cuatro rotores independientes, otorgaremos al dispositivo tanto estabilidad como autonoma, siendo capaz
de realizar acciones tales como el vuelo estacionario, la navegacion guiada mediante una
emisora de radio-control o la navegacion autonoma mediante sensores de distancia. En este
proyecto nos limitaremos al estudio e implementacion del control para vuelos internos. El
software de control sera generado en el entorno de Matlab/Simulink con el fin de poder
aplicarlo tambien a la docencia en cursos posteriores. Por lo tanto este proyecto aportara a
la Universidad Pontificia de Comillas experiencia en la operaci
on de UAVs que, posteriormente, puede ser utilizada para iniciar lneas de investigacion m
as concretas y avanzadas,
as como la aplicacion de este dispositivo al
ambito academico en la formaci
on de alumnos
dada la gran variedad de conceptos que incorporan estos dispositivos.
Este documento se presenta como un compendio del estudio realizado. Su contenido esta organizado en captulos y secciones donde se clasifican y describen los elementos
necesarios para un correcto dise
no y funcionamiento, as como la operacion del sistema
implementado. En este primer captulo se introducen las aplicaciones actuales en la industria, la motivacion, objetivos y metodologa del trabajo del proyecto, as como los recursos
empleados. En el captulo segundo se incluye un estudio del estado del arte, describiendo
los elementos necesarios para un completo entendimiento de los captulos sucesivos. El
captulo tercero acoge el estudio mecanico del proyecto, mostrando el modelo CAD de la
nave, los estudios mecanicos de la misma y las simulaciones aerodinamicas realizadas. En
el captulo cuarto se incluye todo lo relacionado con el control del dispositivo, describiendo
el modelo, la estimacion de los estados, el control y la implementaci
on de una m
aquina
de estados para su control logico. El quinto captulo recoge los conceptos relacionados con
la implementaci
on del software dise
nado sobre el sistema, describiendo los drivers necesarios, el montaje y el conexionado del dispositivo. El captulo sexto muestra los ensayos
realizados y en el, se incluyen los resultados obtenidos. En el captulo septimo se exponen
las conclusiones y finalmente, en el captulo octavo se incluyen las futuras mejoras que se
podran realizar sobre el proyecto. A traves de esta distribucion de contenidos se pretende informar al lector, de forma clara, del contenido del proyecto facilitando as trabajos
futuros sobre el tema estudiado.
15

Modelado y Control de un Cuadricoptero

1.1.

Introducci
on

Aplicaciones de cuadric
opteros en la industria

Un cuadricoptero es un dispositivo con cuatro motores distribuidos simetricamente


respecto a su centro geometrico. Su funcionamiento es muy parecido al de un helicoptero
convencional puesto que usa el aire propulsado por los motores para generar una fuerza de
empuje vertical que mantiene al helic
optero en vuelo. La principal diferencia, a excepcion
de su tama
no, se encuentra en el n
umero de motores. Los helic
opteros convencionales tienen dos rotores, uno central que produce la fuerza de empuje que sostiene al vehculo, y
otro peque
no orientado hacia su lateral, y cuya funci
on es compensar el par que produce el
rotor principal. Sin embargo este modelo precisa de una mecanica compleja para controlar
la direccion del movimiento, basada en un plato oscilante para variar el
angulo de ataque
en el motor principal. Por otro lado, los cuadric
opteros requieren de un sistema mecanico
mucho m
as simple y por esa razon estan siendo fuente de estudio en los u
ltimos a
nos. Este
desarrollo ha ocurrido recientemente ya que se careca de la electronica necesaria para el
control independiente de los cuatro motores.
Como consecuencia de las recientes investigaciones en aplicaciones para estos dispositivos, un gran n
umero de empresas empiezan a incorporar cuadric
opteros para diversos
usos, como por ejemplo la compa
na Arduino. Esta compa
na italiana, que se especializa
en el desarrollo de tarjetas microcontroladoras orientadas tanto a aplicaciones industriales
como a la ense
nanza, ha desarrollado una tarjeta dise
nada especficamente para el control
de cuadricopteros llamada Arducopter. Este dispositivo cuenta tambien con un software
didactico y relativamente sencillo que permite calibrar el sistema y modificar los parametros del controlador entre otras caractersticas. Continuando en el campo de la ense
nanza
y la investigacion, podramos nombrar un gran n
umero de universidades alrededor del
mundo que desarrollan investigaciones en este campo o que paulatinamente se inician
lneas de investigacion en este campo, como la Universidad Pontificia de Comillas. Sin
embargo, el uso de estos dispositivos no se restringe al
ambito academico sino que tambien
se encuentran aplicaciones en la industria. Generalmente se usan estos dispositivos para
monitorizar, evaluar y observar zonas de difcil acceso o con riesgo de perjuicio para los
operarios. Por ejemplo la empresa Endesa usa cuadricopteros para revisar el estado de sus
lneas de alta y media tensi
on, reduciendo el riego de da
no en sus operarios y disminuyendo los costes de mantenimiento. Existe tambien un modelo de cuadricoptero llamado
Aracnocopter que se encarga de revisar el estado de los aerogeneradores trepando por el
mastil desde el suelo hasta el rotor. Tambien existen cuadric
opteros que miden los gases
expulsados en volcanes, pudiendo analizar la actividad volcanica del mismo sin necesidad
de intervenci
on humana directa. Existe tambien bastante actividad en este campo entre
los aficionados de la aeronautica y la electronica. Estos dispositivos suponen un reto en
su construcci
on con grandes aplicaciones posteriores, como la toma de fotografas y videos
desde el aire.

1.2.

Motivaci
on del proyecto

Como se ha descrito en la seccion anterior, existen actualmente un gran n


umero de
aplicaciones as como lneas de investigacion que hacen referencia a UAVs. Este campo de
reciente aparici
on se desarrolla r
apidamente, ofreciendo grandes posibilidades tanto para
investigadores, como compa
nas interesadas en adquirir dichos dispositivos. Por lo tanto
este proyecto aportara a la Universidad Pontificia de Comillas experiencia en la operacion
de UAVs que, posteriormente, pueden ser utilizados para iniciar lneas de investigacion
mas concretas y avanzadas, como hacen otras universidades del mundo. Ademas, este tipo
de vehculos incorporan una gran diversidad de conceptos estudiados por los ingenieros
16

Modelado y Control de un Cuadricoptero

Introducci
on

industriales a lo largo de la carrera tales como:


Mecanica del solido rgido: En el modelado matematico del sistema aparecen momentos y tensores de inercia, matrices de Rotacion,
angulos de Euler.
Mecanica de fluidos: como en la caracterizacion de las fuerzas de friccion o en los
efectos de proximidad del suelo o el techo.
Matem
atica aplicada: en el uso de cuaterniones para reducir la complejidad de los
c
alculos en el microprocesador.
Electronica de potencia: presente en los controladores electronicos de velocidad que
alimentan los motores.
Maquinas electricas: en los motores brushless que se usan en el dispositivo.
Automatizaci
on: en el control del vehculo.
Electronica analogica y digital: incluida en los sensores y componentes del controlador.
Comunicaciones: presente en el sistema de comunicacion entre la aeronave y el dispositivo de control (mando).
Por tanto, la aplicacion de este dispositivo al
ambito academico puede tener especial interes
en la formaci
on de alumnos. Por ello, los algoritmos de control se implantaran a traves
de SIMULINK con el fin de establecer un desarrollo m
as flexible y adecuado para su
integracion en laboratorios. Por u
ltimo, este proyecto ofrece una gran oportunidad para
ampliar los conocimientos de control de dispositivos moviles, de una forma tangible y
practica.

1.3.

Objetivos

Para un correcto desarrollo del proyecto as como unos resultados satisfactorios se han
fijado los siguientes onjetivos:
1. Modelado CAD y matematico del cuadric
optero.
2. Control de vuelo estacionario.
3. Navegacion guiada mediante una emisora de radio control.
4. Navegacion autonoma mediante sensores de distancia.
Dado que nuestro microprocesador trabaja u
nicamente con 8 bits, la capacidad de computacion es reducida. Esto es un peque
no problema en este caso, ya que trabajamos con
matrices de rotaci
on, por lo que las operaciones son computacionalmente costosas. Por esa
razon desarrollaremos un controlador basado en cuaterniones que haran la funcion de las
matrices de rotaci
on de Euler, facilitando su computacion y haciendo por tanto posible el
control del vehculo mediante el dispositivo de calculo disponible.

17

Modelado y Control de un Cuadricoptero

1.4.

Introducci
on

Metodologa de trabajo

La metodologa de trabajo seguida se muestra en el cronograma mostrado en la figura


1.1, la cual refleja las distintas tareas realizadas as como el tiempo invertido para su
ejecucion.

Figura 1.1: Cronograma


Inicialmente se ha revisado los estudios realizados por otros investigadores en el campo de
UAVs. Una vez realizada esa tarea, se ha procedido con el modelado CAD y matematico
del sistema. Posteriormente se ha desarrollado el software de control y los drivers. Una vez
comprobada su validez en las simulaciones, se ha implantado en el sistema real y se han
realizado distintos ensayos. Adicionalmente, se han fijado los siguientes hitos de control
del proyecto:
Primer hito (enero 2014): Modelado del cuadric
optero y software de control
Segundo hito (marzo 2014): Vuelo regulado.
Tercer hito (mayo 2014) Vuelo autonomo y memoria.

1.5.

Recursos y herramientas empleadas

En el presupuesto del proyecto se realiza un estudio m


as detallado de los recursos y
herramientas usadas, incluyendo sus precios y otros elementos complementarios que proporcionen informacion sobre los costes totales del proyecto. Por tanto en esta secci
on solo
se enumerar
an los elementos principales a fin de dar una idea de los elementos necesarios.
Para el cuadric
optero se necesita:
Una estructura de ensamblaje.

Una batera LiPo.

Cuatro motores brushless.

Una unidad interna de medidas.

Cuatro controladores electronicos


de velocidad (ESC).

Un emisor y un receptor RC.


Sensores de infrarrojos y
ultrasonidos.

Un controlador CRIUS basado


en un Arduino ATMega 2560.

Elementalmente se hara uso de otros elementos como cables o cargadores de bateras.


Se necesitaran ademas un banco de ensayo de motores as como los programas Matlab,
Simulink y Solid Edge.
18

Captulo 2

Estado de la cuesti
on
El primer vuelo de un cuadricoptero o cuadrirrotor tuvo lugar el 11 de noviembre
de 1922 y fue realizado por el ingeniero frances Etienne Oehmichen. A pesar del exito,
la complejidad en el control de estas naves por parte del piloto ralentizo su desarrollo,
centrando la investigacion en los helic
opteros que hoy en da conocemos. A pesar de las
dificultades, algunos investigadores siguieron trabajando en modelos de cuatro rotores y
desarrollaron prototipos como los mostrados en la imagen 2.1 que datan de los a
nos 50.

Figura 2.1: Desarrollo de los cuadric


opteros
Con el tiempo, se centro la investigacion en vehculos multirotores m
as peque
nos y
mecanicamente m
as sencillos dando lugar a lo que hoy en da entendemos como cuadricopteros (figura 2.2). Estos dispositivos gozan de una gran maniobrabilidad as como
de una mecanica relativamente simple gracias al sistema de regulacion y control electronico. La reduccion de la complejidad mecanica viene acompa
nada de un incremento en la
dificultad del software y la electr
onica para su regulacion. La principal ventaja que ofrecen
es que pueden ser tripulados de forma remota.

Figura 2.2: Modelo de un cuadricoptero

19

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

El funcionamiento de estos dispositivos para vuelo con control remoto esta representado
por el diagrama de la figura 2.3. A traves de un sistema de comunicacion inalambrico
(zigbee, bluethooh, radio frecuencia...) se comunica al controlador la nueva direccion a
tomar lo cual, junto con las medidas obtenidas de los aparatos de medicion incluidos
en el controlador (gir
oscopos, aceler
ometros, magnet
ometros etc) as como elementos de
posicionamiento externos como GPS, permite actuar sobre las velocidades de los motores
variando la tensi
on aplicada a las mismas

Figura 2.3: Diagrama de funcionamiento de un cuadricoptero


El giro de las palas de los rotores del cuadricoptero generan un flujo de aire descendente
que proporciona una fuerza de empuje sobre el cuerpo que sustenta el vehculo durante el
vuelo. Variando las fuerzas de empuje individuales de cada rotor, a traves de la tensi
on
aplicada a los motores, es posible modificar los
angulos de alabeo (roll) y cabeceo (pitch),
as como, variando el par de los motores, el
angulo de gui
nada (yaw). M
as adelante, en la
seccion 2.1.1, se describen y explican detalladamente los mencionados
angulos. Modificando estos tres
angulos de forma controlada es posible mover el cuadric
optero en todas las
direcciones del espacio.
El funcionamiento descrito anteriormente requiere de un algoritmo de control capaz
de regular las tensiones de los motores de forma que se obtengan los resultados deseados,
as como de un soporte fsico capaz de procesar las medidas y actuar en consecuencia. Si
bien el soporte fsico no constituye un problema a da de hoy, el algoritmo de control si
que esta sujeto a mejoras continuas. Algunas de las complicaciones planteadas al dise
nar
el software del controlador se presentan a continuacion:
Estos dispositivos cuentan con seis grados de libertad (tres de giro y tres de translacion) y u
nicamente cuatro entradas independientes (velocidad de rotaci
on de los
motores). En consecuencia, el dispositivo no dispone de mandos suficientes para controlar todos los grados de libertad, por lo que suelen acoplarse los movimientos de
translacion y rotaci
on para facilitar su control. Ademas, la dinamica resultante es altamente no lineal, especialmente a grandes velocidades de rotaci
on o en condiciones
no estables del medio en el que se encuentra el vehculo (vuelo en el exterior).
A la hora de programar el software de control, es necesario modelar el comportamiento del dispositivo a controlar de la forma mas precisa posible, evaluando que efectos
son despreciables y cuales no. Por desgracia no existe una gua a seguir, sino que ha
de realizarse a traves del estudio de la fsica que engloba el proceso y, a traves de
experimentos, comprobar su validez.
Todo modelo necesita parametros para describir su comportamiento. Por tanto es
conveniente dise
nar un banco de ensayos para parametrizar los motores que se usen
en el dispositivo. Ademas es necesario obtener una estimacion del ruido que tendran
las medidas de giroscopos y aceler
ometros as como de los bias que estos introducen
en las mismas.

20

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Profundizando en la aerodinamica del dispositivo se observa que las palas de los


rotores, fabricadas usando materiales plasticos con un cierto de grado de flexibilidad,
adquieren un peque
no
angulo de nutaci
on al trasladarse el vehculo (blade flapping
rotation angle), que modifica el valor del empuje generado por el rotor. Este efecto
es mucho mas notorio en vuelo exterior que en vuelo interior ya que las condiciones
del entorno son mucho m
as estables en este u
ltimo caso.
Tambien en el campo de la aerodinamica encontramos que la friccion generada por
el aire es mucho menor que la generada en tierra, lo que implica que las respuestas
del dispositivo deben ser lo suficientemente potentes y rapidas como para parar y/o
estabilizar nuestra aeronave.
La velocidad de giro de los rotores y las vibraciones generadas en la estructura,
que en principio pueden parecer despreciables, tienen un gran efecto en las medidas
que recogen los sensores, distorsion
andolas hasta el punto de dificultar el control del
cuadricoptero.
El controlador utilizado cuenta con una aritmetica de 8 bits y por lo tanto la complejidad de los algoritmos de control que pueden ejecutarse en el procesador es relativamente modesta. En consecuencia haremos uso de unos elementos matematicos
llamados cuaterniones, que sustituir
an las matrices de rotaci
on facilitando el procesado y la computacion de los giros de la aeronave.
A continuacion se presentan, en distintas secciones los elementos necesarios para el entendimiento y desarrollo del modelado y control de esta aeronave, teniendo en cuenta las
complejidades mencionadas anteriormente.

2.1.

Modelado del cuadric


optero

2.1.1.

Sistemas de referencia

Para modelar nuestra aeronave a traves de las ecuaciones de la cinem


atica y la dinamica, necesitamos definir varios sistemas de ejes. La configuracion m
as extendida en este
momento esta representada en la figura 2.4, donde podemos observar dos sistemas de referencia. El primero de ellos, {x,y,z}, se denomina sistema inercial y es un sistema fijo
en el espacio. Es el sistema donde se aplican las ecuaciones dinamicas de translacion. El
segundo,{i,j,k}, es solidario al cuerpo y a el se refieren los giros del cuadric
optero. Es
importante mencionar que los ejes i y j estan alineados con los brazos de la nave, como se
muestra en la figura 2.4.

Figura 2.4: Sistemas de ejes[1]


21

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

A fin de crear un modelo consistente, todas las magnitudes deben estar referidas a
la misma base y por tanto definiremos una matriz de cambio de base (2.1) que transformara elementos del sistema inercial al sistema m
ovil y viceversa. A fin de simplificar la
notaci
on de dicha matriz se han representado las funciones seno y coseno con la letra S y
C respectivamente.

S S S + C C S S C C S S C
C S
C C
S
(2.1)
R=
C S S S C C S C + S S C C
Para describir los giros que realizara nuestro dispositivo utilizaremos los
angulos de Euler.
As pues la gui
nada () es la rotaci
on intrnseca alrededor del eje vertical perpendicular al
avion, el cabeceo () es una inclinacion del morro de la nave, o rotaci
on respecto al eje alaala, el alabeo() rotaci
on respecto de un eje morro-cola. Para m
as claridad se ha incluido
la imagen (2.5) que representa los tres giros de la aeronave anteriormente descritos.

Figura 2.5: Giros[2]

2.1.2.

Fuerzas y Momentos

Una vez definidas ambas bases junto con la matriz de cambio de base, necesitamos
definir las fuerzas y pares que se aplican sobre la aeronave para, posteriormente, modelar
el sistema a traves de las ecuaciones de movimiento.
Cada uno de los cuatro motores montados en el vehculo consumiran una potencia que,
por conservacion de la energa, sera igual al empuje por la velocidad del aire que desplaza.
Asumiendo que el aire en los alrededores del cuadricoptero esta en estado estacionario y,
aplicando la teora del momento de Froudes [8], obtenemos la ecuacion que relaciona la
velocidad del aire con el empuje de cada motor. Combinando por tanto la ecuaci
on de la
potencia con la ecuaci
on de Froude y extendiendola al conjunto de motores, obtenemos la
ecuaci
on (2.2) que describe el empuje del los rotores. Es importante notar que el empuje
esta referido al sistema de coordenadas fijo al cuerpo.

0
4
%
0

Tc =
Ti = k
(2.2)
4
'

i=1
i
i=1

Otra fuerza que debe estar incluida en nuestro modelo es el peso del cuerpo. Esta
fuerza, bastante m
as sencilla de caracterizar que cualquier otra fuerza a incluir en el
modelo, esta representada en el sistema de referencia inercial mediante la ecuaci
on (2.3).

22

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

0
P = 0
mg

(2.3)

Las dos fuerzas anteriormente introducidas y descritas a traves de las ecuaciones (2.2)
y (2.3) son la base para nuestro modelo simplificado. No obstante, existen otros factores
que conviene tener en cuenta dadas ciertas condiciones del entorno.
Acorde al modelo desarrollado en[9], las palas de los rotores adquieren un peque
no
angulo cuando los rotores se trasladan horizontalmente. Este
angulo hace que el plano
de rotaci
on no sea totalmente perpendicular al eje del rotor e introduce un notable efecto de desestabilizacion en el vehculo[10]. La figura(2.6) muestra gr
aficamente el efecto
anteriormente descrito.

Figura 2.6: Giros


Este efecto es especialmente notorio a altas velocidades de rotaci
on de las helices y para
palas largas. En principio este efecto es m
as com
un en vuelos externos y, al abordase
u
nicamente vuelos internos, no sera incluido. En [9] se analiza tambien el efecto que en
este proyecto producen los giros de nutaci
on y spin sobre la aeronave, ya que generan
un cambio en el
angulo de entrada del fluido a las helices del vehculo. Este efecto fue
modelado a traves de una constante aplicada sobre las fuerzas de empuje, que relaciona el
mencionado efecto con la velocidad vertical de los rotores.
El u
ltimo de los efectos aerodinamicos que analizaremos es el de la friccion producida por
el movimiento del cuadricoptero dentro de un fluido, el aire. El comportamiento de esas
fuerzas de friccion es altamente no lineal y particularmente complejo. De ser necesaria
su inclusion en el modelo, podra utilizarse una aproximaci
on introducida en[11], donde
la friccion es definida como producto de una constante y de la velocidad lineal del vehculo.
Los momentos incluidos en modelo son generados por las fuerzas de empuje y por los
pares de reacci
on de los motores. Podemos asumir, y no se aleja mucho de la realidad, que
las fuerzas de empuje estan aplicadas en los extremos del marco del vehculo. Siendo as,
dichas fuerzas generar
an unos pares respecto al centro de gravedad del cuadricoptero, los
cuales pueden describirse a traves de la ecuaci
on (2.4). N
otese que los pares est
an referidos
al sistema de referencia fijo al cuerpo, al igual que lo estaban anteriormente las fuerzas de
empuje.

Lb(12 32 )

Lb(22 42 )
c =
(2.4)
2
2
2
2
d(1 + 3 2 4 )

El par en la direccion de que se muestra en la ecuacion (2.4) es una simplificaci


on de una
ecuaci
on [3] que incluye terminos aerodinamicos. No se tendran en cuenta en el modelo ya
que, en vuelos interiores, su inclusion es despreciable. La figura (2.7) muestra el diagrama
del cuerpo libre de nuestro cuadricoptero con las fuerzas y momentos analizados en esta

seccion. Estos
ser
an los que utilizaremos tanto para el modelado como para su posterior
control en las siguientes secciones.
23

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Figura 2.7: Diagrama del Cuerpo Libre [3]

2.1.3.

Ecuaciones del Movimiento

Las ecuaciones del movimiento de translacion de la aeronave referidas a los ejes inerciales, se derivan de la segunda ley de Newton tal y como se muestra en la ecuaci
on (2.5).

0
0

m
r = 0 +R
(2.5)
4
'

mg
k
i
i=1

Donde R es la matriz de cambio de base y r=(x,y,z). Operando y despejando la aceleracion,


obtenemos sus tres componentes:
x
=

S
m

C C
m

y =
z =

S C
m

4
'

Ti

i=1

4
'

i=1
4
'

Ti

(2.6)

Ti + g

i=1

Para las ecuaciones de giro, no se usara el sistema inercial sino el fijo al vehculo, de forma
que se pueda expresar las rotaciones respecto al centro del cuadricoptero, en lugar del
centro del sistema inercial. Partiendo de las ecuaciones de Euler para solidos rgidos se
puede expresar la tal que:

0
(2.7)
I + (I) + IR ( 0 ) =
1
Dada la estructura del dispositivo, podemos asumir que la matriz de inercia tiene una
estructura diagonal (productos de inercia nula) y por lo tanto podremos despejar el vector
de velocidades angulares de una forma mas sencilla. N
otase que la ecuacion (2.7) incluye
los efectos giroscopicos tanto de los motores como del cuerpo.

2.2.

Elementos del cuadric


optero

En esta secci
on se presentan y describen los distintos componentes que constituyen un
cuadricoptero b
asico. Elemento a elemento, se analizar
a su funcionamiento as como su
funcion en el sistema completo de forma que se logre un mejor entendimiento del conjunto.

2.2.1.

La estructura o marco

El marco es la estructura a la que se van a acoplar los demas elementos. El marco debe
ser rgido de forma que se minimicen las vibracion generadas en los rotores. Generalmente
24

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

esta compuesto por tres partes claramente definidas que no tienen que ser independientes, es decir, que puede ser una u
nica pieza. En el marco de un cuadricoptero podemos
distinguir:
1. Una placa central donde se colocaran los elementos electronicos tales como el controlador de vuelo entre otros.
2. Cuatro brazos unidos a la placa central que soportan los sistemas de propulsion o
rotores. La longitud de los brazos normalmente esta relacionada con el tama
no de
las helices, de forma que se garantice el giro de las mismas sin obstrucciones de los
componentes situados en la placa central.
3. Cuatro soportes para los motores posicionados en el extremo de cada brazo.
Normalmente los materiales con los que se fabrican suelen ser fibras de carbono, madera
o aluminio aunque existen marcos de materiales m
as especficos como fibras de vidrio. La
fibra de carbono es un material rgido que absorbe perfectamente las vibraciones, pero
tiene el inconveniente de que es relativamente caro. Los otros dos materiales presentados
son m
as economicos que la fibra de carbono pero, como era de esperar, no son tan efectivos.
El aluminio goza de una gran rigidez as como un peso relativamente bajo, pero tiene el
problema de que no absorbe las vibraciones de los motores, pudiendo afectar gravemente
a las medidas de los sensores acoplados al marco. Por el contrario, la madera tiene la
propiedad de absorber las vibraciones pero desafortunadamente, es bastante fragil y puede
romperse el marco en caso de colisi
on.

2.2.2.

Motores

El accionamiento de los rotores, crtico en el dise


no de este tipo de aeronaves, se realiza
mediante motores brushless (motores sin escobilla). Este tipo de motores son similares a
los de corriente continua en el sentido de que usan bobinas e imanes para mover el eje,
pero no cuentan con escobillas en el mismo. La funcion de las escobillas en los motores de
corriente continua clasicos es la de cambiar la direccion de la corriente que circula por sus
bobinas.

Figura 2.8: Motor brushless


Existen dos posibles configuraciones de motores brushless dependiendo de su estructura,
de rotor externo o interno. Los de rotor externo cuentan con una serie de bobinas situadas
en la parte central del motor, las cuales estan fijas a la carcasa, y un conjunto de imanes
montados sobre un cilindro acoplado al eje de rotaci
on. En el caso de los motores de rotor
interno, las posiciones de los imanes permanentes y las bobinas estan invertidas, es decir,
los imanes estar
an situados en la parte interna del motor y las bobinas en la parte externa. El hecho de que tenga las bobinas fijas a la carcasa implica que estas no van a rotar
y por tanto se pueden conectar a cables sin problema alguno, eliminandose por tanto la
necesidad de incluir escobillas. La corriente electrica circulara a traves de las bobinas de la
25

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

carcasa generando un campo magnetico que interaccionara con el de los imanes, generando
una par de rotaci
on sobre el eje del motor. La principal diferencia entre los motores de
rotor externo y los de rotor interno es que los primeros, como consecuencia de tener un
diametro mayor de rotor, ofrecen mayor inercia pero peor aceleracion, hecho que puede
ser beneficioso para algunas aplicaciones como en ventiladores.
Generalmente los motores brushless en conjunto, giran a un mayor n
umero de revoluciones que los motores de corriente continua. Ademas, para una velocidad de giro
equivalente, el consumo de potencia en los motores brushless es menor que en los de continua. Asmismo, los motores brushless generan menos perdidas de potencial al no existir
escobillas y por tanto cambios entre distintas posiciones de las mismas. Sin embargo, a
pesar de ser m
as eficientes desde el punto de vista energetico, al no contar con escobillas,
delgas o colectores, la regulacion de la velocidad de giro ha de realizarse a traves controladores electronicos de velocidad. A continuacion se incluye una tabla donde se comparan
los motores de corriente continua con los brushless, obtenida y traducida de [12]:
Propiedad

Motor con escobilla

Motor sin escobillas

Conmutaci
on

Mecanica

Electronica

Mantenimiento

Alto

Bajo

Ruido electrico

Alto

Bajo

Vida

Corta

Larga

Matenimiento

Alto

Bajo

Curva par-velocidad

Relativamente plana

Plana (permite operar todas las velocidades)

Eficiencia

Media

Alta

Tabla 2.1: Comparacion entre motores con y sin escobillas


En las especificaciones de este tipo de motores suele incluirse, aparte de los clasicos parametros comunes a todos los motores de corriente continua, el denominado factor Kv. Este
factor indica el n
umero de revoluciones por minuto a las que es capaz de girar el motor por
cada voltio de tensi
on que se le aplica. De esta forma se facilita la eleccion del motor que,
como se ha mencionado anteriormente, es crtica. Es importante remarcar que a la hora
de elegir los motores a instalar en el dispositivo no debemos fijarnos solo en el factor Kv
sino tambien en el par que proporciona el motor. Si tenemos un dispositivo relativamente
ligero, optaremos por motores con valor Kv m
as elevado, cuya respuesta en velocidad y
aceleracion sean mayores. Por el contrario, si se dispone de una aeronave de mayor peso, quiz
as sera mejor optar por un valor de Kv algo inferior, que tenga una velocidad y
aceleracion satisfactoria pero que nos proporcione un par mayor.

2.2.3.

Controlador electr
onico de velocidad

Como se ha mencionado en la secci


on anterior, los motores brushless requieren de
controladores electronicos para regular su velocidad de giro. Ademas, este tipo de motores
suelen ser multifasicos, normalmente trifasicos, por lo que no funcionaran con corriente
continua. Por lo tanto, nuestro controlador de velocidad estar
a conectado a una batera
de corriente continua y tendra una salida trif
asica que conectaremos al motor.
26

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Figura 2.9: Controlador electr


onico de velocidad
Cada controlador esta regulado por una se
nal PPM, similar a una se
nal PWM, cuya
frecuencia depende de la aplicacion. La tensi
on aplicada en bornes del motor sera el valor
medio del tren que estara acotado entre 1 y 2 ms. De esta forma, variando el factor de
servicio de la se
nal seremos capaces de modificar la velocidad del motor. Para su aplicacion
en cuadricopteros conviene usar frecuencias medio-altas, de forma que la velocidad del
motor pueda ser ajustada lo suficientemente rapida como para garantizar la estabilidad
del conjunto. En este proyecto se usaran 500 Hz.

2.2.4.

Batera

Uno de los principales problemas de los cuadricopteros lo constituye el sistema de alimentaci


on de energa. Dada la construccion de los motores que se usan en este tipo de
dispositivos y la presencia de bobinas en los mismos (las bobinas se oponen a cambios en
la corriente que circula por ellas), la fuente de alimentacion debe suministrar unas intensidades de corriente relativamente grandes para lo que suelen dar las bateras estandar.
Ademas conviene que el peso a
nadido por las bateras sea el menor posible, puesto que los
motores tendr
an que vencer una fuerza de peso mayor. En consecuencia, las bateras mas
recomendadas para este tipo de aplicaciones son las tipo LIPo.

Figura 2.10: Batera LIPo


Estas bateras recargables proporcionan grandes descargas de corriente ademas de tener
grandes capacidades con un peso relativamente bajo. Suelen estar compuestas por un
n
umero de celdas secundarias identicas conectadas en paralelo, de forma que aumente la
capacidad de descarga de corriente. La m
axima corriente que pueden suministrar las LIPo
se pueda calcular a traves de la ecuacion 2.8.
Imax = K C
27

(2.8)

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Donde C es la capacidad de la batera y K es el factor de descarga, parametro descrito en


las especificaciones de la batera. Por lo tanto la corriente requerida por los motores nunca
debera ser superior a la m
axima suministrada por la LIPo.
El voltaje de las celulas vara entre 2.7 V y 4.23 V aunque incorporan un sistema de
proteccion contra sobrecargas que limita su tensi
on a 4,235 V. Es esencial evitar que la
tension de estas bateras sea inferior al umbral fijado por el fabricante, ya que en caso
contrario la batera quedara inservible. Ademas, cuando se supera ese umbral inferior la
batera aumenta su volumen pudiendo generar da
nos en el sistema de sujeci
on de la pila,
si este no es flexible. A la hora de recargar estos dispositivos, se ha de proceder con cierta
precaucion pues pueden llegar a explotar. Existen unos dispositivos de carga especficos
que suministran a cada celula la corriente fijada por el fabricante a una tensi
on concreta.
El dispositivo ira recargando cada celdas individualmente hasta que todas alcancen el valor
de carga fijado.

2.2.5.

Unidad inercial de medidas (IMU)

La IMU es un dispositivo que incluye un conjunto de sensores capaces de medir la


velocidad, la orientacion y las aceleraciones del cuerpo. Estas medidas son procesadas
en el controlador y son utilizadas para calcular los cambios en las velocidades de los
motores. Para determinar las propiedades descritas anteriormente, la IMU dispone de
una combinacion de 3 aceler
ometros, 3 giroscopos y en ocasiones 3 magnetometros, que
permiten obtener las medidas en las tres direcciones del espacio. A continuacion se describe
de forma detallada cada uno de los elementos mencionados anteriormente.
Gir
oscopos
Es el encargado de medir la velocidad de giro del cuerpo en los tres ejes. Este dispositivo, cuyo esquema de funcionamiento se muestra en la figura 2.11, utiliza los principios
del momento angular para medir y mantener su orientacion. Mec
anicamente, un giroscopo
esta formado por una rueda o disco giratorio cuyo eje puede asumir cualquier orientacion.
Cuando el giroscopo se somete a un momento que tiende a cambiar la orientacion de su
eje de rotaci
on, este cambia de orientaci
on girando respecto a un tercer eje, perpendicular
tanto a aquel respecto del cual se lo ha empujado a girar, como a su eje de rotaci
on inicial.
Si ademas est
a montado sobre un soporte de Cardano que minimiza cualquier momento
angular externo, o si simplemente gira libre en el espacio, el giroscopo conserva la orientacion de su eje de rotaci
on ante fuerzas externas que tiendan a desviarlo.
En un giroscopo la masa esta distribuida sobre todo el disco o cilindro, y cuando, en
lugar de darle un impulso a un giroscopo, se le aplica un momento, se puede considerar
este momento como una sucesi
on de cortos impulsos. Cada uno de ellos a
nade a la masa
una nfima velocidad perpendicular a sus velocidades de forma que hace que la velocidad
28

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

cambie de direccion sin cambiar de modulo.

Figura 2.11: Giroscopo


En el campo de la electronica, debido a las dimensiones con las que se trabaja, se
suelen utilizar los llamados giroscopos de estructura vibrante. Estos elementos contienen
elementos solidos resonantes de diversos tipos, los cuales tienen la cualidad de que, cuando
el objeto esta oscilando o vibrando, tienen la tendencia a seguir vibrando en el mismo
plano en el que se encontraba mientras su soporte rota. Suelen conocerse tambien como
giroscopos de vibracion de Coriolis ya que, al rotar el plano de oscilacion, la respuesta
detectada por el transductor proviene del termino de Coriolis de la ecuacion de movimiento.
De cara al uso de los giroscopos como elementos de medida, estos tienen un particularidad y
es que tienden a a
nadir un bias a la medida. Esto quiere decir que si bien al inicio medir
a de
forma precisa la velocidad de rotaci
on, con el paso del tiempo, esta medida estar
a afectada
por ese bias y por tanto no sera tan precisa. Resulta por tanto necesario estimar el bias que
introduce el giroscopo para poder eliminarlo de las medidas y as obtener una informacion
real sobre el dispositivo.
Aceler
ometros
Un aceler
ometro es un dispositivo que, como su nombre indica, mide la aceleracion
del sistema al que esta acoplado en una determinada direccion. La figura 2.12 muestra un
esquema del funcionamiento de un aceler
ometro. La aceleracion que medida viene dada por
el movimiento de una masa situada en el extremo de un muelle. Esta masa comprimira o
elongar
a el muelle generando una fuerza que puede ser medida. Conocidas masa y fuerza,
a traves de la segunda ley de Newton podremos calcular la aceleracion experimentada en
una determinada direccion.

Figura 2.12: Esquema simb


olico de un aceler
ometro

29

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

La combinaci
on de tres dispositivos situados en las tres direcciones del espacio permite
obtener una medida de la orientacion del sistema con respecto a los ejes inerciales. Sin
embargo estos dispositivos son particularmente sensibles a las vibraciones pudiendo generar
problemas en el sistema de control. Por ese motivo, se suelen combinar con los giroscopos de
forma que se pueda obtener una medida m
as precisa pudiendo distinguir entre movimientos
y vibraciones.
Magnet
ometro
Un magnetometro es un dispositivo encargado de medir la intensidad, y en algunos casos la direccion, de un campo magnetico en un punto concreto del espacio. Las variaciones
de altura del sistema al cual esta acoplado, generar
an peque
nas variaciones en la medida del campo magnetico terrestre, de modo que estos dispositivos pueden complementar
las medidas de los giroscopos y los aceler
ometros. Concretamente, los magnetometros se
usan en el control del
angulo de gui
nada de la nave en combinacion con los giroscopos.
El magnet
ometro sera capaz de determinar la posicion de los polos magneticos norte y
sur que, combinado con la medida del giro de gui
nada del giroscopo, permite obtener
una medida limpia y precisa del
angulo de gui
nada. Es importante remarcar que para
un correcto funcionamiento de estos dispositivos, el cuadricoptero ha de estar alejado de
cualquier material magnetico que pudiera influir significativamente en el valor del campo
magnetico terrestre. En ocasiones se suele sustituir la labor del magnetometro por GPS
en vuelos exteriores o por sensores instalados en las paredes que se comunican con la nave
para vuelos interiores.
La figura 2.13 muestra una IMU, la cual incluye los elementos anteriormente descritos.
Como podemos observar en la fotografa, las IMU tiene la gran ventaja de que proporcionan
una gran cantidad de medidas ocupando relativamente poco espacio, motivo por el cual
son tan utilizadas en elementos de navegacion. Sin embargo no son todo ventajas. Como
hemos visto, los giroscopos y, en menor medida, los acelerometros a
naden un error o bias
que se acumula a lo largo del tiempo. Es importante por tanto estimar los errores de forma
que puedan ser eliminados de las medidas y, as, se eviten posibles problemas en el control
de la aeronave. Ademas la IMU no esta tomando medias en todo momento, sino que lo
hace durante un intervalo finito de tiempo. Por tanto, la IMU trabajara con valores medios
y no con valores instantaneos.

Figura 2.13: IMU

30

Modelado y Control de un Cuadricoptero

2.2.6.

Estado de la cuesti
on

Controlador

El controlador de vuelo es el cerebro del cuadric


optero, pues debe estar recogiendo continuamente medidas de los sensores, a traves de la IMU, para modificar las velocidades de
los rotores de forma que mantenga en equilibrio la nave. Estas modificaciones se calculan
a traves de algoritmos de cierta complejidad de forma que la aeronave este siempre controlada independientemente de perturbaciones (previsibles). Dada la complejidad de estos
algoritmos, existen en el mercado controladores con el software incorporado, de forma que
el usuario no tiene que poseer los conocimientos necesarios para su programacion. Es por
tanto crtico realizar un analisis detallado de los controladores existentes en el mercado
as como de las caractersticas que deseamos que nuestro cuadric
optero cumpla, de cara
a una buena eleccion del dispositivo. A continuacion se enumeran las propiedades m
as
importantes a la hora de elegir un controlador:
1. Algunos controladores incorporan la IMU en sus estructura, de forma que no es necesario elegirla y conectarla posteriormente a la placa del controlador. Generalmente
se suelen elegir controladores con IMUs incorporadas, pues facilitan la elecci
on y
aseguran una absoluta compatibilidad entre las partes.
2. Estabilizacion de la nave ante giros. Esta propiedad es b
asica y todos los dispositivos
suelen contar con ella. Como puede suponerse, a traves de esta propiedad se mantiene
la nave estable y nivelada, siendo siempre controlada por el piloto de forma remota.
3. Auto estabilizaci
on. Tambien es una propiedad b
asica, especialmente para pilotos
poco instruidos en el manejo de la nave. Con esta propiedad la nave se estabilizara de forma independiente cuando el piloto no act
ue sobre los controles de alabeo
y cabeceo.
4. Control de altitud constante. Esta propiedad garantiza el mantenimiento del cuadric
optero a una altura constante durante vuelo inmovil.
5. Control de posici
on constante. Relativamente similar al control de altitud pero en
este caso relacionado con la posici
on. La nave sera capaz de mantener la posici
on
fijada durante la fase de vuelo inmovil.
6. Vuelta a casa. La nave sera capaz de regresar al punto fijado como origen, normalmente el punto desde donde despeg
o, de forma automatica.
7. Navegacion punto a punto. Esta propiedad es mas avanzada y consiste en que el
cuadricoptero sera capaz de seguir una serie de puntos en el mapa de vuelo, siendo
capaz de ir de uno a otro a modo de plan de vuelo automatico.
8. La u
ltima caracterstica a analizar es el precio que, como puede imaginarse, vara
en funci
on del numero de las anteriores propiedades incluidas en el controlador.
Los precios suelen oscilar entre los 100 y 300 dolares, aunque podemos encontrar
dispositivos con precios inferiores a 100 o superiores a 300 dolares.
31

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

A continuacion se incluye una tabla con los controladores m


as utilizados para cuadricopteros analizando las propiedades anteriormente descritas.
Controlador

Open
Source

Esta-

Auto-

bilizacion

estabili-

ante giros

zaci
on

Alt.

Posici
on

Vuelta

Nav.

cte

constante

a casa

pto a pto

Precio

AeroQuad 32

Si

Si

Si

Si

Extra

Extra

Extra

Medio

ArduCopter (APM 2.5)

Si

Si

Si

Si

Si

Si

Si

Medio

AutoQuad v6.6

Si

Si

Si

Si

Si

Si

Si

Alto

Crius All In One PRO

Si

Si

Si

Si

Extra

Extra

Extra

Bajo

Crius MultiWii Lite

Si

Si

Si

No

No

No

No

Bajo

Crius MultiWii SE

Si

Si

Si

Si

No

No

No

Bajo

DJI Naza

No

Si

Si

Si

Extra

Extra

No

Medio

DJI Wookong

No

Si

Si

Si

Si

Si

Extra

Alto

Free Flight

No

Si

Si

No

No

No

No

Bajo

FY-30A

No

Si

Si

No

No

No

No

Medio

Gaui GU-344

No

Si

No

No

No

No

No

Medio

Hobbyking KK2.0

Si

Si

Si

No

No

No

No

Bajo

HoverflyPRO

No

Si

Si

Si

Extra

Extra

Extra

Alto

HoverflySPORT

No

Si

No

Extra

No

No

No

Medio
Bajo

KKMulticopter

Si

Si

No

No

No

No

No

MikroKopter Flight-Ctrl

No

Si

Si

Si

Extra

Extra

Extra

Alto

MultiWii PRO/MTK GPS

Si

Si

Si

Si

Si

Si

Si

Bajo

MultiWii PRO2.0/MTK GPS

Si

Si

Si

Si

Si

Si

Si

Bajo

OpenPilot CC3D

Si

Si

Si

No

No

No

No

Bajo

Paris MultiwiiCopter

Si

Si

Si

Si

Extra

Extra

Extra

Medio

Quadrino ZoomFlight

Si

Si

Si

Si

No

No

No

Medio

Rabbit

No

Si

Si

Extra

Extra

Extra

No

Bajo

SmartAP Autopilot

No

Si

Si

Si

Si

Si

Si

Alto

TMF Pro FH-X46 AQ50

No

Si

Si

No

No

No

No

Medio

UAVP/UAVX

Si

Si

Si

Si

Si

Extra

Extra

Bajo

XAircraft FC1212-P

No

Si

Exta

Extra

Extra

Extra

No

Medio

Tabla 2.2: Controladores de cuadricopteros mas comunes


Como podemos observar en la tabla anterior, existe una gran variedad de dispositivos
donde elegir. Sin embargo en este proyecto no nos limitaremos a comprar el controlador
con el algoritmo de control, sino que crearemos nosotros el algoritmo. En consecuencia,
partiremos de una tarjeta controladora MultiWii Pro mencionada anteriormente en la tabla
y volcaremos nuestro algoritmo en su microcontrolador, un ATmega 2560 de Arduino. En
la figura 2.14 se muestra la distribucion de los pines en la tarjeta, detallando la aplicacion
de cada pin.

Figura 2.14: Diagrama del microcontrolador


32

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Sin embargo, a pesar de la gran cantidad de puertos y pines que se nos ofrecen, no todos
se usaran. Es muy importante remarcar que para alimentar la placa de forma externa, el
jumper amarillo de la foto debe ser extrado de la posici
on que figura en la imagen.

2.2.7.

Comunicaci
on piloto-aeronave

Como hemos comentado en las secciones anteriores, una de las caractersticas de los
cuadricopteros es que se pueden controlar de forma remota, es decir, de manera no tripulada. Para ello es necesario instalar un sistema de comunicacion piloto-nave-piloto, que funcione de forma eficaz y acorde a las prestaciones deseadas por el cliente. Existen distintos
sistemas de comunicacion en el mercado que puedan ser implementados en cuadricopteros
de forma efectiva, cada una con sus ventajas e incovenientes. En esta secci
on se expondran
los sistemas mas comunes as como sus ventajas e inconvenientes.
Zigbee
Zigbee es un protocolo de comunicaci
on inalambrico basando en el estandar IEEE
802.15.4. Se suele emplear en aplicaciones de baja velocidad de transmision de datos,
proporcionando un consumo muy bajo y facil integracion en el sistema. La red Zigbee
estara compuesta por tres elementos principalmente:
1. Coordinador Zigbee. Este dispositivo act
ua como cerebro de la red y se encarga de
coordinar la instalacion, evaluando las se
nales enviadas por los dispositivos finales
y decidiendo como actuar. Debe existir al menos un coordinador en la red para un
correcto funcionamiento de la misma.
2. Router Zigbee. Su misi
on es la de conectar los dispositivos finales con el coordinador,
de forma que siempre exista un enlace entre los elementos.
3. Dispositivo final. Estos dispositivos pueden actuar como sensores (obtencion de datos
para una posterior accion), actuadores (realizaci
on de una accion ordenada), o como
ambos. En caso de un cuadricoptero, tendremos un dispositivo instalado en la nave
que emitira informacion para ser procesada por el coordinador.
Habiendo analizado los elementos constituyentes de una red zigbee podemos describir como
sera la red aplicada al caso que nos ocupa. En el cuadricoptero se instalara un dispositivo
final, el cual transmitira y recibira informacion del coordinador, que estara controlado por
el piloto. Entre ambos existira un router cuya mision sera la de conectar ambos elementos.
Anteriormente hemos mencionado que los dispositivos finales emitiran informacion, pero no
hemos hecho hincapie en c
omo se realiza la transmisi
on. Existen dos tipos de transmision:
1. Con balizas. Con este sistema, los dispositivos emiten o escuchan en un determinado
momento, fijado por el programador. Esto quiere decir que no estan emitiendo o
escuchando todo el tiempo, razon por la cual estos dispositivos consumen tan poca
potencia. Por tanto, cada intervalo de tiempo fijado, los dispositivos se conectaran
33

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

y emitiran o recibiran, pasando posteriormente a un estado de desconexion. En una


analoga con la programacion en microprocesadores, este sistema funciona de manera
similar a las interrupciones. Este modelo comunicacion es muy u
til en sistema con
cambios lentos, es decir, que no requieran acciones instantaneas de reacci
on, ya que
el tiempo mnimo de activacion es de 30 ms.
2. Sin balizas. Este sistema, por el contrario, estara emitiendo o escuchando constantemente. En consecuencia sera capaz de captar cualquier perturbaci
on o medida en el
sistema, independientemente del momento en el que ocurra. Sin embargo el consumo
de potencia sera mayor.
En la universidad de Illionis se elaboro un dise
no alternativo de un cuadricoptero que
utilizaba como sistema de comunicacion una red Zigbee [13]. En su informe describan que
se eligi
o ese protocolo de comunicacion por su bajo consumo de potencia y por la alta
calidad de la transmisi
on de informacion. Dado el bajo consumo del sistema, las bateras
instaladas podan ser mas ligeras. Ademas la baja probabilidad de error en la transmisi
on
de informacion converta el protocolo de comunicacion en un sistema ideal de transmision
de datos para este tipo de aplicaciones, donde la perdida de informacion tanto en emisi
on
como en recepcion puede generar efectos muy perjudiciales para la nave. Sin embargo el
sistema Zigbee tambien tiene sus limitaciones. Como se ha comentado anteriormente, la
velocidad de transmision de datos es relativamente lenta y la distancia efectiva de estas
redes no supera los 100 m. En este proyecto se comprob
o su validez dado que los paquetes
de datos estaban formados por ordenes simples y la distancia entre el piloto y la nave
estaba dentro del rango de comunicacion descrito. Por tanto, las desventajas descritas no
eran crticas. Sin embargo, estas propiedades deben evaluarse para cada aplicaci
on de cara
a un dise
no efectivo del sistema.
Bluetooth
Otro sistema de comunicacion que podra ser implementado es el conocido protocolo
bluetooth. Bluetooth es una especificacion industrial para un protocolo de comunicacion
inalambrico en redes de
area personal. Este sistema posibilita la transmision de voz y
datos entre dispositivos a traves de radiofrecuencia en la banda ISM de los 2,4 GHz. La
especificacion de Bluetooth define un canal con un regimen de bit maximo de 720 Kbit/s
con un rango
optimo de 10 metros emitiendo con una potencia 2.5 mW. Este sistema tiene
la principal ventaja de crear una peque
na red personal que interconecta los dispositivos
especificados, facilitando la sincronizaci
on entre distintos dispositivos. Este protocolo tiene
tambien su aplicacion en redes formadas por dispositivos de emision y recepcion de bajo
coste, situados a distancias peque
nas entre ellos. Al tratarse de un sistema de comunicacion por radiofrecuencia no existe la necesidad de que los transductores esten alineados,
ya que la u
nica condicion es que se encuentren dentro del rango de recepcion de los demas
dispositivos. La principal desventaja del sistema es que la distancia efectiva es demasiado peque
na para la aplicacion deseada. Existe la posibilidad de aumentar la potencia de
34

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

trasmision hasta la 100mW para conseguir un alcance del orden de 30 metros. En condiciones normales, el aumento del alcance no supone un gran cambio a la hora de usar este
sistema, pues 30 m sigue siendo relativamente cerca. Ademas, no debemos olvidar que el
aumento en la potencia de transmision requiere de unas bateras mayores para mantenerse
en vuelo el mismo tiempo. En consecuencia, este protocolo de comunicacion no se usa con
demasiada asiduidad y se hace uso de otros sistemas m
as efectivos.
Transmisores de radio control
El sistema m
as utilizado a da de hoy para comunicarse con dispositivos moviles de
forma remota es el sistema de radio control. Este sistema cuenta con un emisor, al que
llamaremos transmisor, desde el cual comunicaremos con un receptor situado en el cuadricoptero. El emisor genera una se
nal portadora modulada, como consecuencia del movimiento de un joystick o boton en el dispositivo por parte del piloto. Por lo general, el
sistema de modulaci
on empleado para modular la portadora suele ser FM puesto que rechaza mejor las interferencias que la modulacion AM. El receptor ha sido calibrado para
escuchar en el rango de frecuencias en que el transmisor emite y, por tanto, el receptor
decodificar
a la se
nal recibida y la enviar
a al controlador donde se actuar
a seg
un proceda.
Normalmente, los transmisores tienen un n
umero especfico de canales asociado al n
umero
de elementos a controlar en el dispositivo, es decir, si queremos controlar los tres
angulos
de giro del cuadric
optero y su altura necesitaremos 4 canales. El emisor esta dise
nado
para emitir en un determinado rango de frecuencias, en general suele ser de 35 MHz para
aeronaves, que posteriormente sera dividido por el n
umero de canales mas un ancho de
banda entre canales. As pues, el ancho de banda del emisor suele ser de 35 MHz y el de
cada canal suele estar entre 55 y 90 KHz con una separacion de 20 KHz entre canales. El
n
umero de canales con los que cuenta el transmisor es bastante variado, oscilando entre 4
y 9 para aplicaciones en aeronaves teledirigidas.

Figura 2.15: Ejemplo de un transmisor de 5 canales

35

Modelado y Control de un Cuadricoptero

2.2.8.

Estado de la cuesti
on

Sensores de distancia

En la lista de objetivos a conseguir en el proyecto se mencionaba el vuelo autonomo del


cuadricoptero. Cuando decimos que el cuadricoptero esta en vuelo autonomo nos referimos
a que es capaz de ir de un punto a otro sin control alguno por parte del piloto. Para que
esto pueda ser posible, es necesario obtener informacion del entorno proximo a la nave,
tarea que sera llevada cabo por un conjunto de sensores de posici
on montados sobre la
aeronave. Estos sensores son capaces de detectar la presencia de objetos cercanos a ellos
sin necesidad de contacto directo y, a pesar de la gran variedad existente en el mercado, los
mas utilizados en la aplicacion que nos ocupa son los sensores de infrarrojos y ultrasonicos.
Sensores ultras
onicos
El funcionamiento de estos sensores es similar al de un radar o un sonar. El emisor
generar
a un pulso de alta frecuencia electromagnetico que se propagar
a por el entorno.
Cuando el pulso choca contra un objeto, parte de la se
nal rebota siendo captada por
el receptor del sensor. Ademas el sensor cuenta con un reloj que permite determinar el
intervalo de tiempo transcurrido emision y recepcion, valor con el cual se puede estimar
la distancia a la que se encuentra el obstaculo (a traves de la velocidad de transmisi
on
del sonido). Se usan ondas de alta frecuencia para aumentar el rango efectivo del sensor
as como para evitar su percepcion en el odo humano. El
angulo de apertura de la se
nal
suele encontrarse entre los 10 y 15 grados, tal y como se muestra en la imagen 2.16.

Figura 2.16: Simulacion de la onda emitida por un sensor de ultrasonido


El rango efectivo de este tipo de sensores esta entre los 2 cm y los 3 m. La distancia
mnima es consecuencia de la desconexion del receptor durante la emisi
on del pulso, pues
de lo contrario el receptor captara la se
nal emitida y no el eco. Por tanto el receptor
se activara una vez emitida la se
nal, accion que no es instantanea sino que es del orden
de ms. Este tipo de sensores son especialmente u
tiles en aplicaciones que requieren la
comunicacion entre un objeto movil y un entorno estatico. Ademas permiten detectar
objetos transparentes, propiedad que los sensores de infrarrojos no cumplen. Sin embargo
no son todo ventajas. Los sensores ultrasonicos suelen generar problemas cuando se sit
uan
demasiado cerca unos de otros. Como se muestra en la imagen 2.17, si el objeto a detectar

36

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

esta inclinado la se
nal emitida por un sensor puede ser recibida en el segundo generando
un error en la medida que puede perjudicar gravemente el control del dispositivo.

Figura 2.17: Error en la percepcion por la proximidad de los sensores


Para evitar este problema, la distancia entre los sensores debe ser superior al cuadruple
de la mayor distancia de deteccion, aunque si los sensores estan colocados en cuadratura
(perpendiculares entre s) esta distancia puede ser mucho menor. Por este motivo se suelen combinar con sensores de infrarrojos para poder realizar un mapeo completo de los
alrededores de la nave.
Infrarrojos
Los sensores de infrarrojos funcionan de manera similar a los de ultrasonido, con la
particular diferencia de que emiten una se
nal infrarroja en vez de una onda de ultra
sonido. A su vez, los sensores de proximidad se dividen en sensores de barrera o reflexivos.
En los primeros el emisor y el receptor estan situados en cuerpos distintos, y el u
ltimo
esta siempre recibiendo la se
nal del emisor. Cuando un objeto se interpone en la trayectoria
del haz, el receptor dejar de recibir la se
nal y percibe la presencia del objeto. Este modelo
de sensor no es aplicable en este caso, pues deberamos instalar infinidad de receptores
en la habitacion donde se realizasen los ensayos. Los sensores reflexivos incorporan el
emisor y el receptor en el mismo cuerpo y funciona de similar manera a los sensores de
ultrasonido. Cuando un objeto se interponga, el haz se reflejar
a y sera percibido por el
receptor. Sin embargo la se
nal no se reflejara en elementos transparentes, invalidando el
uso de este tipo de sensores para entornos con elementos transparentes. Este es el tipo de
sensor que se usa en las aplicaciones que nos ocupan. Los sensores de proximidad en su
conjunto, concentran m
as la se
nal emitida, es decir, el rango de deteccion es mucho menor.
Sin embargo presentan la ventaja de que la distancia entre sensores es mucho menor que
en los sensores de ultra sonido. Se podra pensar que instalando este tipo de sensores
en todo el permetro del cuerpo mapearamos el entorno del objeto de forma precisa y
eficiente, sin embargo no es as. Hay que tener en cuenta que el n
umero de sensores sera
extremadamente grande as como el
angulo muerto entre sensores. Por ese motivo se suelen
combinar con sensores de ultrasonidos.

37

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Implementaci
on en conjunto
La combinaci
on de los sensores descritos anteriormente ofrece una gran variedad de
posibilidades. Un grupo de trabajo pertenecientes a la universidad de Roma desarrollo un
sistema de vuelo autonomo combinando los dos sensores expuestos [14]. Este sistema hace
uso de los sensores de infrarrojos horizontales para controlar la posicion y la direccion
de la nave. Para controlar la altura de la nave se hizo uso de un sensor ultrasonico situado en posici
on vertical. Cuando el piloto da la orden a la nave para que permanezca
inmovil, el conjunto de sensores realizan una medida de distancia al entorno. El controlador debera entonces mantener las medidas constantes hasta que se cambie la orden de
inmovilizacion. Para mejor entendimiento del sistema se ha incluido la imagen 2.18.

Figura 2.18: Ejemplo de vuelo inmovil basado en sensores infrarrojos.

2.2.9.

Dispositivos adicionales

A pesar de no ser elementos fundamentales o crticos en el dise


no de este tipo de
aeronaves, existe una gran variedad de dispositivos que se pueden incorporar a los cuadricopteros a fin de mejorar su comportamiento. Seg
un se desarrollan estos dispositivos
surgen m
as aplicaciones para los mismos y, por tanto, nuevos complementos a incorporar.
A continuacion se presentan algunos complementos utilizados com
unmente en el mundo
de los cuadricopteros.
C
amara de vdeo
En los u
ltimos a
nos se ha potenciado el uso de cuadricopteros para inspeccionar grandes cantidades de terreno de forma remota y/o automatica. De igual manera, aficionados
a la electronica desarrollan prototipos que permitan fotografiar paisajes desde el aire en
zonas de monta
na o de difcil acceso. Para ello incorporan una c
amara de vdeo, acoplada
al marco de la nave, la cual graba la trayectoria de la misma. Estas camaras de vdeo
pueden transmitir los datos obtenidos a traves de un sistema de comunicacion de forma
que lo observado pueda usarse como ayuda al control de la nave, o pueden estar aisladas. En el segundo de los casos la informacion se almacena en una tarjeta de memoria
y se procesa una vez el piloto accede a la tarjeta, cuando la nave regresa al punto de
origen. Este tipo de aplicacion es m
as l
udica que practica, pues como se ha mencionado
38

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

anteriormente, la informacion obtenida por la visualizacion de la trayectoria en tiempo


real, puede ayudar al sistema a ser controlado remotamente. Si ponemos como ejemplo la
revision de cables de alta tensi
on con cuadric
opteros de forma remota, nos damos cuenta
rapidamente que la obtencion de la informacion en tiempo real es importante, pues nos
permite identificar una avera en el momento el que se detecta y no cuando la nave vuelve
a su punto de origen. La implementacion de camaras en las naves es especialmente u
til
en vuelos exteriores, donde se esperan recorrer mayores distancias que en vuelos interiores.
Es importante tener en cuenta que la existencia de la camara puede alterar la distribucion de pesos de la nave, modificando la posicion del centro de gravedad de la misma.
Esto es especialmente crtico en el sistema de control pues un desplazamiento excesivo
del centro de gravedad puede inutilizar el algoritmo de regulacion de vuelo. Por eso es
importante adquirir un controlador apto para la aplicacion deseada, as como adquirir una
camara cuyas dimensiones y peso se encuentre dentro de los lmites admisibles del dispositivo. De no ser los limites demasiado laxos, debera redise
narse el algoritmo de control
para un correcto funcionamiento del cuadricoptero.
GPS
En secciones anteriores se describio el funcionamiento de la IMU y de sus elementos
de medida. Elemento a elemento se analiz
o tanto su funcionamiento como su aplicacion
en el campo que nos ocupa. Si bien su funcionamiento goza de una gran aplicacion y una
precision relativamente buena, no son los u
nicos elementos que se pueden incorporar para
controlar la nave. Pudimos observar como el uso del magnet
ometro permita situar una
referencia para el control del
angulo de gui
nada al localizar los polos magnetico-terrestres,
pero discutimos que esta medida poda verse afectada por campos magneticos externos,
pudiendo afectar al control de la nave. Una opcion alternativa al uso del magnet
ometro
es el GPS. Con este sistema de posicionamiento tendremos una referencia de alta precision para nuestra nave, que no se vera afectada por campos magneticos externos. Ademas
nos permitira monitorizar la trayectoria de la nave sabiendo en todo momento donde se
encuentra. Este dispositivo es especialmente importante, algunos autores diran crtico,
en vuelos exteriores. Esto se debe a que en un recinto especialmente preparado se puede
eliminar la presencia de campos magneticos indeseados, pero en el exterior es imposible.
Ademas generamos gran cantidad de campos magneticos a traves de las ondas de comunicacion, tendidos de alta tensi
on etc. Ademas la posibilidad de monitorizar la trayectoria
del cuadricoptero en su fase de vuelo es particularmente u
til al recorrer grandes distancias,
pues nos permite conocer su posici
on en todo momento. Si volvemos a la aplicacion de la
revision de tendidos electricos de alta tensi
on, el cuadricoptero podra emitir una simple
se
nal de aviso de error al detectar una anomala, que a traves del sistema GPS quedara
localizada de forma precisa y directa.

39

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Chasis protector
Uno de los principales problemas que tienen los cuadric
opteros son las colisiones, dado
que el peso es particularmente importante. Cuanto mayor sea el peso mayor es la potencia necesaria en los motores para mantener la misma velocidad. Se suelen eliminar los
elementos de proteccion, y de mantenerlos no suelen ser particularmente robustos. Esto
implica que si se produce una colisi
on, existe la posibilidad de que se da
ne alguno de los
elementos que componen la nave. Concretamente, los elementos mas debiles del conjunto
y los que se suelen romper son las helices. Suele ser porque son los primeros en colisionar
dada su posici
on elevada respecto al marco y esencialmente por el par que ejerce el motor
sobre las mismas. Si el giro de la helice queda obstruido, el par generado por el motor es
bloqueado por el objeto que bloquea el giro, partiendo la pala de la helice. Por ese motivo
se suele incorporar un chasis perimetral como el que se mostraba en la imagen 2.2. Este
tipo de proteccion no altera la posicion del centro de gravedad de la nave, particularmente
interesante para la regulacion, y envuelve la helice evitando posibles da
nos en caso de
obstruccion. Obviamente la parte superior e inferior de las mismas ha de estar libre pues
necesita mover aire a traves de ella para generar la fuerza de sustentaci
on de la nave.
Este dispositivo es muy practico porque a pesar de que parezca poco probable cuando se
emplea un buen sistema de regulacion, en la fase de dise
no o calibracion del sistema, la
existencia de colisiones es relativamente com
un.

2.3.

Banco de ensayos

Como ocurre en todo proceso de dise


no de ingeniera, es necesario ensayar el sistema
desarrollado de forma segura antes de su aplicacion final, de cara a detectar errores y
minimizar da
nos en el sistema. A fin de ensayar los dispositivos, en ingeniera se suelen
construir los llamados bancos de ensayos, cuya funci
on principal es obtener datos que
certifiquen el correcto funcionamiento del objeto o bien, obtener parametros que deban
ser utilizados en el dise
no del mismo. Si el objeto a dise
nar, lo permite el proceso de dise
no
sigue los siguientes pasos:
1. B
usqueda de informaci
on sobre investigaciones relacionadas con el proyecto.
2. Enumeracion de los componentes necesarios y parametrizaci
on de los elementos que
lo requieran.
3. Desarrollo del dise
no.
4. Simulacion virtual y correccion de errores.
5. Pruebas en un banco de ensayos y correccion de errores.
6. Ensayo en aplicacion real, correccion de errores si existen y entrega al cliente.

40

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

En este proyecto se seguira la misma estructura y se emplear


a un banco de ensayos que permita realizar los mencionado anteriormente. En la aplicacion que nos ocupa, sera necesario
dise
nar dos bancos de ensayos, uno que nos permita parametrizar los motores brushless
instalados en la nave y un segundo banco de ensayos que nos permita calibrar el algoritmo
de control, estimar los bias de la IMU y comprobar el correcto funcionamiento del cuadricoptero. En este proyecto trataremos los dos bancos por separado, pero existen bancos
que permiten realizar ambos ensayos en el mismo soporte, con el consiguiente aumento
en la complejidad en su dise
no y fabricacion. En general, existen una gran variedad de
dise
nos para bancos de ensayos, pues cada dise
nador lo adecua a las necesidades que busca
observar as como a los medios que posee. A continuacion se describen algunos ejemplos
de bancos de ensayo, a fin de ilustrar tanto su funci
on como los resultados que se pueden
obtener de los mismos.

2.3.1.

Banco de ensayo para los motores

Mediante este banco se busca medir el empuje que genera un motor brushless al circular
una corriente fija por el. Adicionalmente se puede hacer una medici
on de las revoluciones
por minuto de la helice as como del par entregado por el motor. La figura 2.19 muestra
un banco de ensayos casero realizado por un aficionado a la electronica y a las aeronaves.
Su dise
no sencillo no implica una perdida de precision en las medidas, pues permite recoger las medidas b
asicas deseadas con un error relativamente bajo. El motor se coloca
con su eje en posici
on vertical y se fija a una tablilla de madera con forma de L. La tabla
vertical que forma la L sostiene al motor mientras que la horizontal sostiene un elemento
puntiagudo (tornillo, clavo...) en contacto con una bascula. La union de los tabillas que
forman la L esta unida a un eje, que permite a la L rotar. Cuando el motor se ponga en
funcionamiento realizara una fuerza de empuje que tendera a girar la madera (en la figura
2.19 girara en sentido contrario a las agujas de reloj), haciendo que el elemento puntiagudo

aplique una fuerza sobre la b


ascula. Esta
registrara y medir
a la fuerza ejercida sobre ella.
Posteriormente se multiplicar
a la medida por la aceleracion de la gravedad obteniendose el
valor de la fuerza. Mientras se realiza el ensayo, se coloca un ampermetro en serie con la
alimentacion del motor registrando la corriente que circula por el circuito. De esta forma
se obtiene la relaci
on entre corriente y empuje del motor. Manteniendo el eje lo suficientemente engrasado y el motor suficientemente fijo para evitar variaciones en la direccion
del eje, la precision de la medida dependera u
nicamente de la de la b
ascula.
Es importante remarcar la importancia de la posicion horizontal del eje del motor. Una
gran cantidad de bancos de ensayos sit
uan el motor en posici
on vertical, con la bascula
debajo del mismo. Eso es un error puesto que el aire propulsado por las helices ejercera tambien una fuerza en la b
ascula generando errores en la medida. La velocidad de
giro de la helice se puede medir con un encoder.

41

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Figura 2.19: Ejemplo de un banco de ensayo para motores brushless.


Un artculo de International Journal of Modeling and Optimization [4], incorpora los
valores obtenidos en el ensayo y se incluyen en este documento con fin ilustrativo o de gua
para futuros ensayos del proyecto. Acorde a los resultados obtenidos, y como se podra
esperar, el empuje y la velocidad de rotaci
on de la helice es directamente proporcional a
la corriente que circula por el motor.
Voltaje(V)

Intensidad(A)

Empuje(N)

Velocidad(rpm)

12.37

1.17(A)

1283.8

4900

12.36

1.48(A)

1509.2

5350

12.35

1.8(A)

1764

5700

12.34

2.1(A)

1999.2

6025

12.32

2.46(A)

2234.4

6300

12.32

2.78(A)

2440.2

6550

12.3

3.42(A)

2832.2

6975

Tabla 2.3: Valores obtenidos en el ensayo de un motor [4]


Grafica IntensidadEmpuje

Grafica IntesidadVelocidad

3000

7000

2800
6500

2600

Velocidad de giro (rpm)

Empuje (N)

2400

2200

2000

6000

5500

1800

1600

5000

1400

1200

1.5

2
2.5
Intensidad (A)

3.5

4500

1.5

2
2.5
Instensidad (A)

3.5

Figura 2.20: Graficas de empuje y velocidad para distintas intensidades en un motor brushless [4]

42

Modelado y Control de un Cuadricoptero

2.3.2.

Estado de la cuesti
on

Banco de ensayo para el cuadric


optero

Con este banco se busca:


Estimar los bias propios de la IMU (gir
oscopos y aceler
ometros).
Estimar de las matrices de ruido para el filtro de Kalman.
Comprobar la estimacion correcta del estimador de estados (filtro de Kalman, filtro
complementario etc.).
Calibrar las ganancias de los controladores dise
nados.
Comprobar la correcta regulacion del algoritmo de control antes de volar.
Normalmente, la estructura de este tipo de banco suele estar formada por una rotula a la
cual se fija el cuadricoptero. La existencia de la rotula permite a la nave rotar en todas las
direcciones, pero no trasladarse, eliminando los riesgos de colisi
on por un mal funcionamiento del algoritmo de control. Generalmente se conecta el dispositivo al pc y se realizan
ensayos, observando al respuesta en el ordenador, no a tiempo real pero si razonablemente
cercano. As podremos estimar los bias, las matrices de ruido incluso ajustar los parametros de los controladores, simplemente observando si la respuesta del sistema es mejor o
peor que con los valores anteriores. Una vez se comprueba que en las respuestas son las
deseadas, se vuelca el software en el controlador y se desconecta del ordenador. Entonces
se realizan ensayos de condiciones similares al vuelo, pero con el dispositivo anclado al
banco. Si se detecta alguna anomala se corrige y de lo contrario, esta listo para volar.
En ocasiones la fuerza de empuje de los motores puede ser demasiado alta para que la
rotula lo resista sin desprenderse. En ese caso se suele fijar un eje del cuadricoptero y el
perpendicular a este queda libre para ensayar. Al ser un dispositivo simetrico constituido
por los mismos elementos, es de esperar que se comporten de igual manera ambos brazos.
La figura 2.21 muestra un ejemplo de este tipo de banco de ensayo, donde los motores
mostrados tender
an a rotar la pieza madera a la cual se encuentran fijados.

Figura 2.21: Banco de ensayo para cuadricopteros de eje fijo


43

Modelado y Control de un Cuadricoptero

2.4.

Efectos Aerodin
amicos

2.4.1.

Efecto suelo y efecto techo

Estado de la cuesti
on

Se conoce como efecto suelo al incremento del empuje por unidad de potencia generado
por los rotores de un helic
optero, respecto al empuje que generan cuando la nave vuela
suficientemente alejada de una superficie, mas concretamente el suelo. Este incremento en
el empuje se produce al impactar y rebotar sobre el suelo parte del aire proyectado por las
palas de los rotores. Este flujo de aire que rebota en la superficie genera un empuje adicional
que ha de considerarse de cara a la estabilizaci
on de la nave. Este efecto es ense
nado en
las academias de vuelo, como por ejemplo la academia Langley Flying School[15], donde
se instruye a los pilotos. En grandes naves, aeronaves que propulsan o mueven grandes
cantidades de aire, la existencia de este efecto genera perdidas en las fuerzas de sustentacion
de la nave, durante despegues o aterrizajes, como consecuencia de la interaccion de los
vortices de punta de ala con la superficie. Dada la importancia de este efecto, se han
realizado numerosos estudios para evitar los perjuicios generados por el mismo, as como
para buscar formas para aprovechar sus efectos positivos. Para peque
nas masas de aire
proyectadas, se ha propuesto una descripcion matematica del efecto [16], basada en el
metodo de las imagenes, descrita a traves de la ecuacion:
1
T
=
R 2
T
)
1 ( 4z

(2.9)

T representa el empuje afectado por la presencia del suelo as como T representa el empuje
proporcionado por los rotores lejos del suelo. En cuanto a los parametros geometricos, R
representa el radio de las palas acopladas al eje del rotor y z es la altura vertical desde
el suelo. Podemos observar como, para el radio de las palas con las que trabajamos (del
orden de 5cm), el efecto es nulo para alturas superiores a 20 cm, y despreciable para
alturas superiores a 4.5 cm. Tambien podemos observar que a distancias muy proximas al
suelo, el aumento en el empuje es particularmente importante y debe tenerse en cuenta de
cara al control del sistema si procediese. Para el radio fijado, la influencia del flujo en el
empuje es mnima debido al radio de la pala pues, al ser tan peque
no, la cantidad de aire
desplazado es peque
na.

Figura 2.22: Grafica efecto suelo con datos del ensayo


44

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

A fin de comprobar la validez de la ecuaci


on 2.9, el grupo GRASP de la Universidad de
Pennsylvania, Philadelphia [17] ha realizado un estudio sobre este efecto para un cuadricoptero cuyas helices median 4 cm. En este ensayo, se ordeno al cuadricoptero que se
mantuvieran en vuelo inmovil en un determinado rango de distancias por encima del suelo
durante 10 segundos. Para cada distancia evaluada, se obtuvieron medidas de la velocidad
angular media del rotor necesaria para mantenerse en ese estado. Con este ensayo se obtiene pues una relaci
on entre la altura y la velocidad angular necesaria para producir un
empuje constante. Los resultados obtenidos se muestran en la figura 2.22, donde podemos
observar que el efecto es mayor al descrito por la ecuaci
on 2.9. Podemos observar que la
velocidad de giro del rotor es menor a distancias cercanas a la superficie ya que el aire
propulsado que rebota contra el suelo contribuye a aumentar el empuje.
De manera an
aloga, se podra hablar de un efecto techo producido por la succi
on de
aire por parte de las palas y que tiende a atraer la nave hacia el techo. Este efecto es propio
de vuelos interiores y por tanto suele darse en aeronaves de peque
no tama
no. Conviene
sin embargo analizarlo ya que esa fuerza podra hacer que el cuadricoptero colisionase
contra el techo, da
nandose la estructura o mas concretamente las helices del mismo. Este
efecto tambien fue ensayado por el grupo GRASP obteniendose los resultados mostrados
en la grafica 2.23. En comparaci
on con el efecto suelo, la presencia del techo parece afectar
menos al empuje del cuadric
optero.

Figura 2.23: Grafica efecto techo

2.4.2.

Translaciones y oscilaciones en las palas de los rotores

El movimiento de translacion del cuadricoptero va a generar una diferencia de velocidades relativas entre las dos palas de un mismo rotor, produciendose por tanto un
desequilibrio en la sustentacion de la nave, el cual va a inducir unas oscilaciones en las
palas del rotor. El
angulo desviado con respecto a la horizontal va a causar una desviacion
del vector de empuje variando por tanto la direccion del mismo respecto a su posicion natural. Ademas si el plano que contiene al rotor no esta alineado con el centro de gravedad
del vehculo, la nueva componente horizontal del vector empuje creara un momento sobre
el centro de gravedad del sistema, afectando al sistema de regulacion de la posici
on.

45

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

En la figura 2.24 se puede observar el efecto descrito as como la desviacion de los


vectores de empuje (azul) frente a la posicion ideal (rosa).

Figura 2.24: Oscilacion en la pala como consecuencia de una translacion[5]


Como era de esperar, este proceso es cclico y, dependiendo de la posicion de las palas
como consecuencia del giro del motor, tendremos un
angulo de ataque distinto as como
una posicion distinta de la pala . En el la figura 2.25 se muestra el ciclo que sigue la pala.

Figura 2.25: Ciclo de oscilacion de la helice como consecuencia de una translacion


De cara a un mejor entendimiento del ciclo vamos a analizar los puntos de interes de forma
individual. Para facilitar su identificacion, tomaremos como
angulo cero la direccion de
translacion y sentido positivo contrario a las agujas del reloj.
A 0 grados la pala de la helice presentara su mayor
angulo de ataque. Esto se debe a
que, como consecuencia de la translacion, el aire desplazado tender
a a elevar la pala
y en consecuencia el
angulo de ataque aumentara.
A 90 grados la pala alcanzara su posici
on m
axima por encima del plano medio
horizontal del cuadricoptero.
A 180 grados tendremos la situacion contraria a 0 grados, por lo que el
angulo de
ataque sera mnimo.
Por u
ltimo y de manera analoga al punto anterior, a 270 grados la pala alcanzar
a su
posicion mnima, por debajo del plano medio horizontal de la nave.
El ciclo descrito solo hace referencia a una de las palas, pues su comportamiento es el
mismo pero desfasado 180 grados para helices de dos palas. Es decir, cuando una de las
palas presenta un angulo de ataque m
aximo, la otra presenta uno mnimo. La figura 2.26
muestra la relacion entre el m
odulo del vector empuje y el
angulo de ataque de la pala. Es
46

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

importante notar que toda perdida en el m


odulo del vector se debe a la existencia de una
componente horizontal que tender
a a desviar el eje del vector empuje real del ideal.

Figura 2.26: Relaci


on entre el empuje y el
angulo de ataque para una velocidad de translacion constante.[5]
A modo de conclusion, podramos decir que el ciclo descrito va a generar una separacion
entre el eje de control (para el cual ha sido dise
nado el controlador) y el eje donde realmente
se produce la fuerza de empuje, afectando al sistema de regulacion de la nave.

2.5.

M
etodos de control

Como se ha descrito anteriormente el aumento de interes en los cuadricopteros durante


los u
ltimos a
nos ha propiciado la investigacion en este campo, surgiendo gran cantidad
de algoritmos o sistemas de control para su regulacion. En esta seccion se enumerar
an y
describir
an aquellos que se han considerado particularmente representativos para el caso
que se nos ocupa.

2.5.1.

Control usando la teora del Lyapunov

Este tipo de control fue dise


nado por Bouabdallah [6] haciendo uso de la teora de
estabilidad de Lyapunov. Como todo sistema de control precisa de un modelo matematico
del sistema a controlar sobre el cual dise
narlo. Bouabdallah desarrollo un modelo del
sistema que se describe a partir de las siguientes ecuaciones:
x1 =

x2 = x1 = |

x7 = z

U 1 = b(21 + 22 + 23 + 24 )

x8 = x7 = z

U 2 = b(22 + 24 )

U 3 = b(21 23

x3 =

x9 = x

x4 = x3 =

x10 = x9 = x

| U 4 = d(21 + 22 23 + 24 )

(2.10)

x5 =

|
x11 = y
|

x6 = x5 = | x12 = x11 = y |
Haciendo uso de la propiedad de independencia en este modelo, divide el modelo en
dos bloques, uno asociado a la traslacion y otro a la rotaci
on. El controlador de Lyapunov
se aplica al bloque asociado a las rotaciones angulares, cuyas ecuaciones din
amicas son:

47

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

x2

x 4 x 6 a 1 x 4 a 2 r + b1 U 2

x
4

f (X, U ) =

x 2 x 6 a 3 x 2 a 4 r + b2 U 3

x
6

x 4 x 2 a 5 + b3 U 4
(Iyy Izz )
Ixx
r
a2 = IJxx
(I I )
a3 = yyIxx zz
a4 = IJyyr
(I I )
a5 = xxIzz yy

| b1 =

a1 =

| b2 =
| b3 =

(2.11)

l
Ixx
l
Iyy
l
Izz

(2.12)

Buscar la estabilizacion de los


angulos de rotaci
on es equivalente a buscar el equilibrio
en un punto Xd = (xd1 , 0, xd3 , 0, xd5 )T , tarea que vamos a conseguir haciendo uso de la
siguiente funci
on de Lyapunov y de su derivada.

V (X ) = 21 [(x1 xd1 ) + x2 + (x3 x23 ) + x4 + (x5 x25 ) + x6 ]


l
l
l
U2 + (x3 xd3 )x4 + x4 Iyy
U3 + (x5 xd5 )x6 + x6 Izz
U4
V (X ) = (x1 xd1 )x2 + x2 Ixx
(2.13)

Se escogen las siguientes leyes de control:


d
U2 = Ixx
d (x1 x1 ) k1 x2
Iyy
l (x3
Izz
l (x5

U3 =

xd3 ) k2 x4

U4 =

xd5 ) k3 x6

(2.14)

l
l
Sustituyendo los valores anteriores en la derivada obtenemos V = x22 Ixx
k1 x24 Iyy
k2
l
k3 , funci
on semidefinida negativa siempre que los valores de ki sean positivos. Acorde
x26 Izz

al teorema de Lyapunov, al haber encontrado una funci


on potencial cuya derivada es
semidefinida negativa, se garantiza la estabilidad para el punto de equilibrio. Ademas, por
el teorema de invarianza de LaSalle podemos asegurar tambien que al empezar en una
curva de nivel de la funci
on de Lyapunov definida anteriormente, la evolucion del estado
se restringe a la region limitada por la curva de nivel. Esto es especialmente u
til pues
simplemente se necesita empezar en una curva de nivel que no incluya puntos problem
aticos
y aplicar los controles anteriores. El teorema de LaSalle nos permite asegurar estabilidad
asintotica ya que el maximo n
umero de rotaciones invariantes del subsistema esta limitada
al punto de equilibrio. Para asegurar estabilidad global, basta que

lm V (X ) = ,

|x |

condicion que en este caso se cumple y que por tanto permite asegurar estabilidad global.

2.5.2.

Controlador por linealizaci


on en la realimentaci
on.

Este controlador, dise


nado por H.Voos [18], hace uso de dos lazos de control, uno que
regula la velocidad del vehculo y otro que lo estabiliza tomando como referencia el vector
48

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

de velocidades deseadas. El objetivo por lo tanto sera estabilizar el sistema a la vez que se
alcanza la referencia con el mnimo error, haciendo uso de las medidas obtenidas a traves de

la IMU. Esta
proporciona los valores de las aceleraciones y velocidades angulares del cuerpo
que, haciendo uso de un filtro de Kalman, proporcionar
a una estimacion de los
angulos de
Euler. Si la referencia se mantiene a cero, el sistema debera mantenerse estable en vuelo
estacionario. La principal ventaja de este control en su conjunto es que la linealizaci
on y
sus controladores son comparativamente mas sencillos de implementar que el sistema no
lineal completo. Esto da lugar a una mayor velocidad de calculo aunque requiere obtener
una medida o estimacion, con la suficiente precision, de todas las variables de estado. El
esquema 2.27 representa la estructura del controlador, donde se muestran los dos lazos
descritos anteriormente.

Figura 2.27: Diagrama de bloques del control por linealizaci


on en la realimentacion.[6]
El lazo interno es el que estabiliza la posicion de la nave y ha de ser mucho mas rapido
que el lazo externo. El lazo interno recibe como referencia los
angulos deseados que proporciona el lazo exterior. Al ser mucho mas rapido que el externo, podemos asumir que los
angulos deseados, referencias del lazo interno, estan siempre disponibles. A continuacion
se introducen las ecuaciones del control de cada lazo.
Lazo interno: Control de posici
on
Como vimos anteriormente en el modelado de la nave, el sistema se puede modelar a
traves de dos submodelos independientes, uno asociado a las velocidades lineales y otro
asociado a los
angulos y sus derivadas. En este lazo se usa el segundo modelo de los
mencionados anteriormente. Despreciando los efectos girosc
opicos, la expresion obtenida
es la siguiente:

1 + L u2
I

Ix

= I
2 + L u3
Iy

3 + 1 u4

I
Iz

(2.15)

Posteriormente, aplicando una linealizaci


on sobre el sistema realimentado y operando el
sistema resultante, obtenemos el sistema lineal desacoplado que se muestra a continuacion:

K2 + ILx u2

= K3 + L u
(2.16)
3
Iy

K4 + I z u 4

Donde K2,3,4 son constantes que han de ser negativas para garantizar que el punto de
operacion del sistema linealizado es asintoticamente estable.
49

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Lazo externo: Control de velocidad


Este lazo hace uso del submodelo que regula la velocidad lineal del cuadricoptero,
definido a traves del siguiente sistema de equaciones diferenciales:

V x
(cos(d )sin(d )cos(d ) + sin(d )sin(d )) um1

V y = (cos(d )sin(d )sin(d ) sin(d )cos(d )) u1


m
V z
g cos(d )cos(d ) u1

(2.17)

Para facilitar el control, el sistema anterior se puede transformar en un sistema desacoplado


con nuevas variables de entrada u1,2,3 que dependen de las cuatro variables de entrada
del sistema no lineal. Se controlan pues las tres nuevas variables a traves de un control
proporcional descrito por el siguiente conjunto de ecuaciones:

u1
k1 (Vxd Vx )

u = k2 (Vyd Vy )
2

u3
k3 (Vzd Vz )

(2.18)

Donde k1,2,3 son las ganancias del controlador proporcional, las cuales pueden ser elegidas
de forma tal que el lazo sea lo suficiente rapido, pero nunca mas rapido que el lazo interno.

2.5.3.

Controlador PID

Un controlador PID (Proporcional Integrativo Derivativo) es un mecanismo de control


generico sobre un sistema lineal en lazo cerrado, ampliamente usado en la industria para el
control de sistemas. El control PID procesa el error calculado a partir de la salida deseada
menos la salida medida, e intenta minimizar el error ajustando el mando del sistema. Este
controlador viene determinado por tres parametros:
Proporcional: da un respuesta proporcional al error. Esta accion, de forma independiente, no es siempre capaz de eliminar el error en regimen permanente y es sensible
a ruidos, por lo que suele combinarse con las demas acciones si el sistema a controlar
lo exige.
Integral: da una respuesta proporcional a la integral del error. Esta accion elimina
el error en regimen estacionario. Por el contrario, se obtiene un mayor tiempo de
establecimiento, una respuesta m
as lenta y el periodo de oscilacion es mayor que en
el caso de la acci
on proporcional.
Derivativa: da una respuesta proporcional a la derivada del error (velocidad de cambio del error). A
nadiendo esta accion de control a las anteriores se aumenta la velocidad de respuesta del sistema aunque se amplifican los ruidos en el mando a altas
frecuencias.
Este controlador fue utilizado en el Swiss Federal Institute of Technology [19] para
estabilizar la posicion del cuadric
optero. Para su dise
no se linealizo el modelo en un u
nico
punto de equilibrio, que corresponde al vuelo estacionario del dispositivo.
50

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Por lo tanto, el efecto giroscopico [20] no se tuvo en cuenta para su dise


no. El modelo de
bucle cerrado fue simulado mediante SIMULINK empleando un modelo completo no lineal,
donde se ajustaron los parametros del controlador para obtener la mejor respuesta de la
aeronave. Los resultados del ensayo fueron positivos, estabilizando la posicion del vehculo
en 3 segundos. Posteriormente se implanto en un sistema real con resultados positivos y
coherentes con los simulados anteriormente. Sin embargo, en presencia de perturbaciones
lo suficientemente significativas como para alejarlo de su punto de equilibrio, el dispositivo
no era capaz de recuperar su posicion de equilibrio. En consecuencia el controlador no resulta suficientemente robusto. Este tipo de controlador podra ser m
as practico si utilizase
m
ultiples puntos de linealizaci
on en vez de uno solo.

2.5.4.

LQR

Un controlador LQR es un algoritmo de control que calcula de forma automatizada


la matriz de realimentaci
on de estados para un sistema a controlar. Este controlador
minimiza una funci
on de coste, definida como la suma de desviaciones de la variable o
variables a controlar y su valor deseado, caracterizada por unas matrices de pesos que
son introducidas por el programador. En este documento se introducen dos metodos de
control LQR.
Controlador LQR Cl
asico.
Este tipo de controlador fue implementado por Homann [21] para controlar la posicion. El controlador funcionaba correctamente para bajas velocidades de los motores pero,
al aumentarla, las vibraciones inducidas en la estructura impedan al controlador conseguir
su objetivo. Para solucionar este problema se modifico la matriz de covarianza Q(ruido de
salida), haciendo posible su control a costa del aumento de los errores de seguimiento de
la trayectorias.
En[22] se emplea un proceso iterativo de ensayos para ajustar los valores del controlador
LQR, realimentando y y . Basandose en este controlador, Cowling [23] realimento x, y, z
y , dando lugar a un patron de vuelo muy consistente con la trayectoria referencia. Sin
embargo, el controlador segua teniendo el problema de que estaba linealizado en un u
nico
punto de operacion, el correspondiente al de vuelo estacionario.
Controlador LQR con estados dependientes
Este controlador dise
nado por Bouabdallah[19] es mas robusto que los descritos anteriormente ya que linealiza el espacio de estados para cada condicion de vuelo, calculando
las ganancias del controlador LQR para cada estado. Esto le da mucha mas autonoma al
dispositivo, al no estar restringido a un vuelo cuasiestacionario. Este modelo de controlador
se denomina ecuaci
on de estados dependientes de Riccati [24].

51

Modelado y Control de un Cuadricoptero

2.5.5.

Estado de la cuesti
on

Controlador H

Este controlador, desarrollado principalmente por Chen[25], presenta una gran robustez, un buen rechazo a interferencias y un buen seguimiento de trayectorias de referencia.
En su artculo combina tambien el controlador H con un control predictivo basado en
modelo (MBPC). Si bien el rol del controlador es mantener la estabilidad de forma robusta y un control sobre la trayectoria, el control predictivo permite controlar la trayectoria
tanto longitudinalmente como lateralmente para vuelos no estacionarios.
El controlador esta divido en dos lazos. En el primero se estabilizan los
angulos de
giro y la velocidad vertical, mientras que el segundo controla la altura y las velocidades
laterales y longitudinales. Diferentes tipos de perturbaciones se aplicaron en la simulaci
on
y el controlador respondio satisfactoriamente.

2.6.

Estimador de Estados

El control mediante realimentacion de estados asume la disponibilidad de las variables


de estado. Este puede no ser el caso en la practica, ya sea porque ciertos estados no son
medibles,o es muy difcil o muy caro medirlos. Para implementar una realimentaci
on de
estados se debe dise
nar entonces un observador o estimador de estados. Un observador
es un sistema dinamico que estima los estados de la planta basado en la medida de sus
entradas y salidas. Una forma intuitiva de construir un estimador de estados podra venir
dada por la reproducci
on de la planta en el observador. De esta forma los estados estimados y los reales coincidiran idealmente. Efectivamente coincidir
an siempre y cuando la
condicion inicial sea la misma, puesto que si son distintos, el estimador convergera a un
valor distinto al real en cierto casos. A fin de solucionar este inconveniente, se incluye en
el observador la llamada correccion del error por realimentacion. Esta correccion consiste
en realimentar la diferencia entre las salidas de la planta y el observador multiplicada
por una matriz de ganancia L. Con una elecci
on apropiada de la matriz L, se asegura la
convergencia asintotica al valor real del estado.

Figura 2.28: Diagrama de bloques de un observador.


52

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Partiendo de la suposicion de que el sistema es estable, condicion necesaria para un correcto


funcionamiento del observador, si el sistema es observable podremos escoger la matriz L
que m
as convenga al sistema. El diagrama de bloques mostrado en la figura 2.28 puede
describirse a traves de la ecuaci
on siguiente.
x
/ = (A LC)/
x + Bu(t) + LCx(t)

(2.19)

A la vista de la ecuaci
on anterior, para que el error converja asintoticamente a cero se
necesita que la matriz (A LC) sea de tipo Hurwitz, es decir,se ha de definir una matriz
L tal que la matriz (A LC) tenga autovalores con parte real negativa. A los autovalores
de esta matriz se les conoce como polos del observador, as como a los autovalor- es de
la matriz (A BK) se les conoce como polos de realimentacion. Para la ubicacion de los
polos del observador solo se debe tomar en cuenta que estos deben estar mas a la izquierda
en el semiplano izquierdo que los polos del sistema con realimentacion de estados, esto es,
que la dinamica del observador debe ser m
as r
apida que la del sistema que debe observar
si queremos tener un estimador de los estados adecuado. Generalmente se hace uso del
teorema de dualidad calculando L a traves de la relaci
on (L = K T ), donde K es la matriz
de ganancia de realimentacion de estados, para obtener el valor de la matriz, pero tambien
se puede mejor la dinamica del observador posicionando los polos manualmente.
Sin embargo no podemos mejorar la dinamica indefinidamente, pues a pesar de que una
ganancia alta implica una mayor velocidad de convergencia, tambien da lugar a fenomenos
de picos en los que el error, generalmente el inicial, puede ser tan grande que de lugar a
situaciones de peligro o inseguridad. Si se diera ese caso, habra que recurrir a observadores
no lineales con realimentaci
on de alta ganancia, como los observadores en modo deslizante
[7]. Estos observadores elevan los estados estimados a un hiper plano superior donde no
hay diferencia entre la salida estimada y la salida medida. La ganancia no lineal suele
implementarse con una funcion de interrupcion escalada, como la funci
on signum. Por lo
tanto, como consecuencia de la realimentacion con alta ganancia, el campo vectorial del
observador contiene un pliegue de forma que las trayectorias del observador se deslizan
sobre la curva definida por el pliegue, curva donde las medidas y las estimaciones coinciden
exactamente. Por tanto si el sistema es observable desde la salida, el observador seguir
aa
los valores reales del sistema de estados.
Hasta ahora se ha supuesto que las medidas obtenidas a la salida del sistema no
contienen ruido. Sin embargo, ese supuesto no suele ser del todo com
un, especialmente en
el caso que nos ocupa. La existencia de ruido en las medidas disminuye la efectividad del
observador b
asico que describamos anteriormente, pudiendo llegar a ser completamente
in
util. Ante este tipo de situaciones, existen tambien otros tipos de observadores aunque
reciben el nombre de filtros. Los mas comunes, y por tanto los que se analizar
an aqu, son
el filtro complementario y el filtro de Kalman.

53

Modelado y Control de un Cuadricoptero

2.6.1.

Estado de la cuesti
on

Filtro Complementario

Este tipo de filtros esta poco extendido en el campo de la regulacion pero se aplica con
gran asiduidad al campo de la aeronautica, especialmente en elementos en los que se ha de
estimar los
angulos de Euler de un dispositivo a partir de las medidas de los aceler
ometros
y los giroscopos acoplados al mismo. Este filtro surge ante la necesidad de corregir las
desviaciones que los mencionados elementos introducen en sus medidas, ya bien de baja
frecuencia en el caso de los giroscopos o bien de alta frecuencia en los aceler
ometros. El
filtro complementario realizara una ponderacion entre las medidas de ambos elementos tras
haber filtrado las componentes en frecuencia del ruido, el LPF elimina las altas frecuencias
del acelerometro y el HPF las bajas de los giroscopos. La figura 2.29 muestra el esquema
de funcionamiento del filtro.

Figura 2.29: Esquema de funcionamiento de un filtro complementario


Este filtro estima r
apidamente los
angulos del sistema sin necesidad de una gran cantidad
de calculos y es bastante mas sencillo de implementar que el filtro de Kalman.

2.6.2.

Filtro de Kalman

El filtro de Kalman es un algoritmo de procesado de datos,


optimo recursivo. Se dice
que es recursivo porque no precisa mantener los datos previos, los que facilita su implementaci
on en sistemas de procesado en tiempo real. Ademas se dice que es
optimo porque
minimiza un criterio determinado, estimando los estados de forma que se minimiza el ndice del error cuadratico medio. El diagrama de bloques de un filtro de Kalman aplicado a
un sistema lineal esta representado en la figura 2.30.

Figura 2.30: Diagrama de bloques de un filtro de Kalman con planta lineal


En el diagrama, x(t) representa el estado, y(k) representa la salida u observacion del sistema, el ruido asociado a la medida, v el ruido asociado al sistema y las matrices A,B
54

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

y C son las matrices deterministas que definen la din


amica del sistema.
El filtro de Kalman busca obtener el valor de la estimacion del estado, de forma que se
minimice el error cuadratico medio,es decir, determinar los valores de k!
+ 1 a partir de las
medidas contaminadas de la observacion de forma que la matriz de covarianza del error
sea mnima. Esta matriz de covarianza se define como:
P (n) = E{e(n) et (n)}

(2.20)

Donde e representa el error definido a traves de la ecuacion:


e(k) = x(k) x
/(k)

(2.21)

El algoritmo tiene dos fases que son ejecutados de forma iterativa, la fase de prediccion
anterior a la llegada de la medida y de correccion o actualizacion del estado. La figura
2.31 representa de forma esquem
atica todo el proceso.

Figura 2.31: Esquema del proceso interno del filtro de Kalman


A continuacion se describir
a cada uno de los puntos marcado en el esquema.
Predicci
on del estado en la etapa de predicci
on. Calculamos una prediccion
del estado x(k+1) a partir del valor mas actualizado del estado.
x% (k + 1) = A/
x(k) + Bu(k)

(2.22)

Predicci
on de la matriz de covarianza. En este paso calcularemos la nueva
matriz de covarianza del error usando la ecuaci
on:
P % (k + 1) = AP (k)At + Q(k)

(2.23)

Donde Q es la matriz del ruido asociada al proceso y cuyo valor viene dado por
E{v(k)v(k)t }

55

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

C
alculo del vector de ganancias. Como mencionabamos anteriormente, el valor
del estado se calculara a traves del estado anterior y de una correccion que es funci
on
del error, accion que representa la siguiente ecuaci
on:
x
/(k + 1) = x% (k + 1) + K(k + 1)[y(k + 1) Cx% (k + 1)]

(2.24)

Sustituyendo la ecuaci
on 2.21, diferenciando la ecuaci
on, igualando a cero y desarrollando la ecuaci
on obtenida se obtiene la ecuacion que se aparece en el esquema 2.31.
La matriz R que aparece en la ecuaci
on representa el ruido asociado a la medida
calculado de manera similar a Q. (R=E{(k)(k)t })
Actualizaci
on del estado Este paso consiste en aplicar directamente la ecuaci
on
mostrada en el esquema 2.31, pues conocemos todos los elementos necesarios para
actualizar el estado.
Actualizaci
on de la matriz de covarianza. Por u
ltimo actualizamos tambien la
matriz de ruido con la ecuaci
on que de nuevo se muestra en el esquema.
Para iniciar el algoritmo es necesario conocer el valor inicial del estado, la matriz de covarianza del error aunque podemos asumir P(0)=Q y los valores de la matriz de covarianzas
Q y R.
Las ecuaciones expuestas anteriormente definen el funcionamiento del filtro de Kalman,
pero u
nicamente sera aplicable en sistemas lineales, pues como se puede observar se hace
uso de las matrices deterministas A,B,C. En caso de encontrarnos con un sistema no lineal,
se hace uso del llamado filtro de Kalman extendido. Este filtro realiza una linealizacion en
cada iteracion sobre el estado estimado de media y covarianza concretas. Desde el punto
de vista de las ecuaciones, las mostradas anteriormente seguir
an siendo validas siempre
que se sustituyan las matrices del sistema lineal por las matrices del sistema linealizado
en cada paso.
Aplicaci
on en cuadric
opteros. Filtro de Kalman Multiplicativo[6]
Uno de los principales retos en la ingeniera de control para cuadricopteros reside en
la estimacion de su orientacion con respecto a un sistema de ejes inercial. Ademas existe
un problema en el sistema matematico usado generalmente en la aeronautica, los
angulos

de Euler. Estos generan un problema de singularidad indeseado llamado Gimbal Lock,


y que se produce cuando rotas cualquier vertice o entidad en el eje Y 90/-90 grados.
La consecuencia es que el eje X y el Z acaban apuntando en la misma direccion, por
lo que se pierde el control sobre ellos. El primero de los problemas que se enunciaban
se puede solucionar fusionando las medidas de los dispositivos de medida de la IMU,
usandolos de forma inteligente. Para solucionar el segundo de los problemas se hace uso
de unos elementos matem
aticos llamados quaternions o cuaterniones que, a pesar de ser
mas complejos de manejar, lo evitan facilitando la labor de regulacion.
56

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Esta complejidad en el manejo de los cuaterniones se pone de manifiesto al utilizarlos


como sistema de estados en un filtro de Kalman. En su lugar se puede definir un vector
de estados del error en la posici
on y, de forma independiente, propagar el cuaternion de
posicion haciendo uso de las medidas de los gir
oscopos. Para corregir las estimaciones es
necesaria la utilizaci
on de al menos dos vectores de medidas no colineales, problema conocido como Wahbas problem. En este filtro, la soluci
on al problema viene dada por las
medidas de gravedad y direccionamiento que proceden de los aceler
ometros y del GPS,
respectivamente.

Introducci
on al funcionamiento del filtro:

El filtro multiplicativo que aqu se des-

cribe es una modificaci


on del sistema de correccion del filtro de Kalman extendido. Estos
cambios surgen ante los problemas que generan este tipo de filtros al aplicarse en el sistema
de regulacion de aeronaves. El filtro multiplicativo aplica una metodologa de correccion
del estado de tipo incremental, dado que las medidas del GPS se procesan a una menor velocidad y que estas estan expresadas en un sistema de referencia distinto al de los
aceler
ometros. Por tanto las medidas de cada sensor son incorporadas al filtro de forma independiente. Ademas el filtro multiplicativo realiza la correccion del vector de estados con
el vector de error en la posicion y posteriormente transforma dicho vector en un cuaternion
normalizado de error. Este cuaternion de error sera usado para actualizar el cuaternion de
posicion, y, posteriormente, se reinicializa el del error igual
andolo a cero. De esta forma
se asegura la condicion de que el cuaternion de posicion este normalizado. Se define el
cuaternion de posici
on como la rotaci
on sobre un eje especfico de rotaci
on, representado
a traves de la ecuaci
on 2.25 como un vector columna de cuatro parametros.


e0
cos( 2 )


e E sen( )
x x
2
e= =

ey Ey sen( )
2


Ez sen( 2 )
ez

(2.25)

El primer termino corresponde a una cantidad escalar relacionada con el


angulo de
rotaci
on , mientras que los tres siguientes representan las componentes unitarias del eje
de rotaci
on en el sistema de referencia inercial. Se puede comprobar que su norma es la
unidad, permitiendo pues definir una matriz de rotaci
on de solidos rgidos R, que transforma vectores referidos al sistema inercial al sistema movil y viceversa (&vmovil = R &viner ).

e20 + e2x e2y e2z

R=
2(ex ey ez e0 )

2(ex ez + ey e0 )

2(ex ey + ez e0 )
e20 e2x + e2y e2z
2(ey ez ex e0 )

57

2(ex ez ey e0 )

2(ey ez + ex e0 )

e20 e2x e2y + e2z

(2.26)

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Por u
ltimo, se define el vector de error en la posici
on a traves de:

cos( |a2e | )

aex sen( |ae | )


|ae |
2
e(ae ) = aey

sen( |ae | )
2
|ae |
|ae |
aez
|ae | sen( 2 )
Funcionamiento del filtro. Fase de predicci
on:

(2.27)

A la hora de desarrollar las ecua-

ciones que definen la prediccion del vector de estados dentro del filtro analizado, se parte
de las ecuaciones de un sistema no lineal estandar a fin de no perder generalidad.
x = f (x, u, t) + Gw(t)

(2.28)

z(k) = h(x, k) + v(k)

(2.29)

Donde Q representa, al igual que en el filtro de Kalman estandar, la covarianza del ruido
asociado al ruido en el proceso. La ecuaci
on diferencial para el c
alculo de la matriz de
covarianzas P viene dada por:
P = F P + P F T + GQGT

(2.30)

Las ecuaciones anteriores pueden simplificarse bajo una serie de supuestos que, para la
aplicacion estudiada, son validas y suponen una mejora para el funcionamiento del sistema.
La primera consiste en suponer que los bias de los giroscopos han sido estimados de forma
interna. La segunda es asumir que el ruido tiene media nula y por tanto la esperanza del
error en la altitud con el paso del tiempo eso nula, siempre y cuando el vector de error
de la posicion sea reiniciado a cero antes de realizar la siguiente prevision. En condiciones
normales, la matriz de transicion de estados F en un modelo no lineal vendra dada por el
jacobiano de la funci
on f(x,u,t), sin embargo con las simplificaciones anteriores, esta queda
reducida a la siguiente expresion:

F =
z
y

0
x

(2.31)

De igual manera, la matriz G de la ecuacion 2.30 se convierte en una matriz identidad


bajo las suposiciones anteriores, quedando las ecuaciones de la fase de prediccion como se
muestran a continuacion:
/
ae (k + 1) = 0

P (k + 1) = Ts (F (k)P (k) + P (k)F (k)T + Q)


0
1
0 2
Ts
e(k + 1) = e(k) + 2
e(k)
(k)
e(k + 1)

(2.32)

e(k+1)
||e(k+1)||

Donde Ts es el tiempo de muestreo. A traves de ese conjunto de ecuaciones, se propaga el


vector de error, la matriz de covarianza y el cuaternion de posici
on.
58

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

Funcionamiento del filtro. Fase de correcci


on:

Como se mostraba en la descripcion

del filtro Kalman, la correccion del estado se divide en tres partes, el calculo de la ganancia
de Kalman (K), la actualizaci
on de la matriz P y la correccion del vector de estado. Las
ecuaciones que definen esta fase son las siguientes:
H(k)

K(k)

h(x,k)
x
P (k) H(k)T (R

+ H(k)P (k) H(k)T )1

P (k)+ = (I K(k)H(k))P (k)


x
/(k)+

(2.33)

= x
/(k)+ + K(k)[z(k) Hx(k) ]

Con las ecuaciones mostradas a lo largo de todo el desarrollo del filtro multiplicativo, se
podra estimar la posici
on de la nave, sin embargo tal y como se presentan las ecuaciones
de correccion, el filtro no se encuentra optimizado. Dada las condiciones en las que se
trabaja, es posible simplificarlas otorgando por tanto un menor tiempo de procesado y
una mejor respuesta.
La ventaja de este filtro reside en que la correccion se realiza a traves de las medidas obtenidas de los sensores de forma independiente (anteriormente se comentaba por
que necesitaban ser independientes), por tanto se construye el vector de error de posici
on
directamente de los vectores de medida y de los vectores de prediccion.
1. Aceler
ometro: Cuando la nave se encuentra en vuelo estacionario, los aceler
ometros
medir
an la acelaracion de la gravedad, la cual puede ser comparada con el eje z
del sistema inercial trasformado al sistema fijo al cuerpo, mediante la matriz de
transformaci
on R. Por tanto, el angulo y el eje de error de posicion de la medida del
aceler
ometro viene dado por:
g
||g|| (Zi )b
g
cos1 ( ||g||
(Zi )b )

EeA =
eA =

(2.34)

Donde g es la medida del aceler


ometro.
2. GPS: A traves de la se
nal de GPS se define un vector que contiene la orientacion
del dispositivo. Para encontrar el error en la orientacion, la medida se compara con
la orientaci
on predicha, la cual se obtiene proyectando el eje X del sistema fijo al
cuerpo sobre el plano X-Y del sistema inercial, usando la transpuesta de la matriz
R sobre el cuaternion de posicion anterior. De nuevo, las ecuaciones para calcular el
angulo y el eje del error se definen como:

(xb )i
||(xb )i || G
(xb )i
G )
cos1 ( ||(x
b )i ||

EeG =
eA =

(2.35)

Posteriormente sustituiremos los valores calculados en la ecuaci


on (ae )m = EeG eA
donde el subndice m indica que la ecuacion es generica para todo tipo de error (dado por
el aceler
ometro, GPS...). Como la esperanza del vector de error en la posicion a lo largo
59

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

del tiempo va a ser nula, podemos actualizar el vector de estado como se muestra en el
conjunto de ecuaciones, que es notablemente mas sencilla que la anterior. Ademas como
el vector de error en la posicion se crea a partir de las observaciones del sensor, la matriz
de medidas a la salida es igual a una matriz de identidad 3x3. Por tanto las ecuaciones de
la fase de correccion quedan de la siguiente manera:
K(k)

= P (k) (R + P (k) )1

P (k)+ = (I K(k))P (k)


a/e +
e/+

= 0 + K(k)[(ae )m ]
2
= e(a/e + ) e/

(2.36)

Existe, sin embargo, una u


ltima correccion que afecta a la matriz R. Cuando la nave no
se encuentra en estado de vuelo estacionario, los acelerometros miden aceleracion lineal,
angular y de Coriolis, ademas de la de la gravedad. Esta degradaci
on de la aceleracion
de la gravedad observada se corrige desconectando la actualizacion de la medida del acelerometro cuando la observacion es superior a un lmite fijado. Este efecto se describe a
traves de la ecuaci
on R = R[1 + k(1 ||g||)2 ] , donde el parametro k es una matriz de
ganancias ajustable y g es la medida del aceler
ometro. Con esta u
ltima correccion, el filtro
multiplicativo esta listo para ser implantado.

2.7.

Complementos

2.7.1.

Cuaterniones

Un cuaternion es un elemento matematico que consta de un componente escalar y otro


vectorial, generalmente definidos de la forma:
q = q0 + q1i + q2 j + q3 k

(2.37)

Estos elementos son especialmente u


tiles en aplicaciones de aeronaves puesto que reducen
en gran medida el coste computacional del sistema al no trabajar con funciones trigonometricas ya que el cuaternion de rotaci
on de euler se define como:

cos(/2)

k sin(/2)

x
q =

ky sin(/2)

kz sin(/2)

(2.38)

Donde es el vector director del eje de rotaci


on del cuerpo y el
angulo girado. Combinando
los cuaterniones equivalentes de cada rotaci
on obtenemos el cuaternion equivalente a la
matriz de rotaci
on de Euler.

q =

cos(/2)
cos(/2)

sin(/2)
0
0

0
0
sin(/2)

sin(/2)
0
0
cos(/2)

cos(/2)cos(/2)cos(/2) + sin(/2)sin(/2)sin(/2)

sin(/2)cos(/2)cos(/2) cos(/2)sin(/2)sin(/2)

cos(/2)sin(/2)cos(/2) + sin(/2)cos(/2)sin(/2)
cos(/2)cos(/2)sin(/2) sin(/2)sin(/2)cos(/2)
(2.39)

60

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

El uso de la ecuaci
on anterior reduce en gran medida el coste computacional de cada iteracion en el sistema de control, pues basta transformar los respectivos giros en su cuaternion
correspondiente al principio de cada iteracion y proceder con los c
alculos correspondientes
a los cuaterniones. Si bien en conjunto se gana velocidad, las operaciones basicas (producto, division etc) son m
as complejas y existe una amplia bibliografa donde se presentan las
propiedades de estos elementos. En este documento no se han incluido por no ser excesivamente criticas en su dise
no, pues Simulink incorpora bloques que realizan tal funcion.
Los detalles matematicos de estos elementos se dejan al lector[26].
Los cuaterniones permiten ademas corregir un problema derivado de la singularidad de la
matriz de rotaci
on de Euler: el gimbal lock. Este efecto se produce cuando se rota cualquier
vertice o entidad 90/-90 grados respecto el eje Y . La consecuencia es que los ejes X y Z
acaban apuntando en la misma direccion, con lo que se pierde el control sobre ellos. Al no
existir singularidades en estos elementos, resultan extremadamente u
tiles en aplicaciones
de este tipo.

2.7.2.

M
aquinas de estado

Una m
aquina de estados es una estructura de programa que nos sirve para determinar
el comportamiento de algo en base al estado en el que se encuentre. Para cada estado
por tanto se tendra un comportamiento. Un estado representa el comportamiento de un
elemento que hace algo durante cierto tiempo y entre ellos se definen las llamadas transiciones, es decir el paso de un estado de origen a otro de destino. Tiene siempre asociada
una condicion y puede requerir la ejecuci
on de alguna accion. En este proyecto se utilizara una m
aquina de estados para integrar elementos de seguridad y de funcionamiento
requeridos por aplicaciones similares. A modo de ejemplo, el PX4 Autopilot [27] cuenta
con una maquina de estados con los siguientes estados:
Estado de Prevuelo: Cuando el sistema no esta inicializado.
Estado de espera: El sistema esta listo para armar los motores.
Estado de listo en tierra: Motores armados pero a
un en tierra.
Estado de control manual: Control de la nave a traves del piloto.
Estado de control automatico: Control de la nave de forma automatica.
Estado de abortar mision: Cancela la orden prefijada.
Estado de aterrizaje de emergencia: Aterriza el avion.
Estado de desconexion de emergencia: Desconecta la nave.
Estado de error en tierra: Mantiene la nave en tierra.

61

Modelado y Control de un Cuadricoptero

Estado de la cuesti
on

A continuacion, la figura 2.32 muestra el diagrama de la maquina, la cual incluye los


estados anteriormente mencionados y las transiciones entre ellos.

Figura 2.32: Maquina de estados del PX4 Autopilot [7]

2.7.3.

Driver Blocks

Los driver blocks son un conjunto de funciones programables en un entorno Matlab


Simulink que permiten ejecutar un c
odigo creado en simulink sobre un controlador de
forma autonoma, es decir, sin estar conectados directamente al equipo. Existen dos tipos
de driver blocks. El output driver block toma una o mas se
nales como entrada y las usa
para realizar cualquier accion sobre la plataforma objetivo. Por otro lado, el input driver
block realiza una accion de percepcion sobre la plataforma objetivo y la transforma en
una variable para su uso posterior. Este tipo de c
odigo no generan ninguna accion en
simulaciones sobre el ordenador, sino que estan dise
nadas para actuar en el dispositivo
volcado. El procedimiento de dise
no es equivalente para ambos tipos de bloques, por lo
que se describira en el Anexo A como crear un output driver block pero no como crear uno
tipo input. Una vez creado se ha de volcar a la placa base, cre
andose un total de 4 archivos.
En el caso de los input driver blocks, cambiar
a el paso 2, cambiando la eliminaci
on de la
variable de salida por la de entrada. De esta forma es posible dise
nar un codigo con la
herramienta Simulink y ejecutarla posteriormente en un dispositivo independiente del pc.

62

Captulo 3

Estudio mec
anico del sistema
En este captulo se aborda todo lo relativo a la mecanica del conjunto bajo estudio. Se
proceder
a a realizar un analisis general de ello centrandose en lo esencial para el desarrollo del control que, posteriormente, sera dise
nado. Esto quiere decir que se estudiaran las
propiedades mecanicas que poseen los elementos usados, sin realizar estudios para mejorar
el comportamiento del mismo. El comportamiento mecanico del sistema es esencial para
el desarrollo del software de control, pues su dise
no se basa en el modelado matematico
del mismo.En consecuencia, este tipo de estudios adquieren una gran importancia para el
correcto desarrollo del proyecto.
El contenido este captulo se ha organizado a traves de tres secciones principales en
las que se describir
an los parametros mecanicos que caracterizan la estructura, los de
los motores y unas breves simulaciones aerodinamicas realizadas como complemento. De
este modo se justificara la obtencion de los valores que posteriormente definir
an tanto el
comportamiento como el control del sistema.

3.1.

Modelado CAD

En los u
ltimos a
nos hay habido un desarrollo particularmente importante en el uso
del ordenador como ayuda en la creaci
on, modificacion, analisis y optimizacion de dise
nos,
denominado com
unmente CAD (computer aided design). El software desarrollado para tal
aplicacion permite aumentar la productividad del dise
nador, mejorar la calidad del dise
no
y crear una base de datos para la posterior fabricacion del objeto. Este tipo de tecnica es
usada en una gran variedad de campos como en el dise
no de sistemas electronicos o de
sistemas mecanicos. En este estudio, se aplicar
a CAD para modelar el sistema mecanico
que se usa a lo largo del proyecto. La gran ventaja de este proceso es que no se limita a
la representaci
on de figuras, sino que permite trabajar con una gran cantidad de informacion particularmente u
til para un ingeniero, tales como los materiales que lo componen,
las dimensiones de las piezas, sus tolerancias etc. As pues, a traves de este estudio se
pretende describir gr
aficamente la estructura usada de forma que permita obtener una

63

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

base de datos sobre la cual, posteriormente, se puedan realizar mejoras, correcciones o reproducciones del original. Ademas, la combinaci
on de esta herramienta con las ecuaciones
adecuadas incorporadas en el software, permite calcular una serie de parametros asociados
a la estructura empleada tales como densidades, masas o momentos de inercia que seran
particularmente u
tiles en este proyecto.
La figura 3.1 muestra el resultado del modelado grafico de la estructura del cuadricoptero, realizado con el programa Solid Edge.

Figura 3.1: Representacion CAD de la estructura del cuadric


optero
Esta descripcion grafica es la base para la obtencion de los parametros buscados,
los cuales se calcularan una vez se han acoplado los demas elementos que componen el
cuadricoptero, es decir, los motores, el receptor, la batera etc. Para que los valores proporcionados por el software sean lo m
as precisos posible, es importante caracterizar bien
tanto la forma como las propiedades base de cada elemento que, en este caso, seran la
masa y la densidad. La masa de cada elemento se obtendra pesandolo en una balanza de
precision y para la densidad puede obtenerse del catalogo correspondiente o bien puede
calcularse a partir del volumen de la pieza o estimarse de la forma m
as precisa posible.
Como se introdujo en la secci
on 2.1, las ecuaciones matematicas hacen referencia esencialmente a la masa y los momentos de inercia del conjunto. As pues, a partir del modelo
CAD se han obtenido dichos valores que se recogen en la tabla 3.1.

Masa (Kg)

Volumen (mm3 )

Ixx (Kgm2 )

Iyy (Kgm2 )

Izz (Kgm2 )

0.2722

94059.7154

7,83 104

7,85 104

1,401 103

Tabla 3.1: Parametros mecanicos del cuadricoptero

64

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

Adicionalmente, se han obtenido otros valores complementarios que serviran para justificar las futuras suposiciones de que el tensor de inercia es diagonal y que el centro de
masas del conjunto esta cerca del centro de la estructura (idealmente perfectamente centrada). La posicion de este es [0,5, 0,1553, 0,182603] mm en coordenadas cartesianas con
el eje situado en el centro de la placa base del cuadricoptero. Teniendo en cuenta que la
longitud de los brazos es de 11 cm, se puede asumir que se encuentra bastante centrado
lo cual genera unos productos de inercia poco significativos. Por otro lado, la matriz 3.1
muestra el tensor de inercia del sistema calculado a traves del programa mencionado.

7,83 104

5
I =
1,1 10
2 106

1,1 105
7,85 104
1 106

2 106

1 106

3
1,401 10

(3.1)

En terminos generales, este tensor se podra aproximar a un tensor diagonal donde


los productos de inercia son cero, pues estos son bastante menores que los momentos de
inercia principales. Generalmente, la frontera para despreciarlos se establece alrededor de
uno y dos
ordenes de magnitud de diferencia entre parametros, hecho que se cumple para
los productos Ixz e Iyz . Sin embargo Ixy es solamente un orden de magnitud menor y
puede cuestionarse si su simplificaci
on supone una perdida de precision en la descripcion
del sistema. Para el caso que nos ocupa, se asumir
a que sigue siendo suficientemente peque
no como para despreciarlo, de forma que las ecuaciones de los modelos mostradas en la
seccion 2.1 puedan seguir siendo validas. De querer incluir un tensor no diagonal deberan
realizarse una serie de modificaciones en el modelo pudiendo complicar en gran medida el
dise
no de sistema de control.
A
un habiendo realizado estos calculos, existe la posibilidad de que para una posici
on
desafortunada de alguno de los elementos se modifiquen estos valores. De hecho esta situacion es bastante probable que ocurra salvo que se fijen los elementos de forma permanente,
puesto que si se ha de cambiar alg
un elemento (como la batera) de forma permanente,
se debera recalibrar el sistema ante cada modificacion del conjunto para volver a estimar
las caractersticas mecanicas del conjunto.
Finalmente, en la descripcion de las ventajas proporcionadas por el CAD se menciono anteriormente que este permite crear una base de datos para la posterior fabricacion
del objeto. As pues, este estudio ha permitido obtener un conjunto de planos que caracterizan las piezas que componen la estructura, los cuales pueden servir para posteriores
estudios en este campo. Los mencionados planos se incluyen en los ficheros asociados a
esta memoria donde se describe cada pieza, dimensionada acorde a la norma UNE. En los
planos no se ha hecho menci
on a las tolerancias dimensionales ni a los materiales que los
componen, porque se ha considerado que el dimensionado es suficientemente explicativo.
Sin embargo los archivos CAD cuentan con toda la informacion necesaria para proceder
en esa direccion si se considerase oportuno.
65

Modelado y Control de un Cuadricoptero

3.2.

Estudio mecanico del sistema

Ensayos de los motores

En la introducci
on de este captulo se menciono la necesidad conocer los parametros
de los motores, los cuales aparecen en las ecuaciones que describen matematicamente el
cuadricoptero. Algunos de estos se pueden encontrar en las especificaciones proporcionadas
por los fabricantes pero otros, sin embargo, han de ser obtenidos a traves de ensayos.
Consecuentemente se ha dise
nado un banco de ensayos basado en el descrito en la seccion
2.3.1 para poder registrar el empuje y el par dado por los motores. Las figuras 3.2 y 3.3
muestran dos vistas representativas del banco construido.

Figura 3.2: Banco de ensayos, vista frontal


El motor a ensayar se sit
ua en la parte superior de la estructura debidamente fijado a
esta a traves de tornillos. Es esencial que la fijaci
on sea lo suficientemente fuerte ya que,
de lo contrario, el motor podra salir propulsado, generando un riesgo de da
no tanto para
el operario como para el propio elemento. La estructura ha sido fabricada con un proceso
CAD/CAM a traves de la impresora de prototipado en 3D que la Universidad posee.
El material con el cual esta fabricado ha sido cuidadosamente seleccionado para evitar
posibles fracturas en el mismo durante los ensayos. En el dise
no tambien se ha tenido
en cuenta la distribucion de esfuerzos que soportara la estructura permitiendo eliminar
un exceso de material en zonas donde no se soporta esfuerzo alguno. Esta tecnica de
optimizacion permite ahorrar material en su fabricacion a la vez que reducir el peso de la
misma.
66

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

Figura 3.3: Banco de ensayos, vista lateral


El empuje y el par de arrastre del rotor es medido por unas galgas extensiometricas
acopladas a la estructura. Un galga extensiometrica es un elemento basado en el efecto
piezorresistivo usado para medir la deformacion, presi
on o momento en una pieza. Cuando
se ejerce un esfuerzo de deformacion sobre la galga, se produce una variaci
on en su resistencia electrica por lo que, a traves de la ley de Ohm, para una intensidad de corriente fija,
se puede obtener una relaci
on entre tensi
on y deformacion. As pues, la galga encargada
de medir el par generado por el motor se colocara sobre la estructura, en la posici
on que
se muestra en la figura 3.4.

Figura 3.4: Galga extensiometrica para la medicion del par de arrastre


67

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

Este par se transmitir


a a traves del brazo vertical de la estructura y ser
a medido por
la galga anteriormente descrita. Posteriormente, a traves de un equipo de adquisicion de
datos, se obtienen las medidas necesarias para estimacion de la relacion par-tension.
La medida del empuje generado por el rotor tambien se realizara con una galga. Se ha
optado por este tipo de sensor en vez de la b
ascula por la posicion en la que se encuentra el
motor. Como ya se comento en la seccion 2.3.1, si el motor se encuentra en posicion vertical,
el aire propulsado puede impactar sobre la balanza con la que se mide el empuje recogiendo
unos valores erroneos. El uso de la galga soluciona ese inconveniente proporcionando una
medida limpia de interferencias y de alta precision. As pues, para medir el mencionado
empuje, se fijara la estructura a la galga por medio de un tornillo como muestra la figura
3.5. El otro extremo del sensor se fijara tambien mediante un tornillo a la base metalica
del banco.

Figura 3.5: Galga extensiometrica para la medicion del empuje


La posicion en voladizo que presenta la galga-estructura permite medir las deformaciones obtenidas en el extremo, pudiendose modelarse como una viga en voladizo con una
carga puntual en el extremo. En consecuencia, basta registrar la medida de este segundo
sensor para obtener la relaci
on empuje-tensi
on.
Para controlar la tensi
on aplicada al motor se ha usado un microcontrolador Arduino
UNO. El registro de las medidas se ha realizado mediante una tarjeta de adquisicion de
datos instalada en un pc. Se ha usado Simulink como software de registro de datos.

68

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

Figura 3.6: Placa controladora de Arduino


Descrito ya el funcionamiento del banco de ensayos y las medidas que se desean obtener, se proceder
a a mostrar los resultados obtenidos. Se ha ensayado s
olo uno de los
motores puesto que su comportamiento es similar al resto. Para la obtencion de las curvas
de empuje y par de arrastre se aumenta la velocidad de giro del motor (a traves de la
tension aplicada al regulador electronico) y se registran los valores de ambas variables.
En la figura 3.8 se muestra la evolucion de la velocidad de giro de la helice en rpm.
Se puede observar que el aumento no es lineal sino que se realiza a traves de escalones de
tension, para poder registrar mejor los valores. El tiempo entre escalones vendra determinado por el tiempo de establecimiento de la medida que, en este caso, es relativamente
peque
no. El perodo de muestreo utilizado es de 0.5 ms
Velocidad de giro de las hlices
14000

Velocidad de giro (rpm)

12000

10000

8000

6000

4000

2000

6
8
Muestras

10

12

14
4

x 10

Figura 3.7: Evoluci


on de la velocidad de giro durante el ensayo
69

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

Se ha prolongado este tiempo para obtener para poder filtrar las medidas si se considerase oportuno.
En la figura 3.8 se ha representado la evoluci
on del empuje ante la variaciones realizadas
en la velocidad de giro que se mostr
o en la figura 3.7. Como era de esperar, al aumentar
la velocidad aumenta el empuje pudiendo llegar a ejercer una fuerza equivalente de 105g,
es decir, el motor es capaz de levantar una peso de aproximadamente 1 Kg cuando gira al
maximo regimen de revoluciones del ensayo (cuando se le suministran aproximadamente
5V al motor).

Figura 3.8: Evoluci


on del empuje al aumentar la velocidad de giro del motor
La grafica anterior presenta un efecto curioso y digno de menci
on. Si se observa con
detenimiento, en los instantes previos a un escalon en la velocidad se produce un ligero
descenso del empuje. Esto se debe a que al cambiar el regimen de giro hay un muy breve
periodo de tiempo en el se reduce la velocidad de giro por el cambio en la tensi
on. Este
efecto no se puede apreciar en la grafica 3.7, sin embargo esta si permite apreciarlo.
La u
ltima de las graficas del ensayo que se presentan es la que muestra la figura 3.9,

donde se ha representado la evoluci


on del par de arrastre del rotor. Este
muestra un
comportamiento mas escalonado asemejandose mas a la grafica de la velocidad de giro. La
grafica muestra tambien un considerable nivel de ruido, m
as perceptible en los vanos de los
escalones representados. Este ruido se ha considerado aceptable y se proseguira con estos
valores para el calculo de los parametros. Sin embargo, de obtenerse una mala aproximaci
on
en el metodo de ajuste empleado, debera realizarse una accion de filtrado sobre esta
medida.

70

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

Figura 3.9: Evoluci


on del par al aumentar la velocidad de giro del motor
Una vez obtenidos los datos de los ensayos anteriores, basta aproximar cada curva
medida a una ecuaci
on, para poder obtener los parametros deseados. En este proyecto
se ha usado el metodo de los mnimos cuadrados para obtener una curva que describa
matematicamente el comportamiento tanto del empuje como del par. La curva resultante
se muestra en la figura 3.10 donde tambien se ha incluido la salida simulada y el error en
la aproximacion.
120
Salida medida
Salida simulada
Error
100

80

60

40

20

20

2000

4000

6000

8000

10000

12000

14000

Figura 3.10: Recta de ajuste por mnimos cuadrados


Consecuentemente, combinando los ensayos con la inspeccion de los documentos facilitados por el fabricante se ha podido obtener los parametros del motor que seran utilizados
en adelante. Para mayor cohesi
on se han incluido en la tabla 3.2, donde los primeros valores
se han obtenido del fabricante y los dos u
ltimos a partir de los ensayos.

71

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

Kv (rpm/v)

Rm ()

Ns
)
b ( rad

ms
)
d ( Nrad

2900

0.6

5.44e-7

7.32e-9

Tabla 3.2: Parametros de los motores

3.3.

Estudios aerodin
amicos

En la secci
on 2.4 se describieron con detalle los posibles efectos aerodinamicos que
pueden presentarse en este tipo de aplicacion, desde el efecto suelo hasta las oscilaciones
en las palas de los rotores debido a las traslaciones de los dispositivos. En este proyecto
no se realizara un estudio sobre las oscilaciones de las palas por considerarse demasiado
especficas para este tipo de aplicacion. Sin embargo s se ha realizado un peque
no estudio
sobre el efecto suelo, pues este s puede afectar al sistema de una forma m
as directa.
A fin de entender mejor el efecto suelo, se han realizado una serie de simulaciones
simplificadas a traves del programa de simulacion para procesos fsicos llamado Comsol
Multiyphisics. La figura 3.11 muestra los resultados de las simulaciones, donde se ha situado un flujo de aire descendente pr
oximo a un plano horizontal. El flujo correspondera
al aire desplazado por el giro de las helices y el plano horizontal representara la tierra o
la superficie donde se encuentra situada la nave.

Figura 3.11: Simulacion efecto suelo


Las lneas del flujo de aire representadas en negro rebotan contra el suelo y se redirigen
hacia arriba aumentando el empuje sobre la nave, tal y como se describa en la seccion
2.4. Estas lneas ascendentes de flujo suponen un aumento en el empuje de cada rotor,
lo que genera el efecto desestabilizante en el arranque del dispositivo o efecto suelo. La
simulacion anterior permite tambien identificar dos parametros crticos en este efecto que
son la cantidad de aire proyectada sobre el plano horizontal y la distancia entre el suelo
72

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

y las helices. Parece obvio que si la cantidad de aire proyectado es grande el efecto desestabilizante sera mayor porque habra un mayor flujo ascendente, es decir, la cantidad de
aire proyectado es directamente proporcional al aire que rebota. La segunda puntualizacion realizada anteriormente parece tambien obvia, pues si la distancia entre las helices
de la nave y el suelo es lo suficientemente grande, el flujo que rebota se dispersara y no
afectar
a a la estabilidad de la nave. Sin embargo ocurre un efecto curioso para distancias
muy peque
nas entre suelo y helice como se muestra en la grafica de la figura 3.12.

Grfica modelado efecto suelo


4

T/Tinf

1

2

0.015

0.03

0.045

0.06

0.075

0.09

0.105

0.12

0.135

0.15

0.165 0.18
Z (Altura)

0.195

0.21

0.225

0.24

0.255

0.27

0.285

0.3

0.315

0.33

0.345
0.35

Figura 3.12: Grafica efecto suelo


Esta grafica se ha obtenido a partir de la ecuaci
on 2.9 que representa la relaci
on entre
el cociente del empujes (empuje afectado por la presencia del suelo (T) y el proporcionado
por los rotores lejos del suelo (T )) y la distancia entre las helices y el suelo. Podemos
observar como, para el radio de las palas con las que trabajamos (del orden de 5cm), el
efecto es nulo para alturas superiores a 20 cm, y despreciable para alturas superiores a 4.5
cm. Tambien se puede observar que a distancias muy proximas al suelo, el aumento en
el empuje es particularmente importante y debe tenerse en cuenta de cara al control del
sistema si procediese. Lo sorprendente es el comportamiento para distancias muy proximas
al suelo donde el cociente de empujes se hace negativo lo cual no tiene sentido fsico. Si
se podra llegar a admitir un cociente menor que la unidad, pues indicara que el flujo
proyectado reduce el empuje de la nave. Esta reduccion del empuje se debe a que cuando
la distancia es muy peque
na, el aire contenido entre ambos elementos forma una especie
de piscinaque ejerce una labor de resistencia contra el flujo descendente reduciendo por
tanto el empuje generado. Sin embargo, una cociente de empujes negativo no es realista
y su presencia en la figura 3.12 se debe a que la ecuaci
on 2.9 se ha obtenido a traves
de ensayos y por tanto supone una aproximacion de la realidad, aproximaci
on que no es
valida para distancias tan peque
nas. Sin embargo, para el caso que nos ocupa la influencia
de este efecto es mnima debido a que el radio de la pala es relativamente peque
no y,
73

Modelado y Control de un Cuadricoptero

Estudio mecanico del sistema

por tanto, la cantidad de aire desplazado es tambien peque


na. Consecuentemente el efecto
suelo sera despreciado por las razones que se mencionan a continuacion:
Seg
un la ecuaci
on 2.9 los efectos solo seran apreciables para distancias menores a
4.5 cm respecto a la superficie. El cuadricoptero con el cual se trabaja cuenta con
4 patas cuya longitud es superior a 4.5 cm por lo que, en condiciones normales de
despegue y aterrizaje, no se vera afectado por el efecto suelo.
Seg
un los datos proporcionados en [17], el efecto es mayor que el descrito por la
ecuaci
on 2.9 pero, por otro lado, el cuadric
optero ensayado trabaja a un alto regimen
de revoluciones, considerablemente superior al que se usa en este cuadricoptero. Al
trabajar con un menor regimen, la cantidad de aire desplazada sera inferior y por
tanto sus efectos seran menores.
En la secci
on 2.4.1 se hizo referencia al llamado efecto techo donde tambien se demostro que su efecto sobre el empuje es menor que en el efecto suelo. Sin embargo, dada
la posibilidad de da
no en las palas de los rotores por la colisi
on contra el techo, se debera instalar un sistema de percepcion que evite que el sistema se acerque demasiado al
techo ante una mala maniobra por parte del piloto.

74

Captulo 4

Control del sistema


Este captulo describe el sistema de control que se implantara en el microcontrolador
de la nave y que permitira regular el cuadricoptero en vuelo. Los contenidos, organizados
a traves de secciones, se presentan en el orden logico de dise
no de forma que se facilite el
dise
no al lector. Generalmente, en los procesos de control, primero se modela matematicamente el sistema a controlar con la mayor precision posible. la precision del modelo
esta condicionada por un gran n
umero de factores como el hardware del que se dispone
(controlador, precision de los sensores, actuadores...), la experiencia del dise
nador, el tiempo disponible, o la precision de los ensayos entre otros. Por tanto suele estudiarse tambien
el entorno en el que trabajara el dispositivo y se simplificar
an aquellos efectos que sean
despreciables para la aplicacion.
Una vez se obtiene el modelo se procede con el dise
no del controlador, evaluando el tipo
de algoritmo que se implementara. En la mayor parte de los casos se suelen usar sistemas
de control con realimentacion, pues tienden a estabilizar el sistema al obtener informacion
de la salida y utilizarla en el proceso de control a traves del error en la referencia (diferencia entre entrada y salida). Si buscamos por tanto cerrar el lazo de realimentaci
on,
necesitaremos dispositivos capaces de medir la salida, especialmente las variables de estado, pues son las variables que precisara el control. Si no podemos medirlas directamente
necesitaremos dise
nar un estimador de estados que, a traves de medidas relacionadas con
las variables de estado, nos permita obtenerlas. El hecho de que el estimador proporcione
al algoritmo de control las medidas de las variables de estado convierte su dise
no en crtico,
debiendo ser capaz de suministrar tal informacion al control con la suficiente precision y
rapidez. Para cumplir tal proposito se debe obtener informacion sobre las variables que
somos capaces de medir y de la magnitud del ruido que las acompa
nan, de forma que el
estimador realice su funci
on de la forma m
as precisa posible.
Seguidamente se procede al dise
no del controlador, donde se seleccionara la estrategia
de control a aplicar y se calcularan los par
ametros que proporcionan la respuesta deseada.
La elecci
on del controlador es crtica y se debe evaluar si queremos trabajar sobre el mo75

Modelado y Control de un Cuadricoptero

Control del sistema

delo no lineal completo o si preferimos linealizarlo entorno a un punto de equilibrio. Los


controles sobre modelos linealizados son, por lo general, m
as sencillos que los que act
uan
sobre modelos no lineales aunque, en la mayor parte de los casos, funcionan mal cuando el
sistema se aleja del punto de equilibrio para el cual se ha dise
nado el control. En ocasiones
se suelen usar m
ultiples puntos de equilibrio constituyendo una soluci
on de compromiso
entre los dos tipos de modelos. Como era de esperar, el uso de m
ultiples puntos de equilibrio requiere un mayor gasto computacional si ha de linealizarse el sistema con frecuencia
, o debe usarse una m
aquina de estados compleja capaz de cambiar de control seg
un el
sistema se acerque a cualquiera de los puntos de equilibrio sobre los que se ajustaron los
distintos controles.

4.1.

Modelado matem
atico

El modelado matem
atico de un sistema fsico consiste en describir el comportamiento
del objeto de estudio de la forma mas precisa posible, a traves de un conjunto de ecuaciones. La existencia de dicho modelo permite al ingeniero de control dise
nar el sistema de
control y evaluar sus prestaciones mediante simulaci
on hasta que el sistema este controlado, disminuyendo la posibilidad de da
nar el sistema durante las pruebas reales. Como
se ha mencionado anteriormente, modelar el comportamiento exacto de sistemas complejos es particularmente complejo y en ocasiones suelen llevarse a cabo simplificaciones. Un
modelo extremadamente complejo no garantiza un mejor control, puesto que el dise
no de
controladores puede ser extremadamente complejo, mientras que una simplificaci
on razonable del mismo puede ofrecer mejores resultados. As pues, en este proyecto se ha hecho
uso de tres modelos matem
aticos del sistema, describiendo cada uno la fsica relevante
para el control de la nave de la forma m
as sencilla posible, pero sin alejarse demasiado de
la realidad. A continuacion, se describen dichos modelos.

4.1.1.

Modelo no lineal completo

Se ha denominado modelo no lineal completo al conjunto de ecuaciones que describen


el comportamiento de un cuadricoptero a traves de las ecuaciones que se introdujeron en
la secci
on 2.1. El desarrollo matematico que se presenta a continuacion permite dise
nar un
algoritmo de control capaz de regular la velocidad lineal de la nave utilizando como se
nal
de referencia la velocidad lineal deseada. Es decir, a traves de la emisora se indicara la
direccion y la magnitud de la velocidad que ha de adquirir la nave para que el algoritmo
de control modifique la velocidad de giro de las helices con el fin de seguir a la referencia.

76

Modelado y Control de un Cuadricoptero

Control del sistema

La principal ventaja de este modelo es que representa bastante bien el comportamiento


de un cuadricoptero en condiciones de vuelo interno. Ademas al no tratarse de una linealizacion, la zona de vuelo no queda restringida al punto de operacion donde se ha efectuado
la linealizaci
on. Asmismo, permite usar velocidades de desplazamiento como se
nales de
referencia en vez de
angulos de Euler (se le indica a la nave que se mueva en una direccion en vez de cuanto tiene que girar en una o mas direcciones para que se mueva en la
direccion deseada), siendo mucho mas intuitivo para el piloto y por tanto mejorando su
pilotaje. Por contra requiere una gran cantidad de medidas para el control. Ademas de las
proporcionadas por los acelerometros y los giroscopos, se han de obtener las velocidades
lineales y la altura a la que se encuentra la nave. Por tanto, el sistema debera disponer
de un sistema de medida que defina una referencia externa como por ejemplo un GPS o
un conjunto de sensores de distancia posicionados en la estructura para detectar posibles
colisiones y evitarlas.
Dado que el modelado matematico hace uso de las fuerzas y momentos que act
uan
sobre la nave, a fin de reforzar el entendimiento del mismo se ha incluido el DCL de la
figura 4.1 en el que se incluyen adicionalmente los
angulos de Euler.

Figura 4.1: Diagrama del cuerpo libre del sistema


Es importante remarcar que se han despreciado los efectos aerodinamicos complejos comunes en estos elementos al limitar el uso del dispositivo a vuelos internos. De igual manera,
dada la distribucion de los elementos que componen el cuadricoptero en su conjunto, la
matriz de inercia se ha supuesto diagonal es decir, con productos de inercia nulos.

77

Modelado y Control de un Cuadricoptero

Control del sistema

Desarrollando las ecuaciones de la secci


on 2.1 y usando una representacion de matrices
de estado, obtenemos las ecuaciones siguientes:
,
)

x = (x,
y,
z,
, , , ,

(cos x4 sin x5 cos x6 + sin x4 sin x6 ) U1 /m

(cos x4 sin x5 sin x6 sin x4 cos x6 ) U1 /m

g (cos x4 cos x5 ) u1 /m

x7

x =
x8

x9

x8 x9 I1 IIRx x8 g(u) + ILx U2

IR
L

x7 x9 I2 + Iy x7 g(u) + Iy U3

x7 x8 I3 + I1z U4

(4.1)

Donde L, b, d e IR son parametros del sistema obtenidos en el banco de ensayos as como:


u1

= b(12 + 22 + 32 + 42 )

u2

b(22 42 )

u3

b(12 32 )

u4

= d(12 + 32 22 42 )

g(u) =
I1

I2

I3

1 2 + 3 4

(4.2)

Iy Iz
Ix
Iz Ix
Iy
Ix Iy
Iz

Se puede observar f
acilmente que la matriz de estados 4.1 se puede descomponer en dos
submodelos, uno que describe la dinamica de la posici
on (angulos de euler y sus derivadas)
al que llamaremos M2, y un segundo modelo que describe la traslacion de la nave al cual
llamaremos M1. As pues M1 se define a traves de las ecuaciones de x 7,8,9 y M2 por las
de x 1,2,3 , de forma que en conjunto, como muestra el diagrama 4.2, se puede describir
matematicamente el sistema.

= [, , ])
Figura 4.2: Diagrama del modelo (
r = [x, y, z],
Para facilitar la programaci
on del modelo en Simulink, se han incluido dos bloques m
as pese a que con lo presentado hasta este punto en la seccion, la programacion es perfectamente
viable.
78

Modelado y Control de un Cuadricoptero

Control del sistema

La introducci
on de los dos nuevos bloques facilita la identificacion del sistema modelado
con el sistema real as como la deteccion de errores en el c
odigo. El diagrama de bloques
resultante es el que se muestra en la figura 4.3. A continuacion se procedera a explicar el
contenido de cada bloque principal.

Figura 4.3: Diagrama del modelo completo


Conversor de mandos a entradas
Como su propio nombre indica, este bloque convierte las se
nales que proporciona el
mando (tension a aplicar sobre cada motor) en las entradas adecuadas para el modelo
(fuerza diferencial), es decir [u1 , u2 , u3 , u4 ] [U1 , U2 , U3 , U4 , g(U )]. Este conversor solo es
necesario en las simulaciones. Como se puede observar en el conjunto de ecuaciones 4.2,
'
Ui son funci
on de las velocidades de giro de las helices de cada motor y se calculan a

traves del siguiente conjunto de ecuaciones.

w 1 =
w 2 =
w 3 =
w 4 =

1 Km (u1 Km w1 )
IR (
Rm
1 Km (u2 Km w2 )
IR (
Rm
1 Km (u3 Km w3 )
(
IR
Rm
1 Km (u4 Km w4 )
(
IR
Rm

d w12 )
d w22 )
d w32 )

(4.3)

d w42 )

A continuacion se presentan los vectores de entrada y salida al bloque a fin de facilitar


el entendimiento del mismo. El codigo completo se muestra en el documento III de este
conjunto de documentos.
dx

[w 1 , w 2 , w 3 , w 4 ]t ]

[w1 , w2 , w3 , w4 ]t ]

[u1 , u2 , u3 , u4 ]

param =
y

[b, d, Rm , Km , IR ]

= [U1 , U2 , U3 , U4 , g(U )]

79

(4.4)

Modelado y Control de un Cuadricoptero

Control del sistema

Din
amica de la posici
on
Esta secci
on corresponde al submodelo M2 descrito anteriormente, en el cual se calculan
los angulos de Euler del dispositivo y sus derivadas. Las ecuaciones que lo describen son
las siguientes:
x 4 = x7 + x8 sin x4 tan x5 + x9 cos x4 tan x5
x 5 =

x8 cos x4 x9 sin x4

x 6 =

sin x4
cos x4
cos x5 x8 + cos x5 x9
x8 x9 I1 IIRx x8 g(U ) + ILx U2
x7 x9 I2 + IIRy x7 g(U ) + ILy U3

x 7 =
x 8 =
x 9 =

x7 x8 I3 +

(4.5)

1
Iz U 4

Por tanto, este bloque tendra los siguientes vectores de entrada y salida:
dx

= [x 4 , x 5 , x 6 , x 7 , x 8 , x 9 ]t ]

[x4 , x5 , x6 , x7 , x8 , x9 ]t

param

[L, Ix , Iy , Iz , IR ]

[x4 , x5 , x6 ]

giroscopo =

[x7 , x8 , x9 ]

(4.6)

El vector giroscopo representa las medidas obtenidas por los giroscopos de la nave y
sera una de las entradas de la IMU.
Traslaci
on del dispositivo
Este bloque es la representacion del submodelo M1 d
onde se calculan las velocidades
lineales a partir de los
angulos de Euler. Siguiendo con la estructura presentada anteriormente, las ecuaciones para calcular dichas velocidades son:
x 1 = (cos x4 sin x5 cos x6 + sin x4 sin x6 ) U1 /m
x 2 = (cos x4 sin x5 sin x6 sin x4 cos x6 ) U1 /m
x 3 =

(4.7)

g (cos x4 cos x5 ) U1 /m

En consecuencia los vectores de entrada y salida del bloque seran los siguientes:
dx

= [x 1 , x 2 , x 3 ]t ]

= [x1 , x2 , x3 ]t ]

param

[m, g]

[x4 , x5 , x6 ]

velocidades

[x1 , x2 , x3 ]

aceleraciones =

[x 1 , x 2 , x 3 ]

(4.8)

Los vectores de velocidades y aceleraciones seran entradas del bloque de IMU, representando el u
ltimo de ellos, la mediciones de los aceler
ometros.

80

Modelado y Control de un Cuadricoptero

Control del sistema

IMU
Este bloque representa a la unidad interna de medida. Se ha incluido por motivos
didacticos ya que las medidas propiamente dichas se obtienen en su mayora en los bloques
anteriores. Sin embargo, la presencia de este bloque ayuda a reforzar el entendimiento de
los elementos de medida que incorpora el sistema. As pues:
M edidas = [giroscopot , Rt ([0, 0, g] k aceleraciones)t , R(1, :), velocidadest ]

(4.9)

Donde R es la matriz 2.1.1.

4.1.2.

Modelo simplificado

Se ha denominado modelo simplificado o reducido al conjunto de ecuaciones que describen el comportamiento de la nave en relacion a los
angulos de Euler. Surge como consecuencia del desacoplo mencionado en la seccion anterior y hace uso del anteriormente
llamado submodelo M2. Consecuentemente, este sistema usara como referencia los
angulos
de Euler deseados y el algoritmo de control hara que el sistema siga a la referencia. Como
podra esperarse, al usarse u
nicamente uno de los dos submodelos el sistema no sera tan
descriptivo como el anterior y debera limitarse su uso a la regulacion de los
angulos de
Euler. Consecuentemente, se pierde precision pero a cambio se gana simplicidad. Al no
incluir ecuaciones de traslacion (submodelo M1), no es necesario obtener medidas de velocidad o altura de la nave por lo que la dotaci
on de sensores o GPS que precisaba el modelo
completo no sera necesaria, permitiendo controlar el sistema con los elementos de medida
de la IMU.
Las matriz de estados 4.10 contiene las ecuaciones que definen el modelo simplificado.

Estas provienen de la matriz de estados 4.1, de la cual se ha obtenido las ecuaciones propias
del submodelo M2. N
otese que se ha despreciado la inercia de los rotores (IR $ 0) al ser
particularmente peque
na.

x7

x8

x9
x =

x8 x9 I1 +

x7 x9 I2 +

x7 x8 I3 +

L
u

2
Ix

u
3

Iy
1
u
Iz 4

I1 + ILx u2

I
2 + L u3

Iy
3 + 1 u4
I
Iz

(4.10)

El diagrama 4.4 representa la estructura que tendr


a el modelo simplificado. De nuevo la
separacion de dos bloques no es necesaria pero se ha realizado de esta manera a fin de
asegurar la comprension del modelo, dado que el bloque conversor no pertenece realmente
al modelo matem
atico del sistema real.

81

Modelado y Control de un Cuadricoptero

Control del sistema

Figura 4.4: Diagrama del modelo simplificado


Conversor de mandos a entradas
Al igual que se realiz
o en el modelo completo, se ha incluido un bloque que convierte
las se
nales proporcionadas por los mandos en las entradas requeridas por el modelo. En
este caso el bloque se simplifica bastante con respecto al del modelo completo, dado que
se ha despreciado la inercia de los rotores, resultando la ecuaci
on 4.11.
0=

Km
(ui Km wi ) d wi2
Rm

(4.11)

Como se vera en la secci


on 4.3, el control proporciona u
nicamente los valores de U2,3,4
por lo que el valor de U1 debera ser proporcionado de forma externa. Esto se debe a que
no existe una referencia de la altura imposibilitando por lo tanto cerrar el lazo de realimentaci
on. Por lo tanto, se proporcionar
a un valor de U1 situado entre los valores maximo
y mnimo posibles de forma que se garantice el m
aximo margen de control. As pues, este
bloque tendra como entrada las tensiones de los motores (i ) y como salida los valores de
ui obtenidos a traves de la siguientes ecuaciones:
i

Km +

2 4 dRm u
Km
i
K
m

m
2 dR
K
m

u1 = b(12 + 22 + 32 + 42 )
u2 =
u3 =
u4 =

b(22
b(12
d(12 + 32

42 )
32 )
22

(4.12)

42 )

Bloque del modelo simplificado


Este bloque contiene en esencia la matriz de estados 4.10 que ya se mostr
o anteriormente. Para el modelo simplificado no se ha creado un bloque aparte representando la IMU,
dado que la u
nica medida que se necesita para cerrar el lazo en simulaci
on es la del giroscopo, y se obtiene directamente de las derivadas de los
angulos de Euler. Consecuentemente,
las entradas y salidas del bloque seran:

82

Modelado y Control de un Cuadricoptero

4.1.3.

Control del sistema

[x 4 , x 5 , x 6 , x 7 , x 8 , x 9 ]t

dx

= [x4 , x5 , x6 , x7 , x8 , x9 ]t ]

param

[L, Ix , Iy , Iz ]

[x4 , x5 , x6 ]

giroscopo =

[x7 , x8 , x9 ]

(4.13)

Modelo de un p
endulo invertido

Este modelo surge como una representacion matematica del conjunto cuadric
optero
-moto en el que se busca mantener la moto en equilibrio a traves del cuadricoptero ante perturbaciones externas. Este modelo, aparentemente completamente ajeno al de un
cuadricoptero en vuelo, permite representar la situacion en la que la nave se encuentra
en un banco de ensayos estando fijo uno de sus ejes (ver figura 2.21). Por lo tanto el
objetivo del control es la de buscar la posici
on de equilibro a traves de la regulacion de
un angulo de Euler u
nicamente, facilitando la obtencion de los parametros que definen
el control. En condiciones ideales (sin ruido alguno en el sistema), la obtencion de esos
parametros se realiza a traves de la simulaci
on pero al existir ruido, conviene calibrarlo
mediante ensayos. Como la nave es simetrica respecto del centro de la estructura, el control
del otro eje sera el mismo permitiendo dise
nar el control de los
angulos de alabeo y cabeceo.
El modelo constituye una simplificaci
on mayor que las anteriores de un cuadricoptero
en la que se estudia un u
nico angulo de Euler y, en consecuencia, solo permite obtener
el valor del
angulo controlado y su derivada de una forma mas sencilla. Ademas permite
probar la eficacia del control sin que la nave se eleve del terreno evitando posibles da
nos en
la estructura en caso de colision por un mal funcionamiento del sistema de regulacion. Asimismo, permite comprobar el correcto funcionamiento del sistema para unos determinados
lmites de saturacion fijados por las limitaciones fsicas de los actuadores. Igualmente, permite comprobar la validez de las transformaciones de las se
nales necesarias para aplicar a
los motores la tensi
on que genere la de fuerza empuje requerida por el control.
A continuacion se presenta la ecuacion 4.14 la cual define el comportamiento del pendulo que se ha representado en el diagrama 4.5, donde podemos obtener el
angulo asociado
tomando como entrada la diferencia de 2 entre los motores que afectan a .

Figura 4.5: Diagrama de fuerzas del pendulo invertido en estudio


83

Modelado y Control de un Cuadricoptero

Control del sistema

mgh sin b(12 32 ) = (Iy + mh2 )

(4.14)

Al igual que se hizo en el modelo simplificado, se definira un punto de trabajo que garantice
un buen margen de control de forma externa. As pues, si en ese punto de trabajo las helices
tienen una velocidad = c cuando se les aplica una tensi
on u = uc ,
1 = c +
2 = c

(4.15)

u1 = uc + u
u2 = uc u

Finalmente, haciendo uso de la ecuaci


on 4.11 y adaptandola para el caso de estudio se
obtiene la relaci
on entre y u representada en la ecuaci
on 4.16.

u =

Km
4c + 2 dR
m
Km
2 dR
m

Km
4c + 2 dR
m
Km
8c dR
m

(12 32 )

(4.16)

Obtenidas las ecuaciones necesarias para construir el modelo se procede a su programacion


siguiendo la estructura mostrada en el diagrama 4.6 donde se crea, de nuevo, un bloque
que representa el modelo propiamente dicho y otro que incluye la conversion de unidades.

Figura 4.6: Diagrama del modelo de un pendulo invertido


Conversor mandos a entradas
El conversor recibira como entradas las tensiones u1,3 correspondientes a los motores
1 y 3, a la vez que la tensi
on y velocidad de giro de las helices en el punto de trabajo,
generando a la salida la diferencia de omegas al cuadrado. Por tanto la ecuacion a usar es
la inversa a la ecuacion 4.16, quedando de la siguiente manera:
(12 32 ) =

Km
8c dR
m
2

Km
4c + 2 dR
m

84

(4.17)

Modelado y Control de un Cuadricoptero

Control del sistema

Modelo p
endulo
El pendulo se describe en esencia por la ecuaci
on 4.14 quedando definidas las entradas
y salidas del bloque de la siguiente forma:
dx

[,

[, ]

param = [L, m, g, h, b, d, Iy ]

y
=
[, ]

4.2.

(4.18)

Estimaci
on de estados

Como se mencion
o en la introducci
on, la funcion del estimador de estados es obtener
los valores de las variables de estado del control a partir de las medidas de otras variables.
Mas concretamente, en el caso que nos ocupa, se busca obtener los valores de los
angulos de
Euler a partir de las medidas de los giroscopos y los aceler
ometros acoplados al dispositivo.
En la secci
on 2.6 se hizo un estudio de los estimadores m
as comunes al igual que se
explicaron las ventajas e inconvenientes del uso de cada estimador. Dado que las medidas
contendr
an un nivel de ruido considerable, los estimadores mas recomendables son el filtro
complementario y el de Kalman. En este proyecto se ha optado por el filtro de Kalman
por poseer un algoritmo mas robusto de cara a las interferencias, siendo el filtro
optimo si
el ruido de medida es un ruido blanco gaussiano. Sin embargo, este filtro requiere de un
alto nivel de computacion y por tanto se hara uso de los cuaterniones para la obtencion
de las variables estimadas. De esta forma, se pretende aligerar la carga computacional del
conjunto ya que la capacidad de calculo del microcontrolador es limitada. As pues, el
filtro que se implantara sera el filtro multiplicativo extendido de Kalman descrito en la
seccion 2.6.2. A continuacion se describe el filtro dise
nado.

4.2.1.

Programaci
on del filtro de Kalman

El filtro de Kalman esta constituido por un complejo conjunto de ecuaciones que dificulta el entendimiento del sistema. En la secci
on 2.6.2 se hizo un estudio teorico del mismo y
por lo que a contiuacion s
olo se describir
a su funcionamiento y la forma de implementarlo.
El funcionamiento del filtro es el siguiente:
1.

Entran al bloque las medidas de los aceler


ometros y giroscopos en una muestra
k.

2.

Se corrige la matriz de ruido asociado a la medida con las se


nales obtenidas de
los aceler
ometros.
Se calcula la matriz de rotaci
on que es funci
on del cuaternion de posicion de la
muestra k-1.
Se rota el eje z fijo al cuerpo con la matriz recien calculada.
85

Modelado y Control de un Cuadricoptero

Control del sistema

Se calcula el vector de error en la posici


on a partir de las medidas de los acelerometros y el eje z rotado.
Se calcula la matriz de actualizaci
on de estados con la medida de los giroscopos.
3.

Se calcula la ganancia de Kalman a partir de la matriz R corregida y la matriz


P calculada en k-1.
Se actualiza el valor de la matriz P con la ganancia de Kalman
Se transforma el vector de error en la posici
on en un cuaternion de error y se
corrige el valor del cuaternion de posicion.

4.

Con la matriz de actualizaci


on de estados y la matriz P corregida se predice la
matriz P del estado siguiente.
Se calcula el nuevo cuaternion de posici
on a traves del cuaternion corregido del
punto anterior y la medida del giroscopo.
Se realimenta la matriz P y el cuaternion de posici
on.
Se extrae el cuaternion de posicion y se obtienen los
angulos de euler en el
instante k.

El punto 3 anteriormente comentado correspondera a la fase de correcion del filtro de


Kalman, al igual que el punto 4 correspondera a la de prediccion. Como se puede observar, el proceso es complejo por lo que, a fin de lograr un mayor entendimiento del sistema
programado, se ha optado por la distribucion que se muestra en el diagrama de la figu
ra 4.7 donde se pueden observar tres bloques principales. Estos
se analizaran en mayor
profundidad a continuacion.

Figura 4.7: Diagrama de funcionamiento del filtro de Kalman dise


nado
86

Modelado y Control de un Cuadricoptero

Control del sistema

C
alculos Previos
Este bloque recoge los calculos necesarios para el funcionamiento del filtro pero que
no son parte de ninguna de las fases caractersticas de un filtro de Kalman tradicional.
El primer calculo que se realiza hace uso de la matriz de ruido asociada a la medida, la
cual debe ser estimada de forma externa al filtro, y de las medidas de los aceler
ometros.
Esta correccion es consecuencia de las aceleraciones lineales, angulares y de Coriolis que
los aceler
ometros miden, ademas de la de la gravedad, cuando no se encuentra en vuelo
estacionario. Para evitar la degradacion del vector gravitatorio observado, se desactiva la
actualizacion de la medida si esta supera un determinado umbral, accion realizada a traves
de la siguiente ecuaci
on:
R = R[1 + k(1 ||g||2 )]

(4.19)

Donde k es un vector ajustable y g es la medida del aceler


ometro. As pues, cuando la
nave se encuentra en modo de vuelo estacionario, el m
odulo de la medida del aceler
ometro
debera ser pr
oxima a la unidad y por tanto no se aplicar
a correccion.
En este bloque calcularemos tambien el vector que contiene los errores en la posici
on,
es decir la diferencia entre la posici
on deseada y la actual. Para ello calcularemos la matriz
de rotaci
on que es funci
on de las componentes del cuaternion de posicion y procederemos
a rotar el eje z fijo al cuerpo.

e21 + e22 e23 e24

R=
2(e2 e3 e4 e1 )

2(e2 e4 + e3 e1 )

2(e2 e3 + e4 e1 )
e21 e22 + e23 e24
2(e3 e4 e2 e1 )
Zb =

Rzi
||Rzi ||

2(e2 e4 e3 e1 )

2(e3 e4 + e2 e1 )

2
2
2
2
e 1 e2 e3 + e4

(4.20)

(4.21)

Obtenida la direccion del eje z fijo al cuerpo se aplica una correccion a la medida tanto en
fase como en modulo, obteniendo el vector de error en la posicion.
EeA =

(g)
||g||

Zb

g
Zb )
eA = cos1 ( ||g||

(4.22)

Ae = EeA eA
Finalmente se calcula la matriz de actualizaci
on de estados (F) que es funci
on de las
medidas obtenidas del giroscopo. Es importante remarcar que este filtro no estima el bias
propio de estos elementos de medida y por tanto se ha de estimar y eliminar anteriormente.

0
z y

F =
(4.23)
0
x
z

y x
0
87

Modelado y Control de un Cuadricoptero

Control del sistema

Como se puede observar todos estos calculos son dinamicos, es decir, se realizan en
cada iteracion dando una idea al lector del gasto computacional necesario. La reduccion
del volumen de operaciones de los cuaterniones esta camuflada dentro de la matriz de
rotaci
on del eje Z del cuerpo. De no usarlos, esa matriz estara constituida por elementos
trigonometricos y por tanto, por la propia naturaleza de esas funciones, aumentara el
tiempo de calculo. Los detalles, por ser propiedades matematicas ajenas al proyecto, se
dejan al lector.
Fase a priori o de correcci
on
Esta fase o conjunto de operaciones corrige la prediccion que anteriormente se hizo
de este estado y se lleva a cabo en tres etapas. Primero se calcula una nueva martiz de
ganancia de Kalman a traves de la ecuaci
on 4.24 donde la matriz H es igual a la matriz
identidad de orden 3 dado que el vector de error en la posici
on se forma a traves de las
medidas de los sensores y no del sistema.
K = P H T (R + HP H T )1

(4.24)

Calculada la ganancia de Kalman se procede a corregir la matriz P que se predijo en el


estado anterior a traves de la ecuaci
on 4.25, donde de nuevo H = I3x3 .
P + = (I KHP )

(4.25)

Las siguientes operaciones corrigen el cuaternion de posicion que se estim


o anteriormente a
traves del vector del error en la posicion. Sin embargo, no se puede corregir un cuaternion
con un vector directamente, pues son de dimensiones distintas, por lo que se proceder
a primero a corregir el vector del error en la posici
on transformandolo posteriormente en un
cuaternion que finalmente se usara para corregir el anteriormente estimado cuaternion de
posicion. Las ecuaciones 4.26 reflejan matem
aticamente lo explicado con palabras.
Ae + = 0 + K[(Ae )]

e(Ae

cos( |a2e | )

aex sen( |ae | )


|ae |
2
) = aey

sen( |ae | )
2
|ae |
|ae |
aez
|ae | sen( 2 )

e+ = e(Ae + )

88

(4.26)

Modelado y Control de un Cuadricoptero

Control del sistema

Fase a posteriori o de predicci


on
Como el propio nombre indica, en esta fase se predice el valor del cuaternion e y el de
la matriz P para el estado siguiente, labor que se hace a partir de elementos obtenidos en
la fase de correccion, como se muestra en el siguiente conjunto de ecuaciones:
P (k + 1) = P + Ts (F (k)P (k) + P (k)F (k)T + Q)
0
1
2
0
e(k + 1) =
e(k) + T2s
e(k)
(k)

(4.27)

Donde Q es la matriz de covarianzas asociada al ruido del proceso.


Como muestra el diagrama 4.7, estos valores de P y e se realimentan a los dos bloques
anteriores cerrando el lazo y permitendo obtener el cuaternion de posici
on que define al
cuadricoptero y, en consecuencia, los
angulos de Euler.

4.2.2.

Estimaci
on de las matrices de covarianza

En las ecuaciones anteriores se ha hecho mencion a dos matrices de covarianzas que


han de ser estimadas de forma externa, la matriz de covarianza del ruido asociada a la
medida R y del ruido asociado al proceso Q. Estas matrices son bastante importantes para
obtener una buena estimacion, pues haran la labor de filtrado de forma que se obtenga
una estimacion tan limpia como sea posible.
Para obtener una buena estimacion de estas matrices, es necesario tener informacion
sobre el ruido que se va a presentar tanto en la medida como en el proceso, informacion
que no siempre esta presente. En el caso que nos ocupa, no tenemos manera de medir el
ruido asociado al proceso aunque es de suponer que sea peque
no. Cuando hablamos de
ruido de proceso, nos referimos al ruido que se puede introducir en el lazo de control desde
el calculo del error hasta los actuadores, donde suele ser mas com
un su presencia (por
ejemplo en los reguladores electr
onicos de velocidad). Como no tenemos forma de medirlo,
asumiremos que es peque
no y estimaremos una matriz Q con unos pesos peque
nos. Afortunadamente, no ocurre lo mismo para el ruido de la medida, pues s tenemos opcion de
medirlo a traves de la simulaci
on. Para la obtencion de esta matriz, se medir
a el ruido que
incluye la medida de los aceler
ometros mientras se mantiene el cuadricoptero fijo en una
posicion. Consecuentemente, todo valor alejado del punto de estabilidad [0, 0, 9,8]t [ sm2 ] es
consecuencia del ruido. Procesando esa se
nal obtendremos una matriz que refleje, de forma
relativamente precisa, la realidad.
La figura 4.8 muestra el ruido que incorporan las medidas de los aceler
ometros cuando
la nave se encuentra en el punto de trabajo.

89

Modelado y Control de un Cuadricoptero

Control del sistema

Ruido en los acelermetros


12
Eje X
Eje Y
Eje z

10

Aceleraciones (m/s2

2

0.1

0.2

0.3

0.4

0.5

Tiempo (s)

Figura 4.8: Ruido en la medida del aceler


ometro
La presencia de interferencias es relativamente alta (especialmente a altas revoluciones
en las helices) y puede llegar a afectar significativamente a la estimacion, por lo que es
importante estimar la matriz R de la forma mas precisa posible. Realizando los c
alculos
apropiados se obtienen las siguientes matrices de covarianza.

10 0 0
0,7772 0,0226 0,0862

0,0226 0,6491
Q =
R
=
0
10
0
0,003

0 0 10
0,0862
0,003
0,4048

4.3.

(4.28)

Control

Llamamos control del sistema al conjunto de ecuaciones que modifican las se


nales de
entrada del sistema para obtener una salida deseada. Este conjunto de ecuaciones son
especficas para cada planta a controlar y generalmente se suelen representar a traves de
funciones de transferencia en tiempo continuo o discreto. Es muy com
un en los sistemas de
control hacer uso de la realimentacion de la salida del sistema para posteriormente llevarlo
a un punto de equilibrio. Estos sistemas, llamados de lazo cerrado, tienen el problema de
que necesitan muestrear la salida y por tanto es necesario muestrearla, pues la obtencion
continua de datos (periodo de muestreo muy peque
no tendiendo a cero) puede no ser
posible dado que requiere una excesiva capacidad de calculo. Cuando el sistema de control
esta instalado en ordenadores, dado su gran poder de calculo y su continuo suministro de
potencia, se pueden usar periodos de muestreo muy peque
nos permitiendo usar la teora de
regulacion automatica en tiempo continuo. Cuando no es posible se ha de usar un periodo
de muestreo adecuado para la aplicacion a regular y se hace uso de sistemas de control en
tiempo discreto.

90

Modelado y Control de un Cuadricoptero

Control del sistema

El estudio del efecto del periodo de muestreo es particularmente importante pues, en


ocasiones, la elecci
on de un periodo de muestreo peque
no no garantiza una mejora con
respecto a periodos mayores y s permite aligerar tanto la carga computacional como el
consumo del dispositivo.
En la actualidad existe un gran n
umero de controles a la vez que tecnicas para su dise
no.
Sin embargo todas requieren de un modelo matem
atico del sistema a controlar, tarea
que se realiz
o en la secci
on 4.1, pues cada planta requiere de un control especficamente
dise
nado para ella. Generalmente, se suele representar la planta a traves de una funci
on
de transferencia en tiempo continuo, pues facilita en gran medida la tarea al poder usarse
herramientas de respuesta en frecuencia y temporal en el dise
no. En la secci
on 4.1 se
obtuvieron las ecuaciones que describen el comportamiento del sistema fsico, pero no se
obtuvieron las funciones de transferencia correspondientes. A continuacion se proceder
aa
su obtencion y posteriormente se proseguira con el dise
no de los controladores.

4.3.1.

Obtenci
on de las funciones de transferencia para el control

La figura 4.10 que se muestra en la siguiente secci


on representa el control del modelo
completo. En ella se han marcado tres zonas con distintos colores, delimitando los bloques
correspondientes a cada control parcial. Dado que el modelo simplificado es una reduccion
del sistema completo, las funciones de transferencia obtenidas para el control del modelo
completo seran igualmente validas en el simplificado. Por desgracia, el modelo de pendulo
invertido no comparte las mismas ecuaciones y por tanto habra que deducir una nueva
funcion de transferencia para el mismo. As pues, se necesitara un total de ocho funciones
de trasferencia, siete de ellas para los modelos completo y simplificado y una para el del
pendulo.
Funciones de transferencia para el control de la posici
on (
angulos de Euler)
Para la obtencion de estas funciones de transferencia se ha despreciado de nuevo la
inercia de los motores (IR = 0) como se hizo en la secci
on 4.1.2. El desarrollo matematico
de la funciones de transferencia se efectuara para un u
nico
angulo y posteriormente se
extendera a los demas, dado que el desarrollo es el mismo salvo por el uso de algunos
parametros.
Partiendo de las ecuaciones 4.10 y centrandonos en la ecuacion para el
angulo ,
realizamos una linealizacion por realimentacion, es decir modificamos la variable de entrada
para obtener una ecuacion lineal.
1+
= I

L
Ix U 2

(4.29)
,
)
+ U
U2 = f (,
2
91

Modelado y Control de un Cuadricoptero

Control del sistema

Donde para conseguir una ecuacion lineal y obtener, por tanto, una funci
on de transferencia
que relacione con U se define la funcion:
Ix
1)
(K2 I
L

,
)
=
f (,

(4.30)

Sustituyendola en las ecuaciones 4.29 se obtiene la ecuacion 4.31 a partir de la cual,


aplicando la transformada de Laplace y reagrupando terminos, obtenemos la funci
on de
transferencia en cuestion.
= K2 +
(s2 K2 s) =

L
Ix U 2

L
Ix U 2

P (s) =

L
Ix

s(sK2 )

K2 < 0

(4.31)

Para el c
alculo de las funciones de transferencia correspondientes a los otros
angulos solo

se han de realizar unas peque


nas modificaciones en los parametros de la misma. Estas
se
han recogido en la siguiente tabla:
P (s)

P (s)

L
Ix

L
Iy

s(sK2 )

s(sK3 )

P (s)
1
Iz

s(sK4 )

Tabla 4.1: Funciones de transferencia para el control de la posici


on
K2,3,4 son unas constantes que garantizan que la funci
on de transferencia sea asintoticamente estable en un entorno del punto de equilibrio y han de ser escogidas negativas seg
un
el criterio de estabilidad de Lyapunov. Los detalles se pueden encontrar en [18].
Funciones de transferencia para la traslaci
on del dispositivo
Estas funciones de transferencia se obtienen a partir de las ecuaciones 4.7 las cuales
relacionan los
angulos de Euler con las aceleraciones lineales. En este caso, asumiremos
que d = 0, suposici
on que resulta razonable pues el
angulo de gui
nada no afecta a la
traslacion del dispositivo en ninguna direccion. Consecuentemente, las ecuaciones quedan
reducidas a:
x
=

(cos sin ) U1 /m

y =

(sin ) U1 /m

(4.32)

z = g (cos cos ) U1 /m
Aplicando de nuevo una linealizaci
on por realimentacion, para Ui igual a los valores mostrados en 4.33, se obtiene una relaci
on lineal entre x
y Ui , siendo la funci
on de

transferencia que relaciona Vi con Ui la funcion de transferencia 4.34. Notar que las tres
velocidades comparten la misma funci
on.
U 1 = (cos sin ) U1 /m
U 2 =
(sin ) U1 /m
U 3 = g (cos cos ) U1 /m
sx = U1 Pvi (s) =
92

1
s

(4.33)

(4.34)

Modelado y Control de un Cuadricoptero

Control del sistema

A continuacion se presenta la tabla donde se incluyen las tres funciones de transferencia


asociadas a la traslacion, que resultan ser las mismas.
PVx (s)

PVy (s)

PVz (s)

1
s

1
s

1
s

Tabla 4.2: Funciones de transferencia para la traslacion del dispositivo


Funci
on de transferencia para la altitud
Generalmente no se suele tener una medida de la velocidad vertical de la nave puesto
que los dispositivos de medida com
unmente instalados suelen proporcionar la altitud del
mismo. Por tanto la funcion de transferencia que describe la relaci
on Vz con Uz ha de
ser modificada ligeramente. Si suponemos un control proporcional para Vz , se obtiene la
siguiente funcion de transferencia en lazo cerrado:
Fvz (s) =
Sabiendo que z =

Vz dz z =

Fvz (s)
s ,

Fz (s) =

1
s+1

con =

1
Kp

(4.35)

resultando en la funci
on de trasferencia 4.36

1
s( s+1)

con =

1
Kp

(4.36)

Funci
on de transferencia para el p
endulo
La obtencion de esta funci
on de transferencia es bastante trivial y parte de la ecuaci
on
4.14, sobre la que se aplicar
a la simplificaci
on sin() $ , simplificaci
on valida para
peque
nos, resultando en la funci
on de transferencia 4.37.
P (s) =

4.3.2.

b
Iy +mh2
s2 Iymgh
+mh2

(4.37)

Control para el modelo completo

Con este controlador se busca que el sistema sea capaz de seguir como referencia
las velocidades lineales deseadas de la nave, es decir, que si se le indica que avance en
una direccion, el sistema sea capaz de hacerlo de la mejor forma posible. El sistema en
su conjunto tiene una estructura como la mostrada en la figura 4.9, la cual facilita la
identificacion de bloques anteriormente descritos as como el entendimiento del conjunto.

93

Modelado y Control de un Cuadricoptero

Control del sistema

Figura 4.9: Esquema general del sistema


En el diagrama de bloques se puede observar como las referencias, velocidades lineales y
altura deseadas, entran al bloque de control al igual que las medidas obtenidas a traves

del filtro de Kalman. Este


calcula los
angulos de Euler a traves de las medidas de los
giroscopos y los aceler
ometros, los cuales, unidos a las medidas de las velocidades lineales
(y la altura del dispositivo), sirven para gestionar el control del sistema. Con ese conjunto
de se
nales, el control calcula el mando que se aplica al modelo matematico del sistema. la
ejecucion continua de este bucle permite simular el comportamiento deseado.
El control a dise
nar es relativamente complejo tal y como se muestra en la figura 4.10
donde se presenta el esquema general del control que se ha implantado.

Figura 4.10: Esquema del sistema con el modelo completo


El diagrama de bloques esta compuesto por tres controles parciales delimitados en la figura a traves de rect
angulos de distintos colores. A traves de las funciones de transferencia
94

Modelado y Control de un Cuadricoptero

Control del sistema

obtenidas en la seccion anterior y haciendo uso de controles PID, se ha dise


nado este sistema de control as como los parametros que lo caracterizan. Se han utilizado controles
del tipo PID por su simplicidad en la implantacion y dise
no. Sin embargo, otros controles
podran haber sido implementados con igual o incluso mejor rendimiento para este modelo
en concreto. En la siguiente secci
on, donde se trabajara con el modelo simplificado, si se
hara uso de controles m
as sofisticados que los presentados aqu.
Volviendo de nuevo al controlador bajo estudio, como se ha mencionado anteriormente,
podemos distinguir tres controles parciales.
1. Controles proporcionales integrales con ponderaci
on a las referencias para
regular la altura y las velocidades en los ejes x e y (rectangulo rojo en la figura 4.10).
La accion proporcional permite fijar un margen de fase concreto que garantice una
buena respuesta del sistema y un determinado grado de robustez en el dise
no (generalmente 45o < m < 60o ). Por otra parte la accion integral surge ante la necesidad
de eliminar cualquier error en regimen permanente, por lo que su inexistencia podra
suponer un problema en esta aplicacion. La planta usada para este control (y por
inspeccion las demas) contienen integraciones, y por tanto, se anularan los errores
en regimen permanente en la respuesta al escal
on. Desafortunademente, no ocurre
lo mismo con los errores introducidos por escalones en perturbaci
on, pues precisan
de una integraci
on en el control para su eliminaci
on. En consecuencia, el uso de la
accion integral es importante. Sin embargo, la accion integral tiende a ralentizar la
respuesta del sistema y, dado que en esta aplicacion las respuestas deben ser rapidas,
este efecto de ralentizaci
on se debe compensar con una ponderacion a la referencia.
Este control de dos grados de libertad permite ajustar mejor la respuesta temporal
del sistema a la vez que se incluye ese efecto integral. Se podra pensar en a
nadir
una accion derivativa en vez de la ponderacion, pero tiende a amplificar el ruido en
el mando y, dada la presencia de altos niveles de ruido en nuestro sistema, el uso de
esta accion podra empeorar la repuesta, incluso pudiendo llegar a hacer el sistema
inestable.

En la figura 4.11 se representa el esquema del control implementado. Notar que el


control se encuentra dise
nado en tiempo discreto tal y como se puede observar por la
integracion presente. La discretizacion del control se realiza mediante la transformacion bilineal o de Tustin y tiene la particularidad de que la respuesta en frecuencia
del sistema en tiempo continuo es muy similar, pudiendo llegar a ser identica, a la
de tiempo discreto. Ello tiene la ventaja de que, si se ha realizado el dise
no por
respuesta en frecuencia en tiempo continuo, el sistema mantendr
a el mismo margen
de fase fijado en tiempo discreto.

95

Modelado y Control de un Cuadricoptero

Control del sistema

Figura 4.11: Esquema del control PI con ponderacion de la referencia


Para el ajuste de los parametros propios de este control, se ha calculado la funci
on
de trasferencia en lazo cerrado del sistema y, por identificacion de terminos en el
denominador de esta, fijando el amortiguamiento y la pulsacion natural de la respuesta, se han obtenido los valores de las constantes caractersticas del control y se
han recogido en la tabla 4.3. Existen otros metodos de ajuste de parametros, como
el de respuesta en frecuencia, igual de v
alidos al utilizado aqu. Sin embargo, este
tiene una propiedad particular y es que al trabajar con la funci
on de transferencia
del lazo cerrado y no con la del lazo abierto, se evitan comportamientos peculiares
o inesperados al realimentar el dise
no realizado con el lazo abierto.
Variable

Ti

Vx

0.75

Vy

0.75

0,7

0,9524

0.898

2,97

0.5051

Tabla 4.3: Parametros de los controles PI con ponderacion de la referencia


2. Control proporcional para regular la velocidad en el eje z (rectangulo azul en la
figura 4.10). En este caso solo es necesaria una u
nica accion proporcional pues la
accion integral ya se ha incluido en el control de la altura de la nave explicado en
el punto anterior. Consecuentemente no es necesario hacer uso de la ponderacion en
la referencia resultando el control en el esquema simple que se muestra en la figura
4.12, donde Kvz = 2.

Figura 4.12: Esquema del control Proporcional

96

Modelado y Control de un Cuadricoptero

Control del sistema

3. Controles proporcionales derivativos para controlar los


angulos de Euler (rect
angulo verde en la figura 4.10). El u
ltimo de los controles parciales hace uso de nuevo
de una accion proporcional para fijar el margen de fase deseado pero, a diferencia
del control de velocidad, no incorpora la integracion. Esto se debe a que el error
en regimen permanente suele venir dado por errores en las medidas pero, como las
referencias para el control de los
angulos de Euler se obtienen del control de las velocidades las cuales ya incluyen una integracion, ese error sera cancelado por dicha
accion integral. Se ha a
nadido la accion derivativa para acelerar la respuesta del
sistema pues, como se vio en la seccion 2.5.2, la regulacion de los
angulos de Euler
ha de ser lo suficientemente rapida como para garantizar el correcto funcionamiento
del conjunto. Ademas, como el ruido de medida en esta parte del lazo es practicamente nulo no hay riesgo de amplificacion del mismo y por tanto su uso es altamente
recomendable, especialmente si tenemos en cuenta que las derivadas de los
angulos
de Euler las obtenemos de forma directa de los giroscopos. La figura 4.13 muestra el
esquema del control implementado.

Figura 4.13: Esquema del control PD para la regulacion de los


angulos de Euler
El ajuste de los parametros se ha realizado por el mismo procedimiento que en los
controles de velocidad, resultando en los valores que se muestran en la tabla 4.4.
Variable

Td

0.4939

0,4

0.5748

0,4

-0.0251

0,4

Tabla 4.4: Parametros de los controles PD


Descritos ya los tres controles parciales presentes en el algoritmo de control del modelo
completo, solo queda describir la funci
on del bloque que aparece en la figura 4.10 separando el control de velocidad del control de los
angulos. No se debe olvidar que para la
obtencion de las funciones de transferencia se ha realizado, a traves del procedimiento
denominado linealizaci
on por realimentacion, unos cambios de variables dando lugar a
ecuaciones lineales funci
on de una nueva variable Ui . Por tanto es necesario realizar la
transformaci
on inversa, especialmente si otros bloques ajenos al cambio de variable precisan de estas se
nales. En consecuencia, ese bloque realiza la labor de conversion entre Ui
y [U1 , d , d ], e incluye las ecuaciones 4.38.
97

Modelado y Control de un Cuadricoptero

m(gU3 )
cos d cos d

U1 =
d = arctan(
d

4.3.3.

Control del sistema

m(sin d U1 cos d U2 ) cos d


)
m(gU3 )

arctan(

(4.38)

m(cos d U1 +sin d U2 )
)
m(gU3 )

Control para el modelo simplificado

Con este control se pretender regular el sistema tomando como referencias los
angulos
de Euler, es decir, el piloto indicara cuanto y en que direccion quiere que gire la nave para
obtener el desplazamiento deseado. El diagrama del sistema se ve ligeramente modificado
con respecto al completo como se aprecia en la figura 4.14 .

Figura 4.14: Esquema del sistema con el modelo simplificado


Como era de esperar, al no regular los desplazamientos lineales del dispositivo, no es necesario obtener las medidas de estos y, por tanto, solo se realimentan los
angulos de Euler.
En esencia, esa es la principal diferencia puesto que en los demas el proceso sera igual
sustituyendo, obviamente, los bloques de control y modelo por los apropiados.
En este caso ya tenemos las funciones de transferencia del modelo pues se obtuvieron
anteriormente en la secci
on 4.3.1 por lo que haremos uso de ellas. Al verse reducida la
dificultad del control, pues el modelo a regular es m
as sencillo, se pueden optar por algoritmos de control m
as sofisticados tanto con fines educativos como de eficiencia en la
regulacion. En este proyecto se han dise
nado los siguientes controles:

98

Modelado y Control de un Cuadricoptero

Control del sistema

Control PID con ponderaci


on de la referencia
Con el dise
no de este control se buscar regular el sistema a traves de las acciones
proporcional, integral y derivativa que el algoritmo incorpora. En esencia, los controles
PD dise
nados en la seccion 4.3.2 para la regulacion de los
angulos de Euler seran validos
para regular un sistema descrito por el modelo simplificado. Se le ha a
nadido la accion
integral porque en este caso las referencias,
angulos de euler, proceden directamente de
las medidas y no de un lazo de control exterior, como era el caso del modelo completo. En
consecuencia, los errores en regimen permanente ante perturbaciones en carga no seran
cancelados y para la aplicacion para la cual se dise
na este control, conviene eliminarlo.
Otra consecuencia de recibir los
angulos como medidas es que estos pueden contener ruido
y por tanto la accion derivativa podra afectar al dise
no. Suele incluirse en esa accion un
factor de filtrado de forma que el sistema derive a bajas frecuencias y se anule para las
altas (dado que el ruido es de alta frecuencia). Sin embargo, cuanto mayor es el factor de
filtrado, menor es la velocidad de respuesta. Por eso se ha hecho uso de nuevo de la ponderaci
on en la referencia, tratandose de una soluci
on de compromiso entre una respuesta
lo mas r
apida posible pero sin amplificar el ruido en el mando.
En este caso, el dise
no de los parametros del control se ha realizado por un metodo
distinto al usado en la seccion anterior, de forma que se exploren y se describan distintos
metodos de ajuste. El metodo usado es de repuesta en frecuencia sobre el modelo analogico
modificado (para tener en cuenta el efecto del periodo de muestreo), en el cual se fijan de
inicio una serie de variables en funci
on de la respuesta en frecuencia de la planta a regular
que en nuestro caso son las que se muestran en la diagrama de Nichols de la izquierda en
la figura 4.15. Como comentario sobre su respuesta, podemos observar que todas tienen
la misma forma pero se diferencian en el punto en que cortan el eje de 0 dB. Esto se
debe a variaciones en la ganancia estatica entre las plantas, las cuales eran funcion de los
momentos de inercia del dispositivo que, obviamente, no son iguales. La forma se conserva
puesto que tienen los mismos polos. Las variables fijadas para la obtencion del PID son:
1. Margen de fase: m = 80o
2. Desfase de la accion integral: P I = 100
3. Pulsacion de corte: 0 = 50rad/s
4. Factor de filtrado: f = 0
5. Constantes K2,3,4 propias de P(s): K = 50
6. Periodo de muestreo: T s = 2ms
Se han fijado estos parametros para los tres
angulos a fin de que tengan la misma respuesta.
Parece sensato que todas las respuestas tengan la misma rapidez y sobrepaso, pues en caso
contrario podran generarse efectos desestabilizantes. Los parametros restantes se obtienen
99

Modelado y Control de un Cuadricoptero

Control del sistema

a traves de las f
ormulas de dise
no de este tipo de controles para su configuracion en
paralelo, quedando recogidos en la tabla 4.5. A fin de reforzar la igualdad de las respuestas
as como la comprobacion de los parametros de dise
no, se ha incluido la respuesta en
frecuencia del lazo abierto representada a traves del diagrama de Nicholds de la derecha
de la figura 4.15. En esta se observa que el margen de fase coincide con el fijado al igual
que la frecuencia de corte, y que el margen de ganancia es de 29.4 dB, valor que es superior
al lmite de 6 dB recomendado en la bibliografa. En la secci
on 6 se proceder
a a un estudio
mas detallado del control.

Nichols Chart

Nichols Chart

40

20

Gphi
Gtheta
Gpsi
System: Gpsi
Phase Margin (deg): 74.6
Delay Margin (sec): 0.0946
At frequency (rad/s): 13.8
Closed loop stable? Yes

System: Gtheta
Phase Margin (deg): 86.8
Delay Margin (sec): 0.541
At frequency (rad/s): 2.8
Closed loop stable? Yes

Gphi
Gtheta
Gpsi

System: Gpsi
Phase Margin (deg): 80
Delay Margin (sec): 0.0279
At frequency (rad/s): 50
Closed loop stable? Yes

5

OpenLoop Gain (dB)

OpenLoop Gain (dB)

20

40

10

15

20
60
25
System: Gpsi
Gain Margin (dB): 29.4
At frequency (rad/s): 1.53e+03
Closed loop stable? Yes

80

30
100
180

150
120
OpenLoop Phase (deg)

90

225

180
135
OpenLoop Phase (deg)

90

45

Figura 4.15: Respuesta en frecuencia de las plantas (izq) y repuesta en frecuencia del lazo
abierto (drcha)
Variable

Ti

Td

19,85

0,1356

0.0185

0.767

19,9

0,1356

0.0185

0.767

3,93

0,1356

0.0185

0.767

Tabla 4.5: Parametros de los controles PID con ponderacion de la referencia para el modelo
simplificado
A la luz de los resultados de la tabla 4.5 se confirma que, como comparten los mismos
polos, las acciones integrales y derivativas tienen las mismas ganancias mientras que la
parte proporcional es la que es diferente, con el fin de ajustar la repuesta de cada una
para que coincidan. Es importante remarcar que los parametros mostrados en la tabla 4.5
seran ligeramente modificados en la seccion 4.3.5 debido a que los mandos son superiores
a los maximos fijados por el sistema fsico.

100

Modelado y Control de un Cuadricoptero

Control del sistema

Control PID incremental con ponderaci


on de la referencia
Este tipo de control es una modificacion del PID dise
nado anteriormente en el cual no
se trabaja con valores absolutos sino con incrementos. La principal ventaja es que permite
limitar esos incrementos para evitar cambios muy bruscos en las respuestas del sistema.
El tema de las saturaciones sera tratado en la secci
on 4.3.5 donde se analiza la necesidad
de limitar las acciones del mando y se obtienen los valores lmite o de saturacion para
el sistema a controlar. En esta secci
on se describira el funcionamiento del control cuyo
diagrama de bloques se presenta en la figura 4.16.

Figura 4.16: Diagrama del PID incremental con ponderacion de la referencia)


Este control presenta una estructura muy similar a la de un control PID con ponderacion de la referencia en su configuracion paralelo, como se puede ver en el diagrama
anterior. De nuevo se usaran las medidas de los giroscopos como parte de la accion derivativa del control. Es importante destacar que el ruido de medida, de existir, entrara
directamente al sistema de control pero como los giroscopos no suelen generar ruido de
alta frecuencia sino que tienen un bias, que es estimado y eliminado de la medida, no
debera existir problema alguno en su uso.
Volviendo al esquema de control integral, podemos apreciar unos retardos en casi todas
las ramas del regulador. Estos retardos permiten restar al valor actual de la se
nal el valor
de la muestra anterior, generando por tanto se
nales incrementales que se operan como
si de un valor absoluto se tratase hasta llegar al acumulador. Llamamos acumulador a la
parte final del esquema 4.16 donde se suma el valor de la muestra anterior a la actual. Esto
es una pseudointegral que permite devolver a la se
nal de mando su caracter absoluto para
su posterior aplicacion a la planta. Tambien podemos observar en el diagrama dos bloques
de saturacion presentes en el control. El primero de ellos limita la accion incremental, es
decir, cuanto puede cambiar el control entre dos muestras consecutivas, mientras que el
segundo saturador limita los valores absolutos del mando. La posibilidad de limitar ambos
101

Modelado y Control de un Cuadricoptero

Control del sistema

valores (en esencia la se


nal y su derivada) otorga una mejor regulacion al sistema pudiendo
facilicitar la estabilizacion de sistemas altamente inestables siempre y cuando los limites
esten adecuadamente definidos
Los parametros del control son los mismos que los de la secci
on anterior recogidos en
la tabla 4.5 y corregidos para cumplir los lmites de saturacion en la tabla de la secci
on
4.3.5.
Control por realimentaci
on de estados
Este procedimiento de dise
no de controladores difiere de los anteriormente presentados
pues lo que se busca es modificar los polos del sistema para obtener la respuesta deseada.
Para lograrlo se calcula una matriz de ganancia K, con el fin de seleccionar adecuadamente
los nuevos polos para el sistema en lazo cerrado, y se realimenta el sistema como se muestra
en el esquema 4.17. Este esquema incluye a su vez una accion integral para la eliminacion
del error en regimen permanente, accion que se lleva a cabo a traves del integrador que
se sit
ua al principio del diagrama. Notar que la accion integral usa la diferencia entre la
referencia y la salida, mientras que el control usa las variables de estados. La mencionada
accion incorpora una ganancia (Ki ) que permite ajustar la ligeramente respuesta deseada,
aumentando o disminuyendo el tiempo de respuesta del sistema ante un escalon.

Figura 4.17: Diagrama del control por realimentacion de estados


Este tipo de control es mas com
un en sistemas descritos en forma de matrices de estado
que a traves de funciones de transferencia y por eso se han representado las matrices A,B,C
y D propias de ese tipo de notaci
on. El control recibe el nombre de control por realimentacion de estados porque las variables de estado son, obviamente, realimentadas a la vez que
son multiplicadas por una ganancia K para generar el mando. Este tipo de controles tienen
la ventaja de que hacen uso de toda la informacion del sistema para calcular el mando y
ademas no usa derivadores sino acciones proporcionales. Sin embargo tienen la desventaja
de que necesita siempre la medida de las variables de estado para su funcionamiento por
lo que no es raro encontrar observadores o estimadores de estados asociados a este tipo de
102

Modelado y Control de un Cuadricoptero

Control del sistema

control. Tambien tienen el inconveniente de que no todos los sistemas pueden controlarse
en todas sus variables. Es necesario realizar, por tanto, un estudio de controlabilidad (y
observabilidad para el dise
no de los estimadores de estado) con el fin de garantizar un
control adecuado.
En el caso del modelo simplificado s tenemos acceso a las variables de estado (angulos
de Euler obtenidos a traves del filtro de Kalman) y sus (gir
oscopos) por lo que este sistema
de control parece factible. As pues, partiendo de un diagrama de polos y ceros en tiempo
discreto de las plantas, se ha calculado una matriz de ganancia que permite modificar la
posicion de los polos para obtener una mejor respuesta. La figura 4.18 muestra el lugar de
las races original para la planta (en azul) asociada al
angulo y, superpuesta, el nuevo
lugar de las races de lazo cerrado con realimentacion de estados (en verde).
Root Locus
1.5

Imaginary Axis

1
System: untitled2
Gain: 0
Pole: 0.9 + 0.08i
Damping: 0.753
Overshoot (%): 2.75
Frequency (rad/s): 66

0.5

0.5

1

1.5
2

1.5

1

0.5
0
Real Axis

0.5

1.5

Figura 4.18: Lugar de las races de la planta y del sistema con realimentacion de estado
Los valores representativos para este control as como los valores de los polos antes y
despues del control se han recogido en la tabla 4.6. No es sorprendente ver que las tres
funciones de transferencia de las plantas tienen los mismos valores ya que, como se menciono anteriormente, tienen los mismos polos en lazo abierto. Para obtener los polos transformados, se fijo un amortiguamiento de 0.75 y posteriormente se redondearon los valores
de los polos.
Variable

Polos iniciales

Polos finales

Ki

[0,903, 1]

[0,9 + 0,08j, 0,9 0,08j]

0.753

[24.4589,0.3472]

1050

[0,903, 1]

[0,9 + 0,08j, 0,9 0,08j]

0.753

[29.5341,3.4481]

1050

[0,903, 1]

[0,9 + 0,08j, 0,9 0,08j]

0.753

[5.7941,0.0683]

1050

Tabla 4.6: Parametros del control por realimentacion de estado en el modelo simplificado
Consecuentemente, la matriz de realimentaci
on de estados para el sistema en su conjunto
4.39 se formara a partir de las matrices mostradas en la tabla 4.6 para cada
angulo,
103

Modelado y Control de un Cuadricoptero

Control del sistema

ordenadas de la forma adecuada para respetar la estructura del vector de estados ([, , ,
,
]).

Ktot =

24,4589

0,3472

00

29,5341

3,4481

5,7981

0,0683

(4.39)

Control LQR

El u
ltimo control que aqu se presenta es el llamado regulador lineal cuadratico. Este
es
una versi
on mas sofisticada de los controles por realimentacion de estado, pues la ubicacion
de los polos transformados no viene dada por el ingeniero de control, sino por la soluci
on de
una compleja ecuacion de costes cuadratica donde intervienen las matrices de covarianzas
de ruido asociadas tanto al proceso como a la medida. De hecho, el LQR se define como la
union de un control lineal cuadr
atico para regular el sistema y un filtro de Kalman para
estimar los estados constituyendo una magnifica herramienta para el control de sistemas
estoc
asticos, llegando a ser el algoritmo de control
optimo si el ruido en el sistema es un
ruido blanco gaussiano y las matrices de covarianza han sido debidamente estimadas. En
este proyecto no se proceder
a al an
alisis en profundidad de esta estrategia de control sino
que se hara uso de Matlab para obtener una matriz de ganancias adecuada para el sistema
a regular. En la figura 4.19 se muestra el lugar de las races para este control LQR.
Root Locus
1.5

Imaginary Axis

1
System: untitled2
Gain: 0
Pole: 0.902
Damping: 1
Overshoot (%): 0
Frequency (rad/s): 50.5

0.5

0.5

1

1.5
1.5

1

0.5

0
Real Axis

0.5

1.5

Figura 4.19: Lugar de las races de la planta y el sistema con control LQ


Los parametros caractersticos de este control se muestran en la tabla 4.7 que incluye
tambien los valores estimados de las matrices de covarianza. Puede observarse que los
valores de los polos son bastante diferentes (en realidad los otros polos se escogieron
as porque = 0,75 es un valor com
un para el dise
no). Sin embargo la respuesta del
LQR podra considerarse ligeramente mejor, pues tiene un mayor amortiguamiento. La
principal fortaleza de este metodo es que la ubicacion de los polos ha sido calculada de
104

Modelado y Control de un Cuadricoptero

Control del sistema

forma automatica. Mas adelante, en la secci


on 6 se estudiaran y comparar
an en mayor
profundidad los distintos controles dise
nados.

Variable

'

'

'

150

102

150

104

Polos ini.

Polos finales

Ki

2 I1x1

[0,903, 1]

[0,997, 0,902]

[11.5165,0.4157]

57

2 I1x1

[0,903, 1]

[0,94 0,05063j]

0.707

[11.5367,0.4059]

57

2 I1x1

[0,903, 1]

[0,986 0,00964j]

0.844

[0.0986,0.0193]

0.2

102

104

Tabla 4.7: Parametros del control LQR para el modelo simplificado


Consecuentemente, la matriz de realimentaci
on de estados para el sistema con el control
LQ se obtendra combinando las matrices recogidas en la tabla 4.7 dando lugar a la siguiente
matriz de ganancia:

Ktot =

4.3.4.

11,5165

0,4157

00

11,5367

0,4059

0,0986

0,0193

(4.40)

Control para el modelo del p


endulo invertido

El algoritmo de control dise


nado para el modelo del pendulo es relativamente simple
pero eficaz en simulaci
on. No se han realizado controles especialmente elaborados puesto
que el objetivo de este proyecto es mantener la nave en vuelo, por lo que se ha optado por
un regulador PD. El procedimiento de dise
no ha sido el de identificacion de terminos en
el polinomio caracterstico de la funci
on de transferencia de lazo cerrado. Como ya se ha
hecho una descripcion mas extensa sobre el dise
no de este tipo de controles en las secciones
anteriores, no se describira en detalle pero s que se presentaran los valores caractersticos
del control a traves de la tabla 4.8.
Variable

Td

0,7

0,5

-2.8654

0,0113

Tabla 4.8: Parametros de los controles PD

4.3.5.

Lmites de los mandos

En el dise
no de todos los controles anteriores no se ha hecho menci
on a un punto del
dise
no que es particularmente importante: los lmites superior e inferior de los mandos.
Estos lmites suponen una gran restricci
on para la regulacion del sistema. Por lo general,
todo control rapido requiere acciones de control significativas. Se dice que su estudio es importante porque un control que esta dise
nado para dar un tipo de respuesta puede requerir
acciones de mando muy grandes, imposibles de realizar en los dispositivos reales, y por
105

Modelado y Control de un Cuadricoptero

Control del sistema

tanto resultando in
util. As pues es importante definir los lmites de trabajo de forma relativamente precisa y realizar un estudio de su influencia sobre el funcionamiento del control.
En este proyecto se cuenta con una limitacion relativamente importante y es que los
motores de la nave tienen unas tensiones mnimas y m
aximas de funcionamiento, por lo
que las salidas de mando del controlador deberan encontrarse dentro de estos lmites.
Ademas, se a
nade esta dificultad y es que la se
nal de salida de los controles suele venir
dada en terminos de fuerzas o fuerzas diferenciales, mientras que el actuador debe recibir
un factor de servicio para el PWM requerido por el ESC. As pues, para el analisis del
control en el dispositivo real se han de a
nadir un conjunto de ecuaciones que realicen esta
trasformacion, entre la salida del control y el mando final. Por otro lado, su implantacion
en simulacion parece contradictoria pues, si se desea representar el sistema real de la forma
mas precisa posible, se deberan a
nadir las ecuaciones conversoras de fuerza a PWM para
posteriormente deshacer la transformaci
on y devolverlas a fuerzas, dado que la entrada
del modelo requiere ese tipo de magnitud.
Como se describio en el modelado del sistema simplificado, se definira un punto de
trabajo del dispositivo que permita obtener un determinado margen de control. Esto quiere decir que fijaremos una velocidad de giro de las helices que permita al sistema actuar
tanto por arriba como por abajo, y a partir de ella se calcularan los lmites de satura
cion para las distintas unidades con las que se trabaja. Estos
lmites estan recogidos en
la tabla 4.9 para una tensi
on de la bateria de 8V. Se han calculado para ese valor de
tension de la batera por ser su valor medio aunque realmente este valor es dinamico,es
decir, depende de la tensi
on instantanea de la batera y deben calcularse de forma continua.
As pues, con los valores de la tabla 4.9 se puede observar que el margen de control
es igual a 2.41V, valor que puede ser peque
no si se han de corregir grandes desviaciones
respecto al punto de operacion.
PWM

DC( %)

V (V)

helices (rad/s)

cuerpo (rad/s)

U1

(12 32 )

152.8

0,6

4.8

1455.6

1027.53

2.292

-0.5709

190

0,75

5.96

1809.3

1213.55

3.2

230

0,9

7.21

2188.47

1398.1

4.26

0.5709

Tabla 4.9: Valores de saturacion


Dado que estos lmites son dinamicos, es decir, que dependen de la tensi
on de la batera,

a continuacion se presentan las ecuaciones necesarias para su calculo. Estas deberan ser
incluidas en el algoritmo que gestione la saturacion del controlador.

106

Modelado y Control de un Cuadricoptero

Control del sistema

DC

PWM
255

DC Vbat

helices

cuerpo

V Kv
Km +

2
60

2 +4 dRm V
Km
K
m

m
2 dR
K

(4.41)

U1


U
2

U 3

U4

0 b 0

d d d d

=
b

(12 32 ) =

8ptoeq b
m
4ptoeq +2 dR
K

2
c1


2
c2
2
c3

2
c4

Finalmente, como se introdujo en el dise


no del control diferencial, se pueden elegir los
limites de saturacion incrementales para ese tipo de control, es decir, cuanto permitimos
cambiar el mando entre muestras. La mejor forma de obtenerlos es fijar el incremento del
PWM deseado y calcular por tanto el valor en fuerza incremental, pero tambien se puede
hacer por ensayo. El valor fijado ha sido de 0,05.
Como consecuencia de los lmites fsicos del sistema, las variables de control alcanzan
los lmites prefijados del actuador. Cuando esto pasa, el bucle realimentado permanece en
su lmite independientemente de la salida del proceso. Si ademas se usa un controlador con
accion integral, como es el caso, el error continuara siendo integrado, incrementando a
un
mas su valor. Esto implica que el valor integral puede volverse muy grande y se produce
el efecto windup. Para evitar que este fenomeno ocurra se hace uso del filtro antiwindup
que cuando la salida se satura, recalcula la integral tal que su nuevo valor proporciona
una salida dentro del lmite de saturacion. Por tanto el efecto del antiwindup sera visible
en aquellas situaciones en las que el mando sature, como es el caso del control PID que
se dise
no en la seccion 4.3.3. El filtro antiwindup implementado se muestra en la figura
4.20 donde se ha representado en rojo el control anteriormente dise
nado y, en negro, el
filtro. En el diagrama se puede observar que el control tiene activada la parte integral solo
si el mando no esta saturado pues si esto ocurriera, una se
nal la desactivara. Esta se
nal
logica se genera a partir del mando donde se compara con el valor de saturacion, es decir,
el sistema esta comparando constantemente el valor del mando con m
aximo admisible. Si
este es mayor o igual al maximo, se genera una se
nal con un 1 logico que act
ua sobre el
interruptor, si no es as, la se
nal vale 0 permitiendo la integracion del error.
107

Modelado y Control de un Cuadricoptero

Control del sistema

Figura 4.20: Diagrama del filtro antiwindup


La presencia de las saturaciones en el control rompe con la linealidad de los sistemas y
por tanto la respuesta unitaria que se obtiene con los parametros incluidos en la tabla 4.5
no sera valida cuando estas ocurran. Las diferencias en las respuestas estan relacionadas
con la robustez del sistema del control siendo m
as parecidas cuando mas robusto sea el
sistema. A la vista de los resultados obtenidos en la secci
on 6, los valores del control PID
dise
nado en la seccion 4.3.3 se ha podido mantener modificando tan solo el valor de la
ponderaci
on a la referencia, quedando estos valores de la siguiente forma:
b

0.767

0.367

0.1

Tabla 4.10: Modificacion de la ponderacion de la referencia para el PID por saturacion

4.4.

M
aquina de estados

La instalacion de m
aquinas de estados en un algoritmo de control otorga al conjunto
una mayor robustez pues permite describir el comportamiento del sistema en varios estados de funcionamiento, definiendo tambien las transiciones entre estados. As pues una
maquina estados permite introducir en el sistema:
1. Elementos de seguridad como control de altura m
axima, arranque del sistema controlado o tension mnima de la batera.
2. Variaciones en el algoritmo de control al realizar peque
nas, o grandes incluso, modificaciones sobre el algoritmo como por ejemplo la desactivacion de la accion integral
durante el proceso de arranque.
3. Arranque suave y controlado del sistema.
Vistas las ventajas que otorgan, para una planificacion eficaz del sistema de control, se han
desarrollado dos maquinas de estados, una para el sistema de control del modelo completo,
y otra para el sistema de control calculado del modelo simplificado. A continuacion se
describen ambas m
aquinas de estado.
108

Modelado y Control de un Cuadricoptero

4.4.1.

Control del sistema

M
aquina de estados para el modelo completo

El diagrama de la m
aquina de estados se presenta en la figura 4.21 donde podemos
distinguir un total de seis estados con sus respectivas transiciones. A continuacion se
describe cada uno de ellos.

Figura 4.21: M
aquina de estados para el modelo completo
1. Estado de desconexion (Quad o) donde el quadricoptero esta apagado y por tanto el
sistema de control tambien. La variable salida, la cual selecciona el tipo de referencia
que se suministra al sistema esta puesta a cero seleccionando se
nales con valor nulo
como entradas al sistema de control. Cuando se activa el sistema a traves de un
interruptor, se cambia al estado siguiente.
2. Aqu se arman los motores (Estado Armado), es decir, se incrementa la tensi
on de los
motores a traves de una rampa hasta que se alcanza la tensi
on mnima necesaria para
el funcionamiento. Si el estado de la batera es mayor a la tensi
on mnima fijada, 7
voltios en este caso, el sistema accede al siguiente estado. De no serlo, no se iniciara
el movimiento de los motores y el piloto sabra que ha revisar la alimentaci
on.
3. En este estado (Ascenso) se lleva a la nave al punto de trabajo fijado (PWM=190),
tambien de forma gradual. Este punto de trabajo se mide a traves de la altura.
En este caso se ha fijado el valor de esta en 1.8 m. Una vez alcanzado el punto de
equilibrio, se pasa al siguiente estado.
4. Cuando se alcanza este punto(Quad On), el sistema activa el algoritmo de control
dise
nado para el modelo completo y responde a las indicaciones del piloto. Saldra de
este estado si el sistema se queda sin batera o si se se apaga el sistema a traves
del interruptor, llevando el sistema al estado siguiente. Se ha definido tambien un
109

Modelado y Control de un Cuadricoptero

Control del sistema

control de altura en el que no se permite que el sistema baje por debajo del medio
metro ni suba por encima de los 3m. Si se da esta situacion el sistema lo llevara de
nuevo a su punto de trabajo (h=1.8m).
5. Este estado de descenso (Descenso) reduce la potencia aplicada a los motores de
forma gradual (rampa con pendiente decreciente en las referencias), evitando que el
sistema se desconecte de forma directa causando da
nos en la estructura. As pues en
este estado se lleva a la nave a tierra y finalmente vuelve al estado de desconexion.
Con la descripcion realizada de la m
aquina implementada se pueden identificar las funciones que se enumeraban al principio de esta secci
on. Notar que como hace uso de la
altura como variable de transicion solo se puede usar con control dise
nado para el modelo
completo.

4.4.2.

M
aquina de estados para el modelo simplificado

Como enuncia el ttulo de la seccion, esta m


aquina esta orientada a su uso en un sistema
con un control dise
nado con el modelo simplificado. Realmente no existe tanta diferencia
entre ambas, sino que se han realizado peque
nas modificaciones para que se ajuste a las
variables que usa cada sistema. El diagrama de esta maquina se muestra en la figura 4.22
y posteriormente se describen los estados que la componen.

Figura 4.22: M
aquina de estados para modelo simplicado
1. De nuevo se ha definido un estado inicial (Quad o) donde el sistema esta desconectado. Cuando el sistema se activa a traves de un interruptor, el sistema salta al
siguiente estado.

110

Modelado y Control de un Cuadricoptero

Control del sistema

2. Este estado es el de armado (Armado), en el que se incrementa la tensi


on en los
motores a traves del mando. Si se desconecta el interruptor de encendido, el sistema
vuelve al primer estado. Cuando las helices se encuentran girando a la menor velocidad, se salta al siguiente estado siempre que la tensi
on de la batera sea superior
al valor mnimo fijado. Se ha introducido otro interruptor que permite mantener la
velocidad de giro de los rotores mientras se baja la palanca del empuje en el mando.
La razon es que si entra en el estado de control de forma directa, se producira un
salto entre la tension mnima existente en los rotores en este estado y la del punto
de trabajo indicado por el mando.
3. Este tercer estado es un estado (Armado1) de transicion que permite situar la palanca
de empuje en el mando en su valor mnimo, valor que coincide con el la tension que
se esta aplicando a los motores en ese momento. De esta forma se evitan cambios
bruscos en el regimen de revoluci
on de las palas y consecuentemente los efectos
desestabilizantes que generan. Cuando se ha llevado la palanca de empuje al mnimo,
se libera el interruptor y el sistema entra en modo de control. De igual manera, si el
interruptor de encendido se desconecta, el sistema se desconecta volviendo al estado
inicial.
4. El estado de control (Quad on) es en el que act
ua el algoritmo de control programado. N
otese que se ha cambiado el valor de la variable int, la cual es de gran
importancia en el sistema. Esta variable activa la accion integral del control durante
la fase de control y la desactiva durante la fase de preparaci
on o arranque. De no
hacerse, durante la fase de arranque el control intentara llevar el sistema al punto
de equilibrio eliminando el error pero, como no estan conectados los motores, no
podr
a y generar
a problemas en el sistema. El sistema saldra del este estado si la
batera es demasiado baja o si es posible, desconecta el interruptor de encendido.
5. El u
ltimo de los estados (Descenso) permite reducir la velocidad de los motores de
forma gradual, igual que en la m
aquina de estados anterior.

111

Captulo 5

Implementaci
on
En captulos anteriores se han realizando profundos estudios mecanicos, matematicos
y de regulacion sobre el cuadricoptero con el fin de realizar un an
alisis lo suficientemente
adecuado como para garantizar su correcto funcionamiento. En esta seccion se describir
an
los elementos necesarios para poder implementar lo estudiado tendiendo un puente entre
el mundo teorico-simulado y la realidad. A lo largo de las secciones que componen este captulo se mostrar
an, de forma didactica, los elementos necesarios para implementar
los algoritmos de control dise
nados, de forma que se obtenga un dispositivo listo para
ser ensayado. As pues se empezara por describir los drivers programados para el correcto entendimiento de los dispositivos que componen el cuadricoptero. Posteriormente se
mostrar
a el procedimiento para montar la estructura y, una vez realizado, c
omo han de
instalarse los demas elementos tales como los motores, los reguladores de velocidad etc. Finalmente, montado ya el cuadricoptero, se indicara como han de conectarse los elementos
en la placa base relacionando los drivers con el aparato en s.

5.1.

Dise
no de drivers

En el captulo 4, donde se estudio el control del sistema, se mencionaron de forma


relativamente frecuente las referencias, las medidas o los actuadores asumiendo que estas
se
nales estan siempre disponibles. Esa suposicion es realmente valida si se establece un
canal de comunicacion entre el dispositivo encargado de gestionar esa se
nal y el microcontrolador. Ese puente de comunicacion es realizado por un c
odigo o driver que puede
estar programado en gran cantidad de lenguajes de programaci
on. En este proyecto se han
implementado en c++ haciendo uso de las S-Functions contenidas en Simunlik, pues el
control del sistema se ha realizado con ese programa y facilita la integraci
on del conjunto.
Cada uno de los dispositivos perifericos cuenta con un driver distinto que debe ser programado con ayuda de libreras ya creadas o, de considerarse oportuno, empezando desde cero.
En este proyecto se han dise
nado dos drivers y se ha hecho uso de otros dos predefinidos
en Simulink por el paquete Arduino. Para facilitar el entendimiento del codigo a programar

113

Modelado y Control de un Cuadricoptero

Implementacion

se seccionara el codigo elaborado por funciones realizadas, por lo que para una visi
on en
conjunto del mismo se recomienda dirigirse al documento III. A continuacion procede con
el estudio y analisis de estos drivers.

5.1.1.

Driver para la IMU

Se recuerda que la IMU es la unidad compuesta por los elementos de medida citados
a lo largo del proyecto y la encargada de obtener las medidas para el controlador. Con
la programacion de este driver se pretende establecer la comunicaci
on entre la IMU y el
microcontrolador, es decir, que las medidas obtenidas en la unidad puedan ser usadas en el
control. Para su programacion se hara uso de la librera FreeIMU [28]. FreeIMU es una unidad de medidas Open Source para instalacion de este tipo de unidades en cuadricopteros
y otro tipo de dispositivos que precisen de estas medidas. Este codigo es bastante potente
pues a demas de gestionar las se
nales de los aparatos de medida, incluye tambien una
opcion de filtrado de las mismas e incluso un filtro de Kalman realizado con cuaterniones
para la obtencion de
angulos de Euler. Por tanto haremos uso de este c
odigo adaptandolo
a nuestra aplicacion.
Lo primero que debemos hacer es obtener y definir todas las libreras que FreeIMU
requiere para su funcionamiento, labor que se realiza a traves de las siguientes lneas de
codigo. Es importante remarcar que para poder incluirlas, estas han de encontrarse en la
carpeta de trabajo y por tanto se han descargar previamente de la red.
\cdots#include "Wire.h"
#include "I2Cdev.h"
#include "SPI.h"
#include "MPU60X0.h"
#include "HMC58X3.h"
#include "MS561101BA.h"
#include "FreeIMU.h"
#include "DebugUtils.h"
#include "EEPROM.h"

Una vez definidas las libreras se procedera a definir las variables que se usaran a lo largo
del c
odigo. Dado que se usara como base la librera FreeIMU, los nombres y tipos de
variables vienen fijadas por ella aunque podran modificarse a gusto del programador. En
este caso se han considerado suficientemente explicativas y, al no existir motivo aparente
para modificarse, se ha optado por usar las mismas. Se debe definir adicionalmente un
objeto o estructura, al que se ha llamado my3IMU, pues sera en ella donde se almacenen
los datos provenientes de los elementos de medida.
int raw values[11];
float angles[3];
float val[9];
FreeIMU my3IMU = FreeIMU();

114

Modelado y Control de un Cuadricoptero

Implementacion

Definidas las libreras, variables y la estructura se procede al inicio del sistema. Para
garantizar que la accion de arranque solo se lleva acabo una vez, obviamente en la fase de
arranque, se ha incluido el if que se muestra a continuacion. La variable xD[0] contiene
el valor inicial del sistema que por defecto se han fijado a cero. As pues, en el inicio, se
acceder
a dentro del if iniciando la comunicacion y la IMU. Los delays se han incluido para
asegurar que el sistema tiene tiempo suficiente para iniciar los dispositivos. Finalmente
el valor xD[0] se iguala a 1, valor en el cual se mantendr
a hasta el reinicio del sistema,
cumpliendo con la condicion de acceso solo en el arranque.
if (xD[0]!=1) {
Wire.begin();
delay(500);
my3IMU.init(true);
delay(500);
xD[0]=1;
}

El u
ltimo paso consiste en extraer la informacion almacenada en la estructura de datos en
las variables que se han definido en la S-Function de Simulink. Con la extension .getRawValues se obtienen las medidas sin filtrado ni correccion y con la extension .getEuler se
obtienen los
angulos de Euler en grados, los cuales son volcados sobre la variable situada
entre parentesis, es decir raw values y angles respectivamente. Las siguientes lneas de
codigo son una simple identificacion de terminos entre variables. S es importante comentar el por que de la inclusion del if en esta parte del codigo. Como vimos anteriormente,
al arrancar el sistema xD[0]=0 y la IMU no se ha activado a
un por lo que pedir datos del
dispositivo generara un error en el sistema. La presencia de ese if garantiza que solo se
acceda a leer los datos almacenados en la estructura s y solo s se ha iniciado la unidad
de medida.
if (xD[0]!=1) {
if (xD[0]==1) {
my3IMU.getRawValues(raw values);
my3IMU.getEuler (angles);
axyz raw[0]=raw values[0];
axyz raw[1]=raw values[1];
axyz raw[2]=raw values[2];
gxyz raw[0]=raw values[3];
gxyz raw[1]=raw values[4];
gxyz raw[2]=raw values[5];
mxyz raw[0]=raw values[6];
mxyz raw[1]=raw values[7];
mxyz raw[2]=raw values[8];
temp raw[0]=raw values[9];
presion raw[0]=raw values[10];
ang[2]=angles[0];
ang[1]=angles[1];

115

Modelado y Control de un Cuadricoptero

Implementacion

ang[0]=angles[2];
}
}

En la figura 5.1 se muestra el bloque generado por Simlink el cual incorpora el c


odigo que
se acaba de describir. Como era de esperar tiene seis salidas (acelerometro, giroscopos,
magnetometros, term
ometro, barometro y la estimacion de
angulos de Euler) que seran
las que se usaran para el algoritmo de control. Se han extrado los
angulos de Euler
para compararlos con los estimados por el Filtro de Kalman dise
nado en este proyecto,
permitiendo garantizar el correcto funcionamiento del mismo.

Figura 5.1: Bloque del driver para la IMU

5.1.2.

Driver para el transmistor-receptor RC

El siguiente driver que se estudiara es el que establece la comunicaci


on entre el receptor
RC y el microcontrolador. El receptor es el encargado de transmitir las referencias al sistema de control que, dependiendo de si es el control para el modelo completo o simplificado,
podran ser valores de
angulos o de velocidades lineales. A la salida del bloque generado se
instalara un conversor de unidades que transformar
a la se
nal de entrada en una referencia
acotada con valores y unidades coherentes (20o para referencias de
angulos).
Existe tambien un driver que establece la conexi
on RC entre emisor y receptor, pero
no se estudiara en este proyecto. Sin embargo si que se debera acceder al software de la
emisora para indicar por que canal queremos que emita queda se
nal y, en el caso de los
interruptores, que tipo de se
nal queremos que transmita, bien de -V a mas V o bien de
0 a V. Para la aplicacion buscada se han asignado los canales seg
un se muestra en la
imagen 5.2, los cuales se han recogido tambien que en la tabla 5.1 para mayor claridad.
Los interruptores trabajan con se
nales semipositivas digitales, es decir, que pueden valer
0 o +V.

116

Modelado y Control de un Cuadricoptero

Implementacion

Figura 5.2: Emisora con los canales por los que emite cada se
nal
CH1

CH2

CH3

CH4

Empuje

Gui
nada

Cabeceo

Alabeo

CH5

CH6

Interruptor

Interruptor

primario

secundario

Tabla 5.1: Variable emitida por canal


El driver que se ha programado hace uso de interrupciones para evitar un exceso de consumo en memoria por parte del microcontrolador. Ademas este tipo de se
nal es un ejemplo
clasico de interrupciones las cuales se han de activar cuando se produzca un cambio en
el valor de la se
nal, puesto que no siempre se estar
an produciendo cambios en todos los
canales. Sin embargo la reduccion del consumo de memoria viene acompa
nada de un incremento en la dificultad del codigo como se vera a continuacion.
Lo primero que se hara es definir las libreras que usaremos que, en este caso, son la
de Arduino y la PINChangeInt. Esta u
ltima es la que se encarga de gestionar los timers
de las interrupciones as como facilitar el dise
no de las mismas. Igual que ocurri
o en el
driver de la IMU, las dos libreras deben encontrarse en el directorio del trabajo para que
el codigo pueda ser compilado.
# define ARDUINO 100
# include <Arduino.h>
# include <PinChangeInt.h>

El siguiente paso es la definicion de los canales y de los flags de interrupcion. Se define


un flag de interrupcion por cada canal y se asigna a cada uno un pin de salida en la placa.
// Asignaci
on de canales

117

Modelado y Control de un Cuadricoptero

Implementacion

#define PIN1 A8
#define PIN2 A9
#define PIN3 A10
#define PIN4 A11
#define PIN5 A12
#define PIN6 A13
// Declaraci
on de flags
#define flag PIN1 1
#define flag PIN2 2
#define flag PIN3 3
#define flag PIN4 4
#define flag PIN5 5
#define flag PIN6 6

Posteriormente se definen las variables a usar. As pues act flag contiene el valor del pin
que se ha de actualizar as como PINx copia y PINx start gestionan el tiempo trascurrido
hasta que salta la interrupcion.
volatile uint8 t act flag;
volatile uint16 t PIN1 copia;
volatile uint16 t PIN2 copia;
volatile uint16 t PIN3 copia;
volatile uint16 t PIN4 copia;
volatile uint16 t PIN5 copia;
volatile uint16 t PIN6 copia;
uint32 t PIN1 start;
uint32 t PIN2 start;
uint32 t PIN3 start;
uint32 t PIN4 start;
uint32 t PIN5 start;
uint32 t PIN6 start;

Seguidamente se define la funcion de interrupcion, que es la funcion a donde va el


programa cuando salta el flag de interrupcion. En ella se gestiona el tiempo transcurrido
guardandose en las variables correspondientes y se selecciona el PIN en el que se ha
producido el cambio, guardando el valor del PIN en la variable act flag.
// Funciones de interrupci
on:
void calcPIN1()
{
if(digitalRead(PIN1) == HIGH)
{
PIN1 start = micros();
}
else
{
PIN1 copia = (uint16 t)(micros() PIN1 start);
act flag | = flag PIN1;
}
}

118

Modelado y Control de un Cuadricoptero

Implementacion

A continuacion se configura que es lo que va a motivar el cambio en la interrupcion, bien


por incremento, bien por decremento o bien por cambio con respecto al valor de anterior.
Como se busca que reaccione a cambios tanto por encima como por debajo del valor
anterior se ha optado por la opcion de cambio (CHANGE). El comando para configurar
el PIN viene dado por la librera y necesita que se defina: El PIN al que se le asocia una
interrupcion, la funci
on de interrupcion a la que tiene que ir cuando est
a ocurre y la causa
por la que salta. Se ha configurado ademas el pin 12 como salida para as alimentar el
receptor con una tensi
on de 5 V desde la propia placa. De nuevo se usa el la condicion de
que el valor de xD[0] sea distinto de uno para garantizar que solo se accede a estas lneas
de codigo durante el arranque.
if (xD[0]!=1) {
// Asignaci
on del pin, funci
on de interrupci
on y tipo de cambio.
PCintPort::attachInterrupt(PIN1, calcPIN1,CHANGE);
PCintPort::attachInterrupt(PIN2, calcPIN2,CHANGE);
PCintPort::attachInterrupt(PIN3, calcPIN3,CHANGE);
PCintPort::attachInterrupt(PIN4, calcPIN4,CHANGE);
PCintPort::attachInterrupt(PIN5, calcPIN5,CHANGE);
PCintPort::attachInterrupt(PIN6, calcPIN6,CHANGE);
pinMode(12,OUTPUT);
xD[0]=1;
}

Por u
ltimo se actualiza cada canal a traves de las lneas de codigo que se muestran a
continuacion. Cuando ha saltado alguna interrupcion, act flag es distinta de cero por lo
que se procede a actualizar el valor del canal, de lo contrario no se modifica. Es importante
remarcar que cuando el sistema entra dentro de la condici
on se desactivan las interrupciones. Esto garantiza que no saltar
a otra interrupcion mientras se esta actualizando alg
un
canal, accion que puede generar problemas de funcionamiento. Por otro lado, el PIN 12 se
ha situado fuera de la condici
on de interrupcion puesto que se busca que alimente siempre
al receptor.
if (xD[0]==1) {
static uint8 t UpdateFlags;
if(act flag)
{
noInterrupts(); // Apaga las interrupciones
// Actualizaci
on del estado del flag
UpdateFlags = act flag;
if(UpdateFlags & flag PIN1)
{
ch1[0] = PIN1 copia;
}

119

Modelado y Control de un Cuadricoptero

Implementacion

if(UpdateFlags & flag PIN2)


{
ch2[0] = PIN2 copia;
}
.
.
.
if(UpdateFlags & flag PIN6)
{
ch6[0] = PIN6 copia;
}
// Borra la copia de la actualizaci
on de flags
act flag = 0;
interrupts(); // Reactiva las interrupciones
}
digitalWrite(12,HIGH);
}

Tras una an
alisis de las se
nales obtenidas se ha observado cierto nivel de ruido en ellas
que, al ser introducidas en el control a traves de las referencias, pueden afectar al control
de la nave. Por ello se ha dise
nado un filtro de Savitzky-Golay obtenido a partir de las
se
nales con ruido obtenidas. La funci
on de transferencia 5.1 describe el filtro mencionado
el cual genera una referencia limpia de ruido aunque un poco m
as lenta en la respuesta
que la original. En la secci
on 6 se incluyen unas graficas que muestran la eficiencia del
filtro.
F [z] =

5.1.3.

0,05645z 1 0,003782z 2
1 1,63z 1 + 0,685z 2

(5.1)

Driver para los motores

El driver para los motores es en esencia un generador de pulsos de amplitud modulada


(PWM) que permite variar la tension aplicada al motor a partir de una se
nal generada
por el microcontrolador. Este pulso esta caracterizado por un factor de servicio y por el
periodo del mismo. Idealmente se usa un perodo igual al periodo de muestreo del sistema
de control, para as evitar trabajar con dos periodos distintos pero su coexistencia no
suponen gran problema para la regulacion. A diferencia de los dos drivers anteriormente
dise
nados, este no ha sido generado a traves de c
odigo sino que se ha usado un bloque en
Simulink que realiza tal funci
on. El bloque perteneciente al paquete de Arduino recibe el
nombre de PWM y esta representado por el bloque mostrado en la figura 5.3.

120

Modelado y Control de un Cuadricoptero

Implementacion

Figura 5.3: Bloque de Arduino para generar PWMs


Este bloque recibe como entrada el factor de servicio deseado generando el pulso correspondiente con una frecuencia de 490 Hz, lo cual constituye la principal desventaja de
este bloque. El periodo de pulso es un valor fijo y por tanto, de querer usar otro periodo
de muestreo para el algoritmo de control, habra que realizar una modificaci
on para que
ambos puedan coexistir. Para que esto pueda suceder, el Ts de sistema tiene que ser un
m
ultiplo del actuador de Arduino. Si esto ocurriese, situando un conversor de periodos, que
en esencia es un retenedor de orden cero, antes del bloque 5.3 se solucionara el problema
y permitira trabajar al control un Ts mayor si fuera necesario. El retenedor mantendra la
se
nal recibida en el actuador durante tantas muestras como el cociente entre perodos, es
decir, si el control usa un Ts=5Tsact , el retenedor matendra cada muestra que le llegue
durante 5 muestras mas (de Ts=Tsact ).

5.1.4.

Driver para el lector de batera

En la secci
on 4.3.5 se mencion
o que los lmites de saturacion del sistema son din
amicos
y en la 4.4 se uso el valor de la tension de la batera como variable de transicion entre estados. Resulta por tanto necesario dise
nar un dispositivo capaz de medir esa tension as como
un driver que lo comunique con el microcontrolador. Por desgracia la tension de la batera
es superior a la maxima admisible en los pines del control que esta en torno a los 5 V, por
lo que no se puede conectar directamente una derivacion de la alimentaci
on al sistema. Sin
embargo existe una solucion bastante simple pero realmente eficaz que soluciona el incon
veniente, un divisor de tensi
on. Este
se ha dise
nado con dos resistencias de 20 K para
evitar que consuma mucha corriente y se ha incluido un operacional conectado a modo de
buer para asilar la entrada de la placa del divisor. Las dos resistencias se han escogido
del mismo valor para que el divisor de tension reduzca la tension de la batera por dos,
permitiendo su conexi
on en la placa. La figura 5.4 muestra un esquema de divisor dise
nado.

Figura 5.4: Esquema del divisor de tension con buer


El driver a dise
nar es, por tanto, bastante sencillo pues solo se necesita crear un bloque
capaz de leer una entrada analogica de un PIN en concreto, bloque existente en el paquete
de Arduino para Simulink. Por tanto basta indicar el PIN de entrada y multiplicar la se
nal
por una ganancia de valor K=10/10223 para compensar la reduccion del divisor y el efecto
del bloque, para obtener una medida de la batera que pueda ser usada para el control. La
figura muestra el diagrama del proceso 5.5.
121

Modelado y Control de un Cuadricoptero

Implementacion

Figura 5.5: Bloque de Arduino para leer la tension de la bateria


Sin embargo existe un inconveniente y es que esta se
nal es sensible a picos y podra
hacer saltar de estado al sistema a pesar de tener una tensi
on admisible. Ademas los
picos de tension son bastante comunes pues al cambiar bruscamente la velocidad de los
motores acoplados al cuadric
optero (en el arranque o en acciones de control grandes por
ejemplo) se demandan grandes picos corrientes que, por la ley de Ohm, se traducen en
picos decrecientes de tensi
on. As pues es necesario a
nadir un filtro al sistema como el
dise
nado para la salida del RC para absorber esos cambios y aislar el sistema de control.

5.2.

Montaje del dispositivo

Un correcto montaje del dispositivo resulta esencial para el desarrollo del proyecto,
pues de lo contrario no se podran realizar los ensayos correspondientes del sistema de
control programado. Por ende se ha dedicado una seccion a describir el procedimiento de
montaje incluyendo imagenes que facilitan la comprension del proceso, desde su inicios
hasta el dispositivo final. En esta seccion no se hara referencia al conexionado electrico del
sistema, pues se dedicara una secci
on aparte mas adelante donde se describir
a en mayor
detalle. A continuacion se proceder
a con la descripcion del proceso de montaje.
Las piezas que constituyen el dispositivo con el que se trabaja se muestran en el
despiece de la figura 5.6. Estas piezas no han sido fabricadas en este proyecto sino que
se han adquirido a traves de un proveedor externo a la Universidad. Se han de extraer
con relativo cuidado de la matriz en la que se reciben, pues no es difcil que en el proceso
de extraccion de la misma se da
ne alguna de las partes que las componen. Una vez estan
debidamente extradas, los distintos componentes se deberan ensamblar por presi
on y se
fijaran con las tuercas y tornillos M3 que se presentan en la figura 5.6.

Figura 5.6: Piezas para la construcci


on de la estructura
122

Modelado y Control de un Cuadricoptero

Implementacion

Para facilitar la identificacion de cada pieza con su posici


on adecuada se ha realizado la
explosion del conjunto que se muestra en la figura 5.7. A traves de ella se puede identificar
con mayor facilidad que piezas se colocaran la zona superior de la estructura base y cuales
en la zona inferior.

Figura 5.7: Descomposici


on del conjunto
Para el montaje de la parte inferior de la estructura base se hara uso de los tornillos
M3 con extension hexagonal, fijados en la cara opuesta con las tuercas apropiadas, que
haran la funci
on de patas para el cuadric
optero, resultando en el conjunto de la figura 5.8.
Es importante realizar una observacion sobre esta parte de la estructura base donde se
puede identificar una placa de circuitos impresa sobre ella. Esta placa servira de conductor
para la alimentaci
on del sistema tanto para el microcontrolador como para los reguladores
electronicos de velocidad y los motores. La existencia de esta placa reduce el n
umero de
cables a emplear en el sistema simplificando el conexionado y proporcionando una soluci
on
mas estetica y, generalmente, efectiva.

Figura 5.8: Parte inferior de la estructura


La figura 5.9 muestra la disposicion de los elementos de la mitad superior del conjunto.
El montaje de esta parte resulta bastante evidente ya que solo se han de fijar las pesta
nas
elpticas a traves de los tornillos y tuercas M3 y posteriormente fijar por presion los
123

Modelado y Control de un Cuadricoptero

Implementacion

arcos de la parte superior. Estos


no son esenciales para el funcionamiento de la nave,
pudiendo incluso convertirse en un obstaculo para la instalacion de otros elementos que
requieran de cierta altura. Si se diera el caso, podra eliminarse sin problema alguno para
la estructura. N
otese que los brazos de la aeronave no tienen ning
un tipo de refuerzo ante
la deformaci
on por flexi
on que generar
an los motores, pudiendo llegar a partirse da
nando
por tanto gravemente el dispositivo. Para evitar esos riesgos se han introducido las piezas
con forma elptica de la figura 5.10.

Figura 5.9: Parte superior de la estructura


En ella se pueden identificar claramente las piezas mencionadas, situadas a los lados de
cada brazo del cuadricoptero. Estas piezas se fijan por presi
on a traves de canales creados
en los extremos y en el centro de ellas. A pesar de que da la sensaci
on de no aportar
una mayor resistencia mecanica al sistema, se puede demostrar matem
aticamente que
s influyen ortogando al conjunto una mayor robustez.

Figura 5.10: Estructura con refuerzos en los brazos


La figura 5.10 muestra el resultado final de la estructura en s, es decir, sin los elementos
electromecanicos que dan vida al sistema. Situando cada uno de esos elementos en el lugar
adecuado se obtiene el conjunto que se muestra en la figura 5.11, siendo este la version
124

Modelado y Control de un Cuadricoptero

Implementacion

mas basica de un cuadric


optero. Futuras modificaciones pueden realizarse sobre el a fin
de mejorar el comportamiento del sistema, tales como amortiguadores para eliminar las
vibraciones generadas por los motores, un sistema de sujecion para la batera etc.

Figura 5.11: Cuadric


optero montado
En esta secci
on tambien se describir
a el montaje de la placa que contiene el divisor de
tension implementado. De nuevo el conexionado de esta se analizara en la siguiente secci
on.
El circuito construido se muestra en la figura 5.12 donde se pueden identificar los elementos
que lo componen. El operacional se ha montado sobre un z
ocalo para permitir su reposici
on
en caso de avera del mismo si este resultase da
nado. Tambien se han introducido una serie
de pines que facilitan la conexi
on y desconexion entre el circuito y el microcontrolador pues
de haber sido soldados los cables, no habra sido posible. Se ha incluido tambien la figura
5.13 donde se muestra el anverso del circuito montado. Esta figura pone de manifiesto el
metodo que se ha usado para enlazar los elementos que componen el circuito que, como
se puede observar, ha sido a traves de pistas. La principal ventaja de este es que no hace
uso de cables y, dado que el cuadricoptero cuenta con un gran n
umero de ellos, puede
simplificar el conjunto a la vez que hacer el circuito m
as robusto.

Figura 5.12: Placa con el divisor de tensi


on

125

Modelado y Control de un Cuadricoptero

Implementacion

Figura 5.13: Pistas de la placa del divisor


En la figura 5.12 se puede apreciar tambien un tornillo, elemento que sera usado para

fijar el circuito a la estructura. Este


se situara encima de la placa del controlador, elevado
con respecto a esta por un pasador y atornillado con el tornillo de la metrica adecuada.
Como la placa que contiene el circuito es peque
na, la sujeci
on generada con un solo punto
de fijaci
on es suficiente para garantizar la union de ambos elementos.

5.3.

Conexionado

Para finalizar el captulo se mostrar


a como han de conectase los dispositivos perifericos
que componen el conjunto. Se ha dedicado una secci
on completa puesto que es de gran
importancia realizar un correcto conexionado pues, de no realizarse, el sistema no funcionara siendo difcil de detectar la causa. Los puntos de conexi
on vienen definidos por otros
elementos ajenos al dispositivo que pueden haber sido dise
nados en este proyecto o haber
sido importados de trabajos anteriores. Al haber programado los drivers que comunican
los perifericos con el microcontrolador, los pines de conexion ya han sido predefinidos por
lo que se debera conectar cada se
nal en el lugar adecuado para asegurar un correcto funcionamiento. La figura 5.14 muestra un esquema en el que se describe el PIN al que se ha
de conectar cada se
nal.
En el lateral superior izquierdo del microcontrolador, seg
un la orientacion mostrada
en la figura 5.14, se encuentran los pines de alimentacion externa. Estos puntos de conexion son la toma de tensi
on para la alimentacion de la placa y, por consiguiente, el
microprocesador. Dicha tensi
on se obtiene a partir de una derivacion de la alimentacion
a los controladores electronicos de velocidad. Es especialmente importante mantener la
polaridad que se representa en el esquema ya que, de no hacerlo, pueden da
narse los pines
as como los circuitos internos del microcontrolador. Dos pines por abajo de la toma de
tension se sit
ua el PIN de lectura de la tensi
on de la batera, que vendra del divisor de
tension externo. Realmente no se mide tensi
on sino la diferencia de potencial entre dos
puntos por lo que se debera conectar una referencia de neutro o tierra a la placa. Esta
126

Modelado y Control de un Cuadricoptero

Implementacion

referencia se encuentra situada en el u


ltimo PIN de la vertical cuyo nombre es GND.

Figura 5.14: Conexionado al microcontrolador


Continuando hacia abajo encontramos los pines de lectura del receptor RC. Cada canal de emision tiene asociado un PIN, como era de esperar, yendo desde el A8 hasta el
A6. Estos valores son en realidad valores de tension y por tanto tambien necesitan de la
referencia de tierra. Por suerte en este caso la referencia de tierra es com
un a todos los
dispositivos pues se esta alimentando el sistema con la misma batera. Consecuentemente
se puede usar el PIN GND para obtener las se
nales enviadas por el emisor RC.
A continuacion, en los pines horizontales, se realizan las conexiones de se
nal a los reguladores electronicos de velocidad. Para esta conexi
on se usan los tres cables, los dos de
tension y el de se
nal que llevara el PWM enviado por el microprocesador. Al existir cuatro
reguladores se usan los cuatro primeros pines, es decir el 2,3,5 y 6.
El siguiente PIN a conectar es el n
umero 12 el cual se usara para alimentar el receptor RC.
En este caso solo se ha de conectar el cable de se
nal y el de tension ya que de lo contrario
se da
nara el dispositivo.
Por u
ltimo, pero a pesar de ello extremadamente importante, esta la labor del jumper ya
que, para el tipo de conexi
on que se esta realizando, ha de ser extrado pues el sistema se
alimenta de forma externa.
A fin de sintetizar lo descrito se ha recogido la informacion relevante en la tabla 5.2.
Se recuerda que la tabla 5.1 contiene la equivalencia entre cada canal y la propiedad fsica
que trasmite.
127

Modelado y Control de un Cuadricoptero

Implementacion

Vbat

CH1

CH2

CH3

CH4

CH5

CH6

GND

M1

M2

M3

M4

TRC

Jump

A15

A13

A12

A11

A10

A9

A8

GND

12

Tabla 5.2: Asignacion de pines en el microcontrolador


Otro circuito en el que merece la pena estudiar su conexionado es el del divisor de
tension creado para registrar el nivel de tension en la batera. La dificultad viene, en gran
medida, por el amplificador operacional pues cuenta con un n
umero de pines mayor al
indicado en el circuito 5.4. El operacional usado es un LM741 y por tanto habra que
acceder al catalogo del producto [29] para poder determinar en que pines ha de conectarse
cada se
nal. Haciendo uso de ese catalogo se ha elaborado el esquema de conexi
on que se
muestra en la figura 5.15.

Figura 5.15: Esquema de conexi


on para el divisor de tension
El esquema es bastante ilustrativo pues permite identificar el pin al cual se conectara cada se
nal, incluida la realimentacion negativa del circuito. Es muy importante conectar cada
se
nal al elemento correspondiente el esquema ya que una mala conexi
on da
nara el operacional dejandolo inservible.
Finalmente se ha incluido la imagen 5.16, que muestra uno de los reguladores electronicos de velocidad, para remarcar que el conexionado de estos dispositivos se realiza a traves
de la placa impresa en la estructura del cuadricoptero. As pues se soldaran cada una de
ellas respetando la polaridad tanto a la entrada (alimentacion del regulador) como a la
salida (se
nal trif
asica enviada a los motores). De nuevo la polaridad es extremadamente
importante y ha de ponerse especial cuidado en su montaje, pues si esta se cambia se
da
nara el regulador y tendra que ser remplazado (causado por la presencia de condensadores electrolticos en el regulador).

Figura 5.16: Conexion de los reguladores electronicos de velocidad

128

Captulo 6

Ensayos
Todo proyecto de ingeniera requiere de un conjunto de ensayos que demuestren el
correcto funcionamiento del sistema dise
nado. Este modo de trabajo, llamado metodo
cientfico en la literatura clasica, permite identificar que partes del sistema dise
nado son
validas, o funcionan correctamente, y cuales necesitan ser corregidas para que funcionen
de la manera deseada. Generalmente, en el mundo de la ingeniera de control, se trabaja en
modo incremental, es decir, se dise
na por bloques individuales y se comprueba el correcto
funcionamiento de los mismos. Cuando se han creado todos los necesarios, se acoplan todos y se comprueba el correcto funcionamiento del conjunto. Este metodo tiene la ventaja
de que el n
umero de errores que puede arrojar el sistema general es menor, dado que se
tiene la certeza de que cada bloque funciona correctamente, pues ya ha sido ensayado
anteriormente. Ademas permite identificar los errores mas rapidamente ya que estos no
estan camuflados dentro de los distintos subbloques.
En este captulo se proceder
a a describir minuciosamente los resultados obtenidos
organizados, a traves de las respectivas secciones, seg
un el orden logico de dise
no. En
todo proceso de ingeniera se han de realizar una serie de simulaciones que demuestren la
eficacia del dise
no, por lo menos a nivel virtual. Conviene que estas sean los m
as parecidas
posible a la realidad, puesto que una simulacion que se aleje mucho de ella no aporta
informacion alguna, es m
as, puede dar lugar a futuros errores o da
nos en el sistema real
con el que se trabaja. La principal ventaja de este tipo de ensayos es que permiten validar
el funcionamiento del o los algoritmos sin poner en peligro o da
nar ning
un dispositivo
fsico. As pues, la primera seccion de este captulo describe en detalle los resultados
obtenidos para todos los bloques dise
nados en los captulos anteriores. Como se vera m
as
adelante, este tipo de ensayos permite realizar peque
nas correcciones (generalmente a
nivel de constantes), que mejoran el funcionamiento del algoritmo y que en su dise
no
no se tuvieron tan en cuenta. Consecuentemente, con este estudio se pretende garantizar
una buena actuaci
on por parte del algoritmo, en su conjunto, sobre el sistema real. Sin
embargo, el exito nunca est
a garantizado pues, como bien se han mencionado, se trata de
una representacion de la realidad y, generalmente, se hacen uso de aproximaciones. Por lo
129

Modelado y Control de un Cuadricoptero

Ensayos

tanto, en proyectos con dispositivos fsicos o reales de alto valor, suelen dise
narse prototipos
para evitar que funcionamientos incorrectos del sistema dise
nado puedan da
narlos. En este
proyecto no se ha trabajado con un prototipo sino que se ha trabajado sobre el dispositivo
real. Los resultados obtenidos de estos se han recogido en las respectivas secciones que
posteriormente se mostraran. En conclusion, el objetivo de esta captulo es demostrar
que algoritmos funcionan correctamente y cuales no, tanto a nivel de simulaci
on como a
nivel real.

6.1.

Simulaciones

En esta primera parte del captulo se estudiaran los resultados obtenidos en las simulaciones realizadas. Para asegurar un buen resultado, se han ensayado la mayor parte
de los bloques dise
nados en los captulos anteriores. Los contenidos se han organizado siguiendo el orden presentado en la secci
on 4.3 para otorgar a este documento de una mayor
coherencia. A continuacion se procede a mostrar los resultados obtenidos.

6.1.1.

Control para el modelo completo

Los resultados que se muestran en esta seccion corresponden las simulaciones realizadas sobre el modelo matematico completo de la nave. Por tanto, se ha hecho uso del
regulador definido en la seccion 4.3.2, donde se explico en detalle el dise
no y funcionamiento del mismo. Se recuerda que el objetivo de este algoritmo es la regulacion de la nave a
traves de velocidades lineales, es decir, utilizando como referencias para el controlador las
velocidades deseadas en cada direccion cartesiana. Para lograrlo se dividio el regulador en
tres controles parciales, cada uno encargado de regular un conjunto de variables concretas.
As pues, se ha realizado un estudio de sensibilidad y de respuesta en frecuencia para cada
uno de esos controles parciales, de forma que se pueda obtener cierta informacion tanto de
la respuesta temporal como de la robustez del controlador. Una vez concluido este estudio
se presentara la respuesta temporal del conjunto as como los efectos de la m
aquina de
estados incluida en el algoritmo. As pues, este conjunto de estudios permite describir y
evaluar con gran profundidad la calidad del controlador, permitiendo su utilizacion en el
sistema real si muestra resultados favorables. Por tanto, a continuacion, se presenta la
respuesta en frecuencia de dichas funciones de transferencia.
La figura 6.1 presenta un gr
afico de Black-Nichols describiendo la respuesta en frecuencia tanto de la planta retarda como del lazo abierto para la regulacion del
angulo
.

130

Modelado y Control de un Cuadricoptero

Ensayos

Nichols Chart

30

20

System: G_phi
Phase Margin (deg): 50.7
Delay Margin (sec): 0.206
At frequency (rad/s): 4.3
Closed loop stable? Yes

OpenLoop Gain (dB)

10

0
System: P_phiret
Phase Margin (deg): 12.2
Delay Margin (sec): 1.15
At frequency (rad/s): 5.28
Closed loop stable? No

10

20

30

40

System: G_phi
Gain Margin (dB): 37.9
At frequency (rad/s): 314
Closed loop stable? Yes

50
225

180

135

OpenLoop Phase (deg)

Figura 6.1: Respuesta en frecuencia del regulador para el


angulo
La funci
on de transferencia asociada a esta variable se presento en la seccion 4.3.1 a
traves de la ecuaci
on contenida en la tabla 4.1, y ha sido controlada traves de un regulador
PD. En la figura se puede observar que la repuesta original del la planta retardada describe
un comportamiento inestable del sistema, pues su margen de fase es negativo. Consecuentemente, la acci
on derivativa en el controlador es obligatoria ya que se ha de desplazar la
curva hacia la derecha del gr
afico mostrado, para hacer el sistema estable. La presencia
del control permite obtener un margen de fase de 50.7 grados, que no solo garantiza la
estabilidad del sistema, sino que ademas asegura una respuesta temporal adecuada. El
margen de ganancia obtenido tambien cumple las recomendaciones de dise
no que describe
la literatura, al ser este mayor que 6 dB. Por otro lado, es importante remarcar la pulsacion de cruce obtenida que es de 4.3 rad/s pues, como se describio en la secci
on 4.3.2, este
control parcial ha de ser mas rapido que el asociado a las velocidad lineales.
La repuesta en frecuencia asociada a las funciones de transferencia que describen el
comportamiento de la velocidad lineales en los ejes x e y, se ha incluido en la figura 6.2.
Nichols Chart
20

System: G
Phase Margin (deg): 76.1
Delay Margin (sec): 1.61
At frequency (rad/s): 0.823
Closed loop stable? Yes

10

System: P_ret
Phase Margin (deg): 89.7
Delay Margin (sec): 1.57
At frequency (rad/s): 1
Closed loop stable? Yes

OpenLoop Gain (dB)

10

20

30

40
System: G
Gain Margin (dB): 51.9
At frequency (rad/s): 314
Closed loop stable? Yes

System: P_ret
Gain Margin (dB): 49.9
At frequency (rad/s): 314
Closed loop stable? Yes

50

60
180

135
OpenLoop Phase (deg)

Figura 6.2: Respuesta en frecuencia del regulador para Vx,y


131

90

Modelado y Control de un Cuadricoptero

Ensayos

La funci
on de transferencia fue obtenida en la seccion 4.3.1 y su ecuacion, muy simple
en realidad, se mostro en la tabla 4.2. Para regular su comportamiento se ha hecho uso de
un regulador PI con ponderacion a la referencia, comportamiento que se puede apreciar
a traves de la evolucion de la respuesta de la planta retardada. El hecho de que este se
encuentre desplaza hacia izquierda suele indicar la presencia de una accion integral en el
control y, generalmente, la inexistencia de derivaciones. As pues, la presencia de la integracion ha ralentizado la repuesta de la planta aunque a cambio se ha anulado el error en
regimen permanente. El hecho de que sea m
as lenta no supone un gran problema puesto
que la principal condicion es que este regulador sea m
as lento que el de los
angulos. Como
la pulsacion de corte para el PI es de 0.823 rad/s que, claramente, es menor que los 4.3
rad/s del PD anterior, se puede afirmar que se cumple la condici
on y por tanto es de
esperar que el algoritmo funcione correctamente en conjunto. Ademas podemos extraer
los parametros clasicos de la respuesta en frecuencia de una funcion de transferencia. El
margen de fase obtenido es de 76.1, ligeramente superior al recomendado pero no por ello
es incorrecto pues la aplicacion puede necesitarlo. De igual manera, margen de ganancia
para este caso de 51.9 dB, muy superior al mnimo recomendado y por tanto ofreciendo
un resultado positivo.
Se recuerda que el control de la velocidad asociada al eje vertical Z, haba sido modificado ligeramente pues era com
un obtener las medidas de la altura del dispositivo en vez de
su velocidad. Consecuentemente, al variar el tipo de entrada, la funci
on de transferencia
se modificado resultando su respuesta en el diagrama de Black de la figura 6.3.

Nichols Chart
Gvz
Gz
Ph_ret

40

20

OpenLoop Gain (dB)

System: Gz
Phase Margin (deg): 39.3
Delay Margin (sec): 1.07
At frequency (rad/s): 0.639
Closed loop stable? Yes

System: Gvz
Phase Margin (deg): 41.7
Delay Margin (sec): 1.34
At frequency (rad/s): 0.545
Closed loop stable? Yes

0
System: Ph_ret
Phase Margin (deg): 47.2
Delay Margin (sec): 1.12
At frequency (rad/s): 0.736
Closed loop stable? Yes

20

40

System: Ph_ret
Gain Margin (dB): 46
At frequency (rad/s): 12.6
Closed loop stable? Yes

60

System: Gvz
Gain Margin (dB): 48.3
At frequency (rad/s): 11.5
Closed loop stable? Yes

80
180

150
OpenLoop Phase (deg)

120

Figura 6.3: Respuesta en frecuencia del regulador para Vz


Como se describio en la secci
on 4.3.2, la regulacion de esta velocidad se obtiene con
control en cascada formado por un regulador PI con ponderacion a la referencia para la
altura mas un accion proporcional sobre su respuesta obteniendose la velocidad vertical
del cuerpo.
132

Modelado y Control de un Cuadricoptero

Ensayos

En la figura 6.3 se han incluido la respuesta del planta asociada a la altura, as como
las asociadas al lazo abierto con el control PI y el control P-PI. La accion integral incluida
en el primer regulador desplaza la grafica de la planta hacia la izquierda obteniendose una
pulsacion de cruce menor a lo original y de valor 0 =0.64 rad/s. El margen de fase fijado
es de 39.3 grados, valor que es un poco inferior al recomendado por la literatura. Por tanto
la accion proporcional posterior corregira, ligeramente, este margen situ
andolo dentro de
los lmites establecidos. El nuevo margen de fase es de 41.7 grados aunque la pulsacion
de cruce se ha reducido a 0.545 rad/s. De nuevo se cumple que la respuesta es m
as lenta
que la asociada a los
angulos de Euler, por lo que es de esperar que el controlador en su
conjunto funcione correctamente. Finalmente, el margen de ganancia es de nuevo superior
al fijado siendo este de 48.3 dB.
A fin de sintetizar lo descrito anteriormente, se han incluido los parametros caractersticos de las distintas respuestas en frecuencia en la tabla.
FDT

Am

50,7o

37.9 dB

4.3 rad/s

314 rad/s

Vx,y

76,1o

51.9 dB

0.823 rad/s

314 rad/s

Vz

41,7o

48.3 dB

0.545 rad/s

11.5 rad/s

Tabla 6.1: Valores caractersticos de la respuesta en frecuencia


El siguiente estudio que se presenta es el de la sensibilidad, que permite obtener informacion sobre la robustez del controlador, es decir, como respondera a fallos en el dise
no de
la planta, entradas con ruido etc. La forma de medirlo se realiza a traves de los diagramas
de Bode de la funcion sensibilidad y de su complementaria, definidas en 6.1. Los valores
que se utilizan para la clasificacion de la robustez se obtienen del valor m
aximo de cada
respuesta que, como muestra 4.1 es funci
on de la planta. Por tanto, para hacer un estudio
coherente con su significado se procedera a analizar los tres controles parciales de los que
se compone el regulador.
S =
T

1
1+G
G
1+G

(6.1)

La figura 6.4 muestra la respuesta en frecuencia de la fdt de sensibilidad y su complementaria asociada al


angulo . La figura superior muestra la propia de la sensibilidad
y su valor maximo se sit
ua en Ms=1.35 dB. A traves de la figura inferior, asociada a la
sensibilidad complementaria, se obtiene el valor maximo de esta, situado en Mt=4.49 dB.
La literatura recomienda valores de Ms inferiores a 6 dB, condicion que se cumple, y de
Mt menores a 2,3 dB. Para este control, Mt es mayor al recomendado lo que no garantiza
un gran robustez, aunque no por ello deja de ser v
alido su uso.

133

Modelado y Control de un Cuadricoptero

Ensayos

Bode Diagram

Magnitude (dB)

System: untitled1
Peak gain (dB): 1.35
At frequency (rad/s): 3.96

10
20
30
40
0

10

10
Frequency (rad/s)

Bode Diagram

Magnitude (dB)

10
System: untitled1
Frequency (rad/s): 2.48
Magnitude (dB): 4.49

0
10
20
30
0

10

10
Frequency (rad/s)

Figura 6.4: Sensibilidad para el


angulo
Continuando con este estudio se han incluido en la figura 6.5las repuestas de ambas
funciones asociadas, en este caso, a Vx,y . En este caso ambas son muy peque
nas siendo
Ms=0.034 dB y Mt=0.262. En este caso si cumplen ambas restricciones y por tanto este
regulador es m
as robusto.

Bode Diagram

Magnitude (dB)

0
System: untitled1
Peak gain (dB): 0.034
At frequency (rad/s): 52.7

10
20
30
40
0

10

10
Frequency (rad/s)

Bode Diagram
0
System: untitled1
Frequency (rad/s): 0.262
Magnitude (dB): 1.24

Magnitude (dB)

10
20
30
40
50
60
1

10

10

10

Frequency (rad/s)

Figura 6.5: Sensibilidad del regulador para Vx,y


Finalmente, en la figura 6.6 se ha representado la respuesta en frecuencia asociada
a la velocidad en el eje vertical. En esta, el pico de sensibilidad (Ms) se encuentra en
41.9 dB as como el de la complementaria (Tt) se sit
ua en 3.16 dB. El analisis es muy
similar al realizado en la figura 6.4, pues la sensibilidad m
axima se encuentra dentro de
los lmites recomendados pero la complementaria es ligeramente superior. A pesar de ello,
la diferencia no es grande y por tanto el control es muy aceptable.

134

Modelado y Control de un Cuadricoptero

Ensayos

Bode Diagram

Magnitude (dB)

10
0

System: untitled1
Peak gain (dB): 4.19
At frequency (rad/s): 0.729

10
20
30
40
1

10

10
Frequency (rad/s)

Bode Diagram
20

Magnitude (dB)

System: untitled1
Frequency (rad/s): 0.49
Magnitude (dB): 3.16

20
40
60
1

10

10
Frequency (rad/s)

Figura 6.6: Sensibilidad del regulador para Vz


Al igual que se hizo con los parametros caractersticos de la respuesta en frecuencia,
se han recogido los valores m
as notables del an
alisis anterior en la tabla 6.2.
FDT

Ms

MT

0.422 dB

0.968 dB

Vx,y

0.422 dB

0.968 dB

Vz

0.422 dB

0.968 dB

Tabla 6.2: Valores caractersticos del estudio de la sensibilidad


Analizadas ya la respuesta en frecuencia y la sensibilidad del regulador, se procedera a
estudiar la respuesta temporal del mismo, es decir, como evolucionan las velocidades y los
angulo de Euler asociados al cuerpo con el tiempo.
Vx

Vy

2.5

Referencia
Vy

0.1
Referencia
Vx

1.5

Velocidad (m/s)

Velocidad (m/s)

0.1

0.5

0.3
0.4

0.5

0.2

0.5

100

200

300
Tiempo(s)

400

500

0.6

600

100

Vz

200

300
Tiempo(s)

400

500

600

Altura en el eje vertical

0.7

6
Referencia
Vz

0.6

Referencia
Altura

0.5

Altura (m)

Velocidad (m/s)

4
0.4
0.3
0.2

3
2

0.1
1
0
0

0.1
0.2

100

200

300
Tiempo(s)

400

500

1

600

100

200

300
Tiempo(s)

400

Figura 6.7: Simulacion completa. Velocidades lineales


135

500

600

Modelado y Control de un Cuadricoptero

Ensayos

En este an
alisis se incluye tambien los efectos de la maquina de estados permitiendo extraer
un mayor volumen de informacion del estudio. Dicha respuesta se muestra a traves de la
figura 6.7, donde se ha representado la evoluci
on de las variables bajo estudio durante
los 6 minutos de simulaci
on. Se ha optado por incluir los resultados completos de la
simulacion para obtener una visi
on global de esta, pudiendo describir los elementos mas
caractersticos de ellas. Mas adelante se incluyen graficas con m
as detalle para realizar un
estudio m
as minucioso del sistema. La simulaci
on realizada esta dividida en una serie de
partes gestionadas por la m
aquina de estados, por lo que el comportamiento en cada una
de ellas sera diferente. A continuacion se enumeran y describen dichas partes:
1. Entre t=0 y t=100s se inicia la nave. Este tiempo, escogido u
nicamente para la
simulacion, permitira calibrar los sensores de medida ajust
andolos para su posterior uso durante el vuelo del dispositivo. Como se puede observar en la gr
afica, las
velocidades son llevadas a cero de forma suficientemente rapida.
2. En t=100 se activa el funcionamiento del cuadricoptero y, tal como se programo en
la m
aquina de estados, el software lleva al dispositivo a una altura de trabajo fijada
en 1.8m. Este comportamiento se puede apreciar claramente en la grafica de la altura
(cuarto diagrama de la figura 6.7), pues esta aumenta a traves de una rampa con
una pendiente fijada por el algoritmo.
3. Para t=150, se introduce un pulso de 10s a la velocidad en el eje x, buscando observar
el comportamiento de esta. En esta parte, la m
aquina de estados se encuentra en
modo control libre y no realiza accion alguna sobre el sistema salvo el control de las
alturas m
aximas y mnimas, por seguridad. Para producir un desplazamiento en la
direccion especificada, el
angulo que debe verse modificado es el de cabeceo, es decir,
. Se puede comprobar en la figura 6.8 que u
nicamente se producen variaciones en ese
angulo, lo que demuestra el correcto funcionamiento del algoritmo. En la figura 6.9

se ha incluido la respuesta a este pulso en mayor detalle al mostrado en la figura 6.7,


la cual sera analizada m
as adelante. Es importante mencionar que se produce una
ligera variaci
on en la altura de la nave, debida a la nueva orientaci
on temporal de la
nave, lo cual demuestra de nuevo el correcto funcionamiento del c
odigo programado.
4. En t=210s se introduce otro pulso al sistema, esta vez en la direccion negativa del
eje y. Se ha optado por esta direccion para comprobar la validez del algoritmo en
todo su conjunto, es decir, en todas las direcciones del plano, positivas y negativas.
Por los resultados en las graficas de la figura 6.7, se puede observar que la variaci
on
de la velocidad en esa direccion no afecta a las demas velocidades y que u
nicamente
vara el
angulo de roll o . En este caso, el tiempo del pulso fijado ha sido mayor
que en anterior para poder evaluar eficiencia del control tanto en cuanto a errores
en regimen permanente etc, pudiendo observar que este es cero asegurando de nuevo
un buen comportamiento del regulador.

136

Modelado y Control de un Cuadricoptero

Ensayos

5. En t=300s se ha procedido a evaluar la labor de los elementos de seguridad de la


nave, pues se aumento la velocidad de giro de las helices para ganar mas altura.
Tal y como esta programado, la maquina debera llevar al dispositivo a la altura de
trabajo si esta supera el limite superior impuesto. En la grafica de la evoluci
on de
la altura se puede apreciar claramente esta accion, pues la nave adquiere una altura
superior a la fijada y, seguidamente, vuelve a su posici
on de trabajo a traves de una
rampa. Consecuentemente se comprueba el correcto funcionamiento del la maquina
de estados.
6. Por u
ltimo, en t=500s, se comprob
o otra de las condiciones de seguridad, esta de
gran importancia, programada en la m
aquina de estados, la carga de la batera. Esta
restricci
on evita que el dispositivo se quede sin batera en fase de vuelo y que, por
tanto, puedan generarse da
nos por colision sobre el dispositivo. De nuevo el comportamiento se aprecia en la grafica de la altura donde, claramente, se observa de nuevo
la rampa decreciente que lleva al dispositivo a altura 0.

A la vista de los resultados obtenidos se puede concluir, a nivel simulaci


on, que el
regulador programado funciona adecuadamente en su conjunto, es decir, los controladores
parciales y la m
aquina de estados. Sin embargo existen algunos puntos que conviene analizar con detenimiento. El primero se puede observar en las graficas de la figura 6.8, donde
se han representado las variaciones de los
angulos de Euler asociados a la aeronave.

theta
8

1.5

0.5

2
Angulos()

Angulos()

phi
2

0
0.5
1

4

1.5
2

6

100

200

3

300
Tiempo(s)

400

500

8

600

100

200

300
Tiempo(s)

400

500

600

100

200

300
Tiempo(s)

400

500

600

6.85

6.8

1.5

6.75

6.7

0.5

6.65

0
0.5

6.6
6.55

1

6.5

1.5

6.45

2
2.5

psi

x 10

Tensin(V)

Angulos()

2.5

0
2

6.4
0

100

200

300
Tiempo(s)

400

500

6.35

600

Figura 6.8: Respuesta al escalon de los


angulos de Euler y el mando

137

Modelado y Control de un Cuadricoptero

Ensayos

N
otese como las amplitudes de estos son relativamente bajas ya que en ning
un caso
se superan los diez grados. Si se tiene en cuenta que con estas variaciones se generan
velocidades de traslacion de hasta 2 m/s (como muestra la figura 6.7), velocidades relativamente importantes para la aplicacion, se puede asumir que es el rango de valores de
angulos con los trabajara el controlador. Esto es especialmente interesante para aquellos
controladores que se ajustaron a partir de una linealizaci
on del sistema respecto al punto
de equilibrio, pues las variaciones respecto al mismo no seran lo suficientemente grandes
como para invalidar el uso de este tipo de reguladores. Pero la importancia de los peque
nos
desplazamientos no reside u
nicamente en los controladores, sino tambien en las ecuaciones
del modelo en las que se supusieron peque
nos desplazamientos y que se aproximaron senos
y cosenos por sus equivalentes. As pues, este hecho permite aplicar una notable simplificacion al sistema sin perder descripcion de la realidad.
Otro punto digno de estudio es el valor de la se
nal de mando. N
otese como se encuentra
dentro de los lmites de tension fijados y que en ning
un momento satura la se
nal. Esto es
especialmente interesante porque se mantienen las propiedades lineales de las respuestas,
facilitando la obtencion de los parametros de los controladores. En parte, estos valores pico
son tan peque
nos porque el tiempo de establecimiento es relativamente alto, como muestra

la figura 6.9. Esta


grafica es un detalle de las velocidades en los ejes x e y, mostradas en
la figura 6.7. A partir de ellas se puede observar que el tiempo de establecimiento de la
se
nal es del orden de siete u ocho segundos. Clasificar este tiempo como demasiado grande
puede ser prematuro pues conviene realizar un ensa
no sobre el sistema real para evaluar la
influencia de ello. La principal ventaja es que al ser un poco grande, las acciones de mando
son mucho menores por lo que, dado que la limitacion del mando constituye la mayor
restricci
on, el margen control disponible aumenta en gran medida. Conviene estudiar, por
tanto, si realmente existe la necesidad de generar un margen de control de ese tama
no o si,
con respuestas mas rapidas, el sistema es capaz de ser regulado a la perfeccion. De hecho,
el valor del tiempo de establecimiento en este caso goza de menor importancia pues, como
el sobrepaso de las respuestas no es excesivamente grande, el tiempo de alcance adquiere
mayor valor de estudio. La razon de ello es que al ser un sobrepaso relativamente bajo,
para Vx del orden del 15 %, se puede suponer que la se
nal sigue la referencia, en terminos
generales, a partir del tiempo de establecimiento. Esto tiene sentido puesto que cuando
se fija una velocidad de traslacion, una diferencia del 15 % en los valores con los cuales se
trabaja es practicamente imperceptible. As pues, al ser el tiempo de alcance del orden de
tres o cuatro segundos, se puede concluir que el tiempo de respuesta es suficientemente
bueno para la aplicacion deseada.

138

Modelado y Control de un Cuadricoptero

Ensayos

Vx
2.5
Referencia
Vx

Velocidad (m/s)

1.5

0.5

0.5
145

150

155

160

165

170

Tiempo(s)

Vy
0.1
Referencia
Vy

Velocidad (m/s)

0.1

0.2

0.3

0.4

0.5
300

302

304

306

308

310
Tiempo(s)

312

314

316

318

320

Figura 6.9: Respuesta al escalon de las velocidades lineales


Los resultados arrojados por la simulacion de este regulador son bastante positivos,
pues no solo se demuestra que es capaz de regular el sistema, sino que lo hace de una forma
muy aceptable y con capacidad de incluir elementos de seguridad en el mismo. No se debe
olvidar que la dotaci
on de elementos de medida para este tipo de algoritmo es mucho
mayor que para los que se presentan en las secciones posteriores, por lo que parece tener
sentido que se obtengan mejores respuestas. Para elaborar un juicio sobre la verdadera
eficiencia de este algoritmo se debe ensayar en el sistema real, donde se debera lidiar con
las incertidumbres y perturbaciones que suelen incluir los equipos de medida.

6.1.2.

Controles para el modelo simplificado

Control PID
Es bastante com
un en este tipo de controladores realizar una serie de estudios caractersticos para evaluar la eficiencia y robustez del sistema. Generalmente se suele analizar
la respuesta temporal del sistema en lazo cerrado o realimentado as como la respuesta
en frecuencia del sistema en lazo abierto. Estudios m
as avanzados incluyen un analisis de
la sensibilidad que caracteriza el grado robustez del sistema, es decir, que el controlador
asegure como mnimo la estabilidad del sistema a
un cuando el modelo utilizado para el
dise
no no se corresponda exactamente con el sistema real. As pues, siguiendo con estos
patrones de estudio se proceder
a a realizar esos estudios.

139

Modelado y Control de un Cuadricoptero

Ensayos

El primer analisis que se presenta para este control es el de la respuesta en frecuencia,


para el cual se hara uso de los diagramas de Black-Nichols. En la figura 6.10 se muestran
dos diagramas de Black a traves de los cuales se describen la respuesta en frecuencia de
las plantas asociadas a , y (diagrama de la izquierda) y la del sistema en lazo abierto
(diagrama de la derecha).

Nichols Chart

Nichols Chart

40
Gphi
Gtheta
Gpsi

Pphi
Ptheta
Ppsi

10

20

System: Ppsi
Phase Margin (deg): 74.6
Delay Margin (sec): 0.0946
At frequency (rad/s): 13.8
Closed loop stable? Yes

System: Ptheta
Phase Margin (deg): 86.8
Delay Margin (sec): 0.541
At frequency (rad/s): 2.8
Closed loop stable? Yes

0
OpenLoop Gain (dB)

OpenLoop Gain (dB)

20

40

System: Gpsi
Phase Margin (deg): 80
Delay Margin (sec): 0.0279
At frequency (rad/s): 50
Closed loop stable? Yes

10

20

60
30

System: Gpsi
Gain Margin (dB): 29.4
At frequency (rad/s): 1.53e+03
Closed loop stable? Yes

80
40
100
180

150
120
OpenLoop Phase (deg)

90

270

225

180
135
90
OpenLoop Phase (deg)

45

Figura 6.10: Diagrama de Black-Nichols de las plantas y del control en lazo abierto
En el diagrama de la izquierda se pueden observar tres respuestas, dos de ellas practicamente iguales y una tercera con la misma forma pero que se encuentra desplazada
verticalmente. Esto tiene sentido pues como se mostro en las funciones de transferencia
recogidas en la tabla 4.1, para un mismo valor de K, solo difieren en las constantes del
numerador. La igualdad en el denominador de las mismas implica que todas tienen los
mismos polos y, por tanto, al no existir ceros en ninguna de ellas, una misma respuesta.
En consecuencia, la traslacion vertical se debe a la diferencia entre los parametros que
conforman el numerador. Al ser muy parecidos los valores de Ix e Iy , sus respuestas son
practicamente iguales. Sin embargo, Iz es casi un orden de magnitud mayor por lo que la
repuesta de Pz sera la de Px desplazada entorno a 20 dB (20 log 10) hacia arriba, como se
puede observar en el grafico.
De este gr
afico se puede obtener tambien informacion sobre la estabilidad de la planta,
siendo estas estables ya que, para la frecuencia de corte propia, la fase de la planta es
menor que 180. Esto quiere decir que el control a dise
nar no necesita de una accion establizante sino u
nicamente mejorar la respuesta del sistema, por lo que es de suponer que
se requieran acciones del mando menores. Sin embargo es importante remarcar que estas
funciones de transferencia son aproximaciones de la realidad obtenidas para un punto de
equilibrio por lo que, si el sistema se aleja de este, puede que el sistema se haga inestable.
Por eso se buscar
a un cierto grado de robustez en el control.
140

Modelado y Control de un Cuadricoptero

Ensayos

Asmismo, la frecuencia de corte de las plantas puede considerarse relativamente baja por
lo que se buscar
a aumentarla a traves de la accion diferencial o proporcional del regulador.
El margen de fase que presentan es relativamente bueno aunque superior al recomendado
por la literatura (45 m 60) y el margen de ganancia es infinito, valor que se corregira tambien con el regulador.
El mencionado regulador genera un repuesta en lazo abierto como la representada en
el diagrama de la derecha de la figura 6.10. En este caso se puede observar que los tres
angulos tienen la misma respuesta, de forma que el sistema se comporte de la misma manera independientemente de la direccion de giro. Esto tiene la ventaja de que se eliminan
posibles efectos desestabilizantes por diferencias en las respuestas de las partes que componen el conjunto. Los valores para los cuales se calcularon los parametros del regulador
se enumeraron en la seccion 4.3.3 y en este gr
afico se puede comprobar que se cumple.
As pues, la pulsacion de corte es de 50 rad/s (respuesta m
as r
apida) y se obtiene un margen de fase de 80 grados y un margen de ganancia de 29.4 dB. Acorde a la literatura, se
recomiendan valores superiores a 6 dB para el margen de fase, limitacion que supera con
creces. Por otro lado el margen de fase es superior al recomendado pero no por ello deja de
ser aceptable pues la principal influencia de este esta en el grado de amortiguamiento de
la respuesta. Como en este control se hace uso de la ponderacion a la referencia, se puede
usar un exceso de amortiguamiento en el sistema (debido a un margen de fase algo mayor
de lo indicado) para posteriormente ajustar la repuesta con la ponderacion para obtener
el sobrepaso deseado.
Generalmente, para el dise
no de controladores en tiempo discreto se suele realizar un
analisis del retardo que introduce el efecto de muestro en el sistema, pudiendo ser particularmente grande llegando a modificar altamente la respuesta del control. Para evitar este
efecto indeseable se hace uso del llamado modelo analogico modificado el cual consiste, en
esencia, en a
nadir un retardo de medio periodo de muestreo a la planta con la que se realiza
el dise
no. Este truco es valido para periodos de muestreo tanto peque
nos como medianos,
pero falla cuando estos son grandes. Sin embargo en este proyecto Ts es bastante peque
no
o

y su efecto de retardo es despreciable (s = 2,92 ) como se muestra en la figura 6.11. Este


grafico muestra la respuesta en frecuencia de la planta modificada y sin modificar, as como
el sistema bajo control en lazo abierto para el
angulo phi. Claramente, las respuestas de
la planta y la planta modificada son muy parecidas para valores de frecuencia cercanos a
la pulsacion de cruce de dise
no. N
otese como, para frecuencias grandes, la diferencia entre
las respuestas es notable y de buscar un dise
no con pulsaciones de cruce altas si tendra
un efecto grande en el sistema. Consecuentemente, se podra haber realizado el dise
no
del control con la planta original pero a fin de evitar cualquier disfuncion por parte del
control, se ha realizado con el modificado.

141

Modelado y Control de un Cuadricoptero

Ensayos

Nichols Chart

40

30

Modelo analgico
Modelo analgico modificado
Lazo abierto con modelo modificado

20
System: Lazo abierto con modelo modificado
Phase Margin (deg): 80
Delay Margin (sec): 0.0279
At frequency (rad/s): 50
Closed loop stable? Yes

OpenLoop Gain (dB)

10

System: Modelo analgico modificado


Phase Margin (deg): 86.6
Delay Margin (sec): 0.539
At frequency (rad/s): 2.81
Closed loop stable? Yes

0
10
System: Lazo abierto con modelo modificado
Gain Margin (dB): 29.4
At frequency (rad/s): 1.53e+03
Closed loop stable? Yes

20
30
40

System: Modelo analgico modificado


Gain Margin (dB): 50.9
At frequency (rad/s): 219
Closed loop stable? Yes

50
60
315

270

225
180
OpenLoop Phase (deg)

135

90

Figura 6.11: Respuesta en frecuencia del modelo analogico, el modificado y el lazo abierto
En la tabla 6.3 se ha recogido los parametros m
as caractersticos del estudio realizado
a fin de remarcar los valores mas crticos.
m

Am

80o

29.4 dB

50 rad/s

1530 rad/s

2,92o

Tabla 6.3: Valores caractersticos de la respuesta en frecuencia


A continuacion se proceder
a con el analisis de la sensibilidad del sistema que, como se
avanzo anteriormente, permite caracterizar la robustez del sistema. Este tipo de estudio
hace uso de los diagramas de Bode de las funciones de transferencia de sensibilidad (figura
6.12) y de sensibilidad complementaria (figura 6.13) definidas como:
S =
T

1
1+G
G
1+G

(6.2)

En estos diagramas se buscaran los maximos de cada repuesta obteniendose los valores
de la m
axima sensibilidad (Ms ) y de la sensibilidad complementaria (MT ). De la figura
6.12 se puede obtener el primero de ellos siendo igual a 0.422 dB. Acorde a la bibliografa,
se recomiendan valores de Ms menores a 6 dB, pues garantizan margenes de ganancia y
on entre
de fase mayores a 6 dB y 29o respectivamente. Ademas, como esta mide la relaci
las entradas (referencias y perturbaciones) y el error, permite expresar el efecto de estas,
con mayor interes las perturbaciones en carga, sobre la salida. El valor obtenido es, por
tanto, menor al lmite fijado y por tanto cumple la condici
on.

142

Modelado y Control de un Cuadricoptero

Ensayos

Figura 6.12: Diagrama de bode del control en lazo abierto


Por otro lado, la maxima sensibilidad complementaria relaciona la referencia con la
salida y constituye una buena forma de medir la influencia del ruido en la medida sobre
esta. Consecuentemente se busca que MT sea lo mas proxima posible a 0 dB para aislar
la salida del sistema. Acorde a la literatura, se recomiendan valores inferiores a 2,3 dB
condicion que de nuevo, a traves del diagrama 6.13, se cumple pues el valor obtenido con
este control es MT =0,968 dB garantizandose m
argenes de ganancia y fase superiores a 4,9
dB y a 45o .

Figura 6.13: Diagrama de bode para el estudio de la sensibilidad complementaria


Consecuentemente se puede asumir que el control dise
nado es lo suficientemente robusto como para garantizar su correcto funcionamiento en el sistema real. De nuevo se
han incluido los valores caractersticos en la tabla 6.4.
Ms

MT

0.422 dB

0.968 dB

Tabla 6.4: Valores caractersticos del estudio de la sensibilidad


143

Modelado y Control de un Cuadricoptero

Ensayos

El tercer estudio que se realizara, y quizas el m


as intuitivo, es el de la respuesta
temporal. En el se analizara como responde el sistema ante distintas referencias incluyendo
los efectos de las perturbaciones y ruido. En la figura 6.14 se muestra la respuesta libre del
sistema ante un
angulo inicial distinto del de la posici
on de equilibrio, es decir, muestra
como el regulador lleva al sistema a la posicion de equilibrio. Para realizar un estudio mas
extenso se han incluido las repuestas libres del sistema para los tres
angulos caractersticos
as como la accion del mando necesaria para llevarlos al punto de equilibrio.

Respuesta libre theta=1


1

0.5

0.5

Angulo ()

Angulo ()

Respuesta libre phi=1


1

0.5

0.1

0.2

0.3
0.4
Tiempo (s)

0.5

0.6

0.7

0.5

0.1

Respuesta libre psi=1

0.2

0.3
0.4
Tiempo (s)

0.5

0.6

Mando para la respuesta libre

7
U1
U2
U3
U4

6.5
0.5

Fuerza (N)

Angulo ()

0.7

0
5.5

0.5

0.1

0.2

0.3
0.4
Tiempo (s)

0.5

0.6

0.7

0.05

0.1

0.15
Tiempo (s)

0.2

0.25

0.3

Figura 6.14: Respuesta libre del sistema y accion del mando


As pues se puede observar que el sistema tiene un efecto estabilizante para todos los
angulos, siendo capaz de alcanzar el punto de equilibrio en aproximadamente 0.4 segundos. Este tiempo de alcance es bastante razonable para la aplicacion deseada aunque el
soprepaso generado puede ser un poco elevado siendo superior en los
angulos phi y theta.
Sin embargo esto no es especialmente crtico en este caso sino que se ha de prestar mayor
atenci
on a la accion del mando. El hecho de que las cuatro se
nales de mando converjan
a un mismo punto indica que el control esta funcionando correctamente pues, al existir
una integraci
on en la planta, la u
nica forma de que la accion integral deje de actuar es
que el mando sea nulo. La grafica no muestra un mando igual a cero porque ha sido corregido matematicamente transformandolo de valores de fuerza a voltios. Sin embargo, se
puede observar que en el estado inicial estos estan relativamente proximos a los niveles de
saturacion (se recuerda que la condicion inicial es de un grado y es de esperar que en la
realidad sea mayor). En consecuencia, este control parece requerir de acciones demasiado
altas y debera ser estudiado posteriormente.

144

Modelado y Control de un Cuadricoptero

Ensayos

A continuacion se presentan las repuestas a escalones de distintos valores en la referencia empezando por el unitario, mostrado en la figura 6.15. En esta grafica se han
superpuesto las repuestas de cada
angulo a fin de ver con mayor claridad los parametros
caractersticos de estas.

Respuesta al escaln unitario sin ponderacin


Phi
Theta
Psi
1.2

Angulo ()

0.8

0.6

0.4

0.2

0.2

0.1

0.2

0.3

0.4

0.5
Tiempo (s)

0.6

0.7

0.8

0.9

Figura 6.15: Respuesta al escalon unitario sin ponderacion a la referencia


Lo primero que se puede observar es que la respuesta al escal
on para el
angulo es
un poco mas lenta que las de los otros dos
angulos y que ademas presenta un mayor
sobrepaso. El hecho de que la repuesta sea un poco mas lenta no supone un gran problema
pues la diferencia es practicamente despreciable. Sin embargo s se ha de poner especial

cuidado al sobrepaso obtenido que, para todo los


angulos, es superior al 20 %. Este
hecho es
particularmente peligroso puesto que para escalones mayores pueden obtenerse repuestas
con grandes sobrepasos, oscilaciones o incluso inestables. Por suerte existe una solucion
sencilla a este inconveniente y es que la respuesta mostrada es propia del control PID sin
ponderaci
on a la referencia, por lo que a
nadiendo un valor cuidadosamente seleccionado
se puede generar una respuesta m
as favorable como la mostrada en la figura 6.16. Los
valores para las ponderaciones en cada
angulo se han recogido en la tabla 6.5. N
otese que los
valores de b para los
angulos y son similares puesto que, como se vio anteriormente, las
repuestas eran muy parecidas. Sin embargo b es ligeramente inferior, hecho que tambien
era predecible.
b

0.775

0.775

0.667

Tabla 6.5: Valores de las primeras ponderaciones a la referencia para el PID

145

Modelado y Control de un Cuadricoptero

Ensayos

Respuesta al escaln unitario con ponderacin


Phi
Theta
Psi
1

0.8

Angulo ()

0.6

0.4

0.2

0.2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Tiempo (s)

Figura 6.16: Respuesta al escalon unitario con ponderacion a la referencia


Esta repuesta presenta un menor sobrepaso y gracias a la ponderacion se han podido
asemejar m
as las tres respuestas aunque la del
angulo sigue siendo ligeramente m
as
lenta. De nuevo este hecho no es relevante pues la diferencia en tiempos de respuesta es
a
un menor que en control si ponderacion. Consecuentemente se puede afirmar que este tipo
de ajuste, con un regulador de dos grados de libertad, permite obtener una mejor respuesta
y por tanto se proceder
a a continuar con este. Sin embargo se ha de estudiar o evaluar
que mando es necesario para generar esa salida, mando que se encuentra representado en
la figura 6.17.
Mando para la respuesta al escaln unitario con ponderacin
7
U1
U2
U3
U4

6.8

6.6

6.4

Fuerza (N)

6.2

5.8

5.6

5.4

5.2

0.05

0.1

0.15
Tiempo (s)

0.2

0.25

0.3

Figura 6.17: Se
nal de mando para la respuesta al escalon unitario con ponderacion a la
referencia
Se puede observar que este tipo de regulador no llega a satura el mando para un
escalon unitario a la entrada. Sin embargo s se puede observar que requiere de valores
relativamente altos teniendo en cuenta los lmites de saturaci
on fijados por las condiciones
fsicas del sistema. As pues, aunque la respuesta es muy buena para escalones unitarios es
146

Modelado y Control de un Cuadricoptero

Ensayos

de esperar que el comportamiento sea diferente para escalones mayores. Para comprobarlo
se han realizado dos simulaciones m
as, en las que se introduce al sistema un escalon de 10
grados a cada
angulo (figura 6.18) y otra en la que se introduce uno de 20 grados (6.19).
Respuesta escaln theta=10
15

10

10
Angulo ()

Angulo ()

Respuesta escaln phi=10


15

0
1

1.2

1.4
Tiempo (s)

1.6

1.8

1.2

Respuesta escaln psi=10

1.4
Tiempo (s)

1.6

1.8

Mando para la respuesta libre

25

8.5
U1
U2
U3
U4

8
20

7.5
Fuerza (N)

Angulo ()

15
10

7
6.5
6
5.5
5

4.5
0
1

1.2

1.4
Tiempo (s)

1.6

1.8

1.2

1.4
Tiempo (s)

1.6

1.8

Figura 6.18: Respuesta a un escalon de 10o con ponderacion a la referencia


La respuesta al escal
on de 10o muestra un aumento en el sobrepaso de las repuestas asociadas a los
angulos y , mientras que cambia en menor medida. Si el mando no entrase
en saturacion, al ser un sistema lineal, el sobrepaso debera aumentar proporcionalmente
a la amplitud del escalon en referencia sin embargo, como se puede observar en la se
nal de
mando, esta esta saturada en un intervalo. Afortunadamente el sistema es capaz seguir la
referencia a
un con esa limitacion. Se puede observar que el
angulo adquiere un sobrepaso
asumible constituyendo junto con una buena respuesta al escalon. Por el contrario
adquiere un sobrepaso extremadamente elevado aunque consigue volver a la referencia.
Tambien es importante remarcar que la respuesta se ha hecho mas lenta que la mostrada
en el escalon unitario debido, de nuevo, a la saturacion en el mando.
Respuesta escaln phi=20

Respuesta escaln theta=20


30

20
25
20
Angulo ()

Angulo ()

15

10

15
10

5
5
0

0
1

1.2

1.4
Tiempo (s)

1.6

1.8

Respuesta escaln psi=20

1.2

1.4
Tiempo (s)

1.6

1.8

Mando para la respuesta al escaln

70

8.5
U1
U2
U3
U4

60

7.5
Fuerza (N)

50
Angulo ()

40
30

7
6.5
6
5.5

20

5
10

4.5

0
1

1.5

2.5

Tiempo (s)

1.2

1.4
Tiempo (s)

1.6

1.8

Figura 6.19: Respuesta a un escalon de 20o con ponderacion a la referencia

147

Modelado y Control de un Cuadricoptero

Ensayos

Procediendo con el analisis temporal se ha introducido el escalon de 20o dandose comportamientos peculiares en la salida. La respuesta del
angulo tiende a sobreamoriguarse
y las de y sufren un aumento en el tiempo de establecimiento y en el sobrepaso. De
igual manera, el mando sigue estando saturado, esta vez por un mayor intervalo de tiempo
lo que genera m
as irregulares en las respuestas. Si se tiene en cuenta que lo normal es que
las amplitudes de las referencias esten entre 5 y 15 grados surge la necesidad de recalibrar
el controlador para ajustar una mejor respuesta para cada
angulo. Los nuevos valores de
la ponderacion a cada
angulo se han incluido en la tabla 6.6.
b

0.8

0.5

0.05

Tabla 6.6: Valores de las ponderaciones a la referencia corregidas para el PID


Esta recalibraci
on consiste en sobreamortiguar la salida para un escalon unitario de
forma que para uno de 20 grados muestre una respuesta aceptable. La repuesta del sistema
con la ponderaci
on modificada se muestra en la figura 6.20 donde se ha introducido un
escalon de 20 grados. Se ha escogido esa amplitud para garantizar una salida adecuada
para el valor mas desfavorable con el que se trabajara. Sin embargo, no por ello se dejaran
de analizar respuestas a escalones de mayor amplitud pues proporcionan informacion sobre
la robustez del sistema.
Respuesta escaln theta=20
20

15

15
Angulo ()

Angulo ()

Respuesta escaln phi=20


20

10

10

0
1

1.2

1.4
Tiempo (s)

1.6

1.8

1.4
Tiempo (s)

1.6

1.8

Mando para la respuesta el escaln

40

8.5

35

30

7.5

25

Fuerza (N)

Angulo ()

Respuesta escaln psi=20

1.2

20
15

U1
U2
U3
U4

7
6.5
6
5.5

10

4.5

0
1

1.2

1.4

1.6

1.8
2
Tiempo (s)

2.2

2.4

2.6

2.8

1.2

1.4
Tiempo (s)

1.6

1.8

Figura 6.20: Respuesta a un escalon de 20o con ponderacion a la referencia corregida


La figura anterior muestra la salida del sistema con la ponderacion corregida para obtener una repuesta adecuada con 20 grados de amplitud en la referencia. Esto quiere decir
que para amplitudes menores, la salida estara sobre amortiguada y se perder
a velocidad
de respuesta. Sin embargo es un sacrificio necesario ya que de lo contrario el sistema se
hara inestable. La correccion en la ponderacion muestra una muy buena respuesta para
los angulos de y con un sobrepaso peque
no (del orden del 2 %). Sin embargo no
parece mejorar a pesar de la correccion. No se ha hecho especial hincapie en hacerlo puesto que el control de phi requiere de una correcta accion de este
angulo, accion que no es
148

Modelado y Control de un Cuadricoptero

Ensayos

posible realizar con los magnet


ometros montados como se menciono anteriormente. A
un
as, a pesar de la respuesta peculiar que muestra, el sistema es capaz de seguir la referencia.
No se ha mencionado anteriormente pero todas las respuestas mostradas se han obtenido gracias a la accion del bloque anti-windup que se ha instalado en el software de
control. Este bloque es imprescindible dada la presencia de saturaciones en los mandos,
hecho que se demuestra a traves de la figura 6.21.
Respuesta escaln psi=20

Mando para la respuesta el escaln

400

8.5

200

7.5

Fuerza (N)

200

Angulo ()

U1
U2
U3
U4

400

6.5

600
5.5
800
5
1000
4.5
1200
0

0.5

1.5

2.5
3
Tiempo (s)

3.5

4.5

0.5

1.5

2.5
3
Tiempo (s)

3.5

4.5

Figura 6.21: Respuesta a un escal


on de 20o con ponderacion y sin anti-windup
Esta figura muestra la respuesta del
angulo a un escal
on de 20 grados sin el bloque
anti-windup en el control. Claramente el sistema se hace inestable y el mando es incapaz
de llevar la salida al punto de referencia. Consecuentemente la presencia del bloque antiwindup es esencial, permitiendo controlar el dispositivo dadas las limitaciones fsicas que
presenta.
A fin de completar el estudio de la repuesta temporal proporcionada por el control
se ha a
nadido la salida del sistema ante un escalon de 50 grados en la referencia con la
ponderaci
on corregida, la cual se ha representado en la figura 6.22. El hecho m
as relevante
ha destacar es que sigue siendo estable a
un estando lejos del punto de equilibrio, lo cual
es una medida de la robustez del sistema. Como era de esperar, las respuestas no son
especialmente buenas aunque, de nuevo, para y son aceptables dada la magnitud de
la referencia. Como ocurra anteriormente, la repuesta del u
ltimo de los
angulos es la mas
desfavorable siendo la que hace peligrar la estabilidad del conjunto. N
otese que la se
nal de
mando muestra grandes tramos de saturacion y que, a pesar de ello, el sistema es capaz de
seguir esa referencia. Por desgracia a a partir de esta amplitud de escalon en la referencia el
sistema no es capaz de seguirlo haciendose inestable. Sin embargo es importante remarcar
la robustez del algoritmo siendo esta capaz de estabilizarse entorno a una referencia tan
alejada del punto de equilibrio.

149

Modelado y Control de un Cuadricoptero

Ensayos

Respuesta escaln phi=50

Respuesta escaln theta=50


80

40

Angulo ()

Angulo ()

50

30
20
10
0

60
40
20
0

1.5
2
Tiempo (s)
Respuesta escaln psi=50

1.5
2
Tiempo (s)
Mando para la respuesta el escaln
8
Fuerza (N)

Angulo ()

150

100
50

U1
U2
U3
U4

7
6
5

4
6
Tiempo (s)

10

1.5
Tiempo (s)

Figura 6.22: Respuesta a un escal


on de 50o con ponderacion corregida
Adicionalmente, se ha realizado una simulaci
on para observar la influencia de las perturbaciones en carga sobre la salida. Dado que el controlador contiene una integraci
on, el
error en regimen permanente ante un escalon en perturbaci
on es nulo y, en consecuencia,
el controlador debera ser capaz de cancelar la mencionada perturbaci
on. La respuesta
ante tal situacion se muestra en la figura 6.23, donde lo esperado coincide con la realidad. En t=4 se introduce un escalon de 10 grados en la referencia y el sistema responde
de forma sobreamortiguada, porque la ponderacion se recalculo para obtener una buena
respuesta para amplitudes de entrada de 20. En t=5 se introduce una perturbacion en el
sistema, perturbacion que saca la salida del valor de referencia pero que el control corrige
para volver a posicionarse en el lugar adecuado. En conclusion, tal y como se esperaba, el
controlador corrige las perturbaciones en carga sobre el sistema.
Respuesta al escaln de 10 con perturbacin en carga de 5
12

10

ngulos()

0
3.5

4.5

5.5

Tiempo (s)

Figura 6.23: Respuesta a un escalon de 10o con perturbacion en carga de 5

150

Modelado y Control de un Cuadricoptero

Ensayos

El segundo tipo de perturbaciones que pueden aparecer en un lazo de control son las
asociadas al ruido en la medida. Por tanto, a fin de evaluar el efecto sobre el sistema, se
ha realizado un ensayo que ha dado lugar al grafica que se muestra en la figura 6.24.

Respuesta al escaln de 1 con ruido en la medida

1.2

ngulos()

0.8

0.6

0.4

0.2

1.2

1.4

1.6

1.8

Tiempo (s)

Figura 6.24: Respuesta a un escalon de 1o con ruido en la medida


Esta grafica muestra la respuesta a un escalon unitario de un sistema al que se ha
incluido ruido en las medidas de los
angulos. Este ruido introducido es de peque
na varianza pues es de esperar que el filtro de Kalman proporcione una estimacion relativamente
limpia. De hecho, vista la respuesta obtenida el ruido en los
angulos parece afectar considerablemente a la respuesta, generando un sobrepaso mayor y unas oscilaciones ruidosas
en el regimen permanente. Esto pone de manifiesto, por tanto, la necesidad de obtener
unas estimaciones de los
angulos de Euler lo m
as limpias de ruido posible.
Finalmente, se han incluido los valores de las derivadas de los
angulos de Euler para
la comprobacion de las medidas de los giroscopos en el sistema real. Es general, estos
elementos suelen dar las medidas en grados por segundo, sin embargo conviene asegurarse
para evitar funcionamientos incorrectos del conjunto. De esta forma se proporciona una
referencia cuantitativa para su evaluaci
on. La figura 6.25 muestra las evolucion de las omegas, en rad/s, ante un escal
on de 10o . Los valores m
aximos de estas derivadas se recogen
en la tabla 6.7 para facilitar su inspeccion posterior.

2.8 rad/s
160.51

o /s

2.4 rad/s
137.58

o /s

1.4 rad/s
80.25 o /s

Tabla 6.7: Valores de las omegas del cuerpo ante un escalon de 10o

151

Modelado y Control de un Cuadricoptero

Ensayos

Velocidad angular theta

2.5

2.5

1.5

0.5

0.5

1.5

2
Tiempo (s)

2.5

1.5

Velocidad angular psi


1.5

Velocidad (rad/s)

Velocidad (rad/s)

Velocidad (rad/s)

Velocidad angular phi


3

0.5

4.2

4.4

4.6

4.8
5
Tiempo (s)

5.2

5.4

5.6

5.8

7.5

8.5
Tiempo (s)

9.5

Figura 6.25: Derivadas de los


angulos de Euler ante escalones de 10o
Control PID incremental
En la secci
on 4.3.3 se introdujo una variante del control PID dise
nado en la seccion
anterior, en el cual se trabajaba con incrementos de se
nal en vez de con valores absolutos.

Este
modelo tiene la ventaja de que permite limitar estos incrementos a traves de una saturacion, reduciendo los escalones tanto en el mando como en la salida. Como el controlador
es el mismo, siempre que los lmites de saturacion incrementales sean lo suficientemente
laxos, las respuestas seran iguales y, por tanto, no se proceder
a a su analisis.
La elecci
on de los lmites de saturacion incrementales es especialmente delicada pues
puede hacer la respuesta inestable y, por tanto, invalidando su uso. Por otro lado se ha
de evaluar la necesidad de a
nadir esta restriccion a traves de las respuestas obtenidas en
la simulaci
on real. Este hecho se estudiara m
as en profundidad en el seccion 6.2, d
onde se
eval
ua la validez de los distintos controladores en el sistema real. Como anticipo, cuando
la se
nal de mando satura suele producirse un comportamiento peculiar, pues esta se transforma en una se
nal binaria oscilante, es decir, el mando vale bien el lmite superior o bien
el inferior fijado en la condicion de saturacion. Este comportamiento genera una salida
inestable y, por tanto, indeseada. Para evitarlo, se puede limitar los cambios entre estos
valores, es decir, los incrementos. Esta nueva restricci
on puede llevar al sistema anteriormente inestable a un punto de equilibrio si los lmites estan correctamente elegidos y, para
obtenerlos, es necesario evaluar las salidas del mando en el sistema real. As pues en esta
seccion no se presentaran graficas del control puesto que, sin limitaciones incrementales,
son exactamente las mismas que en el control PID estudiado anteriormente.

152

Modelado y Control de un Cuadricoptero

Ensayos

Control por realimentaci


on de estados
El siguiente controlador que se procedera a estudiar es el realizado por realimentacion
de estados. En esta seccion se evaluar
a la respuesta temporal para este tipo de regulador el
cual se definio con detalle en la secci
on 4.3.3. No se proceder
a al estudio de la respuesta en
frecuencia ni de la sensibilidad por ser la respuesta temporal suficientemente explicativa
para el caso que nos ocupa. Se invita al lector a proceder con estos estudios si lo considera
necesario. A continuacion se procede con el estudio enunciado.
La figura 6.26 muestra la respuesta libre del sistema controlado con este tipo de regulador.
Respuesta Libre

Mandos para escalones de 90


7.5

0.8

0.6

0.4

6.5

Fuerza (N)

ngulo ()

0.2

0.2
5.5
0.4

0.6

0.8

1

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

4.5

1.4

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

1.4

Figura 6.26: Respuesta libre con el control por realimentacion de estados


Como se puede observar, la posici
on inicial es de 1 grado siendo corregida por el regulador en practicamente 0.2s. Esta respuesta presenta unas oscilaciones especialmente
grandes en sus estabilizacion pero, lo particularmente importante es la accion de control
necesaria para que esto ocurra. Como se puede observar, el mando satura al corregir una
desviacion de un grado en la orientacion del dispositivo. Es importante remarcar que este
control no precisa de un mecanismo anti-windup siendo m
as simple su programacion y
mostrando que el regulador es capaz de llevar al dispositivo al punto de equilibrio a
un con
saturaciones en los mandos.
La siguiente grafica, mostrada en la figura 6.28, contiene la repuesta al escalon unitario para cada uno de los
angulos, as como, la accion de mando necesaria para se siga
esa referencia. En un primera inspeccion, se puede observar que la respuesta del
angulo
es inestable, lo que en principio invalida este tipo de regulador. Sin embargo, esta inestabilidad no viene dada por la realimentacion de estados, sino por una mala elecci
on de la
contante de integraci
on para este
angulo.

153

Modelado y Control de un Cuadricoptero

Respuesta escaln phi=1

1.2
1

0.8

0.8

0.6
0.4
0.2
0

Respuesta escaln theta=1

1.2

ngulo ()

ngulo ()

Ensayos

0.6
0.4
0.2

0.2

0.4

0.6

0.8

1
1.2
Tiempo (s)

1.4

1.6

1.8

4.5

Respuesta escaln psi=1

6.5

7.5

6.5

Fuerza (N)

ngulo ()

6
Tiempo (s)

Mandos para escalones de 1

500

500

5.5

7.5

8.5
Tiempo (s)

9.5

5.5

10

3
Tiempo (s)

Figura 6.27: Respuesta al escalon unitario


Consecuentemente, esta constante ha sido modificada y su nuevo valor se presenta en
la tabla 6.8.
KI

KI

KI

1050

1050

50

Tabla 6.8: Correccion en la KI del control por realimentacion de estados con accion integral
En la figura 6.28 se muestra al respuesta a un escal
on unitario una vez corregida la constante de integracion asociada al control del
angulo . Lo primero que se puede observar
es que su respuesta es ahora estable, lo que permite aceptar este control como un control
posible para el sistema. Ademas se puede observar que las respuestas de los tres
angulos
son muy similares, con un tiempo de establecimiento de 1.5 segundos y sobreamortiguadas.
Respuesta escaln phi=1

0.8

0.8

0.6
0.4
0.2
0

Respuesta escaln theta=1

1.2

ngulo ()

ngulo ()

1.2

0.6
0.4
0.2

0.2

0.4

0.6

0.8

1
1.2
Tiempo (s)

1.4

1.6

1.8

4.5

Respuesta escaln psi=1

5.5

6
Tiempo (s)

6.5

7.5

Mandos para escalones de 1


6.5

Fuerza (N)

ngulo ()

0.8
0.6
0.4

0.2
0

7.5

8.5
Tiempo (s)

9.5

5.5

10

3
Tiempo (s)

Figura 6.28: Respuesta al escalon unitario corregida


Si bien el tiempo de establecimiento puede ser un poco grande, es decir, el sistema
responde demasiado lento, existe una gran ventaja con este regulador la cual reside en su
154

Modelado y Control de un Cuadricoptero

Ensayos

accion de control. Como se puede observar, esta es muy breve y de poca amplitud por lo
que es de esperar correctos funcionamientos para referencias con mayor amplitud, como
se muestra en la figura 6.29.
Respuesta escaln theta=10
10

8
ngulo ()

ngulo ()

Respuesta escaln phi=10


10

6
4
2
0

6
4
2

0.2

0.4

0.6

0.8

1
1.2
Tiempo (s)

1.4

1.6

1.8

4.5

Respuesta escaln psi=10

5.5

6
Tiempo (s)

6.5

7.5

Mandos para escalones de 10


7.5

10

Fuerza (N)

ngulo ()

8
6
4
2
0

6.5
6
5.5
5

7.5

8.5
Tiempo (s)

9.5

4.5

10

3
Tiempo (s)

Figura 6.29: Respuesta a un escalon de 10


En estas gr
aficas se puede observar un comportamiento practicamente exacto al que se
obtuvo con el escal
on unitario, siendo la amplitud del escal
on en referencia en este caso 10
veces mayor al anterior. Esto da un idea de la robustez del regulador, siendo capaz de dar
la misma respuesta para entradas con un orden de magnitud de diferencia. N
otose como la
accion del mando ha variado, encontrandose saturada durante un breve periodo, cosa que
en el caso anterior no pasaba. Sin embargo, el controlador es capaz de llevar al sistema al
punto de referencia, en parte debido a que el tiempo en el que se encuentra saturado es
relativamente corto.
Si se aumenta la amplitud del escalon de entrada a 20 grados se obtiene la respuesta
mostrada en la figura 6.30
Respuesta escaln theta=20
20

15

15
ngulo ()

ngulo ()

Respuesta escaln phi=20


20

10

10

0.2

0.4

0.6

0.8

1
1.2
Tiempo (s)

1.4

1.6

1.8

4.5

Respuesta escaln psi=20

5.5

6
Tiempo (s)

6.5

7.5

Mandos para escalones de 20


7.5

20

Fuerza (N)

ngulo ()

15

10

6.5
6
5.5

5
5
0

7.5

8.5
Tiempo (s)

9.5

4.5

10

3
Tiempo (s)

Figura 6.30: Respuesta a un escalon de 20


155

Modelado y Control de un Cuadricoptero

Ensayos

Esta repuesta vuelve a ser muy similar a las anteriores para los
angulos y , de nuevo
demostrado una alta robustez en el regulador. Sin embargo, la respuesta del
angulo empieza a diferir ligeramente por lo que sera el punto debil del regulador, es decir, la variable
que desestabilizara el conjunto ante escalones de mayor amplitud. De nuevo, analizando
la accion de mando, se pueden observar tramos mas grandes de saturacion. Como ya se
mencion
o en secciones anteriores, la saturacion tiende a modificar, bastante notablemente,
la repuesta original accion que se puede comprobar en la gr
afica del
angulo . Sin embargo
es necesario incluir estos lmites puesto que no existe dispositivo real capaz de dar mandos
infinitos, es decir, siempre existe una limitacion que debera cumplirse. De no incluirse esta
saturacion, la respuesta obtenida carecer
a de sentido en el sistema real y solo servira para
inducir a error en futuros ensayos.
Tal y como se realiz
o con el controlador PID, se ha incluido la grafica de la figura 6.31
donde se presenta las se
nales obtenidas para cada
angulo ante una entrada de 50 grados.
Respuesta escaln phi=20

Respuesta escaln theta=20

500

1000

ngulo ()

ngulo ()

500

0
500
1000
1500

500

0.2

0.4

0.6

0.8

1
1.2
Tiempo (s)

1.4

1.6

1.8

2000

4.5

Respuesta escaln psi=20

5.5

6
Tiempo (s)

6.5

7.5

Mandos para escalones de 20

500

7.5

400

200

Fuerza (N)

ngulo ()

300

100
0

6.5
6
5.5

100
5

200
300

7.5

8.5
Tiempo (s)

9.5

4.5

10

3
Tiempo (s)

Figura 6.31: Respuesta a un escalon de 50


En esta se puede observar que el sistema es completamente inestable y por tanto su
margen de trabajo, en cuanto a amplitudes de entrada, ha de ser menor. N
otese como la
accion de mando es oscilante lo que demuestra, a
un estando suficientemente claro con las
demas graficas, la inestabilidad del conjunto.
Finalmente se han incluido a traves de la figura 6.32, al igual que con el controlador
PID, la evolucion de las velocidades de rotaci
on del cuerpo ante una referencia de 10
grados. Se puede observar que los valores mostrados son inferiores al anterior controlador,
debido a que la respuesta generada con la realimentacion de estados es m
as lenta. Otra
forma de demostrarlo es la siguiente. Como se busca una respuesta temporal mas lenta
las se
nales de mando tienen menor amplitud. Al tener menor amplitud los actuadores
entregan un menor voltaje a los motores generando por tanto una menor velocidad de giro
en el cuerpo. Los valores de las velocidad angulares m
aximas se recogen en la tabla 6.9.
156

Modelado y Control de un Cuadricoptero

Ensayos

Velocidad angular theta

Velocidad angular psi


0.8

0.7

0.7

0.7

0.6

0.6

0.6

0.5

0.5

0.5

0.4

Velocidad (rad/s)

0.8

Velocidad (rad/s)

Velocidad (rad/s)

Velocidad angular phi


0.8

0.4

0.4

0.3

0.3

0.3

0.2

0.2

0.2

0.1

0.1

0.1

1.5

2
Tiempo (s)

2.5

4.2

4.4

4.6

4.8
5
Tiempo (s)

5.2

5.4

5.6

5.8

7.5

8.5
Tiempo (s)

9.5

Figura 6.32: Derivadas de los


angulos de Euler ante escalones de 10o

0.68 rad/s
38.98

o /s

0.59 rad/s
33.82

o /s

0.73 rad/s
41.85 o /s

Tabla 6.9: Valores de las omegas del cuerpo ante un escalon de 10o
Control LQ para el modelo simplificado
El u
ltimo de los controladores que se dise
naron en la seccion 4.3.3 fue el control lineal
cuadratico o LQ, el cual es una version avanzada de un regulador por realimentaci
on de
estados. Se dice que es una version avanzada porque no se han de especificar los nuevos
polos del sistema sino que, a traves de las matrices de ruido Q y R, estos se obtienen
resolviendo una compleja ecuacion de costes. Por tanto, es de esperar un mejor comportamiento por parte del sistema que con el controlador anterior. Se recuerda que la matrices
de ruido y la ganancia de realimentacion se encuentran definidas en la secci
on 4.3.3, por
lo que no se mostraran de nuevo en esta secci
on.
La figura 6.33 muestra la respuesta libre del
angulo cuando este se ha posicionado a
20 grados del punto de equilibrio. El hecho de que se sit
ue a tal distancia y que el regulador
sea capaz de corregirlo, es un signo de robustez por parte del controlador. En cuanto a
la respuesta se puede observar un sobrepaso relativamente grande, pero asumible dado el
desequilibrio fijado, y un tiempo de establecimiento del orden de 0.6 segundos. La rapidez
en el establecimiento y la robustez del algoritmo parecen posicionar a este controlador
como uno de los mejores para la aplicacion buscada. N
otese que los mandos se encuentran
saturados y que, sin la presencia de un anti-windup, el sistema es capaz de recuperar la
posicion de equilibrio establecida.
157

Modelado y Control de un Cuadricoptero

Ensayos

Respuesta Libre

Mandos para escalones de 90


7.5

10

7
5

6.5

Fuerza (N)

ngulo ()

5

10

5.5

15

20
0

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

4.5

1.4

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

1.4

Figura 6.33: Respuesta libre


El siguiente conjunto de gr
aficas, mostradas en la figura 6.34, describen la respuesta
al escalon unitario del sistema regulador por este controlador. Se trata de una respuesta
sobreamortiguada y con tiempos de establecimiento de 0.7s para los
angulos y y del
orden de 1s para . Estos tiempos son bastante aceptables dada la aplicacion deseada y
consecuentemente, al no ser demasiado peque
nos, la accion de mando es tambien menor.
Esto se puede comprobar en el cuarta grafica de la figura, donde efectivamente se demuestra
que la se
nal de mando es muy favorable.
Respuesta escaln unitario theta
1

0.8

0.8
ngulo ()

ngulo ()

Respuesta escaln unitario phi


1

0.6
0.4
0.2
0

0.6
0.4
0.2

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

1.4

4.2

4.4

Respuesta escaln unitario psi

4.6
4.8
Tiempo (s)

5.2

5.4

Mandos para escalones unitarios


6

1
5.98
Fuerza (N)

ngulo ()

0.8
0.6
0.4

5.94
5.92

0.2
0

5.96

7.2

7.4

7.6

7.8

8
8.2
Tiempo (s)

8.4

8.6

8.8

5.9

5
6
Tiempo (s)

10

Figura 6.34: Respuesta al escalon unitario


El hecho de que sea mucho menor que en los controladores no es una sorpresa por dos
motivos principalmente:
1. El primero es que la respuesta tiene un tiempo de establecimiento mayor que la del
PID por lo que la accion de mando ha de ser menor.
2. La matriz de ganancia K se obtiene a partir de la resolucion de la ecuaci
on de costes,
que no es mas que la soluci
on a un problema de optimizacion donde se busca obtener
la mejor respuesta con la menor accion del mando posible.
158

Modelado y Control de un Cuadricoptero

Ensayos

Por tanto, dado que la saturaci


on del mando es lo que esta limitando el correcto funcionamiento de los controladores dise
nados, al exigir unos valores menor agresivos, se podran
introducir referencias con mayor amplitud obteniendose una salida regulada. Las siguientes graficas presentadas demuestran la anterior afirmaci
on.
La figura 6.35 incluye la respuesta de cada uno de los
angulos bajo estudio ante un
escalon de 10 grados en la referencia. Como el mando no satura en ning
un momento, la
respuesta es identica a la del escalon unitario pues se mantiene la condicion de linealidad.
El hecho de que esta no este saturada vuelve a ser un signo de robustez del sistema pues
en los controladores anteriores, para tal amplitud de entrada, ya se encontraba saturado.
Respuesta escaln theta=10
10

8
ngulo ()

ngulo ()

Respuesta escaln phi=10


10

6
4
2
0

6
4
2

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

1.4

4.2

4.4

Respuesta escaln psi=10

4.6
4.8
Tiempo (s)

5.2

5.4

Mandos para escalones de 20


6.5

10

Fuerza (N)

ngulo ()

8
6
4

2
0

7.2

7.4

7.6

7.8

8
8.2
Tiempo (s)

8.4

8.6

8.8

5.5

5
6
Tiempo (s)

10

Figura 6.35: Respuesta a un escalon de 10o


Prosiguiendo con el estudio de la respuesta temporal, se ha obtenido la salida del
sistema, msotrada en la figura 6.36 ante un escalon de 20 grados (como en los controladores
anteriores). De nuevo la respuesta sigue siendo la misma pues el mando sigue sin saturar
en ning
un momento, por lo que se mantiene la condicion de linealidad.
Respuesta escaln theta=20
20

15

15
ngulo ()

ngulo ()

Respuesta escaln phi=20


20

10

10

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

1.4

4.2

4.4

Respuesta escaln psi=20

5.2

5.4

Mandos para escalones de 20

6.5
Fuerza (N)

15
ngulo ()

20

10

5.5

4.6
4.8
Tiempo (s)

7.2

7.4

7.6

7.8

8
8.2
Tiempo (s)

8.4

8.6

8.8

5
6
Tiempo (s)

Figura 6.36: Respuesta a un escalon de 20o


159

10

Modelado y Control de un Cuadricoptero

Ensayos

El siguiente valor que se ha introducido en el sistema es de 50 grados, valor para el


cual los controladores empezaban a fallar. Como muestra la figura 6.37, el controlador no
solo es capaz de estabilizar el sistema sino que ademas responde de una manera perfecta.
Es para este valor donde se empiezan apreciar las primeras saturaciones del mando, pero
al situarse en un valor tan alto, permite aumentar en gran medida el rango de entradas
que se pueden regular.
Respuesta escaln theta=50
50

40

40
ngulo ()

ngulo ()

Respuesta escaln phi=50


50

30
20
10
0

30
20
10

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

1.4

4.2

4.4

Respuesta escaln psi=50

5.2

5.4

Mandos para escalones de 50


7.5

50

Fuerza (N)

40
ngulo ()

4.6
4.8
Tiempo (s)

30
20

6.5
6
5.5

10

4.5

7.2

7.4

7.6

7.8

8
8.2
Tiempo (s)

8.4

8.6

8.8

5
6
Tiempo (s)

10

Figura 6.37: Respuesta a un escalon de 50o


A fin de demostrar la grandeza y robustez de este controlador, se ha realizado un
ensayo en el que se ha introducido un escal
on de 90 grados en la referencia. Este valor es
bastante alto y carece de sentido para el modelado realizado, pero a nivel de simulacion
permite demostrar el potencial de este regulador. La repuesta se encuentra incluida en la
figura 6.38.
Respuesta escaln theta=90

80

80

60

60

ngulo ()

ngulo ()

Respuesta escaln phi=90

40
20
0

40
20

0.2

0.4

0.6
0.8
Tiempo (s)

1.2

1.4

4.2

4.4

Respuesta escaln psi=90

4.6
4.8
Tiempo (s)

5.2

5.4

Mandos para escalones de 90


7.5
7

60

Fuerza (N)

ngulo ()

80

40
20
0

6.5
6
5.5
5

7.2

7.4

7.6

7.8

8
8.2
Tiempo (s)

8.4

8.6

8.8

4.5

5
6
Tiempo (s)

10

Figura 6.38: Respuesta a un escalon de 90o


Se puede observar que las respuestas no son tan limpias como en los casos anteriores,
pero a
un as es capaz de seguir la referencia. Un hecho importante a remarcar es que es la

160

Modelado y Control de un Cuadricoptero

Ensayos

primera vez que el


angulo presenta una mejor respuesta que los otros dos para amplitudes elevadas en referencia. Esto se debe a que el tiempo de establecimiento de este era
ligeramente superior al de los demas, otorgandole un mayor margen de trabajo al exigir
acciones del mando ligeramente menores.
Por u
ltimo, se han vuelto a incluir en la figura 6.39 la evolucion de las velocidades

angulares del cuerpo cuando se introduce un


angulo de 10 grados en referencia. Estas
muestran unos valores maximos ligeramente superiores a las obtenidas en el control por
realimentacion de estados (pues el tiempo de respuesta es menor que en ese caso) salvo en
el angulo que, en este caso, son menores. De nuevo esto no es una sorpresa dado que el
tiempo de establecimiento para ese
angulo es mayor. Los valores m
aximos se han recogido
en la tabla 6.10 como se ha realizado para los reguladores anteriores.

Velocidad angular phi

Velocidad angular theta

0.9

0.9

0.8

0.8

0.7

0.7

0.6

0.6

Velocidad angular psi


0.3

0.25

0.5

Velocidad (rad/s)

Velocidad (rad/s)

Velocidad (rad/s)

0.2

0.5

0.4

0.4

0.3

0.3

0.2

0.2

0.1

0.1

0.15

0.1

0.05

1.5

2
Tiempo (s)

2.5

4.2

4.4

4.6

4.8
5
Tiempo (s)

5.2

5.4

5.6

5.8

7.5

8.5
Tiempo (s)

9.5

Figura 6.39: Derivadas de los


angulos de Euler ante escalones de 10o

0.8 rad/s
45.86

o /s

0.81 rad/s
46.44

o /s

0.28 rad/s
16.05 o /s

Tabla 6.10: Valores de las omegas del cuerpo ante un escalon de 10o
Comparaci
on entre controladores
A lo largo de esta secci
on se han analizado las respuestas del sistema cuando este se regula con los controladores presentados. Dada la profundidad de los estudios realizados, se
ha credo conveniente incluir una comparacion entre las respuestas temporales generadas
por cada uno de ellos. Este ejercicio de sntesis permite extraer el regulador con mejores
prestaciones para el control del sistema, as como condensar lo explicado anteriormente.
Se ha evaluado u
nicamente la respuesta temporal por ser la respuesta m
as caracterstica
161

Modelado y Control de un Cuadricoptero

Ensayos

para caso que nos ocupa, pues las demas son meros complementos que definen un mejor o
peor comportamiento de esta antes unas condiciones concretas. A continuacion se procede
con la mencionada comparacion.
La figura 6.40 contiene las gr
aficas asociadas a la respuesta del sistema ante un escalon
unitario en referencia para cada uno de los controladores principales. Se han separado
en tres gr
aficas diferentes, una para cada
angulo, para facilitar tanto su estudio como su
identificacion.

Respuesta escaln phi=1

Respuesta escaln theta=1

Respuesta escaln psi=1

0.8

0.8

0.8

0.6

0.6

0.6

ngulo ()

ngulo ()

ngulo ()

PID
Realimentacin
LQR

0.4

0.4

0.4

0.2

0.2

0.2

0.5

1.5
2
Tiempo (s)

2.5

4.5

5.5
6
Tiempo (s)

6.5

7.5

8.5
9
Tiempo (s)

9.5

10

Figura 6.40: Respuesta de los tres controladores ante escalones unitarios


Como se puede observar, los tiempos de establecimiento con el control PID son menores que los asociados a control LQ y a los de la realimentacion de estados, siento estos
u
ltimos los mas elevados. La respuesta del control PID presenta un peque
no sobrepaso
mientras que las de los otros dos, al ser respuestas sobreamortiguadas, no presentan sobrepaso alguno. Si se tiene en cuenta que, como se estudio en el control del sistema completo,
peque
nos
angulos de Euler generan velocidades lineales relativamente grandes, el estudio
de estas respuestas puede ser importante. Si los
angulos buscados se van a mover en un
entorno cercano al escalon unitario, la mejor respuesta es la proporcionada por el control
PID, dado que su tiempo de establecimiento es el menor. Esto se debe a que al moverse
en ese entorno, la se
nal de mando no llegar
a a saturarse y por tanto se mantendra siempre
en condiciones de linealidad, las cuales garantizan la estabilidad del sistema. As pues,
una respuesta m
as rapida siempre es deseable en este tipo de aplicaciones justificandose la
elecci
on anterior. Si por el contrario, se pretende trabajar con
angulos de Euler mayores,
donde el mando puede llegar a saturar, la eleccion del control puede verse modificada. Este
hecho se empieza a mostrar en la figura 6.41, donde se puede observar que la respuesta
del angulo para un escalon de 10 grados, difiere de la original para el unitario con el
control PID. En este caso, el control es capaz de llevar al sistema al nuevo valor fijado,
sin embargo empieza haber indicios de que el comportamiento de este controlador para
162

Modelado y Control de un Cuadricoptero

Ensayos

valores altos en la referencia puede no ser el deseado.

Respuesta escaln phi=10

Respuesta escaln theta=10

11
PID
Realimentacin
LQR

11
10

ngulo ()

10

ngulo ()

ngulo ()

10

Respuesta escaln psi=10

11

0.5

1.5
2
Tiempo (s)

2.5

4.5

5.5
6
Tiempo (s)

6.5

7.5

8.5
9
Tiempo (s)

9.5

10

Figura 6.41: Respuesta de los tres controladores ante escalones de 10o


Sin embargo, las respuestas de los controladores LQ y por realimentacion de estados
no han variado. Esto pone de manifiesto la robustez de los mismos, teniendo sentido dado
que la respuesta es mas lenta y por tanto las acciones del mando son menos agresivas.
Si se ampla el estudio a una amplitud de 20 grados en referencia, valores m
aximos a
los que se sometera el sistema, ya si se puede observar que la repuesta del control PID
es particularmente diferente a las demas en el
angulo , como muestra la figura 6.42.
A
un con todo, el sistema es capaz de volver seguir la referencia, aunque el sobrepaso es
extremadamente elevado y el tiempo de establecimiento es muy similar al del control LQ.
De nuevo, los otros dos controles muestran la misma respuesta.

PID
Realimentacin
LQR

Respuesta escaln phi=20

Respuesta escaln theta=20

Respuesta escaln psi=20


40

20

20

18

18

16

16

14

14

12

12

35

30

10

ngulo ()

ngulo ()

ngulo ()

25

10

20

15

10

0.5

1.5
2
Tiempo (s)

2.5

4.5

5.5
6
Tiempo (s)

6.5

7.5

8.5
9
Tiempo (s)

9.5

Figura 6.42: Respuesta de los tres controladores ante escalones de 20o


163

10

Modelado y Control de un Cuadricoptero

Ensayos

Por tanto, las conclusiones que se pueden obtener de esta comparaci


on son las siguientes.
1. El control PID genera una respuesta con el menor tiempo de establecimiento de
las tres (ts=0.5s), sin embargo es menos robusto que los otros dos, especialmente
con
angulos superiores a 15 grados. El uso de este controlador se recomienda para
valores situados entre -10 y 10 grados en referencia, situacion que se dara si se usa
la estructura de control propuesta para el modelo completo.
2. El control LQ presenta una respuesta increblemente robusta, permitiendo su uso
para un amplio rango de valores de entrada (incluso 90 grados, como se mostro en
el estudio del control). Su tiempo de respuesta es del orden de 1 segundo, siendo
este valor bastante razonable para la aplicacion deseada. Se recomienda el uso de
este controlador a nivel general, es decir, para cualquier rango de valores. Si no
se requieren tiempos de repuesta bajos, menores al obtenido, este controlador es
el candidato ideal para la regulacion del conjunto por su robustez y su sencillez
matematica a la hora de implementarlo en el algoritmo.
3. El control por realimentacion de estados presenta la respuesta mas lenta de los tres,
siendo su tiempo de establecimiento del orden de 2s. El hecho de que sea lo suficientemente robusto como para responder adecuadamente ante referencias de amplitudes
relativamente grandes, queda eclipsado por la respuesta del control LQ. Esto tiene
sentido, pues la respuesta de este u
ltimo se supone
optima para el sistema, por lo
que debe ser mejor que la obtenida por realimentaci
on de estados. Se desaconseja
el uso de este controlador, no por no cumplir con las condiciones de estabilidad o
respuesta, sino por existir un control que realizar las mismas funciones pero con
mejores propiedades.

6.1.3.

Control para el p
endulo invertido

Como se introdujo en la seccion de dise


no del modelado de este sistema, la funci
on de
este controlador en este proyecto es la de permitir evaluar la validez de los sistemas de
medida, transmision etc. Es decir, se usara este modelo como si de un banco de ensayos
se tratase, permitiendo evaluar:
1. Correcta medicion de los giroscopos y acelererometros, tanto en magnitud como en
direccion.
2. Correcta recepcion de las referencias emitidas a traves del emisor RC.
3. Correcto funcionamiento de los motores, variando su velocidad de forma adecuada
para llevar a cabo las maniobras definidas por el controlador.
4. Correcto funcionamiento de la estructura, siendo capaz de aguantar las vibraciones
presentadas por los motores cuando estos giran al m
aximo regimen de revoluciones.
164

Modelado y Control de un Cuadricoptero

Ensayos

5. Correcto funcionamiento de la maquina de estados, evaluando las transiciones entre


estados y las variables de transicion.
As pues, la respuesta generada por el controlador no es especialmente importante dado
que la mision principal es la de mantener el sistema estable bien en el punto de equilibrio o bien en la referencia fijada. Esto quiere decir que los tiempos de establecimiento y
sobrepasos, dentro de un determinado lmite, carecen de tanta importancia. Este estudio,
en el sistema real, permite evaluar la validez de los puntos enumerados anteriormente,
asegurando el correcto funcionamiento de estos y evitando posibles da
nos en la estructura
cuando se lance en vuelo.
La figura 6.1 muestra la respuesta en frecuencia del sistema en lazo abierto a traves de
un diagrama de Nichols. El controlador usado esta caracterizado por los parametros de la
tabla 4.8.

System: G
Phase Margin (deg): 0.398
Delay Margin (sec): 0.0139
At frequency (rad/s): 0.501
Closed loop stable? Yes

Nichols Chart

OpenLoop Gain (dB)

10

20

30

40

50

System: G
Gain Margin (dB): 51.6
At frequency (rad/s): 270
Closed loop stable? Yes

180

150
OpenLoop Phase (deg)

Figura 6.43: Diagrama de Black del lazo abierto


La respuesta representada es bastante deficiente, especialmente por reducido margen
de fase (0.4 grados) que presenta. El sistema en la lazo abierto se encuentra muy cerca
de la inestabilidad y por tanto no se obtendra una respuesta adecuada. Por otro lado el
margen de ganancia s cumple las especificaciones de la literatura, sin embargo, al ser m
tan bajo, el sistema no responder
a adecuadamente. Esto se puede observar en las graficas
6.44 y 6.45 las cuales muestran la respuesta en frecuencia de la funci
on sensibilidad y su
complementaria, respectivamente.

165

Modelado y Control de un Cuadricoptero

Ensayos

System: untitled1

Bode Diagram
Peak gain (dB): 44.5
At frequency (rad/s): 0.345

40

Magnitude (dB)

35

30

25

20

15

1

10

10
Frequency (rad/s)

Figura 6.44: Respuesta de la funcion sensibilidad


Claramente ambos valores se encuentran muy alejados de los lmites fijados por lo que

se desaconseja la implantaci
on de este control. Estas
muestran un pico de sensibilidad de
44.5 dB cuando debera ser menor que 6 dB, y un pico de sensibilidad complementaria de
44.4 dB cuando debera ser inferior a 2,3 dB.

Bode Diagram
48
System: untitled1
Peak gain (dB): 44.5
At frequency (rad/s): 0.346

46

44

42

Magnitude (dB)

40

38

36

34

32

30

28
1

10

10
Frequency (rad/s)

Figura 6.45: Respuesta de la funcion sensibilidad complementaria


Finalmente, la respuesta temporal mostrada en la figura 6.46 demuestra lo previsto
con los estudios anteriores.

166

Modelado y Control de un Cuadricoptero

Ensayos

Respuesta temporal al escaln unitario


3.5
3

ngulos()

2.5
2
1.5
1
0.5
0

10

15
Time(s)

20

25

30

20

25

30

Mando para la respuesta temporal al escaln unitario


220

Tensin(V)

210
200
190
180
170
160

10

15
Time(s)

Figura 6.46: Respuesta al escalon unitario


Claramente, esta respuesta es inaceptable y por tanto se debera recalcular el controlador. Inicialmente, se escogio este controlador por ser especialmente lento, por lo que sus
acciones de mando seran peque
nas, evitando saturaciones en las mismas. Sin embargo, a
la vista de la gr
afica de la figura 6.46, si se suprimen las oscilaciones, a
un existe un margen
de control lo suficientemente grande como para acelerar las respuesta del proceso. Se han
presentando estos resultados a fin de mostrar un caso en el que sistema controlado es deficiente. De esta forma se pretende mostrar al lector que tipo de respuestas en frecuencia
y sensibilidad se obtienen, completando el estudio general de un controlador. Los nuevos
valores de dise
no as como los parametros del control se han recogido en la tabla 6.11
Variable

Td

0,7

-4.5682

0,113

Tabla 6.11: Nuevos parametros del control PD para el pendulo


N
otese que el valor de la constante derivativa es 10 veces mayor que en el caso anterior, hecho que implica una aceleracion en la respuesta del sistema. La nueva respuesta
en frecuencia del sistema se presenta en la figura 6.47. En este caso, el margen de fase
ya se encuentra dentro de los valores aconsejados, siendo este de 47.8 grados. En cambio,
el margen de fase se ha reducido a 28.6 dB, hecho que no es especialmente grave puesto
que sigue siendo bastante superior al lmite inferior de 6 dB fijado por la literatura. Con
una simple inspecci
on de las figuras 6.1 y 6.47 se puede apreciar una notable mejora en
la respuesta, dando lugar a una respuesta temporal mucho mejor, en la que las oscilaciones que surgan en la figura 6.46, propias de su cercana a la inestabilidad, seran canceladas.

167

Modelado y Control de un Cuadricoptero

Ensayos

Nichols Chart
5

System: G
Phase Margin (deg): 47.8
Delay Margin (sec): 0.0751
At frequency (rad/s): 11.1
Closed loop stable? Yes

OpenLoop Gain (dB)

5

10

15

20

25

System: G
Gain Margin (dB): 28.6
At frequency (rad/s): 302
Closed loop stable? Yes

30

180

135
OpenLoop Phase (deg)

Figura 6.47: Diagrama de Black del lazo abierto con el control reajustado
A continuacion se muestran las respuestas en frecuencia de las funciones de transferencia de la sensibilidad y su complementaria en las figuras 6.48 y 6.49.

Bode Diagram

1.8

System: untitled1
Peak gain (dB): 1.83
At frequency (rad/s): 11.1

1.6

1.4

Magnitude (dB)

1.2

0.8

0.6

0.4

0.2

10

10
Frequency (rad/s)

Figura 6.48: Respuesta de la funci


on sensibilidad con el control reajustado
Los valores pico que se incluyen en estas graficas son mucho m
as favorables que los
obtenidos anteriormente, situandose la maxima sensibilidad en 1.83 dB as como se sit
ua
en 4.71 dB su complementaria. El nuevo valor de Ms cumple la limitacion de 6 dB dada
por la literatura, sin embargo Mt es ligeramente superior. Esto se debe a que el margen
de fase esta cerca de los 40 grados y, dado que, en terminos generales, cuanto mayor es m
menor es Ms, tiene sentido que sea ligeramente superior, pues el Ms aconsejado se obtiene
con un margen de fase de 45 grados. As pues, el nuevo control posee una respuesta en
frecuencia y una robustez notablemente superior al anterior, hecho que se puede apreciar
en la respuesta temporal de la figura 6.50
168

Modelado y Control de un Cuadricoptero

Ensayos

Bode Diagram

6
System: untitled1
Peak gain (dB): 4.71
At frequency (rad/s): 4.92

Magnitude (dB)

1

2

3
0

10

10
Frequency (rad/s)

Figura 6.49: Respuesta de la funci


on sensibilidad complementaria con el control reajustado
Como se puede observar, las oscilaciones han desaparecido y el tiempo de establecimiento se ha visto reducido.

Respuesta temporal al escaln unitario

ngulos()

1.5

0.5

0.5

1.5

1.5

Time(s)
Mando para la respuesta temporal al escaln unitario
230

Tensin(PWM)

220
210
200
190
180
170
160

0.5
Time(s)

Figura 6.50: Respuesta al escalon unitario con el control reajustado


Sin embargo, existe un error en regimen permanente relativamente grande. Esto se debe a
la carencia de accion integral en el controlador. Dado que la ganancia estatica de la planta
es de 0.6012 y la del controlador es 2.3935, el error en regimen permanente para el escalon
unitario es de:
Erp =

1
= 0,41
1 + C[1]P [1]

(6.3)

Valor que se puede apreciar en la figura. N


otese que el mando no vuelve a la posici
on
de equilibrio si no que se mantiene en un valor alejado de ella. Esto se debe a la existencia
del error en regimen permanente. De tener que usarse este algoritmo para la regulaci
on de
un dispositivo con este modelo matematico, es altamente recomendable incluir una accion
169

Modelado y Control de un Cuadricoptero

Ensayos

integral. Sin embargo, para el caso que nos ocupa, este controlador permite evaluar todos
los puntos enumerados al principio de este estudio por lo que no se proceder
a con tal
correccion.

6.2.

Ensayos en el dispositivo

6.2.1.

Filtro de Kalman

En secciones anteriores se menciono la necesidad de estimar los


angulos de Euler, los
cuales definen la posicion de la nave en cada momento, para que el algoritmo de control
implementado sea capaz de regular su orientacion. Dado que estas variables son especialmente importantes para el correcto funcionamiento del sistema, su estimacion es crtica
y debe comprobarse su validez antes de proceder a ensayar las demas repuestas. En esta
seccion se muestran los resultados de los ensayos realizados sobre el filtro MEKF, y se
comparan con los
angulos estimados por el software implementado en el driver de la IMU
que, se supone mas exacto y que sera asumido como referencia. Ambos estimadores son
filtros de Kalman basados en cuaterniones por lo que la diferencia entre estos, se debe
a los valores de las matrices de covarianza R y Q que, al tratarse de estimaciones, son
fuente de inexactitudes o peores funcionamientos. En la seccion 4.2.2 se estim
o la matriz
de ruido R a partir de la se
nal de medida obtenida a traves de un ensayo, donde se poda
observar un alto nivel de ruido. Sin embargo no existe una forma clara de medir el ruido
asociado al proceso, sino que se asumio que este era relativamente bajo dando lugar a la
matriz Q 4.2.2. N
otese como esta es diagonal y con pesos iguales a 10. A traves de las
resultados de las simulaciones se buscar
a tambien recalibrar esta matriz para obtener una
mejor estimacion de los
angulos.
Se recuerda tambien que si bien no es necesario realizar un filtrado previo de las medidas obtenidas por los aceler
ometros para eliminar el ruido incorporado, dado que esta labor
la realiza el propio filtro de Kalman, s que es necesario estimar y corrigir el bias asociado
a la medida de los giroscopos, pues como se menciono en la seccion 4.2, el filtro de Kalman
no realiza tal funcion y ha de estimarse de forma externa. Consecuentemente se incluira un
bloque en el diagrama que recoge los valores medidos por los giroscopos durante un tiempo fijado, con el dispositivo inmovil y, posteriormente, calcula la media de esos valores
medidos rest
andosela a las medidas posteriores.
La figura 6.51 muestra dos gr
aficas donde se superponen las estimaciones de los
angulos
con los dos algoritmos definidos y sin movimiento en las helices. La imagen de la izquierda
representa la estimacion de la posicion de equilibrio para el el
angulo , es decir, es una
forma de cuantificar la respuesta libre del sistema, donde lo mas importante es el tiempo
necesario para obtener una estimacion adecuada. En la imagen de la derecha se muestra
la respuesta a una cambio en el
angulo de forma que se pueda visualizar la respuesta
170

Modelado y Control de un Cuadricoptero

Ensayos

temporal de cada filtro.

Estimacin de ngulo Phi

Estimacin de ngulo Phi

80
MEKF
Filtro IMU

MEKF
Filtro IMU

0
60

5
40

ngulos ()

ngulos ()

10

20

15

0
20

20
25

30

40

0.1

0.2

0.3

Tiempo (s)

0.4

0.5
Tiempo (s)

0.6

0.7

0.8

0.9

Figura 6.51: Estimacion del


angulo phi sin movimiento de las helices
El estudio de la respuesta de un estimador, en este caso el filtro de Kalman, se eval
ua
de forma muy similar a la respuesta temporal de un sistema controlado. As pues, se buscara analizar los tiempos de alcance o de establecimiento al igual que el sobrepaso, si este
existiese.
La repuesta libre representada en la grafica de la izquierda muestra que el filtro MEKF
realiza una buena estimacion del angulo incluso al principio de la simulaci
on, cosa que no
ocurre con el filtro de la IMU. En parte, esto se debe a que en la definicion del estado
inicial para el MEKF se ha especificado el punto [0,0,0], por lo que si el dispositivo se
encuentra cerca de este punto, el error inicial sera menor. Claramente el filtro de la IMU
no empieza en ese punto pero es capaz de corregir la estimacion en pocas muestras lo que
demuestra su validez. De la grafica tambien se puede extraer informacion sobre el tiempo
de establecimiento el cual es menor para el filtro de la IMU. Esto se debe a que la respuesta
del filtro MEKF esta sobreamortiguada, hecho que se ve con mayor claridad en la gr
afica
de la derecha y que se comentara mas adelante. Por u
ltimo se puede apreciar que el filtro
de la IMU no muestra indicios de errores en regimen permanente mientras que el filtro
MEKF muestra un ligero error, consecuencia de una cancelacion parcial del bias asociado
a la medida del giroscopo. A
un as, este error, del orden de 1 grado, es lo suficientemente
peque
no como para considerar aceptable el dise
no del MEKF.
Por otro lado, en la grafica de la derecha, se muestra la respuesta de los estimadores
ante un escalon de aproximadamente 40 grados. N
otese como la estimacion del
angulo
inicial, en la posicion de equilibrio, es mucho mejor en el MEKF que en del la IMU, pues
esta u
ltima realiza unas oscilaciones relativamente grandes y no esta estable para t=0.2s,
momento en el que se produce el escalon. Se refuerza as, por tanto, que la estimacion
171

Modelado y Control de un Cuadricoptero

Ensayos

inicial es considerablemente mejor en el MEKF que en el de la IMU. La respuesta al escalon muestra un comportamiento distinto para cada filtro. El de la IMU tiene un tiempo
de establecimiento del orden de 0.1s pero por contra un sobrepaso del orden del 40 %.
Consecuentemente se trata de una respuesta bastante r
apida pero con un sobrepaso excesivamente alto. En cambio, el MEKF, muestra una respuesta altamente sobreamortiguada
con un tiempo de alcance de 0.6s. Esto tampoco es aceptable puesto que para la aplicacion
buscada, los
angulos debe estimarse mas rapidamente. A modo de conclusion, se podra
decir que la respuesta ideal estara entre medias de las dos mostradas, obteniendo un menor sobrepaso y, por contra, un mayor tiempo de establecimiento.
A continuacion se muestra en la figura 6.52 la repuesta de los estimadores a cambios
en el
angulo cuando las helices estan girando. El hecho de que giren implica que las
vibraciones en la estructura aumentan considerablemente y por tanto la estimacion puede
verse afectada.

Estimacin de ngulo Phi con movimiento


30
MEKF
Filtro IMU

20

ngulos ()

10

10

20

30

0.2

0.4

0.6

0.8

1
Tiempo (s)

1.2

1.4

1.6

1.8

Figura 6.52: Estimacion del


angulo phi con cambios en la orientacion del dispositivo y
movimiento en las helices
Los motores se iniciaron en t=1.45s por lo que las estimaciones hasta ese instante
corresponden a una repuesta libre. De nuevo se ve que el de la IMU tiene un sobrepaso
mayor al igual que el MEKF muestra un error en regimen permanente como consecuencia
de una mala cancelacion del bias. A partir de t=1.45, se puede apreciar una estimaci
on
mas ruidosa en la se
nal del filtro propio de la IMU mientras que el MEKF parece no
estar afectado por ellas. Sin embargo, cuando se aplican cambios r
apidos y consecutivos
en la orientacion, el MEKF no responde lo suficientemente rapido mientras que el otro
s. Esto ya se anticip
o anteriormente pues el MEKF necesitaba casi 0.6s para alcanzar la
referencia. Consecuentemente, el filtro de la IMU es m
as sensible al ruido y tarda m
as en
corregir el error inicial pero realiza unas estimaciones mucho m
as rapidas que el MEKF
172

Modelado y Control de un Cuadricoptero

Ensayos

y, por tanto, realiza mejor su labor. Sin embargo, a


un existe la posibilidad de mejorar la
repuesta del MEKF, pues cambiando la matriz Q puede obtenerse una mejor respuesta.
Como se vio anteriormente no haba forma de estimar esta matriz por lo que se puede
entender, a efectos practicos, como un parametro de ajuste para una mejor respuesta del
filtro a traves de simulaciones. La figura 6.53 muestra la respuesta de ambos filtros ante
cambios r
apidos en la orientacion con la matriz Q recalibrada seg
un se muestra en 6.4.

Estimacin corregida
40
MEKF
Filtro IMU

20

ngulos ()

20

40

60

80

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Tiempo (s)

Figura 6.53: Estimacion del


angulo phi con movimiento en las helices y Q recalibrada

50

Q =
0
0

0
50
0

(6.4)

50

El cambio en la matriz de covarianzas parece acelerar la estimacion del angulo mientras


se mantienen las buenas propiedades de estimacion en condiciones iniciales. En comparacion, la respuesta del MEKF es un poco mas lenta que la del de la IMU, pero no por
ello implica que sea peor. De hecho se ha escogido este valor para reducir el sobrepaso
propio de la estimacion de la IMU, buscando esa situacion anteriormente descrita en la
que se aumentaba el tiempo de establecimiento para poder reducir el sobrepaso. Tambien
se puede observar que el ruido asociado a las vibraciones tiene mucho menor efecto en el
MEKF, lo cual demuestra que la estimacion de la matriz R es bastante aceptable.
A modo conclusion, se puede afirmar que con la Q recalculada, la estimacion de los
angulos a traves del MEKF es mejor que la realizada por el de la IMU. Ademas, hay
que tener en cuenta que el estimador de la IMU hace uso de los magnetometros para
calcular los
angulos de posicion. Esto quiere decir que, para una correcta estimacion, los
elementos de medida de la IMU deben ser calibrados en el lugar donde se van a utilizar. Este
hecho, aparentemente insignificante, es bastante importante pues en los laboratorios donde
173

Modelado y Control de un Cuadricoptero

Ensayos

se trabaja hay una gran presencia de materiales ferromagneticos que influyen altamente
en las medidas de los magnetometros. Concretamente se realizo una medida del norte
magnetico con los magnet
ometros y con una br
ujula para comprobar que ambos indican
la misma direccion, sin embargo esto no fue as sino que la estimacion de este norte,
por parte de los magnet
ometros, estaba desviada entorno a 20 grados hacia el oeste.
El valor y la direccion de la desviacion no es importante, puesto que dependen de las
condiciones que se den cuando se realice en ensayo. Lo que s es importante remarcar
es que existe una desviacion, relativamente grande, entre la medida y la realidad, por
lo que las estimaciones de los
angulos proporcionadas por este algoritmo no van a ser
correctas. En consecuencia no se podran utilizar los magnet
ometros para la estimacion
de los
angulos si no se realiza ninguna calibracion. Sin embargo, el hecho de que no se
usen, como ocurre en el MEKF, genera una deriva en la estimacion de estos
angulos,
como consecuencia de la falta de una referencia externa. En las gr
aficas anteriormente
mostradas se pudo observar este comportamiento, y se comento que era consecuencia
de una mala correccion del bias propio de los giroscopos. Si bien esto es verdad, hay
que remarcar que tambien es consecuencia de la falta de referencia externa al sistema
(medida que proporcionan los magnet
ometros). Para intentar aislar una u
nica fuente de
inexactitudes en las medidas, se modifico el driver de la IMU para obtener las medidas
propias al dispositivo ya filtradas, es decir, a traves de un algoritmo interno se cancela
el ruido de los aceler
ometros as como el bias de los giroscopos. Como caba esperar, la
estimacion vuelve a presentar la deriva, lo que refuerza el uso de estos elementos de medida
en la obtencion de los
angulos de posici
on. Surge por tanto un compromiso, puesto que
se han de usar los magnet
ometros para realizar una estimaci
on adecuada pero, al mismo
tiempo, no se pueden usar porque al no estar calibrados, su medida no es representativa y
generar
a errores en la estimacion a no ser que sean calibrados adecuadamente. Ante esta
situacion existen dos soluciones, una parcial o de tipo parche y otra absoluta y por tanto
mejor. La primera de ellas consisten en asimilar la deriva a un bias introducido por el
propio filtro y que, por tanto, puede ser eliminado a traves de un compensador de bias.
Para tal fin se puede hacer uso del bloque dise
nado anteriormente, el cual lo eliminaba de la
medida de los giroscopos. De esta forma se consigue eliminar esta desviacion, pero tambien
se retrasa la obtencion de los
angulos, correctamente estimados, y por tanto habra que
evaluar su efecto en el control. La segunda opcion, y mas adecuada, consiste en calibrar los
elementos de medida. Esta solucion, un tanto obvia, es m
as compleja de lo que realmente
parece pues o bien se encuentra un software que sea capaz de realizar tal tarea en un
dispositivo como el que se usa y con las condiciones que se presentan (hechos que reducen
la lista de posibilidades), o bien se programa uno propio, con la dificultad que esto conlleva.
Tras realizar una extensiva b
usqueda de opciones en la red se ha dado con las llamadas
br
ujulas virtuales, en esencia un software que simula una br
ujula a la cual no le afecta
ninguna perturbacion magnetica (pues se trata de un c
odigo), las cuales pueden servir
para el calibrado de los magnet
ometros. En la actualidad existen algunos programas que

174

Modelado y Control de un Cuadricoptero

Ensayos

permiten realizar esa acci


on de calibrado, pero u
nicamente para los modelos de los cuales
dispone el software. As pues se podra crear un archivo que describa al cuadricoptero
usado para poder hacer uso de este software, o bien se podra escribir un codigo que haga
este calibrado refiriendo las medidas a esta br
ujula virtual. Dada la complejidad que esto
a
nade al desarrollo del proyecto, no se proceder
a con el calibrado de los aparatos de medida
sino que se intentara realizar un control mas robusto y con accion integral para as poder
corregir estos efectos negativos. Sin embargo se invita al lector a proceder en esta lnea
para mejorar el funcionamiento del conjunto.
Otro punto importante, que ya se ha mencionado anteriormente pero que conviene
remarcar, es la velocidad con la cual se obtienen las estimaciones de los
angulos. Como
ya se vio, los
angulos no pueden ser estimados con demasiada rapidez, porque incluiran
entonces un alto nivel de ruido como consecuencia de las vibraciones de los rotores. Pero,
por otro lado, no pueden ser demasiado lentas, pues el controlador suministrara acciones
de mando que realmente no son adecuadas. La evaluacion de la velocidad de estimacion es
compleja, puesto que los valores mostrados en simulaci
on, entendiendo simulaci
on como
el ensayo en el dispositivo fsico pero estando este en modo externo, no son siempre en
tiempo real, ya que la informacion se retrasa por distintos motivos (transmisi
on de datos
por el cable, procesado de estos en la tarjeta de adquisici
on de datos del PC, representacion grafica del proceso en los osciloscopios de Simulink...). As pues, para obtener un dato
real, o lo m
as parecido posible a la realidad, conviene instalar un sistema de telemetra
que permita monitorizar los valores caractersticos que definen el comportamiento de la
nave, evitando el uso del modo externo. Como cabe esperar, la inclusion de este nuevo
sistema de comunicacion aumenta la complejidad del sistema, es importante remarcar que
con el codigo dise
nado el microprocesador est
a casi al lmite de su capacidad, por lo que
puede que no sea posible a
nadirlo (habra que adquirir otro microcontrolador con mayor
capacidad de c
alculo); y ademas requiere de la creaci
on de un driver de comunicacion entre
el sistema telemetrico y el PC. Dada la complejidad que esto a
nade no se incluira, aunque
se invita de nuevo al lector a que mejore el comportamiento del conjunto con su inclusion.
As pues, teniendo en cuenta lo descrito en esta secci
on, se usaran las medidas estimadas
por el MEKF y se intentara corregir los errores que estas contiene en el controlador.
Es importante remarcar que a
un se podra mejorar la respuesta del filtro, calculando
nuevos valores para la matriz Q. Desafortunadamente, el sistema de prueba y error para
la obtencion de esta matriz no dara buenos resultados porque la respuesta que se obtiene
no es completamente representativa por lo que, con los medios de que se disponen, se
ha optado por el uso de la matriz Q mostrada en 6.4. Se invita al lector a proceder en
esta lnea, pues se ha indicado como ha de realizarse (uso de telemetra y calibrado de
los elementos de medida), en caso de buscar una mejor respuesta. Se recuerda que cuanto
mas exactas sean las medidas, m
as sencillo sera el algoritmo de control y mejor sera la
regulacion, por lo que conviene centrar futuros esfuerzos en mejora esta parte del c
odigo.

175

Modelado y Control de un Cuadricoptero

6.2.2.

Ensayos

Filtro de Savitzky-Golay

En esta seccion se eval


ua el ruido que presentan las medidas en la referencia propias
de la transmision y la referencia de las ondas de radio frecuencia emitidas. Idealmente
no debera contener ruido pero generalmente no suele darse esa situacion. Sin embargo
el ruido en la referencia es particularmente da
nino para control puesto que se introduce
directamente en el lazo de control, por lo que conviene filtrarlo previamente si este existe.
En la figura 6.54 se muestran las referencias emitidas por el mando donde claramente
existe un alto contenido de ruido.

Ruido en la referencia

Referencias filtradas

1510

1500
phi
theta
psi
altura

phi
theta
psi
altura

1490

1500
1480

1470
1490

Valores del mando

Valores del mando

1460

1480

1450

1440

1470
1430

1420
1460

1410

1450

0.05

0.1

0.15

0.2
Tiempo (s)

0.25

0.3

0.35

0.4

1400

0.05

0.1

0.15

0.2
Tiempo (s)

0.25

0.3

0.35

0.4

Figura 6.54: Filtrado de la referencia


Consecuentemente se ha dise
nado el filtro de Savitzky-Golay que se mencion
o en la
seccion 5.1.2 y que se describa por la funci
on de transferencia 5.1. La respuesta filtrada
se muestra en la imagen de la derecha de la figura 6.54 conteniendo esta un menor nivel
de ruido que la original. As pues la eficacia del filtro esta demostrada ya que permite obtener unas referencias m
as limpias, sin embargo existen dos inconvenientes que conviene
analizar. El primero es que la presencia del filtro retrasa la se
nal pues, como se ve en la
funcion de transferencia 5.1, existe una deficiencia de grado de una unidad, es decir, se
tardar
a una muestra en responder. Este efecto se puede apreciar claramente en las gr
aficas de la figura 6.55. En este caso, el mencionado retardo no supone un gran problema
dado que cambios bruscos en la referencia pueden generar problemas en el control, por
lo que puede ser incluso beneficioso. El segundo punto a considerar es que la ganancia
estatica del filtro no es uno y por tanto se reduce la amplitud de la se
nal. Este hecho no es
extremadamente importante porque se realiza una labor de post-procesado para ajustar
los valores de la referencia dentro del rango deseado (20o ) pero, de no realizarse, s que
tendra importancia y habra que forzar una ganancia estatica unitaria en el filtro.

176

Modelado y Control de un Cuadricoptero

Ensayos

Referencia ngulo phi

Referencia ngulo theta

30

30
Original
Filtrado

20

20

10

10
ngulo()

Velocidad angular(rad/s)

Original
Filtrado

10

10

20

20

30

0.05

0.1

0.15

0.2
Tiempo(s)

0.25

0.3

0.35

30

0.4

0.05

0.1

0.15

Referencia ngulo psi

0.2
Tiempo(s)

0.25

0.3

0.35

0.4

Referencia de altura

30

1.5
Original
Filtrado

Original
Filtrado

20

Altura (m)

Velocidad angular(rad/s)

1
10

0.5

10
0
20

30

0.05

0.1

0.15

0.2
Tiempo(s)

0.25

0.3

0.35

0.5

0.4

0.05

0.1

0.15

0.2
Tiempo(s)

0.25

0.3

0.35

0.4

Figura 6.55: Se
nales de referencia con y sin filtrado
Este filtro tambien se implanto para filtrar tantos los picos como el ruido asociado a la
medida de la tensi
on de la batera que se comento en la seccion 5.1.4. De nuevo el hecho
de que la ganancia estatica no sea unitaria no supone un gran problema por la presencia
de otro reprocesado. En la grafica 6.56 se muestran las se
nal sin filtrado (imagen de la
izquierda) y la filtrada (imagen de la derecha). Como era de esperar el filtro limpia la
medida y suaviza los saltos de tensi
on. Con estas graficas se demuestra tambien que se
generan picos decrecientes de tensi
on para poder realizar cambios bruscos en la velocidad
de las helices.

Batera filtrada
8

7.8

7.8

7.7

7.6

7.6

7.4

7.5

7.2

Voltios (V)

Voltios (V)

Batera sin filtrar


7.9

7.4

7.3

6.8

7.2

6.6

7.1

6.4

6.2

6.9

0.1

0.2

0.3

0.4

0.5

0.6

0.7

Tiempo (s)

0.1

0.2

0.3

0.4
Tiempo (s)

Figura 6.56: Filtrado en la se


nal de tensi
on de la batera

177

0.5

0.6

0.7

Modelado y Control de un Cuadricoptero

6.3.

Ensayos

Ensayo de los controladores

Finalmente, a fin de dotar un mayor contenido a este captulo, se han realizado unos
ensayos sobre el dispositivo fsico en los cuales se han usado y evaluado los algoritmos de
control que se dise
naron anteriormente. Sin embargo, de los tres algoritmos principales que
se estudiaron a nivel simulaci
on, s
olo se han ensayado el controlador PID y el controlador
LQ con y sin accion integral. De esta forma se pretende evaluar su validez como sistema
de control para el dispositivo.
Las primeras gr
aficas que se presentan describen las variaciones que sufren las se
nales
de mando u
nicamente por la presencia de ruido que incorporan las se
nales de referencia,
haciendo uso de un control LQ. Realmente, el uso de este control no es esencial sino que
se pretende hacer notar que el ruido que incorporan estas medidas, a
un habiendo sido
filtradas anteriormente, produce un efecto notable como muestra la figura 6.57.

U1

U2

200

200
Referencia simulada
Referencia real

196

196

194

194

192

192

190
188

190
188

186

186

184

184

182
180

Referencia simulada
Referencia real

198

Tensin(V)

Tensin(V)

198

182
0

0.05

0.1

0.15

0.2

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

180

0.5

0.05

0.1

0.15

0.2

U3

0.35

0.4

0.45

0.5

200
Referencia simulada
Referencia real

198

Referencia simulada
Referencia real

198

196

196

194

194

192

192

Tensin(V)

Tensin(V)

0.3

U4

200

190
188

190
188

186

186

184

184

182
180

0.25
Tiempo(s)

182
0

0.05

0.1

0.15

0.2

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

180

0.5

0.05

0.1

0.15

0.2

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

0.5

Figura 6.57: Mandos en funcion de la referencia aplicada


En esta figura se puede observar el mando que se aplica al sistema cuando la referencia
es un cero puro es decir, simulado, y cuando esta referencia proviene del receptor que, tras
su posterior filtrado, a
un presenta un nivel de ruido considerable. La varianza de este ruido
no es enorme pues es del orden de 4 unidades PWM, es decir, del orden de 0.12V, pero s lo
suficientemente notable como para tenerlo en cuenta. Se puede observar, ademas, que este
produce un desplazamiento en su valor medio, ya que las se
nales no estan centradas en el
valor obtenido con la referencia simulada. Esto quiere decir que el ruido no solo introduce
una varianza sino que desplaza la se
nal real, es decir, no tiene media nula. El hecho de
que influyan negativamente en la regulacion no esta claro, pues la accion integral en el
controlador puede hacerse cargo de ello. Sin embargo s es importante tener constancia de
esta posible fuente de inexactitudes.
178

Modelado y Control de un Cuadricoptero

Ensayos

La figura 6.59 muestra las se


nales de mando aplicadas con un controlador PID. Como
se puede observar por la descripcion de la figura, estas se
nales se han obtenido con el
dispositivo estatico, es decir sin estar activados rotores. Esta configuracion, llamada en
lazo abierto, permite obtener informacion sobre la calidad del controlador antes de cerrar
el lazo, evitando posibles da
nos como consecuencia de una mal funci
on del algoritmo.

Mandos U1 y U2
260
U1
U2

250
240

Tensin(PWM)

230
220
210
200
190
180
170
160
150

0.05

0.1

0.15

Tiempo(s)

Mandos U3, U4
260
U3
U4

250
240

Tensin(PWM)

230
220
210
200
190
180
170
160
150

0.05

0.1

0.15

Tiempo(s)

Figura 6.58: Mandos aplicados sobre el dispositivo en lazo abierto con el controlador PID.
En esta figura se puede observar un comportamiento que, a priori, puede parecer
erroneo y que, sin embargo, es correcto. En ella, el mando aumenta con el tiempo (o disminuye dependiendo de que motor sea) hasta alcanzar el valor de saturacion, valor en el
cual se mantiene. Esta tendencia es consecuencia de la accion integral incluida en el controlador, la cual integrar
a el error existente el cual, como el sistema esta en lazo abierto,
no sera cancelado por lo que se seguir
a integrando el error, en teora hasta el infinito.
Sin embargo, dada la presencia de las saturaciones, en vez de integrar hasta el infinito
integrar
a hasta los valores de saturacion. La conclusion obtenida a partir de esta gr
afica es
tremendamente importante, y es que la accion integral de cualquier control que se use s
olo
debe activarse cuando el sistema este en lazo cerrado. Esto quiere decir que la m
aquina
de estados debe de ser capaz de gestionarlo, de forma que la accion integral s
olo se active
cuando los motores esten armados y listos para ser regulados. Otra conclusion que se ha
de obtener de esta grafica esta relacionada con el pico que esta presenta a los 0.1s. Entorno
a los 0.05s, se modifico la posicion del dispositivo, sacandolo de su posici
on de equilibrio,
por lo que el control debera responder variando su se
nal de mando. Sin embargo la respuesta no se hizo notar hasta t=0.1s. Esto se debe al efecto del wind-up, efecto que es
consecuencia de la acumulacion del error en la integral, como se describa anteriormente.
Esto quiere decir que, apesar de que se ha producido una variaci
on en la posicion del
dispositivo, la integral a
un incorpora parte del error acumulado anteriormente, por lo que
179

Modelado y Control de un Cuadricoptero

Ensayos

la respuesta generada se retrasa y ademas se ve modificada en amplitud. Para solucionar


el problema, todo algoritmo de control que lleve una accion integral debe incorporar un
mecanismo anti-windup.
A continuacion se muestra las se
nales de mando obtenidas con el controlador PID en
lazo cerrado, a traves de la figura 6.59. En el controlador usado para este ensayo se hizo
uso de un sistema de seleccion del modo integral, de modo que garantice que tal accion
solo se lleva a cabo en el estado adecuado, as como del mecanismo anti-windup.

Mandos U1 y U2
260
U1
U2

250
240

Tensin(PWM)

230
220
210
200
190
180
170
160
150

0.05

0.1

0.15
Tiempo(s)

0.2

0.25

0.3

Mandos U3, U4
260
U3
U4

250
240

Tensin(PWM)

230
220
210
200
190
180
170
160
150

0.05

0.1

0.15
Tiempo(s)

0.2

0.25

0.3

Figura 6.59: Mandos aplicados sobre el dispositivo con el controlador PID


Como se puede observar, la accion de mando muestra un control que se podra llamar
binario, es decir, que oscila entre dos valores. Esto puede ser consecuencia de que el controlador sea demasiado energico y por tanto salte entre los valores de saturacion. En el
dispositivo real, se observara un comportamiento oscilante, realizando este un movimiento del tipo balancn respecto al eje definido por la moto. A la vista de los resultados
obtenidos, este control no es adecuado para el dispositivo, pues no permite equilibrar la
posicion del cuadricoptero. Existen dos posibles causas por las que no es adecuado:
1. El control es demasiado energico, es decir, busca regular la posici
on de una forma
demasiado rapida y causa la se
nal de mando binaria. Se podra intentar aumentar
el tiempo de establecimiento, buscando obtener un regulador mas lento que no genere
ese tipo de mandos. Otra opcion sera limitar la derivada del mando, transformado
el control PID en un PID incremental, y limitando los incrementos en el acumulador
final. Sin embargo, esta saturacion no hace m
as que camuflar un error no identificado
que provoca este tipo de comportamientos.
2. Puede darse el caso de que la logica del mecanismo anti-windup no este bien realizada, ya que esta no es para nada sencilla. Esto se debe a que el control propor180

Modelado y Control de un Cuadricoptero

Ensayos

ciona se
nales de fuerza desacopladas las cuales, a traves de diferentes operaciones,
se transforma en se
nales de tensi
on, pero acopladas. Esto quiere decir que la logica
del mecanismo no solo tiene que detectar la saturacion en tensi
on, sino que tiene
que descubrir, a traves de una serie de c
alculos, cual de los cuatro motores debe
modificar para que cuando se acoplen, no se sature la se
nal correspondiente. Esta
tarea es bastante compleja y puede dar lugar a errores. La soluci
on consiste en usar
un controlador incremental, de forma que sea m
as facil gestionar el anti-windup.
A pesar de las soluciones que se han presentado anteriormente, no se ha procedido a
su modificacion si no que se ha optado por implementarlas en el regulador LQ. La razon
viene dada por las se
nales de mando que se obtuvieron en las simulaciones de este control.
Dado que el principal problema que presenta el control PID es que requiere se
nales de
mando demasiado grandes, parece sensato recurrir al controlador que permite regular la
planta con la se
nal de mando
optima (definicion de un control LQ).
La figura 6.60 muestra la se
nal de mando en lazo abierto para un control LQ sin accion
integral.

Mandos U1 y U3
260
U1
U3
240

Tensin(PWM)

220

200

180

160

140

120

0.1

0.2

0.3

0.4

0.5
Tiempo(s)

0.6

0.7

0.8

0.9

Mandos U2, U4
260
U2
U4
240

Tensin(PWM)

220

200

180

160

140

120

0.1

0.2

0.3

0.4

0.5
Tiempo(s)

0.6

0.7

0.8

0.9

Figura 6.60: Mandos aplicados sobre el dispositivo con el controlador LQ


Se ha incluido esta gr
afica para justificar la utilizaci
on de la accion integral en el regulador. Caba pensar que, dados lo inconvenientes que presenta la acci
on integral (windup e
integracion en lazo abierto), los beneficios que proporciona son menores que los problemas
que genera. Sin embargo, como se ve en la grafica la presencia de esta accion es esencial.
En la grafica se puede observar que las se
nales de mando no convergen a un punto de
equilibrio, sino que se encuentran distanciadas. Esto pone de manifiesto que el sistema
no cancela el error en regimen permanente, hecho que tiene sentido pues no posee accion
integral. Por tanto el dispositivo real nunca alcanzara una posicion de equilibrio, sino que
oscilara indefinidamente. Este error, o perturbacion en carga, proviene de la deriva que
181

Modelado y Control de un Cuadricoptero

Ensayos

presenta la estimacion de los


angulos de Euler, como se comento en secciones anteriores.
Dada la existencia de esta perturbacion, la accion integral es completamente necesaria
para poder cancelarla, y por tanto debera incluirse en el controlador.
Finalmente, se ha ensayado el controlador LQ con accion integral el cual se han implementado en su configuracion diferencial, con anti-windup y con el sistema de selecci
on
de integraci
on (accion integral solo en lazo cerrado y con motores armados). La respuesta
del mando se muestra en la figura 6.61.

Mandos U1, U3
260
Phi
Theta
240

Tensin(PWM)

220

200

180

160

140

120

0.05

0.1

0.15

0.2

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

0.5

Mandos U2, U4
260
U2
U4
240

Tensin(PWM)

220

200

180

160

140

120

0.05

0.1

0.15

0.2

0.25
Tiempo(s)

0.3

0.35

0.4

0.45

0.5

Figura 6.61: Mandos aplicados sobre el dispositivo con el controlador LQI


El comportamiento que se muestra en la figura anterior tampoco ofrece resultados
positivos. Se puede apreciar que el signo de las se
nales de mando es el correcto y que
ademas son contrarias, lo que dota a la grafica de esa forma tan peculiar. Sin embargo se
puede observar el comportamiento oscilante entre dos valores de saturacion, s
olo que esta
vez en los de acumulador en vez de los del sistema general. Se puede apreciar el correcto
funcionamiento del anti-windup, pues la respuesta de los mandos es rapida a pesar de
su caracter oscilante. Las razones que pueden dar lugar a este comportamiento no estan
claras, pero pueden ir en la lnea de las expuestas para el control PID.
A modo de conclusion para el captulo, se puede decir que los controladores dise
nados
funcionan correctamente en simulacion pero no en el sistema real. Esto puede deberse a
un mal modelado matem
atico del conjunto lo que implica que los valores caractersticos
que definen el control no son adecuados, pero tambien puede deberse a errores en la transformaci
on de la se
nal de control, de fuerzas desacopladas a tensi
on. De igual manera, los
errores de las medidas tampoco ayudan a la regulacion, siendo estas una de las posibles
causas por las cuales no funcione. Puede ser que los valores estimados no sean lo suficientemente rapidos y que por tanto el control no act
ue adecuadamente. Finalmente no se
182

Modelado y Control de un Cuadricoptero

Ensayos

ha olvidar la presencia de ruido, tanto en la referencia como en el giroscopo, siendo esta


u
ltima utilizada para el acoplo de las fuerzas en la conversion de unidades realizada en el
mando. Si se tiene en cuenta que esta se
nal entra directamente al mando, el ruido puede
influir en gran medida desestabilizando el sistema.

183

Captulo 7

Conclusiones
Este captulo recoge las conclusiones de proyecto, donde se sintetizan las tareas realizadas destacando lo mas importante de cada una de ellas. De esta forma se pretende
resaltar los contenidos, parametros y resultados m
as importantes obtenidos durante el estudio realizado facilitando el entendimiento al lector y facilitando futuras investigaciones
en este campo.
A continuacion se muestra un esquema representando las tareas realizadas.

Figura 7.1: Esquema de tareas realizadas


185

Modelado y Control de un Cuadricoptero

Conclusiones

Como se puede observar en el esquema, y siguiendo con la estructura que se ha llevado


en la memoria, las tareas que definen el proyecto en su conjunto se han agrupado entorno a
cuatro grupos. Estos grupos y las tareas de que se compone seran analizados en la secci
on
primera de este captulo. Posteriormente se analizar
an los resultados obtenidos tanto en
cuanto a los objetivos marcados y finalmente se incluira una secci
on d
onde se recogen las
precauciones que han de tenerse en cuenta, tanto para reproducir el contenido de este
proyecto como para posteriores investigaciones basadas en el mismo.

7.1.

Resumen de las tareas realizadas

El primer grupo representado en el esquema 7.1 hace referencia a los estudios mecanicos realizados para el sistema, y que se describieron en profundidad en el captulo 3. La
presencia de este captulo es muy importante para el desarrollo del proyecto, pues permite
obtener los parametros mecanicos que definen el comportamiento del dispositivo y que son
utilizados en el modelado matematico y, consecuentemente, en el controlador. As pues, se
realiz
o un modelado CAD del dispositivo lo cual permitio obtener los parametros mecanicos asociados a la geometra del dispositivo, as como obtener una representaci
on grafica
del conjunto, informacion que puede ser utilizada en otros proyectos relacionados con cuadricopteros. En este captulo se obtuvieron tambien los parametros asociados a la din
amica
de los motores, recogidos a traves de los ensayos realizados con el banco de ensayos. Los
valores de los parametros obtenidos se han agrupado en la tabla 7.1 para facilitar al lector
la b
usqueda de los mismos.
Masa

Volumen

Ixx

Iyy

Izz

Kv

Rm

(Kg)

(mm3 )

(Kgm2 )

(Kgm2 )

(Kgm2 )

(rpm/v)

()

Ns )
( rad

ms )
(N
rad

0.2722

94059.7154

7,83 104

7,85 104

1,401 103

2900

0.6

5.44e-7

7.32e-9

Tabla 7.1: Parametros mecanicos del cuadricoptero


Finalmente, se realiz
o un estudio de los efectos aerodinamicos a considerar en el modelo,
evaluando especialmente la presencia del efecto suelo y el efecto techo. Las conclusiones
obtenidas fueron que el efecto s
olo es notable si la distancia entre las palas y el suelo es
inferior al radio de las palas. Consecuentemente, se debera tener esto en cuenta de cara al
montaje del dispositivo.
El siguiente grupo hace referencia a la regulacion del sistema y engloba desde el modelado matematico hasta la programacion de las m
aquinas de estados, tareas que se describieron con gran profundidad en el captulo 4. La primera de las tareas que se muestran
en el esquema 7.1 hace referencia a la obtencion de los modelos matematicos del sistema
los cuales, como se describe en la seccion 4.1, son:
Modelo no lineal completo: es el conjunto de ecuaciones que describen el comportamiento de un cuadric
optero y que permiten dise
nar un algoritmo de control capaz de
regular la velocidad lineal de la nave utilizando como se
nal de referencia la velocidad
186

Modelado y Control de un Cuadricoptero

Conclusiones

lineal deseada. Es decir, a traves del emisor se indicara la direccion y la magnitud


de la velocidad que ha de adquirir la nave la cual, a traves del algoritmo de control, modificar
a la velocidad de giro de las helices para obtener la velocidad deseada
(seguir a la referencia). La principal ventaja de este modelo es que representa bastante bien el comportamiento de un cuadricoptero en condiciones de vuelo interno.
Ademas al no tratarse de una linealizaci
on, la zona de vuelo no queda restringida al
punto donde se ha efectuado la linealizaci
on. Asmismo, permite usar velocidades de
desplazamiento como se
nales de referencia en vez de
angulos de Euler (se le indica
a la nave que se mueva en una direccion en vez de cuanto tiene que girar en una
o m
as direcciones para que se mueva en la direccion deseada), siendo mucho m
as
intuitivo para el piloto y por tanto mejorando su pilotaje. Por contra requiere una
gran cantidad de medidas para el control. Ademas de las proporcionadas por los
aceler
ometros y los giroscopos, se han de obtener las velocidades lineales y la altura
a la que se encuentra la nave. Por tanto el sistema debera contar un elemento de
medida que otorgue una referencia externa (no referida al sistema de referencia fijo
a la nave) como por ejemplo un GPS o una dotaci
on de sensores posicionados en la
estructura. Si el sistema implementado no cuenta con ellos, el control no recibira las
variables necesarias y anulara su funcionalidad
Modelo simplificado: Se ha denominado modelo simplificado o reducido al conjunto
de ecuaciones que describen el comportamiento de la nave en relaci
on a los
angulos de
Euler. Surge como consecuencia del desacoplo en las ecuaciones del modelo completo.
Consecuentemente este sistema usara como referencia los
angulos de Euler deseados
y el algoritmo de control hara que el sistema siga a la referencia. Como podra
esperarse, al usarse u
nicamente uno de los dos submodelos el sistema no sera tan
descriptivo como el anterior, y debera limitarse su uso a la regulacion de los
angulos
de Euler. Consecuentemente se pierde representacion de la realidad pero a cambio
se gana simplicidad, especialmente en la aparamenta instalada en la nave. Al no
incluir ecuaciones de traslacion (submodelo M1) no es necesario obtener medidas
de velocidad o altura de la nave por lo que la dotaci
on de sensores o GPS que
precisaba el modelo completo no sera necesaria, permitiendo controlar el sistema
con los elementos de medida de la IMU.
Modelo de un pendulo invertido: Este modelo surge como una representacion matematica del conjunto cuadricoptero-moto en el que se busca mantener la moto en
equilibrio a traves del cuadricoptero ante perturbaciones externas. Este modelo, aparentemente completamente ajeno al de un cuadricoptero en vuelo, permite representar la situacion en la que la nave se encuentra en un banco de ensayos estando fijo
uno de sus ejes (ver figura 2.21). Por lo tanto la labor del control es la de buscar la
posicion de equilibro a traves de la regulacion de un
angulo de Euler u
nicamente,
facilitando la obtencion de los parametros que definen el control. En condiciones
ideales (sin ruido alguno en el sistema), la obtencion de esos parametros se realiza a
187

Modelado y Control de un Cuadricoptero

Conclusiones

traves de la simulaci
on pero al existir ruido, conviene calibrarlos en base a ensayo.
Como la nave es simetrica respecto del centro de la estructura, el control del otro
eje sera el mismo permitiendo dise
nar el control de los
angulos de alabeo y cabeceo.
Posteriormente, en la secci
on 4.3.1 se obtuvieron las funciones de transferencia asociadas a cada modelo, de forma que se puedan calcular los parametros que definen los distintos
controles en base a estos modelos. Dichas funciones de transferencia se han recogido en la
siguiente tabla.

Angulos
de Euler
P (s)

P (s)

P (s)

L
Ix

L
Iy

1
Iz

s(sK2 )

s(sK3 )

Velocidades

s(sK4 )

Altura
Pz (s) =

1
s( s+1)

con

PVx (s)

PVy (s)

PVz (s)

1
s

1
s

1
s

P
endulo
=

1
Kp

P (s) =

b
Iy +mh2
2
s mgh 2
Iy +mh

Tabla 7.2: Conjunto de funciones de transferencia


Obtenidas las funciones de transferencia que describen cada modelo, o al menos parte
de uno, se dise
no el estimador de estados, un filtro de Kalman basado en cuaterniones. La
funcion del estimador de estados es obtener los valores de las variables de estado del control
a partir de las medidas de otras variables. Mas concretamente, en el caso que nos ocupa, se
busca obtener los valores de los
angulos de Euler a partir de las medidas de los gir
oscopos
y los aceler
ometros acoplados al dispositivo. En este proyecto se ha optado por el filtro de
Kalman por poseer un algoritmo m
as robusto de cara a las interferencias, siendo el filtro
optimo si el ruido de medida es un ruido blanco gaussiano. Por contra este filtro requiere de
un alto nivel de computacion y por tanto se ha hecho uso de cuaterniones para la obtencion
de las variables estimadas. De esta forma se pretende aligerar la carga computacional del
conjunto ya que la capacidad de calculo del microcontrolador es limitada. As pues, el
filtro que se implantara sera el descrito en la secci
on 4.2 donde se describe en detalle el
funcionamiento del filtro multiplicativo extendido de Kalman. Los parametros regulables
del filtro as como los valores usados se han incluido en la tabla 7.3.
Q

50

0.7772

-0.0226

-0.0862

50

-0.0226

0.6491

0.003

50

-0.0862

0.003

0.4048

Tabla 7.3: Parametros de regulacion del filtro de Kalman


La siguiente tarea que se muestra en el esquema 7.1 hace referencia al tipo de controladores que se han dise
nado a lo largo de este estudio. Como se puede observar se han
realizado distintos algoritmos de control para cada modelo sintetizado, as como diferentes
tipos de reguladores para realizar un estudio mas profundo. A lo largo de la siguientes
188

Modelado y Control de un Cuadricoptero

Conclusiones

tablas se han condensado los parametros caractersticos, clasificados seg


un el modelo para
el cual se han obtenido. En la tabla 7.4 se incluyen los valores de los tres controles parciales que conforman el controlador completo para el modelo completo. Este regulador se
estudio en profundidad en la secci
on 4.3.2. Se recuerda que el control PI se utilizo para
regular la traslacion del dispositivo al igual que los controles PD se usaron para regular la
posicion. El control de la altura (z) surge ante la mayor facilidad de obtener la altura del
dispositivo en vez de la velocidad vertical del mismo.
Control PI con ponderaci
on a la referencia

Control P

Control PD

Variable

Ti

Variable

Td

Vx

0.75

0.4939

0,4

Vy

0.75

0.5748

0,4

0,7

0,9524

0.898

2,97

0.5051

-0.0251

0,4

Kvz = 2

Tabla 7.4: Controles para el modelo completo


A continuacion se han recogido los parametros caractersticos de todos los controladores usados para regular el modelo simplificado, incluidos en la tabla 7.5. En ella no se han
incluido los valores de los reguladores en modo incremental, pues no varan en su magnitud ya que la diferencia reside en la construcci
on del diagrama de bloques. Los valores
incluidos son los obtenidos tras las modificaciones pertinentes realizadas a consecuencia
de los ensayos, es decir, son los valores que definen a los reguladores finales. S
olo se han
incluido los parametros mas representativos, por lo que se recomienda acceder a la seccion
4.3.3 para profundizar en la obtencion de los mismos.
Control PID con ponderaci
on y anti-windup
Variable

Ti

Td

19,85

0,1356

0.0185

0.8

19,9

0,1356

0.0185

0.5

3,93

0,1356

0.0185

0.05

Control por realimentaci


on de estados
Variable

Polos finales

Ki

[0,9 0,08j]

0.753

[24.4589,0.3472]

1050

[0,9 0,08j]

0.753

[29.5341,3.4481]

1050

[0,9 0,08j]

0.753

[5.7941,0.0683]

50

Control LQ
Variable
,
,
,

Polos finales

[617, 6,74]

[16.7291,2.5288]

[616, 6,74]

[16.7529,2.5325]

[1,06 1,06]

0.708

[0.0032,0.003]

Control LQ con acci


on integral
Variable
,
,
,

Polos finales

Ki

[1240, 294, 6,84]

[179.2775,2.0863]

-1.8879

[952, 294, 6,83]

[149.39,2.0889]

-1.8894

[95,2, 92,2, 6,74]

[57.37,0.7]

-0.725

Tabla 7.5: Controles para el modelo simplificado


189

Modelado y Control de un Cuadricoptero

Conclusiones

Finalmente, se han recogido en la tabla 7.6 los valores asociados al regulador para
el control del sistema modelado como un pendulo invertido. N
otese que este controlador
no usa los parametros mecanicos de la tabla 7.1, pues estos se ven modificados dada la
presencia de la moto en el conjunto. Estos valores se pueden obtener del proyecto realizado
por Jose Antonio Fernandez en el cual se analiza en mayor profundidad.
Variable

Td

0,7

0,5

-2.8654

0,0113

Tabla 7.6: Parametros del control del pendulo


La u
ltima de las tareas que presenta este bloque, acorde al esquema 7.1, es la creaci
on
de las maquinas de estado, d
onde se diferencia entre dos tipos de m
aquinas. La primera de
ellas o la que esta orientada a simulaci
on recibe ese nombre porque esta dise
nada para ser
aplicada en un algoritmo de control para el modelo completo. Dado que no se ha podido
realizar ensayos sobre este tipo de control, esencialmente por no disponer de los elementos
de medida acoplados al cuerpo, el uso de esta m
aquina de estados ha quedado limitada a
simulacion. Sin embargo, por su configuracion es perfectamente aplicable a un modelo real.
La segunda m
aquina de estados es la que se ha usado en los ensayos sobre el dispositivo y
es la que gestiona el arranque (armado de motores, control de tensi
on en la batera etc) de
forma segura y adecuada. Estas m
aquinas fueron tratadas en profundidad en la secci
on 4.4.
Comentada ya la u
ltima de las tareas asociadas al bloque de la regulacion, se procede
a describir las tareas relacionadas con la implementacion de los sistemas dise
nados para
el sistema. La primera tarea que se muestra en el esquema 7.1 hace referencia al modo en
el que se deben conectar los elementos que componen el conjunto. Este tema se trat
o en
profundidad en la secci
on 5.3 donde se incluyeron esquemas que facilitan la identificacion
y conexi
on de los componentes. En la figura 7.2 se han vuelto a incluir el diagrama de
conexi
on de la placa controladora a fin de sintetizar el contenido general del proyecto en
este captulo.

Figura 7.2: Conexionado al microcontrolador


190

Modelado y Control de un Cuadricoptero

Conclusiones

De igual manera se han incluido las tablas 7.7 y 7.8 las cuales muestran la relaci
on
entre cada canal y la variable real que describe, as como los pines de la tarjeta a los cuales
han sido conectados.
CH1
Empuje

CH2
Gui
nada

CH3
Cabeceo

CH4
Alabeo

CH5

CH6

Interruptor

Interruptor

primario

secundario

GND

Mi

TRC

Jump

Tierra

Motores

Tierra RC

Jumper

Tabla 7.7: Relaci


on entre canales y variables fsicas
Vbat

CH1

CH2

CH3

CH4

CH5

CH6

GND

M1

M2

M3

M4

TRC

Jump

A15

A13

A12

A11

A10

A9

A8

GND

12

Tabla 7.8: Relaci


on entre canales y pines de conexi
on
La siguiente tarea que se muestra en este bloque hace referencia al montaje de los
dispositivos, tarea que se estudi
o en profundidad en la seccion 5.2. Esta tarea no hace solo
referencia al cuadricoptero sino tambien a la elaboracion de la placa dise
nada, el divisor
de tensi
on, para poder obtener la medida de la tension de la batera. Esta medida es
particularmente importante pues si la tension de la misma supera un umbral inferior, la
batera quedar
a inservible. As pues, la inclusion de este elemento es bastante importante
para aumentar la seguridad del conjunto y por tanto debera mantenerse siempre activa.
El resultado final del cuadricoptero se muestra en la figura 7.3, donde se puede observar
el emisor y la moto que hace de soporte para el dispositivo.

Figura 7.3: Estructura final del cuadricoptero


191

Modelado y Control de un Cuadricoptero

Conclusiones

La u
ltima de las tareas que se han incluido en este grupo es la que hace referencia
al dise
no de los drivers de comunicacion entre los elementos perifericos y la placa microcontroladora. Es importante remarcar que estos drivers no se han podido obtener de
fuentes externas porque, dada las caractersticas del proyecto, se ha buscado integrar todo
el codigo en un entorno de Matlab Simulink. La elaboracion de los drivers se estudio en
profundidad a lo largo de la secci
on 5.1, donde se estudiaron cuatro drivers. A continuacion
se describe brevemente la funci
on de cada uno.
Driver para la IMU: Con este driver se pretende establecer la comunicaci
on entre la
IMU y el microcontrolador, es decir, que las medidas obtenidas en la unidad puedan
ser usadas en el control.
Driver para el transmisor-receptor RC: Este c
odigo es el que establece la comunicacion entre el receptor RC y el microcontrolador. El receptor es el encargado de
transmitir las referencias al sistema de control que, dependiendo de si es el control
para el modelo completo o simplificado, podran ser valores de
angulos o de velocidades lineales.
Driver para los motores: El driver para los motores es en esencia un generador de
pulsos de amplitud modulada (PWM) que permite variar la tensi
on aplicada al motor
a partir de una se
nal generada por el microcontrolador.
Driver para el lector de la tension de la bateria: Este driver permite registrar las
medidas que suministra la placa encargada de registrar la tensi
on de la batera.
Finalmente, el u
ltimo grupo hace referencia a los complementos realizados para el proyecto. Se han denominado como tal por no ser estrictamente necesarios para el desarrollo
del mismo, sino que permiten ayudar a visualizar o a ordenar los contenidos de que se
disponen. As pues se ha dise
nado un simulador de vuelo en Matlab que permite obtener
una representacion gr
afica de la posici
on de la nave en vez de la clasica grafica. El codigo
realizado se han incluido en el Anexo B de la memoria, en el cual se describe detalladamente su funcionamiento. Por otro lado, dado que este proyecto esta orientado a la educacion,
se ha considerado interesante crear una pagina web que incluya, de forma ordenada, todos
los contenidos realizados. De esta forma se pretende facilitar el acceso a la informacion en
futuros trabajos en este campo. El c
odigo programado se ha incluido en el Anexo C de
esta memoria.

7.2.

Conclusiones del proyecto

En esta secci
on se comentan los resultados obtenidos evaluando su validez de cara al
cumplimiento de los objetivos establecidos en la introducci
on del proyecto. As pues se
proceder
a a analizar cada una de las partes principales que componen este estudio de
forma que estas conclusiones queden de la forma m
as organizada posible.
192

Modelado y Control de un Cuadricoptero

7.2.1.

Conclusiones

Estudios mec
anicos

Los estudios mecanicos realizados sobre el sistema son bastante precisos y los valores de
los parametros que se han obtenido de ellos son cualitativamente exactos. Especialmente
los parametros de los motores, pues el banco de ensayos dise
nado permite obtenerlos con
una gran precision.
En cuanto a los parametros de la estructura tambien se suponen lo suficientemente
precisos como para asegurar un buen parecido de los modelos con la realidad. Sin embargo
s hay que notar que la estimacion de las densidades de las piezas, a pesar de haber sido
adecuadamente realizada, puede contener errores por lo que los valores de los momentos
de inercia del conjunto pueden contenerlo tambien. Sin embargo, estos errores pueden ser
asumidos como imprecisiones de los elementos de medida y, en principio, no debera ser
excesivamente grandes, por lo que el algoritmo de control sera capaz de compensarlo.
Finalmente, teniendo en cuentas las consideraciones aerodinamicas realizadas, el uso
de este dispositivo s
olo esta orientado a vuelos internos. Esto se debe a que no se han
incluido las ecuaciones que describen los efectos presentes en vuelo externo (presencia de
corrientes de aire, derivas etc.) en la ecuaciones del modelo.

7.2.2.

Regulaci
on del sistema

El estudio de la regulacion del sistema es mucho mas completo, pues corresponde al


n
ucleo de este proyecto. Consecuentemente las conclusiones que de este estudio se derivan
son mucho mayores.
En relacion al modelado del dispositivo, el uso de los tres modelos descritos a lo largo de este documento permite abarcar un mayor rango trabajo, permitiendo realizar un
estudio m
as completo del conjunto. En base a los resultados obtenidos, los modelos parecen ser lo suficientemente exactos como para garantizar una buena regulacion, con el
algoritmo de control que posteriormente se ha dise
nado. Sin embargo, todos los modelos
dependen de los parametros mecanicos del conjunto, por lo que si se detectase un error
en estos, los modelos deberan ser modificados. Afortunadamente, el codigo esta preparado para realizar tal tarea, pues incluye un archivo de inicializacion, a traves del cual
se pueden cambiar todos los parametros que componen el modelo. De esta forma se evita tener que cambiarlos individualmente en todas las partes del codigo, que en algunos
modelos pueden ser bastantes, y eludir la posibilidad de errores en el sistema. En base
a las simulaciones, todos los modelos parecen reflejar el comportamiento del dispositivo,
sin embargo no se debe olvidar que se trata de simulaciones y que, por tanto, pueden
no reflejar la realidad. En los ensayos en el dispositivo real han surgido comportamientos
inesperados, pues no se ha podido lograr regular el sistema. Aunque es m
as probable que
se deba a errores en otras partes del conjunto, no es absurdo pensar que el modelado no es
193

Modelado y Control de un Cuadricoptero

Conclusiones

el adecuado. Si se analizan las ecuaciones utilizadas se vera que a ese nivel s describen el
comportamiento buscado, siempre y cuando se restrinja su uso a un vuelo interno, por lo
que la u
nica fuente de inexactitud pueden venir dada por los parametros mecanicos usados.
El analisis del estimador de estados es bastante importante, incluso se podra clasificar
como crtico. Existen altas probabilidades de que el hecho de no poder regular la estabilidad del dispositivo sea consecuencia de una mala estimacion de
angulos de Euler. Esto
se debe, principalmente, a que el filtro de Kalman requiere de una referencia externa para
generar una estimacion totalmente precisa. En este caso, dada la presencia de materiales ferromagneticos en el entorno y la influencia de estos sobre los magnetometros, se ha
prescindido de su uso. La consecuencia es que aparece una deriva o bias en los
angulos
estimados y, consiguientemente, se introduce un error importante al sistema. En teora, la
presencia de una accion integral en el control podra cancelar esta perturbacion en carga
que se aplica sobre el dispositivo, sin embargo, sera m
as recomendable eliminarla. As pues
conviene realizar una labor de calibrado de los magnet
ometros para que puedan funcionar
en el entorno pertinente. La calibracion se puede realizar a traves una br
ujula virtual, las
cuales no presenta desviaciones con respecto al norte magnetico teorico. A pesar de no
haber hecho uso de estos elementos de medida, el filtro de Kalman esta preparado para
a
nadir la accion de estos sensores. Como se comento en la secci
on 2.6, este filtro de Kalman
es un filtro multiplicativo, es decir, que puede funcionar u
nicamente (con las limitaciones
que conlleva) con las medidas de giroscopos y aceler
ometros, pero se le puede a
nadir mas
elementos de medida (obviamente con cierto sentido) de forma que se mejore la estimacion. Por tanto, de buscar solucionar este problema, solamente habra que realizar unas
ligeras modificaciones, explicadas en la seccion 2.6, en el codigo del filtro para contar con
la informacion que estos sensores recogen.
Otro de los problemas que pueden darse en esta estimacion es que la velocidad a la cual
se generan los
angulos de Euler no sea la adecuada. Es importante que estos esten disponibles para su uso en el regulador, pues de lo contrario el controlador realizara acciones
de mando incorrectas, basadas en una mala observacion, es decir, de las medidas. Ademas
hay que tener en cuenta las vibraciones que generan los motores y que se transmiten a
traves de la estructura, afectando gravemente a los elementos de medida. Si se realiza un
estimador muy sensible, se podran estimar los
angulos de posicion m
as r
apidamente, pero
a su vez los
angulos incluiran un alto nivel de ruido. Por tanto aparece un compromiso
entre velocidad de estimacion y precision de la medida que debe solucionarse. La soluci
on
puede venir dada por la instalacion de dispositivos que absorban las vibraciones, de forma
que se asle la IMU, permitiendo hacer m
as sensible al filtro. Sin embargo, tambien puede
lograrse, al menos teoricamente, con una adecuada elecci
on de las matrices de covarianza.
As pues el la obtencion de las estas matrices, tales que permitan obtener los
angulos de
posicion con la precision y velocidad suficiente, es crtica. Uno de los metodos mas comunes, a pesar de no ser muy cientfico, consiste en utilizar el metodo de prueba y error.

194

Modelado y Control de un Cuadricoptero

Conclusiones

Sin embargo, este metodo no se puede utilizar en este caso pues requiere de una buena
monitorizaci
on de los resultados, cosa que no se da con los dispositivos disponibles. Como
se mencion
o anteriormente en el captulo 6.2.1, la evaluaci
on de la velocidad de estimacion
es compleja, puesto que los valores mostrados en simulaci
on, entendiendo simulacion como
el ensayo en el dispositivo fsico pero estando este en modo externo, no son siempre en
tiempo real, ya que la informacion se retrasa por distintos motivos (transmisi
on de datos
por el cable, procesado de estos en la tarjeta de adquisici
on de datos del PC, representacion grafica del proceso en los osciloscopios de Simulink...). As pues, para obtener un dato
real, o lo m
as parecido posible a la realidad, conviene instalar un sistema de telemetra
que permita monitorizar los valores caractersticos que definen el comportamiento de la
nave, evitando el uso del modo externo. Como cabe esperar, la inclusion de este nuevo
sistema de comunicacion aumenta la complejidad del sistema, es importante remarcar que
con el codigo dise
nado el microprocesador est
a casi al lmite de su capacidad, por lo que
puede que no sea posible a
nadirlo (habra que adquirir otro microcontrolador con mayor
capacidad de c
alculo); y ademas requiere de la creaci
on de un driver de comunicacion entre
el sistema telemetrico y el PC.
Como consecuencia de estas razones recien explicadas, se han llegado a la conclusion de
que este es el punto donde falla el sistema y que por tanto debe ser modificado.
Las conclusiones que se pueden obtener con respecto al funcionamiento de los controladores estan altamente influencias por la estimacion de los
angulos de posici
on que
estos reciben. As pues, si estas estimaciones son incorrectas, la informacion que se puede
sacar acerca del funcionamiento del sistema no es especialmente valiosa, pues no refleja
la realidad. Sin embargo, si se parte de la hipotesis de que la estimacion s se realiza de
forma adecuada, es decir, que el error se produce en el propio controlador, s se pueden
extraer conclusiones interesantes. Como se ha podido observar en la secci
on 6.3, el controlador que mejor resultados ha dado es el que usa una realimentacion de estados con
accion integral obtenido por el metodo LQ. Como consecuencia de la accion integral, el
control se debe modificar a un control incremental con mecanismo anti-windup y con una
logica tal que desactive la accion integral hasta que el sistema este en lazo cerrado. Este
controlador requiere de acciones de mando relativamente bajas, al menos en simulacion,
lo que permite alcanzar respuestas mas rapidas que con los demas controles. Ademas, la
estructura incremental facilita la l
ogica del mecanismo anti-windup al poder detectar la
saturacion a la salida del acumulador, y no cuando la se
nal se encuentra convertida a
valores de tension (con su consiguiente reconversion y desacoplo para la cancelacion de
la accion integral pertinente). Asimismo, permite limitar los incrementos en el mando,
evitando controles binarios, es decir, controles que oscilan entre los valores maximos y
mnimos de saturacion. Es muy probable que la razon del funcionamiento incorrecto del
sistema sea consecuencia de la conversion de la se
nal, es decir, el cambio de fuerzas acopladas a tensi
on en cada motor. Esa cadena de operaciones matematicas puede introducir

195

Modelado y Control de un Cuadricoptero

Conclusiones

errores en el sistema ademas de dificultar la identificacion de los mismos, pues con tal
cantidad de modificaciones es difcil seguirlos. Ademas, para acoplar las fuerzas que salen
del mando es necesario hacer uso de las medidas de los giroscopos, hecho particularmente
peligroso teniendo en cuenta el alto nivel de ruido que contienen, ya que el ruido entra
directamente sobre la se
nal de mando, pudiendo hacer el sistema inestable. As pues, la
mejor opcion que se presenta para futuros trabajos en la materia consisten en simplificar
la cadena de conversion, llegando incluso a eliminarla si fuera posible. De conseguirse, se
puede hacer uso de la misma estructura de control que se ha usado hasta el momento,
pues esta preparado para realizar tales modificaciones. La eliminacion de la cadena de
transformaciones supondra una modificacion en el modelo del sistema, modelo que se usa
para la obtenci
on de la matriz de realimentaci
on. As pues, solo se debera modificar el
diagrama de bloques del modelo y ejecutar el archivo de inicializacion que acompa
na al
controlador para obtener los nuevos valores de la matriz de realimentaci
on.
Finalmente, las m
aquinas de estados han demostrado funcionar adecuadamente tanto
en simulacion como en el sistema fsico, por lo que se puede asegurar que estan listas para
su implementacion.
A modo de sntesis, se ha realizado la siguiente tabla que resume los puntos tratados
anteriormente.
Parte

Resultados

Resultados

del

en

en el

proyecto

simulaci
on

sistema real

Comentarios

Par
ametros
mec
anicos
Modelado
S.Completo
Modelado
S.Simplificado
Modelado
Pendulo
Estimador

Velocidad de estimaci
on inadecuada.

de

Falta de magnet
ometros.

Estados
Regulador

No evaluado en sistema real.

S.Completo

Falta de dispositivos de medida.

Regulador
Efecto windup crtico.

S.Simp
PID sin anti-Winup
Regulador

Control binario.

S.Simp
PID con anti-Winup

196

Modelado y Control de un Cuadricoptero

Conclusiones

Parte

Resultados

del

en

Resultados
en el

proyecto

simulaci
on

sistema real

Comentarios

Regulador
S.Simp

Respuesta temporal demasiado lenta.

Realmientaci
on Est.
Regulador

Error en regimen permanente

S.Simp

Debido a la deriva en la estimaci


on.

Control LQ.
Regulador

Fallo en el Anti-windup.

S.Simp
Control LQI.
Regulador

El mejor de los dise


nados

S.Simp

Control binario.

LQI incremental.
M
aquina de
estados
Simulaci
on.
M
aquina de
estados
Dispositivo real.

Tabla 7.9: Resumen de conclusiones para la regulacion del sistema

7.2.3.

Implementaci
on

A diferencia de los resultados obtenidos de cara a la regulacion del sistema, los obtenidos de cara a la implementacion son muy favorables. Los driver blocks programados
realizan su funci
on a la perfeccion permitiendo su uso para futuros trabajos en este campo. Por otro lado el montaje del dispositivo tambien arroja resultados positivos, ya que
ning
un elemento ha presentado ninguna mal funci
on o defecto. De igual manera, la placa
que contiene el divisor realiza su funci
on perfectamente permitiendo registrar la tensi
on de
la batera en todo momento. As pues se puede concluir que este grupo de tareas cumplen
su funci
on a la perfeccion y por tanto no hay m
as puntos que resaltar. Como se realiz
o anteriormente, se han recogido los resultados en una tabla para condensar el contenido de
una forma m
as grafica.
Parte

Resultados

Resultados

del

en

en el

proyecto

simulaci
on

sistema real

Driver
IMU.
Driver
Transmior/Receptor.

197

Comentarios

Modelado y Control de un Cuadricoptero

Conclusiones

Parte

Resultados

Resultados

del

en

en el

proyecto

simulaci
on

sistema real

Driver

Comentarios

Perodo del PWM fijo.

Motores.
Driver
Batera.
Montaje del
cuadric
optero.
Montaje de
la placa
con el divisor.
Conexionado
de los elementos.

Tabla 7.10: Resumen de las conclusiones en la implementacion del dispositivo

7.2.4.

Estudio en conjunto

A modo de conclusion general del proyecto se puede decir que no se ha podido dise
nar
un controlador capaz de regular el comportamiento del cuadricoptero. Por lo tanto, los
objetivos fijados al principio de este documento no se han podido cumplir. Sin embargo,
evaluando el volumen de contenidos realizados, s se ha preparado el terreno para futuras
investigaciones en este campo. No solo se ha elaborado todo el paquete de drivers y se ha
dado un soporte fsico al sistema, sino que se ha generado tambien un conjunto de archivos
con el estimador, los controladores etc a partir de los cuales retomar la investigacion.
Ademas, se han elaborado una serie de documentos, como esta memoria, que describe en
detalle la labor realizada de forma que se facilite, en la mayor medida de lo posible, los
futuros trabajos en este sector. Se recuerda al lector que a lo largo de este documento
se han ido explicando las posibles causas por las cuales el sistema no se comporta como
se hubiera deseado as como posibles soluciones para estos problemas planteados. A fin
de agrupar todas las posibles lneas de investigacion en este campo se ha introducido el
captulo 8, donde se sintetiza toda la informacion expuesta a lo largo del documento de
cara a futuros desarrollos en este campo.

7.3.

Precauciones a tener en cuenta

Como conclusion del captulo se ha considerado interesante hacer un resumen de las


precauciones o consejos a tener en cuenta de cara a la reproducci
on de los contenidos
expuestos en este documento, as como posibles investigaciones que se basen en lo visto
hasta el momento. De esta forma se pretende transmitir la experiencia adquirida durante
el periodo de trabajo que se ha llevado a cabo.
No se debe situar el nivel de tensi
on de las bateras LiPO de 2 celdas por debajo de
los 7 V, pues quedaran inservibles.
198

Modelado y Control de un Cuadricoptero

Conclusiones

No se debe abrir la proteccion de las bateras LiPO, pues arden cuando estas se
ponen en contacto con el aire.
Para cargar las bateras LiPo se debe conectar el cable de tensi
on (rojo y negro)
y, ademas, el cable que sirve para equilibrar las cargas. Despues se ha de fijar la
intensidad de carga, 0.95A y el tipo de batera que se va a cargar.
Las bateras que se usan en la emisor son del tipo LiFe, por lo que se ha de seleccionar
el tipo de batera en el cargador.
Las bateras LiFe de que se disponen deben ser cargadas a 1.5A, por lo que no se
pueden usar los enchufes de los laboratorios ya que los transformadores existentes
solo admiten 1A. Deberan cargarse con las fuentes de alimentaci
on de corriente
continua que dispone la universidad.
Si por alg
un motivo se quiere dejar de cargar la batera se ha de desconectar primeramente el cargador, pues de lo contrario saltar
a un arco entre la batera y el
dispositivo.
Hay que asegurarse de que los aprisonadores usados para fijar las helices estan bien
fijos al eje de cada rotor. De lo contrario, a un elevando regimen de revoluciones,
pueden desprenderse pudiendo ocasionar da
nos humanos.
Ha de respetarse siempre y en todo momento la polaridad de la batera. Si se cambia
la polaridad al conectarla a la nave se quemar
an los cuatro ESC.
Si se esta realizando ensayos con el conjunto moto-cuadricoptero se ha de comprobar
que las abrazaderas, en forma de alambre, mantienen el conjunto unido. Si no ocurre
as, los motores tienen fuerza suficiente para separar ambos elementos, causado da
nos
sobre el cuadric
optero.
El jumper que viene originalmente con la placa ha de ser quitado de los pines para
habilitar la alimentaci
on externa.
Existe la posibilidad de que, si se usa una tarjeta controladora nueva, Simulink de un
error al volcar el c
odigo sobre esta. Esto se debe a que hay que cargar inicialmente
un codigo de Arduino que compatibiliza el uso de Simulink en el microcontrolador.
El codigo mencionado se encuentra en el anexo D.
El diagrama de bloques que engloba todo el algoritmo de control del sistema usa
la mayor parte de la capacidad de calculo de procesador. Si se a
naden mas bloques
puede darse el caso de que la simulacion se quede bloqueada en un instante de tiempo.
De ocurrir, desconecte el cable USB y reduzca el n
umero de bloques del sistema.
El arranque de los motores es relativamente elaborado. Se recomienda acudir al
manual de usuario (Documento II) realizado para facilitar la labor al lector.
199

Captulo 8

Futuras mejoras
Este u
ltimo captulo recoge las lneas de investigacion que, a juicio propio, pueden dar
lugar a resultados positivos en relacion a la regulacion del cuadricoptero. La mayor parte
de ellas ya se han mencionado en secciones anteriores, por lo que este captulo es mas un
sntesis de contenidos entorno a la idea de mejorar el trabajo realizado. Consecuentemente,
los puntos de partida as como algunas breves ideas de como proceder se enuncian a
continuacion.
1. Se ha de comprobar que las densidades de las piezas utilizadas en el modelo CAD

son realmente las adecuadas. Estas


pueden obtenerse haciendo una medici
on del
volumen del dispositivo, de forma que, conocida la masa, se pueda obtener su valor.
2. De cara a mejorar el estimador de estados, se han de incluir los magnet
ometros
en la estimacion de los
angulos de posicion de la nave. Para ello debera crearse, o
buscarse, un programa de calibrado de estos elementos de medida. Se recomienda
usar br
ujulas digitales para realizar tal accion. Se recuerda que el filtro de Kalman
implementando permite la ampliacion de los sensores de medida aplicando unas
peque
nas modificaciones al c
odigo existente.
3. Siguiendo con la lnea de mejorar la estimacion, se debe ajustar la velocidad de
obtencion de estos
angulos hasta ser los suficientemente r
apida como para garantizar
una buena regulacion por parte del controlador. Para ello, la implementacion de un
sistema telemetrico ayudar
a en gran medida pudiendo monitorizar los ensayos en
tiempo real.
4. Para concluir la mejora del estimador, se comento en secciones anteriores que las
vibraciones producidas por los rotores son considerables y que pueden afectar a la
estimacion de los mencionados
angulos. Por tanto se debe buscar un sistema para
aislar la tarjeta microcontroladora de estas. La mejor opcion quiz
as sea dise
nar una
carcasa de goma-espuma para, posteriormente, embutir la placa. Habra que evaluar
si el calor generado por esta es lo suficientemente elevado como para sobrecalentar
el dispositivo debido al nuevo aislamiento introducido.
201

Modelado y Control de un Cuadricoptero

Futuras mejoras

5. Si a pesar de realizar estas mejoras sobre el estimador, el controlador es incapaz


de regular el sistema, entonces debe simplificarse la cadena de transformaci
on de
unidades de la se
nal de mando. Con esta simplificaci
on sera mas sencillo identificar
los posibles errores existentes en el proceso.
6. En el caso de que se haya eliminado la deriva en la estimacion de los
angulos de
posicion, el control ha dise
nar puede simplificarse ya que la accion integral no sera
tan crucial como ahora. A pesar de todo, la accion integral es siempre un seguro para
eliminar el error en regimen permanente y, a pesar de la complejidad que conlleva
su incorporacion, nunca esta de mas incluirla para este tipo de aplicaciones.
7. Si se diera el caso en el que hubiera que aumentar el n
umero de bloques del software
a volcar sobre el microcontrolador, es muy probable que este no tuviera capacidad de
c
alculo suficiente como para procesarlo. Por tanto se debera adquirir e implementar
un microcontrolador con mayor capacidad si se pretende incrementar la complejidad
del sistema.
8. Se recomienda dise
nar un sistema mecanico de proteccion, una jaula o chasis, para
evitar que cuando la nave se encuentre en vuelo, pueda sufrir alguna avera en caso
de colisi
on.

202

Bibliografa
[1] Andrew Nelson Eric Klavins, Justin Palm and Andy Bradford. Quad-rotor uav project. University of Washington, (1):138, June 2011.
[2] http://www.allstar.fiu.edu/aero/images/pic5 1.gif.
[3] C BALAS and Dr J.F. Whidborne. Modelling and linear control of a quadrotor.
CRANFIELD UNIVERSITY, (1):195, September 2007.
[4] Sai Kishan R. C. S. Suraj G. Ramesh Srikanth Govindarajan, Tarun Agarwal and
Veena Devi. Design of multicopter test bench. International Journal of Modeling and
Optimization, Vol.3, No.3, June 2013.
[5] Steven L. Waslander Claire J. Tomlin Haomiao Huang, Gabriel M. Homann. Stanford university, stanford, california, usa. Aerodynamics and control of autonomous
quadrotor helicopters in aggressive maneuvering.
[6] Timothy W. McLain James K. Hall, Nathan B. Knoebel. Quaternion attitude estimation for miniature air vehicles using a multiplicative extended kalman filter. Brigham
Young University, Provo, UT 84602.
[7] Bertulfo Giraldo Osorio. Observador de estado mediante modos deslizantes de alto orden para procesos no lineales. Universidad Nacional de Colombia, Manizales,
Colombia, 2012.
[8] Dr. Ganesh Rajagopalan and Dong-Bum Kim. Froudes momentum theory: (actuator
disk theory). V/STOL, (1):19, Fall 2002.
[9] Peter Corke Paul Pounds, Robert Mahony. Modelling and control of a quad-rotor
robot. Australian National University, (3):110, 2006.
[10] J.Gresham P. Corke P. Pounds, R.Mahony and J. Roberts. Towards dynamicallyfavourable quad-rotor aerial robots. Australasian Conference on Robits and Automation, (1), 2004.
[11] Andrew Gibiansky. Quadcopter dynamics, simulations and control. (2):118, November 2012.

203

BIBLIOGRAFIA

Modelado y Control de un Cuadricoptero

[12] Marc Vila Mani. ingenia-cat


a motion control department. A quick overview on
rotatory Brush and Brushless DC Motors.
[13] Silver De Guzman Christopher Moy. Alternative quadcopter. University of Illinois,
USA.
[14] L. Iocchi D. Nardi G. Angeletti, J. R. Pereira Valente. Autonomous indoor hovering
with a quadrotor. Sapienza University of Rome.
[15] Aerodynamics

and

theory

of

flight.

Langley

flying

school.

www.langleyflyingschool.com, 2013.
[16] W. Johnson. Helicopter theory. Princeton University Press, Princeton, NJ, 1980.
[17] Aleksandr Kushleyev Bruce Kothmann Vijay Kumar Caitlin Powers, Daniel Mellinger. Influence of aerodynamics and proximity eects in quadrotor flight. GRASP
Laboratory, University of Pennsylvania, Philadelphia.
[18] Holger Voos. Nonlinear control of a quadrotor micro-uav using feedback-linearization.
Proceedings of the 2009 IEEE International Conference on Mechatronics. Malaga,
Spain, April 2009.
[19] Noth A. Bouabdallah, S. and R. Siegwart. Pid vs lq control techniques applied to an
indoor micro quadrotor. Swiss Federal Institute of Technology, (1), 2004.
[20] P. McKerrow. Modelling the draganflyer four rotor helicopter. IEEE International
Conference on Robotics and Automation, page 3596, April 2004.
[21] Rajnarayan D. G. Waslander S. L. Dostal D. Jang J. S. Homann, G. M. and C. J.
Tomlin. The stanford testbed of autonomous rotorcraft for multi agent control. Digital
Avionics Systems Conference, pages 12.E.4 12110., 2004.
[22] Lozano R. Castillo, P. and A. Dzul. Stabilization of a mini rotorcraft with four rotors.
IEEE Control Systems Magazine, pages 12.E.4 12110., 2005.
[23] Whidborne J.F. Cowling, I.D. and A.K. Cooke. Optimal trajectory planning and lqr.
Proc. UKACC Int. Conf. Control, (1), 2006.
[24] H Voos. Nonlinear state dependent riccati equation control of a quadrotor uav. IEEE
International Conference on Control Applications, (1), 2006.
[25] M. Chen and M. Huzmezan. A combined mbpc/2 dof ha controller for a quad rotor
uav. AIAA Atmospheric Flight Mechanics Conference, (1), 2003.
[26] Nikolas Trawny and Stergios I. Roumeliotis. Indirect kalman filter for 3d attitude
estimation. a tutorial for quaternion algebra. Technical Report Number 2005-002,
Rev. 57, University of Minnesota, March 2005.

204

BIBLIOGRAFIA

Modelado y Control de un Cuadricoptero

[27] PX4 Autopilot Platform. State machine. http://pixhawk.org/dev/apps/commander.


[28] Varesano. Freeimu. http://www.varesano.net/projects/hardware/FreeIMU.
[29] Texas Instruments. Lm741 operational amplifier. SNOSC25C
aMAY 1998
a REVISED MARCH 2013.

205

MODELADO Y CONTROL

DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
DOCUMENTO II

MANUAL DE USUARIO

Autor:

Directores:

Luis Sevilla

Juan Luis Zamora


Jose Porras

Cesareo
Fernandez

3 de junio de 2014

Captulo 1

Arranque del cuadricoptero


Este documento describe el procedimiento de arranque preconfigurado para el cuadricoptero.
Este conjunto de acciones, programadas a traves de la maquina de estados, surge ante la necesidad
de satisfacer los siguientes factores:
El sistema debe tener un interruptor de encendido y apagado, por razones de seguridad y
de ahorro de consumo.
Los motores deben recibir tension nula durante aproximadamente 5 segundos.
El incremento de tension en los motores debe ser gradual y lo suficientemente lento como
para permitir al sistema el armado de los motores. Este incremento de tension se puede
asemejar a una rampa de tension.
Una vez armados los motores, conviene introducir la tension mnima posible tal que permita girar las helices de los cuatro rotores con el menor regimen de revoluciones posible. Esto
permite la identificacion de posibles errores en el funcionamiento de los rotores, evitando
que se produzcan a un regimen de revoluciones mayor, pudiendo provocar situaciones de
peligro. Uno de estos posibles errores es que uno de los rotores no haya podido realizar
el armado y, cuando se alcanza el nivel de tension adecuado, los otros giraran mientras
que el afectado permanecera inmovil. Al girar a la menor velocidad posible, la carencia de
empuje de este motor no afecta a la estabilidad del dispositivo, por lo que no se generaran
estructurales, y s permitira identificar el problema y corregirlo.
danos
La transicion entre el mnimo regimen de revoluciones y el modo controlado, modo en
el que se activa la accion de controlador, sea lo mas suave posible. Se han de evitar los
a las personas que se
saltos en la tension en esta transicion a fin de evitar posibles danos
encuentren cerca del dispositivo.
El procedimiento programado para abordar estas necesidades se describe a continuacion, paso por paso, para facilitar el entendimiento del proceso.
Antes de arrancar el dispositivo se debe comprobar que la placa controladora se encuentra
conectada a la fuente de alimentacion externa, es decir, a la batera. La alimentacion se ha de
conectar a traves de los pines V y GND como se indico en el captulo 5 de la memoria. En la
figura 1.1 se muestran los cables conectados a los pines adecuados. Es importante asegurarse de
que la conexion esta presente ya que de lo contrario la placa estara desconectada y no ejercera
regulacion alguna. Tambien es muy importante conectar adecuadamente los cables ya que, de

conectar el cable de tension en el pin de GND, podra danarse


gravemente la placa.

209

Modelado y Control de un Cuadricoptero

Arranque del cuadricoptero

Figura 1.1: Conexion de la alimentacion externa a la placa


Como se ha conectado la alimentacion externa se ha de retirar el jumper, como se menciono en la memoria, resultando en la configuracion que muestra figura 1.2.

Figura 1.2: Placa sin el Jumper


Una vez cumplidas estas dos condiciones, se conecta la batera al dispositivo a traves del cable
de alimentacion soldado a la estructura. Para mas claridad se ha incluido la figura 1.3. Se ha de
poner especial cuidado al conectar la batera, pues si se cambia la polaridad en la conexion se
quemaran los cuatro reguladores de velocidad obligando a desoldar los componentes y a montar
otros nuevos.

210

Modelado y Control de un Cuadricoptero

Arranque del cuadricoptero

Figura 1.3: Conexion de la batera


Al conectar la batera se escucha un sonido que indica que los motores reciben tension, sonido
que se mantendra hasta que los rotores comiencen a girar. Con la batera conectada, se comprobara que la posicion de los elementos marcados en la figura 1.4 es la misma que la del transmisor
utilizado. En todo el proceso de arranque solo se usaran los tres elementos indicados, accionados
de forma que se cumpla la secuencia programada en la maquina de estados.

Figura 1.4: Configuracion inicial


El primer paso consiste en bajar la palanca marcada en la figura 1.4, que es la encargada de
variar la tension aplicada a los motores (en control es la que regula el empuje del dispositivo),
hasta su posicion inferior. A continuacion activamos el interruptor trasero de la emisora, como
se representa la 1.5. Cuando este interruptor se encuentra apagado, los motores reciben tension
211

Modelado y Control de un Cuadricoptero

Arranque del cuadricoptero

nula, independientemente de cualquier otra variable, tanto del proceso como de las transmitidas
por el emisor.

Figura 1.5: Activacion del interruptor general


Con el interruptor activado, la palanca en cuestion actua como un potenciometro sobre los
reguladores, suministrandole mayor o menor tension, en funcion de la posicion de e sta. As pues,
se procedera a armar los motores subiendo lentamente la palanca (figura 1.6). El sonido emitido
por los motores se apaga cuando e stos se encuentran armados, constituyendo e ste un medio de
control del proceso. Si se mueve la palanca demasiado rapido no se dara tiempo suficiente a los
motores para armarse, y los motores emitiran un sonido estridente para indicarlo. De ocurrir se
debera bajar la palanca hasta su posicion inferior y proceder de nuevo al armado.

Figura 1.6: Incremento gradual de la tension sobre los motores


212

Modelado y Control de un Cuadricoptero

Arranque del cuadricoptero

La tension aplicada a los motores se encuentra limitada superiormente de forma que se obtenga el mnimo regimen de revoluciones posibles, es decir, se busca que las helices giren pero
sin llegar a levantar, ni a regular en tierra, el dispositivo. Generalmente, este estado se produce
cuando la palanca llega a la mitad del recorrido. Cuando se ha comprobado que todos los rotores giran adecuadamente, se activa el interruptor marcado en la figura 1.7. Este interruptor
fija la tension para el regimen de revoluciones deseado, independientemente de la palanca usada
anteriormente.

Figura 1.7: Fijado de la mnima velocidad de giro


Esto evita saltos en la transicion entre el estado de mnimas revoluciones y el de control, pues
si se mantuviese la posicion de la palanca tal y como resulta del proceso de armado, al activar
el control se producira un salto entre el mnimo regimen de revoluciones (TP W M = 1ms) y el
punto de trabajo en control (TP W M = 1,5ms).

Figura 1.8: Recuperacion del mnimo regimen de revoluciones en control


213

Modelado y Control de un Cuadricoptero

Arranque del cuadricoptero

As pues, fijado ese regimen de revoluciones se vuelve a bajar la palanca usada a su mnimo valor,
como muestra la figura 1.8. Una vez realizado, el sistema se encuentra listo para activar el modo
de control, activacion que se produce devolviendo el interruptor anteriormente accionado a su
posicion original, como muestra la figura 1.9. El salto es ahora suave pues, el punto inferior de la
palanca coincide con el mnimo valor del perodo del PWM generado por el algoritmo de control.

Figura 1.9: Activacion del modo de control


Es en este momento, y no en los anteriores, cuando el sistema se encuentra regulado por el

controlador y donde recibe las senales


de las demas palancas. Cada una de ellas realiza la funcion
que se describio en detalle en el captulo 5 de la memoria, y el sistema puede volar libremente.
Cuando se desea acabar con el vuelo, antes de apagar la emisora, se ha de desactivar el interruptor
general de la figura 1.10.

Figura 1.10: Diagrama de gastos por secciones

214

Modelado y Control de un Cuadricoptero

Arranque del cuadricoptero

La desconexion no sera inmediata, sino que tardara entorno a 3 segundos, debido al tiempo
Es importante tenerlo en cuenta de cara a paradas de emergencia pues,
de procesado de la senal.
se ha de saber que no responde de forma instantanea.
Este proceso de arranque permite cumplir con las necesidades enunciadas en la introduccion
as como usar un numero relativamente bajo de elementos.

215

MODELADO Y CONTROL

DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
DOCUMENTO III

CODIGO
FUENTE

Autor:

Directores:

Luis Sevilla

Juan Luis Zamora


Jose Porras

Cesareo
Fernandez

3 de junio de 2014


Indice
general
1. Modelos
221
1.1. Modelo completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
1.2. Modelo simplificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
1.3. Modelo de un pendulo invertido . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
2. Estimador de Estados

229

3. Controladores para simulacion


3.1. Controladores para el modelo completo . . . .
3.2. Controladores para el modelo simplificado . .
3.2.1. Control PID . . . . . . . . . . . . . . .
3.2.2. Control LQ . . . . . . . . . . . . . . .
3.2.3. Control por realimentacion de estados
3.3. Controlador para el modelo del pendulo . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

235
235
239
239
243
246
248

4. Controladores para el sistema real


4.1. Configuracion general . . . . . . .
4.2. PID . . . . . . . . . . . . . . . . .
4.3. LQ . . . . . . . . . . . . . . . . . .
4.4. LQI en configuracion incremental

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

249
249
251
253
254

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

5. Driver Blocks
255
5.1. Driver para la IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
5.2. Driver para el receptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

ccxix

Captulo 1

Modelos
En esta seccion se presenta el codigo implementado que describe el comportamiento matematico obtenido en los modelos de cada sistema.

1.1. Modelo completo

Figura 1.1: Diagrama de bloques del modelo completo

function [dX,Y] = conversor mandos entradas(X,m,param)


%% Entradas: Tensiones de los motores.
um1=m(1);
um2=m(2);
um3=m(3);
um4=m(4);
w1=X(1);
w2=X(2);
w3=X(3);
w4=X(4);
%% Par
ametros:
% Thrust factor

221

Modelado y Control de un Cuadricoptero

Modelos

b=param(4);
% Drag Factor
d=param(5);
% Resistencia del motor en ohm
Rm=param(9);
% Constante del motor (V.s o N.m/A)
Km=param(10);
% Momento de inercia de los motores
Ir=param(11);
%% Ecuaciones de estado:
% Motor DC brushless numero i
% Km*(umiKm*wi)/Rm = Ir*dw1/dt + d*wi2
dw1=1/Ir*(Km*(um1Km*w1)/Rmd*w12);
dw2=1/Ir*(Km*(um2Km*w2)/Rmd*w22);
dw3=1/Ir*(Km*(um3Km*w3)/Rmd*w32);
dw4=1/Ir*(Km*(um4Km*w4)/Rmd*w42);
% Nuevas variables de entrada auxiliares (fuerzas y pares provocadas por los motores)
u1=b*(w12+w22+w32+w42); % Fuerza ascendente eje Z del cuerpo ()
u2=b*(w22w42); % Fuerza neta de roll (+)
u3=b*(w12w32); % Fuerza neta de pitch (+)
u4=d*(w12+w32w22w42); % Par de yaw ()
gu=w1w2+w3w4;
dX=[dw1 dw2 dw3 dw4]';
%% Ecuaciones de salida
Y = [u1,u2,u3,u4,gu];

function [dX,Y,giroscopo] = Cuad Ang(X,U,param)


%% Entradas
u2=U(1); %b(w22w42)
u3=U(2); %b(w12w32)
u4=U(3); %d(w12+w3w22w42)
gu=U(4); %(w1w2+w3w4)
%% Variables de estado
% Angulos de giro
phi=X(1);
theta=X(2);
psi=X(3);
% Velocidades de giro
phi punto=X(4);
theta punto=X(5);
psi punto=X(6);

222

Modelado y Control de un Cuadricoptero

Modelos

%% Par
ametros
% Longitud del brazo(m)
L=param(2);
% Tensor de inercia (Kgm2)
Ix=param(6);
Iy=param(7);
Iz=param(8);
% Inercia del rotor (Kgm2)
Ir=param(11);
%% Previos
I1= (IyIz)/Ix;
I2= (IzIx)/Iy;
I3=(IxIy)/Iz;
%% Ecuaciones de estado
dphi=phi punto+sin(phi)*tan(theta)*theta punto+cos(phi)*tan(theta)*psi punto;
dtheta=cos(phi)*theta puntosin(phi)*psi punto;
dpsi=sin(phi)/cos(theta)*theta punto+cos(phi)/cos(theta)*psi punto;
dphi punto=theta punto*psi punto*I1(Ir/Ix)*theta punto*gu+(L/Ix)*u2;
dtheta punto=phi punto*psi punto*I2+(Ir/Iy)*phi punto*gu+(L/Iy)*u3;
dpsi punto=phi punto*theta punto*I3(1/Iz)*u4;
% Vector de estado
dX=[dphi dtheta dpsi dphi punto dtheta punto dpsi punto]';
%% Ecuaciones de salida
Y = [phi theta psi];
giroscopo=[phi punto theta punto psi punto];

function [dX,Y,velocidades,aceleraciones] = Cuad lin(X,U,param)


%% Entradas
u1=U(1);
phi=U(2);
theta=U(3);
psi=U(4);
%% Variables de estado
% Velocidades lineales
x punto=X(1);
y punto=X(2);

223

Modelado y Control de un Cuadricoptero

Modelos

z punto=X(3);
%% Parametros
% Masa (Kg)
m=param(1);
% gravedad (m/s2)
g=9.81;
%% Ecuaciones de estado
dx punto = (cos(phi)*sin(theta)*cos(psi)+sin(phi)*sin(psi))*u1/m;
dy punto = (cos(phi)*sin(theta)*sin(psi)sin(phi)*cos(psi))*u1/m;
dz punto = g cos(phi)*cos(theta)*u1/m;
% Vector de estado
dX=[dx punto dy punto dz punto]';
%% Ecuaciones de salida
Y = [phi theta psi];
velocidades=[x punto,y punto,z punto];
aceleraciones=[dx punto dy punto dz punto];
function Medidas

= IMU(vel,accel,ang,giro)

phi=ang(1);
theta=ang(2);
psi=ang(3);
g=9.81;
%% Ecuaciones:
R

= [cos(theta)*cos(psi) sin(phi)*sin(theta)*cos(psi)cos(phi)*sin(psi)...
cos(phi)*sin(theta)*cos(psi)+sin(phi)*sin(psi);
cos(theta)*sin(psi) sin(phi)*sin(theta)*sin(psi)+cos(phi)*cos(psi)...
cos(phi)*sin(theta)*sin(psi)sin(phi)*cos(psi);
sin(theta) sin(phi)*cos(theta) cos(phi)*cos(theta)];

%% Ecuaciones de salida
ab= R'*([0 0 g] 0*accel)';
ejeXb=R(1,:)';
Medidas = [giro' ; ab ; ejeXb] ;

224

Modelado y Control de un Cuadricoptero

Modelos

1.2. Modelo simplificado

Figura 1.2: Diagrama de bloques del modelo simplificado

function [u1,u2,u3] = conversor up(omegas,up1,up2,up3,param)


%% Par
ametros
Ix=param(1);
Iy=param(2);
Iz=param(3);
L=param(4);
Kt=param(5);
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
a3=(IxIy)/Iz;
%% Variables
wphi=omegas(1);
wtheta=omegas(2);
wpsi=omegas(3);
%% Ecuaciones
u1=(Ix/L)*(Kt*wphiwtheta*wpsi*a1)+up1;
u2=(Iy/L)*(Kt*wthetawphi*wpsi*a2)+up2;
u3=(Iz)*(Kt*wpsiwphi*wtheta*a3)+up3;
end

function [dx,omegas,y] = Conversor cuadricoptero(x,u2,u3,u4,param)

225

Modelado y Control de un Cuadricoptero

Modelos

%% Par
ametros
Ix=param(1);
Iy=param(2);
Iz=param(3);
L=param(4);
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
a3=(IxIy)/Iz;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
%% Variables de estado:
phi=x(1);
theta=x(2);
psi=x(3);
wphi=x(4);
wtheta=x(5);
wpsi=x(6);
%% Ecuaciones de estado
dphi=wphi;
dtheta=wtheta;
dpsi=wpsi;
dwphi=a1*wtheta*wpsi + b1*u2;
dwtheta=a2*wphi*wpsi + b2*u3;
dwpsi=a3*wphi*wtheta + b3*u4;
dx=[dphi,dtheta,dpsi,dwphi,dwtheta,dwpsi]';
omegas=[wphi,wtheta,wpsi]';
y = [phi,theta,psi]';

226

Modelado y Control de un Cuadricoptero

Modelos

1.3. Modelo de un pendulo invertido

Figura 1.3: Diagrama de bloques para el pendulo invertido

function [u1,u2] = fcn(pwm1,pwm2)


u1=pwm1*8/255;
u2=pwm2*8/255;

function y = fcn(U1,U2,UC,wc,param)
d=param(1);
R=param(2);
% Constante del motor (V.s o N.m/A)
Kt=param(3);
a2=Kt2/d/R;
b2=Kt/d/R;
Au=U1UC;
y=((8*wc*b2)/(4*wc+2*a2))*Au;
%0.5709

function [dx,y] = fcn(x,u,param)


Ix=param(1);
Iy=param(2);
Iz=param(3);
L=param(4);
b=param(5);

227

Modelado y Control de un Cuadricoptero

Modelos

d=param(6);
Rm=param(7);
Km=param(8);
Ir=param(9);
m=param(10);
h=param(11);
g=param(12);
theta=x(1);
wtheta=x(2);
dtheta=wtheta;
dwtheta=(h*m*g*sin(theta)b*L*(u))/(Iy+m*h2);
dx=[dtheta,dwtheta];
y =[theta,wtheta]';

228

Captulo 2

Estimador de Estados
En esta seccion se presenta el codigo programado que constituye el filtro de Kalman.

Figura 2.1: Diagrama de bloques del filtro de Kalman

function R= R correction(g)
k=[1.5;1.5;1.5];
%Corrige la matriz de error en las medidas R
R=[0.1,0,0;0,0.1,0;0,0,0.1];
R(1,1)=R(1,1)*(1+k(1)*(1norm(g))2);
R(2,2)=R(2,2)*(1+k(2)*(1norm(g))2);
R(3,3)=R(3,3)*(1+k(3)*(1norm(g))2);

function ae = Accelm correction(g a,e)


%Corrige las medidas del aceler
ometro
%% Eje Z en el sistema inercial rotado al del cuerpo

229

Modelado y Control de un Cuadricoptero

Estimador de Estados

Zi=[0;0;1];
R=[e(1)2+e(2)2e(3)2e(4)2, 2*(e(2)*e(3)+e(4)*e(1)), 2*(e(2)*e(4)e(3)*e(1));...
2*(e(2)*e(3)e(4)*e(1)), e(1)2e(2)2+e(3)2e(4)2, 2 *(e(3)*e(4)+e(2)*e(1));...
2*(e(2)*e(4)+e(3)*e(1)), 2*(e(3)*e(4)e(2)*e(1)), e(1)2e(2)2e(3)2+e(4)2];
zb=R*Zi;
zb=zb/(norm(zb)+sqrt(eps));
%% Correci
on de la medida
EeA=cross((g a./(norm(g a)+sqrt(eps))),(zb));

%Cambio respecto al paper

ThetaeA=acos(dot((g a./(norm(g a)+sqrt(eps))),(zb)));


ae=ThetaeA*EeA;

function F = state update matrix computation(w)


%C
alcula la matriz de actualizaci
on de estado con las medidas de la
%velocidad angular corregidas
F = [0 w(3) w(2);w(3) 0 w(1);w(2) w(1) 0];

Figura 2.2: Seccion a priori del filtro de Kalman

function [K,H]= H K computation(R,Pant)


%Linealiza h(x,k) y calcula la matriz de ganancia de Kalman.
%% Linearizaci
on de h(x,k)
H=eye(3);
%% Calcula de la ganancia de Kalman
K=Pant*H'*(R+H*Pant*H')(1);
function P= P update(K,H,Pant)
%Actualiza la matriz de covarianzas
P=(eye(3)K*H)*Pant;

230

Modelado y Control de un Cuadricoptero

Estimador de Estados

function x = x update(K,xant,ae)
%Actualiza el vector de estados
%% Descomposici
on del quaternion de altitud en componentes
e0=xant(1);
ex=xant(2);
ey=xant(3);
ez=xant(4);
%% Actualizaci
on del error de posici
on
ae sig=K*ae;
%% Descomposicion del vector del error de posici
on en componentes
aex sig=ae sig(1);
aey sig=ae sig(2);
aez sig=ae sig(3);
%% Creaci
on del quaternion del error de posci
on por componentes
delta ae0=cos(norm(ae sig)/2);
delta aex=(aex sig/(norm(ae sig)+sqrt(eps)))*sin(norm(ae sig)/2);
delta aey=(aey sig/(norm(ae sig)+sqrt(eps)))*sin(norm(ae sig)/2);
delta aez=(aez sig/(norm(ae sig)+sqrt(eps)))*sin(norm(ae sig)/2);
%% Actualizaci
on de la posici
on
e sig=[delta ae0*e0delta aex*exdelta aey*eydelta aez*ez;...
delta ae0*ex+delta aex*e0delta aey*ez+delta aez*ey;...
delta ae0*ey+delta aex*ez+delta aey*e0delta aez*ex;...
delta ae0*ezdelta aex*ey+delta aey*ex+delta aez*e0];
%% Salida
x=[e sig(1);e sig(2);e sig(3);e sig(4);ae sig(1);ae sig(2);ae sig(3)];

231

Modelado y Control de un Cuadricoptero

Estimador de Estados

Figura 2.3: Seccion a posteriori del filtro de Kalman


function P1 = P update(P,F)
%Actualiza el valor de la matriz P
%% Variables
Q=[10 0 0; 0 100 0;0 0 1];
ts=1/490;
%% Actualizaci
on
P1 = P+ ts*(F*P+P*F'+Q);
function x1 = X update(x,w)
%Actualiza el valor de la matriz P
%% Variables
e0=x(1);
ex=x(2);
ey=x(3);
ez=x(4);
w0=0;
wx=w(1);
wy=w(2);
wz=w(3);
e=[e0,ex,ey,ez]';
ts=1/490;
%% Actualizaci
on

232

Modelado y Control de un Cuadricoptero

Estimador de Estados

e sig=e+(ts/2)*([w0*e0wx*exwy*eywz*ez;w0*ex+wx*e0wy*ez+wz*ey;...
w0*ey+wx*ez+wy*e0wz*ex;e0*ezwx*ey+wy*ex+wz*e0]);
x1=[e sig(1);e sig(2);e sig(3);e sig(4);0;0;0];

Conversor de cuaterniones a a ngulos de Euler


function ang = quat2ang(e)
%Convierte las componentes del quaterni
on de posici
on en angulos de Euler
e0=e(1)/norm(e);
ex=e(2)/norm(e);
ey=e(3)/norm(e);
ez=e(4)/norm(e);

phi=atan((2*(e0*ex+ey*ez))/(12*(ex2+ey2)));
theta=asin(2*(e0*eyez*ex));
psi=atan((2*(e0*ez+ex*ey))/(12*(ey2+ez2)));
ang=[phi,theta,psi];

233

Captulo 3

Controladores para simulacion


En esta seccion se presentan tanto los diagramas de bloques como el codigo contenido en
las funciones de matlab que lo componen, los cuales constituyen el controlador programado. Los
contenidos estan organizados por secciones, siguiendo el orden que se utilizo en el desarrollo de
la memoria del proyecto.

3.1. Controladores para el modelo completo

Figura 3.1: Obtencion de medidas y referencia para el controlador

Figura 3.2: Bloque del estimador del estados

235

Modelado y Control de un Cuadricoptero

Controladores para simulacion

Figura 3.3: Bloque del controlador completo

Figura 3.4: Diagrama de bloques del controlador completo

Figura 3.5: Controlador parcial de velocidad

236

Modelado y Control de un Cuadricoptero

Controladores para simulacion

Figura 3.6: Controlador parcial de los a ngulos

Figura 3.7: Bloque de desacoplo


de parametros
Inicializacion
%
%
%

Archivo de inicializaci
on

%
clc
clear
%% Par
amentros:
s=tf('s');
% Periodo de muestreo
ts=10e3;
z=tf('z',ts);
% Gravedad (m/s2)
g=9.81;
% Motor DC brushless:
% Resistencia (ohm)
Rm=0.6;
% Constante motor DC brushless (V.s o N.m/A)
Km=35.3e3;

237

Modelado y Control de un Cuadricoptero

Controladores para simulacion

% Momento de inercia motor DC brushless (kg.m2)


Ir=104e6;
% Quadcopter
% Masa del quadcopter (kg)
m=0.65;
% Distancia entre el eje de cada motor y el CDG (m)
L=0.23;
% Distancia del palo de rotores al CDG (m)
h=0.06;
% Thrust factor (N.s2)
b=54.2e6;
% Drag Factor (N.m.s2)
d=1.1e6;
% Momentos de inercia (kg.m2)
Ix=8.1e3;
Iy=8.1e3;
Iz=14.2e3;
% Vector de parametros
param=[m L h b d Ix Iy Iz Rm Km Ir]';
% Parametros
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
wn euler = 2;
%% Valores para la estimaci
on:
% DCM:
um0 = d*Rm/Km*6.3765/4/b + Km*sqrt(6.3765/4/b);
W=0.5;
K IMU=0.5;
Ti IMU=1;
T IMU=0.5;
wGyro=exp(ts/T IMU);
wg DCM=exp(ts/T IMU);
wa DCM=(1wg DCM)/2;
wm DCM=(1wg DCM)/2;
z 0=0;
%% Valores para el control:
T = 1/2/wn euler;
K = 1/4/T;
% Par
ametros de control general:
K Phi= K/T*Ix/L;
K Theta= K/T*Iy/L;
K Psi= K/T*Iz;
Td Phi= 1/K;
Td Theta = 1/K;
Td Psi= 1/K;

238

Modelado y Control de un Cuadricoptero

Controladores para simulacion

Td2 Phi= a1*T/K;


Td2 Theta= a2*T/K;
Td2 Psi= 0;
% Control Altura:
K vz=2*(wn euler/5);
tau =1/K vz;
seta=0.7;
wn = 1/(2.1*tau);
T3 = 1/(1/tau2*seta*wn);
K z = wn*(wn+2*seta/T3)*tau;
Ti z = K z/tau/wn2*T3;
b z=T3/Ti z;
% Control velocidad:
wn = wn euler/5;
K v = 2*wn;
Ti v=K v/wn2;
b v=0.75;

3.2. Controladores para el modelo simplificado


3.2.1. Control PID

Figura 3.8: Diagrama de bloques del sistema controlado por un PID

239

Modelado y Control de un Cuadricoptero

Controladores para simulacion

Figura 3.9: Diagrama de bloques del controlador PID

Figura 3.10: Diagrama de bloques del mecanismo antiwindup


de parametros
Inicializacion
%==========================================================================
%

Control PID Modelo simplificado

%==========================================================================
%
% Luis Sevilla Fern
andez

Proyecto fin de carrera

% 17/04/2014

Control de un cuacric
optero

%
%% Par
ametros:
ti=1;
s=tf('s');
% Periodo de muestreo
ts=1/490;
z=tf('z',ts);
% Gravedad (m/s2)
g=9.81;
% Motor DC brushless:
% Resistencia (ohm)

240

Modelado y Control de un Cuadricoptero

Controladores para simulacion

Rm=0.6;
% Constante motor DC brushless (V.s o N.m/A)
Km=60/2900/2/pi;
Kt=Km;
Kv=2900;
% Momento de inercia motor DC brushless (kg.m2)
Ir=104e8;
% Quadcopter
% Masa del quadcopter (kg)
m=0.2722;
% Distancia entre el eje de cada motor y el CDG (m)
L=0.11;
% Distancia CDG (m)
h=0.1;
% Thrust factor (N.s2)
b=5.4455e07;
% Drag Factor (N.m.s2)
d=7.3251e09;
% Momentos de inercia (kg.m2)
Ix=0.000783;
Iy=0.000785;
%Iy=5e3;
Iz=0.001401;
Ir=104e6;
%Ix=8.1e3;
%Iy=8.1e3;
%Iz=14.2e3;
% Vector de parametros
param=[m L h b d Ix Iy Iz Rm Km Ir]';
% Par
ametros
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
%% Dise
no Control PID (Ts=1/490)
ts=1/490;
Kt=50;
% Plantas:
s= tf([1,0],[1]);
Pphi=(L/Ix)/(s*(s+Kt));
Pphi ret=Pphi*exp(ts*s/2);
Ptheta=(L/Iy)/(s*(s+Kt));

241

Modelado y Control de un Cuadricoptero

Controladores para simulacion

Ptheta ret=Ptheta*exp(ts*s/2);
Ppsi=(1/Iz)/(s*(s+Kt));
Ppsi ret=Ppsi*exp(ts*s/2);

% Par
ametros del control:
margen=80;
f pi=10;
w0=50;
f=0.0001;
b pond1=0.8;
b pond2=0.5;
b pond3=0.05;
% Obtenci
on de constantes del control:
[Am1,fm1]=bode(Pphi ret,w0);
[Am2,fm2]=bode(Ptheta ret,w0);
[Am3,fm3]=bode(Ppsi ret,w0);
f1 pd=(180+fm1+f pimargen);
f2 pd=(180+fm2+f pimargen);
f3 pd=(180+fm3+f pimargen);
I=(1/tan(f pi *pi/180))/w0;
temp1= (1/f1)/(2*tan(f1 pd *pi/180));
temp2= (1/f1)/(2*tan(f2 pd *pi/180));
temp3= (1/f1)/(2*tan(f3 pd *pi/180));
D1=(temp1sqrt(temp12(1/f)))/w0;
D2=(temp2sqrt(temp22(1/f)))/w0;
D3=(temp3sqrt(temp32(1/f)))/w0;
Kp1=(1/Am1)*cos(f pi *pi/180)*sqrt((1+(f*w0*D1)2)/(1+(w0*D1)2));
Kp2=(1/Am2)*cos(f pi *pi/180)*sqrt((1+(f*w0*D2)2)/(1+(w0*D2)2));
Kp3=(1/Am3)*cos(f pi *pi/180)*sqrt((1+(f*w0*D3)2)/(1+(w0*D3)2));
mu1=1+(1f)*D1/(I);
mu2=1+(1f)*D2/(I);
mu3=1+(1f)*D3/(I);
Ti1=mu1*I;
Ti2=mu2*I;
Ti3=mu3*I;
N1=(1/(mu1*f))1;
N2=(1/(mu2*f))1;
N3=(1/(mu3*f))1;

242

Modelado y Control de un Cuadricoptero

Controladores para simulacion

Td1=(N1)/(1/(mu1*f))*D1/mu1;
Td2=(N2)/(1/(mu2*f))*D2/mu2;
Td3=(N3)/(1/(mu3*f))*D3/mu3;
K1=mu1*Kp1;
K2=mu2*Kp2;
K3=mu3*Kp3;

3.2.2. Control LQ

Figura 3.11: Diagrama de bloques para el control LQ

Figura 3.12: Diagrama de bloques para el desacoplo de las senales


de mando
de parametros
Inicializacion
%==========================================================================
%

Control LQRI Modelo simplificado

%==========================================================================
%

243

Modelado y Control de un Cuadricoptero

Controladores para simulacion

% Luis Sevilla Fern


andez

Proyecto fin de carrera

% 17/04/2014

Control de un cuacric
optero

%
%% Par
ametros:
ti=1;
s=tf('s');
% Periodo de muestreo
ts=1/490;
z=tf('z',ts);
% Gravedad (m/s2)
g=9.81;
% Motor DC brushless:
% Resistencia (ohm)
Rm=0.6;
% Constante motor DC brushless (V.s o N.m/A)
Km=60/2900/2/pi;
Kt=Km;
Kv=2900;
% Momento de inercia motor DC brushless (kg.m2)
Ir=104e8;
% Quadcopter
% Masa del quadcopter (kg)
m=0.2722;
% Distancia entre el eje de cada motor y el CDG (m)
L=0.11;
% Distancia CDG (m)
h=0.1;
% Thrust factor (N.s2)
b=5.4455e07;
% Drag Factor (N.m.s2)
d=7.3251e09;
% Momentos de inercia (kg.m2)
Ix=0.000783;
Iy=0.000785;
%Iy=5e3;
Iz=0.001401;

Ir=104e6;
%Ix=8.1e3;
%Iy=8.1e3;
%Iz=14.2e3;
% Vector de parametros
param=[m L h b d Ix Iy Iz Rm Km Ir]';

244

Modelado y Control de un Cuadricoptero

Controladores para simulacion

% Parametros
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
%% Dise
no Control LQR (Ts=1/490)
ts=1/490;
[A,B,C,D]=linmod('Modelo Simplificado');
Pss=ss(A,B,C,D);
Pdss=c2d(Pss,ts,'tustin');
Pd=tf(Pdss);
Pphi=Pd(1,1);
Ptheta=Pd(2,2);
Ppsi=Pd(3,3);
[Phi,Gamma,C,D]=ssdata(Pdss);
A=rank(ctrb(Pdss));
Q=[150 0 0 0 0 0 ;
0 150 0 0 0 0 ;
0 0 1e2 0 0 0 ;
0 0 0 0.01 0 0 ;
0 0 0 0 1e4 0 ;
0 0 0 0 0 1e4 ];
R=[1 0 0;
0 1 0;
0 0 1];
K=dlqr(Phi,Gamma,Q,R);

function [U2,U3,U4] = conversor up(omegas,Up2,Up3,Up4,param)


%% Parametros
Ix=param(1);
Iy=param(2);
Iz=param(3);
L=param(4);
Kt=param(5);
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
a3=(IxIy)/Iz;

245

Modelado y Control de un Cuadricoptero

Controladores para simulacion

%% Variables
wphi=omegas(1);
wtheta=omegas(2);
wpsi=omegas(3);
%% Ecuaciones
U2=(Ix/L)*(Kt*wphiwtheta*wpsi*a1)+Up2;
U3=(Iy/L)*(Kt*wthetawphi*wpsi*a2)+Up3;
U4=(Iz)*(Kt*wpsiwphi*wtheta*a3)+Up4;

de estados
3.2.3. Control por realimentacion

Figura 3.13: Diagrama del controlador por realimentacion de estados


%==========================================================================
%

Control por posicionamiento de polos Modelo simplificado

%==========================================================================
%
% Luis Sevilla Fern
andez

Proyecto fin de carrera


optero
Control de un cuacric

% 17/04/2014
%
%% Par
ametros:
ti=1;
s=tf('s');
% Periodo de muestreo
ts=1/490;
z=tf('z',ts);

246

Modelado y Control de un Cuadricoptero

Controladores para simulacion

% Gravedad (m/s2)
g=9.81;
% Motor DC brushless:
% Resistencia (ohm)
Rm=0.6;
% Constante motor DC brushless (V.s o N.m/A)
Km=60/2900/2/pi;
Kv=2900;
% Momento de inercia motor DC brushless (kg.m2)
Ir=104e8;
% Quadcopter
% Masa del quadcopter (kg)
m=0.40;
% Distancia entre el eje de cada motor y el CDG (m)
L=0.11;
% Distancia CDG (m)
h=0.08;
% Thrust factor (N.s2)
b=5.4455e07;
% Drag Factor (N.m.s2)
d=7.3251e09;
% Momentos de inercia (kg.m2)
Ix=0.002173;
Iy=0.002529;
%Iy=5e3;
Iz=0.001003;
Ir=104e6;
%Ix=8.1e3;
%Iy=8.1e3;
%Iz=14.2e3;
% Vector de parametros
param=[m L h b d Ix Iy Iz Rm Km Ir]';
% Parametros
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
%% Dise
no Control LQR (Ts=1/490)
ts=1/490;
Kt=50;
[A,B,C,D]=linmod('Modelo Simplificado');
Pss=ss(A,B,C,D);
temp=tf(Pss);
Pphi=temp(1,1);
Pdss=c2d(Pss,ts,'tustin');

247

Modelado y Control de un Cuadricoptero

Controladores para simulacion

temp=tf(Pdss);
Pdphi=temp(1,1);
[Phi,Gamma,C,D]=ssdata(Pdss);
K=place(Phi,Gamma,[0.8+0.18i;0.80.18i;0.8+0.18i;0.80.18i;0.8+0.18i;0.80.18i]);

3.3. Controlador para el modelo del pendulo

Figura 3.14: Diagrama de bloques del sistema con el controlador


de parametros
Inicializacion
ts=5/490;
s= tf('s');
Io=(Iy+m*h2);
ao=m*g*h/Io;
bo=(L/Io);
P=bo/(s2ao);
P ret=P*exp(ts*s/2);
%% Control PD por polos
Wn=8;
seta=0.7;
K=(Wn2+ao)/bo;
Td=2*seta*Wn/K/bo;

248

Captulo 4

Controladores para el sistema real


En esta seccion se presentan tanto los diagramas de bloques como el codigo contenido en
las funciones de matlab que lo componen, los cuales constituyen el controlador que posteriormente sera volcado al microcontrolador. Los contenidos, organizados por secciones, describen la
configuracion general del diagrama de bloques y posteriormente los diagramas de bloques de los
controladores mas caractersticos.

general
4.1. Configuracion

Figura 4.1: Diagrama de bloques general

249

Modelado y Control de un Cuadricoptero

Controladores para el sistema real

Figura 4.2: Libreras usadas en el diagrama de bloques general

Figura 4.3: Entradas al diagrama de bloques general

Figura 4.4: Actuador del diagrama de bloques general

Figura 4.5: Maquina de estados del diagrama de bloques general

250

Modelado y Control de un Cuadricoptero

Controladores para el sistema real

4.2. PID

Figura 4.6: Diagrama de bloques del conjunto de controles PID

Figura 4.7: Diagrama de bloques del control PID para una variable
%% Dise
no Control PID (Ts=1/490)
ts=1/490;
Kt=50;
% Plantas:
s= tf([1,0],[1]);
Pphi=(L/Ix)/(s*(s+Kt));
Pphi ret=Pphi*exp(ts*s/2);
Ptheta=(L/Iy)/(s*(s+Kt));
Ptheta ret=Ptheta*exp(ts*s/2);
Ppsi=(1/Iz)/(s*(s+Kt));
Ppsi ret=Ppsi*exp(ts*s/2);

251

Modelado y Control de un Cuadricoptero

Controladores para el sistema real

% Par
ametros del control:
margen=80;
f pi=10;
w0=50;
f=0.0001;
b pond1=0.8;
b pond2=0.5;
b pond3=0.05;
% Obtenci
on de constantes del control:
[Am1,fm1]=bode(Pphi ret,w0);
[Am2,fm2]=bode(Ptheta ret,w0);
[Am3,fm3]=bode(Ppsi ret,w0);
f1 pd=(180+fm1+f pimargen);
f2 pd=(180+fm2+f pimargen);
f3 pd=(180+fm3+f pimargen);
I=(1/tan(f pi *pi/180))/w0;
temp1= (1/f1)/(2*tan(f1 pd *pi/180));
temp2= (1/f1)/(2*tan(f2 pd *pi/180));
temp3= (1/f1)/(2*tan(f3 pd *pi/180));
D1=(temp1sqrt(temp12(1/f)))/w0;
D2=(temp2sqrt(temp22(1/f)))/w0;
D3=(temp3sqrt(temp32(1/f)))/w0;
Kp1=(1/Am1)*cos(f pi *pi/180)*sqrt((1+(f*w0*D1)2)/(1+(w0*D1)2));
Kp2=(1/Am2)*cos(f pi *pi/180)*sqrt((1+(f*w0*D2)2)/(1+(w0*D2)2));
Kp3=(1/Am3)*cos(f pi *pi/180)*sqrt((1+(f*w0*D3)2)/(1+(w0*D3)2));
mu1=1+(1f)*D1/(I);
mu2=1+(1f)*D2/(I);
mu3=1+(1f)*D3/(I);
Ti1=mu1*I;
Ti2=mu2*I;
Ti3=mu3*I;
N1=(1/(mu1*f))1;
N2=(1/(mu2*f))1;
N3=(1/(mu3*f))1;
Td1=(N1)/(1/(mu1*f))*D1/mu1;
Td2=(N2)/(1/(mu2*f))*D2/mu2;
Td3=(N3)/(1/(mu3*f))*D3/mu3;
K1=mu1*Kp1;

252

Modelado y Control de un Cuadricoptero

Controladores para el sistema real

K2=mu2*Kp2;
K3=mu3*Kp3;

4.3. LQ

Figura 4.8: Diagrama de bloques del control LQ


%% Dise
no Control LQR (Ts=1/490)
ts=1/490;
[A,B,C,D]=linmod('Modelo Simplificado');
sys=ss(A,B,C,D);
Pdss=c2d(sys,ts,'tustin');
[Ad,Bd,Cd,Dd]=ssdata(Pdss);

Q=diag([100,100,0.1,2.2,2.2,1e4]);
R=diag([0.1,0.1,1e4]);
K=dlqr(Pdss.A,Pdss.B,Q,R);

253

Modelado y Control de un Cuadricoptero

Controladores para el sistema real

incremental
4.4. LQI en configuracion

Figura 4.9: Diagrama de bloques del control LQI


%% Dise
no Control LQR (Ts=1/490)
ts=1/490;
[A,B,C,D]=linmod('Modelo Simplificado');
Pss=ss(A,B,C,D);
Pdss=c2d(Pss,ts,'tustin');
Pd=tf(Pdss);
Pphi=Pd(1,1);
Ptheta=Pd(2,2);
Ppsi=Pd(3,3);
[Phi,Gamma,C,D]=ssdata(Pdss);
A=rank(ctrb(Pdss));
Phi amp=[Phi zeros(6,3); C

eye(3)];

Gamma amp=[Gamma;D];
C amp=[C,zeros(3,3)];
Q=diag([50000 50000 50000 5 5 5 8 8 8]);
R=[1 0 0 ;
0 1 0 ;
0 0 1 ];
K=lqi(Pdss,Q,R);
sys r=ss(Phi ampGamma amp*K,Gamma amp,C amp,D,ts);
polos d=eig(Phi ampGamma amp*K);
polos c=log(polos d)/ts;
damp(poly(polos c))
K re=K(:,1:6);
K int=K(:,7:9);

254

Captulo 5

Driver Blocks
En este captulo se presenta el codigo programado en C++ para la establecer la comunicacion
entre el microcontrolador y la IMU y el receptor RC. Este codigo debe generarse a traves de bloques del tipo s-functions, incluyendo en cada seccion de estos bloques el codigo correspondiente.
En cada driver presentado se ha indicado con un comentario que parte del codigo debe colocarse
en cada seccion.

5.1. Driver para la IMU

Figura 5.1: Bloque del driver para la IMU

// En la secci
on libraries
# ifndef MATLAB MEX FILE
# ifndef ARDUINO
# define ARDUINO 100 /* only for slsp */
#include "Wire.h"
#include "I2Cdev.h"
#include "SPI.h"
#include "MPU60X0.h"
#include "HMC58X3.h"
#include "MS561101BA.h"
#include "FreeIMU.h"
#include "DebugUtils.h"

255

Modelado y Control de un Cuadricoptero

Driver Blocks

#include "EEPROM.h"
int raw values[11];
float angles[3];
float val[9];
// Set the default object
FreeIMU my3IMU = FreeIMU();
# endif
# endif
// En la secci
on output
/* wait until after initialization is done */
if (xD[0]==1) {
/* don't do anything for mex file generation */
# ifndef MATLAB MEX FILE
my3IMU.getRawValues(raw values);
my3IMU.getEuler (angles);
axyz raw[0]=raw values[0];
axyz raw[1]=raw values[1];
axyz raw[2]=raw values[2];
gxyz raw[0]=raw values[3];
gxyz raw[1]=raw values[4];
gxyz raw[2]=raw values[5];
mxyz raw[0]=raw values[6];
mxyz raw[1]=raw values[7];
mxyz raw[2]=raw values[8];
temp raw[0]=raw values[9];
presion raw[0]=raw values[10];
ang[2]=angles[0];
ang[1]=angles[1];
ang[0]=angles[2];
# endif
}

//En la secci
on discrete update
if (xD[0]!=1) {
/* no hace nada si es una simulaci
on */
# ifndef MATLAB MEX FILE
Wire.begin();
delay(500);
my3IMU.init(true); // the parameter enable or disable fast mode

256

Modelado y Control de un Cuadricoptero

Driver Blocks

delay(500);
# endif
/* initialization done */
xD[0]=1;
}

5.2. Driver para el receptor

// En la secci
on libraries
# ifndef MATLAB MEX FILE
# ifndef ARDUINO
# define ARDUINO 100
// Liber
as:
# include <Arduino.h>
# include <PinChangeInt.h>
// Asignaci
on de canales
#define PIN1 A8
#define PIN2 A9
#define PIN3 A10
#define PIN4 A11
#define PIN5 A12
#define PIN6 A13
// Declaraci
on de flags
#define flag PIN1 1
#define flag PIN2 2
#define flag PIN3 3
#define flag PIN4 4
#define flag PIN5 5
#define flag PIN6 6
// Declaraci
on de variables
volatile uint8 t act flag;
volatile uint16 t PIN1 copia;
volatile uint16 t PIN2 copia;
volatile uint16 t PIN3 copia;
volatile uint16 t PIN4 copia;

257

Modelado y Control de un Cuadricoptero

Driver Blocks

volatile uint16 t PIN5 copia;


volatile uint16 t PIN6 copia;
uint32 t PIN1 start;
uint32 t PIN2 start;
uint32 t PIN3 start;
uint32 t PIN4 start;
uint32 t PIN5 start;
uint32 t PIN6 start;
// Funciones de interrupci
on:
void calcPIN1()
{
// if the pin is high, its a rising edge of the signal pulse, so lets record its value
if(digitalRead(PIN1) == HIGH)
{
PIN1 start = micros();
}
else
{
PIN1 copia = (uint16 t)(micros() PIN1 start);
act flag | = flag PIN1;
}
}
void calcPIN2()
{
if(digitalRead(PIN2) == HIGH)
{
PIN2 start = micros();
}
else
{
PIN2 copia = (uint16 t)(micros() PIN2 start);
act flag | = flag PIN2;
}
}
void calcPIN3()
{
if(digitalRead(PIN3) == HIGH)
{
PIN3 start = micros();
}
else
{
PIN3 copia = (uint16 t)(micros() PIN3 start);
act flag | = flag PIN3;
}
}
void calcPIN4()

258

Modelado y Control de un Cuadricoptero

Driver Blocks

{
if(digitalRead(PIN4) == HIGH)
{
PIN4 start = micros();
}
else
{
PIN4 copia = (uint16 t)(micros() PIN4 start);
act flag | = flag PIN4;
}
}
void calcPIN5()
{
// if the pin is high, its a rising edge of the signal pulse, so lets record its value
if(digitalRead(PIN5) == HIGH)
{
PIN5 start = micros();
}
else
{
PIN5 copia = (uint16 t)(micros() PIN5 start);
act flag | = flag PIN5;
}
}
void calcPIN6()
{
// if the pin is high, its a rising edge of the signal pulse, so lets record its value
if(digitalRead(PIN6) == HIGH)
{
PIN6 start = micros();
}
else
{
PIN6 copia = (uint16 t)(micros() PIN6 start);
act flag | = flag PIN6;
}
}
# endif
# endif
// En la secci
on Outputs:
/* wait until after initialization is done */
if (xD[0]==1) {
/* don't do anything for mex file generation */
# ifndef MATLAB MEX FILE
static uint8 t UpdateFlags;
if(act flag)
{
noInterrupts(); // Apaga las interrupciones

259

Modelado y Control de un Cuadricoptero

Driver Blocks

// Actualizaci
on del estado del flag
UpdateFlags = act flag;
if(UpdateFlags & flag PIN1)
{
ch1[0] = PIN1 copia;
}
if(UpdateFlags & flag PIN2)
{
ch2[0] = PIN2 copia;
}
if(UpdateFlags & flag PIN3)
{
ch3[0] = PIN3 copia;
}
if(UpdateFlags & flag PIN4)
{
ch4[0] = PIN4 copia;
}
if(UpdateFlags & flag PIN5)
{
ch5[0] = PIN5 copia;
}
if(UpdateFlags & flag PIN6)
{
ch6[0] = PIN6 copia;
}
// Borra la copia de la actualizaci
on de flags
act flag = 0;
interrupts(); // Reactiva las interrupciones
}
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
# endif
}

// En la secci
on discrete update:
if (xD[0]!=1) {
/* don't do anything for MEXfile generation */
# ifndef MATLAB MEX FILE
// Asignaci
on del pin, funci
on de interrupci
on y tipo de cambio.
PCintPort::attachInterrupt(PIN1, calcPIN1,CHANGE);
PCintPort::attachInterrupt(PIN2, calcPIN2,CHANGE);
PCintPort::attachInterrupt(PIN3, calcPIN3,CHANGE);
PCintPort::attachInterrupt(PIN4, calcPIN4,CHANGE);

260

Modelado y Control de un Cuadricoptero

Driver Blocks

PCintPort::attachInterrupt(PIN5, calcPIN5,CHANGE);
PCintPort::attachInterrupt(PIN6, calcPIN6,CHANGE);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
# endif
/* initialization done */
xD[0]=1;
}

261

MODELADO Y CONTROL

DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
DOCUMENTO IV

PRESUPUESTO

Autor:

Directores:

Luis Sevilla

Juan Luis Zamora


Jose Porras

Cesareo
Fernandez

3 de junio de 2014


Indice
general
1. Mediciones
1.1. Componentes principales . . . . . . . . . . .
1.2. Placa para la medida de tension en la batera
1.3. Equipo y herramientas . . . . . . . . . . . .
1.4. Software . . . . . . . . . . . . . . . . . . . .
1.5. Mano de obra . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

267
267
268
268
268
269

2. Precios unitarios
2.1. Componentes principales . . . . . . . . . . .
2.2. Placa para la medida de tension en la batera
2.3. Equipo y herramientas . . . . . . . . . . . .
2.4. Software . . . . . . . . . . . . . . . . . . . .
2.5. Mano de obra . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

271
271
272
272
272
273

3. Sumas parciales
3.1. Componentes principales . . . . . . . . . . .
3.2. Placa para la medida de tension en la batera
3.3. Equipo y herramientas . . . . . . . . . . . .
3.4. Software . . . . . . . . . . . . . . . . . . . .
3.5. Mano de obra . . . . . . . . . . . . . . . . .

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

.
.
.
.
.

275
275
276
276
276
277

4. Presupuesto general

279

cclxv

Captulo 1

Mediciones
En este captulo se presentan los componentes necesarios para la reproduccion del cuadricoptero con el que se ha trabajado a lo largo de este proyecto. Los elementos se han organizado
a traves de las siguientes secciones a fin de facilitar su comprension as como su inspeccion.

1.1. Componentes principales


Se entiende como componentes principales a los elementos necesarios para construir el cua
dricoptero propiamente dicho. Estos
se han incluido en la siguiente tabla.
Componentes
Estructura base
Placa reguladora
Motores Brushless
Reguladores electronicos de velocidad 6A
Helices 8045
Helices 8045R
Sujecion para helices
Almohadillas antivibraciones
Batera LiPO 0.95A 7.4V
Batera LiFe 1.5A 9.9V
Emisor RC 9CH 2.4 GHz
Receptor RC CH 2.4 GHz
Cable macho-macho de 3 pines
Cable macho-macho de 1 pin
Tuercas M3
Tornillos M3
Tornillos M3 con extension hexagonal

Marca

ID del producto

Cantidad

Turnigy
Crius
Turnigy
Turnigy-plus
NTM
Turnigy
HobbyKing
Turnigy
Turnigy
-

93320000011

1
1
4
4
2
2
4
4
1
1
1
1
4
8
8
8
8

1. www.HobbyKing.com
2. www.juguetronica.com

267

3870000071
T 1811 29001
T R 6A1
93290000181
93290000191
N T M 28 ACC 1
0532
92100000051
HK,1500.T X.L1
T X 9X M 21
T X 9X M 21
2580000111
-

Modelado y Control de un Cuadricoptero

Mediciones

en la batera
1.2. Placa para la medida de tension
En esta seccion se presentan los elementos necesarios para la reproduccion de la placa di
senada
para la medicion de la tension de la batera.
Componentes

Cantidad

Placa base

Amplificador operacional 714

Zocalo para amplificador operacional

Resistencia 20 K

Pin de conexion

Cable macho-macho de 1 pin

1.3. Equipo y herramientas


Los equipos y herramientas utilizados a lo largo del proyecto se han recogido en la siguiente
tabla.
Horas de

Horas de uso

proyecto

al ano

430

2000

Fuente de alimentacion 30 V DC 5 A

15

300

Cable de conexion tipo banana

15

1500

Osciloscopio de 4 canales

400

Sonda

1500

Polmetro

10

450

Soldador

10

500

Cargador de bateras LiPO

40

250

Destornillador, alicates y otras herramientas

30

1500

Elemento

Cantidad

Ordenador

1.4. Software
En el desarrollo de este proyecto se ha hecho uso de una serie de programas los cuales se
presentan a continuacion.
Programa

Cantidad

Horas de

Horas de uso

proyecto

al ano

Matlab/Simulink

330

2000

Arduino Software

100

Kompozer

25

LaTex Studio

80

1500

Microsoft PowerPoint

10

400

268

Modelado y Control de un Cuadricoptero

Mediciones

1.5. Mano de obra


Finalmente, se ha recogido en la siguiente tabla las tareas realizadas divididas en tres partes
principales.
Actividad

Horas

del algoritmo de control


Diseno

315

Montaje del dispositivo

25

Correccion de errores

25

Documentacion del proyecto

85

269

Captulo 2

Precios unitarios
En este captulo se muestran los precios unitarios asociados a los elementos y componentes
introducido en el captulo 1.

2.1. Componentes principales


Componentes

Precio

Estructura base

$14.99

Placa reguladora

$49.41

Motores Brushless

$11.35

Reguladores electronicos de velocidad

$8.45

Helices 8045

$0.615

Helices 8045R

$0.615

Sujecion para helices

$1.86

Almohadillas antivibraciones

1.7

Batera LiPO 0.95A 7.4V

$6.75

Batera LiFe 1.5A 9.9V

$7.63

Emisor RC 9CH 2.4 GHz

$59.99

Receptor RC 8CH 2.4 GHz

Cable macho-macho de 3 pines

$0.475

Cable macho-macho de 1 pin

$0.475

Tuercas M3

0.0052

Tornillos M3

0.0079

Tornillos M3 con extension hexagonal

0.036

271

Modelado y Control de un Cuadricoptero

Precios unitarios

en la batera
2.2. Placa para la medida de tension
Componentes

Precio (/ud.)

Placa base

0.06

Amplificador operacional 714

0.25

Zocalo para amplificador operacional

0.14

Resistencia 20 K

0,0035

Pin de conexion

0,0053

Cable macho-macho de 1 pin

0,0032

2.3. Equipo y herramientas


Elemento

Precio (/ud.)

Ordenador

800

Fuente de alimentacion 30 V DC 5 A

219.9

Cable de conexion tipo banana

3.95

Osciloscopio de 4 canales

1580

Sonda

3.95

Polmetro

45

Soldador

35
$22.99

Cargador de bateras LiPO


Destornillador, alicates y otras herramientas

70

2.4. Software
Programa

Precio (/ud.)

Matlab/Simulink

500

Arduino Software

Open Source

Kompozer

Open Source

LaTex Studio

Open Source

Microsoft PowerPoint

79.34

Open Source es el tipo de software que se distribuye y desarrollada libremente, es decir, es gratuito.

272

Modelado y Control de un Cuadricoptero

Precios unitarios

2.5. Mano de obra


Actividad

Precios (/h.)

del algoritmo de control


Diseno

60

Montaje del dispositivo

25

Correccion de errores

45

Documentacion del proyecto

40

273

Captulo 3

Sumas parciales
En este captulo se consignan los importes parciales de cada uno de los elementos mostrados
anteriormente que conforman las partidas y que han sido calculados a partir de las mediciones y
los precios unitarios.

3.1. Componentes principales


Componentes

Cantidad

Precio unitario

Coste total

Estructura base

$14.99

$14.99

Placa reguladora

$49.41

$49.41

Motores Brushless

$11.35

$45.4

Reguladores electronicos de velocidad 6A

$8.45

$33.8

Helices 8045

$0.615

$1.23

Helices 8045R

$0.615

$1.23

Sujecion para helices

$1.86

$7.44

Almohadillas antivibraciones

1.7

6.8

Batera LiPO 0.95A 7.4V

$6.75

$6.75

Batera LiFe 1.5A 9.9V

$7.63

$7.63

Emisor RC 9CH 2.4 GHz

$59.99

$59.99

Receptor RC CH 2.4 GHz

Cable macho-macho de 3 pines

$0.475

$1.9

Cable macho-macho de 1 pin

$0.475

$3.8

Tuercas M3

0.0052

0.0416

Tornillos M3

0.0079

0.0632

Tornillos M3 con extension hexagonal

0.036

0.288

Total

175.73

275

Modelado y Control de un Cuadricoptero

Sumas parciales

en la batera
3.2. Placa para la medida de tension
Componentes

Cantidad

Precio (/ud.)

Coste total (/ud.)

Placa base

0.06

0.06

Amplificador operacional 714

0.25

0.25

Zocalo para amplificador operacional

0.14

0.14

Resistencia 20 K

0.0035

0.007

Pin de conexion

0.0053

0.0212

Cable macho-macho de 1 pin

0.0032

0.0128

Total

0.491

3.3. Equipo y herramientas


Para el calculo del coste asociado a los equipos y herramientas usadas en este proyecto se ha
tenido en cuenta la amortizacion de los mismo a traves de la ecuacion 3.1.
Coste =

Amortizacion Hproyecto
P recio
100
Hanuales

(3.1)

Horas de

Horas por

Precio

Amortizacion

Coste

proyecto

ano

(/ud.)

anual

(/ud.)

430

2000

800

25 %

43

15

300

219.9

25 %

2.75

Elemento

Ud

Ordenador
Fte de alimentacion
Cable de conexion

15

1500

3.95

25 %

0.01

Osciloscopio

400

1580

25 %

8.88

Sonda

1500

3.95

25 %

0.006

Polmetro

10

450

45

25 %

0.25

Soldador

10

500

35

25 %

0.175
0.66

Cargador

40

250

16.64

25 %

Herramientas

30

1500

70

25 %

0.35

Total

56.09

3.4. Software
y, dado que los u nicos programas con licencia son el
El software se suele amortizar en 5 anos
Matlab 2013a y Microsoft PowerPoint, haciendo uso de la ecuacion 3.1, el coste asociado a e stos
resulta:

Programa

Ud

Horas de

Horas por

Precio

Amortizacion

Coste

proyecto

ano

(/ud.)

anual

(/ud.)

Matlab/Simulink

330

2000

500

20 %

16.5

M. PowerPoint

10

400

79.34

20 %

0.3967

Total

16.8967

276

Modelado y Control de un Cuadricoptero

Sumas parciales

3.5. Mano de obra


Actividad

Horas

Precio (/h.)

Coste total()

del algoritmo de control


Diseno

315

60

18900

Montaje del dispositivo

25

25

625

Correccion de errores

25

45

1125

Documentacion del proyecto

85

40

13400

Total

24050

277

Captulo 4

Presupuesto general
Sumando la contribucion de todas las partidas anteriores se concluye que el coste del proyecto, impuestos incluidos, asciende a:
Concepto

Coste ()

Componentes principales

175.73

Placa para la medida de tension en la batera

0.49

Equipo y herramientas

56.09

Software

16.89

Mano de obra

24050

Total

24302.21

Figura 4.1: Diagrama de gastos por secciones

279

Anexo A
Pasos a seguir para la programacion de un Driver Block en Simulink.
1. Preconfigurar las caractersticas del bloque para el controlador al cual se va a volcar
el software en la ventana Parametros de configuracion. (Discreto y singleTasking).
2. Crear un S-Function block, entrar en propiedades y posteriormente en la pesta
na
Data Properties. Una vez ah eliminamos la variable de salida y renombramos la
variable de entrada (normalmente a in). Configuramos tambien el tipo de variable a
tipo Booleano.
3. En la misma pesta
na, acceder a la subpesta
na parametros donde se seleccion un tipo
de variable entera y sin signo y se especifica el valor. El valor incluido sera el n
umero
de puerto donde se realizara la accion programada.
4. Acceder a la pesta
na Build Info y seleccionar la casilla Generate Wrapper TLC. De
esta forma se generar
a un ejecutable que correr
a en la plataforma. Asegurarse de
que la casilla Enable access to SimStruct esta desactivada.
5. Abrir el panel de inicializacion y especificar el tiempo de muestreo y el n
umero
de variables de estado. Es importante mencionar que debe existir al menos una
variable discreta cuyo valor inicial sea nulo. De lo contrario no se podra inicializar
el programa.
6. Acceder a la pesta
na Discrete Update donde especificaremos como se actualiza el
algoritmo. En esta seccion se incluira el siguiente codigo:

De esta forma solo se ejecuta la inicializaci


on una u
nica vez.
7. Abrir el panel Outputs y especificar la accion que se quiere realizar sobre el dispositivo. (ej. digitalWrite(pin[0],in[0]);)

281

8. Por u
ltimo acceder al panel de libreras e incorporar las necesarias. Si son externas
al software de MATLAB han de incluirse en la carpeta de trabajo del proyecto. Las
tres lneas b
asicas para el funcionamiento en una placa Arduino son:
# ifndef M AT LAB M EX F ILE
# include Arduino.h"
# endif

Es muy importante remarcar que despues de la generacion de los archivos hay que acceder
al archivo wrapper y a
nadir la linea extern c al principio de las funciones output y
update.

282

Anexo B
En este anexo se describe el software auxiliar dise
nado en Matlab para obtener una
representaci
on grafica de los
angulos de Euler adquiridos por el cuadricoptero. De esta
forma se facilita la comprobacion de resultados obtenidos en las simulaciones al transformar el conjunto de datos obtenidos (generalmente visualizados a traves de graficas) en
una representacion m
as visual de estos.
As pues, el programa hara uso de los valores obtenidos en simulaciones anteriormente
realizadas, que se guardaron en variables especficas, para crear una matriz de cambio
de base que relacione los vectores caractersticos anteriores con los transformados. Esta
matriz se calculara para cada muestra siendo definida como la matriz de giro de Euler
clasica:

cos()

sin()

cos() 0 sin()


0
0 cos()
R =
1
sin()

sin()
cos()0

0
0
1
sin() 0
0 sin() cos()]

0
cos()

(1)

Es importante notar que en la configuracion representada por la matriz anterior, el


angulo describe el movimiento de alabeo de la nave mientras que en el estudio de este
proyecto se ha asociado a este desplazamiento. Por tanto se deberan intercambiar ambos
angulos para obtener una respresentacion coherente con las simulaciones.
El programa utilizado representa la nave mediante una cruz, definida a traves de dos
rectas que se cruzan. En los extremos de estas se han situado cuatro puntos grandes para
delimitar mejor el contorno. Ademas se han cambiado los colores de estos para facilitar la
identificacion de los giros cuando estos se producen. Asmismo se ha modificado el color de
fondo del grafico a azul para dar un toque de esteticidad a la representacion asemejandolo
al cielo. En la figura 8 se puede observar la representacion obtenida.
Para representar la nueva posicion en cada muestra se multiplican los vectores caractersticos orginales por la matriz de rotaci
on propia de cada iteracion. N
otese que los
angulos se entienden como incrementos, es decir, que se tiene en cuenta el incremento o
decremento del
angulo con respecto al anterior.

283

Ejemplo de la representacion realizada por el programa auxiliar


Para poder obtener una representaci
on continua de los giros se ha hecho uso del entorno
Guide de matlab lo que permite obtener peque
nas aplicaciones basadas en este tipo de
lenguaje. A continuacion se incluye el codigo programado.
function varargout = Vuelo(varargin)
% VUELO MATLAB code for Vuelo.fig
%

VUELO, by itself, creates a new VUELO or raises the existing

singleton*.

%
%

H = VUELO returns the handle to a new VUELO or the handle to

the existing singleton*.

%
%

VUELO('CALLBACK',hObject,eventData,handles,...) calls the local

function named CALLBACK in VUELO.M with the given input arguments.

%
%

VUELO('Property','Value',...) creates a new VUELO or raises the

%
%

existing singleton*. Starting from the left, property value pairs are
applied to the GUI before Vuelo OpeningFcn gets called. An

unrecognized property name or invalid value makes property application

stop.

All inputs are passed to Vuelo OpeningFcn via varargin.

%
%
%

*See GUI Options on GUIDE's Tools menu.


instance to run (singleton)".

Choose "GUI allows only one

%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Vuelo
% Last Modified by GUIDE v2.5 01Feb2014 13:38:38
% Begin initialization code DO NOT EDIT
gui Singleton = 1;
gui State = struct('gui Name',
'gui Singleton',

mfilename, ...
gui Singleton, ...

284

'gui OpeningFcn', @Vuelo OpeningFcn, ...


'gui OutputFcn',

@Vuelo OutputFcn, ...

'gui LayoutFcn',

[] , ...

'gui Callback',

[]);

if nargin && ischar(varargin{1})


gui State.gui Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui mainfcn(gui State, varargin{:});
else
gui mainfcn(gui State, varargin{:});
end
% End initialization code DO NOT EDIT

% Executes just before Vuelo is made visible.


function Vuelo OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject

handle to figure

% eventdata

reserved to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

% varargin

command line arguments to Vuelo (see VARARGIN)

% Choose default command line output for Vuelo


handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Vuelo wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% Outputs from this function are returned to the command line.


function varargout = Vuelo OutputFcn(hObject, eventdata, handles)
% varargout

cell array for returning output args (see VARARGOUT);

% hObject

handle to figure

% eventdata

reserved to be defined in a future version of MATLAB

% handles

structure with handles and user data (see GUIDATA)

load('Valores2','Phi','Theta','Psi')
v=[];
phi=[];
theta=[];
psi=[];
temp=1;
v(:,1)=[0.5,0,0]';
v(:,2)=[0.5,0,0]';
v(:,3)=[0,0.5,0]';

285

v(:,4)=[0,0.5,0]';
axes(handles.vuelo);
plot3([v(1,1),v(1,2)],[v(2,1),v(2,2)],[v(3,1),v(3,2)],'k','LineWidth',4);
hold on;
grid on;
plot3(v(1,1),v(2,1),v(3,1),'g*','LineWidth',10);
plot3(v(1,2),v(2,2),v(3,2),'g*','LineWidth',10);
plot3([v(1,3),v(1,4)],[v(2,3),v(2,4)],[v(3,3),v(3,4)],'k','LineWidth',6);
plot3(v(1,3),v(2,3),v(3,3),'r*','LineWidth',10);
plot3(v(1,4),v(2,4),v(3,4),'y*','LineWidth',11);
set(gca,'color',[0 0.5 0.85])
axis([1 1 1 1 1 1]);
hold off
for i=1:1:length(Phi.signals.values)
phi(i,1)=Psi.signals.values(i,2) *pi/180;
end
for i=1:1:length(Theta.signals.values)
theta(i,1)=Theta.signals.values(i,2) *pi/180;
end
for i=1:1:length(Psi.signals.values)
psi(i,1)=Phi.signals.values(i,2) *pi/180;
end

inc phi=0;
inc theta=0;
inc psi=0;
for i=1:1:length(phi)
inc phi=phi(i)inc phi;
inc theta=theta(i)inc theta;
inc psi=psi(i)inc psi;
M theta=[1 0 0;0 cos(inc theta) sin(inc theta); 0 sin(inc theta) cos(inc theta)];
M psi=[cos(inc psi) 0 sin(inc psi);0 1 0;sin(inc psi) 0 cos(inc psi)];
M phi=[cos(inc phi) sin(inc phi) 0; sin(inc phi) cos(inc phi) 0; 0 0 1];
R=M psi * M theta * M phi;
v2(:,1)=R*v(:,1);
v2(:,2)=R*v(:,2);
v2(:,3)=R*v(:,3);
v2(:,4)=R*v(:,4);

axes(handles.vuelo);

286

plot3([v2(1,1),v2(1,2)],[v2(2,1),v2(2,2)],[v2(3,1),v2(3,2)],'k','LineWidth',4);
hold on;
grid on;
plot3(v2(1,1),v2(2,1),v2(3,1),'g*','LineWidth',10);
plot3(v2(1,2),v2(2,2),v2(3,2),'g*','LineWidth',10);
plot3([v2(1,3),v2(1,4)],[v2(2,3),v2(2,4)],[v2(3,3),v2(3,4)],'k','LineWidth',6);
plot3(v2(1,3),v2(2,3),v2(3,3),'r*','LineWidth',10);
plot3(v2(1,4),v2(2,4),v2(3,4),'y*','LineWidth',11);
set(gca,'color',[0 0.5 0.85])
axis([1 1 1 1 1 1]);
hold off;
pause(0.1)
end
% Get default command line output from handles structure
varargout{1} = handles.output;

287

Anexo C
< !DOCTYPE html PUBLIC //W3C//DTD HTML 4 . 0 1 / /EN h t t p : / /www. w3 . o r g /TR/ html4 / s t r i c t . dtd >
<html><head>

<meta content= t e x t / html ;

<meta content= L u i s

c h a r s e t=i s o 88591 h t t pe q u i v= ContentType >

Sevilla

<meta content= M o z i l l a / 4 . 7

Ferna
n d e z name= Author >

[ en ]

(WinNT ;

t i t l e></head><body s t y l e= c o l o r :

I)

[ N e t s c a p e ] name=GENERATOR>< t i t l e>C u a d r i c o p t e r o</

rgb ( 0 ,

0 , 0) ;

backgroundc o l o r :

rgb ( 2 0 4 ,

204 , 255) ;

a l i n k=#0000 e e l i n k=#0000 e e v l i n k=#551a8b >


<t a b l e s t y l e= w i d t h : 100 %; border= 0 ce ll pa d di ng= 0 c e l l s p a c i n g= 0 >
<tbody>
<t r>
<td>
<h1><big>Modelado y C o n t r o l</ big></h1>
<h1><big>de un c u a d r i c o
p t e r o</ big></h1>
</ td>
top ;

<td s t y l e= v e r t i c a l a l i g n :

t e x t a l i g n :

r i g h t ; ><img s t y l e= w i d t h :

321 px ;

height :

px ; a l t= s r c=logoUPCO . png ><br>


</ td>
</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<div s t y l e= t e x t a l i g n :

c e n t e r ; >

<h1 s t y l e= t e x t a l i g n :

l e f t ; >P r o y e c t o Fin de C a r r e r a</h1>

<h4 s t y l e= t e x t a l i g n :

l e f t ; >P l a t a f o r m a web <br>

</h4>
<div s t y l e= t e x t a l i g n :

l e f t ; >

<div s t y l e= t e x t a l i g n :

l e f t ; >

<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; border= 0 ce ll pa d di ng= 0 c e l l s p a c i n g= 0 >

<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><big><big>P r o y e c t o

realizado

p o r : </ big></ big><br>


Luis

Sevilla

Ferna
n d e z<br>

<br>
<br>
<big><big>D i r i g i d o

p o r :</ big></ big><br>

<big>Juan L u i s Zamora <br>


J o s
e P o r r a s<br>
Cesareo Ferna
n d e z</ big></ td>
<td s t y l e= v e r t i c a l a l i g n :

top ;

height :

240 px ;

width :

320 px ; ><br>

<br>
<v i d e o

c o n t r o l s= c o n t r o l s height= 240 width= 320 ><s o u r c e s r c= h t t p s : / / d l .

d r o p b o x u s e r c o n t e n t . com/u / 6 7 7 1 9 3 9 4 / P r o y e c t o / o u t %20 %281 %29.mp4 type= v i d e o /mp4></


s o u r c e></ v i d e o> </ td>
</ t r>
</tbody>
</ t a b l e>
</ div>
</ div>
</ div>
<hr s t y l e= w i d t h : 100 %; h e i g h t : 2 px ; ><big><big><u><b>Modelado</b></u></ big></ big>

289

153

<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; margin l e f t :

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= Modelo /

P i e z a s C u a d r i c o p t e r o S o l i d . z i p ><img s t y l e= b o r d e r : 0 px s o l i d

width :

77 px ;

height :

55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></a><br>


</ td>
<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>Modelo CAD d e l

t o p ; ><br>

cuadric
o p t e r o en S o l i d E d g e</ big><br>

</ td>
</ t r>
<t r>
top ;

<td s t y l e= v e r t i c a l a l i g n :

t e x t a l i g n :

<img s t y l e= b o r d e r : 0 px s o l i d

width :

c e n t e r ; ><a h r e f= Modelo / Modelo Completo . r a r >


58 px ;

height :

52 px ; a l t= s r c= M a t l a b L o g o .

png ></a><br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

&nbsp ;<big>Modelado m atem a


tic o c o m p l e t o

del

c u a d r i c o p t e r o en S i m u l i n k</ big><br>

</ td>
</ t r><t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

r a r ><img s t y l e= b o r d e r : 0 px s o l i d

c e n t e r ; ><a h r e f= Modelo / M o d e l o S i m p l i f i c a d o .

width :

58 px ;

height :

52 px ; a l t= s r c=

M atl ab L o g o . png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>Modelado m atem a
tic o

t o p ; ><br>

simplificado

del

cuadrico
p t e r o en S i m u l i n k</ big><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

img s t y l e= b o r d e r : 0 px s o l i d

width :

c e n t e r ; ><a h r e f= Modelo / M o d e l o P e n d u l o . r a r ><

58 px ;

height :

52 px ; a l t= s r c= M a t l a b L o g o . png

></a></ td>
t o p ; ><br>

<td s t y l e= v e r t i c a l a l i g n :

&nbsp ;<big>Modelado m atem a


tic o de un p
endulo

i n v e r t i d o en S i m u l i n k</ big><br>

</ td>
</ t r>
</tbody>
</ t a b l e>
<br>
<hr s i z e= 2 width=100 %>
<h3><big><u><b>C o n t r o l</b></u></ big></h3>
<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; margin l e f t :

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
top ;

<td s t y l e= v e r t i c a l a l i g n :

h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= C o n t r o l /

C o n t r o l a d o r V o s s . s l x ><img s t y l e= b o r d e r :

0 px s o l i d

width :

58 px ;

height :

52 px ; a l t=

s r c= M a t l a b L o g o . png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; <big>C o n t r o l

t o p ; ><br>

P r o p o r c i o n a l H . Voos</ big><br>

</ td>
</ t r>
<t r>
t o p ; ><a h r e f= C o n t r o l / c o n t r o l q u a d c o p t e r . z i p ><img s t y l e=

<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

width :

77 px ;

height :

55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png

></a></ td>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

&nbsp ;
<big>S i s t e m a C o n t r o l a d o<br>
</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
solid

width :

77 px ;

t o p ; ><a h r e f= C o n t r o l /PID Msimp . r a r ><img s t y l e= b o r d e r : 0 px


height :

55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></a><a

h r e f= C o n t r o l /LQR Con . s l x >


</a></ td>
<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>C o n t r o l PID p a r a

el

t o p ; ><br>

modelo

s i m p l i f i c a d o</ big><br>

&nbsp ;
<big><br>
</ big></ td>
</ t r><t r>

290

<td s t y l e= v e r t i c a l a l i g n :
solid

width :

77 px ;

t o p ; ><a h r e f= C o n t r o l /LQ Msimp . r a r ><img s t y l e= b o r d e r : 0 px


height :

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>C o n t r o l LQ p a r a

el

55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></a></ td>

t o p ; ><br>

modelo

s i m p l i f i c a d o</ big><br>

</ td>
</ t r>
<t r>
t o p ; ><a h r e f= C o n t r o l / P o l e P l a c e M s i m p . r a r ><img s t y l e= b o r d e r :

<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d

width :

77 px ;

height :

55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></a><

/ td>
<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>C o n t r o l p o r

t o p ; ><br>

realimentaci
o n de e s t a d o s p a r a

el

modelo

s i m p l i f i c a d o</ big><br>

</ td>
</ t r>
<t r>
t o p ; ><a h r e f= C o n t r o l / c o n t r o l q u a d c o p t e r . z i p ><img s t y l e=

<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

width :

77 px ;

height :

55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png

></a></ td>
<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>C o n t r o l p a r a

el

t o p ; ><br>

p
endulo

i n v e r t i d o</ big><br>

</ td>
</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<h3><big><u><b>E s t i m a c i
o n</b></u></ big></h3>
<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; margin l e f t :

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

<img s t y l e= b o r d e r : 0 px s o l i d

width :

c e n t e r ; ><a h r e f= E s t i m a d o r / F i l t r o f i n a l . s l x >
58 px ;

height :

52 px ; a l t= s r c= M a t l a b L o g o .

png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big> F i l t r o

t o p ; ><br>

multiplicativo

e x t e n d i d o de Kalman</ big></ td>

<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= E s t i m a d o r /

Modelo FiltroMEKF . z i p ><img s t y l e= b o r d e r :

0 px s o l i d

width :

77 px ;

height :

55 px ; a l t

= D e s c a r g a r modelo s r c= w i n r a r . png ></a> </ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; <big> F i l t r o

t o p ; ><br>

multiplicativo

e x t e n d i d o de Kalman en c o n j u n t o</ big><br>

</ td>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d

width :

77 px ;

height :

55 px

; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; <big> F i l t r o

t o p ; ><br>

c o m p l e m e n t a r i o</ big> ( R e a l i z a d o p o r J o s
e Antonio

Ferna
n d e z )<br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

r i g h t ; ><img s t y l e= w i d t h :

63 px ;

height :

53 px ;

a l t= s r c= e n c o n s t r u c c i o n . png ></ td>


</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<h3 s t y l e= t e x t d e c o r a t i o n :

u n d e r l i n e ; ><big>M
a quina de e s t a d o s</ big><br>

</h3>
<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; margin l e f t :

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

center ;

/ Maquina %20e s t a d o s . z i p ><img s t y l e= b o r d e r :

w i d t h : 5 %;><a h r e f= Maquina %20e s t a d o s

0 px s o l i d

a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

291

width :

77 px ;

height :

55 px ;

&nbsp ;
<big>S i s t e m a
con m
a quina de
e s t a d o s&nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp
;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;&
nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;
.& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp
;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;&
nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;&
nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;
<br>
</ big></ td>
</ t r>
</tbody>
</ t a b l e>
<br>
<hr s t y l e= w i d t h : 100 %; h e i g h t : 2 px ; >
<h3><big><u><b>D r i v e r B l o c k s</b></u></ big></h3>
left ;

<t a b l e s t y l e= t e x t a l i g n :

w i d t h : 100 %; margin l e f t :

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= D r i v e r %20B l o c k s /RC. r a r

><img s t y l e= b o r d e r : 0 px s o l i d

width :

77 px ;

height :

55 px ; a l t= D e s c a r g a r modelo

s r c= w i n r a r . png ></a> </ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; <big>D r i v e r B l o c k

del

t o p ; ><br>

t r a n s m i s o r e m i s o r RC</ big><br>

</ td>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

r i g h t ; ><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
solid

width :

77 px ;

<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><a h r e f= D r i v e r %20B l o c k s /IMU . r a r ><img s t y l e= b o r d e r :


height :

0 px

55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></a></ td>

t o p ; ><br>

&nbsp ; <big>D r i v e r B l o c k de l a IMU</ big><br>


</ td>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

r i g h t ; ><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d

width :

77 px ;

height :

55 px

; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; <big>D r i v e r B l o c k de

los

t o p ; ><br>
motores

b r u s h l e s s</ big><br>

</ td>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

r i g h t ; ><img s t y l e= w i d t h :

63 px ;

height :

53 px ;

a l t= s r c= e n c o n s t r u c c i o n . png ></ td>


</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d

width :

77 px ;

height :

55 px

; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></ td>


<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

&nbsp ; <big>D r i v e r B l o c k c o m u n i c a d o r RC</ big><br>


</ td>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

r i g h t ; ><img s t y l e= w i d t h :

63 px ;

height :

53 px ;

a l t= s r c= e n c o n s t r u c c i o n . png ></ td>


</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d

width :

77 px ;

height :

55 px

; a l t= D e s c a r g a r modelo s r c= w i n r a r . png ></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>D r i v e r B l o c k

t o p ; ><br>

s e n s o r e s de p r o x i m i d a d</ big><br>

</ td>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

r i g h t ; ><img s t y l e= w i d t h :

63 px ;

height :

53 px ;

a l t= s r c= e n c o n s t r u c c i o n . png ></ td>


</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<h3><big><u><b>I n f o r m e s</b></u></ big></h3>
<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; margin l e f t :

292

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= I n f o r m e s / Ensayo Modelo .

p d f ><img s t y l e= b o r d e r : 0 px s o l i d

width :

61 px ;

height :

56 px ; a l t= D e s c a r g a r Anexo

A s r c= I c o n o p d f . png ></a> </ td>


t o p ; ><br>

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>I n f o r m e

del

ensayo sobre

el

modelo d e l

cuadrico
p t e r o en

S i m u l i n k</ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d

width :

t o p ; ><a h r e f= I n f o r m e s / E n s a y o F i l t r o . p d f ><img s t y l e= b o r d e r :

61 px ;

height :

56 px ; a l t= D e s c a r g a r Anexo A s r c= I c o n o p d f . png ></a

></ td>
<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>I n f o r m e

del

ensayo

t o p ; ><br>

del

filtro

multiplicativo

e x t e n d i d o de

Kalman</ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d

width :

61 px ;

height :

56 px

; a l t= D e s c a r g a r Anexo A s r c= I c o n o p d f . png ></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>I n f o r m e

del

t o p ; ><br>

ensayo sobre

el

c o n t r o l a d o r de Voos</ big><br>

</ td>
</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<h3><big><u><b>Documentos

O f i c i a l e s<br>

</b></u></ big></h3>
<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; margin l e f t :

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= Documentos %20 O f i c i a l e s /

Anexo %20A f i r m a d o . p d f ><img s t y l e= b o r d e r : 0 px s o l i d

width :

61 px ;

height :

56 px ; a l t

= D e s c a r g a r Anexo A s r c= I c o n o p d f . png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

&nbsp ; <big>Anexo A</ big><br>


</ td>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

t o p ; ><a h r e f= Documentos %20 O f i c i a l e s /AnexoB . p d f ><img s t y l e=

width :

61 px ;

height :

56 px ; a l t= D e s c a r g a r Anexo B s r c= I c o n o p d f .

png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

&nbsp ;<big>Anexo B</ big><br>


</ td>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

t o p ; ><a h r e f= Documentos %20 O f i c i a l e s / Memoria . p d f ><img s t y l e=

width :

61 px ;

height :

56 px ; a l t= D e s c a r g a r Memoria s r c= I c o n o p d f .

png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; Memoria d e l

t o p ; ><big><br>

p r o y e c t o <br>

</ big></ td>


<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

r i g h t ; ><img s t y l e= w i d t h :

63 px ;

height :

53 px ;

a l t= s r c= e n c o n s t r u c c i o n . png ></ td>


</ t r>
</tbody>
</ t a b l e>
<br>
<hr s i z e= 2 width=100 %>
<h3><big><u><b>Complementos</b></u></ big></h3>
<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; margin l e f t :

293

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= Complementos /C %C3 %

B3digo . z i p ><img s t y l e= b o r d e r :

0 px s o l i d

width :

77 px ;

height :

55 px ; a l t= D e s c a r g a r

modelo s r c= w i n r a r . png ></a><br>


</ td>
t o p ; ><br>

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; <big>S i m u l a d o r de v u e l o

r e a l i z a d o en Matlab .

( Proyecto

realizado
con N a t i v i d a d Bermejo H e r r e r o )</ big><br>
&nbsp ;

( Para

iniciar

ejectuar

con M atlab

el

a r c h i v o&nbsp ;

S i m u l a d o r V u e l o .m) <br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

c e n t e r ; ><a h r e f= Complementos /

S i m u l a d o r I n f o r m e . p d f ><img s t y l e= b o r d e r : 0 px s o l i d

width :

61 px ;

height :

56 px ; a l t

= s r c= I c o n o p d f . png ></a></ td>


t o p ; ><br>

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>I n f o r m e

del

s i m u l a d o r de v u e l o</ big> <big> r e a l i z a d o en

Matlab .</ big><br>


</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

t o p ; ><a h r e f= Complementos / P l o t a n g u l o s . z i p ><img s t y l e=

width :

77 px ;

height :

55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png

></a></ td>
<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; S i m u l a d o r de v u e l o p a r a

t o p ; ><big><br>

los

angulos

o b t e n i d o s con

el

controlador

disen
a d o .<br>
</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

img s t y l e= b o r d e r : 0 px s o l i d

width :

c e n t e r ; ><a h r e f= Complementos / a d i o s r v . pde ><

61 px ;

height :

59 px ; a l t= s r c= a r d u i n o . png ></

a><br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><big><br>

&nbsp ; Programa de a r d u i n o p a r a p o d e r

insertar

co
d i g o s de

Matlab / S i m u l i n k .</ big><br>


</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

t e x t a l i g n :

c e n t e r ; ><a h r e f= Complementos / a d i o s r v . pde ><

br>
</a></ td>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

&nbsp ;
<big><br>
</ big></ td>
</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<h3><big><u><b> B i b l i o g r a f a</b></u></ big></h3>
<br>
<t a b l e s t y l e= t e x t a l i g n :

left ;

w i d t h : 100 %; margin l e f t :

auto ;

marginr i g h t :

a u t o ; border= 0

cellpa ddi ng= 0 c e l l s p a c i n g= 0 >


<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

top ;

h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= B i b l i o g r a f %C3 %


ADa/

G r o u p 3 f i n a l r e p o r t . p d f ><img s t y l e= b o r d e r :

0 px s o l i d

width :

61 px ;

height :

56 px ;

a l t= s r c= I c o n o p d f . png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

&nbsp ; <big>QuadRotor UAV p r o j e c t , Andrew N e l s o n E r i c


Palm and Andy B r a d f o r d .

University

o f Washington ,

Klavins ,

Justin

June 2 0 1 1 .</ big><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d

width :

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 3 3 7 6 7 . p d f ><img s t y l e= b o r d e r :

61 px ;

<td s t y l e= v e r t i c a l a l i g n :

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>

294

<big>&nbsp ; M o d e l l i n g and c o n t r o l
Corke Paul Pounds ,

R o b e r t Mahony .

o f a quadr o t o r

Australian

National

robot .

Peter

University ,

2 0 0 6 .</ big><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d

width :

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 3 3 8 3 3 . p d f ><img s t y l e= b o r d e r :

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>

<td s t y l e= v e r t i c a l a l i g n :

&nbsp ;<big>Towards d y n a m i c a l l y f a v o u r a b l e quadr o t o r


J . Gresham P .

Corke P . Pounds , R . Mahony and J .

&nbsp ; C o n f e r e n c e on R o b i t s and Automation ,

aerial

Roberts .

robots .

A u s t r a l a s i a n<br>

2004</ big><br>

</ td>
</ t r>
<t r>
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ Q uad cop ter %20Dynamics , %20

<td s t y l e= v e r t i c a l a l i g n :

S i m u l a t i o n , %20and %20C o n t r o l . p d f ><img s t y l e= b o r d e r :

0 px s o l i d

width :

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>


<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>Andrew G i b i a n s k y .

t o p ; ><br>

Qu ad cop te r dynamics ,

s i m u l a t i o n s and

c o n t r o l . November 2 0 1 2 .</ big><br>


</ td>
</ t r>
<t r>
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ b a l a s 2 0 0 7 . p d f ><img s t y l e=

<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

width :

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>M o d e l l i n g and l i n e a r
J . F . Whidborne .

Cranfield

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>
control

University ,

o f a q u a d r o t o r . C BALAS and Dr

September 2007</ big> .<br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
px s o l i d

width :

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 1 2 . p d f ><img s t y l e= b o r d e r :

61 px ;

<td s t y l e= v e r t i c a l a l i g n :

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>

&nbsp ;<big>A q u i c k o v e r v i e w on r o t a t o r y Brush and B r u s h l e s s DC Motors .


Marc V i l a Mani .

i n g e n i a c a t a
motion

control

d e p a r t m e n t . </ big><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ p r o j e c t 4 3 d e s i g n r e v i e w . p d f ><

img s t y l e= b o r d e r : 0 px s o l i d

width :

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ><

/a></ td>
<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>A l t e r n a t i v e
Moy.& nbsp ;

University

t o p ; ><br>

quadcopter .
of

S i l v e r De Guzman C h r i s t o p h e r

I l l i n o i s , USA .</ big><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ i o c c h i simp armuav08 . p d f ><img

s t y l e= b o r d e r : 0 px s o l i d

width :

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a>

</ td>
<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>Autonomous i n d o o r
N a r d i G.

A n ge l et ti , J . R.

t o p ; ><br>

hovering with a quadrotor . L .

Pereira

Valente .

Sapienza

I o c c h i D.

University

o f Rome .</ big><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; D e s i g n

of

multicopter

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/276CQ2010 . p d f ><img s t y l e=

width :

test

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><big><br>
bench .

S a i Kishan R . C . S .

S u r a j G.

Ramesh S r i k a n t h G o v i n d a r a j a n , Tarun Agarwal and Veena Devi .<br>


&nbsp ; I n t e r n a t i o n a l

Journal

o f&nbsp ;

M o d e l i n g and O p t i m i z a t i o n ,

Vol . 3 ,

No . 3 , June 2 0 1 3 .<br>
</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>H e l i c o p t e r
P r i n c e t o n , NJ ,

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/276CQ2010 . p d f ><img s t y l e=

width :

t h e o r y . W.

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>
Johnson .

Princeton

University

Press ,

1 9 8 0 .</ big><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ I S E R 2 0 1 2 p o w e r s %282 %29. p d f ><

img s t y l e= b o r d e r : 0 px s o l i d

width :

61 px ;

/a></ td>

295

height :

56 px ; a l t= s r c= I c o n o p d f . png ><

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ; I n f l u e n c e
flight .

of

t o p ; ><big><br>

a e r o d y n a m i c s and p r o x i m i t y

effects

in

quadrotor

A l e k s a n d r K u s h l e y e v Bruce Kothmann V i j a y Kumar C a i t l i n<br>

&nbsp ; Powers ,

Daniel

Pennsylvania ,

P h i l a d e l p h i a .<br>

M e l l i n g e r . GRASP L a b o r a t o r y ,

University

of

</ big></ td>


</ t r>
<t r>
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ document . p d f ><img s t y l e=

<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

width :

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>Pid v s

lq

control

techniques

q u a d r o t o r . </ big><big>Noth A .
Federal

Institute

&nbsp ; Te ch nology ,

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>
applied

t o an i n d o o r m i c r o

B o u a b d a l l a h , S . and R .

Siegwart .

Swiss

o f <br>
2 0 0 4 .</ big><big> .</ big></ td>

</ t r>
<t r>
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ f u l l t e x t . p d f ><img s t y l e=

<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

width :

&nbsp ;<big>M o d e l l i n g t h e

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>

<td s t y l e= v e r t i c a l a l i g n :

draganflyer

four

rotor

h e l i c o p t e r . </ big><big>P .

McKerrow . </ big><big>C o n f e r e n c e on R o b o t i c s and Automation , </ big><big>A p r i l


2 0 0 4 .</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ h r w d j t 0 4 d a s c . p d f ><img s t y l e=

width :

&nbsp ;<big>The s t a n f o r d
agent

testbed

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>

<td s t y l e= v e r t i c a l a l i g n :

o f autonomous

c o n t r o l . </ big><big>R a j n a r a y a n D. G.

rotorcraft

for

Waslander S . L .

multi

D o s t a l D.

Jang J . S .<br>
&nbsp ; Hoffmann , G. M. and C . J .
S y s te m s C o n f e r e n c e ,

Tomlin . </ big><big> D i g i t a l

Avionics

2 0 0 4 .</ big></ td>

</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
px s o l i d

width :

<td s t y l e= v e r t i c a l a l i g n :
<big>&nbsp ; S t a b i l i z a t i o n
R.

C a s t i l l o , P . and A .

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 5 2 5 . p d f ><img s t y l e= b o r d e r :

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; >&nbsp ;<br>

o f a mini

rotorcraft

with

four

r o t o r s . </ big><big>Lozano

Dzul . </ big><big>IEEE C o n t r o l S y s t e m s Magazine ,

2 0 0 5 .</ big><big>&nbsp ;</ big></ td>


</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d

width :

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>Optimal

trajectory

I .D. and A .K. Cooke .

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ f 1 2 5 . p d f ><img s t y l e= b o r d e r :

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>

p l a n n i n g and l q r . Whidborne J . F .

Proc .UKACC I n t .

Conf .

Control ,

Cowling ,

2 0 0 6 .</ big><br>

&nbsp ;<big><br>
</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>N o n l i n e a r

state

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ v o o s 2 0 0 9 . p d f ><img s t y l e=

width :

61 px ;

dependent

riccati

q u a d r o t o r uav . H Voos . IEEE I n t e r n a t i o n a l


&nbsp ; A p p l i c a t i o n s ,

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>
equation

control

of a

C o n f e r e n c e on C o n t r o l<br>

2 0 0 6 .</ big><br>

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d

<td s t y l e= v e r t i c a l a l i g n :
&nbsp ;<big>Feedback

t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 0 1 6 4 4 5 4 5 . p d f ><img s t y l e=

width :

linearization

61 px ;

height :

56 px ; a l t= s r c= I c o n o p d f . png ></a></ td>

t o p ; ><br>
and h i g h

order

s l i d i n g mode o b s e r v e r

for a
q u a d r o t o r uav .

Mokhtari A.

B e n a l l e g u e , A . and L . Fridman . <br>

&nbsp ; I n t e r n a t i o n a l Workshop on V a r i a b l e

Structure

</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

</ td>
<td s t y l e= v e r t i c a l a l i g n :

t o p ; ><br>

</ td>
</ t r>
</tbody>
</ t a b l e>

296

Systems ,

2 0 0 6 .</ big><br>

<br>
<br>
<hr s i z e= 2 width=100 %>
</body></html>

297

Anexo D
En este anexo se ha incluido el codigo necesario para poder utilizar Matlab o Simulink
en una placa con un controlador Arduino. Este c
odigo s
olo debe ejecutarse la primera
vez y debe abrirse con la aplicacion de arduino dise
nada para programar este tipo de
microcontroladores. Para realizar tal tarea, copiese el c
odigo que a continuacion se presenta
y peguese en un archivo .txt. Posteriormente cambie su extension al tipo .pde y
abralo
con el programa de arduino. Seleccione el dispositivo de destino y vuelque el c
odigo.

/* Analog and Digital Input and Output Server for MATLAB


/* Giampiero Campa, Copyright 2009 The MathWorks, Inc

*/
*/

/* This file is meant to be used with the MATLAB arduino IO


package, however, it can be used from the IDE environment
(or any other serial terminal) by typing commands like:
0e0 : assigns digital pin #4 (e) as input
0f1 : assigns digital pin #5 (f) as output
0n1 : assigns digital pin #13 (n) as output
1c

: reads digital pin #2 (c)

1e

: reads digital pin #4 (e)

2n0 : sets digital pin #13 (n) low


2n1 : sets digital pin #13 (n) high
2f1 : sets digital pin #5 (f) high
2f0 : sets digital pin #5 (f) low
4j2 : sets digital pin #9 (j) to

50=ascii(2) over 255

4jz : sets digital pin #9 (j) to 122=ascii(z) over 255


3a

: reads analog pin #0 (a)

3f

: reads analog pin #5 (f)

R0

: sets analog reference to DEFAULT

R1

: sets analog reference to INTERNAL

R2

: sets analog reference to EXTERNAL

99

: returns script type (1 basic, 2 motor, 3 general)

/* define internal for the MEGA as 1.1V (as as for the 328)

*/
*/

#if defined( AVR ATmega1280 ) | | defined( AVR ATmega2560 )


#define INTERNAL INTERNAL1V1

299

#endif
void setup() {
/* Make sure all pins are put in high impedence state and
that their registers are set as low before doing anything.
This puts the board in a known (and harmless) state

*/

int i;
for (i=0;i<20;i++) {
pinMode(i,INPUT);
digitalWrite(i,0);
}
/* initialize serial

*/

Serial.begin(115200);
}
void loop() {
/* variables declaration and initialization

*/

static int

static int

pin = 13;

/* generic pin number

*/
*/

int

val =

0;

int

agv =

0;

/* generic value read from serial */


/* generic analog value
*/

int

dgv =

0;

/* generic digital value

= 1;

/* state

*/

/* The following instruction constantly checks if anything


is available on the serial port. Nothing gets executed in
the loop if nothing is available to be read, but as soon
as anything becomes available, then the part coded after
the if statement (that is the real stuff) gets executed */
if (Serial.available() >0) {
/* whatever is available from the serial is read here
val = Serial.read();

*/

/* This part basically implements a state machine that


reads the serial port and makes just one transition
to a new state, depending on both the previous state
and the command that is read from the serial port.
Some commands need additional inputs from the serial
port, so they need 2 or 3 state transitions (each one
happening as soon as anything new is available from
the serial port) to be fully executed. After a command
is fully executed the state returns to its initial
value s=1

*/

switch (s) {

300

/* s=1 means NOTHING RECEIVED YET ******************* */


case 1:
/* calculate next state

*/

if (val>47 && val<90) {


/* the first received value indicates the mode
49 is ascii for 1, ... 90 is ascii for Z
s=0 is changepin mode
s=10 is DI;

s=20 is DO;

s=30 is AI;

s=40 is AO;

s=90 is query script type (1 basic, 2 motor)


s=340 is change analog reference
*/
s=10*(val48);
}
/* the following statements are needed to handle
unexpected first values coming from the serial (if
the value is unrecognized then it defaults to s=1) */
if ((s>40 && s<90) | | (s>90 && s!=340)) {
s=1;
}

/* the break statements gets out of the switchcase, so


/* we go back to line 97 and wait for new serial data */
break; /* s=1 (initial state) taken care of

*/

/* s=0 or 1 means CHANGE PIN MODE

*/

case 0:
/* the second received value indicates the pin
from abs('c')=99, pin 2, to abs('t')=116, pin 19

*/

if (val>98 && val<117) {


pin=val97;

/* calculate pin
s=1; /* next we will need to get 0 or 1 from serial

*/
*/

}
else {
s=1; /* if value is not a pin then return to 1

*/

}
break; /* s=0 taken care of

*/

case 1:
/* the third received value indicates the value 0 or 1 */

301

if (val>47 && val<50) {


/* set pin mode
if (val==48) {

*/

pinMode(pin,INPUT);
}
else {
pinMode(pin,OUTPUT);
}
}
s=1;

/* we are done with CHANGE PIN so go to 1

break; /* s=1 taken care of

*/
*/

/* s=10 means DIGITAL INPUT ************************** */


case 10:
/* the second received value indicates the pin
from abs('c')=99, pin 2, to abs('t')=116, pin 19

*/

if (val>98 && val<117) {


pin=val97;
dgv=digitalRead(pin);

/* calculate pin
/* perform Digital Input

*/
*/

Serial.println(dgv);

/* send value via serial

*/

}
s=1;

/* we are done with DI so next state is 1

*/
*/

break; /* s=10 taken care of


/* s=20 or 21 means DIGITAL OUTPUT ******************* */
case 20:
/* the second received value indicates the pin
from abs('c')=99, pin 2, to abs('t')=116, pin 19

*/

if (val>98 && val<117) {


pin=val97;

/* calculate pin

*/
s=21; /* next we will need to get 0 or 1 from serial */

}
else {
s=1; /* if value is not a pin then return to 1

*/

}
break; /* s=20 taken care of

*/

case 21:
/* the third received value indicates the value 0 or 1 */
if (val>47 && val<50) {
dgv=val48;
digitalWrite(pin,dgv);

/* calculate value
/* perform Digital Output */

*/

}
s=1;

/* we are done with DO so next state is 1

break; /* s=21 taken care of

*/
*/

/* s=30 means ANALOG INPUT *************************** */


case 30:
/* the second received value indicates the pin

302

from abs('a')=97, pin 0, to abs('f')=102, pin 6,


note that these are the digital pins from 14 to 19
located in the lower right part of the board

*/

if (val>96 && val<103) {


pin=val97;
agv=analogRead(pin);
Serial.println(agv);

/* calculate pin
/* perform Analog Input
/* send value via serial */

*/
*/

}
s=1;

/* we are done with AI so next state is 1


break; /* s=30 taken care of

*/
*/

/* s=40 or 41 means ANALOG OUTPUT ******************** */


case 40:
/* the second received value indicates the pin
from abs('c')=99, pin 2, to abs('t')=116, pin 19

*/

if (val>98 && val<117) {


pin=val97;

/* calculate pin
s=41; /* next we will need to get value from serial

*/
*/

}
else {
s=1; /* if value is not a pin then return to 1

*/

}
break; /* s=40 taken care of

*/

case 41:
/* the third received value indicates the analog value */
analogWrite(pin,val);
/* perform Analog Output */
s=1; /* we are done with AO so next state is 1
*/
break; /* s=41 taken care of
*/
/* s=90 means Query Script Type (1 basic, 2 motor)
case 90:

*/

if (val==57) {
/* if string sent is 99
Serial.println(1);

send script type via serial */

}
s=1;

/* we are done with this so next state is 1

break; /* s=90 taken care of

*/
*/

/* s=340 or 341 means ANALOG REFERENCE *************** */


case 340:
/* the second received value indicates the reference,
which is encoded as is 0,1,2 for DEFAULT, INTERNAL
and EXTERNAL, respectively

*/

switch (val) {
case 48:

303

analogReference(DEFAULT);
break;
case 49:
analogReference(INTERNAL);
break;
case 50:
analogReference(EXTERNAL);
break;
default:

/* unrecognized, no action

*/

break;
}
s=1;

/* we are done with this so next state is 1

break; /* s=341 taken care of

*/
*/

/* ******* UNRECOGNIZED STATE, go back to s=1 ******* */


default:
/* we should never get here but if we do it means we
are in an unexpected state so whatever is the second
received value we get out of here and back to s=1
s=1;

*/

/* go back to the initial state, break unneeded */

} /* end switch on state s

*/

} /* end if serial available

*/

} /* end loop statement

*/

304

You might also like