Sei sulla pagina 1di 183

ESCUELA T

ECNICA SUPERIOR DE INGENIEROS


INDUSTRIALES Y DE TELECOMUNICACI

ON
Titulaci on :
INGENIERO INDUSTRIAL
Ttulo del proyecto:
MODELADO, DISE

NO, CONSTRUCCI

ON Y CONTROL
BORROSO DE UN HELIC

OPTERO QUADROTOR
Carlos Mikel Esparza Martinez de Luco
Jorge Elso Torralba
Mara Jos e P erez-Ilzarbe Serrano
Pamplona, 24 de febrero de 2012
2

Indice general
I Antecedentes y objetivos 7
1. Vehculos aereos no tripulados 9
2. El quadrotor 11
3. Objetivos 13
II Modelado y simulacion del quadrotor 15
4. Sisitema fsico 17
5. Fundamentos teoricos de mecanica 19
5.1. Fundamentos de mecanica del solido rgido . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2. Fundamentos de mecanica de uidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
6. Rotacion y traslacion del quadrotor 23
6.1. Orientacion del quadrotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
6.2. Traslacion del quadrotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
7. Calculo de los tensores de inercia 27
7.1. Tensor de inercia del rotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7.2. Tensor de inercia de la estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
8. Aplicacion de los teoremas vectoriales 31
8.1. Teoremas vectoriales en el rotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.2. Teoremas vectoriales en la estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
9. Fuerzas y momentos aerodinamicos 33
9.1. Fuerzas asociadas a traslaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
9.2. Momentos asociados a rotaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
10.Ecuaciones de estado 37
10.1. Vector de estados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
11.Linealizacion 39
11.1. Linealizacion en torno a un punto de equilibrio . . . . . . . . . . . . . . . . . . . . . . 39
11.2. Matrices jacobianas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
11.3. Obtencion de la transformada de Laplace . . . . . . . . . . . . . . . . . . . . . . . . . 43
11.4. Punto de equilibrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
11.5. Matriz de transferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
12.Desacoplo del sistema 47
12.1. Matriz de desacoplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
12.2. Matriz de transferencia global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4

Indice general
13.Simulacion del modelo 51
13.1. Modelo no lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
13.2. Modelo linealizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
13.3. Animacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
III Descripci on del sistema 61
14.Motor brushless 63
14.1. Descripcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
14.2. Eleccion para el sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
15.Control electronico de velocidad. ESC 67
15.1. Descripcion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
15.2. Eleccion para el sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
15.3. Programacion del control electronico de velocidad . . . . . . . . . . . . . . . . . . . . . 68
16.Bateras 71
16.1. Comparativa entre bateras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
16.2. Especicaciones relevantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
16.3. Bateras LiPo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
16.4. Eleccion para el sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
17.Sensores 75
17.1. Sensores de altura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
17.2. Sensores angulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
17.3. AHRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
18.Comunicaciones 83
18.1. Estacion de control-quadrotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
18.2. Inter-integrados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
19.Dise no del circuito 89
19.1. Microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
19.2. Dise no del layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
20.Dise no de la estructura 91
20.1. Brazos de la estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
20.2. Placas centrales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
21.Implementacion en CCS 95
21.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
21.2. Rutinas auxiliares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
21.3. Libreras de control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
21.4. Comunicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
21.5. Programa dise nado para la identicacion . . . . . . . . . . . . . . . . . . . . . . . . . . 108
21.6. Programacion nal del quadrotor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
22.Construccion del quadrotor 123
IV Identicaci on 125
23.Elementos dise nados para la identicacion 127
23.1. Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
23.2. Montaje experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Indice general 5
24.Identicacion del motor Eskay con el ESC Skyartec 133
24.1. Identicacion del regimen permanente . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
24.2. Identicacion del regimen transitorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
24.3. Modelo completo del conjunto motor-ESC . . . . . . . . . . . . . . . . . . . . . . . . . 136
24.4. Modelo linealizado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
25.Identicacion del motor EMAX con el ESC Flyfun 141
25.1. Identicacion del regimen permanente . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
25.2. Identicacion del regimen transitorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
25.3. Identicacion con la toolbox Ident de Matlab . . . . . . . . . . . . . . . . . . . . . . . . 143
25.4. Modelo completo del conjunto motor-ESC . . . . . . . . . . . . . . . . . . . . . . . . . 145
26.Identicacion de coecientes aerodinamicos 147
26.1. Obtencion de los coecientes b y k
T
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
26.2. Intensidad demandada en funcion del empuje . . . . . . . . . . . . . . . . . . . . . . . 148
26.3. Revoluciones del rotor para alcanzar el equilibrio . . . . . . . . . . . . . . . . . . . . . 148
26.4. Aceleraciones maximas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
27.Identicacion de los sensores 151
27.1. Sensor de altura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
27.2. Sensores angulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
V Control Automatico 153
28.PD borroso. Modelo de Mandami 155
28.1. Control de altura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
28.2. Control de gui nada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
28.3. Control de alabeo y cabeceo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
29.Rechazo de perturbaciones 165
29.1. Rechazo de perturbaciones del PD borroso dise nado . . . . . . . . . . . . . . . . . . . 165
29.2. Obtencion del error en estado estacionario . . . . . . . . . . . . . . . . . . . . . . . . . 165
30.Controladores lineales 169
30.1. PID para rechazo de perturbaciones. Alabeo y cabeceo . . . . . . . . . . . . . . . . . . 169
30.2. PD para rechazo de perturbaciones. Alabeo y cabeceo . . . . . . . . . . . . . . . . . . 172
VI Conclusiones 177
31.Resumen de resultados 179
31.1. Modelado y simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
31.2. Identicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
31.3. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
31.4. Sistema embebido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
31.5. Control automatico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
32.Lneas futuras 181
32.1. Modelado y simulacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
32.2. Identicacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
32.3. Sistema embebido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
32.4. Control automatico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6

Indice general
Parte I
Antecedentes y objetivos
Captulo 1
Vehculos aereos no tripulados
Los sistemas autonomos de control de vuelo han despertado un gran interes en los ultimos a nos
debido al interes en el desarrollo de vehculos aereos no tripulados (en ingles UAV, Unmanned Aerial
Vehicles), as como el logro de un pilotaje mas sencillo e intuitivo de los mismos.
Este tipo de vehculo puede verse tanto en el ambito militar como en el civil, con aplicaciones desa-
rrolladas para tareas de b usqueda y rescate, vigilancia comercial, espionaje, lmacion cinematografa,
inspeccion en situaciones donde se realicen vuelos en condiciones hostiles, as como la realizacion de
maniobras acrobaticas, entre otras.
Hasta hace poco tiempo, desarrollar un vehculo aereo en escala miniatura y controlado de manera
autonoma era un sue no de muchos investigadores. Fue a partir de la Primera y la Segunda Guerra
Mundial cuando comenzo decididamente el desarrollo de los UAV con el Denny Righter RP750 de los
ingleses o el V1 Buzz bomb de los alemanes (gura 1.1), pero estaban limitados por las restricciones
impuestas por el hardware existente hasta entonces. Lo que ha hecho posible la construccion de
robots aereos autonomos han sido los recientes avances tecnologicos en actuadores y sensores en
escala reducida (MEMS, Micro Electromechanical Systems), en el almacenamiento de energa y en el
procesamiento de datos.
Figura 1.1: UAV en la segunda Guerra Mundial. a) Denny Righter RP750 para entrenamiento de
tiradores. b) V1 Buzz bomb o bomba voladora.
Por otro lado, el desarrollo de sistemas de control para este tipo de vehculos no es trivial, debido
principalmente a la compleja dinamica inherente en los sistemas aerodinamicos, los cuales son multi-
variables, subactuados y ademas presentan diversas caractersticas no lineales. Esto signica que las
leyes clasicas de control lineal de sistemas SISO (sistemas de una entrada y una salida, del ingles Single
Input, Single Output) pueden tener muy limitada su rango de aplicacion, provocando inestabilidades
cuando se opera en condiciones no muy lejanas a las de equilibrio.
Para aumentar tanto la abilidad como las prestaciones de estos sistemas, se suele requerir es-
trategias de control avanzadas que permitan tener en cuenta, por una parte, la complejidad de estos
sistemas, y por otra, las incertidumbres propias de cualquier modelado. Tales requisitos pueden ser
10
posibles utilizando tecnicas de modelado no lineal y de teora de control no lineal moderna, lo que
permite alcanzar un alto desempe no en vuelos autonomos, y en distintas condiciones de vuelo (vuelo
estacionario, vuelo en punto jo, aterrizaje/despegue, etc.). Los sistemas de control de vuelo pueden
clasicarse en tres categoras, cada una con objetivos diferentes en funcion de la autonoma que alcance
el sistema:
Sistema para incrementar la estabilidad, (del ingles SAS, Stability Augmentation Systems).
Este tipo de sistemas persigue ayudar al pilotaje del vehculo estabilizando el sistema con un
control de bajo nivel. As se evita que el piloto deba actuar en base al comportamiento dinamico
de un sistema, que una vez alejado de cierto punto de equilibrio o en ciertos sistemas no es
intuitivo para el razonamiento humano.
Sistemas para incrementar el comportamiento, (del ingles CAS, Control Augmentation
Systems). Estos sistemas estan en un nivel jerarquico superior a los SAS. As, ademas de esta-
bilizar al vehculo, estos sistemas deben ser capaces de proporcionar una respuesta con ciertas
prestaciones a referencias que de el piloto, es decir, deben tener un buen seguimiento de la
referencia.
Sistemas de pilotaje automatico, (del ingles Autopilot). Constituyen el nivel de control
jerarquicamente superior. Son sistemas de control totalmente automaticos que son capaces de
realizar por s solos ciertos tipos de maniobras, como por ejemplo, el despegue, el aterrizaje, o
vuelo estacionario a cierta altura.
Captulo 2
El quadrotor
Uno de los conceptos que normalmente se utilizan para desarrollar UAV es el VTOL, del ingles
Vertical Take-O and Landing, un tipo de aeronave que actualmente esta siendo muy referenciada
en la conguracion de quadrotor. En comparacion con los aeroplanos este tipo de aeronave posee
una mayor agilidad para maniobrar, sin embargo, su control se hace mucho mas complejo entre otros
motivos por la mayor inestabilidad de su dinamica.
Este tipo de helicoptero consigue un vuelo estacionario estable y preciso a traves del balance de
las fuerzas de propulsion ejercidas por las cuatro helices accionadas por sus respectivos motores. No se
debe caer en el error de creer que es un dise no reciente, pues dos a nos antes del exitoso vuelo de Juan
de la Cierva con su autogiro (primera aeronave de despegue vertical plenamente funcional), en 1921
en Estados Unidos el doctor George De Bothezat se elevo 1.8 metros con el quadrotor de la gura 2.1.
Figura 2.1: Maquina voladora del doctor ruso George De Bothezat, 1921.
12
No obstante, ha sido necesario un cierto desarrollo tecnologico para su completo desarrollo, y de
momento unicamente como UAV, aunque existen proyectos militares y civiles de su uso como vehculo
tripulado (gura 2.2). Son muchas las ventajas que tienen este tipo de helicoptero con respecto a uno
convencional, entre las cuales se pueden citar las siguientes:
El aumento de la capacidad de carga debido a la suma de los empujes generados por los cuatro
rotores. Se obtiene el mismo area de barrido con cuatro rotores de la mitad de diametro que
si se emplea un unico rotor, esto reduce las complicaciones en el dise no de las palas, elemento
crtico por las fuerzas a las que se ven sometidas.
La alta maniobrabibilidad, que permite el despegue y el aterrizaje con perfecta verticalidad,
as como vuelos en entornos complicados.
La sencillez del dise no mecanico, que proporciona el control del movimiento a traves de ac-
cionamiento directo de los rotores variando sus velocidades. En un helicoptero convencional,
la velocidad de giro de las helices suele ser constante, controlando el movimiento mediante la
variacion de los angulos de ataque de las palas (cclico y colectivo). Esto requiere transmisiones
entre los rotores, ademas de elementos mecanicos de precision para poder variar los mencionados
angulos.
El uso de motores electricos en lugar de motores de combustion, lo que hace de estos helicopteros
un vehculo especialmente interesante para su uso en el interior de edicios, ya que no contaminan
el aire con residuos de la combustion.
Como desventajas, este tipo de helicoptero presenta un aumento de peso y un aumento en el
consumo de energa debido al aumento del n umero de motores.
Desde el punto de vista de control, la construccion de este tipo de helicoptero miniatura esta lejos de
simplicar el problema: mas bien sucede lo contrario. Esto se debe a que los pares y fuerzas necesarios
para controlar el sistema son aplicados no solo a traves de efectos aerodinamicos, sino tambien a traves
del efecto de acoplamiento que aparece entre la dinamica de los rotores y la del cuerpo del quadrotor,
como consecuencia del principio de accion-reaccion originado en la aceleracion y desaceleracion de los
grupos motor-helice, efecto que no aparece en el control con velocidad de helices con velocidad angular
constante.
El interes por el desarrollo de controladores para el helicoptero quadrotor en escala reducida queda
demostrado por el amplio n umero de publicaciones que han aparecido en los ultimos a nos sobre la
cuestion.
Figura 2.2: Quadrotor como vehculo tripulado. a) Proyecto e-volo. b) Bell-Boeing Quad Tilt Rotor.
Captulo 3
Objetivos
Este proyecto tiene como objetivo el desarrollo de un helicoptero quadrotor en todas sus etapas,
desde el modelado del sistema hasta la implementacion nal de los algoritmos de control.
Inicialmente se realizara un estudio de la dinamica basado en las leyes fsicas con la nalidad
de obtener un modelo que represente de la forma mas el posible el comportamiento dinamico del
quadrotor. El resultado sera un modelo multivariable y no lineal, por lo que habra que adaptarlo para
aplicar las tecnicas conocidas de control automatico.
Una vez obtenido el modelo y con la posibilidad de realizar simulaciones, habra que realizar de
forma paralela a su construccion una serie de ensayos que identiquen los parametros clave para
el dise no, y en concreto sera necesario identicar los actuadores como elemento determinante de la
dinamica. Con esta identicacion podra iniciarse la construccion del quadrotor.
A continuacion, se acomete el dise no e implementacion del sistema embebido encargado del manejo
de la aeronave. Se dise nara el circuito de gobierno incluyendo sensores, comunicaciones y entradas y
salidas de control. Habra que decidir que tipo de sensores utilizar, como establecer las comunicaciones
y sobre que soporte electronico realizar la programacion (FPGA, microcontrolador, etc.).
Una vez se disponga del sistema embebido a emplear, sera necesario crear una serie de libreras
adaptadas al sistema empotrado empleado que permitan no solo obtener la lectura de los sensores,
transmitir la accion de control y establecer las comunicaciones, sino tambien hacer pruebas con dife-
rentes tipos de controladores de una forma agil.
Finalmente habra que desarrollar los algoritmos de control e incorporarlos al quadrotor. Por la
naturaleza del sistema se van a emplear controladores con logica borrosa que permitan hacer frente
a las no linealidades y aplicar por otra parte los conocimientos del comportamiento del sistema. El
nivel de control que se va a adoptar es el CAS (Control Augmentation Systems), tratando de obtener
un seguimiento ante cambios de referencia en los grados de libertad manejados por un piloto de
helicoptero convencional: alabeo, cabeceo, gui nada y altura del aparato.
Parte II
Modelado y simulaci on del
quadrotor
Captulo 4
Sisitema fsico
En este captulo se presenta una descripcion del sistema fsico del quadrotor. La gura 4.1 muestra
un croquis de la aeronave, a falta de determinar sus dimensiones, que dependeran de los resultados
obtenidos en los analisis llevados a cabo en los siguientes captulos.
Figura 4.1: Croquis de la estructura del quadrotor.
La gura 4.2 muestra un esquema del sistema dinamico del quadrotor. Se pueden apreciar la
base asociada al quadrotor (B) con sus respectivos vectores directores (x
L
, y
L
, z
L
), las fuerzas de
sustentacion (F
1
, F
2
, F
3
, F
4
) y la base de referencia inercial (I) con sus vectores directores asociados
(x, y, z). es el vector de posicion del centro de masa del quadrotor y , y son los angulos de
alabeo, cabeceo y gui nada (del ingles roll, pitch y yaw) respectivamente.
18
Figura 4.2: Sistemas de referencia en el modelado dinamico del quadrotor.
De acuerdo con dicho esquema, las distancias desde el centro de gravedad del quadrotor a los puntos
en los que se aplica la fuerza (parte superior central de los rotores) vienen dadas por los vectores
d
N
=
_
_
_
ld
CIL
2
0
h
R
+
a
2
_
_
_
, d
S
=
_
_
_

ld
CIL
2
0
h
R
+
a
2
_
_
_
,
d
E
=
_
_
_
0

ld
CIL
2
h
R
+
a
2
_
_
_
y d
O
=
_
_
_
0
ld
CIL
2
h
R
+
a
2
_
_
_
.
(4.1)
Captulo 5
Fundamentos te oricos de mecanica
5.1. Fundamentos de mecanica del solido rgido
5.1.1. Ecuaciones de Newton-Euler
La cantidad de movimiento de la mecanica newtoniana viene dada por la expresion de la cantidad
de movimiento lineal
p = mV
cdg
(5.1)
y la expresion de la cantidad de movimiento angular
H = J
cdg
. (5.2)
Para encontrar la derivada con respecto al tiempo de estos vectores es necesario realizar una
derivada en base movil de estas expresiones, dado que ambos vectores estan asociados a la base ja al
quadrotor (B), que realiza un movimiento de rotacion-traslacion con respecto a la base de referencia
inercial (I).
Dado un sistema jo F, otro movil M y un vector cualquiera r
M
expresado en la base M
1
que
vara con el tiempo, se dene el operador derivada en base movil
d
dt
r
M

F
=
d
dt
r
M

M
+ r
M
. (5.3)
Del resultado de derivar en base movil las expresiones de la cantidad de movimiento lineal y
angular se obtienen las ecuaciones de Newton-Euler de la dinamica del solido rgido.

Estas describen la
dinamica combinada de traslacion y rotacion. A continuacion se muestran en su formulacion matricial
2
.
_
mI
3x3
0
0 J
3x3
__

V

_
+
_
mV
J
3x3

_
=
_
F

_
(5.4)
5.1.2. Relaci on entre la velocidad angular y la matriz de cambio de base
Se va a obtener la relacion existente entre la velocidad angular y la matriz de cambio de base. Sea
u un vector arbitrario y sean M y F dos bases con orientaciones distintas, a partir de la expresion de
1
Por simplicar la notacion, se va a considerar siempre que cada base tiene una unica orientaci on asociada.
2
I
3x3
es la matriz identidad de orden 3.
20 5.1. Fundamentos de mecanica del solido rgido
la derivada en base movil (ecuacion 5.3), premultiplicando todos terminos por la matriz de rotacion
[R]
F
M
se obtiene la relacion
[(
M
(F))] =
_
[R]
F
M
_
T
_
d
dt
[R]
F
M
_
. (5.5)
Por otro lado, el desarrollo que conduce a la expresion 5.5 demuestra que el tensor velocidad
angular es antisimetrico, en concreto de la forma
[(
M
(F))] =
_
_
0 w
3
w
2
w
3
0 w
1
w
2
w
1
0
_
_
F
, (5.6)
por lo que la tupla velocidad angular es
{
M
(F)}
F
=
_
_
_
w
1
w
2
w
3
_
_
_
F
. (5.7)
5.1.3. Tensor de inercia y teorema de Steiner
La mayora de los tensores de inercia de s olidos elementales estan tabulados respecto a su centro
de gravedad. Sin embargo, es habitual que esa no sea el punto respecto al cual se desea calcular. El
teorema de Steiner permite trasladar el momento cinetico de un solido entre un punto arbitrario y
el centro de gravedad. El teorema demuestra que el momento cinetico de SOL
k
respecto al punto B
dado por
[H
SOL
K
(B)] = [H
SOL
K
(G
SOL
K
)] + [H
SOL
K
(B)] , (5.8)
donde
[H
SOL
K
(B)] = [P
G
SOL
k
] m
SOL
k
V
G
SOL
k
(5.9)
es el momento cinetico de una partcula de igual masa que SOL
k
situada en el centro de gravedad
del solido.
A partir de estas ecuaciones es facil comprobar que
[J
SOL
k
(B)] = [J
SOL
k
(G
SOL
K
)] + [J
SOL
k
(B)] , (5.10)
con
[J
SOL
k
(B)] = m
SOL
k
(P
G
SOL
k
)(P
G
SOL
k
) . (5.11)
La expresion 5.11 es el tensor de inercia en B de una partcula de masa igual a la masa del solido
que estuviera situada en el centro de gravedad del solido. Evidentemente, el tensor anterior proyectado
en la misma base se expresara como
[J
SOL
k
(B)] = m
SOL
k
_
_
x
2
2
+x
2
3
x
1
x
2
x
1
x
3
x
2
x
1
x
2
1
+x
2
3
x
2
x
3
x
3
x
1
x
3
x
2
x
2
1
+x
2
2
_
_
. (5.12)
Generalmente la orientacion del solido es la de la base empleada, y el punto B es jo respecto
al mismo, de modo que la expresion 5.12 tiene componentes constantes. Por ello, en adelante se
supondra que el tensor esta expresado en la base asociada al solido rgido, y se denotara I
SOL
k
.
5. Fundamentos teoricos de mecanica 21
5.2. Fundamentos de mecanica de uidos
5.2.1. Resistencia y sustentaci on de cuerpos sumergidos
Cuando un cuerpo de geometra arbitraria se sumerge en una corriente uida, el uido ejerce sobre
el fuerzas y momentos en los tres ejes coordenados. Es habitual elegir uno de dichos eje coordenados
paralelo a la corriente no perturbada, positivo aguas abajo. La fuerza sobre el cuerpo seg un este eje se
denomina resistencia (aerodinamica o hidrodinamica), y se corresponde con una perdida de cantidad
de movimiento [2].
Una segunda componente de la fuerza que normalmente equilibra al peso se denomina sustentacion
(lift, en ingles) y es ortogonal a la fuerza de resistencia (drag en ingles).
Cuando el cuerpo es simetrico con respecto al plano formado por los ejes de sustentacion y resis-
tencia el problema de fuerzas tridimensionales se reduce a las fuerzas mencionadas.
5.2.2.

Area caracterstica
Los coecientes de resistencia C
D
y sustentacion (C
L
) dependen del area caracterstica A, que
puede variar dependiendo de la forma del cuerpo, la fuerza correspondiente F
i
y la densidad del uido
. Dichos coecientes vienen dados por
C
D
=
F
D
1
2
V
2
A
C
L
=
F
L
1
2
V
2
A
. (5.13)
El factor 1/2 de los denominadores es un tradicional tributo a Euler y Bernoulli. A la hora de
denir el area A, se suele optar por una de estas deniciones [2]:
1.

Area frontal: area del cuerpo que se ve mirando la direccion de la corriente; apropiada para
cuerpos gruesos tales como esferas, cilindros, coches, etc.
2.

Area de la forma de la planta: area del cuerpo que se ve mirando desde arriba; apropiada para
cuerpos anchos y planos tales como alas e hiroalas.
3.

Area mojada: area en contacto con el uido; se acostumbra a usar en barcos y lanchas.
5.2.3. Resistencia y sustentaci on en helices
Reordenando la ecuacion 5.13, se obtiene el valor de las fuerzas de resistencia y sustentacion
F
D
=
1
2
C
D
AV
2
F
L
=
1
2
C
L
AV
2
. (5.14)
El problema en este punto reside en la eleccion del area caracterstica y el calculo de los coecientes
de resistencia y sustentacion. El calculo de dichos coecientes aerodinamicos es bastante complicado,
pero por suerte para los perles estandar estos estan tabulados y no es necesario su calculo. No
obstante, en el caso de no estarlo es posible realizar pruebas experimentales para determinar su valor
en torno al punto de operacion.
Como se puede apreciar, la ecuacion 5.14 es funcion unicamente de la velocidad lineal, pues el resto
de terminos, salvo cambios signicativos en la densidad del aire, se mantienen constantes. Si bien esta
forma de expresar las fuerzas es v alida para movimientos lineales, en el caso de cuerpos rotatorios
es mas interesante expresarlas en funcion de la velocidad angular. Para hacer el cambio es necesario
realizar una integral a lo largo del radio de la helice, como
22 5.2. Fundamentos de mecanica de uidos
F
i
=
_
R
0
1
2
C
i
V
2
dA =
_
R
0
1
2
C
i
(r)
2
(2r)dr =
1
4
C
i
R
4

2
=
1
4
C
i
AR
2

2
, (5.15)
en la que se ha empleado por convenio como area caracterstica la supercie de barrida de las palas
[5]. Realizando la misma integral para el momento creado por dicha fuerza en el eje de rotacion, el
resultado es
M
i
=
_
R
0
dF
i
r =
_
R
0
1
2
C
i

2
(2r)r
3
dr =
1
5
C
i
AR
3

2
. (5.16)
5.2.4. El n umero de Reynolds
El n umero de Reynolds relaciona la densidad, viscosidad, velocidad y dimension tpica de un ujo
en una expresion adimensional, que interviene en numerosos problemas de dinamica de uidos. Dicho
n umero o combinacion adimensional aparece en muchos casos relacionado con el hecho de que el
ujo pueda considerarse laminar (n umero de Reynolds peque no) o turbulento (n umero de Reynolds
grande). Desde un punto de vista matematico el n umero de Reynolds de un problema o situacion
concreta se dene por medio de
Re =
v
s
D

, (5.17)
o de forma equivalente
Re =
v
s
D

, (5.18)
donde es densidad del uido, v
s
la velocidad caracterstica del uido, D el diametro de la tubera
a traves de la cual circula el uido o longitud caracterstica del sistema, la viscosidad dinamica del
uido y la viscosidad cinematica del uido.
Las perdidas de energa en un uido estan relacionadas con el n umero de Reynolds, por tanto el
c alculo de los coecientes aerodinamicos C
D
y C
L
tambien lo estaran [3]. Estas cuestiones se veran
con mas detalle en el captulo 9.
Captulo 6
Rotaci on y traslacion del quadrotor
6.1. Orientaci on del quadrotor
En esta seccion se trata la orientacion de la base asociada al quadrotor respecto de la referencia
inercial.

Esta se obtendra mediante los giros de Euler siguiendo la convencion xyz, muy utilizada en
la industria aeroespacial, en la que los angulos de Euler se conocen como angulos como angulos de
Tait-Bryan.
Como todo angulo de Euler los angulos de Tait-Bryan son un modo de describir una rotacion
general en el espacio eucldeo tridimensional a traves de tres rotaciones sucesivas en torno a los ejes
del sistema movil en el cual estan denidos. As, la conguracion de la rotacion de un solido rgido en
el espacio queda denida a traves de tres rotaciones sucesivas, expresadas en las siguientes matrices
1
1. Rotacion seg un x de : el primer giro es el correspondiente al angulo de roll o de alabeo, ,
y se realiza alrededor del eje x.
_
_
_
x
1
y
1
z
1
_
_
_
F
=
_
_
1 0 0
0 cos sin
0 sin cos
_
_
_
_
_
x
L
y
L
z
L
_
_
_
(6.1)
2. Rotacion seg un y de : el segundo giro se realiza alrededor del eje y a partir del nuevo eje
y
L
, con el angulo pitch o angulo de cabeceo, para dejar el eje z
L
en su posicion nal.
_
_
_
x
2
y
2
z
2
_
_
_
=
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
_
_
_
x
1
y
1
z
1
_
_
_
(6.2)
3. Rotacion seg un z de : el tercer giro y ultima rotacion corresponde al angulo de gui nada o
yaw, , alrededor del eje z a partir del nuevo eje z
L
para llevar el helicoptero a su posicion nal.
_
_
_
x
y
z
_
_
_
=
_
_
cos sin 0
sin cos 0
0 0 1
_
_
_
_
_
x
2
y
2
z
2
_
_
_
(6.3)
El inconveniente de esta rotacion es que presenta una singularidad en =

2
[7]. No obstante
este angulo de alabeo es impensable, salvo en el caso de vuelos acrobaticos y por tanto no se le
prestara atencion de momento. Por otro lado, en y se permite un giro de 360. La gura 6.1
representa las tres rotaciones, cada una de las cuales se asocia, de acuerdo con 6.1, 6.2 y 6.3, con una
1
Se ha simplicado la notaci on respecto a la de la seccion 5.1.2 de tal manera que

F
M
se expresa como R
M
.
24 6.1. Orientacion del quadrotor
de las matrices de rotacion que representan la orientacion del solido rgido rotando alrededor de cada
eje, es decir,
R(x, ) =
_
_
1 0 0
0 cos sin
0 sin cos
_
_
R(y, ) =
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
R(z, ) =
_
_
cos sin 0
sin cos 0
0 0 1
_
_
(6.4)
Figura 6.1: Rotacion de los angulos de Tait-Bryan del sistema de coordenadas inercial al sistema de
coordenadas jado al helicoptero.
En consecuencia, la matriz de rotacion completa de B respecto a I, llamada Matriz Coseno Directa
[7], viene dada por la ecuacion
R
I
= R(z, ) R(y, ) R(x, ) =
(6.5)
=
_
_
cos sin 0
sin cos 0
0 0 1
_
_
_
_
cos 0 sin
0 1 0
sin 0 cos
_
_
_
_
1 0 0
0 cos sin
0 sin cos
_
_
=
=
_
_
cos cos cos sin sin sin cos cos sin cos + sin sin
sin cos sin sin sin + cos cos sin sin cos cos sin
sin cos sin cos cos
_
_
.
(6.6)
Esta matriz expresada en el sistema de coordenadas B es la inversa de R
I
, que por su propiedad
6. Rotacion y traslacion del quadrotor 25
de ortonormalidad equivale a su traspuesta, con lo que viene dada por
R
B
=
_
_
cos cos sin cos sin
cos sin sin sin cos sin sin sin + cos cos cos sin
cos sin cos + sin sin sin sin cos cos sin cos cos
_
_
. (6.7)
Si ahora se dene
=
_
_
_
p
q
r
_
_
_
(6.8)
como el vector de velocidades angulares en el sistema de coordenadas jado al solido rgido y siendo
S() =
_
_
0 r q
r 0 p
q p 0
_
_
(6.9)
su tensor de velocidad angular asociado, seg un lo denido en la ecuacion 5.5 obtenemos

R
I
= R
I
S() (6.10)
Despejando del sistema de ecuaciones dado en 6.10 las variables

,

y

, y realizando simplica-
ciones obtenemos
_
_
_

_
_
_
=
_
_
_
p +r sec tan + (q cos r sin ) tan tan
q cos r sin
sec (r cos +q sin )
_
_
_
, (6.11)
o lo que es lo mismo, expresado en forma matricial,
_
_
_

_
_
_
=
_
_
1 sin tan cos tan
0 cos sin
0 sin sec cos sec
_
_
_
_
_
p
q
r
_
_
_
. (6.12)
As, si se quiere expresar el vector de velocidad angular en el sistema de coordenadas jado al solido
rgido en funcion de los angulos de Tait-Bryan y su derivada, basta con multiplicar por la izquierda
ambos miembros por la inversa de dicha matriz. Por tanto, el vector velocidad angular en la base B
viene dado por
_
_
_
p
q
r
_
_
_
=
_
_
1 0 sin
0 cos sin cos
0 sin cos cos
_
_
_
_
_

_
_
_
. (6.13)
6.2. Traslacion del quadrotor
Si ahora se quiere analizar el movimiento de traslacion del quadrotor, hay que encontrar las com-
ponentes de la velocidad V
I
en la referencia inercial I. Esta velocidad se relaciona con V
B
(expresada
en la referencia asociada al quadrotor B) por
V
I
= R
I
V
B

_
_
_
u
v
w
_
_
_
= R
I
_
_
_
u
L
v
L
w
L
_
_
_
. (6.14)
26 6.2. Traslacion del quadrotor
Para relacionar la posicion del origen de la base B respecto al origen de referencia inercial con su
velocidad, se recurre a la velocidad expresada en esta misma base, con lo que quedan relacionadas de
forma sencilla como

= V
I
. (6.15)
Captulo 7
Calculo de los tensores de inercia
7.1. Tensor de inercia del rotor
Cada uno de los cuatro rotores se van a modelar como un disco de altura h
R
y diametro d
R
y
masa m
R
. De este modo el tensor de inercia respecto a su centro de masas asociado al rotor queda,
considerando como eje z el que dene el sentido axial,
J
R
=
1
4
m
R
_

_
d
2
R
4
+
h
2
R
3
0 0
0
d
2
R
4
+
h
2
R
3
0
0 0
d
2
R
2
_

_ . (7.1)
7.2. Tensor de inercia de la estructura
A continuacion, se va a analizar la estructura del quadrotor, que como se ha visto en la gura 4.1 de
la pagina 17, cuenta con unos prismas cuadrados centrales: uno superior de dimensiones l
Psup1
, l
Psup1
y
l
Psup3
y otro inferior de dimensiones l
Pinf1
, l
Pinf1
y l
Pinf3
con masas m
Psup
y m
Pinf
respectivamente.
De los anteriores salen cuatro perles de aluminio cuadrados de lado a, espesor e y densidad
Al
,
otorgandole un diametro total a la aeronave (sin tener en cuenta las helices) l. Los cilindros que alojan
los rotores estan situados en los extremos de la misma, con un diametro exterior d
CIL
, una altura h
R
y diametro interior d
R
.
Por simplicidad en el modelo se va a considerar el centro de gravedad de la aeronave en el punto
medio de la cruceta formada por los dos perles. Teniendo en cuenta esta premisa, la inercia de la
estructura se calcula por composicion de la inercia de las formas geometricas basicas que la componen
respecto a este punto, del siguiente modo:
Cilindros: La inercia respecto a su centro de masas es
J
xx
=
1
8
m
CIL
1
6
(3d
2
CIL
+ 3d
2
R
+ 4l
2
R
)
J
yy
=
1
8
m
CIL
1
6
(3d
2
CIL
+ 3d
2
R
+ 4l
2
R
J
zz
=
1
8
m
CIL
d
2
CIL
2
,
(7.2)
siendo el resto de terminos nulos.
Teniendo en cuenta que la posicion de cada uno respecto al centro de gravedad es
28 7.2. Tensor de inercia de la estructura
d
N
=
_
_
_
ld
CIL
2
0
a+h
R
2
_
_
_
, d
S
=
_
_
_

ld
CIL
2
0
a+h
R
2
_
_
_
, (7.3)
d
E
=
_
_
_
0

ld
CIL
2
a+h
R
2
_
_
_
y d
O
=
_
_
_
0
ld
CIL
2
a+h
R
2
_
_
_
, (7.4)
se puede obtener el tensor de inercia respecto al centro de gravedad de los cilindros aplicando
el teorema de Steiner (seccion 5.1.3) y el principio de superposicion siendo todos los terminos
nulos salvo los elementos diagonales, lo que da lugar a
J
xx
=
1
12
m
CIL
(3d
2
CIL
+ 3d
2
R
+ 6(a +h
R
)
2
+
+ 6((l d
2
CIL
+ (a +h
R
)
2
) + 4l
2
R
) ,
J
yy
= I
xx
y
J
zz
=
1
2
m
CIL
(2(l d
CIL
)
2
+d
2
CIL
)c .
(7.5)
Perles: La inercia respecto a su centro de masas considerando el eje x normal a la seccion del
perl es
J
xx
=
1
6

Al
l(a
4
(a 2e)
4
) ,
J
yy
=
1
3

Al
le(a e)(2a
2
4ae + 4e
2
+l
2
) , (7.6)
J
zz
=
1
3

Al
le(a e)(2a
2
4ae + 4e
2
+l
2
) ,
siendo el resto de terminos del tensor nulos.
En el caso del perl cuya seccion transversal es normal al eje y, el tensor es el mismo solo que
intercambiando los terminos I
xx
y I
yy
. Ademas de esto dado que en la interseccion hay que cortar
uno de los perles (el que esta alineado con el eje y), hay que restar la inercia correspondiente
a esta, con lo que se obtiene
J
xx
=
1
3

Al
ae(3a
3
7a
2
e + 8ae
2
4e
3
) ,
J
yy
=
1
6

Al
a(a
4
(a 2e)
4
) y (7.7)
J
zz
=
1
3

Al
ae(3a
3
7a
2
e + 8ae
2
4e
3
) .
El tensor de inercia total de los perles tras aplicar el principio de superposicion queda
J
xx
=
1
3

Al
e(3a
4
+a
3
(7e + 6l) 2a
2
e(4e + 9l)
el(12e
2
+l
2
) +a(4e
3
+ 24e
2
l +l
3
)) ,
J
yy
=
1
3

Al
e(4a
4
6a
3
(2e +l) + 2a
2
e(8e + 9l)+
+el(12e
2
+l
2
) a(8e
3
+ 24e
2
l +l
3
)) y (7.8)
J
zz
=
1
3

Al
e(a(3a
3
+ 7a
2
e 8ae
2
+ 4e
3
)+
+ 2(a e)l(2a
2
4ae + 4e
2
+l
2
)) ,
7. Calculo de los tensores de inercia 29
siendo el resto de terminos del tensor nulos.
(7.9)
Prismas centrales: La inercia respecto a su centro de masas de un prisma de base cuadrada es
J
xx
=
1
12
m
PRI
(l
2
1
+l
2
3
) ,
J
yy
=
1
12
m
PRI
(l
2
1
+l
2
3
) y (7.10)
J
zz
=
1
6
m
PRI
l
2
1
,
siendo el resto de terminos del tensor nulos.
Si ahora se obtienen los tensores de inercia de los prismas respecto al centro de gravedad de la
estructura aplicando el teorema de Steiner, resulta
J
xx
=
1
12
m
PRI
(l
2
Psup1
+l
2
Psup3
+
1
4
(a +l
Psup3
)
2
) ,
J
yy
=
1
12
m
PRI
(l
2
Psup1
+l
2
Psup3
+
1
4
(a +l
Psup3
)
2
)) , (7.11)
J
zz
=
1
6
m
PRI
l
2
Psup1
,
J
xx
=
1
12
m
PRI
(l
2
Pinf1
+l
2
Pinf3
+
1
4
(a +l
Pinf3
)
2
)) ,
J
yy
=
1
12
m
PRI
(l
2
Pinf1
+l
2
Pinf3
+
1
4
(a +l
Pinf3
)
2
)) y (7.12)
J
zz
=
1
6
m
PRI
l
2
Pinf1
.
A partir de todos estos tensores calculados, se puede obtener el momento de inercia de toda la
estructura respecto al centro de gravedad del quadrotor, dada por
J
Exx
=
1
12
(12a
4
e
Al
+ 28a
3
e
2
32a
2
e
3

Al
+ 16ae
4

Al
+ 24a
3
el
Al

72a
2
e
2
l
Al
+ 96ae
3
l
Al
48e
4
l
Al
+ 4ael
3

Al
4e
2
l
3

Al
+
+m
CIL
(24ld
CIL
+ 15d
2
CIL
+ 3d
2
R
+ 48ah
R
+ 28h
2
R
)+ (7.13)
+ 3m
Pinf
(a + 4l
2
Pinf1
+ 5l
2
Pinf3
) +m
Psup
(3a + 12l
2
Psup1
+
+ 15l
2
Psup3
) +m
R
(3d
2
R
+ 4h
2
R
)) ,
J
Eyy
=
1
12
(16a
4
e
Al
+ 48a
3
e
2

Al
64a
2
e
3

Al
+ 32ae
4

Al
+ 24a
3
el
Al

72a
2
e
2
l
Al
+ 96ae
3
l
Al
48e
4
l
Al
+ 4ael
3

Al
4e
2
l
3

Al
+
+m
CIL
(24a
2
+ 12l
2
24ld
CIL
+ 15d
2
CIL
+ 3d
2
R
+ 48ah
R
+ 28h
2
R
)+ (7.14)
+ 3m
Pinf
(a + 4l
2
Pinf1
+ 5l
2
Pinf3
)+
+m
Psup
(3a + 12l
2
Psup1
+ 15l
2
Psup3
) +m
R
(3d
2
R
+ 4h
2
R
)) ,
J
Ezz
=
1
6
(2e(a(3a
3
+ 7a
2
e 8ae
2
+ 4e
3
)+
+ 2(a e)l(2a
2
4ae + 4e
2
+l
2
))
Al
+ 6(l d
CIL
)
2
m
CIL
+ (7.15)
+ 3(2(l d
CIL
)
2
+d
2
CIL
)m
CIL
+
+l
2
Pinf1
m
Pinf
+l
2
Psup1
m
Psup
+ 3d
2
R
m
R
) .
Captulo 8
Aplicaci on de los teoremas
vectoriales
8.1. Teoremas vectoriales en el rotor
Al estar su centro de masas jado en cuanto a desplazamientos se desprecia el termino del torsor
de inercia relativo a las fuerzas (de sustentacion, de friccion y gravitatoria), pudiendo suponerse todas
estas aplicadas sobre la estructura como fuerzas de enlace de la misma. Al analizar la derivada en
base movil de la cantidad de movimiento del disco del rotor que gira a una velocidad
i
respecto a la
estructura obtenemos
J
R

i
+ J
R

i
=
R
, (8.1)
siendo la velocidad angular entre el rotor y la estructura de cada rotor

i
=
_
_
_
0
0

i
_
_
_
. (8.2)
El vector de momentos resultantes es la suma de los momentos actuantes: el momento transmitido
al eje,
M
, y el momento de arrastre del rotor
T
. Queda por tanto

R
=
M
+
T
(8.3)

R
=
M
k
T

i
|
i
|e
3
(8.4)
Despejando de la expresion 8.4 el momento transmitido al eje e incluyendolo en la ecuacion 8.1
obtenemos

Mi
= J
R

i
+ J
R

i
+k
T

i
|
i
|e
3
, (8.5)
expresion en la que el primer termino es el momento producido por la variacion de la velocidad
angular del rotor, el segundo es el llamado efecto giroscopico y el tercero es el momento aerodinamico
del motor. Este sera el momento de enlace transmitido a la estructura.
Tanto en la ecuacion 8.4 como en 8.5 no se ha incluido
2
i
para mantener el signo seg un el sentido
de rotacion. La razon para esto es que, como se aprecia en la gura 4.2 los rotores 1 y 2 giran en
sentido negativo y 3 y 4 en sentido positivo.
32 8.2. Teoremas vectoriales en la estructura
8.2. Teoremas vectoriales en la estructura
Aplicando las ecuaciones de Newton-Euler a la estructura obtenemos
_
mI
3x3
0
0 J
E
__

V

_
+
_
mV
J
E

_
=
_
F
E

E
_
. (8.6)
Se van a analizar las fuerzas y momentos externos que act uan sobre la estructura de forma analoga
a lo hecho con el rotor, es decir, se van a hallar los terminos F y de la ecuacion 8.6. Hay que tener
en cuenta todos los momentos de enlace con los cuatro rotores y los momentos de rozamiento viscoso
consecuencia de las rotaciones. En cuanto a las fuerzas aplicadas sobre la estructura estan la fuerza
de la gravedad que no crea momento, y las fuerzas de sustentacion de los rotores, cuya diferencia de
magnitud s crea un momento. Finalmente estan presentes las fuerzas viscosas consecuencia de los
desplazamientos. De este modo, se llega a

E
=
Aerod
+
F
+
4

i=1
(J
R

i
+ J
R

i
+k
T

i
|
i
|e
3
) , (8.7)
F
E
= F
Aerod
+
4

i=1
(F
i
) m
qr
ge
3
, (8.8)
siendo el termino tau
F

F
=
4

i=1
F
i
d
i
=
_
_
_
(l d
CIL
)(F
4
F
3
)/2
(l d
CIL
)(F
2
F
1
)/2
0
_
_
_
. (8.9)
La fuerza de sustentacion F
i
no es perfectamente vertical [4], y viene dada por una expresion del
tipo
F
i
= b
2
i
_
_
_
sin a
1si
cos a
1si
sin b
1si
cos b
1si
cos a
1si
_
_
_
(8.10)
y relacionada con el efecto del apping [4].
No obstante, se va a considerar esta desviacion como una perturbacion, dada la complejidad de calculo
y la escasa inuencia que tiene en el modelado. As siendo a
1si
=0

y b
1si
=0

, todos los miembros de


la ecuacion 8.10 pasan a ser constantes, excepto
i
. El resultado es que F
i
queda como una funcion
del tipo
F
i
= b
2
i
e
3
. (8.11)
Todos los terminos de las ecuaciones 8.7 y 8.8 son conocidos, excepto las fuerzas y momentos
aerodinamicos. La mayora de la bibliografa desprecia estos terminos tomandolos como simples per-
turbaciones [1], pero esta suposicion limita ciertos conceptos como por ejemplo la velocidad lmite
de la aeronave, por ello en la seccion 9 se hace una aproximacion un tanto burda a partir de ciertas
simplicaciones.
Captulo 9
Fuerzas y momentos aerodinamicos
En esta seccion se pretende encontrar las fuerzas aerodinamicas o de rozamiento con el aire en los
movimientos de la aeronave durante sus maniobras. Para referirse a estas, se emplea el subndice D
(del ingles drag). Todos los calculos derivan de lo estudiado en la seccion 5.2.
Como ya se ha visto en las ecuaciones 5.14 y 5.15 todas las fuerzas dependeran del cuadrado
de la velocidad lineal en traslaciones o angular en rotaciones. Por otro lado, para el calculo de las
fuerzas asociadas a las traslaciones y los momentos asociados a rotaciones se supone que se cumple el
fenomeno de superposicion y se analizaran por separado los esfuerzos en cada uno de los ejes.
Con el objetivo de simplicar los calculos que se realizaran, se aproxima la geometra central a una
similar. Para el desplazamiento en el eje z y los momentos se considera que es un prisma de altura h

P
y lado l

siendo estos
h

P
=l
Psup3
+a +l
Pinf3
, (9.1)
l

P
=max(l
Psup1
, l
Pinf1
) . (9.2)
Por otro lado las fuerzas aerodinamicas se van a referir a la base B, y por ello su expresion en la
referencia inercial quedara
F
DxI
=F

Dx
(, , , F
DxB
, F
DyB
, F
DzB
)
F
DxI
=cos cos F
DxB
+ (cos sin + cos sin sin )F
DyB
+
+ (sin sin + cos cos sin )F
DzB
F
DyI
=F

Dy
(, , , F
DxB
, F
DyB
, F
DzB
) (9.3)
F
DyI
=sin cos F
DxB
+ (cos cos + sin sin sin )F
DyB
+
(sin cos + cos sin sin )F
DzB
F
DzI
=F

Dz
(, , F
Dx
, F
Dy
, F
Dz
)
F
DzI
=sin F
DxB
+ cos sin F
DyB
+ cos cos F
DzB
9.1. Fuerzas asociadas a traslaciones
El calculo de la fuerza de arrastre se centra en hallar el area y el coeciente de arrastre de la
ecuacion (5.14). Para determinar el area a tener en cuenta se acude al principio del captulo 4. En
el caso de los desplazamientos en los ejes x e y, esta sera el alzado de la de la gura 4.1. Del mismo
modo, en el caso de los desplazamientos en el eje z, el area a tener en cuenta sera la planta de la gura
4.1.
Como la estructura se congura en diferentes elementos geometricos tales como los prismas cen-
trales, los perles o los rotores, y cada uno tiene diferente coeciente de arrastre, se realizara una
ponderacion en areas de los mismos. As, la fuerza de rozamiento en cada uno de los ejes es
34 9.2. Momentos asociados a rotaciones
F
Dx
=
1
2

_
2d
CIL
h
R
C
D
CIL
+l
Psup1
l
Psup3
C
D
Psup
+
l
Pinf1
l
Pinf3
C
D
Pinf
+l ac
D
perfil

V
2
x
,
F
Dy
=
1
2

_
2d
CIL
h
R
C
D
CIL
+l
Psup1
l
Psup3
C
D
Psup
+
l
Pinf1
l
Pinf3
C
D
Pinf
+l ac
D
perfil

V
2
y
y
F
Dz
=
1
2

_
d
2
CIL
C

D
CIL
+ (l

P
)
2
C
D
P

+ 2a(l l

P
2d
CIL
)C
D
perfil

V
2
z
.
(9.4)
Por simplicidad, en adelante los momentos aerodinamicos se denotaran
F
Dx
= C
1
u|u| ,
F
Dy
= C
2
v|v| ,
F
Dz
= C
3
w|w| .
(9.5)
Para la estimacion de los coecientes de arrastre C
1
, C
1
y C
1
se debe recurrir a tablas de coecientes
aerodinamicos a bajos n umeros de Reynolds de las geometras elementales mencionadas [2], por lo que,
suponiendo los coecientes
C
D
CIL
= 0,9 ,
C
D
Psup
= 2,1 ,
C
D
Pinf
= 2,1 ,
C
D
perfil
= 2,1 ,
(9.6)
se van a aproximar por
C
1
= 0,007 ,
C
2
= 0,007 ,
C
3
= 0,009 .
(9.7)
9.2. Momentos asociados a rotaciones
Para el calculo de los momentos se procede de forma similar al anterior caso, teniendo en cuenta la
ecuacion 5.16. Si bien dicha ecuacion es correcta, tanto el coeciente de arrastre como el area varan
con el radio para el caso de la estructura, y por ello sera necesario realizar la integral a trozos

D
=
1
2

2
_
max(e
Psup
, e
Pinf
)C
DP
_ 1
2
l

P
0
r
3
dr+
+e
perfil
C
Dperfil
_ l
2
d
CIL
1
2
l

P
r
3
dr+
+e
rotor
C
Drotor
_ l
2
l
2
d
CIL
r
3
dr
_
,
(9.8)
con e
i
el espesor de cada elemento de la estructura visto en alzado. Al igual que en el caso de las
fuerzas, hay que calcular areas y coecientes de arrastre.
9. Fuerzas y momentos aerodinamicos 35
En el primer miembro de la ecuacion 9.8, el correspondiente a los prismas, presenta problemas en
el calculo al ser una geometra compleja, tanto en la integracion como en el calculo del coeciente de
arrastre. Dada su complejidad y su baja inuencia (las velocidades lineales causadas por una rotacion
tan cerca del eje son despreciables) se ignora este termino, por lo que la solucion de las integrales
conduce a

D
=
1
8

2
_
A
perfil
C
Dperfil
_
_
d
l
2
_
4
(l

P
)
4
_
+
+A
rotor
C
Drotor
_
l
4

1
16
(l 2d
CIL
)
4
__
,
(9.9)
donde A
perfil
se reere a la parte vistapor el ujo de aire del perl, y as A
perfil
y A
rotor
quedan
como
A
perfil
= a
_
l
2
d
CIL
l

P
_
,
A
rotor
=
1
4
d
2
CIL
.
(9.10)
Por simplicidad, en adelante los momentos aerodinamicos se denotaran

Dx
= C
4
p|p| ,

Dy
= C
5
q|q| ,

Dz
= C
6
r|r| .
(9.11)
Para la estimacion de los coecientes de arrastre C
4
, C
5
y C
6
se debe recurrir a tablas de coecientes
aerodinamicos a bajos n umeros de Reynolds de las geometras elementales mencionadas [2], por lo que,
suponiendo los coecientes
C
Drotor
= 0,9 y
C
D
perfil
= 2,1 ,
(9.12)
se aproxima por
C
4
= 2,610
5
,
C
5
= 2,610
5
,
C
6
= 9,610
5
.
(9.13)
Captulo 10
Ecuaciones de estado
Llegados a este punto ya esta modelado por completo el sistema fsico, si bien para continuar el
analisis conviene expresar las anteriores ecuaciones en una unica expresion conocida como las ecuacio-
nes de estados, muy utilizadas en teora de control, que son un conjunto de ecuaciones diferenciales de
primer orden que describen por completo la dinamica del sistema. En su forma general, las ecuaciones
del espacio de estados de un sistema no lineal son
x(t) = f[x(t), u(t), t]
y(t) = g[x(t), u(t), t] .
(10.1)
10.1. Vector de estados
El vector de estados que se va a denir para nuestro sistema es
x(t) = {x, y, z, u, v, w, , , , p, q, r}
T
, (10.2)
y las ecuaciones de estado se van a obtener agrupando las expresiones que relacionan la posicion con
la velocidad (ecuacion 6.15), la aceleracion con las fuerzas (ecuacion 8.8), los angulos de Tait-Bryan
con la velocidad angular expresada en la referencia asociada al quadrotor (ecuacion 6.11), las que
relacionan esta con los momentos (mostradas en la expresion 8.7) y despejando de la ecuacion 8.6.
Si se tiene en cuenta la ecuacion 8.11 se ve que nuestro sistema tiene 8 entradas de control:
1
,

2
,
3
y
4
y sus correspondientes derivadas. Estas velocidades angulares se van a emplear a partir
de ahora en valor absoluto, denotandose
c i
y teniendo en cuenta el signo en las expresiones
4

i=1

i
=
c 1

c 2
+
c 3
+
c 4
, (10.3)
4

i=1

i
|
i
| = (
c 1
)
2
(
c 2
)
2
+ (
c 3
)
2
+ (
c 4
)
2
, (10.4)
4

i=1

2
i
=
2
c 1
+
2
c 2
+
2
c 3
+
2
c 4
, (10.5)
y las aceleraciones angulares se denotaran
i
pudiendo ser tanto positivas como negativas.
38 10.1. Vector de estados
Por simplicar la notacion a la hora de referirse a los momentos creados por las fuerzas, se emplea
la constante
k
MF
=
b(l d
CIL
)
2
(10.6)
As, nalmente se obtienen las ecuaciones del sistema
x = u ,
y = v ,
z = w ,
u =
b
m
(cos sin cos + sin sin )
4

i=1

2
i

F
DxI
m
,
v =
b
m
(sin sin cos cos sin )
4

i=1

2
i

F
DyI
m
,
w = g +
b
m
cos cos
4

i=1

2
i

F
DzI
m

= p +q sin tan +r cos tan , (10.7)

= q cos r sin ,

= sec (r cos +q sin ) ,


p =
J
Eyy
J
Ezz
J
Exx
q r +
J
Rzz
J
Exx
q
4

i=1

i
+
k
MF
(
2
4

2
3
)
J
Exx


Dx
J
Exx
,
q =
J
Ezz
J
Exx
J
Eyy
p r
J
Rzz
J
Eyy
p
4

i=1

i
+
k
MF
(
2
2

2
1
)
J
Eyy


Dy
J
Eyy
,
r =
J
Exx
J
Eyy
J
Ezz
p q +
J
Rzz
J
Ezz
4

i=1

i
+
k
T
J
Ezz
4

i=1

i
|
i
|

Dz
J
Ezz
.
Por otro lado, se denen el vector de entrada
u(t) = {
c 1
,
c 2
,
c 3
,
c 4
,
1
,
2
,
3
,
4
}
T
(10.8)
y el vector de salida
y(t) = {u, v, w, , , }
T
(10.9)
de nuestra representacion en el espacio de estados del sistema, la cual cuenta con 10 grados de libertad
(6 de la posicion y orientacion espacial del quadrotor mas los 4 grados de libertad de posicion de los
rotores). En principio, de acuerdo con esto el sistema debera tener 20 estados, pero para reducir
su n umero se han considerado las aceleraciones angulares como una entrada sin relacion con las
velocidades, dejando as a estas fuera del modelo.
(10.10)
Captulo 11
Linealizaci on
Para poder alcanzar las matrices de transferencia, es necesario en primer lugar obtener una reprsen-
tacion lineal en el espacio de estados del sistema. Un modelo de espacio de estados lineal tiene la forma
general
_
x(t) = A(t) x(t) +B(t) u(t)
y(t) = C(t) x(t) +D(t) u(t)
, (11.1)
donde x(t) es el vector de estados, y(t) es llamado vector de salida, u(t) es llamado vector de entradas
o de control, A(t) es la matriz de estados, B(t) es la matriz de entrada, C(t) es la matriz de salida y
D(t) es la matriz de transmision directa, generalmente nula
1
.
Para llegar a dicha representacion, se linealiza el sistema en torno a un punto de operacion [8]. Para
peque nas desviaciones respecto al punto de operacion, el sistema linealizado tendra un comportamiento
similar al original.
11.1. Linealizaci on en torno a un punto de equilibrio
Para la linealizacion en torno al punto de equilibrio se parte de la ecuacion 11.1. Considerando
peque nos desplazamientos en torno a un punto nominal (x
0
(t), u
0
(t)) de tal forma que
x(t) = x
0
(t) +x(t)
u(t) = u
0
(t) +u(t)
, (11.2)
siempre que se cumpla que (x)
i
<< x y (u)
i
<< u, para i > 1 y suponiendo una f(t) y una g(t)
lo sucientemente suaves para tener una representacion en series de Taylor se obtiene
f[x(t), u(t), t] = f[x
0
(t), u
0
(t), t] +f
x
x(t) +f
u
u(t) +O(||x||
2
) +O(||u||
2
)
g[x(t), u(t), t] = g[x
0
(t), u
0
(t), t] +g
x
x(t) +g
u
u(t) +O(||x||
2
) +O(||u||
2
)
. (11.3)
En la ecuacion anterior x, u, f y g son vectores y los terminos f
x
(t), f
u
(t), g
x
(t) y g
u
(t) son
matrices Jacobianas de las dimensiones apropiadas con la forma
f
x
(t) =
f
x

x0,u0
f
u
(t) =
f
u

x0,u0
g
x
(t) =
g
x

x0,u0
g
u
(t) =
g
u

x0,u0
. (11.4)
1
En la ecuacion 11.1 se ha obviado la notacion vectorial. En adelante se conservara la notacion de este modo por
seguir la empleada en teora de control.
40 11.2. Matrices jacobianas
As, de las ecuaciones 11.3 se obtienen las ecuaciones linealizadas

x = Ax +Bu

y = Cx +Du
. (11.5)
11.2. Matrices jacobianas
A partir de lo denido en la ecuacion 11.4, se van a calcular las matrices jacobianas de las ecuaciones
de estado 10.7 respecto al vector de estados, al vector de entradas y al vector de salidas.
A(t): Al tener 12 estados (ecuacion 10.2) la matriz de estados tiene es de dimension R
12x12
, dando
lugar a una matriz de bastante complejidad y de la forma
_

_
0 0 0 1 0 0 0 0 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 0 0
0 0 0 a
4,4
a
4,5
a
4,6
a
4,7
a
4,8
a
4,9
0 0 0
0 0 0 a
5,4
a
5,5
a
5,6
a
5,7
a
5,8
a
5,9
0 0 0
0 0 0 a
6,4
a
6,5
a
6,6
a
6,7
a
6,8
0 0 0 0
0 0 0 0 0 0 a
7,7
a
7,8
0 1 a
7,11
a
7,12
0 0 0 0 0 0 a
8,7
a
8,8
0 0 a
8,11
a
8,12
0 0 0 0 0 0 a
9,7
a
9,8
0 0 a
9,11
a
9,12
0 0 0 0 0 0 0 0 0 a
10,10
a
10,11
0
0 0 0 0 0 0 0 0 0 a
11,10
a
11,11
0
0 0 0 0 0 0 0 0 0 0 a
12,11
a
12,12
_

_
, (11.6)
donde los terminos a
i,j
son
a
4,4
=
2
m
|u
0
| cos
0
cos
0
C
1
a
4,5
=
2
m
|v
0
|(cos
0
sin
0
+ cos
0
sin
0
sin
0
)C
2
a
4,6
=
2
m
|w
0
|(sin
0
sin
0
+ cos
0
cos
0
sin
0
)C
3
a
4,7
=
b
m
(cos
0
sin
0
cos
0
sin
0
sin
0
)(
2
c 1 0
+
2
c 2 0
+
2
c 3 0
+
2
c 4 0
)
a
4,8
=
b
m
cos
0
cos
0
cos
0
(
2
c 1 0
+
2
2
+
2
3
+
2
4
)
a
4,9
=
b
m
(cos
0
sin
0
cos
0
sin
0
sin
0
)(
2
c 1 0
+
2
c 2 0
+
c 3 0
+
2
4
)
a
5,4
=
2
m
|u
0
| cos
0
sin
0
C
1
a
5,5
=
2
m
|v
0
|(cos
0
cos
0
+ sin
0
sin
0
sin
0
)C
2
a
5,6
=
2
m
|w
0
|(cos
0
sin
0
+ cos
0
sin
0
sin
0
)C
3
a
5,7
=
b
m
(cos
0
cos
0
+ sin
0
sin
0
sin
0
)(
2
c 1 0
+
2
c 2 0
+
2
c 3 0
+
2
c 4 0
)
a
5,8
=
b
m
cos
0
cos
0
sin
0
(
2
c 1 0
+
c 2 0
+
c 3 0
+
2
c 4 0
)
a
5,9
=
b
m
(sin
0
sin
0
+ cos
0
cos
0
sin
0
)(
2
c 1 0
+
2
c 2 0
+
2
c 3 0
+
2
c 4 0
)
11. Linealizacion 41
a
6,4
=
2
m
|u
0
| sin
0
C
1
a
6,5
=
2
m
|v
0
| cos
0
sin
0
C
2
a
6,6
=
2
m
|w
0
| cos
0
cos
0
C
3
a
6,7
=
b
m
cos
0
sin
0
(
2
c 1 0
+
2
c 2 0
+
2
c 3 0
+
2
4
)
a
6,8
=
b
m
cos
0
sin
0
(
2
c 1 0
+
2
c 2 0
+
2
c 3 0
+
2
4
)
a
7,7
= (q
0
cos
0
r
0
sin
0
) tan
0
a
7,8
= sec
2
0
(r
0
cos
0
+q
0
sin
0
)
a
7,11
= sin
0
tan
0
a
7,12
= cos
0
tan
0
a
8,7
= r
0
cos
0
q
0
sin
0
a
8,11
= cos
0
a
8,12
= sin
0
a
9,7
= sec
0
(q
0
cos
0
r
0
sin
0
)
a
9,8
= sec
0
(r
0
cos
0
+q
0
sin
0
) tan
0
a
9,11
= sec
0
sin
0
a
9,12
= cos
0
sec
0
a
10,10
=
2|p
0
|C
4
J
Exx
a
10,11
=
J
Rzz
(
c 1 0

c 2 0
+
c 3 0
+
c 4 0
)
J
Exx
a
11,10
=
J
Rzz
(
c 1 0

c 2 0
+
c 3 0
+
c 4 0
)
J
Eyy
a
11,11
=
2|q
0
|C
4
J
Eyy
a
12,11
=
J
Rzz
(
1 0

2 0
+
3 0
+
4 0
)
J
Ezz
a
12,12
=
2|r
0
|C
4
J
Ezz
.
B(t): Al tener aparecer 8 entradas (ecuacion 10.8) la matriz de entradas es de dimension R
12x8
,
dando lugar a una matriz de la forma
42 11.2. Matrices jacobianas
_

_
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
b
4,1
b
4,2
b
4,3
b
4,4
0 0 0 0
b
5,1
b
5,2
b
5,3
b
5,4
0 0 0 0
b
6,1
b
6,2
b
6,3
b
6,4
0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
b
10,1
b
10,2
b
10,3
b
10,4
0 0 0 0
b
11,1
b
11,2
b
11,3
b
11,4
0 0 0 0
b
12,1
b
12,2
b
12,3
b
12,4
b
12,5
b
12,6
b
12,7
b
12,8
_

_
, (11.7)
donde los terminos b
i,j
son
b
4,1
=
2b
m
(sin
0
sin
0
+ cos
0
cos
0
sin
0
)
c 1 0
b
4,2
=
2b
m
(sin
0
sin
0
+ cos
0
cos
0
sin
0
)
c 2 0
)
b
4,3
=
2b
m
(sin
0
sin
0
+ cos
0
cos
0
sin
0
)
c 3 0
)
b
4,4
=
2b
m
(sin
0
sin
0
+ cos
0
cos
0
sin
0
)
c 4 0
)
b
5,1
=
2b
m
(cos
0
sin
0
+ cos
0
sin
0
sin
0
)
c 1 0
)
b
5,2
=
2b
m
(cos
0
sin
0
+ cos
0
sin
0
sin
0
)
c 2 0
)
b
5,3
=
2b
m
(cos
0
sin
0
+ cos
0
sin
0
sin
0
)
c 3 0
)
b
5,4
=
2b
m
(cos
0
sin
0
+ cos
0
sin
0
sin
0
)
c 4 0
)
b
6,1
=
2b
m
cos
0
cos
0

c 1 0
b
6,2
=
2b
m
cos
0
cos
0

c 2 0
b
6,3
=
2b
m
cos
0
cos
0

c 3 0
b
6,4
=
2b
m
cos
0
cos
0

c 4 0
b
10,1
=
q
0
J
R
J
Exx
b
10,2
=
q
0
J
R
J
Exx
b
10,3
=
q
0
J
R
J
Exx

2 k
MF
J
Exx

c 3 0
b
10,4
=
q
0
J
R
J
Exx
+
2 k
MF
J
Exx

c 4 0
11. Linealizacion 43
b
11,1
=
p
0
J
Rzz
J
Eyy

2 k
MF
J
Eyy

c 1 0
b
11,2
=
p
0
J
Rzz
J
Eyy
+
2 k
MF
J
Eyy

c 2 0
b
11,3
=
p
0
J
Rzz
J
Eyy
b
11,4
=
p
0
J
Rzz
J
Eyy
b
12,1
=
2k
T

c 1 0
J
Ezz

q
0
J
Rzz
J
Ezz
b
12,2
=
2k
T

c 2 0
J
Ezz

q
0
J
Rzz
J
Ezz
b
12,3
=
2k
T

c 3 0
J
Ezz
+
q
0
J
Rzz
J
Ezz
b
12,4
=
2k
T

c 4 0
J
Ezz
+
q
0
J
Rzz
J
Ezz
b
12,5
=
q
0
J
R
J
Ezz
b
12,6
=
q
0
J
R
J
Ezz
b
12,7
=
q
0
J
R
J
Ezz
b
12,8
=
q
0
J
R
J
Ezz
.
C(t): Al aparecer 6 salidas (ecuaci on 10.9) la matriz de salida es de dimension R
6x12
, dando lugar a
_

_
1 0 0 0 0 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 1 0 0 0 0 0
0 0 0 0 0 0 0 1 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0
_

_
. (11.8)
11.3. Obtencion de la transformada de Laplace
A partir de las ecuaciones de estado del sistema linealizado en torno a un punto es posible realizar
la transformada de Laplace para obtener la funcion de transferencia del sistema. Dadas las ecuaciones
de estado de la ecuacion 11.1 y aplicando la transformada de Laplace se tiene que
s X(s) x(0) = A X(s) +B U(s) , (11.9)
Y (s) = C X(s) . (11.10)
44 11.4. Punto de equilibrio
Despejando X(s) de la ecuacion 11.9 y sustituyendolo en 11.10 resulta, expresado en forma de
funcion de transferencia denida para condiciones iniciales nulas
Y (s)
U(s)
= P(s) = C(sI A)
1
B , (11.11)
que tambien se puede expresar como
P(s) =
C Adj(sI A)
T
B
Det(sI A)
. (11.12)
(11.13)
La ecuacion 11.12 se denomina la funcion de transferencia mnima, ya que en ella se cancelan de
polos y ceros hasta que numerador y denominador son primos entre s. Obviamente para cada una de
las 8 entradas habra 6 funciones de transferencia, una por cada salida del sistema por tratarse de un
sistema MIMO, del ingles Multiple Input, Multiple Output.
11.4. Punto de equilibrio
Para calcular los puntos de equilibrio del sistema hay que de buscar los valores de las variables de
estado que hacen nulo el vector de estados. Para lograr esto se iguala el vector de estados a cero y se
resuelve el sistema de ecuaciones. Una vez hecho esto se obtiene el conjunto de soluciones o conjunto
de puntos de equilibrio
x
eq
= x
0
x
0
R , y
eq
= y
0
y
0
R , z
eq
= z
0
z
0
R ,
u
eq
= 0 , v
eq
= 0 , w
eq
= 0 , (11.14)

eq
= 2n n N ,
eq
= 2n n N ,
eq
=
0

0
R ,
p
eq
= 0 , q
eq
= 0 , r
eq
= 0 ,
y las velocidades y aceleraciones angulares de entrada que dan lugar a estos puntos

c 1
=
c 2
=
c 3
=
c 4
=
1
2
_
g m
b
,

1
=
2
=
3
=
4
= 0 .
(11.15)
11.5. Matriz de transferencia
Si se realiza el calculo simbolico de la matriz P(s) a partir de las matrices 11.6, 11.7 y 11.8
calculadas en la seccion 11.2 para cualquier punto de equilibrio el costo computacional es inmenso,
por ello se presenta la funcion de transferencia particularizada en el punto de equilibrio de vuelo
estacionario, es decir, con las condiciones mostradas en la ecuacion 11.14.
Analizando las funciones de transferencia de las salidas en funcion de las entradas correspondientes
y expresado el resultado en forma matricial tenemos que
2
2
En adelante, para el modelo linealizado se va a simplicar el vector de entradas unicamente a las velocidades
angulares y de este modo la matriz anterior se reduce a una R
6x4
.
11. Linealizacion 45
_

_
x(s)
y(s)
z(s)
(s)
(s)
(s)
_

_
=
_

g
3
m
b
k
MF
J
Eyy
s
4

g
3
m
b
k
MF
J
Eyy
s
4
0 0 0 0 0 0
0 0

g
3
m
b
k
MF
J
Exx
s
4

g
3
m
b
k
MF
J
Exx
s
4
0 0 0 0
g
s
2

gm
b
g
s
2

g m
b
g
s
2

g m
b
g
s
2

gm
b
0 0 0 0
0 0

g
3
m
b
k
MF
s
2
J
Exx

g
3
m
b
k
MF
s
2
J
Exx
0 0 0 0

g
3
m
b
k
MF
s
2
J
Eyy

g
3
m
b
k
MF
s
2
J
Eyy
0 0 0 0 0 0

g
3
m
b
k
T
s
2
J
Ezz

g
3
m
b
k
T
s
2
J
Ezz

g
3
m
b
k
T
s
2
J
Ezz

g
3
m
b
k
T
s
2
J
Ezz
0 0 0 0
_

_
_

c 1

c 2

c 3

c 4

4
_

_
.
(11.16)
Captulo 12
Desacoplo del sistema
Para hacer mas intuitivo para el control el sistema, se va a proceder a su desacoplo. No resultan
evidentes las relaciones existentes entre las entradas actuales (las velocidades angulares de los cuatro
rotores) y las salidas, pero es posible realizar un cambio de variable de tal manera que cada una se
corresponda con un grado de libertad, relacionando de este modo 4 entradas y 4 grados de libertad.
Las nuevas entradas de control van a estar relacionadas con el empuje vertical y los momentos de
alabeo, cabeceo y gui nada, de forma similar a como se hace en una aeronave convencional.
Empuje vertical: estara relacionado con el desplazamiento en el eje z de la base asociada a la
aeronave y es la suma del cuadrado de las velocidades angulares de los cuatro motores
U
1
=
4

i=1
(
c i
)
2
= (
c 1
)
2
+ (
c 2
)
2
+ (
c 3
)
2
+ (
c 4
)
2
. (12.1)
Alabeo: estara relacionado con el giro en el eje x en el sistema asociado a la aeronave y es la
diferencia del cuadrado de las velocidades angulares de los motores tres y cuatro
U
2
= (
c 4
)
2
(
c 3
)
2
. (12.2)
Cabeceo: estara relacionado con el giro en el eje y en el sistema asociado a la aeronave y es la
diferencia del cuadrado de las velocidades angulares de los motores uno y dos
U
3
= (
c 2
)
2
(
c 1
)
2
. (12.3)
Gui nada: estara relacionado con el giro en el eje z en el sistema asociado a la aeronave y es la
suma del cuadrado de las velocidades angulares, pero teniendo en cuenta el sentido de giro en
el signo
U
4
=
4

i=1

c i
|
c i
| = (
c 1
)
2
(
c 2
)
2
+ (
c 3
)
2
+ (
c 4
)
2
. (12.4)

Estas son las acciones de control mas comunes en la mayora de las aeronaves de estas carac-
tersticas, y facilitara el dise no del controlador. De este modo, despejando del sistema formado por
las ecuaciones anterior para obtener la relacion inversa, se obtienen cuatro soluciones al sistema. De
estas soluciones la unica cuyos terminos son todos positivos o cero es
48

c 1
=
1
2

U
1
2U
3
U
4
,

c 2
=
1
2

U
1
+ 2U
3
U
4
,

c 3
=
1
2

U
1
2U
2
+U
4
,

c 4
=
1
2

U
1
+ 2U
2
+U
4
.
(12.5)
En la ecuacion 12.5 se observa que la solucion unicamente sera real en los casos en los que el
interior de los radicales sean mayores o iguales que cero, esto da lugar a cuatro inecuaciones que van
a restringir el espacio de acciones de control posibles
U
1
2U
3
+U
4
U
1
2U
3
+U
4
U
1
2U
2
U
4
U
1
2U
2
U
4
(12.6)
(12.7)
Como puede verse, esto restringe al resto de grados de libertad es la accion de control del empuje.
Esto es evidente ya que cualquier accion que se ejecute requiere el giro de los rotores y esto se traduce
en un empuje, directamente relacionado con la accion de control U
1
. En la gura 12.1 se muestra el
espacio de trabajo en tanto por unidad respecto a la entrada de control U
1
.
Figura 12.1: Espacio de trabajo de las acciones de control desacopladas denidas en tanto por unidad
respecto a la accion de control de empuje U
1
.
Las relaciones mostradas en las ecuaciones 12.5 pueden expresarse matricialmente viendo la relacion
entre U
i
y (
c i
)
2
y realizando posteriormente la raz cuadrada de cada elemento para facilitar el calculo
(ecuacion 12.8)
12. Desacoplo del sistema 49
_

2
c 1

2
c 2

2
c 3

2
c 4
_

_
=
1
4
_

_
1 0 2 1
1 0 2 1
1 2 0 1
1 2 0 1
_

_
_

_
U
1
U
2
U
3
U
4
_

_
. (12.8)
Realizando este desacoplo se ha conseguido convertir unas entradas difcilmente entendibles a unas
de facil comprension, relacionando una entrada con una salida. Esto facilitara la labor del experto
humano a la hora del dise no del controlador borroso.
Los puntos de equilibrio en los que se puede trabajar han sido obtenidos en la seccion 11.4. A
partir de las entradas a emplear vistas en la seccion 12, elevando cada
c i
al cuadrado y haciendo la
operacion inversa a la mostrada en la ecuacion 12.8 se obtiene
_

_
U
1
U
2
U
3
U
4
_

_
=
_

_
1 1 1 1
0 0 1 1
1 1 0 0
1 1 1 1
_

_
_

_
g m
4 b
g m
4 b
g m
4 b
g m
4 b
_

_
. (12.9)
Ahora, resolviendo 12.9 se obtienen las acciones de control desacopladas que dan lugar al punto de
equilibrio desacoplado, dado por
U
1
=
g m
b
U
2
= U
3
= U
4
= 0 (12.10)
Es facil comprobar mediante las inecuaciones mostradas en 12.6 o gracamente en la gura 12.1
que este vector de acciones de control se encuentra dentro del espacio de trabajo de las acciones de
control, de hecho en el punto mas alejado de la frontera. En este punto las maximas entradas que se
pueden aplicar a las entradas de control pueden extraerse de las mismas inecuaciones y son
U
2

_

g m
2 b
,
g m
2 b

U
3

_

g m
2 b
,
g m
2 b

U
4

_

g m
b
,
g m
b

(12.11)
12.1. Matriz de desacoplo
Al tratarse de un desacoplo no lineal, nuevamente se debe proceder a linealizar la matriz de des-
acoplo del mismo modo que se ha procedido anteriormente. Si se consideran peque nos desplazamientos
en torno a un punto nominal
0
(t), y tambien que (t) es funcion de t y U(t), se tiene
(t) =
0
(t) +(t)
= f[U(t), t] = f[U
0
(t), t] +f
U
U(t) +O(||U||
2
)
, (12.12)
donde f
U
(t) es la matriz Jacobiana denominada matriz de desacoplo linealizada y denida por
f
U
(t) =
f
U

U0
, (12.13)
es decir,
f
U
(t) =
_

_
1
4

U1 02U3 0U4 0
0
1
2

U1 02U3 0U4 0

1
4

U1 02U3 0U4 0
1
4

U1 0+2U3 0U4 0
0
1
2

U1 0+2U3 0U4 0

1
4

U1 0+2U3 0U4 0
1
4

U1 02U2 0+U4 0

1
2

U1 02U2 0+U4 0
0
1
4

U1 02U2 0+U4 0
1
4

U1 0+2U2 0+U4 0
1
2

U1 0+2U2 0+U4 0
0
1
4

U1 0+2U2 0+U4 0
_

_
.
(12.14)
50 12.2. Matriz de transferencia global
Si ahora se sustituyen las acciones de control desacopladas que dan lugar al punto de equilibrio se
obtiene
f
U
(t) =
1
4
_
g m
b
_

_
1 0 2 1
1 0 2 1
1 2 0 1
1 2 0 1
_

_
. (12.15)
que como se puede observar es exactamente la matriz de desacoplo (ecuacion 12.8) multiplicada por
la constante
_
g m
b
. De este modo ya se puede relacionar U(t) con Y (t) considerando Y (t) el vector
de salida del sistema.
12.2. Matriz de transferencia global
Si se post-multiplica la matriz de desacoplo linealizada (ecuacion 12.15) a la matriz de transferencia
del sistema en el punto de equilibrio se el siguiente sistema
_

_
x(s)
y(s)
z(s)
(s)
(s)
(s)
_

_
=
1
s
2
_

_
0 0
g k
MF
J
Eyy
s
2
0
0
g k
MF
J
Exx
s
2
0 0
b
m
0 0 0
0
k
MF
J
Exx
0 0
0 0
k
MF
J
Eyy
0
0 0 0
k
T
J
Ezz
_

_
_

_
U
1
(s)
U
2
(s)
U
3
(s)
U
4
(s)
_

_
, (12.16)
que como se aprecia cuenta con un desacoplo total y permite controlar cada una de las salidas escogidas
sin repercutir en el resto de variables. Ya no va a ser considerado un sistema multivariable sino cuatro
sistemas SISO (del ingles Single Input, Single Output) que pueden controlarse con controladores
individuales.
Captulo 13
Simulaci on del modelo
En el presente captulo se va a mostrar como realizar la simulacion del modelo. Las ventajas de la
simulacion en el dise no de sistemas y su control es evidente:
A traves de un estudio de simulacion, se puede estudiar el efecto de cambios internos y externos
del sistema haciendo alteraciones en el modelo y observando los efectos de esas alteraciones en
el comportamiento del mismo.
Una observacion detallada del sistema que se esta simulando puede conducir a un mejor enten-
dimiento del sistema y por consiguiente a seguir estrategias que mejoren el comportamiento del
mismo. Cuando este es complejo, puede ayudar a entender mejor la operacion del mismo, a de-
tectar las variables mas importantes que interact uan en el y a entender mejor las interrelaciones
entre estas variables.
La tecnica de simulacion puede ser utilizada para experimentar con nuevas situaciones sobre las
cuales se tiene poca o ninguna informacion. A traves de esta experimentacion se puede anticipar
mejor a posibles resultados imprevistos.
Para la simulacion se emplea la toolbox de MATLAB Simulink. En esta, para simplicar el dia-
grama de bloques dado la complejidad del modelo, se utiliza un bloque especco para introducir de
manera sencilla y transparente el modelo en el caso no lineal, la S-function. Asimismo se trabajara con
el modelo linealizado y sus correspondientes bloques de Simulink. Sera importante comprobar las di-
ferencias existentes entre ambas simulaciones para ver si la linealizacion se ha llevado a cabo de forma
correcta.
13.1. Modelo no lineal
13.1.1. S-function
El bloque implementado mediante la S-function es, como se deca en la introduccion, el que va a
representar de manera mas el el comportamiento del modelo real. A continuacion se explica que in-
cluye la S-function del modelo del quadrotor. El programa se ha fraccionado en las guras 13.1, 13.2,
13.3, 13.4.
Cuando se trabaja con S-functions lo primero que hay que hacer es congurar la misma. Como se
ve en la gura 13.1, lneas 5 a 14, deben congurarse: el n umero de estados continuos, 12 en el sistema
bajo estudio; el n umero de estados discretos, valor que se deja a cero por no contar el modelo con
ninguno; el n umero de salidas, 6, correspondientes a la posicion y orientacion y nalmente el n umero
de entradas, 8 en este caso, 4 velocidades angulares y sus respectivas aceleraciones angulares.
52 13.1. Modelo no lineal
1 function [sys,x0,str,ts] = sfuncont qr(t,x,u,flag,xinicial,vector k)
2
3 switch flag
4 case 0
5 sys = [12, % number of continuous states
6 0, % number of discrete states
7 6, % number of outputs
8 8, % number of inputs
9 0, % reserved must be zero
10 0, % direct feedthrough flag
11 1]; % number of sample times
12 x0 = xinicial;
13 str = [];
14 ts = [0 0]; % sample time: [period, offset]
Figura 13.1: S-function correspondiente al modelo no lineal del quadrotor.
El siguiente parametro congurable es el valor de los estados iniciales, como se puede ver en la
lnea 12 de la gura 13.1, se ha dejado sin indicar y el valor de la variable (xinicial) sera pasado por
referencia (lnea 1 de la misma gura).
En las lneas 3 y 4 de la gura 13.1 se observa que el funcionamiento del codigo de una S-function
se rige por el cambio de valor de una bandera. Cuando esta vale 0, se procede a informar a Simulink
del valor de las opciones de conguracion, si bien este proceso solo se realiza al inicio de la simulacion.
Los que vienen a continuacion se repiten en cada paso de la simulacion.
Cuando la bandera toma el valor 1, se procede a la actualizacion del valor de los estados continuos.
Es en este punto de la S-function en el que se debe incluir nuestra ecuacion en el espacio de estados.
El unico elemento al que realmente atiende es al valor del vector sys (gura 13.3, lneas 11 a 22) en
el cual se dene el valor de cada estado, denotando los mismos como x(i), siendo i el valor de cada
uno de los 12 estados.
No obstante, y dada la complejidad de algunos terminos, se ha extrado por facilidad de progra-
macion y de lectura del codigo el calculo de ciertos valores fuera de este vector. Para este calculo y la
denicion del vector de estados es necesario el empleo de las constantes denidas para el modelo, por
comodidad a la hora de modicar las mismas estas se obtienen dentro de la S-function a traves de la
variable pasada por parametro vector k.
En vector k estan agrupadas: las constantes aerodinamicas de la helice (b y Kt), la masa del
quadrotor (m), la constante denida en la ecuacion 10.6 para simplicar la expresion del momento de
fuerzas (Kmf), los coecientes de las fuerzas y momentos aerodinamicos vistos en el captulo 9 (c), y
nalmente el valor de la inercia en ejes principales de la estructura y la inercia en el eje del rotor vistas
en el captulo 7 (Jex,Jey,Jez,Jrz). Como se extraen de vector k y la aceleracion de la gravedad (g)
se puede ver en las lneas 4 a 14 de la gura 13.2.
El calculo de las fuerzas y momentos aerodinamicos quedo denido en el captulo 9, ecuaciones
9.3 y 9.11. Para el calculo de las fuerzas se dene la matriz de rotacion Ri en las lneas 16 a 18. Los
c alculos mostrados en las ecuaciones mencionadas se resuelven nalmente en las lneas 19 a 27.
Como se ha dicho, en las lneas 11 a 22 de 13.3 se actualiza el vector de estados sys, pero puede
apreciarse que antes de que ocurra esto hay un condicional en las lneas 3 a 9 para el calculo del tercer
elemento de dicho vector. Su nalidad es simular una supercie de despegue para el quadrotor, mientras
la fuerza de empuje sea inferior al peso, el quadrotor no levantara el vuelo (aunque s podra variar
su posicion angular). Esto se consigue haciendo que en el caso de que el resultado del calculo de la
aceleracion en el eje z sea negativa (estado x(6), denotado az) su valor sea sustituido por 0.
No es posible simular el impacto con el suelo dado que por el comportamiento interno de la S-
function no permite variar el valor anterior de un determinado estado. Por este motivo una vez que
el quadrotor a levantado el vuelo s podra desplazarse a valores negativos del eje vertical.
13. Simulacion del modelo 53
1 case 1
2
3 %%%%%%%%%%%%%%%%%%%%%%%%% CONSTANTES %%%%%%%%%%%%%%%%%%%%%%%%%%%
4 b=vector k(1); %constante del motor (lift)
5 m=vector k(2); %masa
6 Kmf=vector k(3); %constante para el momento de fuerzas
7 Kt=vector k(4); %constante del motor (drag)
8 c=[vector k(5),vector k(6),vector k(7),vector k(8),vector k(9),vector k(10)];
9 Jex=vector k(11);
10 Jey=vector k(12);
11 Jez=vector k(13);
12 Jrz=vector k(14);
13
14 g=9.81;
15 %%%%%%%%%%%%%%%%%%%%%% FUERZAS Y MOMENTOS %%%%%%%%%%%%%%%%%%%%%%
16 Ri=[cos(x(9))
*
cos(x(8)),cos(x(7))
*
sin(x(9))+cos(x(9))
*
sin(x(7))
*
sin(x(8)) , ...
sin(x(7))
*
sin(x(9))+cos(x(7))
*
cos(x(9))
*
sin(x(8));
17 cos(x(8))
*
sin(x(9)),cos(x(7))
*
cos(x(9))+sin(x(7))
*
sin(x(9))
*
sin(x(8)) , ...
cos(x(9))
*
sin(x(7))+cos(x(7))
*
sin(x(9))
*
sin(x(8));
18 sin(x(8)),cos(x(8))
*
sin(x(7)),cos(x(7))
*
cos(x(8))];
19 F=Ri
*
[c(1)
*
x(4)
*
abs(x(4));
20 c(2)
*
x(5)
*
abs(x(5));
21 c(3)
*
x(6)
*
abs(x(6))];
22 Fx=F(1);
23 Fy=F(2);
24 Fz=F(3);
25 taux=c(4)
*
x(10)
*
abs(x(10));
26 tauy=c(5)
*
x(11)
*
abs(x(11));
27 tauz=c(6)
*
x(12)
*
abs(x(12));
Figura 13.2: S-function correspondiente al modelo no lineal del quadrotor.
1 az=g+(b/m)
*
cos(x(8))
*
cos(x(7))
*
(u(1)2+u(2)2+u(3)2+u(4)2)(Fz/m);
2
3 if (az<0), az=0; end
4
5 sys= [x(4);
6 x(5);
7 x(6);
8 (b/m)
*
(cos(x(9))
*
sin(x(8))
*
cos(x(7))+sin(x(9))
*
sin(x(7)))
*
...
(u(1)2+u(2)2+u(3)2+u(4)2)(Fx/m);
9 (b/m)
*
(sin(x(9))
*
sin(x(8))
*
cos(x(7))cos(x(9))
*
sin(x(7)))
*
...
(u(1)2+u(2)2+u(3)2+u(4)2)(Fy/m);
10 az;
11 x(10)+x(11)
*
sin(x(7))
*
tan(x(8))+x(12)
*
cos(x(7))
*
tan(x(8));
12 x(11)
*
cos(x(7))x(12)
*
sin(x(7));
13 sec(x(8))
*
(x(12)
*
cos(x(7))+x(11)
*
sin(x(7)));
14 (JeyJez)/Jex
*
x(11)
*
x(12)+Jrz/Jex
*
x(11)
*
(u(1)u(2)+u(3)+u(4)) + ...
Kmf/Jex
*
(u(4)2u(3)2)taux/Jex;
15 (JezJex)/Jey
*
x(10)
*
x(12)Jrz/Jey
*
x(10)
*
(u(1)u(2)+u(3)+u(4)) + ...
Kmf/Jey
*
(u(2)2u(1)2)tauy/Jey;
16 (JexJey)/Jez
*
x(10)
*
x(11)+Jrz/Jez
*
x(11)
*
(u(5)u(6)+u(7)+u(8)) + ...
Kt/Jez
*
(u(1)2u(2)2+u(3)2+u(4)2)tauz/Jez];
Figura 13.3: S-function correspondiente al modelo no lineal del quadrotor.
54 13.1. Modelo no lineal
1 case 2
2 sys = [];
3
4 case 3
5
6 sys = [x(1);x(2);x(3);x(7);x(8);x(9)];
7
8 case 9
9 sys = [];
10
11 otherwise
12 DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
13 end
Figura 13.4: S-function correspondiente al modelo no lineal del quadrotor.
De las lneas nales de la funcion (gura 13.4), unicamente tiene interes el caso en que la bandera
toma el valor 3, en el que se deben especicar cuales van a ser las seis salidas denidas. Como se
ha dicho anteriormente, esto sucede en la lnea 8 de la gura 13.1. Estas salidas seran la posicion y
orientacion del quadrotor, es decir, los estados: x(1), x(2), x(3), x(7), x(8) y x(9). Los tres primeros
corresponden a la posicion en el sistema de referencia no-inercial y los tres segundos a la orientacion
de la base del quadrotor B respecto a la base I.
13.1.2. Diagrama de bloques
La S-function de Matlab tiene asociado un bloque en Simulink, en la gura 13.5 se muestra la
insercion de este bloque en todo el conjunto necesario para llevar a cabo la simulacion. El sistema se
presenta as con una estructura clasica de control.
Lo primero que se encuentra empezando por la izquierda son las referencias denidas mediante
el bloque Repeating Secuence Stair, el cual permite concatenar diferentes escalones denidos por un
vector y el tiempo de permanencia de cada valor de la referencia.
La referencia y la realimentacion entran a los respectivos bloques de control de las acciones des-
acopladas denidas en el captulo 12. Dentro de este bloque se podra implementar el controlador que
se desee, tanto analogico como digital y en cualquier conguracion (parte V).
En la realimentacion se puede ver como hay cuatro bloques en los que denir la dinamica de los
sensores. Presentan una conguracion abierta para ser modicados en el momento que se decida el
tipo de sensor (captulo 27).
Entre los controladores y los actuadores hay una serie de bloques que engloban el desacoplo del
sistema. Dado el objetivo de implementacion en un sistema real, y el coste computacional que supone
la realizacion de una raiz cuadrada, se ha empleado el desacoplo lineal.

Este comprende por un lado
la suma a la salida de los controladores de la accion de control desacoplada que da lugar al punto
de equilibrio (ecuacion 12.10) con la constante base, y por otro la matriz de desacoplo linealizada
(ecuacion 12.15).
Las salidas de los bloques de desacoplo se corresponden ya con la consigna necesaria para cada
motor, por tanto esta entra en el bloque en el que se dene la dinamica de los motores (captulos 24
y 25). Como se muestra en la ecuacion 10.8 de la seccion 10.1, estos bloques deben incluir a su salida
tanto la velocidad como la aceleracion angular, pues estas son las entradas del modelo en el espacio
de estados.
Solo queda por decir que, de las salidas de la S-function, solo los angulos de alabeo, cabeceo y
gui nada y la posicion en el eje vertical son realimentadas. Sin embargo, todas estas mas las posiciones
en los ejes x e y son enviadas al workspace para llevar a cabo animaciones (seccion 13.3) o presentar
gracamente los resultados.
13. Simulacion del modelo 55
Figura 13.5: Diagrama de bloques del modelo no lineal del quadrotor.
13.2. Modelo linealizado
La implementacion del modelo linealizado es mucho mas sencilla que la del no lineal, pues en
el unicamente se debe reejar los coecientes de la matriz de transferencia global presentada en la
ecuacion 12.16 de la seccion 12.2 as como un modelo linealizado de los motores y de la dinamica de
los sensores.
No obstante, al tratarse de un modelo linealizado para facilitar el dise no de los controladores,
todos los elementos deberan tener funciones de transferencia lineales, y esto incluye los modelos de los
motores y sensores. Por ello, en el caso de que estos presenten una dinamica no lineal, esta debera li-
nealizarse. Esto se atendera en la parte IV.
13.2.1. Diagrama de bloques
La construccion en Simulink del diagrama de bloques correspondiente es muy sencilla y puede
verse en la gura 13.6. Al igual que en el diagrama de bloques no lineal se ha incluido en este las
referencias y un controlador abierto.
De nuevo en la realimentacion se presenta el bloque correspondiente a la dinamica de los sensores,
forzosamente lineal en este caso, y a la salida de los controladores la dinamica de los actuadores.
La dinamica del sistema se ha querido presentar con apariencia matricial para facilitar su inter-
pretacion. La salida del mismo se trata de forma analoga a la seccion anterior enviando parte a la
realimentacion y su totalidad al workspace para su posterior procesado.
13.3. Animacion
Para que la visualizacion de los datos sea mas atractiva que la que otorgan las gracas temporales,
se han creado las funciones quadcopter(ang,pos) (seccion 13.3.2) y repres(pos,ang,t) (seccion
13.3.1), que permiten interpretar los resultados mediante una animacion del vuelo del quadrotor.
En la gura 13.7 se muestran dos capturas de la animacion. En la mitad izquierda de cada cuadro de
animacion se muestra una imagen aumentada del quadrotor en la que se puede apreciar su orientacion y
la posicion. La mitad derecha del cuadro de animacion permite tener una vision global de la trayectoria
recorrida. En ambas existe un cron ometro que indica el tiempo transcurrido.
56 13.3. Animacion
Figura 13.6: Diagrama de bloques del modelo linealizado del quadrotor.
(a) (b)
Figura 13.7: Capturas de pantalla de una animacion de la simulacion. a) t = 6,7 s, x = 0,77 m,
y = 11,92 m, z = 0,72 m, = 1,04 rad, = 0,01 rad, = 0,49 rad. b) t = 8,7 s, x = 2,29 m,
y = 28,28 m, z = 0,74 m, = 0,39 rad, = 0 rad, = 0,17 rad.
13.3.1. repres(pos,ang,t)

Esta es la rutina principal para la animacion. Como se puede ver en las lneas 3 a 4 de la gura
13.8 las entradas de posicion, orientacion han de ser matrices R
3xn
y el vector de tiempos R
1xn
siendo
n el n umero de pasos de la simulacion.
En las lneas siguientes de la funcion se lleva a cabo la preparacion de los ejes, de tal modo que la
habitacion tenga las dimensiones necesarias para que el quadrotor no se salga de la misma.
El bucle principal puede verse en la gura 13.9. Esta preparado para que funcione con simulaciones
tanto de paso jo como variable, pues se ha predenido un paso de animacion (gura 13.9, lnea 1).
De otro modo la animacion se acelerara o ralentizara en funcion del paso y hara que perdiera su
atractivo.
El bucle principal tiene dos partes destacadas, cada una encargada de dibujar una de las mitades
del cuadro que ya se han visto en la gura 13.7. En cada una de estas partes se dene un subplot,
13. Simulacion del modelo 57
1 function repres( pos,ang,t )
2
3 %pos: matriz 3xn correspondiente a (x,y,z) en cada instante de t
4 %ang: matriz 3xn correspondiente a (fi,theta,psi) en cada instante de t
5 %t: vector 1xn
6
7 figure;
8 set(gcf,'name','ANIMACI

ON QUADCOPTER','menubar','none','color','w', ...
'NumberTitle','off','resize','off','position',[100 100 1000 500]);
9
10 %Dimensiones de la habitacion [m] determinado por el recorrido del QR:
11 zoom=0.2;
12 dim1=max(max(pos(1,:)),zoom);
13 dim1n=min(min(pos(1,:)),zoom);
14 dim3=max(max(pos(2,:)),zoom);
15 dim3n=min(min(pos(2,:)),zoom);
16 dim2=max(max(pos(3,:)),zoom);
17 dim2n=min(min(pos(3,:)),zoom);
18
19 abs=0.5
*
max(max(dim1dim1n,dim2dim2n),max(dim1dim1n,dim3dim3n));
20 if dim1dim1n<2
*
abs
21 dim1=dim1+abs;
22 dim1n=dim1nabs;
23 end
24 if dim2dim2n<2
*
abs
25 dim2=dim2+abs;
26 dim2n=dim2nabs;
27 end
28 if dim3dim3n<2
*
abs
29 dim3=dim3+abs;
30 dim3n=dim3nabs;
31 end
32
33 %preparacion de ejes de la simulacion
34 habitacion=[dim1n dim1 dim2n dim2 dim3n dim3];
35 x=1; %si se cambia, tambien en quadcopter.m
36 y=2;
37 z=3;
Figura 13.8: Rutina del movimiento del quadrotor. Preparacion.
58 13.3. Animacion
1 tpaso=0.01;
2 tlast=0;
3
4 l=length(t);
5
6 for i=1:l
7 hold off
8 if t(i)tlast>=tpaso
9
10 tlast=t(i);
11 angulo=ang(:,i);
12 posicion=pos(:,i);
13
14 subplot(1,2,1,'position',[.03 .1 .45 .8])
15 quadcopter(angulo,posicion)
16 quadrotor=[pos(x,i)zoom pos(x,i)+zoom pos(y,i)zoom pos(y,i)+ zoom ...
pos(z,i)zoom pos(z,i)+zoom];
17 axis(quadrotor);
18 view(37.5,30);
19 title(num2str(t(i)));
20
21 hold on
22
23 subplot(1,2,2,'position',[.53 .1 .45 .8])
24 quadcopter(angulo,posicion)
25 axis(habitacion);
26 view(37.5,30);
27 title(num2str(t(i)));
28
29 pause(0.01)
30
31 end
32 end
33 end
Figura 13.9: Rutina del movimiento del quadrotor. Bucle principal.
se llama a la funcion quadcopter (seccion 13.3.2), se denen unos ejes adecuados y un angulo de
vision, y se actualiza el cronometro (gura 13.9, lneas 14 a 19 y 23 a 27). Por supuesto, al nalizar
es necesaria una pausa que permita apreciar la evolucion del sistema.
13.3.2. quadcopter(ang,pos)
Esta es la funcion encargada de esbozar el quadrotor. A partir de una posicion y orientacion
instantaneos, dibuja los brazos de la estructura y unas luces estroboscopicas verde y roja en el los
extremos derecho e izquierdo respectivamente. La representacion es sumamente sencilla, pero tiene
la ventaja de que puede ser facilmente completada con a nadidos que hagan al resultado parecer mas
real.
Los parametros denidos de la estructura son la distancia de los ejes de los rotores al eje z de
la base inercial (d, lnea 4 de la gura 13.10) y la mnima distancia entre el plano de barrido de las
helices y el centro de gravedad (h, lnea 3 de la gura 13.10).
De forma analoga a lo visto en la ecuacion 7.3 de la seccion 7.2 se dene la matriz de posicion del
centro geometrico de las palas (gura 13.10, lnea 6), la cual multiplicada por la matriz de rotacion
Rax (lneas 12 a 15), que es funcion de la posicion angular, permite calcular en la lnea 24 la posicion
relativa respecto al centro de gravedad de cada uno de los extremos de la estructura. Teniendo la
posicion relativa (posrel) y sumandola a la posicion respecto al origen de coordenadas de la base I,
en las lneas 26 y 35 se dibujan los elementos que componen la estructura. Solo queda a nadir que las
lneas 27 a 34 escogen el color en funcion del brazo de la estructura que se este dibujando.
13. Simulacion del modelo 59
1 function quadcopter( ang,pos )
2
3 h=0.05; %altura de las palas respecto al CdG
4 d=0.2; %ditancia del eje de las palas al CdG
5
6 D=[0,d,h;0,d,h;d,0,h;d,0,h]; %posiciones de las palas respecto al CdG
7
8 fi=ang(1);
9 theta=ang(2);
10 psi=ang(3);
11
12 Rfi=[1,0,0;0,cos(fi),sin(fi);0,sin(fi),cos(fi)];
13 Rtheta=[cos(theta),0,sin(theta);0,1,0;sin(theta),0,cos(theta)];
14 Rpsi=[cos(psi),sin(psi),0;sin(psi),cos(psi),0;0,0,1];
15 Rax=Rfi
*
Rtheta
*
Rpsi;
16
17 x=1; %si se modifica, tambien en repres.m
18 y=2;
19 z=3;
20
21 hold on
22
23 for i=1:4
24 posrel=Rax
*
D(i,:)';
25 posfin=posrel+pos;
26 plot3([pos(x),posfin(x)],[pos(y),posfin(y)],[pos(z),posfin(z)], ...
'linewidth',3,'color','k')
27 if i==3,
28 color='g';
29 else
30 if i==4, color='r';
31 else
32 color='k';
33 end
34 end
35 plot3(posfin(x),posfin(y),posfin(z),'ro','erasemode','xor', ...
'linewidth',3,'color',color)
36 end
37
38 end
Figura 13.10: Rutina de dibujo del quadrotor.
Parte III
Descripcion del sistema
Captulo 14
Motor brushless
14.1. Descripcion
Los motores de corriente continua sin escobillas, conocidos comunmente como motores brushless o
motores conmutados electronicamente, son motores electricos alimentados con corriente continua con
sistemas de conmutacion electronicos en vez de mecanicos como los de los motores convencionales con
escobillas. Las relaciones par-intensidad y velocidad-frecuencia son lineales en estos motores.
Estos motores suelen describirse como motores paso a paso. Tiene imanes permanentes y la po-
sibilidad de varios polos tanto en el rotor como el estator. El motor brushless es constructivamente
similar a un motor sncrono trifasico que tiene un rotor con imanes permanentes. Los devanados del
estator son alimentados con tensiones tales que hagan que el rotor siga los campos magneticos creados
por el estator. De todas formas, el termino motor paso a paso tiende a usarse para motores que han
sido dise nados especcamente para operar en un modo en el cual se detienen frecuentemente en una
posicion angular previamente denida. A continuacion se describen los principios de los motores sin
escobillas de una forma mas general.
La eleccion de un brushless para motorizar el quadrotor proviene de las m utiples ventajas de estos
sobre los motores con escobillas:
Mayor eciencia. Las perdidas por calor y conmutaciones son menores.
Mayor rendimiento. Mayor duracion de las bateras para la misma potencia.
Mayor relacion potencia/peso.
Menor mantenimiento al no tener escobillas.
Mayor abilidad.
Relacion velocidad/par motor casi constante.
Mayor potencia para el mismo tama no.
Mejor disipacion de calor. Evita la necesidad de refrigerar el motor.
Rango de velocidad elevado al no tener limitacion mecanica.
Eliminacion de chispas ionizantes en el conmutador.
Menor ruido electronico.
Menos interferencias en otros circuitos.
64 14.2. Eleccion para el sistema
Un motor brushless cuenta con imanes permanentes que giran y una armadura ja, eliminando los
problemas de los motores con escobillas en la conexion electrica a la armadura movil. Un controlador
electronico reemplaza el conjunto de escobillas / conmutadores del motor de corriente continua, que
continuamente cambia la fase de los bobinados para mantener el giro del motor. El controlador realiza
una distribucion similar de energa programado por medio interruptores de estado solido en lugar del
sistema de escobillas / conmutadores.
Al no tener los bobinados en el rotor, no estan sometidos a fuerzas centrfugas, y dado que estos
estan alojados en el estator, pueden ser enfriados por conduccion, sin necesidad de introducir un ujo
de aire dentro del motor. Esto a su vez signica que los componentes internos del motor pueden
mantenerse cerrados para protegerlos de la suciedad y de sustancias extra nas.
La potencia maxima que se puede aplicar a un motor brushless es excepcionalmente alta, limitada
casi exclusivamente por el calor, el cual puede debilitar los imanes. La causa es que los imanes se
desmagnetizan a altas temperaturas, al alcanzar el llamado punto de Curie, siendo esta temperatura
inferior para los imanes de neodimio-hierro-boro.
La principal desventaja de un motor brushless es un costo mas alto, que se deriva de dos cuestiones.
En primer lugar, los motores brushless requieren complejos controladores electronicos de velocidad para
funcionar. Los motores de corriente continua con escobillas pueden ser regulados por un controlador
relativamente simple, como una resistencia variable. Sin embargo, esto reduce la eciencia porque en
dicha resistencia se pierde potencia. En segundo lugar, los motores han sido desarrollados para ciertas
aplicaciones, como por ejemplo los de aeromodelismo, y carecen de procesos de fabricacion realmente
optimizados y en ellos a un se realizan muchas operaciones a mano.
La implementacion de los controladores de velocidad se trata en captulo 15.
14.2. Eleccion para el sistema
Para el proyecto se han elegido unos de peque na potencia pero la suciente para el modelo a
realizar. El unico requerimiento de empuje es el necesario para elevar el peso total del quadrotor
(bateras, estructura, electronica y sensores), es decir, no se dise na para soportar carga extra.
El primer modelo es un Eskay 400 XT. Sus caractersticas principales son las siguientes:
Intensidad nominal 10 A
KV 980 rpm / Volt
Diametro 26 mm
Longitud 24 mm
Peso 46 g
Diametro de eje 3 mm
Potencia nominal 120 W
La otra opci on es un EMAX BL2210/30, en la gura 14.1 se pueden ver sus dimensiones, a
continuacion sus caractersticas:
Intensidad nominal 10 A
KV 1450 rpm / Volt
Diametro 26 mm
Longitud 24 mm
14. Motor brushless 65
Peso 45 g
Diametro de eje 3 mm
Potencia nominal 166 W
Se barajaran las dos opciones seg un sus prestaciones.
Figura 14.1: Dimensiones del motor EMAX BL2210/30.
Captulo 15
Control electr onico de velocidad.
ESC
15.1. Descripcion
Por las caractersticas de los motes brushless es necesario para su uso un control electronico que
se encargue de las conmutaciones entre los bobinados. Por simplicar el dise no se decidio comprar un
modelo comercial.
Dado que el controlador debe dirigir la rotacion del rotor, este requiere alg un medio para determinar
la orientacion del rotor (en relacion con las bobinas del estator). Se diferencian dos grandes grupos de
controladores:
Controladores que utilizan sensores de efecto Hall o un encoder para medir directamente la
posicion del rotor.
Controladores que miden la fuerza contra-electromotriz en las bobinas sin alimentar para inferir
la posicion del rotor. Esto elimina la necesidad de sensores, y por tanto son llamados controla-
dores sensorless, del ingles sin sensores.
El controlador, no importa el tipo que sea, cuenta con tres salidas bidireccionales con capacidad
para una alta intensidad de corriente continua controladas por un circuito logico. Los controladores
simples emplean comparadores para determinar cuando debe avanzar la fase de salida, mientras que los
controladores mas avanzados utilizan un microcontrolador para controlar la aceleracion, la velocidad
y as anar en la eciencia del motor.
Para el proyecto se ha optado por controladores que miden la posicion del rotor basandose en la
fuerza contra-electromotriz. Estos controladores tienen problemas que se suman a la falta de precision
a la hora de conocer la posicion del rotor. El problema reside en que antes de iniciar el movimiento no
se detecta fuerza contra-electromotriz, pero generalmente se compensa iniciando la rotacion a partir
de una fase arbitraria, y luego saltando a la fase correcta si se considera que era erronea. Esto puede
causar que el motor funcione brevemente en sentido contrario, a nadiendo a un mayor complejidad a la
secuencia de arranque.
La unidad de control se reere a menudo como un ESC, es decir, Controlador Electronico de
Velocidad. Para controlar la velocidad del rotor se enva una se nal al microcontrolador del ESC. Esta
se nal debe ser PWM de entre 1 y 2 milisegundos de ancho de pulso y una frecuencia de entre 50 y
250 Hz, el controlador generara a partir de esto los pulsos necesarios para controlar en lazo abierto la
velocidad.
68 15.2. Eleccion para el sistema
15.2. Eleccion para el sistema
Para la realizacion del quadrotor se barajan dos opciones, la primera es un Skyartec 18A cuyas
caractersticas principales son las siguientes:
Intensidad nominal 18 A
Intensidad maxima 25 A
Proteccion termica
Peso 18.8 g
Tama no 25 x 35 x 8 mm
La segunda opcion consiste en un Flyfun 18A, una opcion mucho mas economica. Tiene las
siguientes caractersticas:
Intensidad nominal 18 A
Intensidad maxima 22 A
Proteccion termica
Peso 21 g
Tama no 25 x 55 x 6 mm
Ambos modelos de ESC pueden ser programados para ajustarse a la conguracion que mas con-
venga. De este modo puede elegirse entre diferentes opciones. La primera opcion es la mas cara de
las dos con un coste que triplica la segunda opcion, de tal manera que salvo que el comportamiento
del segundo ESC no sea adecuado pese a ser mas grande y ligeramente mas pesado sera la opcion
escogida.
15.3. Programaci on del control electronico de velocidad
El ESC tiene diversos modos de funcionamiento.

Estos estan recogidos en la tabla 15.1. Para
congurar cada uno de los elementos es necesario acceder previamente al men u correspondiente.
Se distinguen dos modos de conguracion, el primero es muy sencillo, consiste en establecer el
maximo y el mnimo de la accion de control. Esto se hace del siguiente modo:
1. Se enva al ESC la salida maxima.
2. Se conecta la alimentacion.
3. Transcurridos 2 segundos se escucha un doble tono.
4. Se enva al ESC la salida mnima.
El segundo modo de conguracion es mas amplio e igual de importante para el correcto funciona-
miento, hay que seguir el siguiente proceso:
1. Se enva al ESC la salida maxima.
2. Se conecta la alimentacion.
15. Control electronico de velocidad. ESC 69
Elemento Tono corto Doble tono corto Triple tono corto
Freno O On
Tipo de batera Li-Ion / Li-Po Ni-Mh / Ni-Cd
Modo de corte Reducir Apagar
Umbral de corte Bajo Medio Alto
Modo de arranque Normal Suave Ultra-suave
Temporizacion Baja Media Alta
Figura 15.1: Elementos congurables en el ESC.
3. Transcurridos 2 segundos se escucha un doble tono corto. Transcurridos 5 segundos mas se
escucha un tono especial.
4. Se escucha en orden la secuencia mostrada a continuacion:
Tono corto. Freno.
Doble tono corto. Tipo de batera.
Triple tono corto. Modo de corte.
Cuadruple tono corto. Umbral de corte.
Tono largo. Modo de arranque.
Tono largo, tono corto. Temporizacion.
Tono largo, doble tono corto. Restablecer predeterminados.
5. Se enva al ESC la salida mnima transcurridos 3 segundos despues del elemento deseado.
6. Se espera a or el n umero de tonos indicados en la tabla 15.1, a continuacion se enva al ESC la
salida maxima.
7. Si una vez odo el tono especial se enva al ESC la salida mnima durante 2 segundos, se abandona
la conguracion, si se mantiene arriba se vuelve al paso n umero 4.
Para realizar esta conguracion con sencillez se ha escrito una rutina para implementar en un
microcontrolador que se va a tratar en la seccion 21.2.1.
En la tabla esta indicado en negrita las opciones elegidas. La eleccion del tipo de batera se
muestra en la seccion 16.3. La temporizacion se decidira en base a los experimentos de la seccion
24.2.1 y nalmente en la seccion 24.1 se va a ver por que se han tomado otras de las decisiones.
Captulo 16
Bateras
16.1. Comparativa entre bateras
En la tabla 16.2 se muestra una comparativa entre diferentes tecnologas de bateras. En dicha
tabla no se ha incluido las caractersticas de las bateras de Litio-Polmero por ser muy similares a las
de Litio-Ion de cobalto.
16.2. Especicaciones relevantes
De las caractersticas de las bateras hay cuatro especicaciones electricas principales a tener en
cuenta: densidad de energa, capacidad, voltaje y ratio de descarga [9].
Densidad de energa. Esta muy condicionado por la tecnologa de la batera como muestra la
tabla 16.2. Al estar directamente relacionada con el peso de la batera.
Capacidad. Viene normalmente expresada en miliamperios hora (mAh), de ella dependera el
tiempo de vuelo, aunque al ser una especicacion muy ligada al peso de la batera, habra que
tener en cuenta mas datos al respecto. Todo esto se tratara en el captulo 26.
Voltaje. Depende del n umero de celdas que tenga la batera. El fabricante del motor recomienda
bateras de tres celdas (11.1 V).
Ratio de descarga, C. Es una forma com un de describir el ratio de descarga de las bateras
con el n de normalizar este frente a la capacidad de las mismas. Este ratio se puede ver en
la ecuacion 16.1 y es el cociente de la intensidad maxima que puede entregar la batera (I) y
la energa que puede almacenar la misma (E) A partir de esta ecuacion se extrae la intensidad
maxima a partir de esta especicacion y la capacidad.
C =
I
E
[A]
[Ah]
(16.1)
16.3. Bateras LiPo
Son una variacion de las bateras de iones de litio (Li-ion). Sus caractersticas son muy similares,
pero permiten una mayor densidad de energa, as como una tasa de descarga bastante superior. Estas
bateras tienen un tama no mas reducido respecto a las de otros componentes. Su tama no y peso las
hace muy utiles para equipos peque nos que requieran potencia y duracion.
Las baterias LiPo se venden generalmente de 1S a 3S lo que signica:
72 16.4. Eleccion para el sistema
Li-PO 1S: una celda, 3,7 V.
Li-PO 2S: dos celdas, 7,4 V.
Li-PO 3S: tres celdas, 11,1 V.
Li-PO 4S: cuatro celdas, 14,8 V.
Cada celda tiene un voltaje nominal de 3,7 V, Voltaje maximo 4,2 y mnimo 3,0. Este ultimo debe
respetarse rigurosamente ya que la pila se da na irreparablemente a voltajes menores a 3 volts. Se suele
establecer la siguiente nomenclatura XSYP que signica X celulas en serie, e Y en paralelo.
16.4. Eleccion para el sistema
Para la eleccion de las bateras, se debe tener en cuenta los siguientes requerimientos: densidad de
energa, ratio de descarga y capacidad. Por ser las bateras de Li-Po las de mayor densidad de energa,
y siendo el peso de las bateras un elemento determinante, las bateras elegidas han de ser de este
tipo. El ratio de descarga y la capacidad est an directamente relacionada con el peso de las bateras,
el n umero de celdas y el peso total del quadrotor, por ello es necesario realizar una estimacion con los
siguientes objetivos ordenados seg un su relevancia:
1. En ning un caso la intensidad demandada por los motores debe superar la intensidad maxima
que pueden entregar las bateras. Determinara el ratio de descarga C.
2. Maximizar el tiempo de vuelo del quadrotor. Determinara la capacidad de la batera E.
3. Tratar que los motores trabajen en el regimen de revoluciones que da la maxima eciencia y que
nunca requieran para el regimen permanente mas del 70 % de su potencia nominal.
Para poder realizar la eleccion bajo estas especicaciones, se recurre a la gura 26.2, en la que se
obtiene la ecuacion 26.4. Los resultados pueden verse en la tabla 16.1 y en estos terminos se puede
calcular a partir del peso estimado del quadrotor en cada caso cual sera el tiempo de vuelo.
En dicha tabla se muestran las caractersticas de cada batera, el peso total estimado con las
mismas, la intensidad demandanda para mantener el equilibrio y el tiempo estimado de vuelo. Estan
resaltados en rojo aquellos valores de masa en los cuales las bateras suponen mas del 28 % del peso,
valor a partir del cual no se recomienda el empleo de las mismas.
De los tiempos de vuelo resaltados en azul de la tabla 16.1, la batera que mas tiempo de vuelo
otorga es la vtec LRP de 1100 mAh y 3 celdas, esta sera pues la elegida para el quadrotor. Sus
caractersticas son las siguientes:
Masa: 82g
Dimenisiones 52 x 30.5 x 27.5 mm
Ratio C: 25 C
Voltaje: 11.1V
Capacidad: 1100 mAh
N umero de celdas: 3
16. Bateras 73
Casa Bateras Quadrotor
comercial Celdas Capacidad masa (g) N masa (g) Peso [N] I
eq
t
vuelo
[min]
VTEC LRP 3 1100 76,6 2 676,8 6,6 8,3 15,9
3 3000 272,29 1 795,9 7,8 10,5 17,2
3 1300 117,3 2 758,2 7,4 9,8 16,0
3 2200 195 1 718,6 7,0 9,1 14,6
3 2650 212,63 1 736,2 7,2 9,4 17,0
Sky Lipo 3 1800 157,3 1 680,9 6,7 8,4 12,9
3 4000 367,5 1 891,1 8,7 12,4 19,4
3 4400 367,3 1 890,9 8,7 12,4 21,3
3 1000 78,79 2 681,2 6,7 8,4 14,3
3 800 69,88 2 663,4 6,5 8,1 11,9
3 1300 101 2 725,6 7,1 9,2 17,0
3 1300 96 2 715,6 7,0 9,0 17,3
3 1800 131 1 654,6 6,4 7,9 13,6
3 1000 83 2 689,6 6,8 8,5 14,0
Blue LiPo 3 1300 101 2 725,6 7,1 9,2 17,0
3 950 71 2 665,6 6,5 8,1 14,0
3 2200 171 1 694,6 6,8 8,6 15,3
3 2650 207 1 730,6 7,2 9,3 17,2
3 4000 341 1 864,6 8,5 11,8 20,3
3 3000 228 1 751,6 7,4 9,7 18,6
Figura 16.1: Comparativa entre las bateras de distintas casas comerciales.
74 16.4. Eleccion para el sistema
1. La resistencia interna de un pack de bateras vara con el consumo, cableado del mismo y n umero de celdas. En el caso de las bateras de
Li-Ion tambien influye el circuito de proteccion de estas.
2. Basado en celdas de tama no 18650. El tama no y su dise no determinan la resistencia interna. Celdas mas grandes tienen una impedancia
menor de 15 m.
3. Ciclo de vida basado en un mantenimiento normal de la batera. Si no se aplican ciclos perodos de descarga completa se puede reducir el
n umero de ciclos de vida en un factor 3.
4. Ciclo de vida basado en el nivel de descarga. Cuanto m as se descargue la batera peor ser a la influencia en su duraci on.
5. La auto-descarga es mayor inmediatamente despues de la carga. La perdida de capacidad en bateras de NiCd es de un 10 % durante las
primeras 24h y luego baja a un 10 % cada 30 das. A temperaturas m as altas, se incrementa la auto descarga.
6. Los circuitos de protecci on interna tpicamente consumen un 3 % al mes de la energa almacenada.
7. El voltaje nominal tradicional es de 1.25V; 1.2V se usa m as comunmente ya que 3 en serie corresponden al voltaje nominal de las bateras
de Li-Ion (3.6V)
8. El voltaje de las bateras Li-Ion se suele situar por encima de los 3.6V nominales. Se basa en el voltaje medio cuando hay carga.
9. Capaz de suministrar gran cantidad de corriente en forma de pulsos. Necesita tiempo de recuperaci on.
10. Se aplica solo en descarga. Ofrece menos capacidad cuanto menor es la temperatura.
11. El mantenimiento puede ser igualando las cargas o limitandolas para prevenir el sulfatado.
Figura 16.2: comparacion entre diferentes tecnologas de bateras.
Captulo 17
Sensores
17.1. Sensores de altura
El sensor de altura es una de los que mas opciones deja abiertas. La eleccion del mismo depende
muy directamente de la aplicacion que se desea dar al quadrotor. Se pueden clasicar las opciones en
tres grandes grupos, sensores de infrarrojos, de ultrasonidos o barometricos.
17.1.1. Sensor de Infrarrojos
En los sensores de infarrojos reexivos se encuentra un LED cuya radiacion emitida pasa a traves de
una lente que concentra los rayos formando un unico haz lo mas concentrado posible para as mejorar
la direccionalidad del sensor, El rayo va recto y cuando encuentra un obstaculo reectante rebota y
retorna con cierto angulo de inclinacion dependiendo de la distancia, la luz que retorna es de nuevo
concentrada por otra lente y as todos los rayos inciden en un unico punto del sensor de luz infrarroja
que contiene en la parte receptora del dispositivo. Este sensor es un CCD lineal y dependiendo del
angulo de recepcion de la luz incidira esta en un punto u otro del sensor pudiendo de esta manera
obtener un valor lineal y proporcional al angulo de recepcion del haz de luz.
Entre las desventajas de este tipo de sensores esta el ruido de la se nal, pues no se comporta
adecuadamente al trabajar con supercies rugosas. Por el mismo motivo no es capaz de detectar mas
que supercies planas.
17.1.2. Sensor barometrico
Un sensor barometrico implementa un transductor de presion que proporciona una se nal lineal
con la presion barometrica del medio. Los barometros comerciales para vehculos aereos no tripulados
suelen tener un recorrido tal que permite medir presiones desde 300 hasta mas de 1000 hPa, lo que
permite situarse aproximadamente entre -500 y 9000 metros sobre el nivel del mar. No obstante, tiene
el inconveniente de tener una incertidumbre de entre 0.1 y 1 metros, lo que lo hace in util para el vuelo
en interior.
17.1.3. Sensor ultrasonico
Los sensores de ultrasonidos reexivos emiten una onda ultrasonica mediante transductores de
presion de alta frecuencia (entre 40 y 250 kHz).

Esta se propaga por el aire a una velocidad v=343.2
m/s a 20C y si ha reejado en alguna supercie retorna en general al mismo transductor, el cual
enva la conrmacion de recepcion del haz ultrasonico a un microcontrolador que calcula el tiempo
que ha tardado (t), obteniendo entonces la distancia (d) como se muestra en la ecuacion 17.1. Notese
76 17.1. Sensores de altura
que el espacio recorrido por el haz ultrasonico (x) es el doble de la distancia al objeto. Tiene un rango
de medida de entre 0.14 y 3 metros dependiendo del modelo y una precision excelente.
v =
x
t
x = 2d d =
343,2
2
t = 171,6t (17.1)
Cuanto mayor es la frecuencia del ultrasonido mas estrecho se vuelve el haz emitido, permitiendo
as precisiones mayores. Al igual que en los sensores de infrarrojos, se ve afectado por la inclinacion de
la supercie incidente, pero esta no afecta a la medida en el caso de bajas frecuencias. Sin embargo,
a frecuencias por encima de los 200 kHz las supercies incidentes se comportan como un espejo
limitando el angulo de medida a unos 9

de inclinacion, es decir aproximadamente la mitad del angulo


de dispersion mostrado en la gura 17.1a.
(a) (b)
Figura 17.1: a) Patron de dispersion de una onda de 235 kHz rayo en funcion de la distancia en
pulgadas. b) Patron de dispersion de un rayo de 40 kHz rayo en funcion de la distancia en pulgadas.
Esto ocurre debido a que si la velocidad de propagacion de la onda es constante, la longitud de
onda es inversamente proporcional a la frecuencia, es decir,
=
v
f
, (17.2)
siendo v la velocidad de propagacion (en este caso la velocidad del sonido en el aire), f la frecuencia
de la onda y la longitud de onda. Cuanto mayor es la longitud de onda menor es la difraccion en el
objeto en que incide. Se produce cuando la longitud de onda es mayor que las dimensiones del objeto,
por tanto, los efectos de la difraccion disminuyen hasta hacerse indetectables a medida que el tama no
del objeto aumenta comparado con la longitud de onda, o viceversa.
17.1.4. Eleccion para el sistema
Para nuestro sistema se escoge un sensor ultrasonico, aunque como se ve en la seccion 17.3 existe
la posibilidad de emplear ademas un sensor barometrico. El sensor escogido es un SRF-235 de la
casa Devantech.

Este se muestra en la gura 17.2 y cuenta con las siguientes caractersticas:
Ancho del rayo ultrasonico de tan solo 15

.
Transductor de presion de 235 kHz.
Rango efectivo de medida entre 0.1 y 1.2 metros.
17. Sensores 77

Angulo maximo de vision de supercies de 9

.
Resolucion de 0.1716 milmetros.
Puerto de comunicacion I
2
C
Niveles logicos TTL.
Todas estas son favorables para los objetivos del proyecto consistentes en realizar vuelo de interior
practicamente estatico. Se espera que los angulos de alabeo y cabeceo esten sucientemente bien
controlados para no sobrepasar los 9

y unicamente variar las referencias de altura, pues de sobrepasar


este valor angular crtico el control de altura quedara en lazo abierto.
(a) (b)
Figura 17.2: Sensor ultrasonico SRF-235. a) Vista frontal. b) Vista trasera.
Existe un inconveniente con la implementacion de este sensor con el resto de la electronica del
quadrotor. Al trabajar a unos niveles logicos de 5V se hace imposible la comunicacion I
2
C directa
con la unidad de sensado (AHRS, seccion 17.3) que trabaja a 3.3V. Para poder realizarlo es necesario
introducir un adaptador de niveles logicos mostrado en la seccion 18.2.1.
Como cualquier dispositivo I
2
C se congura a traves de los registros y comandos que pueden verse
en las tablas 17.3 y 17.4. Se tratara como usarlos para poner en marcha el sensor en la seccion 21.4.1,
captulo 21.
17.2. Sensores angulares
La determinacion precisa de la posicion angular es la cuestion mas importante para los vehculos
voladores. Sin un correcto conocimiento de al menos los angulos de alabeo y cabeceo la estabilizacion
se vuelve practicamente imposible. Historicamente esto se ha realizado mediante elementos mecani-
cos basados en el efecto giroscopico, pero con el desarrollo de la electronica y los transductores y
el abaratamiento de los mismos los sensores electronicos se han impuesto. Los sistemas de medida
inercial (Inertial Mesurement System en ingles, en adelante IMU) se componen fundamentalmente de
acelerometros y giroscopios.
Registro Lectura Escritura
0 Version del software Registro de comando
1 Sin usar (lee 0x80) N/A
2 Bit de medida. Alto N/A
3 Bit de medida. Bajo N/A
Figura 17.3: Registros del SRF-235.
78 17.2. Sensores angulares
Comando Resultado
0x50 Modo de medida - pulgadas
0x51 Modo de medida - centmetros
0x52 Modo de medida - microsegundos
Figura 17.4: Comandos del SRF-235.
17.2.1. Acelerometro
Descripcion
Se denomina acelerometro a cualquier instrumento destinado a medir aceleraciones. Generalmente
este termino se reere al tipo de aceleracion asociada con la fuerza gravitatoria experimentada por
una masa de prueba que se encuentra dentro del marco de referencia del dispositivo.
El acelerometro es uno de los transductores mas versatiles, siendo el mas com un el piezoelectrico
por compresion. Este se basa en que, cuando se comprime un retculo cristalino piezoelectrico, se
produce una carga electrica proporcional a la fuerza aplicada. Los elementos piezoelectricos estan
hechos normalmente de circonato de plomo. Los elementos piezoelectricos se encuentran comprimidos
por una masa, sujeta al otro lado por un muelle y todo el conjunto dentro de una caja metalica.
Cuando el conjunto es sometido a vibracion, el disco piezoelectrico se ve sometido a una fuerza
variable, proporcional a la aceleracion de la masa. Debido al efecto piezoelectrico se desarrolla un
potencial variable que sera proporcional a la aceleracion.
Medicion angular mediante acelerometros
La ventaja fundamental de los acelerometros como sensores angulares radica en que se pueden
realizar medidas de la aceleracion en un eje determinado con precision y sin deriva. Gracias a esto y
conociendo la aceleracion de la gravedad, es posible obtener el angulo entre el vector obtenido por el
acelerometro y el vector de aceleracion de la gravedad.
En la gura 17.5 se muestran esquematicamente las proyecciones entre el vector aceleracion de la
gravedad en dos ejes de un objeto. Los acelerometros estan por lo general orientados en la direccion
x
L
de la gura de tal manera que siendo a
x
la aceleracion medida, El cabeceo se obtiene como
= arcsin
a
9,81
. (17.3)
En el caso de tener acelerometros en los ejes x
L
y z
L
la informacion para el calculo del cabeceo sera
redundante, y por tanto habra que establecer alg un tipo de ponderacion que tendra como ventaja la
reduccion del error.
Para conocer el angulo de alabeo, el montaje sera analogo al descrito pero situando el acelerometro
principal en el eje y
L
, es decir, con dos acelerometros en los ejes x
L
e y
L
se puede conocer los angulos
de cabeceo y alabeo y a nadiendo un tercer acelerometro en el eje z
L
puede reducirse el error cometido
en la medida.

Este metodo de medida de la posicion angular sera perfectamente valido si el objeto no sufriera
aceleraciones lineales, desgraciadamente esto es unicamente valido para objetos estacionarios y cual-
quier aceleracion vertical o transversal de quadrotor falseara la medida, por tanto es necesario el
empleo de un giroscopio con el que reducir este error.
17.2.2. Medicion angular mediante giroscopios
Los sensores de velocidad angular o giroscopios detectan el giro en un eje. Aunque antiguamente
eran dispositivos mecanicos, estos han sido sustituidos por los giroscopios piezoelectricos u opticos.
17. Sensores 79
x
z
x
L
z
L
90

g
Figura 17.5: Vectores en acelerometros.
Los giroscopios opticos tienen un coste elevado aunque mayor precision.
Los giroscopios electronicos mas comunes son dispositivos de estado solido basados en la aceleracion
de Coriollis. En ellos, un material piezoelectrico se hace oscilar a la frecuencia de resonancia, de modo
que al girar, la fuerza de Coriollis (proporcional a la velocidad angular) provoca la aparicion de una
diferencia de potencial debida a la desviacion del prisma, permitiendo la medida de la velocidad de
rotaci on.
El principal inconveniente de los giroscopios como elemento de medida de posicion angular reside en
que es necesario realizar una integracion para obtener la misma, este hecho hace que un mnimo error
de la medida provoque una deriva temporal muy importante que si no es corregida de alg un modo,
invalida completamente la medida. Por este motivo los giroscopios electronicos suelen ir acompa nados
de acelerometros o br ujulas digitales que permitan corregir esta deriva.
17.2.3. Medicion angular mediante una br ujula digital
Los magnetometros permiten saber la direccion hacia la que se encuentra el Norte del campo
magnetico mas fuerte. En ausencia de campos magneticos que alteren el campo magnetico terrestre,
es posible conocer la desviacion respecto a su direccion.
Generalmente las br ujulas digitales incorporan tres magnetometros ortogonales que permiten co-
nocer la posicion angular con una precision de entre 1 y 2 grados, el inconveniente principal es que su
periodo de muestreo mnimo no suele ser demasiado elevado. Por otro lado, cualquier campo magnetico
externo produce alteraciones en la medida.
80 17.3. AHRS
17.3. AHRS
17.3.1. Descripcion
Un AHRS (del ingles Attitude and Heading Reference System) o Sistema de referencia de actitud
y rumbo hace referencia a un sistema que mediante sensores inerciales indica la posicion angular de
una aeronave. No debe confundirse con los IMU, del ingles Inertial Mesurement Unit que simplemente
son una agrupacion de sensores inerciales (acelerometro, giroscopio y br ujula o compas), un AHRS
incorpora ademas una unidad de procesado de la informacion, de tal manera que libera al procesador
principal de la realizacion de los calculos pertinentes.
En el mercado se pueden encontrar innidad de modelos con diferentes precios y caractersticas.
Algunos de estos tienen conguraciones abiertas que permiten realizar modicaciones en el codigo o
a nadir sensores y otros traen una conguraci on ja de fabrica. El precio esta condicionado por dos
factores: la precision y abilidad de los sensores que incorpora y la calidad del ltro empleado en la
unidad de procesado.
El ltro de mayor abilidad que se implementa en la actualidad es el ltro de Kalman [12], pero
tambien es el mas complejo de implementar. El ltro de Kalman es un algoritmo desarrollado por
Rudolf E. Kalman en 1960 que sirve para poder identicar el estado oculto (no medible) de un
sistema dinamico lineal, al igual que el observador de Luenberger [13]. La ventaja del mismo es que
ademas sirve cuando el sistema esta sometido a ruido blanco aditivo. El ltro de Kalman es capaz
de escoger una ganancia de realimentacion de forma optima cuando se conocen las varianzas de los
ruidos que afectan al sistema (ruido sensorial, seccion 27.2 de la pagina 151).
Existen otro tipo de ltros que simplemente realizan una integral de la velocidad angular propor-
cionada por el giroscopio (seccion 17.2.2) y con la informacion del acelerometro y la br ujula (secciones
17.2.1 y 17.2.3 respectivamente) realizan una ponderacion ja u orientada a reducir el error cuadratico
medio.
17.3.2. Eleccion para el sistema
Para la construccion del quadrotor, dado el caracter academico se ha optado por la incorporacion
de un AHRS con una conguracion abierta tanto de adicion de sensores como de programacion.
Con estos requerimientos se considero oportuno la utilizacion de un Mongoose 9DoF IMU de
ckdevices. La casa se reere a el como un IMU, pero incorpora un microcontrolador ATmega 328P
que lo convierte visto desde el microcontrolador principal en un AHRS. Puede verse su aspecto y los
elementos que contiene en la gura 17.6.
Las caractersticas y sensores que denen la unidad elegida son:
Medicion inercial completa: aceleracion lineal, velocidad angular y orientacion magnetica (ace-
lerometro ADXL345, giroscopio ITG-3200 y br ujula digital HMC5883L respectivamente).
Incorpora un barometro para medir la altitud (BMP085, ver seccion 17.1).
Preinstalado con el bootloader de Arduino, lo que permite una programacion sencilla.
9 pines de entrada/salida disponibles para a nadirle funcionalidades.
Conexion I
2
C (ver seccion 18.2.1) para a nadir sensores.
Pines para comunicacion serie.
LED de estado congurable.
Gracias a la conexion I
2
C se puede incorporar a la unidad de medida el sensor de altura 17.1.4,
que junto al bar ometro podra ser una potente unidad de medida de altura y altitud, siendo la altura
17. Sensores 81
(a) (b)
Figura 17.6: Unidad de medida Mongoose 9DoF IMU. a) Vista en persepectiva. b) Descripcion de los
elementos.
la distancia vertical a una supercie cualquiera tomada como referencia y la altitud la distancia
vertical respecto al nivel del mar. Por otro lado la programacion a traves de Arduino deja abierta la
posibilidad de modicar el ltro implementado e incorporar el nuevo sensor a la programacion. La
gura 17.7 muestra un esquema de como se comunican los sensores con la unidad de medida y esta
con el microcontrolador.
Figura 17.7: Esquema del conexionado de los sensores, la unidad de calculo y el microcontrolador
principal.
Captulo 18
Comunicaciones
18.1. Estaci on de control-quadrotor
18.1.1. Requerimientos
Un UAV debe recibir las ordenes de vuelo desde un punto externo al mismo llamado estacion de
control. Del mismo modo, debe enviar informacion acerca de su situacion o de los datos recogidos en
su vuelo, por ello es necesario establecer una comunicacion inalambrica bidireccional.
Con los objetivos actuales de dise no es fundamental ser capaces de enviar al quadrotor las con-
signas necesarias. Por otra parte sera interesante para el proceso de mejora del controlador y de la
identicacion del modelo ser capaces de recibir los cuatro grados de libertad controlados, es decir, la
posicion en el eje vertical y la orientacion del quadrotor. Esto da lugar a la necesidad de enviar y
recibir 8 datos de 2 bytes cada uno, es decir, 128 bits.

Esta transmision se lleva a cabo entre un PC
y el microcontrolador a traves de una conexion serie empleando el modulo UART (seccion 18.2.2 de
la pagina 88).
Por compatibilidades con los sistemas estandar se va a emplear un protocolo de transmision a la
maxima velocidad permitida como el que sigue:
Baud rate: 921600 bps
Bits por dato: 8
Paridad: ninguna
Bits de parada: 1
Control por hardware: ninguno
Que en forma abreviada se expresa tal que 921600-N-8-1. Con estos datos puede calcularse con
exactitud el tiempo de transmision y recepcion seg un
t
t
rans[s] =
N(bd +bp)
BR
=
16 (8 + 1)
921600
= 156,25s (18.1)
siendo BR el Baudrate, bd los bits por dato, bp los bits de parada y N el n umero de bytes enviados.
18.1.2. Opciones inalambricas
Las opciones para establecer la comunicacion son m ultiples, y van a ser analizados los siguientes
factores de algunas de ellas: precio, alcance, sensibilidad, consumo, ancho de banda y dicultad de
implementacion. La comparativa entre estas se puede ver en la tabla resumen de la gura 18.1 .
84 18.1. Estacion de control-quadrotor
Dispositivo Ancho de banda Potencia Consumo Sensibilidad Precio Dicultad
RF 433 Mhz Insuciente Congurable Bajo N/A N/A Baja
WiFi 1 a 11 Mbps 18 dBm 500 mW -85 dBm 23.80 $ Alta
Bluetooth 2.1 a 160 kbps 4 dBm 175 mW -84 dBm 29.30 $ Media
ZigBee 250 kbps 0 dBm 165 mW -92 dBm 70.85 $ Media
Figura 18.1: Comparativa de sistemas de comunicacion.
Con esta comparativa resulta ya claro que algunas opciones quedan eliminadas. Se rechaza el radio
modem a 433 Mhz dado que su ancho de banda disminuye mucho con la frecuencia, no alcanzando
el valor necesario para realizar la transmision en el tiempo requerido. Por otro lado, el consumo del
protocolo de transmision WiFi es excesivo y el ancho de banda innecesario. Se analiza por tanto las
ventajas y desventajas de las dos opciones restantes.
Comunicacion mediante ZigBee
Se va a proceder a analizar el modulo de comunicacion mediante ZigBee. Se escoge un modulo de
la empresa DIGI llamado XBee con las siguientes caractersticas:
Frecuencia de operacion: 2.4 GHz banda ISM
Potencia: 0 dBm (1 mW)
Alcance: 30 m en interior y 90 m sin obstaculos
Sensiblidad: -92 dBm
Velocidad de transmision: 1200 bps - 250 kbps (se soportan baudrates no estandar)
Elementos de seguridad:
Reintentos y Agradecimientos (Acknowledgements)
DSSS (Direct Sequence Spread Spectrum)
Elementos de redes avanzadas:
Cada canal de secuencia directa tiene 65535 direcciones unicas de red.
Direccionamiento de fuente / destino
Comunicaciones Unicast y Broadcast
Punto a punto, punto a multipunto
Soporta topologas peer-to-peer, de nodos
Corriente de pico en transmision: 45 mA (3.3 V)
Corriente de pico en recepcion: 50 mA (3.3 V)
Corriente en reposo: < 10 A
Temperatura de trabajo: -40C a 85C
Tama no: 0.960x 1.087(24.38 mm x 27.61 mm)
Como se aprecia en estas caractersticas, los modulos de ZigBee aportan muchsimas opciones para la
creacion de redes con distintas conguraciones, pero no aportan ventajas signicativas en este caso en
el que la red unicamente cuenta con dos nodos.
Uno de sus puntos fuertes es su bajo consumo en reposo, pero no reportara benecios dada la
actividad requerida.
18. Comunicaciones 85
Comunicacion mediante Bluetooth
En cuanto a la comunicacion va Bluetooth se escoge el V3 de Micro4you studio cuyas caractersti-
cas son:
Chip Bluetooth: CSR BC417143
Protocolo Bluetooth: Bluetooth Specication v2.0 + EDR
Protocolo USB: USB v1.1 / 2.0
Frecuencia de operacion: 2.4 a 2.48 GHz banda ISM sin licencia
Modulacion: GFSK (del ingles Gaussian Frequency Shift Keying)
Potencia: = 4 dBm, Bluetooth Clase 2
Alcance: 20 a 30 m con lnea de vision
Sensibilidad: =-84 dBm al 0.1 % BER
Velocidad de transmision:
Modo asncrono: 2.1Mbps (Max) / 160 kbps
Modo sncrono: 1Mbps / 1Mbps
Elementos de seguridad: Autenticacion y encriptado
Baudrate: 4800 a 1382400 / N / 8 / 1
Indicador por LED
Alimentacion: de 3.5 V a 8 V DC y 3.3 V DC / 50 mA
Temperatura de trabajo: -20C a 55C
Tama no: 40 x 20 x 13 mm
El modulo Bluetooth cumple a la perfeccion todos los requisitos para realizar la transmision. Entre
sus caractersticas destaca el hecho de que este adaptado al protocolo USB 2.0 lo cual facilita el empleo
de un PC como estacion de control y la amplia implantacion en el mercado.
Eleccion para el sistema. Implementacion
Vista esta comparativa se va a escoger el modulo Bluetooth V3 de Micro4you studio. Su cone-
xion debe realizarse a traves del m odulo UART del microcontrolador (ver seccion 18.2 del presente
captulo).
El principal elemento de la implementacion de este modulo reside en la conguracion del mismo.
Esto se lleva a cabo a traves de la terminal serie de cualquier PC a traves de una secuencia de comandos
que se describen a continuacion:
1. Envo: AT (Iniciar conguracion)
2. Respuesta: OK
3. Envo: AT+UART=<921600,0,0< (Establecer protocolo 921600-N-8-1)
4. Respuesta OK
5. Envo: AT+PSWD?
6. Respuesta: +PSWD:<1234< OK
86 18.2. Inter-integrados
Dispositivo I
2
C UART 5V 3.3V
Acelerometro S No No S
Giroscopio S No No S
Br ujula S No No S
Barometro S No No S
Ultrasonidos S No S No
Bluetooth No S S S
ATMega328P S S No S
PIC18F27J53 S S No S
Figura 18.2: Tecnologas de comunicacion inter-integrada de la instrumentacion del quadrotor.
7. Envo: AT+NAME?
8. Respuesta: +NAME:<HW-SPP-1800-2< OK
Como puede verse se ha establecido la comunicacion a la velocidad deseada y se ha obtenido el
nombre del dispositivo y su contrase na para poder emparejarlo con cualquier el dispositivo que vaya
a actuar como estacion de control.
18.2. Inter-integrados
Ademas de las comunicaciones externas deben comunicarse correctamente todos los elementos
electronicos del quadrotor como parte fundamental de su instrumentacion. Es necesario pues establecer
un vnculo entre los siguientes elementos: el acelerometro, el giroscopio, la br ujula digital, el barometro,
el sensor de ultrasonidos, la unidad de control del AHRS, el microcontrolador y el modulo Bluetooth.
La tabla 18.2 contiene una relacion de las tecnologas de comunicacion inter-integrados incorpora-
das por cada elemento y los niveles de tension soportados. Como muestra la gura 17.7 de la pagina 81
es un requisito imprescindible que todos los sensores establezcan una comunicacion con la unidad de
control del AHRS, de tal manera que resulta evidente que estas van a realizarse a traves del protocolo
I
2
C del modo que se a ver en la seccion 18.2.1.
El uso de cualquier protocolo implica por s mismo la necesidad de que los niveles de tension sean
el mismo, cosa que no ocurre en el caso del sensor de ultrasonidos. Se ve en la tabla 18.2 que el nivel
logico del sensor es de 5V mientras que el microcontrolador del AHRS trabaja a 3.3V. No obstante
esto tiene soluci on, y se va a tratar en la seccion 18.2.1.
La comunicacion entre los dos microcontroladores podra establecerse tambien por I
2
C, pero se
va a hacer por medio del modulo UART por dos motivos: en primer lugar se ha preferido dejar este
bus reservado exclusivamente para los sensores y en segundo lugar la comunicacion serie va UART,
por ser asncrona, favorece la comunicacion entre los microcontroladores.
Por ultimo, la comunicacion entre el PIC18F27J53 y el modulo Bluetooth se va a realizar a traves
del UART por ser el unico modo de compatibilidad posible.
18.2.1. El protocolo I
2
C
Descripcion
Su nombre viene del ingles Inter-Integrated Circuit, Circuitos Inter-Integrados. La version 1.0 data
del a no 1992 y la version 2.1 del a no 2000y fue dise nado por Philips. La velocidad es de 100Kbps en el
modo estandar y de 400Kbps en el modo rapido (fast mode), aunque tambien permite velocidades de
3.4 Mbps. Es un bus muy usado en la industria, principalmente para comunicar microntroladores y sus
18. Comunicaciones 87
perifericos en sistemas integrados (Embedded Systems) y generalizando mas para comunicar circuitos
integrados entre si que normalmente residen en un mismo circuito impreso.
La principal caracterstica de I
2
C es que utiliza dos lneas para transmitir la informacion: una
para los datos y por otra la se nal de reloj. Tambien es necesaria una tercera lnea, pero esta solo es la
referencia (masa) y como suelen comunicarse circuitos en una misma placa que comparten una misma
masa esta tercera lnea no suele ser necesaria. Las lneas se llaman:
SDA: datos
SCL: reloj
GND: tierra
Las dos primeras lneas son drenador abierto, por lo que requieren el uso de resistencias pull-up.
Estos dispositivos tienen la caracterstica de congurarse en modo maestro o esclavo. En un mismo
bus de datos puede haber m ultiples esclavos identicados por una direccion unica y m ultiples maes-
tros. El dispositivo maestro inicia la transferencia de datos y ademas genera la se nal de reloj, esta
caracterstica hace que al bus I
2
C se le denomine bus multimaestro. Las transacciones en el bus I
2
C
tienen el formato mostrado en la gura 18.3 y descrito a continuacion:
1. El bus esta libre cuando SDA y SCL estan en estado logico alto.
2. En estado bus libre, cualquier dispositivo puede ocupar el bus como maestro.
3. El maestro comienza la comunicacion enviando un patron llamado start condition. Esto alerta
a los dispositivos esclavos, poniendolos a la espera de una transaccion, se dirige al dispositivo
con el que quiere hablar, enviando un byte que contiene los siete bits (A7-A1) que componen la
direccion del dispositivo esclavo con el que se quiere comunicar, y el octavo bit (A0) de menor
peso se corresponde con la operacion deseada: lectura=1 (recibir del esclavo) y escritura=0
(enviar al esclavo).
4. La direccion enviada es comparada por cada esclavo del bus con su propia direccion, si am-
bas coinciden, el esclavo se considera direccionado como esclavo-transmisor o esclavo-receptor
dependiendo del bit A0.

Este responde enviando un bit de ACK que le indica al dispositivo
maestro que el esclavo reconoce la solicitud y esta en condiciones de comunicarse. Seguidamente
comienza el intercambio de informacion entre los dispositivos.
5. El maestro enva la direccion del registro interno del dispositivo que se desea leer o escribir.
6. El esclavo responde con otro bit de ACK
7. Ahora el maestro puede empezar a leer o escribir bytes de datos. Todos los bytes de datos deben
constar de 8 bits, el n umero maximo de bytes que pueden ser enviados en una transmision no
esta restringido, siendo el esclavo quien ja esta cantidad de acuerdo a sus caractersticas. Cada
byte ledo/escrito por el maestro debe ser obligatoriamente reconocido por un bit de ACK por
el dispositivo maestro/esclavo. Se repite este paso hasta nalizar la comunicacion entre maestro
y esclavo.
Aun cuando el maestro siempre controla el estado de la lnea del reloj, un esclavo de baja
velocidad o que deba detener la transferencia de datos mientras efect ua otra funcion, puede forzar
la lnea SCL a nivel bajo. Esto hace que el maestro entre en un estado de espera, durante el cual,
no transmite informacion esperando a que el esclavo este listo para continuar la transferencia en
el punto donde haba sido detenida.
8. Cuando la comunicacion naliza, el maestro transmite una stop condition para dejar libre el
bus. Despues de esta, es obligatorio para el bus estar libre durante unos microsegundos.
88 18.2. Inter-integrados
Figura 18.3: Secuencia de comunicacion en el protocolo I
2
C.
Compatibilidad ente diferentes niveles l ogicos
Con la inclusion de los nuevos niveles logicos para reducir el consumo electrico de los circuitos
integrados, puede darse el caso de tener un bus I
2
C de tal manera que parte de los dispositivos
trabajen a un determinado nivel logico y otros a uno distinto e incompatible.
Seg un se especica en las notas al respecto dadas por PHILIPS [14], creadora del protocolo I
2
C es
posible comunicar estos dispositivos a traves de un adaptador de niveles logicos .

Este debe contar con
los elementos descritos en el esquematico de la gura 18.4a. Para ello hay modulos comerciales que
simplican esta labor, como por ejemplo el m odulo escogido para solventar el problema de la inclusion
del sensor ultras onico SRF-235 en el bus I
2
C, un BOB-08745 de la casa Sparkfun.
(a) (b)
Figura 18.4: Adaptador de niveles logicos. a) Esquematico. b) Modelo comercial de Sparkfun.
18.2.2. UART
El controlador del UART es el componente clave del subsistema de comunicaciones series de una
computadora. El UART toma bytes de datos y transmite los bits individuales de forma secuencial.
En el destino, un segundo UART reensambla los bits en bytes completos. La transmision serie de la
informacion digital (bits) a traves de un cable unico u otros medios es mucho mas efectiva en cuanto
a costo que la transmision en paralelo a traves de m ultiples cables. Se utiliza un UART para convertir
la informacion transmitida entre su forma secuencial y paralela en cada terminal de en lace. Cada
UART contiene un registro de desplazamiento que es el metodo fundamental de conversion entre las
forma serie y paralelo .
Captulo 19
Dise no del circuito
El circuito de control del quadrotor debe englobar todos los sistemas electronicos necesarios para
llevar a cabo las comunicaciones y el control. El empleo de demoboards como la proporcionada por
Microchip para la realizacion de pruebas con los microcontroladores esta completamente descartada
por su peso y falta de robustez. Es necesario dise nar una PCB con el las pistas, oricios y conexiones
necesarias para:
Microcontrolador PIC18F27J53 (seccion 19.1).
Modulo bluetooth V3 (seccion 18.1.2).
AHRS y barometro Mongoose 9DoF (seccion 17.3).
Sensor de ultrasonidos SRF235 (seccion 17.1.4).
Adaptador de niveles logicos BOB-08745 (seccion 17.1.4).
4 salidas para cada uno de los ESC (captulo 15).
Pulsador de reinicio.
Pines compatibles con los modulos ICSP (seccion 19.1).
Filtrado de la se nal de alimentacion.
Agujeros para el atornillado a la estructura (captulo 20).
19.1. Microcontrolador
La eleccion del microcontrolador es un punto clave del dise no. Debe cumplir los requerimientos
necesarios para el dise no pero tratando de mantenerse en las familias de microcontroladores de bajo
coste. Por el conocimiento de la programacion de microcontroladores PIC de Microchip en lenguaje
ensamblador, se va a optar por un microcontrolador de dicha familia.
Las especicaciones requeridas para el dise no son las siguientes:
Puertos de comunicacion UART. Se requieren dos puertos de comunicaciones UART. Gracias a
esta funcion se puede establecer una comunicacion bidireccional entre el microcontrolador y un
ordenador u otro microcontrolador. Uno de ellos se dedica a la comunicacion con el AHRS y el
otro a las comunicaciones con la estacion de control (ver captulo 18 para mas informacion).
Timers. Se van a requerir cinco timers. Uno de ellos se emplea para la temporizacion del periodo
de muestreo mientras que los otros sirven para implementar por software cuatro salidas PWM
de entre 50 y 250 Hz.
90 19.2. Dise no del layout
Pines de entrada/salida. Se requieren al menos cuatro pines de entrada salida para las se nales
PWM que controlan los ESC.
Frecuencia del oscilador principal. El oscilador principal debe trabajar al menos a 35 Mhz. Por el
coste computacional que conlleva los calculos con exactitud del controlador al emplear variables
de coma otante y control borroso, el tiempo de ciclo por instruccion es crtico.
Con estos requerimientos se elije el PIC18F27J53 que cumple a la perfeccion estas caractersticas.
El microcontrolador va a ser programado en lenguaje C y a partir de aqu el compilador CCS[11]
(captulo 21 se encargara de generar el codigo en lenguaje ensamblador que mediante el programa
proporcionado por Microchip (MPLab) se implementara en el propio microcontrolador.
19.2. Dise no del layout
El dise no del layout del circuito se ha realizado con el apoyo del software EAGLE en base a las
especicaciones vistas y tratando de reducir al maximo el espacio empleado. Los pines que se observan
en la gura 19.1a se han colocado de tal manera que cada elemento pueda ser encajado en el lugar
correcto. Tambien se han incluido oricios para atornillar el AHRS y jar la placa a los brazos de la
estructura seg un se muestra en la gura 20.1. Las dimensiones de los componentes han sido extradas
de sus respectivas hojas de caractersticas.
Para la fabricacion del circuito impreso se ha optado por el metodo de jacion por transferencia
termica y atacado con acido. Para esto es necesario imprimir la gura 19.1a en alg un tipo de papel
fotograco con una impresora laser para a continuacion jar el toner mediante la aplicacion de calor
al cobre de una placa virgen. De este modo la parte cubierta por el toner no sera atacada por el acido
que al eliminar el cobre expuesto va a denir las pistas. El resultado nal puede verse en la gura
19.1b.
(a) (b)
Figura 19.1: Circuito impreso del quadrotor. a) Layout para la impresion de pistas. b) PCB ensam-
blada.
Captulo 20
Dise no de la estructura
En el presente captulo van a tratarse los requerimientos de la estructura del quadrotor y la solucion
adoptada para cumplir los mismos. La caracterstica com un a todos sus elementos debe ser la ligereza,
pues una estructura pesada va a reducir no solo la autonoma del quadrotor, bastante limitada de por
s, sino su maniobrabilidad.
Debe constar con los siguientes elementos: 4 brazos para soportar en sus extremos los motores,
placas centrales para anclar los brazos, espacio suciente para alojar las bateras, un soporte para el
sensor de ultrasonidos, espacio para los ESC y un soporte para el circuito impreso.
En la gura 20.1 se muestran las vistas diedricas y una vista axonometrica del resultado del
dise no. Los planos mostrados a lo largo del presente captulo han sido generados a partir de un
modelo tridimensional de Catia (software realizado por Dassault Systems). Esto otorga una gran
ventaja pudiendo obtener el valor del tensor de inercia y de la masa de la estructura, datos necesarios
para la simulacion del modelo.
En las secciones 20.1 y 20.2 del presente captulo se van a abordar los condicionantes del dise no y
como se ha llegado a la solucion presentada.
20.1. Brazos de la estructura
El dise no de los brazos de la estructura se ha realizado en base a lo siguiente:
Debe contar con los oricios necesarios para alojar el motor. La distancia entre ellos se muestra
en la gura 14.1 de la pagina 65.
Se deben poder anclar a las placas centrales de la estructura.
Ligeros. El peso es un elemento clave en todos los elementos de la estructura.
Rgidos. Dado que no se han supuesto modelos de elasticidades de la estructura en el modelado,
las exiones al estar sometidos a las fuerzas de empuje deben ser despreciables.
Tenaces. Al ser los elementos mas largos de la estructura deberan soportar grandes momentos
en caso de impacto.
Para cumplir con las especicaciones de tenacidad y ligereza se ha optado por unos brazos de
aluminio. La rigidez se logra con la eleccion de perles cuadrados de 8 milmetros de lado.
En cuanto al anclaje a la estructura, cada brazo ira jado mediante cuatro tornillos pasantes que
lo jara a las placas. La disposicion de estos as como el resto de dimensiones se pueden ver en la
gura 20.2. En los detalles B y C de la gura 20.4 pueden verse los anclajes al motor y a la placa
central respectivamente.
92 20.2. Placas centrales
Figura 20.1: Vistas en sistema diedrico del conjunto. Vista isometrica.
Figura 20.2: Dimensiones de los brazos de la estructura.
20.2. Placas centrales
La placa central que soporta los brazos debe ser lo sucientemente resistente para soportar los
momentos y tracciones a los que va a ser sometido, no obstante hay que mantener la ligereza. En
este elemento es muy importante la precision dimensional para mantener la perpendicularidad ente
los brazos, por este motivo se ha optado por fabricarla por corte laser en metacrilato. Se probaron
espesores de 2, 4 y 6 milmetros, siendo la placa de 4 milmetros la que mejor compromiso ofreca
entre rigidez y peso.
La forma optada deba ofrecer:
La maxima supercie de apoyo de los brazos minimizando el area. Para solucionar esto, se anclan
los brazos diagonalmente.
Un oricio por el que pasar los cables de la instrumentacion del sensor de ultrasonidos, y en caso
de ser necesario los de alimentacion de los motores o envo de la consigna del ESC.
20. Dise no de la estructura 93
Los oricios necesarios para anclar los brazos.
Aprovechando los tornillos que jan los brazos a la estructura, se da solucion al alojamiento del
circuito impreso, que a traves de unos separadores se sit ua sobre los brazos de la estructura. Su
disposicion se muestra en lo mas alto del detalle C de la gura 20.4. Por supuesto y para aislar al
circuito de la estructura, las arandelas que incorpora deben ser de un material aislante, en este caso
nylon.
Ademas de esta placa estructural, para solucionar la cuestion del alojamiento de las bateras y
soporte del sensor de ultrasonidos, se ha dise nado otra placa en el mismo material que la anterior. Al
no tener que soportar mas que los esfuerzos provocados por el peso de las bateras y el sensor, en este
caso el espesor es de 2 milmetros.
La forma de esta segunda placa debe cumplir las siguientes caractersticas:
Debe tener oricios para anclarse a la placa principal de la estructura.
Debe alojar el sensor de ultrasonidos. Para esto y como se ve en la gura 17.2 de la pagina 77,
es necesario practicar un oricio central que aloje el transductor, y dos oricios para en anclaje
del circuito impreso.
El area de la placa debe ser tal que pueda alojar tanto las bateras como el sensor. Esto va a ser
determinante para las dimensiones de la misma.
En la gura 20.3 puede verse la placa estructural y la placa inferior de soporte de las bateras y
el sensor de altura. Asimismo en la gura 20.4, detalle C, pueden verse seccionadas diagonalmente
ambas placas.
Figura 20.3: Dimensiones de las placas de soporte de la estructura.
94 20.2. Placas centrales
Figura 20.4: Seccion transversal. Detalle de anclaje del motor y cuerpo de la estructura.
Captulo 21
Implementaci on en CCS
21.1. Introducci on
21.2. Rutinas auxiliares
21.2.1. Programaci on del control electronico de velocidad
En la seccion 15.3 de la pagina 68 se ha visto como debe congurarse el control electronico de
velocidad. Dado que es un proceso que no es complicado en el caso disponer de un mando, pero puede
resultar algo tedioso tratandose de un ESC controlado por un microcontrolador, se ha creado una
rutina que simplique el trabajo realizando de forma automatica la conguracion escogida.
La conguracion se elige mediante el parametro de 8 bits que se le pasa a la funcion tal como se
muestra en las lneas 4 a 18 de la gura 21.1. Sin embargo no se da la opcion de modicar el tipo de
bateras empleado dado que esto no va a ser necesario.
La rutina de lo que se encarga es de generar los cambios de referencia y los tiempos entre estos
necesarios para llevar a cabo la conguracion seg un marcan las instrucciones. Tiene dos rutinas au-
xiliares que no se han incluido por su escasa relevancia que establecen la consigna al maximo y al
mnimo respectivamente empleadas en las lneas 47 a 60.
21.2.2. Encoder
La rutina que obtiene la informacion del Encoder (gura 21.2) lo que hace es actualizar cada
ciclo de interrupcion las variables de pulsos recibidos (enc), velocidad escalada (velocidad) y pulsos
acumulados (acu). La velocidad se calcula promediada cada 10 ciclos (gura 21.2, lneas 12 a 16), es
decir, cada 100 ms. De este modo se conoce la velocidad con precision a la hora de realizar el diagrama
estatico. En el caso de los ensayos de escalon se emplea el valor de pulsos acumulados para no perder
informacion (gura 21.2, lnea 8).
21.3. Libreras de control
Como base para las pruebas de los diferentes controladores para el quadrotor, se han creado una
serie de funciones de gran utilidad para ser implementadas en cualquier otro sistema. Estas funciones
se engloban en la librera control automatico.h y debe incluirse al compilar el programa principal.
La librera cuenta con los siguientes elementos:
Funciones para el calculo de la derivada y la integral.
96 21.3. Libreras de control
1 void programacionESC(int SETUP ESC) {
2
3 /
*
4 b7.b6.b5.b4.b3.b2.b1.b0
5
6 b7: brake 1 on
7 0 off
8 b6: cutoff mode 1 cutoff
9 0 softcut
10 b5.b4: cutoff thres 00 low
11 01 med
12 10 high
13 b3.b2: startup mode 00 normal
14 01 soft
15 10 supersoft
16 b1.b0: timing 00 low
17 01 med
18 10 high
19
20
*
/
21
22 int b,com,cot,s,t,t b,t com,t cot,t s,t t;
23 b=SETUP ESC/128;
24 com=(SETUP ESC&0b01000000)/64;
25 cot=(SETUP ESC&0b00110000)/16;
26 s=(SETUP ESC&0b00001100)/4;
27 t=SETUP ESC&0b00000011;
28
29 if(b==1) t b=55;
30 else t b=15;
31
32 if(com==1) t com=60;
33 else t com=25;
34
35 if(cot==0) t cot=25;
36 if(cot==1) t cot=60;
37 if(cot==2) t cot=95;
38
39 if(s==0) t s=25;
40 if(s==1) t s=60;
41 if(s==2) t s=95;
42
43 if(t==0) t t=25;
44 if(t==1) t t=60;
45 if(t==2) t t=95;
46
47 salida=255;
48 while(!cancion) ;
49 delay ms(1000);
50 ESCmin(t b); //setup brake
51 ESCmax(60);
52 ESCmin(15); //setup Lipoly
53 ESCmax(60);
54 ESCmin(t com); //setup cutoff mode
55 ESCmax(60);
56 ESCmin(t cot); //setup cutoff threshold
57 ESCmax(70);
58 ESCmin(t s); //setup startup mode
59 ESCmax(70);
60 ESCmin(t t); //setup timing
61 ESCmax(30);
62 ESCmin(10);
63 }
Figura 21.1: Rutina de programacion del ESC.
21. Implementacion en CCS 97
1 void encoder(void)
2 {
3 int encL;
4 encL=get timer0(); //ACTUALIZACI

ON DEL CONTADOR DE PULSOS DEL ENCODER


5 set timer0(0);
6 enc=enc+encL+encH
*
256;
7 encH=0;
8 acu=acu+enc;
9
10
11 cont vel=cont vel+1;
12 if(cont vel>9)
13 { cont vel=0;
14 velocidad=enc; //PARA MEDIR LA VELOCIDAD DEL ENCODER
15 enc=0;
16 }
17
18 }
Figura 21.2: Rutina del Encoder.
Por el metodo de discretizacion hacia atras.
Por el metodo Tustin o trapezoidal.
Funcion para la implementaci on de un controlador digital del orden deseado.
Funciones para el calculo de los grados de pertenencia de cualquier n umero de variables a los
conjuntos de sus respectivos universos.
Funciones para el calculo del nivel de activacion de las reglas borrosas a partir de los antecedentes
correspondientes.
Funciones de desemborronamiento.
Para Mandami.
Para Sugeno.
Se va a ver una descripcion detallada de cada una de ellas para comprender su funcionamiento y
ver sus posibilidades y limitaciones. Han sido agrupadas en funciones de control clasico y de control
borroso.
21.3.1. Librera de control clasico
Discretizacion
La aproximacion de la variable compleja de Laplace s puede abordarse por dos caminos diferentes,
aunque ambos llegan a la mismas conclusiones.
El primero implica la aproximacion discreta del valor de la integral de la entrada a lo largo del
tiempo
Y (s) =
1
s
U(s) y(t) =
_
t
0
u()d = y(t T) +
_
t
tT
u()d . (21.1)
98 21.3. Libreras de control
Para t = kT en el intervalo de tiempo (k 1)T < < kT, la aproximacion puede realizarse por
rectangulos minorantes
u() u
k1
y
k
= y
k1
+T u
k1
I(z) =
T
z 1
, (21.2)
rectangulos mayorantes
u() u
k
y
k
= y
k1
+T u
k
I(z) =
Tz
z 1
, (21.3)
o por trapecios
u() u
k1
+
u
k
u
k1
T
( (k 1)T) y
k
= y
k1
+
T
2
(u
k1
+u
k
) I(z) =
T
2
z + 1
z 1
. (21.4)
(21.5)
De estos tres metodos la aproximacion por triangulos minorantes resulta en un controlador irrealizable
para el caso de la integral. La aproximacion por triangulos mayorantes o la aproximacion trapezoidal
no ofrecen ning un problema. En la aproximacion discreta de la derivada de la entrada a lo largo del
tiempo en el intervalo de tiempo (k 1)T < < kT
Y (s) = s U(s) y(t) =
du
dt
, (21.6)
se puede realizar las mismas hipotesis obteniendo en este caso la derivada en diferencias hacia adelante
y
k
=
u
k+1
u
k
T
D(z) =
z 1
T
, (21.7)
en diferencias hacia atras
y
k
=
u
k
u
k1
T
D(z) =
z 1
Tz
, (21.8)
y Tustin
y
k
= y
k1
+
T
2
(u
k1
+u
k
) D(z) =
2
T
z 1
z + 1
. (21.9)
(21.10)
Ahora resulta evidente que la derivada en diferencias hacia adelante es irrealizable, pues requiere tener
la muestra siguiente. Ambos metodos conducen a las mismas tres posibilidades de discretizacion. En
la librera se presentan funciones para el calculo de los dos casos realizables mostrados. Estas funciones
pueden servir para realizar controladores tipo P, PD, PI o PID introduciendo directamente los valores
de las ganancias correspondientes.
En las guras 21.3 y 21.4 se muestra el calculo de la derivada y la integral seg un lo descrito
en las ecuaciones 21.8 y 21.3 respectivamente. En las guras 21.5 y 21.6 puede verse el calculo de
la derivada y la integral seg un el metodo de discretizacion Tustin descrito en las ecuacion21.9 y 21.4
respectivamente. De estos dos metodos en el caso de discretizar controladores impropios se empleara la
aproximacion en diferencias hacia atras porque en estos casos el metodo Tustin introduce un polo en
el crculo unidad.
Controlador de segundo orden o inferior
Si bien se pueden emplear las funciones anteriores para programar cualquier controlador, la opcion
mas comoda es la de introducir directamente sus coecientes a partir de una expresion del tipo
D(z) =
n
0
+n
1
z
1
+n
2
z
2
+n
n
z
n
d
0
+d
1
z
1
+d
2
z
2
+d
n
z
n
. (21.11)
21. Implementacion en CCS 99
1 signed long derivada atras(signed long x 0, signed long x 1) {
2
3 signed long d 0;
4
5 d 0=x 0x 1;
6 d 0=d 0
*
100; //1/T
7 return(d 0);
8 }
Figura 21.3: Rutina de calculo de la derivada discretizando hacia atras.
1 float integral atras(signed long x 0,float i 1) {
2
3 float i 0;
4
5 i 0=x 0
*
0.01; //T=0.01
6 i 0=i 1+i 0;
7 return(i 0);
8 }
Figura 21.4: Rutina de calculo de la integral discretizando por rectangulos mayorantes.
1 signed long derivada tustin(signed long x 0, signed long x 1, singned long d 1) {
2
3 signed long d 0;
4
5 d 0=x 0x 1;
6 d 0=d 0
*
2
*
100d 1; //1/T=100
7 return(dx);
8 }
Figura 21.5: Rutina de calculo de la derivada discretizando trapezoidalmente.
1 float integral tustin(signed long x 0,signed long x 1, float i 1) {
2
3 flaot i 0;
4
5 i 0=x 0+x 1;
6 i 0=i 0
*
0.01/2+i 1; //T=0.01
7 return(i 0);
8 }
Figura 21.6: Rutina de calculo de la integral discretizando trapezoidalmente.
100 21.3. Libreras de control
1 #define sistemas 4
2 #define orden 2
3
4 float control digital(signed long e0,int i, short start) {
5
6 int m;
7 signed long e[sistemas][orden+1];
8 float ud[sistemas][orden+1];
9 float coefs[sistemas][(orden+1)
*
2]={ {0.164864,0.327047,0.162248,1,0,1}, ...
{0.164864,0.327047,0.162248,1,0,1}, {0.164864,0.327047,0.162248,1,0,1}, ...
{0.164864,0.327047,0.162248,1,0,1}};
10
11
12 if(!start) {
13 m=0;
14 for(m=0;m<=orden;m++) {
15 e[i][m]=0;
16 ud[i][m]=0;
17 }
18 }
19 else {
20 ud[i][0]=0;
21 e[i][0]=e0;
22 m=0;
23 for(m=0;m<=orden;m++) ...
ud[i][0]=ud[i][0]+coefs[i][m]
*
e[i][m]coefs[i][m+3]
*
ud[i][m];
24 }
25 m=0;
26 for(m=0;m<orden;m++) {
27 e[i][ordenm]=e[i][orden1m];
28 ud[i][ordenm]=ud[i][orden1m];
29 }
30 return(ud[i][0]);
31 }
Figura 21.7: Rutina de un controlador digital de segundo orden o inferior.
Con esta premisa se ha creado la rutina mostrada en la gura 21.7, en la cual esta particularizado
para el caso de un controlador de segundo orden o menor. No obstante, el orden puede aumentarse
de manera sencilla como se detallara a continuacion. Notese que aunque puede emplearse esta misma
rutina para un orden menor no se recomienda puesto que se esta perdiendo un tiempo que puede
resultar necesario para otras acciones.
Atendiendo a los parametros del algoritmo de control, se puede ver en la lnea 1 de la gura 21.7
que tiene como entradas: la entrada del controlador (e0), una variable tipo entero (i) y una variable
binaria (start); y como salida una variable otante que sera nuestra accion de control (ud[i][0]).
Resulta evidente la nalidad de la primera entrada, pero no es as para las otras dos.
El controlador esta dise nado para controlar un sistema multivariable desacoplado, por ello se va a
requerir implementar distintos valores de los coecientes del controlador y almacenar sus respectivas
muestras de periodos anteriores. A partir de esta necesidad, se incorpora el parametro i para la
eleccion del controlador adecuado. En el caso de implementar la funcion para un sistema con un
n umero diferente de entradas, hay que modicar el valor de la constante variables (gura 21.7, lnea
1) y la matriz coefs, lnea 9.
El tercer parametro de la funcion es una variable binaria que permite decidir cuando controlar
el sistema, siendo la salida de la funcion nula el resto del tiempo. Esto puede resultar util para la
depuracion de otros sistemas, y fundamentalmente tiene la nalidad de permitir a la funcion haberse
ejecutado como mnimo orden veces para su correcto funcionamiento, siendo orden la constante que
dene el orden del sistema, lnea 2. Este requerimiento es fundamental puesto que si no es as no se
asegura que el controlador parta con condiciones iniciales nulas.
21. Implementacion en CCS 101
Al igual que se ha descrito la modicacion del n umero de variables del controlador, el orden de
nuevo unicamente depende de la denicion de las variables. La variable orden ya mencionada con
la que denir el orden del controlador para el funcionamiento interno de la funcion. En cuanto a los
coecientes, es necesario modicar la matriz coefs de tal manera que a cada variable le correspondan
2(orden + 1) coecientes.
Existe aqu un nuevo requisito fundamental, y es que el controlador este expresado de tal manera
que el primer coeciente del denominador sea 1. Se puede ver el modo de introducir los coecientes
de los controladores dise nados, expresados en forma generica como
D
1
(z) =
n
10
+n
11
z
1
+n
12
z
2
+n
1n
z
m
d
10
+d
11
z
1
+d
12
z
2
+d
1n
z
m
(21.12)
D
2
(z) =
n
20
+n
21
z
1
+n
22
z
2
+n
2n
z
m
d
20
+d
21
z
1
+d
22
z
2
+d
2n
z
m
, (21.13)
D
v
(z) =
n
v0
+n
v1
z
1
+n
v2
z
2
+n
vn
z
m
d
v0
+d
v1
z
1
+d
v2
z
2
+d
vn
z
m
(21.14)
en la matriz
coefs =
_

_
n
10
n
11
n
12
. . . n
1n
d
10
d
11
d
12
. . . d
1n
n
20
n
21
n
22
. . . n
1n
d
20
d
21
d
22
. . . d
2n
. . . . . . . . . . . . . . . . . .
n
20
n
21
n
22
. . . n
1n
d
20
d
21
d
22
. . . d
2n
_

_
, (21.15)
siendo d
j0
= 1 j N.
21.3.2. Librera de control borroso
Interfaz de entrada. Emborronamiento
La interfaz de emborronamiento consta conceptualmente de dos pasos: la transformacion de las
entradas en conjuntos borrosos y la medida de los grados de pertenencia a los conjuntos antecedentes
de las reglas.
Para entradas numericas se entiende por emborronamiento unicamente al calculo de los grados de
pertenencia de dichas entradas a los conjuntos borrosos antecedentes correspondientes de cada regla.
En la gura 21.8 se ven 5 conjuntos borrosos que abarcan el universo x. Por reducir el coste compu-
tacional ya de por s elevado, se van a tomar conjuntos triangulares para los conjuntos intermedios y
trapezoidales con dos elementos en innito para los conjuntos extremos.
A
0
A
1
A
2
A
3
A
4
a
0
a
1
a
2
a
3
a
4
x
1
0
Figura 21.8: Conjuntos borrosos.
102 21.3. Libreras de control
Como el tipo de conjunto y la conguracion de los mismos ya esta denida, cada uno va a ser
denido en el programa mediante el valor de x
i
que hace que la pertenencia a dicho conjunto sea 1.
En el caso de la gura correspondera a los valores a
i
. Esta traduccion va a acelerar mucho el proceso
de calculo.
Echando un vistazo a la funcion de calculo de los grados de pertenencia (gura 21.9) se aprecia
en las lneas 1,2 y 3 que nuevamente se dispone de una librera que permite trabajar con los sistemas
SISO, universos de entrada y conjuntos que deseemos. Basta con denir el n umero en las directivas
de pre-proceso denidas en estas lneas. La unica limitacion existente es que todos los sistemas han
de tener en su controlador el mismo n umero de universos y estos el mismo n umero de conjuntos, pero
esto es facilmente adaptable a cualquier requerimiento a traves de las reglas de inferencia borrosa.
Para denir los puntos centrales de cada conjunto borroso se ha dispuesto la matriz R
v x c x u
denida en la lnea 11 de la gura 21.9, siendo v el n umero de variables, c el de conjuntos y u el
de universos. Notese que esta denida como una variable tipo signed long de 16 bits, es decir puede
tomar valores desde -32767 hasta 327687, por ello habra que escalar nuestras entradas de tal manera
que los maximos valores que pueda alcanzar la variable real coincidan con estos lmites.
El resultado de esta funcion es el grado de pertenencia a cada conjunto de entrada de los universos
denidos, siendo 0 el mnimo grado de pertenencia y 65535 el maximo (trabajando de nuevo con
variables de 16 bits) y se presenta en la variable global grados denida en la lnea 5 de la gura 21.9.
Bloque de inferencia borrosa
La inferencia borrosa puede descomponerse en dos pasos: la obtencion del conjunto consecuente
de cada regla y la agregacion para obtener un conjunto de salida.
Todas las reglas (r
i
) han de plantearse secuencialmente combinando todos los conjuntos de cada
universo tal que
r
1
: Si A
1
Y B
1
entonces C
r1
r
2
: Si A
1
Y . . . entonces C
r2
r
3
: Si A
1
Y B
m
entonces C
r3
r
4
: Si A
2
Y B
1
entonces C
r4
.
r
5
: Si A
2
Y . . . entonces C
r5
r
6
: Si A
2
Y B
m
entonces C
r6
. . . . . . . .
(21.16)
Es facil comprobar que esta conguracion da lugar a (conj)
univ
reglas.
Se va a emplear el mnimo como denicion de interseccion. As en la lnea 10 de la gura 21.10
puede verse como realizando el mnimo de los grados de pertenencia de las entradas a los antecedentes
implicados en la regla se obtiene su nivel de activacion. Este nivel y el conjunto consecuente al que
afecta se almacenan en la matriz lambda, la variable global que es modicada por esta funcion.
La librera creada unicamente permite una salida por cada controlador. Los conjuntos consecuentes
que van a emplearse van a ser del tipo singleton, es decir,
C
ri
=
_
1 si x = x
i
0 si x = x
i
, (21.17)
por este motivo la agregacion va a ser tratada en la seccion 21.3.2.
21. Implementacion en CCS 103
1 #define sistemas 4
2 #define universos 2
3 #define conjuntos 5
4
5 long grados[conjuntos][universos];
6
7 void pertenencia(signed long x[universos] ,int controlador) {
8
9 int h=0,j=0;
10 short done=0;
11 signed long conjuntos[sistemas][conjuntos][universos]={ ...
{{10000,20000},{5200,6250},{0,0},{5200,6250},{10000,20000}}, ...
{{10000,20000},{5200,6250},{0,0},{5200,6250},{10000,20000}}, ...
{{10000,20000},{5200,6250},{0,0},{5200,6250},{10000,20000}}, ...
{{10000,20000},{5200,6250},{0,0},{5200,6250},{10000,20000}}};
12
13
14 for(h=0;h<conjuntos;h++) {
15 for(j=0;j<universos;j++) {
16 grados[h][j]=0;
17 }
18 }
19
20 for(j=0;j<universos;j++) {
21 if(x<=conjuntos[controlador][0][j] ) {
22 done=1;
23 grados[0][j]=65535;
24 }
25 if(x>=conjuntos[controlador][conjuntos1][j]) {
26 done=1;
27 grados[conjuntos1][j]=65535;
28 }
29 h=1;
30 while( h<conjuntos && !done ) {
31 if(x<=conjuntos[controlador][h][j]) {
32 float aux1;
33 signed long aux2;
34 aux2=conjuntos[controlador][h][j]conjuntos[controlador][h1][j];
35 aux1=aux2;
36 aux2=xconjuntos[controlador][h1][j];
37 aux1=65535/aux1;
38 grados[h][j]=aux1
*
aux2;
39 grados[h1][j]=65535grados[h][j];
40 done=1;
41 }
42 h=h+1;
43 }
44 done=0;
45 }
46 }
Figura 21.9: Rutina de calculo de los grados de pertenencia a los conjuntos de entrada.
104 21.3. Libreras de control
1 long lambda[conjuntosuniversos][2];
2 #define min(x,y) ((x<y)?x:y)
3
4 void activacion(int controlador) {
5
6 int reglas[sistemas][conjuntosuniversos]={ ...
{0,0,0,1,2,2,1,1,1,4,0,1,2,3,4,0,3,3,3,3,3,4,4,4,4}, ...
{0,0,0,1,2,2,1,1,1,4,0,1,2,3,4,0,3,3,3,3,3,4,4,4,4}, ...
{0,0,0,1,2,2,1,1,1,4,0,1,2,3,4,0,3,3,3,3,3,4,4,4,4}, ...
{0,0,0,1,2,2,1,1,1,4,0,1,2,3,4,0,3,3,3,3,3,4,4,4,4}};
7 int h,j;
8 for(h=0;h<conjuntos;h++) {
9 for(j=0;j<conjuntos;j++) {
10 lambda[h
*
conjuntos+j][0]=min(grados[h][0],grados[j][1]);
11 lambda[h
*
conjuntos+j][1]=reglas[controlador][h
*
conjuntos+j];
12 }
13 }
14 }
Figura 21.10: Rutina de calculo del nivel de activacion de las reglas borrosas.
Desemborronamiento. Mandami
El desemborronamiento en un controlador borroso de Mandami puede realizarse bien por el metodo
de la media de los maximos (en adelante MoM, del ingles Mean of Maxima) o por el metodo del
centro de gravedad (CoG, del ingles Center of Gravity) o centro de area (CoA). Por las ventajas
computacionales que va a reportar se va a emplear el metodo del CoG.
Para el caso de que el universo de salida este discretizado y tenga p elementos, el centroide u sera
u =

p
i=1
z
i
U(z
i
)

p
i=1
U(z
i
)
. (21.18)

Este calculo puede resultar muy costoso, sin embargo, empleando conjuntos consecuentes simetricos
y con areas iguales como ocurre con los singleton y utilizando la suma para la agregacion, U(z
i
) es
el conjunto consecuente del sistema de inferencia, en este caso
U
ri
=
_

i
si z = c
i
0 si z = c
i
, (21.19)
de donde por simplicacion de la ecuacion 21.18 se obtiene el metodo de calculo del centroide
u =

conj
i=1

i
c
i

conj
i=1

i
, (21.20)
el cual tiene implcita la agregacion. En la ecuacion mencionada,
i
es el nivel de activacion de la regla
i y c
i
se corresponde al centroide del conjunto consecuente asignado a dicha regla, que en el caso de
conjuntos singleton se corresponde con su posicion.
(21.21)
La forma de denir el n umero de consecuentes es analoga a la denicion del n umero de sistemas
SISO y universos, se dene en la lnea 1 de la gura 21.11 con la constante consecs. El valor de los
consecuentes esta denido nuevamente por una matriz, esta vez de dimensiones R
var x consecs
, en la
funcion defuzzify.
21. Implementacion en CCS 105
1 #define consecs 5
2
3 void defuzzify(int j) {
4
5 signed long consecuente[sistemas][consecs]={ {4,3,0,3,4}, {4,3,0,3,4}, ...
{4,3,0,3,4}, {4,3,0,3,4} };
6 float num=0,den=0,aux;
7 int h=0,cons;
8
9 for(h=0;h<(conjuntosuniversos);h++) {
10 cons=lambda[h][1];
11 if(lambda[h][0]>0) {
12 aux=lambda[h][0];
13 aux=aux
*
consecuente[j][cons];
14 num=aux+num;
15 den=lambda[h][0]+den;
16 }
17 }
18 u[j]=num/den;
19 }
Figura 21.11: Rutina de desemborronamiento para el modelo de Mandami.
La salida de esta funcion se escribe en la variable global u[j] siendo j el sistema a controlar elegido
elegido. Tanto esta salida como las variables internas de la funcion son de coma otante, puesto que
esta es la parte en la que mas precision se requiere en los calculos.
La forma de proceder consiste en recorrer la matriz lambda modicada en la funcion activacion
mediante el bucle de las lneas 9 a 17 de la gura 21.11 de tal manera que se calcule el numerador y el
denominador de la ecuacion 21.20, para reducir el costo computacional se ha incluido un condicional
ya que lambda[h][0] con el sistema de reglas plantado es nulo en todos los casos salvo en cuatro.
Desemborronamiento. Sugeno
En un modelo borroso de Sugeno, los antecedentes de las reglas son proposiciones borrosas, pero
los consecuentes son funciones de las entradas, por tanto las reglas son del tipo
Si x
1
= A
i
Y x
2
= B
i
Y . . . Y x
n
= B
i
entonces z
i
= f
i
(x
1
, x
2
, ... , x
n
) . (21.22)
Para unas entradas cualesquiera, los resultados de la inferencia para cada regla se obtienen eva-
luando las funciones consecuentes en X
0
= (x
1 0
, x
2 0
, ... , x
n 0
) y multiplicando los resultados por los
niveles de activacion correspondientes, es decir,
z
i
=
i
f
i
(X
0
) , (21.23)
por lo que la salida del sistema borroso obtenida con el metodo de la media ponderada es
z =

n
i=1

i
f
i
(X
0
)

n
i=1

i
. (21.24)
La principal ventaja del modelo de Sugeno es que se pueden implementar controladores con tecnicas
de dise no clasico aprovechando el conocimiento del sistema y hacer una mezcla borrosa de controladores
lineales que da lugar a un controlador no lineal.
La funcion implementada para realizar el desemborronamiento en el modelo de Sugeno (gura
21.12) tiene como parametros el valor de X
0
, denotado x[universos] y j, para elegir el sistema
a controlar. El coste computacional de esta funcion es universos veces superior al del modelo de
Mandami, por lo tanto habra que ser cuidadosos a la hora de denir el n umero de universos a emplear.
106 21.4. Comunicaciones
1 #define consecs 3
2
3 void sugeno(float x[universos], int j) {
4
5 float consecuente[sistemas][consecs][universos]={ ...
{{0.1,0.5},{0.35,0.3},{2,0.2}}, {{0.1,0.5},{0.1,0.5},{0.1,0.5}}, ...
{{0.1,0.5},{0.1,0.5},{0.1,0.5}}, {{0.1,0.5},{0.35,0.3},{2,0.2}} };
6 float num[universos]={0,0},den[universos]={0,0},aux;
7 int h=0, k=0;
8
9 for(h=0;h<(conjuntosuniversos);h++) {
10 cons=lambda[h][1];
11 if(lambda[h][0]>0) {
12
13 for(k=0;k<universos;k++) {
14 aux=lambda[h][0];
15 aux=aux
*
consecuente[j][cons][k];
16 num[k]=aux+num[k];
17 den[k]=lambda[h][0]+den[k];
18 }
19 }
20 }
21 u[j]=0;
22 for(k=0;k<universos;k++) {
23 u[j]=u[j]+num[k]/den[k]
*
x[k];
24 }
25 }
Figura 21.12: Rutina de desemborronamiento para el modelo de Sugeno.
En la funcion mostrada estan denidas dos entradas que podran ser el error y la derivada o la integral
del error dando lugar a una mezcla borrosa de controladores PD o PI.
Comparando la funcion de desemborronamiento de Sugeno con la de Mandami, se aprecia que la
diferencia fundamental es la inclusion de un bucle para el calculo de cada coeciente del polinomio.
La estructura es basicamente la misma y la funcion de Mandami podra ser empleada para Sugeno
sustituyendo universos por 0.
21.4. Comunicaciones
21.4.1. Comunicaci on por I
2
C
La comunicacion por I
2
C es relativamente sencilla, aunque es necesario conocer a la perfeccion el
funcionamiento de este protocolo descrito en la seccion 18.2.1 de la pagina 86. Si bien en la congura-
ci on nal de la instrumentacion del quadrotor el microprocesador principal no va a requerir establecer
comunicaciones va I
2
C, se va a describir brevemente la forma de realizarlas para futuros proyectos.
Se va a presentar como ejemplo la comunicacion con el sensor de altura por ultrasonidos SRF-
235 (seccion 17.1.4 de la pagina 76). El codigo para las comunicaciones esta estructurado en cuatro
funciones genericas para cualquier dispositivo I
2
C (las funciones de lectura, escritura, estado e ini-
cializacion) y parte de codigo que depende del dispositivo a tratar y se inserta en la cabecera y en
nuestro programa principal.
Del codigo de la gura 21.13, las lneas 1 a 4 corresponden al codigo a insertar en la cabecera. El
PIC18F27J53 lleva, al igual que la mayora de los PICs, un puerto I
2
C implementado por hardware.
Debe indicarse con la directiva #USE que va a actuar como maestro, e indicar los pines correspon-
dientes. Dado que el SRF-235 soporta el modo de comunicacion fast (400kHz), se hara funcionar a
esta frecuencia.
21. Implementacion en CCS 107
1 #use i2c(Master,sda=PIN C4,scl=PIN C3,force hw,fast)
2
3 #define srf235 SDA PIN C4
4 #define srf235 SCL PIN C3
5
6 init srf235();
7 write srf235(0x00,0x51);
8 delay ms(9); //se debe hacer mediante interrupciones, solo de ej.
9 a[0]=read srf235(0x10);
10 a[1]=read srf235(0x11);
Figura 21.13: Codigo a insertar en la cabecera del programa. Codigo para la lectura del sensor SRF-
235.
1 void init srf235() {
2 output float(srf235 SCL);
3 output float(srf235 SDA);
4 }
5
6 BOOLEAN srf235 ready() {
7 int1 ack;
8 i2c start();
9 ack = i2c write(0xE0);
10 i2c stop();
11 return !ack;
12 }
13
14 void write srf235(long int address, BYTE data) {
15 while(!srf235 ready());
16 i2c start();
17 i2c write(0xE0);
18 i2c write(address);
19 i2c write(data);
20 i2c stop();
21 }
22
23
24 BYTE read srf235(long int address) {
25 BYTE data;
26
27 while(!srf235 ready());
28 i2c start();
29 i2c write((0xE0| (BYTE)(address>>7))&0xfe);
30 i2c write(address);
31 i2c start();
32 i2c write((0xE0| (BYTE)(address>>7))|1);
33 data=i2c read(0);
34 i2c stop();
35 return(data);
36 }
Figura 21.14: Rutinas para el funcionamiento de los perifericos con protocolo I
2
C.
108 21.5. Programa dise nado para la identicacion
1 #PIN SELECT RX2=PIN B0
2 #PIN SELECT TX2=PIN B1
3
4 #use rs232(UART1,baud=921600,parity=N,bits=8,ERRORS,stream=BT)
5 #use rs232(UART2,baud=1000000,parity=N,bits=8,ERRORS,stream=AHRS)
Figura 21.15: Inicializacion de los modulos UART.
En cuanto al codigo a insertar en el programa, en las lneas 6 a 10 se muestra un codigo de ejemplo
en el que se llevan a cabo las directivas especicadas por el portocolo:
1. Se inicializa la comunicacion.
2. Se inicia la medicion en el modo de medida en centmetros escribiendo en el registro 0 el comando
0x51 (ver tablas 17.4 y 17.3 de la pagina 77).
3. Una vez nalizada se leen los registros correspondientes (tabla 17.3).
Como se puede observar, se han llamado una serie de funciones, estas son init srf235, init srf235,
read srf235 y write srf235; descritas en la gura 21.14.
21.4.2. Comunicaci on mediante el m odulo UART
El PIC18F27J53 incorpora dos modulos UART implementados por hardware, para activar su
funcionamiento es necesario denir el modo de trabajo en la cabecera. Su empleo dentro del programa
principal es sumamente sencillo gracias a las libreras ya aportadas por el compilador CCS.
Las directivas a introducir en la cabecera se describen en la gura 21.15. Se debe precisar el estandar
empleado en la comunicacion. Por compatibilidad con el hyperterminal de Windows, se establece una
comunicacion a la maxima velocidad permitida por el mismo de 921600 bps, sin bit de paridad y
con palabras de 8 bits a traves del UART1. Asimismo se activa la depuracion de errores de envo o
recepcion que podran bloquear el microcontrolador en caso de producirse. Para las comunicaciones
con el AHRS se establece una comunicacion similar pero a una velocidad de 1Mbps.
Dado que el UART2 no tiene unos pines asignados fsicamente, se realiza un mapeo con las di-
rectivas #PIN SELECT. Notese que a cada modulo se le ha asignado una etiqueta: BT para las
comunicaciones con la estacion de control y AHRS para las comunicaciones con la unidad de medida.
Para el envo de un dato a traves de los m odulos UART se emplea la funcion fprintf , puede verse
el uso de esta funcion en la gura 21.29 de la seccion 21.6. La recepcion de datos a traves del modulo
se realiza gracias a las rutinas de interrupci on y la funcion fgetc, pueden verse varios ejemplos de
aplicacion en las rutinas de recepcion de las guras 21.17, 21.26 y 21.27.
21.5. Programa dise nado para la identicacion
Se ha dise nado un programa especco para llevar a cabo todos los aspectos de la identicacion.
Mediante este programa existe la opcion de variar las consignas y obtener la lectura de velocidad del
encoder, as como de variar la programacion del ESC. La conguracion general del microcontrolador
as como rutinas e interrupciones que no han sido modicadas para la programacion nal pueden verse
en la seccion 21.6. A continuacion van a tratarse las modicaciones realizadas.
21. Implementacion en CCS 109
21.5.1. Rutinas de interrupcion
Las siguientes lneas contienen el codigo correspondiente a las interrupcion por desbordamiento
del timer 0, el timer 1 y el timer 2.
Timer 0
Como se ha descrito en la seccion 23.1, cuenta los pulsos enviados por el encoder, se ha habilitado la
interrupcion de tal manera que si este desbordara, no se perdera la informacion acerca de la velocidad
de la helice ya que este desbordamiento se almacena en los bits altos de la variable del encoder, encH.
Timer 1

Este temporizador marca el periodo de muestreo, que esta jado en este caso a un tiempo de 10
milisegundos (gura 21.16, lnea 7). Se ha elegido este periodo como compromiso entre una resolucion
aceptable del encoder y las muestras sucientes para el estudio de la dinamica.
Lo primero que se hace al saltar la interrupcion es inicializar la temporizacion para el siguiente
periodo de muestreo, de tal manera que esta se realice con precision. A continuacion se lleva a cabo
la lectura del encoder con la llamada a la funcion correspondiente (gura 21.16, lnea 9).
En las siguientes lneas se lleva a cabo la conguracion del timer 2 y el timer 3, que son los
encargados de generar la se nal modulada en ancho de pulso que recibe cada control electronico de
velocidad. Al estar empleando dos timers construidos por hardware de forma distinta, se ha incluido
ambos en el programa de identicacion dando la posibilidad de identicar el comportamiento con
uno y otro por si hubiera diferencias signicativas. Sus rutinas de interrupcion correspondientes se
describen en detalle en la seccion 21.6.
UART
Esta interrupcion se activa al recibir un dato proveniente del ordenador, unicamente se emplea
el UART1 (ver seccion 21.4.2 para mas informacion). Estos datos recibidos son instrucciones para el
cambio de consigna o para la conguracion inicial. Puede verse en las lneas 10 a 32 (gura 21.17)
que es posible variar progresivamente la salida tanto en incrementos como decrementos pero tambien
generar cambios bruscos a valores concretos.
Al pulsar la tecla c lo que se hace es activar o desactivar el envo en cada periodo de muestreo de
la velocidad angular y el valor de la consigna (gura 21.17, lnea 34). Esto sera de utilidad a la hora
de realizar ensayos escalon (gura 24.2), pero se desactivara el envo en la realizacion del diagrama
estatico (guras 24.1 y 25.1). En este caso el envo se produce justo al aumentar la consigna y con el
dato anterior de velocidad angular y consigna (gura 21.17, lneas 10 a 12).
Del mismo modo esta recogida en las lneas 36 a 40 las teclas correspondientes a la inicializacion
que se va a tratar en el programa de inicializacion en la siguiente seccion.
21.5.2. Inicializaci on
El programa de inicializacion tiene como objetivo mantenerse a la espera hasta que el usuario
escoja una de las siguientes opciones:
1. Programar el ESC. Entrara en la rutina de programacion (gura 21.18, lnea 7) permitiendo
as programar el controlador electronico de velocidad. Una vez nalizado se podra comenzar la
identicacion.
2. Ajustar el throttle. Realiza un ajuste de los valores maximos y mnimos de la salida del micro-
controlador hacia el controlador electronico de velocidad (gura 21.18, lneas 11 a 13). Una vez
110 21.5. Programa dise nado para la identicacion
1 #int TIMER1
2 void TIMER1 isr(void)
3 {
4
5 long tmr3;
6
7 set timer1(5535);
8 clear interrupt(INT TIMER1);
9 encoder();
10
11 output high(M2);
12 output high(M3);
13
14 setup timer 2(T2 DIV BY 16,255,3);
15 tmr3=5353548
*
salida;
16
17 set timer2(0x00);
18 set timer3(tmr3);
19
20 t2r=0; t3r=0;
21
22
23 clear interrupt(INT TIMER2);
24 clear interrupt(INT TIMER3);
25 enable interrupts(INT TIMER2);
26 enable interrupts(INT TIMER3);
27
28 envio=0;
29 t2=0;
30
31 }
Figura 21.16: Rutina de interrupcion del Timer 1.
21. Implementacion en CCS 111
1 #int RDA
2 void RDA isr(void)
3 {
4
5 unsigned int dato;
6 dato=getc(); //Recogemos dato recibido.
7
8 switch(dato){
9
10 case '+': salida=salida+1;
11 printf("%u\x09",salida1);
12 printf("%g\n\r",velocidad
*
3.926990816987);
13 break;
14 case '': salida=salida1;
15 break;
16 case ' ': salida=0;
17 break;
18 case '1': salida=32;
19 break;
20 case '2': salida=64;
21 break;
22 case '3': salida=96;
23 break;
24 case '4': salida=128;
25 break;
26 case '5': salida=160;
27 break;
28 case '6': salida=192;
29 break;
30 case '7': salida=224;
31 break;
32 case 'm': salida=255;
33 break;
34 case 'c': continuo=!continuo;
35 break;
36 case 'p': inicio='p';
37 break;
38 case 't': inicio='t';
39 break;
40 case 's': inicio='s';
41 break;
42
43 default: break;
44 }
45
46 }
Figura 21.17: Rutina de interrupcion del UART.
112 21.5. Programa dise nado para la identicacion
1 printf("\f1.Programar ESC (p) \n\r2.Ajustar throttle (t) \n\r3.Comenzar (s)\n\r");
2 while (inicio==0);
3
4 switch(inicio) {
5
6 case 'p': printf("\fConecte bateria y cuando suene el tono especial pulse ...
(o). \n\r");
7 programacionESC(0b10010001);
8 printf("\fProgramacion completada. \n\rComenzando ...
identificacion. \n\r \n\r");
9 break;
10 case 't': printf("\fConecte bateria y espere. \n\r");
11 salida=255;
12 delay ms(7000);
13 salida=0;
14 printf("\fThrottle ajustado. \n\rComenzando identificacion. \n\r");
15 break;
16 case 's': printf("\fComenzando identificacion. \n\r");
17 break;
18 }
Figura 21.18: Inicializacion del programa de identicacion.
1 while(1) {
2
3 if (t2r && !envio && continuo) {
4
5 //enviar referencias
6
7 printf("%u\x09",salida);
8 printf("%Lu\x09",vel);
9 printf("%Lu\n\r",acu);
10
11
12 envio=1;
13
14
15 }
16
17 }
Figura 21.19: Bucle principal del programa.
nalizado se podra comenzar la identicacion.
3. Comenzar la identicacion. Permite comenzar directamente con la identicacion sin realizar
ning un ajuste.
21.5.3. Bucle principal
Como puede verse el microcontrolador una vez inicializado entra en un bucle innito (gura 21.19,
lnea 1). Este bucle contiene un condicional que se encarga de enviar los datos de forma continua si
estos son requeridos pero siempre una vez nalizadas todas las acciones de temporizacion.
21. Implementacion en CCS 113
21.6. Programaci on nal del quadrotor
Para asegurar el correcto funcionamiento del controlador es necesario que se comporte como un
sistema en tiempo real. Para ello es necesario concretar el momento de ejecucion de cada accion para
que se lleven a cabo siempre y sin alterar el periodo de muestreo. Empleando un microcontrolador
esto no es problema, ya la ejecucion de las acciones es secuencial y se puede controlar a traves de
interrupciones y condicionales. La gura 21.20 muestra una lnea temporal con las acciones ejecutadas
a lo largo de un periodo de muestreo.
Figura 21.20: Lnea temporal de las acciones del microcontrolador.
21.6.1. Bits de conguraci on e inicializacion
Es necesario congurar correctamente los perifericos del microcontrolador para su correcto fun-
cionamiento. Esta es una tarea sencilla pero en la que hay que poner especial atencion dado los
comportamientos inesperados que puede acarrear una mala conguracion. Para ello se modican los
registros correspondientes a los siguientes elementos:
Oscilador. Se emplea el oscilador integrado a su maxima velocidad, 48 MHz, lo que permite
ejecutar una instruccion cada 83.3 nanosegundos (gura 21.21, lnea 7).
Timers. Se conguran para incrementarse con el reloj interno y llevar a cabo las temporiza-
ciones tanto del periodo de muestreo como de las salidas de control (lneas 6 a 24).
Interrupciones. Para el funcionamiento general de las interrupciones es necesario habilitarlas
de forma global, lnea 34. Hay que activar asimismo la interrupcion encargada de marcar el
periodo de muestreo (int timer0), lnea 33, el resto se iran activando y desactivando a lo largo
del programa seg un sea requerido.
Entradas y salidas. Se desactivan los comparadores estableciendo los pines requeridos como
entradas o salidas. Se usan salidas y entradas rapidas dado que no va a cambiar el estado de las
mismas (gura 21.21, lneas 9 a 11, gura 21.22, lneas 26 a 28).
UART. Ya visto en la seccion 21.4.2.
Ademas de congurar el microcontrolador, en las lneas 20 a 25 de la gura 21.21 se asigna a los
pines escogidos para el envo de la consigna a los controles electronicos de velocidad un nombre que
sera usado durante el programa y en las lneas 28 a 34 se denen las variables globales necesarias para
la ejecucion del programa.
114 21.6. Programacion nal del quadrotor
1 #include <18F27J53.h>
2
3 #device ICD=TRUE
4 #device adc=16
5
6 #fuses NOWDT, PLL2, PLLEN, STVREN, NOXINST, DEBUG, NOCPUDIV, NOPROTECT, INTRC PLL, ...
NOCLOCKOUT, SOSC LOW, NOFCMEN, NOIESO, WDT2048, NODSWDT, NOIOL1WAY, LS48MHZ
7 #use delay(clock=48MHz)
8
9 #USE FAST IO (A)
10 #USE FAST IO (B)
11 #USE FAST IO (C)
12
13 #PIN SELECT RX2=PIN B0
14 #PIN SELECT TX2=PIN B1
15
16 #use rs232(UART1,baud=921600,parity=N,bits=8,ERRORS,stream=BT)
17 #use rs232(UART2,baud=1000000,parity=N,bits=8,ERRORS,stream=IMU)
18
19 //DEFINICI

ON DE PINES
20 #define M4 PIN C2 //1 en la placa
21 #define M3 PIN B4 //2
22 #define M2 PIN B5 //3
23 #define M1 PIN A0 //4
24 #define datos PIN A2
25 #define debug PIN A5
26
27 //VARIABLES GLOBALES
28 short t2=0,t4=0,t1r=0,t2r=0,t3r=0,t4r=0;
29 short ejecuta=0,controlador=0;
30 int c envio=0, salida[4]={0,0,0,0};
31 long ref[4]={0,32768,32768,32768};
32 long pos[4]={0,0,0,0};
33 long cal[4]={0,0,0,0};
34 float u[4]={0,0,0,0};
35
36 #include <math.h>
37 #include <fuzzy.h>
Figura 21.21: Bits de conguracion de cabecera.
21. Implementacion en CCS 115
1 int i=0;
2 float cal f,u0;
3
4 //BITS DE CONFIGURACI

ON
5 setup adc ports(ADC OFF);
6 setup timer 0(RTCC INTERNAL| RTCC DIV 2); //10.9 ms overflow
7 set timer0(5535);
8 clear interrupt(INT TIMER0);
9
10 setup timer 1(T1 INTERNAL| T1 DIV BY 1); //5.4 ms overflow
11 set timer1(41535);
12 clear interrupt(INT TIMER1);
13
14 setup timer 2(T2 DIV BY 16,255,3); //341 us overflow, 1.0 ms interrupt
15 set timer2(0x00);
16 clear interrupt(INT TIMER2);
17
18 setup timer 3(T3 INTERNAL| T3 DIV BY 1);
19 set timer3(41535);
20 clear interrupt(INT TIMER3);
21
22 setup timer 4(T4 DIV BY 16,255,3);
23 set timer4(0x00);
24 clear interrupt(INT TIMER4);
25
26 set tris a(0x00);
27 set tris b(0x01);
28 set tris c(0x80);
29
30 output b(0x00);
31 output low(PIN A2);
32 setup comparator(NC NC NC NC);// This device COMP currently not supported by the ...
PICWizard
33 enable interrupts(INT TIMER0);
34 enable interrupts(GLOBAL);
Figura 21.22: Bits de conguracion.
116 21.6. Programacion nal del quadrotor
21.6.2. Rutinas de interrupcion
Timer 0

Este temporizador marca el periodo de muestreo, que esta jado en este caso a un tiempo de 10
milisegundos (gura 21.23, lnea 8). Lo primero que se hace al saltar la interrupcion es inicializar la
temporizacion para el siguiente periodo de muestreo, de tal manera que esta se realice con precision.
En las siguientes lneas se lleva a cabo la conguracion de los timers, que son los encargados de
generar la se nal modulada en ancho de pulso que recibe cada control electronico de velocidad. Al estar
empleando cuatro timers construidos por hardware de los cuales dos son de 8 bits y los otros dos de 16
bits, se deben congurar de modo distinto. Sus rutinas de interrupcion correspondientes se describen
en detalle a continuacion.
Al disponer de al menos un milisegundo hasta que se requiera de nuevo realizar alguna accion
clave en el control, este tiempo es aprovechado para recibir los datos del AHRS. Para ello se activa
la correspondiente interrupcion y se pone en alto el pin asignado a dato enviando de este modo la
peticion a la unidad de medida (lneas 32 y 33).
Timer 1 y Timer 3
El Timer 1 y el Timer 3 implementan un contador de 16 bits, es por ello que tan solo es necesario
que estas interrupciones salten una vez por periodo de muestreo (gura21.24). Se muestra unicamente
el codigo correspondiente al Timer 1, ya que unicamente se diferencian en la salida modicada: M1
para el Timer 1 y M2 para el Timer 3.
Timer 2 y Timer 4
Las interrupciones del Timer 2 y el Timer 4 saltan dos veces cada periodo de muestreo (gura
21.25). Cuando se dispara por primera vez la salida se ha puesto en alto hace 1 milisegundo (gura
21.23, lnea 14), y el tiempo que permanece en este estado que delimitado de nuevo por el desborda-
miento de este timer.
Se han incluido unas banderas (t2 y t4) que muestran si es la primera o la segunda vez que
desbordan los timers para que nuestra resolucion de salida sea de 8 bits, la misma que
la del control electronico de velocidad. Esto se hace de este modo porque estos timers
son de 8 bits y a la velocidad del oscilador se necesita que desborde mas de una vez para
estar en el intervalo de tiempos de 1 a 2 milisegundos que dene el ancho de pulso de la
consigna.
Se muestra unicamente el codigo correspondiente al Timer 2, ya que unicamente se
diferencian en la salida modicada: M3 para el Timer 2 y M5 para el Timer 4.
UART
La base de las comunicaciones del microcontrolador principal es el modulo UART.
Toda la carga de comunicacion I
2
C es procesada por el AHRS y la informacion relativa
a los sensores llega al quadrotor ya procesada a traves de este modulo de comunicacion
serie.
Como se ha visto en la conguracion de la seccion 21.4.2 se han asignado unas etiquetas
a los dos modulos empleados: BT para las comunicaciones con la estacion de control y
AHRS para las comunicaciones con la unidad de medida.
La interrupcion de las comunicaciones con la estacion de control lleva a la rutina
RDA isr en la que se obtiene el dato recibido proveniente de una pulsacion del teclado,
21. Implementacion en CCS 117
1 #int TIMER0
2 void TIMER0 isr(void)
3 {
4
5 long tmr1,tmr3;
6 int i;
7
8 set timer0(5535);
9 clear interrupt(INT TIMER1);
10
11 output high(M1);
12 output high(M2);
13 output high(M3);
14 output high(M4);
15
16 setup timer 2(T2 DIV BY 16,255,3);
17 setup timer 4(T4 DIV BY 16,255,3);
18 tmr1=salida[0];
19 tmr3=salida[1];
20 tmr1=tmr1
*
48;
21 tmr3=tmr3
*
48;
22 tmr1=53535tmr1;
23 tmr3=53535tmr3;
24 set timer1(tmr1); //max:41535 min:53535
25 set timer2(0x00); //max:0 min:255
26 set timer3(tmr3); //max:41535 min:53535
27 set timer4(0x00); //max:0 min:255
28
29
30 t1r=0; t2r=0; t3r=0; t4r=0;
31
32 enable interrupts(INT RDA2); //activo interrupcion
33 output high(datos); //pido los datos
34
35 clear interrupt(INT TIMER1);
36 clear interrupt(INT TIMER2);
37 clear interrupt(INT TIMER3);
38 clear interrupt(INT TIMER4);
39 enable interrupts(INT TIMER1);
40 enable interrupts(INT TIMER2);
41 enable interrupts(INT TIMER3);
42 enable interrupts(INT TIMER4);
43
44 ejecuta=0;
45 t2=0; t4=0;
46 }
Figura 21.23: Rutina de interrupcion del Timer 0.
1 #int TIMER1
2 void TIMER1 isr(void)
3 {
4
5 set timer1(0x00); // 41535
6 clear interrupt(INT TIMER1);
7 disable interrupts(INT TIMER1);
8 output low(M1);
9 t1r=1;
10 }
Figura 21.24: Rutina de interrupcion del Timer 1.
118 21.6. Programacion nal del quadrotor
1 #int TIMER2
2 void TIMER2 isr(void)
3 {
4
5 set timer2(0X00);
6 clear interrupt(INT TIMER2);
7
8 if (!t2) {
9 setup timer 2(T2 DIV BY 16,salida[2],3);
10 t2=1;
11 }
12 else {
13 disable interrupts(INT TIMER2);
14 output low(M3);
15 t2r=1;
16 }
17 }
Figura 21.25: Rutina de interrupcion del Timer 2.
gura 21.26. Una vez almacenado el valor del dato recibido, este se procesa obteniendo
las siguientes opciones:
Variar el valor de la referencia de las acciones de control.
Poner todas las referencias a cero.
Iniciar o detener el control del quadrotor.
Parada de emergencia. Para pulsar en caso de impacto inminente o da no a personas
o al propio quadrotor, detiene el giro de todos los motores.
La interrupcion de adquisicion de datos de la unidad de medida lleva a la rutina
RDA2 isr. Esta rutina se muestra en la gura 21.27 y se encarga de reconstruir la infor-
macion que ha recibido en forma secuencial.
Los datos provenientes del AHRS son variables de 16 bits, pero la comunicacion se
realiza byte a byte, por tanto de lo que se encarga esta rutina es de recomponer las
variables y almacenarlas.
Como se va a ver en la seccion de inicializacion, 21.6.3, al iniciar el programa se realiza
una calibracion de los sensores, cuyo oset es corregido tambien en esta funcion.
21.6.3. Inicializaci on
Una correcta inicializacion de los sistemas es fundamental para el correcto funciona-
miento del control de estabilidad. En la inicializacion (gura 21.28) se realizan las tareas
descritas a continuacion:
1. Mantener la salida a cero durante 5 segundos para que se inicialicen los ESC. Lneas
1 a 6.
2. Iniciar las comunicaciones con la estacion de control y enviar la comprobacion de
que estan correctamente establecidas. Lneas 7 y 8.
3. Calibrar los sensores angulares. Lneas 10 a 19.
4. Enviar los valores de calibracion a la estacion de control para vericar que no existe
ninguna anomala. Lneas 10 a 19.
21. Implementacion en CCS 119
1 #int RDA
2 void RDA isr(void)
3 {
4
5 unsigned int dato,i=0;
6 dato=fgetc(BT);
7
8 switch(dato){
9
10 case '+': u[0]=u[0]+1; //SUBIR
11 break;
12 case '': u[0]=u[0]1; //BAJAR
13 break;
14 case '8': ref[2]=ref[2]+182; //ADELANTE
15 break;
16 case '2': ref[2]=ref[2]182; //ATR

AS
17 break;
18 case '4': ref[1]=ref[1]182; //IZQUIERDA
19 break;
20 case '6': ref[1]=ref[1]+182; //DERECHA
21 break;
22 case '.': ref[3]=ref[3]182; //IZQUIERDA
23 break;
24 case '0': ref[3]=ref[3]+182; //DERECHA
25 break;
26 case 'h': u[0]=u[0]+100; //iniciar motores
27 break;
28 case '5': ref[1]=32768; //ESTABILIZAR
29 ref[2]=32768;
30 ref[3]=32768;
31 break;
32 case 'c': controlador=!controlador; //comenzar a controlar
33 break;
34 case ' ': u[0]=0; //PARADA DE EMERGENCIA
35 controlador=0;
36 break;
37 default: break;
38 }
39
40 }
Figura 21.26: Rutina de interrupcion del UART1.
1 #int RDA2
2 void RDA2 isr(void)
3 {
4
5 int i=0;
6 while(i<4) {
7 pos[i]=fgetc(IMU)
*
256; //Recogemos dato recibido.
8 pos[i]=pos[i]+fgetc(IMU)+cal[i];
9 i=i+1;
10 }
11 disable interrupts(INT RDA2);
12
13 }
Figura 21.27: Rutina de interrupcion del UART2.
120 21.6. Programacion nal del quadrotor
1 salida[0]=0;
2 salida[1]=0;
3 salida[2]=0;
4 salida[3]=0;
5
6 delay ms(5000);
7 enable interrupts(INT RDA);
8 fprintf(BT,"\fComunicaciones establecidas. \n\r");
9 //calibracion sensor angular
10 enable interrupts(INT RDA2);
11 output high(datos);
12 fprintf(BT,"Correccion angular: \n\r");
13 output low(datos);
14 delay ms(1000);
15 for(i=1; i<4 ; i++) {
16 cal[i]=32768pos[i];
17 cal f=cal[i];
18 cal f=cal f
*
45/8192;
19 fprintf(BT,"%g\xF8 ",cal f);
20 }
21 disable interrupts(INT RDA);
Figura 21.28: Programa de inicializacion del quadrotor.
21.6.4. Bucle principal
Puede verse el codigo del bucle principal en la gura 21.29.

Este se ejecuta siempre
que no hay una rutina de interrupcion activa, por ello, para mantener sincronizada
su ejecucion con el periodo de muestreo todo el contenido esta incluido dentro de un
condicional que unicamente se cumple una vez por periodo de muestreo (gracias a la
variable binaria ejecuta) y siempre una vez nalizado el envo de las variables de control,
conrmado con variables binarias t1r, t2r, t3r y t4r (ver lnea 3). De este modo se asegura
que las acciones programadas de forma secuencial en su interior se ejecutan siempre una
vez enviadas las acciones de control y sin interferir en las mismas. Las tareas realizadas
dentro del condicional son las siguientes:
1. Calculo de la accion de control. Es la primera tarea en realizarse por ser la accion
fundamental. En la gura 21.29, lneas 11 a 13, se calcula mediante un controlador
digital clasico la accion de control de alabeo, cabeceo y gui nada, pero aqu pueden
implementarse los controladores que deseen gracias a las libreras generadas .
2. Limitar las salidas. Es fundamental que las salidas se mantengan dentro del espacio
de trabajo visto en la ecuacion 12.6. Se prioriza las acciones de alabeo y cabeceo
sobre la accion de gui nada, por ser las acciones clave para mantener el quadrotor
en estado estacionario. Es necesario realizar esto ya que una consigna negativa
producira comportamientos inesperados. Estos lmites se establecen en las lneas
15 a 21 de la gura 21.29.
3. Desacoplar las acciones de control. Como se ha visto en el captulo 12, en las lneas
23 a 26 se procede a multiplicar el vector de las acciones de control desacopladas por
la matriz mostrada en la ecuacion 12.15 de la pagina 50 obteniendo las consignas
para cada motor.
4. Enviar el estado del quadrotor. En el programa mostrado en la gura se enva la
posicion angular y la altura junto a sus correspondientes acciones de control. Para
modicar los parametros a enviar sera suciente con modicar estas lneas, ya que
todas las variables clave son globales.
5. Permitir la recepcion de una nueva consigna. Mediante la activacion de las inte-
rrupciones del UART1, se permiten recepciones desde la estacion de control. Esto
21. Implementacion en CCS 121
no esta habilitado continuamente para que no interera con el funcionamiento del
motor.
Una vez ejecutado todo el condicional la variable ejecuta pasa a estado alto y no
permite que el bucle se ejecute hasta la siguiente accion de control, permitiendo en el
tiempo restante de mnimo 2 milisegundos por periodo de muestreo la recepcion de las
consignas y el envo del valor de los grados de libertad actuados.
122 21.6. Programacion nal del quadrotor
1 while(1) {
2
3 if (t1r && t2r && t3r && t4r && !ejecuta) {
4
5 output low(datos); //permitira una nueva recepcion
6 disable interrupts(INT RDA);
7
8 //C

ALCULO DE LA ACCI

ON DE CONTROL ( 8 ms maximo)
9 output high(debug); //pin debug para tiempo de calculo
10
11 for(i=1;i<3;i++) {
12 u[i]=control digital(ref[i]pos[i],i,controlador);
13 }
14
15 if(u[1]>u[0]/2) u[1]=u[0]/2;
16 if(u[1]<u[0]/2) u[1]=u[0]/2;
17 if(u[2]>u[0]/2) u[2]=u[0]/2;
18 if(u[2]<u[0]/2) u[2]=u[0]/2;
19
20 if(u[3]>u[0]2
*
abs(u[2])) u[3]=u[0]2
*
abs(u[2]);
21 if(u[3]<u[0]+2
*
abs(u[1])) u[3]=u[0]+2
*
abs(u[1]);
22
23 u0=u[0]+2
*
u[2]+u[3]; salida[0]=u0;
24 u0=u[0]2
*
u[2]+u[3]; salida[1]=u0;
25 u0=u[0]+2
*
u[1]u[3]; salida[2]=u0;
26 u0=u[0]2
*
u[1]u[3]; salida[3]=u0;
27
28 output low(debug);
29 //FIN C

ALCULO DE LA ACCI

ON DE CONTROL ( 8 ms maximo)
30
31 //enviar posicion angular cada 100ms
32 c envio=c envio+1;
33 if(c envio>9) {
34 fprintf(BT,"\n\r");
35 for(i=0;i<4;i++)
36 fprintf(BT,"%g\x09",u[i]);
37 fprintf(BT,"%Lu\x09",pos[i]);
38 }
39 c envio=0;
40 }
41
42 ejecuta=1;
43 enable interrupts(INT RDA);
44 }
45 }
Figura 21.29: Bucle principal del programa del quadrotor.
Captulo 22
Construcci on del quadrotor
En este captulo se muestra el aspecto del quadrotor una vez nalizada su construc-
cion. A partir del modelo creado en Catia para los planos de la estructura se ha generado
un Render que muestra la delidad de lo dise nado y lo construido (gura 22.1.
Figura 22.1: Prototipo del quadrotor. a) Prototipo construido. b) Render realizado con Catia.
Gracias al dise no completo de todos los elementos, no hay problemas en el ensamblaje
e incorporacion de todo el hardware necesario. El sencillo dise no de la estructura permite
el acoplo de todos los elementos sin complicaciony es facil sustituir cualquier elemento
ante posibles eventualidad o cambios en el dise no.
Para obtener los datos de la inercia del quadrotor y su masa, se ha empleado el modelo
realizado en Catia, obteniendo los siguientes resultados:
Inercia en el eje x: J
Exx
= 4 10
3
Kg m
2
,
Inercia en el eje y: J
Eyy
= 4 10
3
Kg m
2
,
Inercia en el eje z: J
Ezz
= 8 10
3
Kg m
2
,
Inercia del rotor: J
Rzz
= 2,93 10
5
Kg m
2
,
Masa: 0,708 kg,
que seran empleados en el simulador y el dise no de los controladores.
Parte IV
Identicaci on
Captulo 23
Elementos dise nados para la
identicaci on
Un elemento importante de este proyecto consiste en la identicacion de los actuadores
del sistema. Se ha visto en los captulos 14 y 15 que el actuador consiste en un motor
brushless y su correspondiente control de velocidad, pero no hay que olvidar que el
rotor lleva acoplada una helice. Como se vio en las ecuaciones 8.11 y 8.5 de la pagina 31
existen unas constantes de las cuales depende el momento y la fuerza ejercidas por la
misma. Con estas premisas, es necesario dos elementos fundamentales en nuestro montaje
experimental.
En primer lugar, para la identicacion de la dinamica del actuador (captulos 24 y
25) es fundamental contar un encoder con el que medir la velocidad angular. En segundo
lugar, para obtener las constantes aerodinamicas (captulo 26) es necesario un montaje
experimental en el que se puedan medir no solo las revoluciones del rotor, sino el empuje y
el momento provocado por el giro del mismo. La velocidad angular del rotor sera medida
de nuevo con un encoder y el empuje y momento con el montaje descrito en la seccion
23.2 del presente captulo.
23.1. Encoder
La medida de la velocidad angular del motor se puede hacer de diferentes maneras,
en este caso se considera que el sensor que menos va a alterar el sistema es un encoder.
En el laboratorio se dispone de encoders de gran precision pero cuya instalacion
requiere de una estructura para soportarlo, por ello nalmente se ha optado por la
realizacion de un sencillo encoder con muy pocos componentes y realmente economico.
La parte optica esta formada por un diodo infrarrojo y un fototransistor puestos de
tal manera que en cada paso del disco (ver gura 23.1b) cambiara la intensidad radiada
al fototransistor proveniente del diodo. Para acomodar esta se nal a una salida digital
para puertas TTL se emplea el montaje con un amplicador operacional que se puede
ver en el esquema de la gura 23.1a.
En este montaje el amplicador operacional esta funcionando como comparador. Me-
diante el potenciometro se determina un nivel de continua que sea intermedio al maximo
y mnimo valor obtenido en la pata 3 del amplicador operacional a lo largo de una
revolucion completa.
De este modo puede lograrse una resolucion de 16 pulsos por vuelta, muy tosca si
el objetivo fuera un control de posicion pero suciente para el calculo de la velocidad
128 23.2. Montaje experimental
(a) (b)
Figura 23.1: Elementos del encoder. a) Acomodacion de la salida del fototransistor a una se nal digital
TTL. b) Disco empleado.
angular. Estos pulsos son contabilizados por el timer 0 del microcontrolador (ver seccion
21.5), de este modo se digitaliza la informacion sin perder ning un pulso mientras se
realizan otras operaciones en el micro.
El disco del encoder tiene una masa despreciable en comparacion a la del rotor y la
helice por lo que no es necesario realizar ning un tipo de correccion debido a su inercia.

Este disco sera empleado a la hora de identicar la dinamica, pero en el caso de la


identicacion de los parametros aerodinamicos de la helice, su geometra modicara el
empuje producido por la helice, por tanto se va a optar por un montaje que da lugar a un
encoder de 1 pulso por vuelta.

Este consiste en adherir una supercie blanca a una de las
palas de la helice de tal manera que cada vez que pase sobre el sensor optico genere un
pulso (gura 23.2). Puede admitirse esta resolucion mnima dado que esta identicacion
es estatica, es decir, se toma cada punto cuando la velocidad es constante.
Figura 23.2: Modicacion de la helice para que act ue como encoder.
23.2. Montaje experimental
El montaje experimental para la identicacion de parametros aerodinamicos de la
helice debe ser capaz de soportar los esfuerzos provocados por el motor a la vez que
permite medir los mismos. Para realizar estas medidas hay que apoyarse en las ecuaciones
del equilibrio de fuerzas y momentos en un cuerpo estatico. En la gura 23.3 puede verse
un esquema del montaje realizado. Se trata de una L que en el extremo A tiene situado
el motor y con el extremo B situado sobre una bascula electronica.
Si se sit ua el eje del rotor paralelo al eje x de la gura 23.3a), cuando el sistema
alcanza el equilibrio la fuerza de empuje se traslada a la bascula, y el dato recogido por
esta (m) multiplicado por la aceleracion de la gravedad es la fuerza que se esta ejerciendo
F
motor
l
1
= Pl
2
P = m g . (23.1)
23. Elementos dise nados para la identicacion 129
x
y
A
B O
F
motor
P
M
l
1
l
2
(a)
x
y
A
B O
P
M
M
D
l
1
l
2
(b)
Figura 23.3: Esquema del montaje experimental. a) Montaje para registrar el empuje. b) Montaje
para registrar el momento.
Si el motor es situado con su eje ortogonal a los ejes x e y, el momento producido por
su giro sera trasladado al eje O, y este compensado por la fuerza normal sobe la balanza,
de tal manera que este momento puede calcularse a partir de m como
M
D
= M = l
2
P P = m g . (23.2)
Para la construccion del montaje experimental se ha dise nado un soporte articulado
en un eje al que anclar los brazos de la estructura (seccion 20.1 de la pagina 91).

Este
consta con unos rodamientos en el eje para minimizar el error cometido por el rozamiento
estatico en el mismo. El montaje empleado se muestra en la gura 23.4 y las medidas
exactas del soporte en la gura 23.5.
130 23.2. Montaje experimental
Figura 23.4: Vistas diedricas del conjunto empleado para la identicacion.
23. Elementos dise nados para la identicacion 131
Figura 23.5: Vistas diedricas de la pieza principal del conjunto empleado para la identicacion.
Captulo 24
Identicaci on del motor Eskay con
el ESC Skyartec
24.1. Identicaci on del regimen permanente
Para la identicacion del regimen permanente se lleva a cabo un ensayo estatico en el
cual las lecturas de velocidad se realizan cuando esta ya se ha estabilizado, no viendose
afectada por la dinamica y obteniendo valores de regimen permanente. El ensayo a sido
realizado gracias al programa presentado en la seccion 21.5.
El diagrama de equilibrio obtenido en los ensayos se muestra en el graco 24.1. En este
se puede observar como el actuador cuenta con una zona muerta, un cambio de ganancia
y una saturacion. Estas tres no linealidades deben ser modeladas adecuadamente. Con
este objetivo se ha elaborado un diagrama de equilibrio idealizado a partir del diagrama
experimental. Para ello se han ajustado por mnimos cuadrados los puntos mostrados
en la tabla 24.2 obteniendose un error cuadratico medio entre el graco idealizado y las
muestras experimentales de tan solo 1.89 rad/s. El resultado se muestra en la gura 24.3
y la expresion empleada para el calculo del error cuadratico es
[ht]E
CM
=

_
1
n
n

i=1
(y y
0
)
2
. (24.1)
La funcion que describe la ganancia del motor en regimen permanente en funcion de
la consigna del motor es
K(c) =
_

_
0 si c 14
2c + 20 si 14 < c 40
c + 60 si 40 < c 140
200 si c > 140
(24.2)
24.2. Identicaci on del regimen transitorio
Habiendo obtenido la ganancia en regimen permanente, se va a tratar la dinamica
del conjunto. Si esta es mucho mas rapida que la del sistema, podra despreciarse y
tratar a los actuadores unicamente como un bloque de ganancia. Para que esto fuera
as la constante de tiempo de los actuadores debera ser al menos un orden de magnitud
menor que la dinamica del quadrotor.
134 24.2. Identicacion del regimen transitorio
0 5
1
0
1
5
2
0
2
5
3
0
3
5
4
0
4
5
5
0
5
5
6
0
6
5
7
0
7
5
8
0
8
5
9
0
9
5
1
0
0
1
0
5
1
1
0
1
1
5
1
2
0
1
2
5
1
3
0
1
3
5
1
4
0
1
4
5
1
5
0
1
5
5
0
50
100
150
200
250
300
350
400
450
500
550
600
650
Consigna del motor

[
r
a
d
/
s
]
Figura 24.1: Diagrama de equilibrio.
Consigna del motor Velocidad angular []
0 0
14 48 rad/s
40 100 rad/s
140 200 rad/s
155 200 rad/s
Figura 24.2: Puntos de cambio de pendiente.
0 5
1
0
1
5
2
0
2
5
3
0
3
5
4
0
4
5
5
0
5
5
6
0
6
5
7
0
7
5
8
0
8
5
9
0
9
5
1
0
0
1
0
5
1
1
0
1
1
5
1
2
0
1
2
5
1
3
0
1
3
5
1
4
0
1
4
5
1
5
0
1
5
5
0
50
100
150
200
250
300
350
400
450
500
550
600
650
Consigna del motor

[
r
a
d
/
s
]

eq
Figura 24.3: Diagrama de equilibrio idealizado.
24. Identicacion del motor Eskay con el ESC Skyartec 135
0
0
.
0
5
0
.
1
0
.
1
5
0
.
2
0
.
2
5
0
.
3
0
.
3
5
0
.
4
0
.
4
5
0
.
5
0
.
5
5
0
.
6
0
.
6
5
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
Tiempo [s]

[
r
a
d
/
s
]
Freno s. Temp. baja
freno s. Temp. media
Freno s. Temp. alta
Freno no. Temp. baja
Freno no. Temp. media
Freno no. Temp. alta
Figura 24.4: Comparativa entre conguraciones del ESC. Escalones de subida 25-150.
Para identicar el regimen transitorio de los actuadores y tratar esta cuestion se van
a realizar una serie de ensayos en escalon. A partir de los resultados se modelara como
un modelo estatico con una ganancia y una zona muerta o como un primer o segundo
orden.
24.2.1. Ensayo con escal on positivo
Mediante los ensayos con escalones de subida hay que comprobar por un lado si su
comportamiento en regimen transitorio presenta una dinamica no lineal y por otro la
conguracion optima de los parametros de ESC. Las diferentes opciones de programacion
del mismo se han visto en la tabla 15.1, unicamente queda por decidir si se va a emplear
freno o no y la temporizacion empleada, esto deja 6 combinaciones cuyos ensayos se
recogen en el graco 24.4.
En la gura 24.4 se observa como el empleo del freno no inuye para nada en la
dinamica, pero s se aprecia que con una temporizacion alta la dinamica se vuelve mas
lenta. Por este motivo y buscando la maxima eciencia pero ante todo la maxima veloci-
dad de respuesta de los actuadores se escoge una temporizacion media (visto en la tabla
15.1 de la pagina 69).
Se va a analizar que ocurre al realizar ensayos entre diferentes valores de la consigna.
En el graco 24.5 se recogen los resultados de dichos ensayos. Como se comprueba la
constante de tiempo y el tiempo de estabilizacion t
s
es el mismo para ambos casos. En
cuanto al establecimiento del orden del sistema dado que no se aprecia sobreimpulso se
va a realizar un modelo de primer orden tal que
M
s
(s) =
k

s
s + 1
=
k
0,08s + 1
, (24.3)
habiendo extrado
s
= 0,08 de la gura 24.5.
136 24.3. Modelo completo del conjunto motor-ESC

s
t
s
0
0
.
0
2
0
.
0
4
0
.
0
6
0
.
0
8
0
.
1
0
.
1
2
0
.
1
4
0
.
1
6
0
.
1
8
0
.
2
0
.
2
2
0
.
2
4
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
Tiempo [s]

[
r
a
d
/
s
]
Escalon 38-88
Escalon 25-150
Figura 24.5: Comparativa entre escalones de subida.
24.2.2. Ensayo con escal on negativo
Para tratar los escalones de bajada se va a seguir un metodo analogo al de la seccion
anterior y por tanto tambien se van a realizar los ensayos con diferentes variaciones de
la consigna y con diferentes conguraciones del ESC.
Comenzando con las diferentes conguraciones y aplicando el mismo escalon, se obser-
va en la gura 24.6 como la conguracion del control electronico de velocidad no afecta
a la dinamica del sistema. Por tanto sin mas preambulo se va a tratar la inuencia de la
amplitud del escalon.
Aplicando variaciones en la consigna de diferentes magnitudes de nuevo se observa que
las constantes de tiempo y los tiempos de estabilizacion coinciden. No obstante se acaba
de presentar una nueva no linealidad, dado que cuando las variaciones en la consigna
eran positivas la constante de tiempo era menor que la presentada en el graco 24.7.
Mientras que antes
s
= 0,08 ahora vale el doble, es decir,
b
= 0,16. Esto da lugar por
tanto a la funcion de transferencia
M
b
(s) =
k

b
s + 1
=
k
0,16s + 1
(24.4)
cuando la derivada de la consigna es negativa.
24.3. Modelo completo del conjunto motor-ESC
Para realizar un modelo lo mas el posible con la informacion obtenida en estos
ensayos se ha de tener en cuenta toda la informacion sobre las no linealidades y la
dinamica identicada. Se deben incluir en el modelo los siguientes elementos:
Cuantizacion. El ESC por construccion interna tiene una precision de 8 bits, lo que
se modela mediante un bloque quantizer con el parametro de cuantizacion igual a
1.
24. Identicacion del motor Eskay con el ESC Skyartec 137
0
0
.
0
5
0
.
1
0
.
1
5
0
.
2
0
.
2
5
0
.
3
0
.
3
5
0
.
4
0
.
4
5
0
.
5
0
.
5
5
0
.
6
0
.
6
5
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
Tiempo [s]

[
r
a
d
/
s
]Freno s. Temp. baja
freno s. Temp. media
Freno s. Temp. alta
Freno no. Temp. baja
Freno no. Temp. media
Freno no. Temp. alta
Figura 24.6: Comparativa entre conguraciones del ESC. Escalones de bajada 150-25.

b
t
s
0
0
.
0
5
0
.
1
0
.
1
5
0
.
2
0
.
2
5
0
.
3
0
.
3
5
0
.
4
0
.
4
5
0
.
5
0
.
5
5
0
.
6
0
.
6
5
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
Tiempo [s]

[
r
a
d
/
s
]
Escalon 88-38
Escalon 150-25
Figura 24.7: Comparativa entre escalones de bajada.
138 24.4. Modelo linealizado
Zona muerta. La zona muerta provoca que el motor no arranque directamente al
aplicar una consigna no nula. Para modelar esta no linealidad se emplea un bloque
tipo switch que conmutara entre una salida nula y la salida correspondiente al
sobrepasar el lmite de la zona muerta denido en la tabla 24.2.
Saturacion. La saturacion hace que a partir de un determinado valor de la consigna el
aumento de la misma no provoque cambios en el actuador. Esto se modela mediante
un bloque tipo saturation cuyo valor de saturacion referente a la consigna es de 140,
produciendo as una salida de 200 rad/s 24.2.
Variacion de la ganancia. El actuador tiene tanto un cambio de ganancia como un
oset diferente en las dos zonas denidas en 24.1. Esto se modela mediante bloques
de ganancia, constantes y un bloque tipo switch para conmutar entre una salida y
otra al pasar el umbral denido en la tabla 24.2.
Dinamica. Se ha identicado una dinamica diferente seg un el signo de la derivada de
la consigna, esto se modela deniendo las dos constantes de tiempo diferentes vistas
en la seccion 24.2. As se han insertado dos bloques con las respectivas dinamicas
que conmutan seg un sea el caso.
Figura 24.8: Bloques de Simulink correspondientes al modelo del actuador.
24.4. Modelo linealizado
Para la obtencion de un modelo linealizado del motor se debe escoger una de las
ganancias obtenidas en el diagrama de equilibrio y un comportamiento dinamico.
La eleccion de la ganancia es sencilla ya que se sabe a partir del graco 24.3 que la
zona de trabajo se sit ua en el segundo tramo de ganancia. Por ello resolviendo el valor
de la pendiente a partir de la tabla 24.2 se obtiene una ganancia
k = m =
y
x
=
200 100
140 40
= . (24.5)
Para la eleccion del modelo dinamico se va a suponer que la constante de tiempo sea
tau
b
= 0,16, sin importar el signo de la derivada de la consigna. Esto se hace no obstante
sin olvidar que se tata de una aproximacion, y como punto de partida para luego ajustar
lo dise nado a partir del modelo linealizado en el modelo no lineal.
24. Identicacion del motor Eskay con el ESC Skyartec 139
Por tanto, a partir de la ganancia obtenida en la ecuacion 24.5 y la constante de
tiempo obtenida en 24.4 se puede determinar la funcion de transferencia del actuador
para el modelo no lineal
M(s) =
k
s + 1
=

0,16s + 1
. (24.6)
Captulo 25
Identicaci on del motor EMAX
con el ESC Flyfun
25.1. Identicaci on del regimen permanente
A la hora de identicar el regimen permanente de este conjunto, y para prevenir
posibles fuentes de error, se ha comparado el comportamiento en equilibrio del motor
con la consigna proveniente tanto de la salida de los timers 1 y 3 como de 2 y 4. Puede
verse la comparativa entre ambos en la gura 25.1.
En la gura se comprueba que no existe una diferencia apreciable en cuanto a la
ganancia ni al oset entre una y otra fuente de consigna. Si se observa una diferencia en
la zona muerta, pero esta se atribuye a las condiciones del ensayo realizado. En caso de
tener que tomar un valor para la realizacion del modelo, este sera intermedio a los dos.
La gura 25.1 pone de nuevo de maniesto la no linealidad del actuador. As como
en la identicacion del anterior conjunto actuador se distinguan claramente dos zonas
de pendiente de ganancia (gura 24.1), esto no es as en este caso. Podra realizarse en
todo caso una ganancia algo mas compleja a partir de una spline, es decir, una funcion
consistente en una concatenaci on de polinomios, continua y derivable en todo R. Una
spline es de la forma
f(x) =
_

_
P
1
(x) si x < p
1
P
2
(x) si p
1
x < p
2
. . . . . . . .
P
n
(x) si x p
n1
tal que (25.1)
dP
i
(x)
dx

pi
=
dP
i+1
(x)
dx

pi
y P
i
(p
i
) = P
i+1
(p
i
) para i = 1 : n 1 . (25.2)
Ajustando a los valores experimentales, y observando que el primer tramo puede
asemejarse a un polinomio de grado 2 y el segundo tramo es lineal, se obtiene la funcion
G(c) =
_
0,037c
2
+ 9,15c 45 si c < 96
2,342c + 267,576 si c 96
(25.3)
que ajusta de manera bastante precisa los datos experimentales consiguiendo un error
cuadratico medio en el rango de entradas de 30 a 200 de 9.56 rad/s. Se puede ver el
resultado en el graco 25.2.
142 25.1. Identicacion del regimen permanente
La funcion que describe la ganancia del motor en regimen permanente en funcion de
la consigna del motor es
K(c) =
_

_
0 si c < 14
0,037c
2
+ 9,15c 45 si c 96
2,342c + 267,576 si 96 < c 205
747,7 si c > 205
(25.4)
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
0
1
0
0
1
1
0
1
2
0
1
3
0
1
4
0
1
5
0
1
6
0
1
7
0
1
8
0
1
9
0
2
0
0
2
1
0
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
Consigna del motor

[
r
a
d
/
s
]
consigna Timer 2 y 4
consigna Timer 1 y 3
Figura 25.1: Diagrama de equilibrio.
0
1
0
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
0
1
0
0
1
1
0
1
2
0
1
3
0
1
4
0
1
5
0
1
6
0
1
7
0
1
8
0
1
9
0
2
0
0
2
1
0
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
Consigna del motor

[
r
a
d
/
s
]

eq
spline de ajuste G(x)
Figura 25.2: Diagrama de equilibrio idealizado.
25. Identicacion del motor EMAX con el ESC Flyfun 143
25.2. Identicaci on del regimen transitorio
Ensayo con escalon positivo
En la gura 25.3 se muestra la salida promediada de muchos ensayos escalon entre
las referencias mostradas. En este ensayo puede verse como la dinamica se comporta de
manera lineal con la misma constante de tiempo y tiempo y de estabilizacion sea cual
sea la magnitud del cambio de referencia. El valor de la constante de tiempo es en este
caso
s
= 0,08, por lo que se podra proceder de manera analoga al captulo anterior.

s
t
s
0
0
.
0
5
0
.
1
0
.
1
5
0
.
2
0
.
2
5
0
.
3
0
.
3
5
0
.
4
0
.
4
5
0
.
5
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
750
800
850
Tiempo [s]

[
r
a
d
/
s
]
Escalon 96-192
Escalon 128-224
Escalon 128-256
Escalon 160-192
Escalon 160-224
Figura 25.3: Escalones de subida.
25.2.1. Ensayo con escal on negativo
En la gura 25.4 se muestra la salida promediada de muchos ensayos escalon con un
cambio de referencia negativo. Este ensayo muestra como la dinamica, pese a presentar
todos los escalones la misma constante de tiempo y tiempo de estabilizacion sea cual sea
la magnitud del cambio de referencia, de nuevo presenta una no linealidad consistente
en un comportamiento diferente en subida y en bajada. En los ensayos con incremento
positivo en la referencia se ha obtenido una constante de tiempo
s
= 0,08, mientras que
en escalones negativos
b
= 0,11.
Al igual que en la identicacion del conjunto realizada en el anterior captulo, se tiene
el mismo comportamiento visto en la seccion 24.2.2. La dinamica de los actuadores es
mas rapida ante cambios positivos en la consigna que cuando estos son negativos. No
obstante, la diferencia no es tan grande como la que se presentaba en el captulo anterior.
25.3. Identicaci on con la toolbox Ident de Matlab
Viendo que la diferencia en la dinamica de subida no es tan diferente a la de bajada
en esta ocasion, para la identicacion de este conjunto se considero oportuno el uso de
144 25.3. Identicacion con la toolbox Ident de Matlab

b
t
s
0
0
.
0
5
0
.
1
0
.
1
5
0
.
2
0
.
2
5
0
.
3
0
.
3
5
0
.
4
0
.
4
5
0
.
5
0
50
100
150
200
250
300
350
400
450
500
550
600
650
700
750
800
850
Tiempo [s]

[
r
a
d
/
s
]
Escalon 128-96
Escalon 256-128
Escalon 192-96
Escalon 192-128
Escalon 192-160
Figura 25.4: Escalones de bajada.
la toolbox Ident de Matlab. No se va a realizar en profundidad pero se considera que se
puede obtener mas informacion que de los ensayos en escalon.
Para la realizacion de este ensayo se parte de una gran cantidad de datos tomados
a partir de una secuencia de cambios de referencia que pueden verse en la gura 25.5.
Estos cambios de referencia producen una salida mostrada en la misma gura que me-
diante la toolbox se tratara de identicar. Se ha empleado un modelo ARMAX por su
simplicidad y se ha determinado el orden del modelo en base a los resultados obtenidos
en la autocorrelacion.
Figura 25.5: Datos de entradas y salidas del conjunto a identicar.
Para poder vericar el ajuste de las funciones de transferencia calculadas por Matlab,
se emplea la mitad de los datos para la obtencion de la funcion de transferencia, y la
otra mitad para su validacion. Probando con diferentes modelos de distinto n umero de
ceros y polos, se opta nalmente por la funcion de transferencia
M(s) =
3,23
_
s
56,62
+ 1
_
_
s
67,84
+ 1
__
s
9,847
+ 1
_ =
38,11(s + 56,62)
(s + 67,84)(s + 9,847)
. (25.5)
25. Identicacion del motor EMAX con el ESC Flyfun 145
Esta funcion de transferencia es de segundo orden, aunque por estar el cero muy
proximo al polo la dinamica podra denirse como un primer orden con una constante
de tiempo = 0,10, que resulta ser un valor intermedio entre
s
y
b
, las constantes de
tiempo de los ensayos de subida y bajada respectivamente.
25.4. Modelo completo del conjunto motor-ESC
En este caso, por haber seguido dos vas diferentes en cuanto a la identicacion (iden-
ticacion del regimen permanente y transitorio e identicacion con la toolbox ident de
Matlab), se van a presentar dos formas de modelar los actuadores del quadrotor.
La primera forma es analoga a la vista en el captulo anterior, y en ella pueden incluirse
los siguientes elementos:
Cuantizacion. El ESC cuenta por construccion interna con una precision de 8 bits,
lo que se modela mediante un bloque quantizer con el parametro de cuantizacion
igual a 1.
Zona muerta. La zona muerta provoca que el motor no arranque directamente al
aplicar una consigna no nula. Para modelar esta no linealidad se emplea un bloque
tipo switch que conmutara entre una salida nula y la salida correspondiente al
sobrepasar el lmite de la zona muerta extrado de la gura 25.1 como promedio del
inicio de los dos ensayos, es decir, con una consigna de 20.
Saturacion. La saturacion hace que a partir de un determinado valor de la consigna el
aumento de la misma no provoque cambios en el actuador. Esto se modela mediante
un bloque tipo saturation cuyo valor de saturacion referente a la consigna es de 205,
produciendo as una salida de aproximadamente 750 rad/s.
Variacion de la ganancia. La variacion de la ganancia del actuador ha sido denida
mediante una funcion spline, de este modo se debe conmutar entre una zona lineal
y una modelada por un polinomio de orden dos. Esto se implementa en Simulink
con dos bloques polynomial y un switch que conmute entre uno y otro. Tanto
los coecientes de los polinomios como el punto de conmutacion se extraen de la
ecuacion 25.3.
Dinamica. Se ha identicado una dinamica diferente seg un el signo de la derivada
de la consigna, esto se modela deniendo las dos constantes de tiempo identicadas.
As se han insertado dos bloques con las respectivas dinamicas que conmutan seg un
sea el caso.
Puede verse el conjunto de todos estos bloques en la gura 25.6.
En cuanto a la identicacion con la toolbox ident, esta puede emplearse en el modelo no
lineal incorporandole los bloques de cuantizacion, zona muerta y saturacion. No obstante,
su uso parece mas adecuado en el caso del modelo linealizado. Por ello se propone como
modelo linealizado el visto en la ecuacion 25.5.
146 25.4. Modelo completo del conjunto motor-ESC
Figura 25.6: Bloques de Simulink correspondientes al modelo del actuador.
Captulo 26
Identicaci on de coecientes
aerodinamicos
26.1. Obtencion de los coecientes b y k
T
Al realizar el modelo del quadrotor en el captulo 4 se denen dos constantes relacio-
nadas con la velocidad angular de los rotores
i
.
La primera, k
T
, vista en las seccion 8.1 correspondiente a los teoremas vectoriales en
el rotor, relaciona de forma lineal el momento de arrastre del rotor con el cuadrado de
su velocidad angular

T
= k
T

i
|
i
| . (26.1)
La segunda, b, vista en las seccion 8.2 correspondiente a los teoremas vectoriales en la
estructura, relaciona la fuerza de sustentacion del rotor con el cuadrado de su velocidad
angular (ecuacion 8.11).
Estas relaciones son respectivamente una simplicacion de las expresiones del mo-
mento de arrastre y la fuerza de sustentacion de un objeto sumergido en un uido,
denidas en la seccion 5.2. De este modo, partiendo de las ecuaciones 5.16 y 5.15 se
puede comprobar que
k
T
=
1
5
C
D
Ar
3
_
N m s
2
rad
2
_
b =
1
4
C
L
Ar
2
_
N s
2
rad
2
_
, (26.2)
y si se desprecia la variaci on en la densidad del aire, se puede realizar un ajuste
experimental para obtener ambas constantes.

Este ajuste experimental se ha realizado con el montaje visto en el captulo 23. Los
resultados del mismo pueden verse en la gura 26.1 donde se han representado las revo-
luciones al cuadrado en el eje horizontal y la fuerza de empuje y el momento del rotor
en el eje vertical.
Las rectas obtenidas se han ajustado por mnimos cuadrados forzando el paso por
cero. De este modo se han obtenido unos valores de
b = 7,30810
6
N s
2
rad
2
y
k
T
= 1,23510
7
N m s
2
rad
2
(26.3)
148 26.2. Intensidad demandada en funcion del empuje
que seran incorporados al modelo en Matlab del quadrotor. Los valores de la correla-
cion obtenida en el ajuste por mnimos cuadrados son de R
b
= 0,9987 y R
k
T
= 0,9904
respectivamente, lo que indica una correcta identicacion de los parametros.
0
2
5
0
0
0
5
0
0
0
0
7
5
0
0
0
1
0
0
0
0
0
1
2
5
0
0
0
1
5
0
0
0
0
1
7
5
0
0
0
2
0
0
0
0
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5

2
[rad
2
/s
2
]
F
m
o
t
o
r
[
N
]
0
2
5
0
0
0
5
0
0
0
0
7
5
0
0
0
1
0
0
0
0
0
1
2
5
0
0
0
1
5
0
0
0
0
1
7
5
0
0
0
2
0
0
0
0
0
0
0.005
0.01
0.015
0.02
0.025

2
[rad
2
/s
2
]

T
[
N
m
]
(b)
Figura 26.1: Ensayos aerodinamicos. a) Relacion
2
-F
motor
. b) Relacion
2
-
T
Gracias a estos valores pueden obtenerse ciertos datos de interes como: las revolucio-
nes que producen la fuerza necesaria para la sustentacion, la maxima aceleracion vertical
y horizontal y las aceleraciones angulares maximas en los tres ejes.
26.2. Intensidad demandada en funci on del empuje
Otra relacion que resulta util no para el modelo sino para la eleccion de las bateras
(seccion 16.4 de la pagina 72) es la relacion entre la intensidad demandada por el motor
y el empuje que produce. En estos terminos, se realiza la graca de la gura 26.2 con
los datos experimentales y el ajuste de la funcion. Por ser la relacion par-intensidad
lineal y la relacion par-empuje cuadratica, se realiza el ajuste cuadratico obteniendo una
correlacion de R = 0,9987 y siguiendo la funcion
I(F
L
) = 0,343F
2
L
+ 0,615F
L
+ 0,114 [A] , (26.4)
siendo F
L
el empuje de cada rotor e I la intensidad requerida para producir dicho empuje.
26.3. Revoluciones del rotor para alcanzar el equilibrio
En el captulo 11, se ha visto en la ecuacion 11.15 de la pagina 44 cuales han de ser
las velocidades angulares para la sustentacion del quadrotor. Recordando la expresion,
y sustituyendo los valores ya conocidos de la masa 22 y b,

eq
=
1
2
_
g m
b
=
1
2
_
9,81 0,6957
7,30810
6
= 483,2rad/s . (26.5)
Este valor sit ua el punto de trabajo a mitad de la zona lineal del actuador en el caso
del Eskay con el ESC Skyartec (ver graco 24.3 de la pagina 134) y cercano al punto
de cambio de la spline en el caso del EMAX con el ESC Flyfun (ver graco 25.2 de la
pagina 142).
26. Identicacion de coecientes aerodinamicos 149
00
0
.
2
0
.
4
0
.
6
0
.
8 1
1
.
2
1
.
4
1
.
6
1
.
8 2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
2.4
F
motor
[N]
I
[
A
]
]
(a)
00
0
.
2
0
.
4
0
.
6
0
.
8 1
1
.
2
1
.
4
1
.
6
1
.
8 2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
2.2
2.4
F
motor
[N]
I
[
A
]
]
F
eq
(b)
Figura 26.2: Relacion entre el empuje del motor (F
motor
) y la intensidad demandada (I). a) Resultados
experimentales. b) Ajuste cuadratico.
26.4. Aceleraciones maximas
26.4.1. Aceleraciones lineales
La maxima aceleracion vertical que puede experimentar el quadrotor se obtiene a
partir del sexto estado de las ecuaciones de estado del sistema 10.7 de la pagina 38
w = g +
b
m
cos cos
4

i=1

2
i

F
DzI
m
(26.6)
en la que es facil ver que este maximo se alcanza desde el reposo para
= 0 , = 0 y w = 0 (26.7)
ya que por la ecuacion 9.5 de la pagina 34 se sabe que
F
Dz
= C
3
w|w| . (26.8)
De este modo y sustituyendo los valores conocidos de las constantes y aquellos de las
variables que maximizan la aceleracion,
w
max
= g +
b
m
4

i=1

2
max
= 9,81 +
7,30810
6
0,6957
4750
2
= 13,83 m/s
2
, (26.9)
habiendo obtenido
max
del valor de saturacion del graco 25.1 de la pagina 142.
Para el calculo de la mnima aceleracion vertical que puede experimentar el qua-
drotor deben distinguirse dos casos, en el primero para los angulos = 0 y = 0, es
evidentemente
w
min
= g = 9,81 m/s
2
(26.10)
150 26.4. Aceleraciones maximas
y para el segundo caso, suponiendo que uno de los dos valga (2n + 1) n N mientras
el otro se mantiene a 0 (boca abajo), obtenemos
w
max
= g
b
m
4

i=1

2
max
= 9,81
7,30810
6
0,6957
4750
2
= 33,45 m/s
2
. (26.11)
26.4.2. Aceleraciones angulares
Las maximas aceleraciones angulares que se puede alcanzar y mantener dependen
intuitivamente de la inercia del quadrotor, calculada en el captulo 22, y del momento
creado por las fuerzas de empuje y arrastre de las helices, en forma general
=
M
i
J
Eii
, (26.12)
siendo la aceleracion angular, M el momento de las fuerzas y J la inercia respecto al
eje de rotacion.
Para obtener dichos valores de una forma mas ortodoxa, se deben extraer de los
estados 10, 11 y 12 del vector de estados denido en 10.7
p =
J
Eyy
J
Ezz
J
Exx
q r +
J
Rzz
J
Exx
q
4

i=1

i
+
k
MF
(
2
4

2
3
)
J
Exx


Dx
J
Exx
, (26.13)
q =
J
Ezz
J
Exx
J
Eyy
p r
J
Rzz
J
Eyy
p
4

i=1

i
+
k
MF
(
2
2

2
1
)
J
Eyy


Dy
J
Eyy
y (26.14)
r =
J
Exx
J
Eyy
J
Ezz
p q +
J
Rzz
J
Ezz
4

i=1

i
+
k
T
J
Ezz
4

i=1

i
|
i
|

Dz
J
Ezz
. (26.15)
No obstante, en los dos primeros elementos se observa la inuencia del llamado efecto
giroscopico y en el tercero de la aceleracion angular de los rotores de las helices, terminos
que se van a despreciar. As y recordando de forma analoga a la seccion anterior seg un
el captulo 9 que

Dx
= C
4
p|p| , (26.16)

Dy
= C
5
q|q| y (26.17)

Dz
= C
6
r|r| , (26.18)
las aceleraciones maximas se van a dar con p = q = r = 0. Por lo tanto a partir de los
valores de las inercias calculados en el captulo 22 estas son
p
max
=
k
MF

2
4
J
Exx
= 166,48 rad/s
2
siendo
4
=
max
, (26.19)
q
max
=
k
MF

2
2
J
Eyy
= 166,48 rad/s
2
siendo
2
=
max
y (26.20)
r
max
=
k
T
(
2
3
+
2
4
)
J
Ezz
= 17,37 rad/s
2
siendo
3
=
4
=
max
, (26.21)
siendo k
MF
la expresion denida en la ecuacion 10.6 de la pagina 38.
Captulo 27
Identicaci on de los sensores
27.1. Sensor de altura
En las pruebas realizadas con el sensor de altura SRF-235 (ver seccion 17.1 de la
pagina 75 para mas informacion) este ha resultado ser muy preciso en su medida sin
presencia de vibraciones y sobre una supercie lisa. De este modo y atendiendo a la
resolucion de 0.1716 milmetros y el rango efectivo de medida de entre 0.1 y 1.2 metros,
se van a hacer los calculos pertinentes en el AHRS de tal modo que teniendo la medida
del tiempo de vuelo del rayo ultrasonico maximo
t
max
=
rango
resoluci on
=
1200
0,1716
= 6993 s , (27.1)
por tanto el modelo del sensor y para reducir al mnimo el coste computacional va a
consistir en una cuantizacion representando la resolucion de medida, es decir, 1 micro-
segundo y una ganancia de tal modo que
k
h
=
t[s]
h[m]
=
6993 0
1,2 0
= 5827,5 s m
1
. (27.2)
Puede verse el bloque que modela estos elementos en la gura 27.1a.
(a)
(b)
Figura 27.1: Bloques de Simulink para los sensores. a) Sensor de altura. b) Sensor de angulo.
27.2. Sensores angulares
Los calculos que realiza el AHRS son bastante complejos, pues debe corregir la deriva
y las desviaciones de los sensores. Por este motivo se ha realizado un ensayo consistente
en almacenar los datos de posicion y orientacion durante un largo periodo de tiempo de
tal manera que se pueda ver si existe alg un tipo de deriva y la distribucion del ruido.
152 27.2. Sensores angulares
La gura 27.2 contiene los histogramas tipicados de los datos recogidos junto con el
ajuste a unas distribuciones normales N(, ) siendo la media muestral y la desviacion
tpica estandar. El error de los sensores en el eje de abscisas esta expresado en grados
digitales, de ah que no se haya incluido la unidad.
El grado digital no es una unidad reconocida de ning un sistema de unidades, pero
es muy utilizada en la informatica para acelerar los calculos realizados por los micro-
procesadores. Cuando la unidad no va a ser trasladada al mundo real, por ejemplo en
aplicaciones gracas o en el caso presente, se realiza una division de la circunferencia en
8, 16 o 32 bits. Para este proyecto se trabaja con 16 bits, dando lugar a las equivalencias
0 :180

: rad , (27.3)
32768 : 0

:0 rad y (27.4)
65536 : 180

: rad . (27.5)
Por tanto, como Matlab realiza todos los calculos en radianes, se dene la ganancia
para los sensores angulares como un cambio de unidades tal que
k
ang
=
angulo digital
radian
=
32768

rad
1
(27.6)
con una cuantizacion que de nuevo vale 1. Pueden verse los bloques asociados al sensor
(ruido blanco gaussiano, ganancia y cuatizacion) en la gura 27.1b.
Figura 27.2: Ajuste a una distribucion gaussiana del ruido de los sensores angulares.
Parte V
Control Automatico
Captulo 28
PD borroso. Modelo de Mandami
28.1. Control de altura
Se ha dise nado un controlador borroso con entradas el error y la derivada del error. El
controlador dise nado es no lineal como muestra la supercie del controlador de la gura
28.3a. Se han tenido en cuenta 5 conjuntos borrosos para el error denotados e
i
j, 5 para
la derivada del error, denotados de
i
j y otros 5 para la salida u
i
j, siendo ij: NG (negativo
grande), NP (negativo peque no), C (cero), PP (positivo peque no) y PG (positivo grande).
Pueden verse representados en la gura 28.2.
Esto requiere el uso de 25 reglas que se muestran en la tabla 28.1. Los conjuntos se han
ajustado en base a las observaciones del comportamiento y el conocimiento del sistema.
El rango de trabajo lo delimita el sensor de altura en el caso del error, y el rango de
salida corresponde a los puntos de saturacion y de n de la zona muerta respectivamente
para la accion de control.
En un controlador lineal no es posible sacar el maximo partido a los actuadores dada
su asmetria, en esta situacion se plantean dos opciones: aprovechar al maximo la accion
de control negativa, saturando en el caso de demandar una accion de la misma magnitud
pero de signo contrario o reducir la accion de control maxima de tal manera que no sature
el actuador pero desaprovechando parte de la accion de control negativa, y ralentizando
por tanto las posibilidades del sistema. Gracias al empleo de un controlador borroso, las
acciones negativo grande y positivo grande pueden tener diferente modulo.
Al tratarse de un controlador borroso, el centroide de los conjuntos consecuentes
del bloque de inferencia borrosa pueden situarse de forma asimetrica respecto al origen
(gura 28.2, output variable U), as es posible alcanzar las aceleraciones maximas
planteadas en la seccion mencionada. Esto permite mantener una aceleracion maxima
mientras se esta sucientemente alejado de la referencia. Por otro lado, dado que la
aceleracion maxima vertical hacia arriba es menor que hacia abajo, se puede ver en la
u de
NG
de
NP
de
C
de
PP
de
PG
e
NG
NG NG NG NP C
e
NP
C NP NP NP PG
e
C
NG NP C PP PG
e
PP
NG PP PP PP PP
e
PP
NG PP PP PP PP
e
PG
PP PG PG PG PG
Figura 28.1: Tabla de reglas del controlador de altura.
156 28.1. Control de altura
Figura 28.2: PD borroso de control de altura. Modelo de Mandami. Conjuntos antecedentes y conse-
cuentes.
28. PD borroso. Modelo de Mandami 157
Figura 28.3: PD borroso de control de altura. Modelo de Mandami. a) Supercie del controlador. b)
Lneas de nivel con de = cte.
gura 28.3a como la supercie que se mantiene en la maxima accion de control (en valor
absoluto) sigue la relacion esperada siendo mayor cuando el error es positivo.
Pese a las recomendaciones a la hora de dise nar controladores borrosos de mantener
una continuidad en los consecuentes, se aprecian cambios bruscos tanto en la tabla como
en la gura 28.3a. Esto es as por las reglas de frenado, que deben actuar a la inversa
del resto en momentos concretos. La componente de frenada es un elemento clave dada
la inercia del sistema. La eleccion se apoya en las aceleraciones maximas posibles
calculadas en la seccion 26.4. Gracias a estas es facil saber cuando se esta acercando muy
rapido a la referencia seg un la distancia a la que se encuentra. Existe una dicultad
a nadida a la hora de la eleccion para diferentes cambios de consigna, por lo que se ha
tratado de buscar un conjunto de reglas y antecedentes que den un resultado aceptable
ante diferentes cambios de la misma. La gura 28.4 muestra la respuesta ante diferentes
cambios en la referencia de altura.
28.2. Control de gui nada
Para el control de gui nada se establecen unas especicaciones de sobreimpulso nulo y
tiempo de establecimiento menor a 3 segundos frente a escalones de maximo radianes,
es decir, un giro de 180

sobre su eje vertical y de 2 segundos para escalones de pi/2.


Se ha dise nado un controlador borroso con entradas el error y la derivada del error,
el controlador dise nado es no lineal como muestra la supercie del controlador de la
gura 28.6. Para conseguirlo se han tenido en cuenta 5 conjuntos borrosos para el error
denotados e
i
j, 5 para la derivada del error, denotados de
i
j y otros 5 para la salida u
i
j,
siendo ij: NG (negativo grande), NP (negativo peque no), C (cero), PP (positivo peque no)
y PG (positivo grande). Pueden verse representados en la gura 28.7. Hay que recordar
que la entrada correspondiente al angulo de gui nada esta adaptada a la empleada en el
microcontrolador con el uso de los grados digitales.
El n umero de universos y conjuntos antecedentes requiere el uso de 25 reglas que se
muestran en la tabla 28.5. Los conjuntos se han ajustado en base a las observaciones del
comportamiento. Como en cualquier sistema borroso puro, no existe una metodologa
clara de dise no, sino que esta se basa en la intuicion y el conocimiento de la planta. De este
modo, para el ajuste se han tenido en cuenta factores adicionales a las especicaciones
dadas como por ejemplo:
Evitar la saturacion del actuador. En un controlador borroso evitar saturaciones es
tan sencillo como establecer la accion de control maxima por debajo de este punto.
158 28.2. Control de gui nada
Figura 28.4: Respuestas temporales del sistema con el controlador PD borroso.
28. PD borroso. Modelo de Mandami 159
u de
NG
de
NP
de
C
de
PP
de
PG
e
NG
NG NG NG NG NG
e
NP
NP NP NP NP PP
e
C
NP NP C PP PP
e
PP
NP PP PP PP PP
e
PP
NP PP PP PP PP
e
PG
PG PG PG PG PG
Figura 28.5: Tabla de reglas del controlador de gui nada.
Figura 28.6: Supercie del controlador PD borroso de control de gui nada. Modelo de Mandami.
As en este caso la accion maxima se establece de manera que al pasar por la matriz
de desacoplo, ni sature ni entre en la zona muerta del actuador.
Mantener la accion maxima mientras se este sucientemente alejado de la referencia.
Gracias a la aceleracion angular calculada, se puede estimar a que distancia es
excesiva una determinada velocidad.
El seguimiento de las referencias esta, como muestra la gura 28.8, dentro de las
especicaciones establecidas. Nuevamente ha sido posible, pese a la no linealidad del
sistema conseguir una respuesta adecuada a la referencia frente a diferentes cambios de
la misma.
28.3. Control de alabeo y cabeceo
El control de angulo es el elemento fundamental para la estabilidad del quadrotor.
Este controlador sigue las mismas reglas que el dise nado para el control de altura apoyado
en el hecho de que la planta cuenta con el mismo doble integrador, variando unicamente
la ganancia de la misma. Lo que diferencia un controlador y otro son los conjuntos
antecedentes y consecuentes que se pueden ver en la gura 28.9. La asimetra existente
en el controlador anterior ya no es valida para este, dado que la accion de control al
desacoplarse se suma a un motor y se resta diametralmente opuesto. Hay que recordar
que las entradas correspondientes a los angulos estan adaptadas a las empleadas en el
microcontrolador con el uso de los grados digitales.
Para el control de alabeo y cabeceo se establecen unas especicaciones de sobreimpulso
nulo y tiempo de establecimiento menor a 1.5 segundos frente a escalones de maximo
0.147 radianes.
160 28.3. Control de alabeo y cabeceo
Figura 28.7: Conjuntos antecedentes y de salida del controlador de gui nada.
28. PD borroso. Modelo de Mandami 161
Figura 28.8: Respuesta temporal ante cambios de referencia de gui nada.
El seguimiento de las referencias esta dentro de las especicaciones establecidas. En
la gura 28.10a se aprecia como el comportamiento de los angulos de alabeo y cabeceo,
pese a dise nar controles SISO para cada accion de control, esta afectado por los acoplos
existentes entre las diferentes salidas del sistema. Por otro lado en la gura 28.10b se
somete al sistema al maximo cambio de referencia permitido en los angulos de alabeo y
cabeceo, desde 0.147 hasta -0.147 radianes, respondiendo con un tiempo de estabilizacion
inferior a 2 segundos.
162 28.3. Control de alabeo y cabeceo
Figura 28.9: Conjuntos antecedentes y de salida del controlador de angulo.
28. PD borroso. Modelo de Mandami 163
Figura 28.10: Respuestas temporales del sistema con el controlador PD borroso. a) Respuesta ante
cambios de referencia de roll y pitch. b) Respuesta ante cambio de referencia maximo de roll.
Captulo 29
Rechazo de perturbaciones
Cuando el controlador no dispone de integradores, cualquier perturbacion presente
a la entrada de la planta produce un error en regimen permanente que a un teniendo
un sistema de tipo I o superior no se cancela. As, en este caso, cualquier asimetra
presente en el funcionamiento de los motores se traduce en un error angular imposible
de corregir. Es conveniente analizar que ocurre en estos casos suponiendo por ejemplo
un comportamiento distinto en el motor 3.
29.1. Rechazo de perturbaciones del PD borroso dise nado
En la gura 29.1 se muestra el error en regimen permanente causado por un funcio-
namiento asimetrico del motor 3 cuya ganancia es un 7% mayor a la del resto y el oset
20 rad/s menor. El controlador empleado en la simulacion es el PD borroso de alabeo,
cabeceo, gui nada y altura. Se ven afectados los angulos de roll y yaw, siendo el de roll
el mas afectado.
Siguiendo esta lnea se realizan una serie de ensayos en el simulador lineal para ver en
que medida afectan estas diferencias en el funcionamiento. Los resultados se muestran
en la gura 29.2: en el eje de ordenadas el error en estado estacionario causado por
diferencias en el oset y la ganancia de los motores, y en el eje de abscisas el valor en
tanto por uno de la ganancia del motor asimetrico respecto a los otros. Se han realizado
pruebas con diferentes valor de oset cuyo valor n se indica en la leyenda. El punto del
ensayo en el simulador no lineal (m = 1,07 y n = 20) efectivamente se corresponde con
estos resultados.
Para mejorar el analisis se han eliminado tanto cuantizaciones como ruidos incluidos
en el simulador. De este modo pueden compararse los resultados con lo calculado en la
siguiente seccion.
Viendo la magnitud de los errores que causan peque nas desviaciones, se ve que el
dise no realizado, centrado unicamente en el seguimiento de la referencia, no es la mejor
opcion para los angulos de alabeo y cabeceo, optando por el dise no de un controlador
que cuente con especicaciones de rechazo a las perturbaciones a la entrada de la planta.
29.2. Obtencion del error en estado estacionario
Resulta interesante en vista de estos resultados la obtencion del valor del error en el
estado estacionario en funcion de la ganancia del controlador y el valor de la asimetra.
Centrandonos en el problema de control de actitud, dejando de lado en este analisis el
166 29.2. Obtencion del error en estado estacionario
Figura 29.1: Error en regimen permanente causado por asimetras en los motores. Respuesta temporal.
Figura 29.2: Error en regimen permanente causado por asimetras en el motor 3. a) Alabeo. b) Gui nada.
29. Rechazo de perturbaciones 167
Figura 29.3: Croquis de los controladores de actitud, matriz de desacoplo y actuadores.
lazo de control de altura, se puede mostrar el sistema simplicado como muestra la gura
29.3.
Las se nales de control que se envan como consigna los motores (V
1
, V
2
, V
3
y V
4
) se
calcula como
V
1
=

0
k
2U
3
U
4
, (29.1)
V
2
=

0
k
+ 2U
3
U
4
, (29.2)
V
3
=

0
k
2U
2
+U
4
, (29.3)
V
4
=

0
k
+ 2U
2
+U
4
, (29.4)
obtenidas a partir de la matriz de desacoplo (ecuacion 12.15 y siendo k la ganancia
nominal de los motores, es decir, suponiendo que en regimen permanente

i
() = kV
i
() . (29.5)
Si como ocurre en realidad, los motores se comportan cada uno de manera distinta,
y se pueden describir (en regimen permanente) por

i
() = k
i
V
i
() +b
i
, (29.6)
veamos que pasa.
Para que los angulos se estabilicen en regimen permanente con valores constantes,
debe darse que
d
dt
=
d
dt
=
d
dt
= 0
1
=
2
=
3
=
4
, (29.7)
dando lugar, partiendo de

1
() =
2
() k
1
_

0
k
2U
3
U
4
_
+b
1
= k
2
_

0
k
+ 2U
3
U
4
_
+b
2
, (29.8)

1
() =
3
() k
1
_

0
k
2U
3
U
4
_
+b
1
= k
3
_

0
k
2U
2
+U
4
_
+b
3
, (29.9)

3
() =
4
() k
1
_

0
k
2U
2
+U
4
_
+b
3
= k
2
_

0
k
+ 2U
2
+U
4
_
+b
4
, (29.10)
168 29.2. Obtencion del error en estado estacionario
al sistema de ecuaciones lineal y facilmente resoluble que en forma matricial es
_
_
0 2(k
1
+k
2
) (k
1
+k
2
)
2k
3
2K
1
(k
1
+k
3
)
2(k
3
+k
4
) 0 (k
3
k
4
)
_
_
_
_
_
U
2
U
3
U
4
_
_
_
=
_
_
_
(k
2
k
1
)
0
k
+b
2
b
1
(k
3
k
1
)
0
k
+b
3
b
1
(k
4
k
3
)
0
k
+b
4
b
3
_
_
_
. (29.11)
Como suele ocurrir al invertir matrices con coecientes simbolicos, el resultado es
bastante complejo. Dejando el valor de U
i
indicado el error en estado estacionario e
i
para
i : , , sera el resultado de
e

=
U
2
K
P
, (29.12)
e

=
U
3
K
P
, (29.13)
e

=
U
4
K
P
. (29.14)
Particularizando el analisis para el caso ensayado en la seccion anterior tenemos que
siendo
k
1
= k
2
= k
4
= k , k3 = mk , b
1
= b
2
= b
4
= 0y b
3
= n , (29.15)
las acciones de control en el estado estacionario quedan
U
2
=
n +
0
(m1)
k(3m+ 1)
, (29.16)
U
3
= 0 , (29.17)
U
4
=
n +
0
(m1)
k(3m+ 1)
. (29.18)
Es necesario calcular la ganancia de los controladores borrosos cuando el sistema
esta en estado estacionario. Para el caso del controlador de alabeo y cabeceo, por ser
la derivada del error nula tiene una pertenencia completa al conjunto de
C
y el error
se encuentra entre los conjuntos e
C
y e
PP
, por tanto se activan las reglas de accion de
control u
C
y u
PP
dando lugar, viendo los conjuntos de entrada y salida (gura 28.9) a
una ganancia de
K
P
= K
P
=
2,5
5200
= 4,808 10
4
. (29.19)
En el caso del controlador del angulo de gui nada la derivada del error tiene de nuevo
una pertenencia completa al conjunto de
C
y el error se encuentra entre los conjuntos e
C
y e
NP
, por tanto se activan las reglas de accion de control u
C
y u
NP
dando lugar, viendo
los conjuntos de entrada y salida (gura 28.9) a una ganancia de
K
P
=
133,8
3333
= 4,014 10
2
. (29.20)
A partir de todo esto podemos expresar nalmente los errores en el estado estacionario
causados por la asimetra en el motor 3 como
e

= 2080
n+0(m1)
k(3m+1)
e

= 0
e

= 24,91
n+0(m1)
k(3m+1)
, siendo
0
= 483,2 rad/s y k = 3,23 , (29.21)
que se corresponde exactamente con lo simulado y cuyo resultado se muestra en la gura
29.2.
(29.22)
Captulo 30
Controladores lineales
Los controladores lineales mostrados a continuacion basan su dise no en el modelo
linealizado de la planta y los actuadores. De este modo se aplican metodos clasicos
de dise no de controladores, cuyo resultado habra que adaptar al sistema no lineal y
discretizar. Para el dise no en continuo de controladores discretos, es necesario tener en
cuenta la dinamica del retenedor de orden cero
ZOH(s) =
1 e
Ts
s
, (30.1)
que puede aproximarse por
ZOH(s) =
1
T
2
s + 1
, (30.2)
e incluirla en la planta para el dise no. Una vez discretizado es posible que sea necesario
ajustar la ganancia del controlador.
(30.3)
30.1. PID para rechazo de perturbaciones. Alabeo y cabeceo
30.1.1. Dise no basado en el modelo continuo lineal
Se establece para el dise no una especicacion de margen de fase de 50

para la esta-
bilidad del sistema. No se dispone de una especicacion de rechazo a las perturbaciones
puesto que no se ha determinado la magnitud de las asimetras entre los motores. Aten-
diendo al resultado de la ecuacion 29.21 queda claro es necesario dise nar un controlador
con una ganancia lo mas alta posible alta en bajas frecuencias y cuyos ceros y polos se
iran ajustando para mantener el margen de fase.
La funcion de transferencia de la planta sin tener en cuenta la ganancia de los sensores
es
P(s) = ZOH(s) M(s) G(s) , (30.4)
170 30.1. PID para rechazo de perturbaciones. Alabeo y cabeceo
siendo ZOH(s) la funcion de transferencia del retenedor (ecuacion 30.2), M(s) la funcion
de transferencia linealizada del actuador (ecuacion 25.5) y G(s) la del grado de libertad
correspondiente del quadrotor (ecuaci on 12.16). En general para cualquier grado de
libertad
P(s) =
1
1
200
s + 1
3,23
_
s
56,62
+ 1
_
_
s
67,84
+ 1
__
s
9,847
+ 1
_G(s) . (30.5)
Para los angulos de alabeo y cabeceo, cuya dinamica es
G(s) =
k
MF
/J
Eii
s
2
siendo i : x, y , (30.6)
obtenemos la funcion de transferencia de la planta
P(s) =
2,2558(s + 56,62)
s
2
(s + 200)(s + 67,84)(s + 9,847)
. (30.7)
Figura 30.1: Diagramas de bode de los controladores dise nados mas la planta hasta llegar al optimo
para rechazo de perturbaciones.
Se comienza a dise nar a partir de controladores realizables, aumentando progresiva-
mente la ganancia y desplazando los ceros para cumplir con el margen de fase hasta
obtener un PID puro cuya respuesta ante la perturbacion se encuentre dentro de unos
lmites aceptables (gura 30.3a). Al tratar de aumentar el rechazo a las perturbaciones
por encima de un determinado valor, no es posible mantener el margen de fase por las
caractersticas de la planta, por tanto se plantean tres opciones: renunciar a cierto mar-
gen de fase, renunciar al rechazo a las perturbaciones o aumentar n umero de ceros del
controlador.
Renunciando al margen de fase hasta 25

y por tanto reduciendo la estabilidad drasti-


camente, la funcion de transferencia del PID obtenido, que se corresponde con el dia-
grama de bode C6 de la gura 30.1 es
C(s) =
32500(s
2
+ 1,6s + 4)
s
. (30.8)
30. Controladores lineales 171
Si se desea mantener el margen de fase, renunciando al rechazo a las perturbaciones,
se obtiene el controlador PID
C(s) =
8000(
1
0,95
2
s
2
+
20,35
0,95
s + 1)
s
. (30.9)
En la gura 30.2 se muestra una comparativa entre ambos controladores.
(30.10)
Tanto en la gura 30.2 como los de las guras 30.3, 30.4, 30.6 y 30.7 que se veran en
adelante, los ensayos mostrados se han realizado con una perturbacion en escalon de 10
rad/s a modo ilustrativo. No obstante, con la calibracion de los sensores es probable que
su valor sea menor.
Figura 30.2: Comparativa entre controladores. a) Rechazo a las perturbaciones. b) Seguimiento de la
referencia. c) Diagramas de bode.
Como modo de aprovechar las ventajas de ambos controladores, es posible realizar
un controlador borroso de Sugeno con una mezcla borrosa de ambos, empleando el
controlador mas estable para error grande y para error cero el dise nado para el
rechazo a las perturbaciones. De este modo se consigue aunar la estabilidad y un buen
seguimiento de la referencia con un fuerte rechazo de perturbaciones.
172 30.2. PD para rechazo de perturbaciones. Alabeo y cabeceo
30.1.2. Discretizaci on del controlador
Para adaptar el controlador dise nado en el modelo continuo al sistema real debe es-
tar preparado para funcionar en el microcontrolador. Por ello hay multiplicarlo por la
inversa de la ganancia del sensor (ecuacion 27.6) y la constante de la matriz de des-
acoplo linealizada (ecuacion 12.15) y discretizarlo. Se va a discretizar como ejemplo el
controlador mas estable de los dos propuestos, de este modo
C
r
(s) =
8000(1,108s
2
+ 0,7368s + 1)
s
1
4
_
gm
b

32768
=
1,98 10
4
(1,108s
2
+ 0,7368s + 1)
s
, (30.11)
que discretizando con diferencias hacia atras (ecuacion 21.3) resulta en el controlador
discreto
D(z) =
0,02245 0,04475z
1
0,0223z
2
z
1
(1 z
1
)
. (30.12)
Para ver si el comportamiento del controlador discretizado se asemeja al del continuo,
se analiza el comportamiento del sistema ante la misma perturbacion con uno y otro
controlador, siendo la diferencia entre ambos inapreciable (gura 30.3.
Figura 30.3: Respuesta ante perturbacion escalon a la entrada de la planta en el modelo lineal. a)
Controlador lineal. b) Controlador discretizado.
30.1.3. Inuencia de las no linealidades
Una vez obtenido el controlador, es necesario vericar su validez en el sistema no
lineal. En el dise no se han obviado las no linealidades de la planta, saturaciones y la
dinamica no lineal de los actuadores, ruidos y cuantizaciones de los sensores y la cuan-
tizacion del ESC, por tanto es posible que el comportamiento no sea el esperado. En la
gura 30.4 se muestra la respuesta ante perturbaciones del sistema conforme se incor-
poran las no linealidades, siendo la que mas afecta la cuantizacion del ESC.
30.2. PD para rechazo de perturbaciones. Alabeo y cabeceo
30.2.1. Dise no basado en el modelo continuo lineal
Para el dise no del PD basado en el modelo continuo lineal de la planta es valido
todo lo dicho en la seccion 30.1. A partir del controlador tipo PID dise nado se va a
ajustar un PD para obtener caractersticas similares. Se busca una estructura PD para
30. Controladores lineales 173
Figura 30.4: Respuesta ante perturbacion escalon a la entrada de la planta. a) Modelo lineal. b)
Modelo no lineal. c) Modelo no lineal con cuantizacion y ruido de los sensores. d) Modelo no lineal
con cuantizacion y ruido de los sensores y cuantizacion del ESC.
evitar los inconvenientes en cuanto a la estabilidad de un PID y para mejorar el coste
computacional a la hora de realizar un sugeno con ambos. Con estas premisas, en el
diagrama de bode del controlador mas la planta de la gura 30.5 se muestra el PD
dise nado de tal manera que tenga el mismo margen de fase y frecuencia de cruce de
ganancia que el controlador PID. La funcion de transferencia del controlador dise nado
es
C(s) = 6500(s + 1) (30.13)
30.2.2. Discretizaci on del controlador
Para adaptar el controlador dise nado en el modelo continuo al sistema real debe
estar preparado para funcionar en el microcontrolador. Por ello hay multiplicarlo por la
inversa de la ganancia del sensor (ecuacion 27.6) y la constante de la matriz de desacoplo
linealizada (ecuacion 12.15) y discretizarlo. De este modo
C
r
(s) = 6500s + 6500
1
4
_
gm
b

32768
= 1,6353 10
4
(s + 1) , (30.14)
que discretizando con diferencias hacia atras (ecuacion 21.3) resulta en el controlador
discreto
D(z) = 0,01651 0,01635z
1
. (30.15)
174 30.2. PD para rechazo de perturbaciones. Alabeo y cabeceo
Figura 30.5: Diagramas de bode del controlador PID mas la planta y el PD basado en el mas la planta.
Para ver si el comportamiento del controlador discretizado se asemeja al del continuo,
se analiza el comportamiento del sistema ante la misma perturbacion con uno y otro
controlador, siendo la diferencia entre ambos inapreciable (gura 30.6.
Figura 30.6: Respuesta ante perturbacion escalon a la entrada de la planta en el modelo lineal. a)
Controlador lineal. b) Controlador discretizado.
30.2.3. Inuencia de las no linealidades
Una vez obtenido el controlador, es necesario vericar su validez en el sistema no
lineal. En el dise no se han obviado las no linealidades de la planta, saturaciones y la
dinamica no lineal de los actuadores, ruidos y cuantizaciones de los sensores y la cuan-
tizacion del ESC, por tanto es posible que el comportamiento no sea el esperado. En la
gura 30.7 se muestra la respuesta ante perturbaciones del sistema conforme se incor-
poran las no linealidades, siendo la que mas afecta la cuantizacion del ESC.
En las guras 30.7a y 30.7b se muestra el paso del modelo linealizado al modelo no
lineal, as como en el PID con ltro de la seccion 30.1 no se apreciaban diferencias, en
este caso hay una diferencia entre uno y otro signicativa en cuanto al valor de regimen
permanente alcanzado.
30. Controladores lineales 175
Figura 30.7: Respuesta ante perturbacion escalon a la entrada de la planta. a) Modelo lineal. b)
Modelo no lineal. c) Modelo no lineal con cuantizacion y ruido de los sensores. d) Modelo no lineal
con cuantizacion y ruido de los sensores y cuantizacion del ESC.
Parte VI
Conclusiones
Captulo 31
Resumen de resultados
La mayor parte de los objetivos planteados al inicio del proyecto han sido satisfechos.
Sin embargo, y a pesar del esfuerzo dedicado, quedan ciertos elementos con muchas
posibilidades de desarrollo.
31.1. Modelado y simulaci on
El modelado se ha llevado a cabo de forma exhaustiva, dejando unicamente fuera y de
modo deliberado el efecto del apping causado por el giro de las helices y aproximando
los coecientes de rozamiento. Esto no supone ning un inconveniente para el objetivo de
dise no de controladores, ya que sus efectos son practicamente despreciables. La biblio-
grafa y artculos consultados [1][6][4] desprecia estos y otros terminos sin verse afectados
los resultados, as como el correspondiente al momento causado por la aceleracion angular
del rotor, s incluido en el modelo.
Se ha profundizado en la linealizacion de sistemas en torno a un punto de equilibrio,
poniendo de maniesto la complejidad que adquiere al tratarse un sistema MIMO. Un
punto muy positivo surgido a partir de la linealizacion ha sido el hecho de que al aplicar
unas acciones de control desacopladas escogidas de forma que resulten intuitivas se haya
producido un desacoplo total de la accion de control para el caso linealizado.
En cuanto a la simulacion, los resultados obtenidos son completamente coherentes con
el sistema y la salida visual del mismo ha permitido ver de forma mas intuitiva ciertos
comportamientos que no eran facilmente observables en las gracas temporales.
En general la consecucion de los objetivos en este aspecto ha sido plena, adquiriendo
nuevos conocimientos sobre sistemas no lineales, linealizacion, desacoplo de acciones de
control y sobre el empleo de potentes herramientas de Matlab como las S-function.
31.2. Identicaci on
La identicacion estaba planteada inicialmente para determinar parametros constan-
tes del modelo. Con el desarrollo del simulador se puso de maniesto la necesidad de
identicar la dinamica de los actuadores atendiendo a la dinamica y no solo como un
elemento de ganancia. Tras las pruebas experimentales, se decide tambien analizar el rui-
do de los sensores y las cuantizaciones existentes. Con todo esto no solo se aprendieron
ciertas tecnicas basicas de identicacion de sistemas sino que se enriquecio el modelo del
quadrotor.
180 31.3. Dise no
31.3. Dise no
Con el dise no del quadrotor se ha puesto de maniesto la complejidad de dise nar un
sistema desde cero dado el n umero de variables implicadas en el mismo. Gracias a esta
etapa se ha profundizado en el manejo de software de dise no estructural como catia y
autocad y tambien de dise no de circuitos como eagle.
La solucion adoptada satisface todas las necesidad planteadas en el presente proyecto,
por tanto el objetivo de dise no se ha cumplido.
31.4. Sistema embebido
La realizacion del sistema embebido es uno de los elementos llevados a cabo con
verdadero exito. No solo se ha establecido una comunicacion inalambrica a la sucien-
te velocidad, sino que se dispone de una potente unidad de calculo y una unidad de
adquisicion de datos tales que permiten realizar practicamente cualquier tipo de control.
31.5. Control automatico
En el desarrollo de controladores para el quadrotor se han ido encontrando y superan-
do diversas dicultades. Antes de concluir el modelado y comenzar a dise nar controla-
dores, no se vea la complejidad que implicaba el sistema no lineal.
Se ha realizado con exito un controlador borroso con el modelo de Mandami para el
control del lazo de altura, no siendo valido el dise no realizado con este modelo borroso
para los angulos de alabeo y cabeceo.
Para tratar de solucionar los problemas detectados se ha tratado de dise nar controla-
dores lineales sencillos replanteando las especicaciones. No obstante, no se ha obtenien-
do suciente estabilidad manteniendo el rechazo a las perturbaciones con controladores
tipo PD o PID.

Este hecho pone de maniesto la necesidad de un control no lineal
por ejemplo a traves de un modelo de Sugeno poder realizar una mezcla borrosa de los
controladores mostrados.
En cuanto al alcance del controlador, el objetivo era la implementacion de un SAS,
pero dado que de momento unicamente se ha logrado la estabilidad en la actitud, el
sistema ha quedado a mitad de camino entre un sistema para incrementar la estabilidad
(SAS) y uno para incrementar el comportamiento (CAS).
Captulo 32
Lneas futuras
32.1. Modelado y simulaci on
El modelado del sistema podra enriquecerse con un estudio del apping que apor-
tara informacion extra sobre la dinamica a altas frecuencias del sistema, ya que ciertos
comportamientos derivados de perturbaciones podran pasar a ser conocidos.
Sera interesante tambien realizar un analisis aerodinamico mediante alg un software
como Fluent for Catia para anar la obtencion de los coecientes aerodinamicos e incluso
para incorporar un modelo propio de las fuerzas aerodinamicas. Otro metodo podra
ser plantear ciertos experimentos sencillos como por ejemplo el calculo de la velocidad
angular lmite sobre alguno de sus ejes para determinar a partir de esta el valor del
coeciente de rozamiento.
En cuanto a la simulacion, unicamente como valor visual puede trabajarse la apariencia
del quadrotor representado esquematicamente en estos momentos.
32.2. Identicaci on
Por no ser el objeto del presente proyecto no se ha profundizado en el modelado de
los motores Brushless, sin embargo tienen un interesante comportamiento no lineal que
podra ser objeto de una identicacion exhaustiva.
Se podra comenzar con el planteamiento de sus ecuaciones en el espacio de estados y
realizando un modelo no lineal identicando los parametros correspondientes, es decir,
seguir una metodologa similar a la de la parte II pero centrada en el conjunto motor-
ESC.
32.3. Sistema embebido
La parte del sistema embebido que mas mejoras puede tener es el AHRS. Actualmente
esta unidad de sensado medida cuenta con un ltro de nivel intermedio para tratar la
informacion recibida, la cual podra ser sustituida por los potentes ltros Kalman.
En cuanto al microcontrolador, si lo requiere el controlador instalado puede ser sus-
tituido por un modelo mas avanzado sin ning un inconveniente, a nadiendo posibilidades
nuevas al tipo de control establecido.
182 32.4. Control automatico
32.4. Control automatico
Las lneas futuras en cuanto al control automatico son m ultiples. Se ha puesto de
maniesto la necesidad de emplear controladores lineales complejos o controladores no
lineales para los angulos de alabeo y cabeceo.
Una primera lnea de investigacion puede ser el dise no de un controlador borroso
con el modelo de Sugeno distinguiendo dos zonas de trabajo, la de seguimiento de la
referencia, cuando el error es grande, y la de rechazo a las perturbaciones, cuando el
error es peque no o cero. As se salvara las dicultades existentes con el controlador
actual.
Por otro lado, podran acotarse las especicaciones de rechazo a las perturbaciones
con un analisis de la incertidumbre del modelo, tanto para aplicar un control robusto
como para mejorar el dise no de otros tipos de controlador.
Otro camino a seguir podra ser tratar de realizar un control en el espacio de estados
o alg un tipo de control no lineal puro.
En denitiva, se plantea el quadrotor como una excelente plataforma de pruebas de
diferentes teoras de control dadas las dicultades que implica este sistema.
Bibliografa
[1] MODELADO Y SIMULACI

ON DE UN HELIC

OPTERO QUADROTOR. G. Vian-


na Rao. Tesis presentada en la Universidad de Sevilla 2007
[2] MEC

ANICA DE FLUIDOS. Frank M. White. Mc Graw Hill. 2004


[3] MEC

ANICA DE FLUIDOS. Robert L. Mott. Prentice Hall. 2006


[4] MODELLING AND CONTROL OF A QUAD-ROTOR ROBOT. P. Pounds, R.
Mahony, P. Corke. Australian National University, Canberra, Australia
[5] SISTEMAS E

OLICOS DE PRODUCCI

ON DE ENERG

IA EL

ECTRICA. J.L.
Rodrguez Amendo, J.C. Burgos Daz, S. Arnalte Gomez. Editorial rueda S.L. 2003
[6] HELICOPTER PERFORMANCE, STABILITY, AND CONTROL. Raymond W.
Prouty. 2002
[7] SYMBOLIC MODELING OF MULTIBODY SYSTEMS. Jean-Claude Samin, Paul
Fisette. 2003
[8] LINEAR SYSTEMS THEORY. Joao P. Hespanha. Princeton University Press (New
Jersey) 2009
[9] A GUIDE TO UNDERSTANDING BATTERY SPECIFICATIONS. MIT Electric
Vehicle Team. December 2008
[10] UN PASEO POR USB 2.0. Fujitsu Espa na. Marzo de 2003
[11] C COMPILER REFERENCE MANUAL. Custom Computer Services. 2011
[12] FUNDAMENTALS OF KALMAN FILTERING: A PRACTICAL APPROACH.
Paul Zarchan, Howard Muso. American Institute of Aeronautics and Astronautics.
2005
[13] OBSERVERS IN CONTROL SYSTEMS: A PRACTICAL GUIDE. George H. Ellis.
Academic Press. 2002
[14] AN10441. LEVEL SHIFTING TECHNIQUES IN I
2
C-BUS DESIGN. NXP Phi-
lips. Junio de 2007

Potrebbero piacerti anche