Professional Documents
Culture Documents
INGENIERO 200803085
MODELADO Y CONTROL DE UN
CUADRICPTERO
de
la
Proyecto in de carrera
ii
iii
ACEPTA
Fdo:.................................
iv
INGENIERO 200803085
MODELADO Y CONTROL DE UN
CUADRICPTERO
MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014
MODELADO Y CONTROL DE UN
CUADRICOPTERO
Autor:
Sevilla Fernandez,
Luis
Directores: Zamora Macho, Juan Luis.
Jose.
Porras Galan,
Fernandez
Martnez, Cesareo.
Entidad colaboradora: ICAI Universidad Pontificia Comillas.
ResumenEl objetivo de la lnea de trabajo donde se enmarca este proyecto es modelar y controlar un vehculo aereo
no tripulado
estacionario, la navegacion
mediante sensores de distancia.
Con el fin de poder utilizar el vehculo en docencia, se implantara tanto el modelo como las estrategias de control que se exploren en
el entorno Matlab/Simulink.
Index TermsCuadricoptero,
UAV, Proyecto, ICAI, Comillas.
1.
I NTRODUCCI ON
N los ultimos
anos
hemos sido testigos de un
crecimiento importante en el desarrollo de vehculos
aereos no tripulados (UAV), especialmente de despegue
de simulacion,
automatica de codigo
en el entorno Matlab/Simulink.
Ademas, este proyecto aportara a la Universidad Ponti de UAV para
ficia Comillas experiencia en la operacion
El cuadricoptero
empleado en este proyecto (ver figura
1) esta accionado por cuatro motores brushless situados
entre el
giroscopos
y magnetometros.
La comunicacion
dispositivo y el piloto se realiza a traves de una emisora
del dispode radio control. Finalmente, la alimentacion
sitivo se realiza mediante una batera LiPo.
Figura 1: Cuadricoptero
y emisora
2.
E STADO
DEL
A RTE
y rotacion
de un cuaLos movimientos de traslacion
dricoptero
se controlan mediante variaciones en la velocidad de giro de sus rotores que definen las fuerzas
de empuje vertical en cada uno de ellos. As pues,
para que el dispositivo ascienda/descienda se debe
de todos
aumentar/disminuir la velocidad de rotacion
los motores simultaneamente. Las traslaciones en las
MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014
guinada
levogira.
Finalmente, la aplicacion
en cursos
de control avanzado en distintas universidades esta au
3.
estudios de simulacion.
El control asume la disponibilidad de las variables
de la orientacion
del
de estado, es decir la estimacion
cuadricoptero
definida a partir de los a ngulos de Euler.
Los estimadores de estado mas comunes para este tipo
son:
de aplicacion
El filtro complementario [6]: se basa en una pon de la estimacion
de los a ngulos de Euler
deracion
en los acelerometros
y giroscopos.
a la estrategia de control, existe una
En relacion
gran variedad de algoritmos propuestos en la
M ODELADO
tacion
permitiendo disenar
la
estrategia de control que estabiliza la aeronave.
Cada uno de estos modelos requiere de un conjunto
de parametros (dimensiones, masa, momentos de inercia
y caractersticas dinamicas de los sistemas propulsores),
que deben ser adecuadamente estimados. Consecuentemente, se ha desarrollado un modelo CAD y se han
en un banco
realizado pruebas del sistema de propulsion
de ensayos.
En este proyecto se ha hecho uso del programa Solid
grafica (CAD) del
Edge para obtener la representacion
cuadricoptero
mostrada en la figura 3.
dricoptero
MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014
Volumen
(mm3 )
0.2722
94059.7154
Ixx
(Kgm2 )
7,83 104
Iyy
(Kgm2 )
7,85 104
Izz
(Kgm2 )
1,401 103
Rm
()
0.6
b
(N s/rad)
5.44e-7
d
(N ms/rad)
7.32e-9
0
1
ngulo()
En ninguno de los modelos presentados se han incluido los efectos aerodinamicos que pueden afectar al
dispositivo pues, tras un analisis de e stos (especialmente
el efecto suelo y el efecto techo), se ha demostrado que
no son relevantes en condiciones de vuelo en interiores.
2
3
4
5
6
7
4.
E STIMACI ON
DE ESTADOS
8
9.5
10
10.5
11
11.5
12
12.5
13
13.5
14
Tiempo(s)
En este proyecto se ha hecho uso de un filtro multiplicativo extendido de Kalman, ya que resulta mas robusto
de cara a las vibraciones de la estructura. Se trata de un
filtro extendido porque se basa en un modelo no lineal
del sistema de medida. Se dice tambien que es multiplicativo porque, a pesar de que es capaz de realizar es
timaciones unicamente
con giroscopos
y acelerometros,
Figura 6: Estimacion
5.
D ISE NO
han disenado
un conjunto de controladores basados
en el modelo simplificado a fin de abarcar un mayor
rango de posibilidades. Posteriormente se ha hecho uso
mediante
del modelo completo para su comparacion
Los algoritmos de control disenados
simulacion.
son:
de la referencia con
1. Control PID con ponderacion
MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014
la logica
del mecanismo anti-windup.
de estado por posi3. Control por realimentacion
cionamiento de polos. Los polos del sistema en
lazo cerrado se han seleccionado para optimizar la
respuesta del sistema.
de estado. Se ha
4. Regulador LQ por realimentacion
hecho uso de un modelo estocastico del sistema
para para obtener la matriz de ganancias de re del estado que permita minimizar el
alimentacion
error de seguimiento de la referencia y el esfuerzo
de control.
de estado con ac5. Control LQ por realimentacion
integral(LQI). Se ha anadido
intecion
una accion
gral para corregir las perturbaciones en carga que
presenta el sistema.
Adicionalmente, se ha desarrollado un modelo del
cuadricoptero
sobre una motocicleta (pendulo invertido)
para evaluar los algoritmos de control anteriores a la
el riesgo de danar
el dispositivo ante errores en la
y un mal ajuste del control.
implantacion
6.
I MPLEMENTACI ON
cuadricopteros
en la UPCO, una gran parte del trabajo
realizado se ha destinado a construir y poner a punto
el cuadricoptero.
Estas tareas incluyen el montaje de
de los elementos necesala estructura, la incorporacion
rios para su funcionamiento (ESC, rotores, la tarjeta de
control, etc) y el conexionado de los mismos. Adicio
nalmente se ha disenado
y construido una placa para
de la batera. Se trata del circuito
monitorizar la tension
de la
Figura 7: Esquema del circuito de monitorizacion
de la batera
tension
Otra de las principales tareas realizadas es la de
los driver blocks que permiten intercambiar
disenar
el cuadricoptero.
Estos driver blocks han sido programados en C++ e integrados en bloques de Simulink, lo
senales.
7.
E NSAYOS
tanto, se ha disenado
un filtro de Savitzky-Golay
para su cancelacion.
Este filtro se ha usado tambien
de tension
en la batera de forma
para retrasar la senal
que sea menos sensible a los picos presentes en la misma.
MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014
de los a ngulos de
La figura 8 muestra la estimacion
Euler en el sistema real realizada por el filtro de Kalman
disenado
(azul) y la realizada por el estimador de la
realizada por el filtro de
IMU (verde). La estimacion
Kalman es mejor tanto con los rotores desconectados
como activos. Sin embargo se puede apreciar una deriva
del a ngulo, debido a que no se
o bias en la estimacion
integral.
controlador LQ con accion
de mando de la
Finalmente, se ha incluido la senal
figura 10 proporcionada por el controlador LQ incre integral y mecanismo anti-windup al
mental con accion
del cuadricopte
realizar un ensayo real de estabilizacion
ro. Tal respuesta no permite regular el dispositivo pues
que oscila entre los valores de
se trata de una senal
fijados en el controlador. Queda como tarea
saturacion
pendiente en futuros proyectos revisar el estimador de
para
estado y las ganancias de la cadena de actuacion
resolver este problema.
20
Mandos U1, U3
260
Phi
Theta
240
220
Tensin(PWM)
ngulos ()
20
200
180
160
140
120
40
0.05
0.1
0.15
0.2
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
0.5
Mandos U2, U4
260
60
U2
U4
240
80
0.1
0.2
0.3
0.4
0.5
0.6
Tensin(PWM)
220
0.7
Tiempo (s)
200
180
160
140
120
11
10
10
PID
Realimentacin
LQR
ngulo ()
ngulo ()
10
ngulo ()
11
0.5
1.5
2
Tiempo (s)
2.5
4.5
5.5
6
Tiempo (s)
6.5
7.5
8.5
9
Tiempo (s)
9.5
10
0.05
0.1
0.15
0.2
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
0.5
8.
C ONCLUSIONES
El cuadricoptero
esta listo para volar de forma regulada, a falta de ajustar correctamente el algoritmo
de estado.
de control y la estimacion
La causa principal por la cual el controlador no es capaz
de los
de regular el dispositivo parece ser la estimacion
a ngulos de Euler, bien por la deriva que presentan o
de
bien por una velocidad inadecuada de estimacion
los mismos. Existe tambien la posibilidad de que el funcionamiento incorrecto del controlador sea consecuencia
de la senal
de mando, es decir, la
de la conversion
de fuerzas acopladas de empuje a tension
transformacion
en cada motor.
MODELADO Y CONTROL DE UN CUADRICOPTERO,
JUNIO 2014
9.
F UTURAS
MEJORAS
netometros.
El codigo
del estimador ya esta prepa
rado para realizar la ampliacion.
de un sistema telemetrico para moImplementacion
nitorizar los ensayos en tiempo real.
una carcasa que permita absorber las vibraDisenar
ciones de los rotores.
R EFERENCIAS
[1] Holger Voos, Nonlinear Control of a Quadrotor
Micro-UAV using Feedback-Linearization. Proceedings of the 2009 IEEE International Conference on
Mechatronics. Malaga, Spain, April 2009.
[2] C BALAS and Dr J.F. Whidborne, Modelling and
Linear Control of a Quadrotor. CRANFIELD UNIVERSITY, September 2007.
[3] Bouabdallah, S., Murrieri, P. and Siegwart,
R.,Towards autonomous indoor micro VTO,
Autonomous Robots, France, 2005.
[4] Paul Pounds, Robert Mahony, Peter Corke, Modelling and Control of a Quad-Rotor Robot. Australian
National University, 2006.
[5] McKerrow, P.,Modelling the Draganflyer four rotor
helicopter. IEEE International Conference on Robotics and Automation, April 2004.
[6] Robert W Klein, Flight control system employing
complementary filter. Grumman Aerospace Corp,
May 1987
[7] James K. Hall, Nathan B. Knoebel, Timothy W.
McLain, Quaternion Attitude Estimation for Miniature Air Vehicles Using a Multiplicative Extended
Kalman Filter. Brigham Young University, Provo, UT
84602.
[8] Nikolas Trawny and Stergios I. Roumeliotis, Indirect
Kalman Filter for 3D Attitude Estimation. A tutorial for quaternion algebra. University of Minnesota,
March 2005.
[9] Manuel Kramer, Douglas J. Dapprich, Gyro stabilized inertial reference system with gimbal lock prevention means. The Charles Stark Draper Laboratory,
Inc. October 1977.
[10] Hoffmann,G.M., Rajnarayan, D.G., Waslander, S.L.,
Dostal, D., Jang, J.S. and Tomlin, C.J., The stanford
testbed of autonomous rotorcraft for multi agent
control. Digital Avionics Systems Conference, 2004.
[11] Bouabdallah, S., Noth, A. and Siegwart, R., PID
vs LQ control techniques applied to an indoor micro quadrotor. Swiss Federal Institute of Technology,
2004
[12] Igor Gaponov,Anastasia Razinkova, Quadcopter
Design and Implementation as a Multidisciplinary
Porras Galan,
Fernandez
Martnez, Cesareo.
Partner entity : ICAI Universidad Pontificia Comillas.
AbstractThe objective of the research path where this project is framed is to model and control an unmanned aerial vehicle (UAV)
provided with four rotors (quadcopter) powered by brushless motors. The control system will allow the system to hover, to fly guided
by a transmitter and to fly autonomously using proximity sensors. As this project is aimed to be applied in future courses within the
university, all the control strategies as well as the models created will be adapted to Matlab/Simulink.
Index TermsQuadcopter, UAV, Thesis, ICAI, Comillas.
I NTRODUCTION
S TATE
OF THE ART
M ODELLING
Volume
(mm3 )
0.2722
94059.7154
Ixx
(Kgm2 )
7.83 104
Iyy
(Kgm2 )
7.85 104
Izz
(Kgm2 )
1.401 103
Rm
()
0.6
b
(N s/rad)
5.44e-7
d
(N ms/rad)
7.32e-9
2
1
0
ngulo()
1
2
3
4
S TATE
ESTIMATION
5
6
7
8
9.5
10
10.5
11
11.5
12
12.5
13
13.5
14
Tiempo(s)
C ONTROL
SYSTEM DESIGN
I MPLEMENTATION
As there is no previous experience on the use of quadcopters within the UPCO, a great amount of the job done
has gone to build and set the device. This tasks include
the assembly of the structure, the placing of the required
elements (ESC, rotors, controller chip card, etc.) as well
as their connection. In addition, a chip card has been
both designed and built to monitor the battery charge.
The circuit, shown in figure 7, is made up of a voltage
divisor with a buffer.
T ESTS
Estimacin corregida
Mandos U1, U3
40
260
Phi
Theta
MEKF
Filtro IMU
240
Tensin(PWM)
220
20
200
180
160
140
ngulos ()
120
0.05
0.1
0.15
0.2
20
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
0.5
Mandos U2, U4
260
U2
U4
240
Tensin(PWM)
220
40
200
180
160
60
140
120
80
0.1
0.2
0.3
0.4
0.5
0.6
11
10
10
ngulo ()
ngulo ()
ngulo ()
11
PID
Realimentacin
LQR
10
0.5
1.5
2
Tiempo (s)
2.5
4.5
5.5
6
Tiempo (s)
6.5
0.05
0.1
0.15
0.2
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
0.5
11
0.7
Tiempo (s)
7.5
8.5
9
Tiempo (s)
9.5
10
C ONCLUSIONS
F UTURE
IMPROVEMENTS
R EFERENCES
[1] Holger Voos, Nonlinear Control of a Quadrotor
Micro-UAV using Feedback-Linearization. Proceedings of the 2009 IEEE International Conference on
Mechatronics. Mlaga, Spain, April 2009.
[2] C BALAS and Dr J.F. Whidborne, Modelling and
Linear Control of a Quadrotor. CRANFIELD UNIVERSITY, September 2007.
[3] Bouabdallah, S., Murrieri, P. and Siegwart,
R.,Towards autonomous indoor micro VTO,
Autonomous Robots, France, 2005.
[4] Paul Pounds, Robert Mahony, Peter Corke, Modelling and Control of a Quad-Rotor Robot. Australian
National University, 2006.
[5] McKerrow, P.,Modelling the Draganflyer four rotor helicopter. IEEE International Conference on
Robotics and Automation, April 2004.
[6] Robert W Klein, Flight control system employing
complementary filter. Grumman Aerospace Corp,
May 1987
[7] James K. Hall, Nathan B. Knoebel, Timothy W.
McLain, Quaternion Attitude Estimation for Miniature Air Vehicles Using a Multiplicative Extended
Kalman Filter. Brigham Young University, Provo, UT
84602.
[8] Nikolas Trawny and Stergios I. Roumeliotis, Indirect
Kalman Filter for 3D Attitude Estimation. A tutorial for quaternion algebra. University of Minnesota,
March 2005.
[9] Manuel Kramer, Douglas J. Dapprich, Gyro stabilized inertial reference system with gimbal lock prevention means. The Charles Stark Draper Laboratory,
Inc. October 1977.
[10] Hoffmann,G.M., Rajnarayan, D.G., Waslander, S.L.,
Dostal, D., Jang, J.S. and Tomlin, C.J., The stanford
testbed of autonomous rotorcraft for multi agent
control. Digital Avionics Systems Conference, 2004.
[11] Bouabdallah, S., Noth, A. and Siegwart, R., PID
vs LQ control techniques applied to an indoor micro quadrotor. Swiss Federal Institute of Technology,
2004
[12] Igor Gaponov,Anastasia Razinkova, Quadcopter
Design and Implementation as a Multidisciplinary
Engineering Course. IEEE International Conference
on Teaching, Assessment, and Learning for Engineering (TALE), August 2012.
MODELADO Y CONTROL
DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
Autor:
Directores:
Luis Sevilla
3 de junio de 2014
Indice general
1. Documento I: Memoria
206
3. Documento III: C
odigo Fuente
217
263
5. Anexo A
281
6. Anexo B
283
7. Anexo C
289
8. Anexo D
299
MODELADO Y CONTROL
DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
DOCUMENTO I
MEMORIA
Autor:
Directores:
Luis Sevilla
3 de junio de 2014
Indice general
1. Introducci
on
1.1. Aplicaciones de cuadricopteros en la industria
1.2. Motivacion del proyecto . . . . . . . . . . . .
1.3. Objetivos . . . . . . . . . . . . . . . . . . . .
1.4. Metodologa de trabajo . . . . . . . . . . . .
1.5. Recursos y herramientas empleadas . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
16
17
17
18
19
19
2. Estado de la cuesti
on
2.1. Modelado del cuadricoptero . . . . . . . . . . . . . . . . . . .
2.1.1. Sistemas de referencia . . . . . . . . . . . . . . . . . .
2.1.2. Fuerzas y Momentos . . . . . . . . . . . . . . . . . . .
2.1.3. Ecuaciones del Movimiento . . . . . . . . . . . . . . .
2.2. Elementos del cuadricoptero . . . . . . . . . . . . . . . . . . .
2.2.1. La estructura o marco . . . . . . . . . . . . . . . . . .
2.2.2. Motores . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.3. Controlador electronico de velocidad . . . . . . . . . .
2.2.4. Batera . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.5. Unidad inercial de medidas (IMU) . . . . . . . . . . .
2.2.6. Controlador . . . . . . . . . . . . . . . . . . . . . . . .
2.2.7. Comunicacion piloto-aeronave . . . . . . . . . . . . . .
2.2.8. Sensores de distancia . . . . . . . . . . . . . . . . . . .
2.2.9. Dispositivos adicionales . . . . . . . . . . . . . . . . .
2.3. Banco de ensayos . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Banco de ensayo para los motores . . . . . . . . . . .
2.3.2. Banco de ensayo para el cuadricoptero . . . . . . . . .
2.4. Efectos Aerodinamicos . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Efecto suelo y efecto techo . . . . . . . . . . . . . . . .
2.4.2. Translaciones y oscilaciones en las palas de los rotores
2.5. Metodos de control . . . . . . . . . . . . . . . . . . . . . . . .
2.5.1. Control usando la teora del Lyapunov . . . . . . . . .
2.5.2. Controlador por linealizaci
on en la realimentacion. . .
2.5.3. Controlador PID . . . . . . . . . . . . . . . . . . . . .
2.5.4. LQR . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5.5. Controlador H . . . . . . . . . . . . . . . . . . . . .
2.6. Estimador de Estados . . . . . . . . . . . . . . . . . . . . . .
2.6.1. Filtro Complementario . . . . . . . . . . . . . . . . . .
2.6.2. Filtro de Kalman . . . . . . . . . . . . . . . . . . . . .
2.7. Complementos . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1. Cuaterniones . . . . . . . . . . . . . . . . . . . . . . .
2.7.2. M
aquinas de estado . . . . . . . . . . . . . . . . . . .
2.7.3. Driver Blocks . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
22
22
23
25
25
25
26
27
28
29
32
34
37
39
41
42
44
45
45
46
48
48
49
51
52
53
53
55
55
61
61
62
63
vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3. Estudio mec
anico del sistema
3.1. Modelado CAD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Ensayos de los motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Estudios aerodin
amicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
64
67
73
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
control
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
76
77
77
82
84
86
86
90
91
92
94
99
106
106
109
110
111
5. Implementaci
on
5.1. Dise
no de drivers . . . . . . . . . . . . . .
5.1.1. Driver para la IMU . . . . . . . . .
5.1.2. Driver para el transmistor-receptor
5.1.3. Driver para los motores . . . . . .
5.1.4. Driver para el lector de batera . .
5.2. Montaje del dispositivo . . . . . . . . . .
5.3. Conexionado . . . . . . . . . . . . . . . .
. . .
. . .
RC
. . .
. . .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
114
114
115
117
121
122
123
127
6. Ensayos
6.1. Simulaciones . . . . . . . . . . . . . . . . . .
6.1.1. Control para el modelo completo . . .
6.1.2. Controles para el modelo simplificado
6.1.3. Control para el pendulo invertido . . .
6.2. Ensayos en el dispositivo . . . . . . . . . . . .
6.2.1. Filtro de Kalman . . . . . . . . . . . .
6.2.2. Filtro de Savitzky-Golay . . . . . . . .
6.3. Ensayo de los controladores . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
130
131
131
140
165
171
171
177
179
7. Conclusiones
7.1. Resumen de las tareas realizadas
7.2. Conclusiones del proyecto . . . .
7.2.1. Estudios mecanicos . . . .
7.2.2. Regulaci
on del sistema . .
7.2.3. Implementaci
on . . . . . .
7.2.4. Estudio en conjunto . . .
7.3. Precauciones a tener en cuenta .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
186
187
193
194
194
198
199
199
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8. Futuras mejoras
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
202
viii
Indice de tablas
2.1. Comparacion entre motores con y sin escobillas . . . . . . . . . . . . . . . . 27
2.2. Controladores de cuadricopteros mas comunes . . . . . . . . . . . . . . . . . 33
2.3. Valores obtenidos en el ensayo de un motor [4] . . . . . . . . . . . . . . . . 43
3.1. Parametros mecanicos del cuadric
optero . . . . . . . . . . . . . . . . . . . . 65
3.2. Parametros de los motores . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.1.
4.2.
4.3.
4.4.
4.5.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
accion
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
134
136
143
144
146
149
152
.
.
.
.
155
158
162
168
7.1.
7.2.
7.3.
7.4.
7.5.
7.6.
7.7.
7.8.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
187
189
189
190
190
191
192
192
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Indice de figuras
1.1. Cronograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1. Desarrollo de los cuadricopteros . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Modelo de un cuadricoptero . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Diagrama de funcionamiento de un cuadricoptero . . . . . . . . . . . . . .
2.4. Sistemas de ejes[1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. Giros[2] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Giros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7. Diagrama del Cuerpo Libre [3] . . . . . . . . . . . . . . . . . . . . . . . .
2.8. Motor brushless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.9. Controlador electr
onico de velocidad . . . . . . . . . . . . . . . . . . . . .
2.10. Batera LIPo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.11. Giroscopo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.12. Esquema simb
olico de un aceler
ometro . . . . . . . . . . . . . . . . . . . .
2.13. IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.14. Diagrama del microcontrolador . . . . . . . . . . . . . . . . . . . . . . . .
2.15. Ejemplo de un transmisor de 5 canales . . . . . . . . . . . . . . . . . . . .
2.16. Simulacion de la onda emitida por un sensor de ultrasonido . . . . . . . .
2.17. Error en la percepcion por la proximidad de los sensores . . . . . . . . . .
2.18. Ejemplo de vuelo inmovil basado en sensores infrarrojos. . . . . . . . . . .
2.19. Ejemplo de un banco de ensayo para motores brushless. . . . . . . . . . .
2.20. Graficas de empuje y velocidad para distintas intensidades en un motor
brushless [4] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.21. Banco de ensayo para cuadricopteros de eje fijo . . . . . . . . . . . . . . .
2.22. Grafica efecto suelo con datos del ensayo . . . . . . . . . . . . . . . . . . .
2.23. Grafica efecto techo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.24. Oscilacion en la pala como consecuencia de una translacion[5] . . . . . . .
2.25. Ciclo de oscilacion de la helice como consecuencia de una translacion . . .
2.26. Relacion entre el empuje y el
angulo de ataque para una velocidad de translacion constante.[5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.27. Diagrama de bloques del control por linealizaci
on en la realimentaci
on.[6]
2.28. Diagrama de bloques de un observador. . . . . . . . . . . . . . . . . . . .
2.29. Esquema de funcionamiento de un filtro complementario . . . . . . . . . .
2.30. Diagrama de bloques de un filtro de Kalman con planta lineal . . . . . . .
2.31. Esquema del proceso interno del filtro de Kalman . . . . . . . . . . . . . .
2.32. Maquina de estados del PX4 Autopilot [7] . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
20
20
21
22
23
24
25
26
28
28
30
30
31
33
36
37
38
39
43
.
.
.
.
.
.
43
44
45
46
47
47
.
.
.
.
.
.
.
48
50
53
55
55
56
63
3.1.
3.2.
3.3.
3.4.
3.5.
.
.
.
.
.
65
67
68
68
69
xi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
70
70
71
72
72
73
74
78
79
80
83
84
85
87
91
95
95
97
97
98
99
101
102
103
104
105
109
110
111
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
117
118
121
122
123
123
124
124
125
125
126
126
127
128
129
129
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
132
132
133
135
xii
6.55. Se
nales de referencia con y sin filtrado . . . . . . . . . . . . . . . . . . . . . 178
6.56. Filtrado en la se
nal de tensi
on de la batera . . . . . . . . . . . . . . . . . . 178
6.57. Mandos en funcion de la referencia aplicada . . . . . . . . . . . . . . . . . . 179
6.58. Mandos aplicados sobre el dispositivo en lazo abierto con el controlador PID.180
6.59. Mandos aplicados sobre el dispositivo con el controlador PID . . . . . . . . 181
6.60. Mandos aplicados sobre el dispositivo con el controlador LQ . . . . . . . . . 182
6.61. Mandos aplicados sobre el dispositivo con el controlador LQI . . . . . . . . 183
7.1. Esquema de tareas realizadas . . . . . . . . . . . . . . . . . . . . . . . . . . 186
7.2. Conexionado al microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . 191
7.3. Estructura final del cuadricoptero . . . . . . . . . . . . . . . . . . . . . . . . 192
xiv
Captulo 1
Introducci
on
En los u
ltimos a
nos hemos sido testigos de un desarrollo importante en el campo de la
electronica. Sensores y microprocesadores, entre otros muchos dispositivos, han sido mejorados abriendo nuevas lneas de investigacion en proyectos para los que anteriormente
no exista soporte fsico o cuyos componentes no respondan adecuadamente a las necesidades fijadas. Una de esas lneas de investigacion es el control y modelado de vehculos
aereos no tripulados (UAV), basados especialmente en sistemas de despegue y aterrizaje
vertical (VTOL). En este proyecto modelaremos y controlaremos uno de los UAVs mas
caractersticos, el cuadric
optero o quadcopter. A traves del control de cuatro rotores independientes, otorgaremos al dispositivo tanto estabilidad como autonoma, siendo capaz
de realizar acciones tales como el vuelo estacionario, la navegacion guiada mediante una
emisora de radio-control o la navegacion autonoma mediante sensores de distancia. En este
proyecto nos limitaremos al estudio e implementacion del control para vuelos internos. El
software de control sera generado en el entorno de Matlab/Simulink con el fin de poder
aplicarlo tambien a la docencia en cursos posteriores. Por lo tanto este proyecto aportara a
la Universidad Pontificia de Comillas experiencia en la operaci
on de UAVs que, posteriormente, puede ser utilizada para iniciar lneas de investigacion m
as concretas y avanzadas,
as como la aplicacion de este dispositivo al
ambito academico en la formaci
on de alumnos
dada la gran variedad de conceptos que incorporan estos dispositivos.
Este documento se presenta como un compendio del estudio realizado. Su contenido esta organizado en captulos y secciones donde se clasifican y describen los elementos
necesarios para un correcto dise
no y funcionamiento, as como la operacion del sistema
implementado. En este primer captulo se introducen las aplicaciones actuales en la industria, la motivacion, objetivos y metodologa del trabajo del proyecto, as como los recursos
empleados. En el captulo segundo se incluye un estudio del estado del arte, describiendo
los elementos necesarios para un completo entendimiento de los captulos sucesivos. El
captulo tercero acoge el estudio mecanico del proyecto, mostrando el modelo CAD de la
nave, los estudios mecanicos de la misma y las simulaciones aerodinamicas realizadas. En
el captulo cuarto se incluye todo lo relacionado con el control del dispositivo, describiendo
el modelo, la estimacion de los estados, el control y la implementaci
on de una m
aquina
de estados para su control logico. El quinto captulo recoge los conceptos relacionados con
la implementaci
on del software dise
nado sobre el sistema, describiendo los drivers necesarios, el montaje y el conexionado del dispositivo. El captulo sexto muestra los ensayos
realizados y en el, se incluyen los resultados obtenidos. En el captulo septimo se exponen
las conclusiones y finalmente, en el captulo octavo se incluyen las futuras mejoras que se
podran realizar sobre el proyecto. A traves de esta distribucion de contenidos se pretende informar al lector, de forma clara, del contenido del proyecto facilitando as trabajos
futuros sobre el tema estudiado.
15
1.1.
Introducci
on
Aplicaciones de cuadric
opteros en la industria
1.2.
Motivaci
on del proyecto
Introducci
on
1.3.
Objetivos
Para un correcto desarrollo del proyecto as como unos resultados satisfactorios se han
fijado los siguientes onjetivos:
1. Modelado CAD y matematico del cuadric
optero.
2. Control de vuelo estacionario.
3. Navegacion guiada mediante una emisora de radio control.
4. Navegacion autonoma mediante sensores de distancia.
Dado que nuestro microprocesador trabaja u
nicamente con 8 bits, la capacidad de computacion es reducida. Esto es un peque
no problema en este caso, ya que trabajamos con
matrices de rotaci
on, por lo que las operaciones son computacionalmente costosas. Por esa
razon desarrollaremos un controlador basado en cuaterniones que haran la funcion de las
matrices de rotaci
on de Euler, facilitando su computacion y haciendo por tanto posible el
control del vehculo mediante el dispositivo de calculo disponible.
17
1.4.
Introducci
on
Metodologa de trabajo
1.5.
Captulo 2
Estado de la cuesti
on
El primer vuelo de un cuadricoptero o cuadrirrotor tuvo lugar el 11 de noviembre
de 1922 y fue realizado por el ingeniero frances Etienne Oehmichen. A pesar del exito,
la complejidad en el control de estas naves por parte del piloto ralentizo su desarrollo,
centrando la investigacion en los helic
opteros que hoy en da conocemos. A pesar de las
dificultades, algunos investigadores siguieron trabajando en modelos de cuatro rotores y
desarrollaron prototipos como los mostrados en la imagen 2.1 que datan de los a
nos 50.
19
Estado de la cuesti
on
El funcionamiento de estos dispositivos para vuelo con control remoto esta representado
por el diagrama de la figura 2.3. A traves de un sistema de comunicacion inalambrico
(zigbee, bluethooh, radio frecuencia...) se comunica al controlador la nueva direccion a
tomar lo cual, junto con las medidas obtenidas de los aparatos de medicion incluidos
en el controlador (gir
oscopos, aceler
ometros, magnet
ometros etc) as como elementos de
posicionamiento externos como GPS, permite actuar sobre las velocidades de los motores
variando la tensi
on aplicada a las mismas
20
Estado de la cuesti
on
2.1.
2.1.1.
Sistemas de referencia
Estado de la cuesti
on
A fin de crear un modelo consistente, todas las magnitudes deben estar referidas a
la misma base y por tanto definiremos una matriz de cambio de base (2.1) que transformara elementos del sistema inercial al sistema m
ovil y viceversa. A fin de simplificar la
notaci
on de dicha matriz se han representado las funciones seno y coseno con la letra S y
C respectivamente.
S S S + C C S S C C S S C
C S
C C
S
(2.1)
R=
C S S S C C S C + S S C C
Para describir los giros que realizara nuestro dispositivo utilizaremos los
angulos de Euler.
As pues la gui
nada () es la rotaci
on intrnseca alrededor del eje vertical perpendicular al
avion, el cabeceo () es una inclinacion del morro de la nave, o rotaci
on respecto al eje alaala, el alabeo() rotaci
on respecto de un eje morro-cola. Para m
as claridad se ha incluido
la imagen (2.5) que representa los tres giros de la aeronave anteriormente descritos.
2.1.2.
Fuerzas y Momentos
Una vez definidas ambas bases junto con la matriz de cambio de base, necesitamos
definir las fuerzas y pares que se aplican sobre la aeronave para, posteriormente, modelar
el sistema a traves de las ecuaciones de movimiento.
Cada uno de los cuatro motores montados en el vehculo consumiran una potencia que,
por conservacion de la energa, sera igual al empuje por la velocidad del aire que desplaza.
Asumiendo que el aire en los alrededores del cuadricoptero esta en estado estacionario y,
aplicando la teora del momento de Froudes [8], obtenemos la ecuacion que relaciona la
velocidad del aire con el empuje de cada motor. Combinando por tanto la ecuaci
on de la
potencia con la ecuaci
on de Froude y extendiendola al conjunto de motores, obtenemos la
ecuaci
on (2.2) que describe el empuje del los rotores. Es importante notar que el empuje
esta referido al sistema de coordenadas fijo al cuerpo.
0
4
%
0
Tc =
Ti = k
(2.2)
4
'
i=1
i
i=1
Otra fuerza que debe estar incluida en nuestro modelo es el peso del cuerpo. Esta
fuerza, bastante m
as sencilla de caracterizar que cualquier otra fuerza a incluir en el
modelo, esta representada en el sistema de referencia inercial mediante la ecuaci
on (2.3).
22
Estado de la cuesti
on
0
P = 0
mg
(2.3)
Las dos fuerzas anteriormente introducidas y descritas a traves de las ecuaciones (2.2)
y (2.3) son la base para nuestro modelo simplificado. No obstante, existen otros factores
que conviene tener en cuenta dadas ciertas condiciones del entorno.
Acorde al modelo desarrollado en[9], las palas de los rotores adquieren un peque
no
angulo cuando los rotores se trasladan horizontalmente. Este
angulo hace que el plano
de rotaci
on no sea totalmente perpendicular al eje del rotor e introduce un notable efecto de desestabilizacion en el vehculo[10]. La figura(2.6) muestra gr
aficamente el efecto
anteriormente descrito.
Lb(12 32 )
Lb(22 42 )
c =
(2.4)
2
2
2
2
d(1 + 3 2 4 )
seccion. Estos
ser
an los que utilizaremos tanto para el modelado como para su posterior
control en las siguientes secciones.
23
Estado de la cuesti
on
2.1.3.
Las ecuaciones del movimiento de translacion de la aeronave referidas a los ejes inerciales, se derivan de la segunda ley de Newton tal y como se muestra en la ecuaci
on (2.5).
0
0
m
r = 0 +R
(2.5)
4
'
mg
k
i
i=1
S
m
C C
m
y =
z =
S C
m
4
'
Ti
i=1
4
'
i=1
4
'
Ti
(2.6)
Ti + g
i=1
Para las ecuaciones de giro, no se usara el sistema inercial sino el fijo al vehculo, de forma
que se pueda expresar las rotaciones respecto al centro del cuadricoptero, en lugar del
centro del sistema inercial. Partiendo de las ecuaciones de Euler para solidos rgidos se
puede expresar la tal que:
0
(2.7)
I + (I) + IR ( 0 ) =
1
Dada la estructura del dispositivo, podemos asumir que la matriz de inercia tiene una
estructura diagonal (productos de inercia nula) y por lo tanto podremos despejar el vector
de velocidades angulares de una forma mas sencilla. N
otase que la ecuacion (2.7) incluye
los efectos giroscopicos tanto de los motores como del cuerpo.
2.2.
En esta secci
on se presentan y describen los distintos componentes que constituyen un
cuadricoptero b
asico. Elemento a elemento, se analizar
a su funcionamiento as como su
funcion en el sistema completo de forma que se logre un mejor entendimiento del conjunto.
2.2.1.
La estructura o marco
El marco es la estructura a la que se van a acoplar los demas elementos. El marco debe
ser rgido de forma que se minimicen las vibracion generadas en los rotores. Generalmente
24
Estado de la cuesti
on
esta compuesto por tres partes claramente definidas que no tienen que ser independientes, es decir, que puede ser una u
nica pieza. En el marco de un cuadricoptero podemos
distinguir:
1. Una placa central donde se colocaran los elementos electronicos tales como el controlador de vuelo entre otros.
2. Cuatro brazos unidos a la placa central que soportan los sistemas de propulsion o
rotores. La longitud de los brazos normalmente esta relacionada con el tama
no de
las helices, de forma que se garantice el giro de las mismas sin obstrucciones de los
componentes situados en la placa central.
3. Cuatro soportes para los motores posicionados en el extremo de cada brazo.
Normalmente los materiales con los que se fabrican suelen ser fibras de carbono, madera
o aluminio aunque existen marcos de materiales m
as especficos como fibras de vidrio. La
fibra de carbono es un material rgido que absorbe perfectamente las vibraciones, pero
tiene el inconveniente de que es relativamente caro. Los otros dos materiales presentados
son m
as economicos que la fibra de carbono pero, como era de esperar, no son tan efectivos.
El aluminio goza de una gran rigidez as como un peso relativamente bajo, pero tiene el
problema de que no absorbe las vibraciones de los motores, pudiendo afectar gravemente
a las medidas de los sensores acoplados al marco. Por el contrario, la madera tiene la
propiedad de absorber las vibraciones pero desafortunadamente, es bastante fragil y puede
romperse el marco en caso de colisi
on.
2.2.2.
Motores
Estado de la cuesti
on
carcasa generando un campo magnetico que interaccionara con el de los imanes, generando
una par de rotaci
on sobre el eje del motor. La principal diferencia entre los motores de
rotor externo y los de rotor interno es que los primeros, como consecuencia de tener un
diametro mayor de rotor, ofrecen mayor inercia pero peor aceleracion, hecho que puede
ser beneficioso para algunas aplicaciones como en ventiladores.
Generalmente los motores brushless en conjunto, giran a un mayor n
umero de revoluciones que los motores de corriente continua. Ademas, para una velocidad de giro
equivalente, el consumo de potencia en los motores brushless es menor que en los de continua. Asmismo, los motores brushless generan menos perdidas de potencial al no existir
escobillas y por tanto cambios entre distintas posiciones de las mismas. Sin embargo, a
pesar de ser m
as eficientes desde el punto de vista energetico, al no contar con escobillas,
delgas o colectores, la regulacion de la velocidad de giro ha de realizarse a traves controladores electronicos de velocidad. A continuacion se incluye una tabla donde se comparan
los motores de corriente continua con los brushless, obtenida y traducida de [12]:
Propiedad
Conmutaci
on
Mecanica
Electronica
Mantenimiento
Alto
Bajo
Ruido electrico
Alto
Bajo
Vida
Corta
Larga
Matenimiento
Alto
Bajo
Curva par-velocidad
Relativamente plana
Eficiencia
Media
Alta
2.2.3.
Controlador electr
onico de velocidad
Estado de la cuesti
on
2.2.4.
Batera
(2.8)
Estado de la cuesti
on
2.2.5.
Estado de la cuesti
on
29
Estado de la cuesti
on
La combinaci
on de tres dispositivos situados en las tres direcciones del espacio permite
obtener una medida de la orientacion del sistema con respecto a los ejes inerciales. Sin
embargo estos dispositivos son particularmente sensibles a las vibraciones pudiendo generar
problemas en el sistema de control. Por ese motivo, se suelen combinar con los giroscopos de
forma que se pueda obtener una medida m
as precisa pudiendo distinguir entre movimientos
y vibraciones.
Magnet
ometro
Un magnetometro es un dispositivo encargado de medir la intensidad, y en algunos casos la direccion, de un campo magnetico en un punto concreto del espacio. Las variaciones
de altura del sistema al cual esta acoplado, generar
an peque
nas variaciones en la medida del campo magnetico terrestre, de modo que estos dispositivos pueden complementar
las medidas de los giroscopos y los aceler
ometros. Concretamente, los magnetometros se
usan en el control del
angulo de gui
nada de la nave en combinacion con los giroscopos.
El magnet
ometro sera capaz de determinar la posicion de los polos magneticos norte y
sur que, combinado con la medida del giro de gui
nada del giroscopo, permite obtener
una medida limpia y precisa del
angulo de gui
nada. Es importante remarcar que para
un correcto funcionamiento de estos dispositivos, el cuadricoptero ha de estar alejado de
cualquier material magnetico que pudiera influir significativamente en el valor del campo
magnetico terrestre. En ocasiones se suele sustituir la labor del magnetometro por GPS
en vuelos exteriores o por sensores instalados en las paredes que se comunican con la nave
para vuelos interiores.
La figura 2.13 muestra una IMU, la cual incluye los elementos anteriormente descritos.
Como podemos observar en la fotografa, las IMU tiene la gran ventaja de que proporcionan
una gran cantidad de medidas ocupando relativamente poco espacio, motivo por el cual
son tan utilizadas en elementos de navegacion. Sin embargo no son todo ventajas. Como
hemos visto, los giroscopos y, en menor medida, los acelerometros a
naden un error o bias
que se acumula a lo largo del tiempo. Es importante por tanto estimar los errores de forma
que puedan ser eliminados de las medidas y, as, se eviten posibles problemas en el control
de la aeronave. Ademas la IMU no esta tomando medias en todo momento, sino que lo
hace durante un intervalo finito de tiempo. Por tanto, la IMU trabajara con valores medios
y no con valores instantaneos.
30
2.2.6.
Estado de la cuesti
on
Controlador
Estado de la cuesti
on
Open
Source
Esta-
Auto-
bilizacion
estabili-
ante giros
zaci
on
Alt.
Posici
on
Vuelta
Nav.
cte
constante
a casa
pto a pto
Precio
AeroQuad 32
Si
Si
Si
Si
Extra
Extra
Extra
Medio
Si
Si
Si
Si
Si
Si
Si
Medio
AutoQuad v6.6
Si
Si
Si
Si
Si
Si
Si
Alto
Si
Si
Si
Si
Extra
Extra
Extra
Bajo
Si
Si
Si
No
No
No
No
Bajo
Crius MultiWii SE
Si
Si
Si
Si
No
No
No
Bajo
DJI Naza
No
Si
Si
Si
Extra
Extra
No
Medio
DJI Wookong
No
Si
Si
Si
Si
Si
Extra
Alto
Free Flight
No
Si
Si
No
No
No
No
Bajo
FY-30A
No
Si
Si
No
No
No
No
Medio
Gaui GU-344
No
Si
No
No
No
No
No
Medio
Hobbyking KK2.0
Si
Si
Si
No
No
No
No
Bajo
HoverflyPRO
No
Si
Si
Si
Extra
Extra
Extra
Alto
HoverflySPORT
No
Si
No
Extra
No
No
No
Medio
Bajo
KKMulticopter
Si
Si
No
No
No
No
No
MikroKopter Flight-Ctrl
No
Si
Si
Si
Extra
Extra
Extra
Alto
Si
Si
Si
Si
Si
Si
Si
Bajo
Si
Si
Si
Si
Si
Si
Si
Bajo
OpenPilot CC3D
Si
Si
Si
No
No
No
No
Bajo
Paris MultiwiiCopter
Si
Si
Si
Si
Extra
Extra
Extra
Medio
Quadrino ZoomFlight
Si
Si
Si
Si
No
No
No
Medio
Rabbit
No
Si
Si
Extra
Extra
Extra
No
Bajo
SmartAP Autopilot
No
Si
Si
Si
Si
Si
Si
Alto
No
Si
Si
No
No
No
No
Medio
UAVP/UAVX
Si
Si
Si
Si
Si
Extra
Extra
Bajo
XAircraft FC1212-P
No
Si
Exta
Extra
Extra
Extra
No
Medio
Estado de la cuesti
on
Sin embargo, a pesar de la gran cantidad de puertos y pines que se nos ofrecen, no todos
se usaran. Es muy importante remarcar que para alimentar la placa de forma externa, el
jumper amarillo de la foto debe ser extrado de la posici
on que figura en la imagen.
2.2.7.
Comunicaci
on piloto-aeronave
Como hemos comentado en las secciones anteriores, una de las caractersticas de los
cuadricopteros es que se pueden controlar de forma remota, es decir, de manera no tripulada. Para ello es necesario instalar un sistema de comunicacion piloto-nave-piloto, que funcione de forma eficaz y acorde a las prestaciones deseadas por el cliente. Existen distintos
sistemas de comunicacion en el mercado que puedan ser implementados en cuadricopteros
de forma efectiva, cada una con sus ventajas e incovenientes. En esta secci
on se expondran
los sistemas mas comunes as como sus ventajas e inconvenientes.
Zigbee
Zigbee es un protocolo de comunicaci
on inalambrico basando en el estandar IEEE
802.15.4. Se suele emplear en aplicaciones de baja velocidad de transmision de datos,
proporcionando un consumo muy bajo y facil integracion en el sistema. La red Zigbee
estara compuesta por tres elementos principalmente:
1. Coordinador Zigbee. Este dispositivo act
ua como cerebro de la red y se encarga de
coordinar la instalacion, evaluando las se
nales enviadas por los dispositivos finales
y decidiendo como actuar. Debe existir al menos un coordinador en la red para un
correcto funcionamiento de la misma.
2. Router Zigbee. Su misi
on es la de conectar los dispositivos finales con el coordinador,
de forma que siempre exista un enlace entre los elementos.
3. Dispositivo final. Estos dispositivos pueden actuar como sensores (obtencion de datos
para una posterior accion), actuadores (realizaci
on de una accion ordenada), o como
ambos. En caso de un cuadricoptero, tendremos un dispositivo instalado en la nave
que emitira informacion para ser procesada por el coordinador.
Habiendo analizado los elementos constituyentes de una red zigbee podemos describir como
sera la red aplicada al caso que nos ocupa. En el cuadricoptero se instalara un dispositivo
final, el cual transmitira y recibira informacion del coordinador, que estara controlado por
el piloto. Entre ambos existira un router cuya mision sera la de conectar ambos elementos.
Anteriormente hemos mencionado que los dispositivos finales emitiran informacion, pero no
hemos hecho hincapie en c
omo se realiza la transmisi
on. Existen dos tipos de transmision:
1. Con balizas. Con este sistema, los dispositivos emiten o escuchan en un determinado
momento, fijado por el programador. Esto quiere decir que no estan emitiendo o
escuchando todo el tiempo, razon por la cual estos dispositivos consumen tan poca
potencia. Por tanto, cada intervalo de tiempo fijado, los dispositivos se conectaran
33
Estado de la cuesti
on
Estado de la cuesti
on
trasmision hasta la 100mW para conseguir un alcance del orden de 30 metros. En condiciones normales, el aumento del alcance no supone un gran cambio a la hora de usar este
sistema, pues 30 m sigue siendo relativamente cerca. Ademas, no debemos olvidar que el
aumento en la potencia de transmision requiere de unas bateras mayores para mantenerse
en vuelo el mismo tiempo. En consecuencia, este protocolo de comunicacion no se usa con
demasiada asiduidad y se hace uso de otros sistemas m
as efectivos.
Transmisores de radio control
El sistema m
as utilizado a da de hoy para comunicarse con dispositivos moviles de
forma remota es el sistema de radio control. Este sistema cuenta con un emisor, al que
llamaremos transmisor, desde el cual comunicaremos con un receptor situado en el cuadricoptero. El emisor genera una se
nal portadora modulada, como consecuencia del movimiento de un joystick o boton en el dispositivo por parte del piloto. Por lo general, el
sistema de modulaci
on empleado para modular la portadora suele ser FM puesto que rechaza mejor las interferencias que la modulacion AM. El receptor ha sido calibrado para
escuchar en el rango de frecuencias en que el transmisor emite y, por tanto, el receptor
decodificar
a la se
nal recibida y la enviar
a al controlador donde se actuar
a seg
un proceda.
Normalmente, los transmisores tienen un n
umero especfico de canales asociado al n
umero
de elementos a controlar en el dispositivo, es decir, si queremos controlar los tres
angulos
de giro del cuadric
optero y su altura necesitaremos 4 canales. El emisor esta dise
nado
para emitir en un determinado rango de frecuencias, en general suele ser de 35 MHz para
aeronaves, que posteriormente sera dividido por el n
umero de canales mas un ancho de
banda entre canales. As pues, el ancho de banda del emisor suele ser de 35 MHz y el de
cada canal suele estar entre 55 y 90 KHz con una separacion de 20 KHz entre canales. El
n
umero de canales con los que cuenta el transmisor es bastante variado, oscilando entre 4
y 9 para aplicaciones en aeronaves teledirigidas.
35
2.2.8.
Estado de la cuesti
on
Sensores de distancia
36
Estado de la cuesti
on
esta inclinado la se
nal emitida por un sensor puede ser recibida en el segundo generando
un error en la medida que puede perjudicar gravemente el control del dispositivo.
37
Estado de la cuesti
on
Implementaci
on en conjunto
La combinaci
on de los sensores descritos anteriormente ofrece una gran variedad de
posibilidades. Un grupo de trabajo pertenecientes a la universidad de Roma desarrollo un
sistema de vuelo autonomo combinando los dos sensores expuestos [14]. Este sistema hace
uso de los sensores de infrarrojos horizontales para controlar la posicion y la direccion
de la nave. Para controlar la altura de la nave se hizo uso de un sensor ultrasonico situado en posici
on vertical. Cuando el piloto da la orden a la nave para que permanezca
inmovil, el conjunto de sensores realizan una medida de distancia al entorno. El controlador debera entonces mantener las medidas constantes hasta que se cambie la orden de
inmovilizacion. Para mejor entendimiento del sistema se ha incluido la imagen 2.18.
2.2.9.
Dispositivos adicionales
Estado de la cuesti
on
39
Estado de la cuesti
on
Chasis protector
Uno de los principales problemas que tienen los cuadric
opteros son las colisiones, dado
que el peso es particularmente importante. Cuanto mayor sea el peso mayor es la potencia necesaria en los motores para mantener la misma velocidad. Se suelen eliminar los
elementos de proteccion, y de mantenerlos no suelen ser particularmente robustos. Esto
implica que si se produce una colisi
on, existe la posibilidad de que se da
ne alguno de los
elementos que componen la nave. Concretamente, los elementos mas debiles del conjunto
y los que se suelen romper son las helices. Suele ser porque son los primeros en colisionar
dada su posici
on elevada respecto al marco y esencialmente por el par que ejerce el motor
sobre las mismas. Si el giro de la helice queda obstruido, el par generado por el motor es
bloqueado por el objeto que bloquea el giro, partiendo la pala de la helice. Por ese motivo
se suele incorporar un chasis perimetral como el que se mostraba en la imagen 2.2. Este
tipo de proteccion no altera la posicion del centro de gravedad de la nave, particularmente
interesante para la regulacion, y envuelve la helice evitando posibles da
nos en caso de
obstruccion. Obviamente la parte superior e inferior de las mismas ha de estar libre pues
necesita mover aire a traves de ella para generar la fuerza de sustentaci
on de la nave.
Este dispositivo es muy practico porque a pesar de que parezca poco probable cuando se
emplea un buen sistema de regulacion, en la fase de dise
no o calibracion del sistema, la
existencia de colisiones es relativamente com
un.
2.3.
Banco de ensayos
40
Estado de la cuesti
on
2.3.1.
Mediante este banco se busca medir el empuje que genera un motor brushless al circular
una corriente fija por el. Adicionalmente se puede hacer una medici
on de las revoluciones
por minuto de la helice as como del par entregado por el motor. La figura 2.19 muestra
un banco de ensayos casero realizado por un aficionado a la electronica y a las aeronaves.
Su dise
no sencillo no implica una perdida de precision en las medidas, pues permite recoger las medidas b
asicas deseadas con un error relativamente bajo. El motor se coloca
con su eje en posici
on vertical y se fija a una tablilla de madera con forma de L. La tabla
vertical que forma la L sostiene al motor mientras que la horizontal sostiene un elemento
puntiagudo (tornillo, clavo...) en contacto con una bascula. La union de los tabillas que
forman la L esta unida a un eje, que permite a la L rotar. Cuando el motor se ponga en
funcionamiento realizara una fuerza de empuje que tendera a girar la madera (en la figura
2.19 girara en sentido contrario a las agujas de reloj), haciendo que el elemento puntiagudo
41
Estado de la cuesti
on
Intensidad(A)
Empuje(N)
Velocidad(rpm)
12.37
1.17(A)
1283.8
4900
12.36
1.48(A)
1509.2
5350
12.35
1.8(A)
1764
5700
12.34
2.1(A)
1999.2
6025
12.32
2.46(A)
2234.4
6300
12.32
2.78(A)
2440.2
6550
12.3
3.42(A)
2832.2
6975
Grafica IntesidadVelocidad
3000
7000
2800
6500
2600
Empuje (N)
2400
2200
2000
6000
5500
1800
1600
5000
1400
1200
1.5
2
2.5
Intensidad (A)
3.5
4500
1.5
2
2.5
Instensidad (A)
3.5
Figura 2.20: Graficas de empuje y velocidad para distintas intensidades en un motor brushless [4]
42
2.3.2.
Estado de la cuesti
on
2.4.
Efectos Aerodin
amicos
2.4.1.
Estado de la cuesti
on
Se conoce como efecto suelo al incremento del empuje por unidad de potencia generado
por los rotores de un helic
optero, respecto al empuje que generan cuando la nave vuela
suficientemente alejada de una superficie, mas concretamente el suelo. Este incremento en
el empuje se produce al impactar y rebotar sobre el suelo parte del aire proyectado por las
palas de los rotores. Este flujo de aire que rebota en la superficie genera un empuje adicional
que ha de considerarse de cara a la estabilizaci
on de la nave. Este efecto es ense
nado en
las academias de vuelo, como por ejemplo la academia Langley Flying School[15], donde
se instruye a los pilotos. En grandes naves, aeronaves que propulsan o mueven grandes
cantidades de aire, la existencia de este efecto genera perdidas en las fuerzas de sustentacion
de la nave, durante despegues o aterrizajes, como consecuencia de la interaccion de los
vortices de punta de ala con la superficie. Dada la importancia de este efecto, se han
realizado numerosos estudios para evitar los perjuicios generados por el mismo, as como
para buscar formas para aprovechar sus efectos positivos. Para peque
nas masas de aire
proyectadas, se ha propuesto una descripcion matematica del efecto [16], basada en el
metodo de las imagenes, descrita a traves de la ecuacion:
1
T
=
R 2
T
)
1 ( 4z
(2.9)
T representa el empuje afectado por la presencia del suelo as como T representa el empuje
proporcionado por los rotores lejos del suelo. En cuanto a los parametros geometricos, R
representa el radio de las palas acopladas al eje del rotor y z es la altura vertical desde
el suelo. Podemos observar como, para el radio de las palas con las que trabajamos (del
orden de 5cm), el efecto es nulo para alturas superiores a 20 cm, y despreciable para
alturas superiores a 4.5 cm. Tambien podemos observar que a distancias muy proximas al
suelo, el aumento en el empuje es particularmente importante y debe tenerse en cuenta de
cara al control del sistema si procediese. Para el radio fijado, la influencia del flujo en el
empuje es mnima debido al radio de la pala pues, al ser tan peque
no, la cantidad de aire
desplazado es peque
na.
Estado de la cuesti
on
2.4.2.
El movimiento de translacion del cuadricoptero va a generar una diferencia de velocidades relativas entre las dos palas de un mismo rotor, produciendose por tanto un
desequilibrio en la sustentacion de la nave, el cual va a inducir unas oscilaciones en las
palas del rotor. El
angulo desviado con respecto a la horizontal va a causar una desviacion
del vector de empuje variando por tanto la direccion del mismo respecto a su posicion natural. Ademas si el plano que contiene al rotor no esta alineado con el centro de gravedad
del vehculo, la nueva componente horizontal del vector empuje creara un momento sobre
el centro de gravedad del sistema, afectando al sistema de regulacion de la posici
on.
45
Estado de la cuesti
on
Estado de la cuesti
on
2.5.
M
etodos de control
2.5.1.
x2 = x1 = |
x7 = z
U 1 = b(21 + 22 + 23 + 24 )
x8 = x7 = z
U 2 = b(22 + 24 )
U 3 = b(21 23
x3 =
x9 = x
x4 = x3 =
x10 = x9 = x
| U 4 = d(21 + 22 23 + 24 )
(2.10)
x5 =
|
x11 = y
|
x6 = x5 = | x12 = x11 = y |
Haciendo uso de la propiedad de independencia en este modelo, divide el modelo en
dos bloques, uno asociado a la traslacion y otro a la rotaci
on. El controlador de Lyapunov
se aplica al bloque asociado a las rotaciones angulares, cuyas ecuaciones din
amicas son:
47
Estado de la cuesti
on
x2
x 4 x 6 a 1 x 4 a 2 r + b1 U 2
x
4
f (X, U ) =
x 2 x 6 a 3 x 2 a 4 r + b2 U 3
x
6
x 4 x 2 a 5 + b3 U 4
(Iyy Izz )
Ixx
r
a2 = IJxx
(I I )
a3 = yyIxx zz
a4 = IJyyr
(I I )
a5 = xxIzz yy
| b1 =
a1 =
| b2 =
| b3 =
(2.11)
l
Ixx
l
Iyy
l
Izz
(2.12)
U3 =
xd3 ) k2 x4
U4 =
xd5 ) k3 x6
(2.14)
l
l
Sustituyendo los valores anteriores en la derivada obtenemos V = x22 Ixx
k1 x24 Iyy
k2
l
k3 , funci
on semidefinida negativa siempre que los valores de ki sean positivos. Acorde
x26 Izz
lm V (X ) = ,
|x |
condicion que en este caso se cumple y que por tanto permite asegurar estabilidad global.
2.5.2.
Estado de la cuesti
on
de velocidades deseadas. El objetivo por lo tanto sera estabilizar el sistema a la vez que se
alcanza la referencia con el mnimo error, haciendo uso de las medidas obtenidas a traves de
la IMU. Esta
proporciona los valores de las aceleraciones y velocidades angulares del cuerpo
que, haciendo uso de un filtro de Kalman, proporcionar
a una estimacion de los
angulos de
Euler. Si la referencia se mantiene a cero, el sistema debera mantenerse estable en vuelo
estacionario. La principal ventaja de este control en su conjunto es que la linealizaci
on y
sus controladores son comparativamente mas sencillos de implementar que el sistema no
lineal completo. Esto da lugar a una mayor velocidad de calculo aunque requiere obtener
una medida o estimacion, con la suficiente precision, de todas las variables de estado. El
esquema 2.27 representa la estructura del controlador, donde se muestran los dos lazos
descritos anteriormente.
1 + L u2
I
Ix
= I
2 + L u3
Iy
3 + 1 u4
I
Iz
(2.15)
K2 + ILx u2
= K3 + L u
(2.16)
3
Iy
K4 + I z u 4
Donde K2,3,4 son constantes que han de ser negativas para garantizar que el punto de
operacion del sistema linealizado es asintoticamente estable.
49
Estado de la cuesti
on
V x
(cos(d )sin(d )cos(d ) + sin(d )sin(d )) um1
m
V z
g cos(d )cos(d ) u1
(2.17)
u1
k1 (Vxd Vx )
u = k2 (Vyd Vy )
2
u3
k3 (Vzd Vz )
(2.18)
Donde k1,2,3 son las ganancias del controlador proporcional, las cuales pueden ser elegidas
de forma tal que el lazo sea lo suficiente rapido, pero nunca mas rapido que el lazo interno.
2.5.3.
Controlador PID
Estado de la cuesti
on
2.5.4.
LQR
51
2.5.5.
Estado de la cuesti
on
Controlador H
Este controlador, desarrollado principalmente por Chen[25], presenta una gran robustez, un buen rechazo a interferencias y un buen seguimiento de trayectorias de referencia.
En su artculo combina tambien el controlador H con un control predictivo basado en
modelo (MBPC). Si bien el rol del controlador es mantener la estabilidad de forma robusta y un control sobre la trayectoria, el control predictivo permite controlar la trayectoria
tanto longitudinalmente como lateralmente para vuelos no estacionarios.
El controlador esta divido en dos lazos. En el primero se estabilizan los
angulos de
giro y la velocidad vertical, mientras que el segundo controla la altura y las velocidades
laterales y longitudinales. Diferentes tipos de perturbaciones se aplicaron en la simulaci
on
y el controlador respondio satisfactoriamente.
2.6.
Estimador de Estados
Estado de la cuesti
on
(2.19)
A la vista de la ecuaci
on anterior, para que el error converja asintoticamente a cero se
necesita que la matriz (A LC) sea de tipo Hurwitz, es decir,se ha de definir una matriz
L tal que la matriz (A LC) tenga autovalores con parte real negativa. A los autovalores
de esta matriz se les conoce como polos del observador, as como a los autovalor- es de
la matriz (A BK) se les conoce como polos de realimentacion. Para la ubicacion de los
polos del observador solo se debe tomar en cuenta que estos deben estar mas a la izquierda
en el semiplano izquierdo que los polos del sistema con realimentacion de estados, esto es,
que la dinamica del observador debe ser m
as r
apida que la del sistema que debe observar
si queremos tener un estimador de los estados adecuado. Generalmente se hace uso del
teorema de dualidad calculando L a traves de la relaci
on (L = K T ), donde K es la matriz
de ganancia de realimentacion de estados, para obtener el valor de la matriz, pero tambien
se puede mejor la dinamica del observador posicionando los polos manualmente.
Sin embargo no podemos mejorar la dinamica indefinidamente, pues a pesar de que una
ganancia alta implica una mayor velocidad de convergencia, tambien da lugar a fenomenos
de picos en los que el error, generalmente el inicial, puede ser tan grande que de lugar a
situaciones de peligro o inseguridad. Si se diera ese caso, habra que recurrir a observadores
no lineales con realimentaci
on de alta ganancia, como los observadores en modo deslizante
[7]. Estos observadores elevan los estados estimados a un hiper plano superior donde no
hay diferencia entre la salida estimada y la salida medida. La ganancia no lineal suele
implementarse con una funcion de interrupcion escalada, como la funci
on signum. Por lo
tanto, como consecuencia de la realimentacion con alta ganancia, el campo vectorial del
observador contiene un pliegue de forma que las trayectorias del observador se deslizan
sobre la curva definida por el pliegue, curva donde las medidas y las estimaciones coinciden
exactamente. Por tanto si el sistema es observable desde la salida, el observador seguir
aa
los valores reales del sistema de estados.
Hasta ahora se ha supuesto que las medidas obtenidas a la salida del sistema no
contienen ruido. Sin embargo, ese supuesto no suele ser del todo com
un, especialmente en
el caso que nos ocupa. La existencia de ruido en las medidas disminuye la efectividad del
observador b
asico que describamos anteriormente, pudiendo llegar a ser completamente
in
util. Ante este tipo de situaciones, existen tambien otros tipos de observadores aunque
reciben el nombre de filtros. Los mas comunes, y por tanto los que se analizar
an aqu, son
el filtro complementario y el filtro de Kalman.
53
2.6.1.
Estado de la cuesti
on
Filtro Complementario
Este tipo de filtros esta poco extendido en el campo de la regulacion pero se aplica con
gran asiduidad al campo de la aeronautica, especialmente en elementos en los que se ha de
estimar los
angulos de Euler de un dispositivo a partir de las medidas de los aceler
ometros
y los giroscopos acoplados al mismo. Este filtro surge ante la necesidad de corregir las
desviaciones que los mencionados elementos introducen en sus medidas, ya bien de baja
frecuencia en el caso de los giroscopos o bien de alta frecuencia en los aceler
ometros. El
filtro complementario realizara una ponderacion entre las medidas de ambos elementos tras
haber filtrado las componentes en frecuencia del ruido, el LPF elimina las altas frecuencias
del acelerometro y el HPF las bajas de los giroscopos. La figura 2.29 muestra el esquema
de funcionamiento del filtro.
2.6.2.
Filtro de Kalman
Estado de la cuesti
on
(2.20)
(2.21)
El algoritmo tiene dos fases que son ejecutados de forma iterativa, la fase de prediccion
anterior a la llegada de la medida y de correccion o actualizacion del estado. La figura
2.31 representa de forma esquem
atica todo el proceso.
(2.22)
Predicci
on de la matriz de covarianza. En este paso calcularemos la nueva
matriz de covarianza del error usando la ecuaci
on:
P % (k + 1) = AP (k)At + Q(k)
(2.23)
Donde Q es la matriz del ruido asociada al proceso y cuyo valor viene dado por
E{v(k)v(k)t }
55
Estado de la cuesti
on
C
alculo del vector de ganancias. Como mencionabamos anteriormente, el valor
del estado se calculara a traves del estado anterior y de una correccion que es funci
on
del error, accion que representa la siguiente ecuaci
on:
x
/(k + 1) = x% (k + 1) + K(k + 1)[y(k + 1) Cx% (k + 1)]
(2.24)
Sustituyendo la ecuaci
on 2.21, diferenciando la ecuaci
on, igualando a cero y desarrollando la ecuaci
on obtenida se obtiene la ecuacion que se aparece en el esquema 2.31.
La matriz R que aparece en la ecuaci
on representa el ruido asociado a la medida
calculado de manera similar a Q. (R=E{(k)(k)t })
Actualizaci
on del estado Este paso consiste en aplicar directamente la ecuaci
on
mostrada en el esquema 2.31, pues conocemos todos los elementos necesarios para
actualizar el estado.
Actualizaci
on de la matriz de covarianza. Por u
ltimo actualizamos tambien la
matriz de ruido con la ecuaci
on que de nuevo se muestra en el esquema.
Para iniciar el algoritmo es necesario conocer el valor inicial del estado, la matriz de covarianza del error aunque podemos asumir P(0)=Q y los valores de la matriz de covarianzas
Q y R.
Las ecuaciones expuestas anteriormente definen el funcionamiento del filtro de Kalman,
pero u
nicamente sera aplicable en sistemas lineales, pues como se puede observar se hace
uso de las matrices deterministas A,B,C. En caso de encontrarnos con un sistema no lineal,
se hace uso del llamado filtro de Kalman extendido. Este filtro realiza una linealizacion en
cada iteracion sobre el estado estimado de media y covarianza concretas. Desde el punto
de vista de las ecuaciones, las mostradas anteriormente seguir
an siendo validas siempre
que se sustituyan las matrices del sistema lineal por las matrices del sistema linealizado
en cada paso.
Aplicaci
on en cuadric
opteros. Filtro de Kalman Multiplicativo[6]
Uno de los principales retos en la ingeniera de control para cuadricopteros reside en
la estimacion de su orientacion con respecto a un sistema de ejes inercial. Ademas existe
un problema en el sistema matematico usado generalmente en la aeronautica, los
angulos
Estado de la cuesti
on
Introducci
on al funcionamiento del filtro:
e0
cos( 2 )
e E sen( )
x x
2
e= =
ey Ey sen( )
2
Ez sen( 2 )
ez
(2.25)
R=
2(ex ey ez e0 )
2(ex ez + ey e0 )
2(ex ey + ez e0 )
e20 e2x + e2y e2z
2(ey ez ex e0 )
57
2(ex ez ey e0 )
2(ey ez + ex e0 )
(2.26)
Estado de la cuesti
on
Por u
ltimo, se define el vector de error en la posici
on a traves de:
cos( |a2e | )
sen( |ae | )
2
|ae |
|ae |
aez
|ae | sen( 2 )
Funcionamiento del filtro. Fase de predicci
on:
(2.27)
ciones que definen la prediccion del vector de estados dentro del filtro analizado, se parte
de las ecuaciones de un sistema no lineal estandar a fin de no perder generalidad.
x = f (x, u, t) + Gw(t)
(2.28)
(2.29)
Donde Q representa, al igual que en el filtro de Kalman estandar, la covarianza del ruido
asociado al ruido en el proceso. La ecuaci
on diferencial para el c
alculo de la matriz de
covarianzas P viene dada por:
P = F P + P F T + GQGT
(2.30)
Las ecuaciones anteriores pueden simplificarse bajo una serie de supuestos que, para la
aplicacion estudiada, son validas y suponen una mejora para el funcionamiento del sistema.
La primera consiste en suponer que los bias de los giroscopos han sido estimados de forma
interna. La segunda es asumir que el ruido tiene media nula y por tanto la esperanza del
error en la altitud con el paso del tiempo eso nula, siempre y cuando el vector de error
de la posicion sea reiniciado a cero antes de realizar la siguiente prevision. En condiciones
normales, la matriz de transicion de estados F en un modelo no lineal vendra dada por el
jacobiano de la funci
on f(x,u,t), sin embargo con las simplificaciones anteriores, esta queda
reducida a la siguiente expresion:
F =
z
y
0
x
(2.31)
(2.32)
e(k+1)
||e(k+1)||
Estado de la cuesti
on
del filtro Kalman, la correccion del estado se divide en tres partes, el calculo de la ganancia
de Kalman (K), la actualizaci
on de la matriz P y la correccion del vector de estado. Las
ecuaciones que definen esta fase son las siguientes:
H(k)
K(k)
h(x,k)
x
P (k) H(k)T (R
(2.33)
= x
/(k)+ + K(k)[z(k) Hx(k) ]
Con las ecuaciones mostradas a lo largo de todo el desarrollo del filtro multiplicativo, se
podra estimar la posici
on de la nave, sin embargo tal y como se presentan las ecuaciones
de correccion, el filtro no se encuentra optimizado. Dada las condiciones en las que se
trabaja, es posible simplificarlas otorgando por tanto un menor tiempo de procesado y
una mejor respuesta.
La ventaja de este filtro reside en que la correccion se realiza a traves de las medidas obtenidas de los sensores de forma independiente (anteriormente se comentaba por
que necesitaban ser independientes), por tanto se construye el vector de error de posici
on
directamente de los vectores de medida y de los vectores de prediccion.
1. Aceler
ometro: Cuando la nave se encuentra en vuelo estacionario, los aceler
ometros
medir
an la acelaracion de la gravedad, la cual puede ser comparada con el eje z
del sistema inercial trasformado al sistema fijo al cuerpo, mediante la matriz de
transformaci
on R. Por tanto, el angulo y el eje de error de posicion de la medida del
aceler
ometro viene dado por:
g
||g|| (Zi )b
g
cos1 ( ||g||
(Zi )b )
EeA =
eA =
(2.34)
(xb )i
||(xb )i || G
(xb )i
G )
cos1 ( ||(x
b )i ||
EeG =
eA =
(2.35)
Estado de la cuesti
on
del tiempo va a ser nula, podemos actualizar el vector de estado como se muestra en el
conjunto de ecuaciones, que es notablemente mas sencilla que la anterior. Ademas como
el vector de error en la posicion se crea a partir de las observaciones del sensor, la matriz
de medidas a la salida es igual a una matriz de identidad 3x3. Por tanto las ecuaciones de
la fase de correccion quedan de la siguiente manera:
K(k)
= P (k) (R + P (k) )1
= 0 + K(k)[(ae )m ]
2
= e(a/e + ) e/
(2.36)
2.7.
Complementos
2.7.1.
Cuaterniones
(2.37)
cos(/2)
k sin(/2)
x
q =
ky sin(/2)
kz sin(/2)
(2.38)
q =
cos(/2)
cos(/2)
sin(/2)
0
0
0
0
sin(/2)
sin(/2)
0
0
cos(/2)
cos(/2)cos(/2)cos(/2) + sin(/2)sin(/2)sin(/2)
sin(/2)cos(/2)cos(/2) cos(/2)sin(/2)sin(/2)
cos(/2)sin(/2)cos(/2) + sin(/2)cos(/2)sin(/2)
cos(/2)cos(/2)sin(/2) sin(/2)sin(/2)cos(/2)
(2.39)
60
Estado de la cuesti
on
El uso de la ecuaci
on anterior reduce en gran medida el coste computacional de cada iteracion en el sistema de control, pues basta transformar los respectivos giros en su cuaternion
correspondiente al principio de cada iteracion y proceder con los c
alculos correspondientes
a los cuaterniones. Si bien en conjunto se gana velocidad, las operaciones basicas (producto, division etc) son m
as complejas y existe una amplia bibliografa donde se presentan las
propiedades de estos elementos. En este documento no se han incluido por no ser excesivamente criticas en su dise
no, pues Simulink incorpora bloques que realizan tal funcion.
Los detalles matematicos de estos elementos se dejan al lector[26].
Los cuaterniones permiten ademas corregir un problema derivado de la singularidad de la
matriz de rotaci
on de Euler: el gimbal lock. Este efecto se produce cuando se rota cualquier
vertice o entidad 90/-90 grados respecto el eje Y . La consecuencia es que los ejes X y Z
acaban apuntando en la misma direccion, con lo que se pierde el control sobre ellos. Al no
existir singularidades en estos elementos, resultan extremadamente u
tiles en aplicaciones
de este tipo.
2.7.2.
M
aquinas de estado
Una m
aquina de estados es una estructura de programa que nos sirve para determinar
el comportamiento de algo en base al estado en el que se encuentre. Para cada estado
por tanto se tendra un comportamiento. Un estado representa el comportamiento de un
elemento que hace algo durante cierto tiempo y entre ellos se definen las llamadas transiciones, es decir el paso de un estado de origen a otro de destino. Tiene siempre asociada
una condicion y puede requerir la ejecuci
on de alguna accion. En este proyecto se utilizara una m
aquina de estados para integrar elementos de seguridad y de funcionamiento
requeridos por aplicaciones similares. A modo de ejemplo, el PX4 Autopilot [27] cuenta
con una maquina de estados con los siguientes estados:
Estado de Prevuelo: Cuando el sistema no esta inicializado.
Estado de espera: El sistema esta listo para armar los motores.
Estado de listo en tierra: Motores armados pero a
un en tierra.
Estado de control manual: Control de la nave a traves del piloto.
Estado de control automatico: Control de la nave de forma automatica.
Estado de abortar mision: Cancela la orden prefijada.
Estado de aterrizaje de emergencia: Aterriza el avion.
Estado de desconexion de emergencia: Desconecta la nave.
Estado de error en tierra: Mantiene la nave en tierra.
61
Estado de la cuesti
on
2.7.3.
Driver Blocks
62
Captulo 3
Estudio mec
anico del sistema
En este captulo se aborda todo lo relativo a la mecanica del conjunto bajo estudio. Se
proceder
a a realizar un analisis general de ello centrandose en lo esencial para el desarrollo del control que, posteriormente, sera dise
nado. Esto quiere decir que se estudiaran las
propiedades mecanicas que poseen los elementos usados, sin realizar estudios para mejorar
el comportamiento del mismo. El comportamiento mecanico del sistema es esencial para
el desarrollo del software de control, pues su dise
no se basa en el modelado matematico
del mismo.En consecuencia, este tipo de estudios adquieren una gran importancia para el
correcto desarrollo del proyecto.
El contenido este captulo se ha organizado a traves de tres secciones principales en
las que se describir
an los parametros mecanicos que caracterizan la estructura, los de
los motores y unas breves simulaciones aerodinamicas realizadas como complemento. De
este modo se justificara la obtencion de los valores que posteriormente definir
an tanto el
comportamiento como el control del sistema.
3.1.
Modelado CAD
En los u
ltimos a
nos hay habido un desarrollo particularmente importante en el uso
del ordenador como ayuda en la creaci
on, modificacion, analisis y optimizacion de dise
nos,
denominado com
unmente CAD (computer aided design). El software desarrollado para tal
aplicacion permite aumentar la productividad del dise
nador, mejorar la calidad del dise
no
y crear una base de datos para la posterior fabricacion del objeto. Este tipo de tecnica es
usada en una gran variedad de campos como en el dise
no de sistemas electronicos o de
sistemas mecanicos. En este estudio, se aplicar
a CAD para modelar el sistema mecanico
que se usa a lo largo del proyecto. La gran ventaja de este proceso es que no se limita a
la representaci
on de figuras, sino que permite trabajar con una gran cantidad de informacion particularmente u
til para un ingeniero, tales como los materiales que lo componen,
las dimensiones de las piezas, sus tolerancias etc. As pues, a traves de este estudio se
pretende describir gr
aficamente la estructura usada de forma que permita obtener una
63
base de datos sobre la cual, posteriormente, se puedan realizar mejoras, correcciones o reproducciones del original. Ademas, la combinaci
on de esta herramienta con las ecuaciones
adecuadas incorporadas en el software, permite calcular una serie de parametros asociados
a la estructura empleada tales como densidades, masas o momentos de inercia que seran
particularmente u
tiles en este proyecto.
La figura 3.1 muestra el resultado del modelado grafico de la estructura del cuadricoptero, realizado con el programa Solid Edge.
Masa (Kg)
Volumen (mm3 )
Ixx (Kgm2 )
Iyy (Kgm2 )
Izz (Kgm2 )
0.2722
94059.7154
7,83 104
7,85 104
1,401 103
64
Adicionalmente, se han obtenido otros valores complementarios que serviran para justificar las futuras suposiciones de que el tensor de inercia es diagonal y que el centro de
masas del conjunto esta cerca del centro de la estructura (idealmente perfectamente centrada). La posicion de este es [0,5, 0,1553, 0,182603] mm en coordenadas cartesianas con
el eje situado en el centro de la placa base del cuadricoptero. Teniendo en cuenta que la
longitud de los brazos es de 11 cm, se puede asumir que se encuentra bastante centrado
lo cual genera unos productos de inercia poco significativos. Por otro lado, la matriz 3.1
muestra el tensor de inercia del sistema calculado a traves del programa mencionado.
7,83 104
5
I =
1,1 10
2 106
1,1 105
7,85 104
1 106
2 106
1 106
3
1,401 10
(3.1)
3.2.
En la introducci
on de este captulo se menciono la necesidad conocer los parametros
de los motores, los cuales aparecen en las ecuaciones que describen matematicamente el
cuadricoptero. Algunos de estos se pueden encontrar en las especificaciones proporcionadas
por los fabricantes pero otros, sin embargo, han de ser obtenidos a traves de ensayos.
Consecuentemente se ha dise
nado un banco de ensayos basado en el descrito en la seccion
2.3.1 para poder registrar el empuje y el par dado por los motores. Las figuras 3.2 y 3.3
muestran dos vistas representativas del banco construido.
68
12000
10000
8000
6000
4000
2000
6
8
Muestras
10
12
14
4
x 10
Se ha prolongado este tiempo para obtener para poder filtrar las medidas si se considerase oportuno.
En la figura 3.8 se ha representado la evoluci
on del empuje ante la variaciones realizadas
en la velocidad de giro que se mostr
o en la figura 3.7. Como era de esperar, al aumentar
la velocidad aumenta el empuje pudiendo llegar a ejercer una fuerza equivalente de 105g,
es decir, el motor es capaz de levantar una peso de aproximadamente 1 Kg cuando gira al
maximo regimen de revoluciones del ensayo (cuando se le suministran aproximadamente
5V al motor).
70
80
60
40
20
20
2000
4000
6000
8000
10000
12000
14000
71
Kv (rpm/v)
Rm ()
Ns
)
b ( rad
ms
)
d ( Nrad
2900
0.6
5.44e-7
7.32e-9
3.3.
Estudios aerodin
amicos
En la secci
on 2.4 se describieron con detalle los posibles efectos aerodinamicos que
pueden presentarse en este tipo de aplicacion, desde el efecto suelo hasta las oscilaciones
en las palas de los rotores debido a las traslaciones de los dispositivos. En este proyecto
no se realizara un estudio sobre las oscilaciones de las palas por considerarse demasiado
especficas para este tipo de aplicacion. Sin embargo s se ha realizado un peque
no estudio
sobre el efecto suelo, pues este s puede afectar al sistema de una forma m
as directa.
A fin de entender mejor el efecto suelo, se han realizado una serie de simulaciones
simplificadas a traves del programa de simulacion para procesos fsicos llamado Comsol
Multiyphisics. La figura 3.11 muestra los resultados de las simulaciones, donde se ha situado un flujo de aire descendente pr
oximo a un plano horizontal. El flujo correspondera
al aire desplazado por el giro de las helices y el plano horizontal representara la tierra o
la superficie donde se encuentra situada la nave.
y las helices. Parece obvio que si la cantidad de aire proyectado es grande el efecto desestabilizante sera mayor porque habra un mayor flujo ascendente, es decir, la cantidad de
aire proyectado es directamente proporcional al aire que rebota. La segunda puntualizacion realizada anteriormente parece tambien obvia, pues si la distancia entre las helices
de la nave y el suelo es lo suficientemente grande, el flujo que rebota se dispersara y no
afectar
a a la estabilidad de la nave. Sin embargo ocurre un efecto curioso para distancias
muy peque
nas entre suelo y helice como se muestra en la grafica de la figura 3.12.
T/Tinf
1
2
0.015
0.03
0.045
0.06
0.075
0.09
0.105
0.12
0.135
0.15
0.165 0.18
Z (Altura)
0.195
0.21
0.225
0.24
0.255
0.27
0.285
0.3
0.315
0.33
0.345
0.35
74
Captulo 4
4.1.
Modelado matem
atico
El modelado matem
atico de un sistema fsico consiste en describir el comportamiento
del objeto de estudio de la forma mas precisa posible, a traves de un conjunto de ecuaciones. La existencia de dicho modelo permite al ingeniero de control dise
nar el sistema de
control y evaluar sus prestaciones mediante simulaci
on hasta que el sistema este controlado, disminuyendo la posibilidad de da
nar el sistema durante las pruebas reales. Como
se ha mencionado anteriormente, modelar el comportamiento exacto de sistemas complejos es particularmente complejo y en ocasiones suelen llevarse a cabo simplificaciones. Un
modelo extremadamente complejo no garantiza un mejor control, puesto que el dise
no de
controladores puede ser extremadamente complejo, mientras que una simplificaci
on razonable del mismo puede ofrecer mejores resultados. As pues, en este proyecto se ha hecho
uso de tres modelos matem
aticos del sistema, describiendo cada uno la fsica relevante
para el control de la nave de la forma m
as sencilla posible, pero sin alejarse demasiado de
la realidad. A continuacion, se describen dichos modelos.
4.1.1.
76
77
x = (x,
y,
z,
, , , ,
g (cos x4 cos x5 ) u1 /m
x7
x =
x8
x9
IR
L
x7 x9 I2 + Iy x7 g(u) + Iy U3
x7 x8 I3 + I1z U4
(4.1)
= b(12 + 22 + 32 + 42 )
u2
b(22 42 )
u3
b(12 32 )
u4
= d(12 + 32 22 42 )
g(u) =
I1
I2
I3
1 2 + 3 4
(4.2)
Iy Iz
Ix
Iz Ix
Iy
Ix Iy
Iz
Se puede observar f
acilmente que la matriz de estados 4.1 se puede descomponer en dos
submodelos, uno que describe la dinamica de la posici
on (angulos de euler y sus derivadas)
al que llamaremos M2, y un segundo modelo que describe la traslacion de la nave al cual
llamaremos M1. As pues M1 se define a traves de las ecuaciones de x 7,8,9 y M2 por las
de x 1,2,3 , de forma que en conjunto, como muestra el diagrama 4.2, se puede describir
matematicamente el sistema.
= [, , ])
Figura 4.2: Diagrama del modelo (
r = [x, y, z],
Para facilitar la programaci
on del modelo en Simulink, se han incluido dos bloques m
as pese a que con lo presentado hasta este punto en la seccion, la programacion es perfectamente
viable.
78
La introducci
on de los dos nuevos bloques facilita la identificacion del sistema modelado
con el sistema real as como la deteccion de errores en el c
odigo. El diagrama de bloques
resultante es el que se muestra en la figura 4.3. A continuacion se procedera a explicar el
contenido de cada bloque principal.
w 1 =
w 2 =
w 3 =
w 4 =
1 Km (u1 Km w1 )
IR (
Rm
1 Km (u2 Km w2 )
IR (
Rm
1 Km (u3 Km w3 )
(
IR
Rm
1 Km (u4 Km w4 )
(
IR
Rm
d w12 )
d w22 )
d w32 )
(4.3)
d w42 )
[w 1 , w 2 , w 3 , w 4 ]t ]
[w1 , w2 , w3 , w4 ]t ]
[u1 , u2 , u3 , u4 ]
param =
y
[b, d, Rm , Km , IR ]
= [U1 , U2 , U3 , U4 , g(U )]
79
(4.4)
Din
amica de la posici
on
Esta secci
on corresponde al submodelo M2 descrito anteriormente, en el cual se calculan
los angulos de Euler del dispositivo y sus derivadas. Las ecuaciones que lo describen son
las siguientes:
x 4 = x7 + x8 sin x4 tan x5 + x9 cos x4 tan x5
x 5 =
x8 cos x4 x9 sin x4
x 6 =
sin x4
cos x4
cos x5 x8 + cos x5 x9
x8 x9 I1 IIRx x8 g(U ) + ILx U2
x7 x9 I2 + IIRy x7 g(U ) + ILy U3
x 7 =
x 8 =
x 9 =
x7 x8 I3 +
(4.5)
1
Iz U 4
Por tanto, este bloque tendra los siguientes vectores de entrada y salida:
dx
= [x 4 , x 5 , x 6 , x 7 , x 8 , x 9 ]t ]
[x4 , x5 , x6 , x7 , x8 , x9 ]t
param
[L, Ix , Iy , Iz , IR ]
[x4 , x5 , x6 ]
giroscopo =
[x7 , x8 , x9 ]
(4.6)
El vector giroscopo representa las medidas obtenidas por los giroscopos de la nave y
sera una de las entradas de la IMU.
Traslaci
on del dispositivo
Este bloque es la representacion del submodelo M1 d
onde se calculan las velocidades
lineales a partir de los
angulos de Euler. Siguiendo con la estructura presentada anteriormente, las ecuaciones para calcular dichas velocidades son:
x 1 = (cos x4 sin x5 cos x6 + sin x4 sin x6 ) U1 /m
x 2 = (cos x4 sin x5 sin x6 sin x4 cos x6 ) U1 /m
x 3 =
(4.7)
g (cos x4 cos x5 ) U1 /m
En consecuencia los vectores de entrada y salida del bloque seran los siguientes:
dx
= [x 1 , x 2 , x 3 ]t ]
= [x1 , x2 , x3 ]t ]
param
[m, g]
[x4 , x5 , x6 ]
velocidades
[x1 , x2 , x3 ]
aceleraciones =
[x 1 , x 2 , x 3 ]
(4.8)
Los vectores de velocidades y aceleraciones seran entradas del bloque de IMU, representando el u
ltimo de ellos, la mediciones de los aceler
ometros.
80
IMU
Este bloque representa a la unidad interna de medida. Se ha incluido por motivos
didacticos ya que las medidas propiamente dichas se obtienen en su mayora en los bloques
anteriores. Sin embargo, la presencia de este bloque ayuda a reforzar el entendimiento de
los elementos de medida que incorpora el sistema. As pues:
M edidas = [giroscopot , Rt ([0, 0, g] k aceleraciones)t , R(1, :), velocidadest ]
(4.9)
4.1.2.
Modelo simplificado
Se ha denominado modelo simplificado o reducido al conjunto de ecuaciones que describen el comportamiento de la nave en relacion a los
angulos de Euler. Surge como consecuencia del desacoplo mencionado en la seccion anterior y hace uso del anteriormente
llamado submodelo M2. Consecuentemente, este sistema usara como referencia los
angulos
de Euler deseados y el algoritmo de control hara que el sistema siga a la referencia. Como
podra esperarse, al usarse u
nicamente uno de los dos submodelos el sistema no sera tan
descriptivo como el anterior y debera limitarse su uso a la regulacion de los
angulos de
Euler. Consecuentemente, se pierde precision pero a cambio se gana simplicidad. Al no
incluir ecuaciones de traslacion (submodelo M1), no es necesario obtener medidas de velocidad o altura de la nave por lo que la dotaci
on de sensores o GPS que precisaba el modelo
completo no sera necesaria, permitiendo controlar el sistema con los elementos de medida
de la IMU.
Las matriz de estados 4.10 contiene las ecuaciones que definen el modelo simplificado.
Estas provienen de la matriz de estados 4.1, de la cual se ha obtenido las ecuaciones propias
del submodelo M2. N
otese que se ha despreciado la inercia de los rotores (IR $ 0) al ser
particularmente peque
na.
x7
x8
x9
x =
x8 x9 I1 +
x7 x9 I2 +
x7 x8 I3 +
L
u
2
Ix
u
3
Iy
1
u
Iz 4
I1 + ILx u2
I
2 + L u3
Iy
3 + 1 u4
I
Iz
(4.10)
81
Km
(ui Km wi ) d wi2
Rm
(4.11)
Km +
2 4 dRm u
Km
i
K
m
m
2 dR
K
m
u1 = b(12 + 22 + 32 + 42 )
u2 =
u3 =
u4 =
b(22
b(12
d(12 + 32
42 )
32 )
22
(4.12)
42 )
82
4.1.3.
[x 4 , x 5 , x 6 , x 7 , x 8 , x 9 ]t
dx
= [x4 , x5 , x6 , x7 , x8 , x9 ]t ]
param
[L, Ix , Iy , Iz ]
[x4 , x5 , x6 ]
giroscopo =
[x7 , x8 , x9 ]
(4.13)
Modelo de un p
endulo invertido
Este modelo surge como una representacion matematica del conjunto cuadric
optero
-moto en el que se busca mantener la moto en equilibrio a traves del cuadricoptero ante perturbaciones externas. Este modelo, aparentemente completamente ajeno al de un
cuadricoptero en vuelo, permite representar la situacion en la que la nave se encuentra
en un banco de ensayos estando fijo uno de sus ejes (ver figura 2.21). Por lo tanto el
objetivo del control es la de buscar la posici
on de equilibro a traves de la regulacion de
un angulo de Euler u
nicamente, facilitando la obtencion de los parametros que definen
el control. En condiciones ideales (sin ruido alguno en el sistema), la obtencion de esos
parametros se realiza a traves de la simulaci
on pero al existir ruido, conviene calibrarlo
mediante ensayos. Como la nave es simetrica respecto del centro de la estructura, el control
del otro eje sera el mismo permitiendo dise
nar el control de los
angulos de alabeo y cabeceo.
El modelo constituye una simplificaci
on mayor que las anteriores de un cuadricoptero
en la que se estudia un u
nico angulo de Euler y, en consecuencia, solo permite obtener
el valor del
angulo controlado y su derivada de una forma mas sencilla. Ademas permite
probar la eficacia del control sin que la nave se eleve del terreno evitando posibles da
nos en
la estructura en caso de colision por un mal funcionamiento del sistema de regulacion. Asimismo, permite comprobar el correcto funcionamiento del sistema para unos determinados
lmites de saturacion fijados por las limitaciones fsicas de los actuadores. Igualmente, permite comprobar la validez de las transformaciones de las se
nales necesarias para aplicar a
los motores la tensi
on que genere la de fuerza empuje requerida por el control.
A continuacion se presenta la ecuacion 4.14 la cual define el comportamiento del pendulo que se ha representado en el diagrama 4.5, donde podemos obtener el
angulo asociado
tomando como entrada la diferencia de 2 entre los motores que afectan a .
(4.14)
Al igual que se hizo en el modelo simplificado, se definira un punto de trabajo que garantice
un buen margen de control de forma externa. As pues, si en ese punto de trabajo las helices
tienen una velocidad = c cuando se les aplica una tensi
on u = uc ,
1 = c +
2 = c
(4.15)
u1 = uc + u
u2 = uc u
u =
Km
4c + 2 dR
m
Km
2 dR
m
Km
4c + 2 dR
m
Km
8c dR
m
(12 32 )
(4.16)
Km
8c dR
m
2
Km
4c + 2 dR
m
84
(4.17)
Modelo p
endulo
El pendulo se describe en esencia por la ecuaci
on 4.14 quedando definidas las entradas
y salidas del bloque de la siguiente forma:
dx
[,
[, ]
param = [L, m, g, h, b, d, Iy ]
y
=
[, ]
4.2.
(4.18)
Estimaci
on de estados
Como se mencion
o en la introducci
on, la funcion del estimador de estados es obtener
los valores de las variables de estado del control a partir de las medidas de otras variables.
Mas concretamente, en el caso que nos ocupa, se busca obtener los valores de los
angulos de
Euler a partir de las medidas de los giroscopos y los aceler
ometros acoplados al dispositivo.
En la secci
on 2.6 se hizo un estudio de los estimadores m
as comunes al igual que se
explicaron las ventajas e inconvenientes del uso de cada estimador. Dado que las medidas
contendr
an un nivel de ruido considerable, los estimadores mas recomendables son el filtro
complementario y el de Kalman. En este proyecto se ha optado por el filtro de Kalman
por poseer un algoritmo mas robusto de cara a las interferencias, siendo el filtro
optimo si
el ruido de medida es un ruido blanco gaussiano. Sin embargo, este filtro requiere de un
alto nivel de computacion y por tanto se hara uso de los cuaterniones para la obtencion
de las variables estimadas. De esta forma, se pretende aligerar la carga computacional del
conjunto ya que la capacidad de calculo del microcontrolador es limitada. As pues, el
filtro que se implantara sera el filtro multiplicativo extendido de Kalman descrito en la
seccion 2.6.2. A continuacion se describe el filtro dise
nado.
4.2.1.
Programaci
on del filtro de Kalman
El filtro de Kalman esta constituido por un complejo conjunto de ecuaciones que dificulta el entendimiento del sistema. En la secci
on 2.6.2 se hizo un estudio teorico del mismo y
por lo que a contiuacion s
olo se describir
a su funcionamiento y la forma de implementarlo.
El funcionamiento del filtro es el siguiente:
1.
2.
4.
C
alculos Previos
Este bloque recoge los calculos necesarios para el funcionamiento del filtro pero que
no son parte de ninguna de las fases caractersticas de un filtro de Kalman tradicional.
El primer calculo que se realiza hace uso de la matriz de ruido asociada a la medida, la
cual debe ser estimada de forma externa al filtro, y de las medidas de los aceler
ometros.
Esta correccion es consecuencia de las aceleraciones lineales, angulares y de Coriolis que
los aceler
ometros miden, ademas de la de la gravedad, cuando no se encuentra en vuelo
estacionario. Para evitar la degradacion del vector gravitatorio observado, se desactiva la
actualizacion de la medida si esta supera un determinado umbral, accion realizada a traves
de la siguiente ecuaci
on:
R = R[1 + k(1 ||g||2 )]
(4.19)
R=
2(e2 e3 e4 e1 )
2(e2 e4 + e3 e1 )
2(e2 e3 + e4 e1 )
e21 e22 + e23 e24
2(e3 e4 e2 e1 )
Zb =
Rzi
||Rzi ||
2(e2 e4 e3 e1 )
2(e3 e4 + e2 e1 )
2
2
2
2
e 1 e2 e3 + e4
(4.20)
(4.21)
Obtenida la direccion del eje z fijo al cuerpo se aplica una correccion a la medida tanto en
fase como en modulo, obteniendo el vector de error en la posicion.
EeA =
(g)
||g||
Zb
g
Zb )
eA = cos1 ( ||g||
(4.22)
Ae = EeA eA
Finalmente se calcula la matriz de actualizaci
on de estados (F) que es funci
on de las
medidas obtenidas del giroscopo. Es importante remarcar que este filtro no estima el bias
propio de estos elementos de medida y por tanto se ha de estimar y eliminar anteriormente.
0
z y
F =
(4.23)
0
x
z
y x
0
87
Como se puede observar todos estos calculos son dinamicos, es decir, se realizan en
cada iteracion dando una idea al lector del gasto computacional necesario. La reduccion
del volumen de operaciones de los cuaterniones esta camuflada dentro de la matriz de
rotaci
on del eje Z del cuerpo. De no usarlos, esa matriz estara constituida por elementos
trigonometricos y por tanto, por la propia naturaleza de esas funciones, aumentara el
tiempo de calculo. Los detalles, por ser propiedades matematicas ajenas al proyecto, se
dejan al lector.
Fase a priori o de correcci
on
Esta fase o conjunto de operaciones corrige la prediccion que anteriormente se hizo
de este estado y se lleva a cabo en tres etapas. Primero se calcula una nueva martiz de
ganancia de Kalman a traves de la ecuaci
on 4.24 donde la matriz H es igual a la matriz
identidad de orden 3 dado que el vector de error en la posici
on se forma a traves de las
medidas de los sensores y no del sistema.
K = P H T (R + HP H T )1
(4.24)
(4.25)
e(Ae
cos( |a2e | )
sen( |ae | )
2
|ae |
|ae |
aez
|ae | sen( 2 )
e+ = e(Ae + )
88
(4.26)
(4.27)
4.2.2.
Estimaci
on de las matrices de covarianza
89
10
Aceleraciones (m/s2
2
0.1
0.2
0.3
0.4
0.5
Tiempo (s)
10 0 0
0,7772 0,0226 0,0862
0,0226 0,6491
Q =
R
=
0
10
0
0,003
0 0 10
0,0862
0,003
0,4048
4.3.
(4.28)
Control
90
4.3.1.
Obtenci
on de las funciones de transferencia para el control
L
Ix U 2
(4.29)
,
)
+ U
U2 = f (,
2
91
Donde para conseguir una ecuacion lineal y obtener, por tanto, una funci
on de transferencia
que relacione con U se define la funcion:
Ix
1)
(K2 I
L
,
)
=
f (,
(4.30)
L
Ix U 2
L
Ix U 2
P (s) =
L
Ix
s(sK2 )
K2 < 0
(4.31)
Para el c
alculo de las funciones de transferencia correspondientes a los otros
angulos solo
P (s)
L
Ix
L
Iy
s(sK2 )
s(sK3 )
P (s)
1
Iz
s(sK4 )
(cos sin ) U1 /m
y =
(sin ) U1 /m
(4.32)
z = g (cos cos ) U1 /m
Aplicando de nuevo una linealizaci
on por realimentacion, para Ui igual a los valores mostrados en 4.33, se obtiene una relaci
on lineal entre x
y Ui , siendo la funci
on de
transferencia que relaciona Vi con Ui la funcion de transferencia 4.34. Notar que las tres
velocidades comparten la misma funci
on.
U 1 = (cos sin ) U1 /m
U 2 =
(sin ) U1 /m
U 3 = g (cos cos ) U1 /m
sx = U1 Pvi (s) =
92
1
s
(4.33)
(4.34)
PVy (s)
PVz (s)
1
s
1
s
1
s
Vz dz z =
Fvz (s)
s ,
Fz (s) =
1
s+1
con =
1
Kp
(4.35)
resultando en la funci
on de trasferencia 4.36
1
s( s+1)
con =
1
Kp
(4.36)
Funci
on de transferencia para el p
endulo
La obtencion de esta funci
on de transferencia es bastante trivial y parte de la ecuaci
on
4.14, sobre la que se aplicar
a la simplificaci
on sin() $ , simplificaci
on valida para
peque
nos, resultando en la funci
on de transferencia 4.37.
P (s) =
4.3.2.
b
Iy +mh2
s2 Iymgh
+mh2
(4.37)
Con este controlador se busca que el sistema sea capaz de seguir como referencia
las velocidades lineales deseadas de la nave, es decir, que si se le indica que avance en
una direccion, el sistema sea capaz de hacerlo de la mejor forma posible. El sistema en
su conjunto tiene una estructura como la mostrada en la figura 4.9, la cual facilita la
identificacion de bloques anteriormente descritos as como el entendimiento del conjunto.
93
95
Ti
Vx
0.75
Vy
0.75
0,7
0,9524
0.898
2,97
0.5051
96
Td
0.4939
0,4
0.5748
0,4
-0.0251
0,4
m(gU3 )
cos d cos d
U1 =
d = arctan(
d
4.3.3.
arctan(
(4.38)
m(cos d U1 +sin d U2 )
)
m(gU3 )
Con este control se pretender regular el sistema tomando como referencias los
angulos
de Euler, es decir, el piloto indicara cuanto y en que direccion quiere que gire la nave para
obtener el desplazamiento deseado. El diagrama del sistema se ve ligeramente modificado
con respecto al completo como se aprecia en la figura 4.14 .
98
a traves de las f
ormulas de dise
no de este tipo de controles para su configuracion en
paralelo, quedando recogidos en la tabla 4.5. A fin de reforzar la igualdad de las respuestas
as como la comprobacion de los parametros de dise
no, se ha incluido la respuesta en
frecuencia del lazo abierto representada a traves del diagrama de Nicholds de la derecha
de la figura 4.15. En esta se observa que el margen de fase coincide con el fijado al igual
que la frecuencia de corte, y que el margen de ganancia es de 29.4 dB, valor que es superior
al lmite de 6 dB recomendado en la bibliografa. En la secci
on 6 se proceder
a a un estudio
mas detallado del control.
Nichols Chart
Nichols Chart
40
20
Gphi
Gtheta
Gpsi
System: Gpsi
Phase Margin (deg): 74.6
Delay Margin (sec): 0.0946
At frequency (rad/s): 13.8
Closed loop stable? Yes
System: Gtheta
Phase Margin (deg): 86.8
Delay Margin (sec): 0.541
At frequency (rad/s): 2.8
Closed loop stable? Yes
Gphi
Gtheta
Gpsi
System: Gpsi
Phase Margin (deg): 80
Delay Margin (sec): 0.0279
At frequency (rad/s): 50
Closed loop stable? Yes
5
20
40
10
15
20
60
25
System: Gpsi
Gain Margin (dB): 29.4
At frequency (rad/s): 1.53e+03
Closed loop stable? Yes
80
30
100
180
150
120
OpenLoop Phase (deg)
90
225
180
135
OpenLoop Phase (deg)
90
45
Figura 4.15: Respuesta en frecuencia de las plantas (izq) y repuesta en frecuencia del lazo
abierto (drcha)
Variable
Ti
Td
19,85
0,1356
0.0185
0.767
19,9
0,1356
0.0185
0.767
3,93
0,1356
0.0185
0.767
Tabla 4.5: Parametros de los controles PID con ponderacion de la referencia para el modelo
simplificado
A la luz de los resultados de la tabla 4.5 se confirma que, como comparten los mismos
polos, las acciones integrales y derivativas tienen las mismas ganancias mientras que la
parte proporcional es la que es diferente, con el fin de ajustar la repuesta de cada una
para que coincidan. Es importante remarcar que los parametros mostrados en la tabla 4.5
seran ligeramente modificados en la seccion 4.3.5 debido a que los mandos son superiores
a los maximos fijados por el sistema fsico.
100
control. Tambien tienen el inconveniente de que no todos los sistemas pueden controlarse
en todas sus variables. Es necesario realizar, por tanto, un estudio de controlabilidad (y
observabilidad para el dise
no de los estimadores de estado) con el fin de garantizar un
control adecuado.
En el caso del modelo simplificado s tenemos acceso a las variables de estado (angulos
de Euler obtenidos a traves del filtro de Kalman) y sus (gir
oscopos) por lo que este sistema
de control parece factible. As pues, partiendo de un diagrama de polos y ceros en tiempo
discreto de las plantas, se ha calculado una matriz de ganancia que permite modificar la
posicion de los polos para obtener una mejor respuesta. La figura 4.18 muestra el lugar de
las races original para la planta (en azul) asociada al
angulo y, superpuesta, el nuevo
lugar de las races de lazo cerrado con realimentacion de estados (en verde).
Root Locus
1.5
Imaginary Axis
1
System: untitled2
Gain: 0
Pole: 0.9 + 0.08i
Damping: 0.753
Overshoot (%): 2.75
Frequency (rad/s): 66
0.5
0.5
1
1.5
2
1.5
1
0.5
0
Real Axis
0.5
1.5
Figura 4.18: Lugar de las races de la planta y del sistema con realimentacion de estado
Los valores representativos para este control as como los valores de los polos antes y
despues del control se han recogido en la tabla 4.6. No es sorprendente ver que las tres
funciones de transferencia de las plantas tienen los mismos valores ya que, como se menciono anteriormente, tienen los mismos polos en lazo abierto. Para obtener los polos transformados, se fijo un amortiguamiento de 0.75 y posteriormente se redondearon los valores
de los polos.
Variable
Polos iniciales
Polos finales
Ki
[0,903, 1]
0.753
[24.4589,0.3472]
1050
[0,903, 1]
0.753
[29.5341,3.4481]
1050
[0,903, 1]
0.753
[5.7941,0.0683]
1050
Tabla 4.6: Parametros del control por realimentacion de estado en el modelo simplificado
Consecuentemente, la matriz de realimentaci
on de estados para el sistema en su conjunto
4.39 se formara a partir de las matrices mostradas en la tabla 4.6 para cada
angulo,
103
ordenadas de la forma adecuada para respetar la estructura del vector de estados ([, , ,
,
]).
Ktot =
24,4589
0,3472
00
29,5341
3,4481
5,7981
0,0683
(4.39)
Control LQR
El u
ltimo control que aqu se presenta es el llamado regulador lineal cuadratico. Este
es
una versi
on mas sofisticada de los controles por realimentacion de estado, pues la ubicacion
de los polos transformados no viene dada por el ingeniero de control, sino por la soluci
on de
una compleja ecuacion de costes cuadratica donde intervienen las matrices de covarianzas
de ruido asociadas tanto al proceso como a la medida. De hecho, el LQR se define como la
union de un control lineal cuadr
atico para regular el sistema y un filtro de Kalman para
estimar los estados constituyendo una magnifica herramienta para el control de sistemas
estoc
asticos, llegando a ser el algoritmo de control
optimo si el ruido en el sistema es un
ruido blanco gaussiano y las matrices de covarianza han sido debidamente estimadas. En
este proyecto no se proceder
a al an
alisis en profundidad de esta estrategia de control sino
que se hara uso de Matlab para obtener una matriz de ganancias adecuada para el sistema
a regular. En la figura 4.19 se muestra el lugar de las races para este control LQR.
Root Locus
1.5
Imaginary Axis
1
System: untitled2
Gain: 0
Pole: 0.902
Damping: 1
Overshoot (%): 0
Frequency (rad/s): 50.5
0.5
0.5
1
1.5
1.5
1
0.5
0
Real Axis
0.5
1.5
Variable
'
'
'
150
102
150
104
Polos ini.
Polos finales
Ki
2 I1x1
[0,903, 1]
[0,997, 0,902]
[11.5165,0.4157]
57
2 I1x1
[0,903, 1]
[0,94 0,05063j]
0.707
[11.5367,0.4059]
57
2 I1x1
[0,903, 1]
[0,986 0,00964j]
0.844
[0.0986,0.0193]
0.2
102
104
Ktot =
4.3.4.
11,5165
0,4157
00
11,5367
0,4059
0,0986
0,0193
(4.40)
Td
0,7
0,5
-2.8654
0,0113
4.3.5.
En el dise
no de todos los controles anteriores no se ha hecho menci
on a un punto del
dise
no que es particularmente importante: los lmites superior e inferior de los mandos.
Estos lmites suponen una gran restricci
on para la regulacion del sistema. Por lo general,
todo control rapido requiere acciones de control significativas. Se dice que su estudio es importante porque un control que esta dise
nado para dar un tipo de respuesta puede requerir
acciones de mando muy grandes, imposibles de realizar en los dispositivos reales, y por
105
tanto resultando in
util. As pues es importante definir los lmites de trabajo de forma relativamente precisa y realizar un estudio de su influencia sobre el funcionamiento del control.
En este proyecto se cuenta con una limitacion relativamente importante y es que los
motores de la nave tienen unas tensiones mnimas y m
aximas de funcionamiento, por lo
que las salidas de mando del controlador deberan encontrarse dentro de estos lmites.
Ademas, se a
nade esta dificultad y es que la se
nal de salida de los controles suele venir
dada en terminos de fuerzas o fuerzas diferenciales, mientras que el actuador debe recibir
un factor de servicio para el PWM requerido por el ESC. As pues, para el analisis del
control en el dispositivo real se han de a
nadir un conjunto de ecuaciones que realicen esta
trasformacion, entre la salida del control y el mando final. Por otro lado, su implantacion
en simulacion parece contradictoria pues, si se desea representar el sistema real de la forma
mas precisa posible, se deberan a
nadir las ecuaciones conversoras de fuerza a PWM para
posteriormente deshacer la transformaci
on y devolverlas a fuerzas, dado que la entrada
del modelo requiere ese tipo de magnitud.
Como se describio en el modelado del sistema simplificado, se definira un punto de
trabajo del dispositivo que permita obtener un determinado margen de control. Esto quiere decir que fijaremos una velocidad de giro de las helices que permita al sistema actuar
tanto por arriba como por abajo, y a partir de ella se calcularan los lmites de satura
cion para las distintas unidades con las que se trabaja. Estos
lmites estan recogidos en
la tabla 4.9 para una tensi
on de la bateria de 8V. Se han calculado para ese valor de
tension de la batera por ser su valor medio aunque realmente este valor es dinamico,es
decir, depende de la tensi
on instantanea de la batera y deben calcularse de forma continua.
As pues, con los valores de la tabla 4.9 se puede observar que el margen de control
es igual a 2.41V, valor que puede ser peque
no si se han de corregir grandes desviaciones
respecto al punto de operacion.
PWM
DC( %)
V (V)
helices (rad/s)
cuerpo (rad/s)
U1
(12 32 )
152.8
0,6
4.8
1455.6
1027.53
2.292
-0.5709
190
0,75
5.96
1809.3
1213.55
3.2
230
0,9
7.21
2188.47
1398.1
4.26
0.5709
a continuacion se presentan las ecuaciones necesarias para su calculo. Estas deberan ser
incluidas en el algoritmo que gestione la saturacion del controlador.
106
DC
PWM
255
DC Vbat
helices
cuerpo
V Kv
Km +
2
60
2 +4 dRm V
Km
K
m
m
2 dR
K
(4.41)
U1
U
2
U 3
U4
0 b 0
d d d d
=
b
(12 32 ) =
8ptoeq b
m
4ptoeq +2 dR
K
2
c1
2
c2
2
c3
2
c4
0.767
0.367
0.1
4.4.
M
aquina de estados
La instalacion de m
aquinas de estados en un algoritmo de control otorga al conjunto
una mayor robustez pues permite describir el comportamiento del sistema en varios estados de funcionamiento, definiendo tambien las transiciones entre estados. As pues una
maquina estados permite introducir en el sistema:
1. Elementos de seguridad como control de altura m
axima, arranque del sistema controlado o tension mnima de la batera.
2. Variaciones en el algoritmo de control al realizar peque
nas, o grandes incluso, modificaciones sobre el algoritmo como por ejemplo la desactivacion de la accion integral
durante el proceso de arranque.
3. Arranque suave y controlado del sistema.
Vistas las ventajas que otorgan, para una planificacion eficaz del sistema de control, se han
desarrollado dos maquinas de estados, una para el sistema de control del modelo completo,
y otra para el sistema de control calculado del modelo simplificado. A continuacion se
describen ambas m
aquinas de estado.
108
4.4.1.
M
aquina de estados para el modelo completo
El diagrama de la m
aquina de estados se presenta en la figura 4.21 donde podemos
distinguir un total de seis estados con sus respectivas transiciones. A continuacion se
describe cada uno de ellos.
Figura 4.21: M
aquina de estados para el modelo completo
1. Estado de desconexion (Quad o) donde el quadricoptero esta apagado y por tanto el
sistema de control tambien. La variable salida, la cual selecciona el tipo de referencia
que se suministra al sistema esta puesta a cero seleccionando se
nales con valor nulo
como entradas al sistema de control. Cuando se activa el sistema a traves de un
interruptor, se cambia al estado siguiente.
2. Aqu se arman los motores (Estado Armado), es decir, se incrementa la tensi
on de los
motores a traves de una rampa hasta que se alcanza la tensi
on mnima necesaria para
el funcionamiento. Si el estado de la batera es mayor a la tensi
on mnima fijada, 7
voltios en este caso, el sistema accede al siguiente estado. De no serlo, no se iniciara
el movimiento de los motores y el piloto sabra que ha revisar la alimentaci
on.
3. En este estado (Ascenso) se lleva a la nave al punto de trabajo fijado (PWM=190),
tambien de forma gradual. Este punto de trabajo se mide a traves de la altura.
En este caso se ha fijado el valor de esta en 1.8 m. Una vez alcanzado el punto de
equilibrio, se pasa al siguiente estado.
4. Cuando se alcanza este punto(Quad On), el sistema activa el algoritmo de control
dise
nado para el modelo completo y responde a las indicaciones del piloto. Saldra de
este estado si el sistema se queda sin batera o si se se apaga el sistema a traves
del interruptor, llevando el sistema al estado siguiente. Se ha definido tambien un
109
control de altura en el que no se permite que el sistema baje por debajo del medio
metro ni suba por encima de los 3m. Si se da esta situacion el sistema lo llevara de
nuevo a su punto de trabajo (h=1.8m).
5. Este estado de descenso (Descenso) reduce la potencia aplicada a los motores de
forma gradual (rampa con pendiente decreciente en las referencias), evitando que el
sistema se desconecte de forma directa causando da
nos en la estructura. As pues en
este estado se lleva a la nave a tierra y finalmente vuelve al estado de desconexion.
Con la descripcion realizada de la m
aquina implementada se pueden identificar las funciones que se enumeraban al principio de esta secci
on. Notar que como hace uso de la
altura como variable de transicion solo se puede usar con control dise
nado para el modelo
completo.
4.4.2.
M
aquina de estados para el modelo simplificado
Figura 4.22: M
aquina de estados para modelo simplicado
1. De nuevo se ha definido un estado inicial (Quad o) donde el sistema esta desconectado. Cuando el sistema se activa a traves de un interruptor, el sistema salta al
siguiente estado.
110
111
Captulo 5
Implementaci
on
En captulos anteriores se han realizando profundos estudios mecanicos, matematicos
y de regulacion sobre el cuadricoptero con el fin de realizar un an
alisis lo suficientemente
adecuado como para garantizar su correcto funcionamiento. En esta seccion se describir
an
los elementos necesarios para poder implementar lo estudiado tendiendo un puente entre
el mundo teorico-simulado y la realidad. A lo largo de las secciones que componen este captulo se mostrar
an, de forma didactica, los elementos necesarios para implementar
los algoritmos de control dise
nados, de forma que se obtenga un dispositivo listo para
ser ensayado. As pues se empezara por describir los drivers programados para el correcto entendimiento de los dispositivos que componen el cuadricoptero. Posteriormente se
mostrar
a el procedimiento para montar la estructura y, una vez realizado, c
omo han de
instalarse los demas elementos tales como los motores, los reguladores de velocidad etc. Finalmente, montado ya el cuadricoptero, se indicara como han de conectarse los elementos
en la placa base relacionando los drivers con el aparato en s.
5.1.
Dise
no de drivers
113
Implementacion
se seccionara el codigo elaborado por funciones realizadas, por lo que para una visi
on en
conjunto del mismo se recomienda dirigirse al documento III. A continuacion procede con
el estudio y analisis de estos drivers.
5.1.1.
Se recuerda que la IMU es la unidad compuesta por los elementos de medida citados
a lo largo del proyecto y la encargada de obtener las medidas para el controlador. Con
la programacion de este driver se pretende establecer la comunicaci
on entre la IMU y el
microcontrolador, es decir, que las medidas obtenidas en la unidad puedan ser usadas en el
control. Para su programacion se hara uso de la librera FreeIMU [28]. FreeIMU es una unidad de medidas Open Source para instalacion de este tipo de unidades en cuadricopteros
y otro tipo de dispositivos que precisen de estas medidas. Este codigo es bastante potente
pues a demas de gestionar las se
nales de los aparatos de medida, incluye tambien una
opcion de filtrado de las mismas e incluso un filtro de Kalman realizado con cuaterniones
para la obtencion de
angulos de Euler. Por tanto haremos uso de este c
odigo adaptandolo
a nuestra aplicacion.
Lo primero que debemos hacer es obtener y definir todas las libreras que FreeIMU
requiere para su funcionamiento, labor que se realiza a traves de las siguientes lneas de
codigo. Es importante remarcar que para poder incluirlas, estas han de encontrarse en la
carpeta de trabajo y por tanto se han descargar previamente de la red.
\cdots#include "Wire.h"
#include "I2Cdev.h"
#include "SPI.h"
#include "MPU60X0.h"
#include "HMC58X3.h"
#include "MS561101BA.h"
#include "FreeIMU.h"
#include "DebugUtils.h"
#include "EEPROM.h"
Una vez definidas las libreras se procedera a definir las variables que se usaran a lo largo
del c
odigo. Dado que se usara como base la librera FreeIMU, los nombres y tipos de
variables vienen fijadas por ella aunque podran modificarse a gusto del programador. En
este caso se han considerado suficientemente explicativas y, al no existir motivo aparente
para modificarse, se ha optado por usar las mismas. Se debe definir adicionalmente un
objeto o estructura, al que se ha llamado my3IMU, pues sera en ella donde se almacenen
los datos provenientes de los elementos de medida.
int raw values[11];
float angles[3];
float val[9];
FreeIMU my3IMU = FreeIMU();
114
Implementacion
Definidas las libreras, variables y la estructura se procede al inicio del sistema. Para
garantizar que la accion de arranque solo se lleva acabo una vez, obviamente en la fase de
arranque, se ha incluido el if que se muestra a continuacion. La variable xD[0] contiene
el valor inicial del sistema que por defecto se han fijado a cero. As pues, en el inicio, se
acceder
a dentro del if iniciando la comunicacion y la IMU. Los delays se han incluido para
asegurar que el sistema tiene tiempo suficiente para iniciar los dispositivos. Finalmente
el valor xD[0] se iguala a 1, valor en el cual se mantendr
a hasta el reinicio del sistema,
cumpliendo con la condicion de acceso solo en el arranque.
if (xD[0]!=1) {
Wire.begin();
delay(500);
my3IMU.init(true);
delay(500);
xD[0]=1;
}
El u
ltimo paso consiste en extraer la informacion almacenada en la estructura de datos en
las variables que se han definido en la S-Function de Simulink. Con la extension .getRawValues se obtienen las medidas sin filtrado ni correccion y con la extension .getEuler se
obtienen los
angulos de Euler en grados, los cuales son volcados sobre la variable situada
entre parentesis, es decir raw values y angles respectivamente. Las siguientes lneas de
codigo son una simple identificacion de terminos entre variables. S es importante comentar el por que de la inclusion del if en esta parte del codigo. Como vimos anteriormente,
al arrancar el sistema xD[0]=0 y la IMU no se ha activado a
un por lo que pedir datos del
dispositivo generara un error en el sistema. La presencia de ese if garantiza que solo se
acceda a leer los datos almacenados en la estructura s y solo s se ha iniciado la unidad
de medida.
if (xD[0]!=1) {
if (xD[0]==1) {
my3IMU.getRawValues(raw values);
my3IMU.getEuler (angles);
axyz raw[0]=raw values[0];
axyz raw[1]=raw values[1];
axyz raw[2]=raw values[2];
gxyz raw[0]=raw values[3];
gxyz raw[1]=raw values[4];
gxyz raw[2]=raw values[5];
mxyz raw[0]=raw values[6];
mxyz raw[1]=raw values[7];
mxyz raw[2]=raw values[8];
temp raw[0]=raw values[9];
presion raw[0]=raw values[10];
ang[2]=angles[0];
ang[1]=angles[1];
115
Implementacion
ang[0]=angles[2];
}
}
5.1.2.
116
Implementacion
Figura 5.2: Emisora con los canales por los que emite cada se
nal
CH1
CH2
CH3
CH4
Empuje
Gui
nada
Cabeceo
Alabeo
CH5
CH6
Interruptor
Interruptor
primario
secundario
117
Implementacion
#define PIN1 A8
#define PIN2 A9
#define PIN3 A10
#define PIN4 A11
#define PIN5 A12
#define PIN6 A13
// Declaraci
on de flags
#define flag PIN1 1
#define flag PIN2 2
#define flag PIN3 3
#define flag PIN4 4
#define flag PIN5 5
#define flag PIN6 6
Posteriormente se definen las variables a usar. As pues act flag contiene el valor del pin
que se ha de actualizar as como PINx copia y PINx start gestionan el tiempo trascurrido
hasta que salta la interrupcion.
volatile uint8 t act flag;
volatile uint16 t PIN1 copia;
volatile uint16 t PIN2 copia;
volatile uint16 t PIN3 copia;
volatile uint16 t PIN4 copia;
volatile uint16 t PIN5 copia;
volatile uint16 t PIN6 copia;
uint32 t PIN1 start;
uint32 t PIN2 start;
uint32 t PIN3 start;
uint32 t PIN4 start;
uint32 t PIN5 start;
uint32 t PIN6 start;
118
Implementacion
Por u
ltimo se actualiza cada canal a traves de las lneas de codigo que se muestran a
continuacion. Cuando ha saltado alguna interrupcion, act flag es distinta de cero por lo
que se procede a actualizar el valor del canal, de lo contrario no se modifica. Es importante
remarcar que cuando el sistema entra dentro de la condici
on se desactivan las interrupciones. Esto garantiza que no saltar
a otra interrupcion mientras se esta actualizando alg
un
canal, accion que puede generar problemas de funcionamiento. Por otro lado, el PIN 12 se
ha situado fuera de la condici
on de interrupcion puesto que se busca que alimente siempre
al receptor.
if (xD[0]==1) {
static uint8 t UpdateFlags;
if(act flag)
{
noInterrupts(); // Apaga las interrupciones
// Actualizaci
on del estado del flag
UpdateFlags = act flag;
if(UpdateFlags & flag PIN1)
{
ch1[0] = PIN1 copia;
}
119
Implementacion
Tras una an
alisis de las se
nales obtenidas se ha observado cierto nivel de ruido en ellas
que, al ser introducidas en el control a traves de las referencias, pueden afectar al control
de la nave. Por ello se ha dise
nado un filtro de Savitzky-Golay obtenido a partir de las
se
nales con ruido obtenidas. La funci
on de transferencia 5.1 describe el filtro mencionado
el cual genera una referencia limpia de ruido aunque un poco m
as lenta en la respuesta
que la original. En la secci
on 6 se incluyen unas graficas que muestran la eficiencia del
filtro.
F [z] =
5.1.3.
0,05645z 1 0,003782z 2
1 1,63z 1 + 0,685z 2
(5.1)
120
Implementacion
5.1.4.
En la secci
on 4.3.5 se mencion
o que los lmites de saturacion del sistema son din
amicos
y en la 4.4 se uso el valor de la tension de la batera como variable de transicion entre estados. Resulta por tanto necesario dise
nar un dispositivo capaz de medir esa tension as como
un driver que lo comunique con el microcontrolador. Por desgracia la tension de la batera
es superior a la maxima admisible en los pines del control que esta en torno a los 5 V, por
lo que no se puede conectar directamente una derivacion de la alimentaci
on al sistema. Sin
embargo existe una solucion bastante simple pero realmente eficaz que soluciona el incon
veniente, un divisor de tensi
on. Este
se ha dise
nado con dos resistencias de 20 K para
evitar que consuma mucha corriente y se ha incluido un operacional conectado a modo de
buer para asilar la entrada de la placa del divisor. Las dos resistencias se han escogido
del mismo valor para que el divisor de tension reduzca la tension de la batera por dos,
permitiendo su conexi
on en la placa. La figura 5.4 muestra un esquema de divisor dise
nado.
Implementacion
5.2.
Un correcto montaje del dispositivo resulta esencial para el desarrollo del proyecto,
pues de lo contrario no se podran realizar los ensayos correspondientes del sistema de
control programado. Por ende se ha dedicado una seccion a describir el procedimiento de
montaje incluyendo imagenes que facilitan la comprension del proceso, desde su inicios
hasta el dispositivo final. En esta seccion no se hara referencia al conexionado electrico del
sistema, pues se dedicara una secci
on aparte mas adelante donde se describir
a en mayor
detalle. A continuacion se proceder
a con la descripcion del proceso de montaje.
Las piezas que constituyen el dispositivo con el que se trabaja se muestran en el
despiece de la figura 5.6. Estas piezas no han sido fabricadas en este proyecto sino que
se han adquirido a traves de un proveedor externo a la Universidad. Se han de extraer
con relativo cuidado de la matriz en la que se reciben, pues no es difcil que en el proceso
de extraccion de la misma se da
ne alguna de las partes que las componen. Una vez estan
debidamente extradas, los distintos componentes se deberan ensamblar por presi
on y se
fijaran con las tuercas y tornillos M3 que se presentan en la figura 5.6.
Implementacion
Implementacion
Implementacion
125
Implementacion
5.3.
Conexionado
Implementacion
Implementacion
Vbat
CH1
CH2
CH3
CH4
CH5
CH6
GND
M1
M2
M3
M4
TRC
Jump
A15
A13
A12
A11
A10
A9
A8
GND
12
128
Captulo 6
Ensayos
Todo proyecto de ingeniera requiere de un conjunto de ensayos que demuestren el
correcto funcionamiento del sistema dise
nado. Este modo de trabajo, llamado metodo
cientfico en la literatura clasica, permite identificar que partes del sistema dise
nado son
validas, o funcionan correctamente, y cuales necesitan ser corregidas para que funcionen
de la manera deseada. Generalmente, en el mundo de la ingeniera de control, se trabaja en
modo incremental, es decir, se dise
na por bloques individuales y se comprueba el correcto
funcionamiento de los mismos. Cuando se han creado todos los necesarios, se acoplan todos y se comprueba el correcto funcionamiento del conjunto. Este metodo tiene la ventaja
de que el n
umero de errores que puede arrojar el sistema general es menor, dado que se
tiene la certeza de que cada bloque funciona correctamente, pues ya ha sido ensayado
anteriormente. Ademas permite identificar los errores mas rapidamente ya que estos no
estan camuflados dentro de los distintos subbloques.
En este captulo se proceder
a a describir minuciosamente los resultados obtenidos
organizados, a traves de las respectivas secciones, seg
un el orden logico de dise
no. En
todo proceso de ingeniera se han de realizar una serie de simulaciones que demuestren la
eficacia del dise
no, por lo menos a nivel virtual. Conviene que estas sean los m
as parecidas
posible a la realidad, puesto que una simulacion que se aleje mucho de ella no aporta
informacion alguna, es m
as, puede dar lugar a futuros errores o da
nos en el sistema real
con el que se trabaja. La principal ventaja de este tipo de ensayos es que permiten validar
el funcionamiento del o los algoritmos sin poner en peligro o da
nar ning
un dispositivo
fsico. As pues, la primera seccion de este captulo describe en detalle los resultados
obtenidos para todos los bloques dise
nados en los captulos anteriores. Como se vera m
as
adelante, este tipo de ensayos permite realizar peque
nas correcciones (generalmente a
nivel de constantes), que mejoran el funcionamiento del algoritmo y que en su dise
no
no se tuvieron tan en cuenta. Consecuentemente, con este estudio se pretende garantizar
una buena actuaci
on por parte del algoritmo, en su conjunto, sobre el sistema real. Sin
embargo, el exito nunca est
a garantizado pues, como bien se han mencionado, se trata de
una representacion de la realidad y, generalmente, se hacen uso de aproximaciones. Por lo
129
Ensayos
tanto, en proyectos con dispositivos fsicos o reales de alto valor, suelen dise
narse prototipos
para evitar que funcionamientos incorrectos del sistema dise
nado puedan da
narlos. En este
proyecto no se ha trabajado con un prototipo sino que se ha trabajado sobre el dispositivo
real. Los resultados obtenidos de estos se han recogido en las respectivas secciones que
posteriormente se mostraran. En conclusion, el objetivo de esta captulo es demostrar
que algoritmos funcionan correctamente y cuales no, tanto a nivel de simulaci
on como a
nivel real.
6.1.
Simulaciones
En esta primera parte del captulo se estudiaran los resultados obtenidos en las simulaciones realizadas. Para asegurar un buen resultado, se han ensayado la mayor parte
de los bloques dise
nados en los captulos anteriores. Los contenidos se han organizado siguiendo el orden presentado en la secci
on 4.3 para otorgar a este documento de una mayor
coherencia. A continuacion se procede a mostrar los resultados obtenidos.
6.1.1.
Los resultados que se muestran en esta seccion corresponden las simulaciones realizadas sobre el modelo matematico completo de la nave. Por tanto, se ha hecho uso del
regulador definido en la seccion 4.3.2, donde se explico en detalle el dise
no y funcionamiento del mismo. Se recuerda que el objetivo de este algoritmo es la regulacion de la nave a
traves de velocidades lineales, es decir, utilizando como referencias para el controlador las
velocidades deseadas en cada direccion cartesiana. Para lograrlo se dividio el regulador en
tres controles parciales, cada uno encargado de regular un conjunto de variables concretas.
As pues, se ha realizado un estudio de sensibilidad y de respuesta en frecuencia para cada
uno de esos controles parciales, de forma que se pueda obtener cierta informacion tanto de
la respuesta temporal como de la robustez del controlador. Una vez concluido este estudio
se presentara la respuesta temporal del conjunto as como los efectos de la m
aquina de
estados incluida en el algoritmo. As pues, este conjunto de estudios permite describir y
evaluar con gran profundidad la calidad del controlador, permitiendo su utilizacion en el
sistema real si muestra resultados favorables. Por tanto, a continuacion, se presenta la
respuesta en frecuencia de dichas funciones de transferencia.
La figura 6.1 presenta un gr
afico de Black-Nichols describiendo la respuesta en frecuencia tanto de la planta retarda como del lazo abierto para la regulacion del
angulo
.
130
Ensayos
Nichols Chart
30
20
System: G_phi
Phase Margin (deg): 50.7
Delay Margin (sec): 0.206
At frequency (rad/s): 4.3
Closed loop stable? Yes
10
0
System: P_phiret
Phase Margin (deg): 12.2
Delay Margin (sec): 1.15
At frequency (rad/s): 5.28
Closed loop stable? No
10
20
30
40
System: G_phi
Gain Margin (dB): 37.9
At frequency (rad/s): 314
Closed loop stable? Yes
50
225
180
135
System: G
Phase Margin (deg): 76.1
Delay Margin (sec): 1.61
At frequency (rad/s): 0.823
Closed loop stable? Yes
10
System: P_ret
Phase Margin (deg): 89.7
Delay Margin (sec): 1.57
At frequency (rad/s): 1
Closed loop stable? Yes
10
20
30
40
System: G
Gain Margin (dB): 51.9
At frequency (rad/s): 314
Closed loop stable? Yes
System: P_ret
Gain Margin (dB): 49.9
At frequency (rad/s): 314
Closed loop stable? Yes
50
60
180
135
OpenLoop Phase (deg)
90
Ensayos
La funci
on de transferencia fue obtenida en la seccion 4.3.1 y su ecuacion, muy simple
en realidad, se mostro en la tabla 4.2. Para regular su comportamiento se ha hecho uso de
un regulador PI con ponderacion a la referencia, comportamiento que se puede apreciar
a traves de la evolucion de la respuesta de la planta retardada. El hecho de que este se
encuentre desplaza hacia izquierda suele indicar la presencia de una accion integral en el
control y, generalmente, la inexistencia de derivaciones. As pues, la presencia de la integracion ha ralentizado la repuesta de la planta aunque a cambio se ha anulado el error en
regimen permanente. El hecho de que sea m
as lenta no supone un gran problema puesto
que la principal condicion es que este regulador sea m
as lento que el de los
angulos. Como
la pulsacion de corte para el PI es de 0.823 rad/s que, claramente, es menor que los 4.3
rad/s del PD anterior, se puede afirmar que se cumple la condici
on y por tanto es de
esperar que el algoritmo funcione correctamente en conjunto. Ademas podemos extraer
los parametros clasicos de la respuesta en frecuencia de una funcion de transferencia. El
margen de fase obtenido es de 76.1, ligeramente superior al recomendado pero no por ello
es incorrecto pues la aplicacion puede necesitarlo. De igual manera, margen de ganancia
para este caso de 51.9 dB, muy superior al mnimo recomendado y por tanto ofreciendo
un resultado positivo.
Se recuerda que el control de la velocidad asociada al eje vertical Z, haba sido modificado ligeramente pues era com
un obtener las medidas de la altura del dispositivo en vez de
su velocidad. Consecuentemente, al variar el tipo de entrada, la funci
on de transferencia
se modificado resultando su respuesta en el diagrama de Black de la figura 6.3.
Nichols Chart
Gvz
Gz
Ph_ret
40
20
System: Gz
Phase Margin (deg): 39.3
Delay Margin (sec): 1.07
At frequency (rad/s): 0.639
Closed loop stable? Yes
System: Gvz
Phase Margin (deg): 41.7
Delay Margin (sec): 1.34
At frequency (rad/s): 0.545
Closed loop stable? Yes
0
System: Ph_ret
Phase Margin (deg): 47.2
Delay Margin (sec): 1.12
At frequency (rad/s): 0.736
Closed loop stable? Yes
20
40
System: Ph_ret
Gain Margin (dB): 46
At frequency (rad/s): 12.6
Closed loop stable? Yes
60
System: Gvz
Gain Margin (dB): 48.3
At frequency (rad/s): 11.5
Closed loop stable? Yes
80
180
150
OpenLoop Phase (deg)
120
Ensayos
En la figura 6.3 se han incluido la respuesta del planta asociada a la altura, as como
las asociadas al lazo abierto con el control PI y el control P-PI. La accion integral incluida
en el primer regulador desplaza la grafica de la planta hacia la izquierda obteniendose una
pulsacion de cruce menor a lo original y de valor 0 =0.64 rad/s. El margen de fase fijado
es de 39.3 grados, valor que es un poco inferior al recomendado por la literatura. Por tanto
la accion proporcional posterior corregira, ligeramente, este margen situ
andolo dentro de
los lmites establecidos. El nuevo margen de fase es de 41.7 grados aunque la pulsacion
de cruce se ha reducido a 0.545 rad/s. De nuevo se cumple que la respuesta es m
as lenta
que la asociada a los
angulos de Euler, por lo que es de esperar que el controlador en su
conjunto funcione correctamente. Finalmente, el margen de ganancia es de nuevo superior
al fijado siendo este de 48.3 dB.
A fin de sintetizar lo descrito anteriormente, se han incluido los parametros caractersticos de las distintas respuestas en frecuencia en la tabla.
FDT
Am
50,7o
37.9 dB
4.3 rad/s
314 rad/s
Vx,y
76,1o
51.9 dB
0.823 rad/s
314 rad/s
Vz
41,7o
48.3 dB
0.545 rad/s
11.5 rad/s
1
1+G
G
1+G
(6.1)
133
Ensayos
Bode Diagram
Magnitude (dB)
System: untitled1
Peak gain (dB): 1.35
At frequency (rad/s): 3.96
10
20
30
40
0
10
10
Frequency (rad/s)
Bode Diagram
Magnitude (dB)
10
System: untitled1
Frequency (rad/s): 2.48
Magnitude (dB): 4.49
0
10
20
30
0
10
10
Frequency (rad/s)
Bode Diagram
Magnitude (dB)
0
System: untitled1
Peak gain (dB): 0.034
At frequency (rad/s): 52.7
10
20
30
40
0
10
10
Frequency (rad/s)
Bode Diagram
0
System: untitled1
Frequency (rad/s): 0.262
Magnitude (dB): 1.24
Magnitude (dB)
10
20
30
40
50
60
1
10
10
10
Frequency (rad/s)
134
Ensayos
Bode Diagram
Magnitude (dB)
10
0
System: untitled1
Peak gain (dB): 4.19
At frequency (rad/s): 0.729
10
20
30
40
1
10
10
Frequency (rad/s)
Bode Diagram
20
Magnitude (dB)
System: untitled1
Frequency (rad/s): 0.49
Magnitude (dB): 3.16
20
40
60
1
10
10
Frequency (rad/s)
Ms
MT
0.422 dB
0.968 dB
Vx,y
0.422 dB
0.968 dB
Vz
0.422 dB
0.968 dB
Vy
2.5
Referencia
Vy
0.1
Referencia
Vx
1.5
Velocidad (m/s)
Velocidad (m/s)
0.1
0.5
0.3
0.4
0.5
0.2
0.5
100
200
300
Tiempo(s)
400
500
0.6
600
100
Vz
200
300
Tiempo(s)
400
500
600
0.7
6
Referencia
Vz
0.6
Referencia
Altura
0.5
Altura (m)
Velocidad (m/s)
4
0.4
0.3
0.2
3
2
0.1
1
0
0
0.1
0.2
100
200
300
Tiempo(s)
400
500
1
600
100
200
300
Tiempo(s)
400
500
600
Ensayos
En este an
alisis se incluye tambien los efectos de la maquina de estados permitiendo extraer
un mayor volumen de informacion del estudio. Dicha respuesta se muestra a traves de la
figura 6.7, donde se ha representado la evoluci
on de las variables bajo estudio durante
los 6 minutos de simulaci
on. Se ha optado por incluir los resultados completos de la
simulacion para obtener una visi
on global de esta, pudiendo describir los elementos mas
caractersticos de ellas. Mas adelante se incluyen graficas con m
as detalle para realizar un
estudio m
as minucioso del sistema. La simulaci
on realizada esta dividida en una serie de
partes gestionadas por la m
aquina de estados, por lo que el comportamiento en cada una
de ellas sera diferente. A continuacion se enumeran y describen dichas partes:
1. Entre t=0 y t=100s se inicia la nave. Este tiempo, escogido u
nicamente para la
simulacion, permitira calibrar los sensores de medida ajust
andolos para su posterior uso durante el vuelo del dispositivo. Como se puede observar en la gr
afica, las
velocidades son llevadas a cero de forma suficientemente rapida.
2. En t=100 se activa el funcionamiento del cuadricoptero y, tal como se programo en
la m
aquina de estados, el software lleva al dispositivo a una altura de trabajo fijada
en 1.8m. Este comportamiento se puede apreciar claramente en la grafica de la altura
(cuarto diagrama de la figura 6.7), pues esta aumenta a traves de una rampa con
una pendiente fijada por el algoritmo.
3. Para t=150, se introduce un pulso de 10s a la velocidad en el eje x, buscando observar
el comportamiento de esta. En esta parte, la m
aquina de estados se encuentra en
modo control libre y no realiza accion alguna sobre el sistema salvo el control de las
alturas m
aximas y mnimas, por seguridad. Para producir un desplazamiento en la
direccion especificada, el
angulo que debe verse modificado es el de cabeceo, es decir,
. Se puede comprobar en la figura 6.8 que u
nicamente se producen variaciones en ese
angulo, lo que demuestra el correcto funcionamiento del algoritmo. En la figura 6.9
136
Ensayos
theta
8
1.5
0.5
2
Angulos()
Angulos()
phi
2
0
0.5
1
4
1.5
2
6
100
200
3
300
Tiempo(s)
400
500
8
600
100
200
300
Tiempo(s)
400
500
600
100
200
300
Tiempo(s)
400
500
600
6.85
6.8
1.5
6.75
6.7
0.5
6.65
0
0.5
6.6
6.55
1
6.5
1.5
6.45
2
2.5
psi
x 10
Tensin(V)
Angulos()
2.5
0
2
6.4
0
100
200
300
Tiempo(s)
400
500
6.35
600
137
Ensayos
N
otese como las amplitudes de estos son relativamente bajas ya que en ning
un caso
se superan los diez grados. Si se tiene en cuenta que con estas variaciones se generan
velocidades de traslacion de hasta 2 m/s (como muestra la figura 6.7), velocidades relativamente importantes para la aplicacion, se puede asumir que es el rango de valores de
angulos con los trabajara el controlador. Esto es especialmente interesante para aquellos
controladores que se ajustaron a partir de una linealizaci
on del sistema respecto al punto
de equilibrio, pues las variaciones respecto al mismo no seran lo suficientemente grandes
como para invalidar el uso de este tipo de reguladores. Pero la importancia de los peque
nos
desplazamientos no reside u
nicamente en los controladores, sino tambien en las ecuaciones
del modelo en las que se supusieron peque
nos desplazamientos y que se aproximaron senos
y cosenos por sus equivalentes. As pues, este hecho permite aplicar una notable simplificacion al sistema sin perder descripcion de la realidad.
Otro punto digno de estudio es el valor de la se
nal de mando. N
otese como se encuentra
dentro de los lmites de tension fijados y que en ning
un momento satura la se
nal. Esto es
especialmente interesante porque se mantienen las propiedades lineales de las respuestas,
facilitando la obtencion de los parametros de los controladores. En parte, estos valores pico
son tan peque
nos porque el tiempo de establecimiento es relativamente alto, como muestra
138
Ensayos
Vx
2.5
Referencia
Vx
Velocidad (m/s)
1.5
0.5
0.5
145
150
155
160
165
170
Tiempo(s)
Vy
0.1
Referencia
Vy
Velocidad (m/s)
0.1
0.2
0.3
0.4
0.5
300
302
304
306
308
310
Tiempo(s)
312
314
316
318
320
6.1.2.
Control PID
Es bastante com
un en este tipo de controladores realizar una serie de estudios caractersticos para evaluar la eficiencia y robustez del sistema. Generalmente se suele analizar
la respuesta temporal del sistema en lazo cerrado o realimentado as como la respuesta
en frecuencia del sistema en lazo abierto. Estudios m
as avanzados incluyen un analisis de
la sensibilidad que caracteriza el grado robustez del sistema, es decir, que el controlador
asegure como mnimo la estabilidad del sistema a
un cuando el modelo utilizado para el
dise
no no se corresponda exactamente con el sistema real. As pues, siguiendo con estos
patrones de estudio se proceder
a a realizar esos estudios.
139
Ensayos
Nichols Chart
Nichols Chart
40
Gphi
Gtheta
Gpsi
Pphi
Ptheta
Ppsi
10
20
System: Ppsi
Phase Margin (deg): 74.6
Delay Margin (sec): 0.0946
At frequency (rad/s): 13.8
Closed loop stable? Yes
System: Ptheta
Phase Margin (deg): 86.8
Delay Margin (sec): 0.541
At frequency (rad/s): 2.8
Closed loop stable? Yes
0
OpenLoop Gain (dB)
20
40
System: Gpsi
Phase Margin (deg): 80
Delay Margin (sec): 0.0279
At frequency (rad/s): 50
Closed loop stable? Yes
10
20
60
30
System: Gpsi
Gain Margin (dB): 29.4
At frequency (rad/s): 1.53e+03
Closed loop stable? Yes
80
40
100
180
150
120
OpenLoop Phase (deg)
90
270
225
180
135
90
OpenLoop Phase (deg)
45
Figura 6.10: Diagrama de Black-Nichols de las plantas y del control en lazo abierto
En el diagrama de la izquierda se pueden observar tres respuestas, dos de ellas practicamente iguales y una tercera con la misma forma pero que se encuentra desplazada
verticalmente. Esto tiene sentido pues como se mostro en las funciones de transferencia
recogidas en la tabla 4.1, para un mismo valor de K, solo difieren en las constantes del
numerador. La igualdad en el denominador de las mismas implica que todas tienen los
mismos polos y, por tanto, al no existir ceros en ninguna de ellas, una misma respuesta.
En consecuencia, la traslacion vertical se debe a la diferencia entre los parametros que
conforman el numerador. Al ser muy parecidos los valores de Ix e Iy , sus respuestas son
practicamente iguales. Sin embargo, Iz es casi un orden de magnitud mayor por lo que la
repuesta de Pz sera la de Px desplazada entorno a 20 dB (20 log 10) hacia arriba, como se
puede observar en el grafico.
De este gr
afico se puede obtener tambien informacion sobre la estabilidad de la planta,
siendo estas estables ya que, para la frecuencia de corte propia, la fase de la planta es
menor que 180. Esto quiere decir que el control a dise
nar no necesita de una accion establizante sino u
nicamente mejorar la respuesta del sistema, por lo que es de suponer que
se requieran acciones del mando menores. Sin embargo es importante remarcar que estas
funciones de transferencia son aproximaciones de la realidad obtenidas para un punto de
equilibrio por lo que, si el sistema se aleja de este, puede que el sistema se haga inestable.
Por eso se buscar
a un cierto grado de robustez en el control.
140
Ensayos
Asmismo, la frecuencia de corte de las plantas puede considerarse relativamente baja por
lo que se buscar
a aumentarla a traves de la accion diferencial o proporcional del regulador.
El margen de fase que presentan es relativamente bueno aunque superior al recomendado
por la literatura (45 m 60) y el margen de ganancia es infinito, valor que se corregira tambien con el regulador.
El mencionado regulador genera un repuesta en lazo abierto como la representada en
el diagrama de la derecha de la figura 6.10. En este caso se puede observar que los tres
angulos tienen la misma respuesta, de forma que el sistema se comporte de la misma manera independientemente de la direccion de giro. Esto tiene la ventaja de que se eliminan
posibles efectos desestabilizantes por diferencias en las respuestas de las partes que componen el conjunto. Los valores para los cuales se calcularon los parametros del regulador
se enumeraron en la seccion 4.3.3 y en este gr
afico se puede comprobar que se cumple.
As pues, la pulsacion de corte es de 50 rad/s (respuesta m
as r
apida) y se obtiene un margen de fase de 80 grados y un margen de ganancia de 29.4 dB. Acorde a la literatura, se
recomiendan valores superiores a 6 dB para el margen de fase, limitacion que supera con
creces. Por otro lado el margen de fase es superior al recomendado pero no por ello deja de
ser aceptable pues la principal influencia de este esta en el grado de amortiguamiento de
la respuesta. Como en este control se hace uso de la ponderacion a la referencia, se puede
usar un exceso de amortiguamiento en el sistema (debido a un margen de fase algo mayor
de lo indicado) para posteriormente ajustar la repuesta con la ponderacion para obtener
el sobrepaso deseado.
Generalmente, para el dise
no de controladores en tiempo discreto se suele realizar un
analisis del retardo que introduce el efecto de muestro en el sistema, pudiendo ser particularmente grande llegando a modificar altamente la respuesta del control. Para evitar este
efecto indeseable se hace uso del llamado modelo analogico modificado el cual consiste, en
esencia, en a
nadir un retardo de medio periodo de muestreo a la planta con la que se realiza
el dise
no. Este truco es valido para periodos de muestreo tanto peque
nos como medianos,
pero falla cuando estos son grandes. Sin embargo en este proyecto Ts es bastante peque
no
o
141
Ensayos
Nichols Chart
40
30
Modelo analgico
Modelo analgico modificado
Lazo abierto con modelo modificado
20
System: Lazo abierto con modelo modificado
Phase Margin (deg): 80
Delay Margin (sec): 0.0279
At frequency (rad/s): 50
Closed loop stable? Yes
10
0
10
System: Lazo abierto con modelo modificado
Gain Margin (dB): 29.4
At frequency (rad/s): 1.53e+03
Closed loop stable? Yes
20
30
40
50
60
315
270
225
180
OpenLoop Phase (deg)
135
90
Figura 6.11: Respuesta en frecuencia del modelo analogico, el modificado y el lazo abierto
En la tabla 6.3 se ha recogido los parametros m
as caractersticos del estudio realizado
a fin de remarcar los valores mas crticos.
m
Am
80o
29.4 dB
50 rad/s
1530 rad/s
2,92o
1
1+G
G
1+G
(6.2)
En estos diagramas se buscaran los maximos de cada repuesta obteniendose los valores
de la m
axima sensibilidad (Ms ) y de la sensibilidad complementaria (MT ). De la figura
6.12 se puede obtener el primero de ellos siendo igual a 0.422 dB. Acorde a la bibliografa,
se recomiendan valores de Ms menores a 6 dB, pues garantizan margenes de ganancia y
on entre
de fase mayores a 6 dB y 29o respectivamente. Ademas, como esta mide la relaci
las entradas (referencias y perturbaciones) y el error, permite expresar el efecto de estas,
con mayor interes las perturbaciones en carga, sobre la salida. El valor obtenido es, por
tanto, menor al lmite fijado y por tanto cumple la condici
on.
142
Ensayos
MT
0.422 dB
0.968 dB
Ensayos
0.5
0.5
Angulo ()
Angulo ()
0.5
0.1
0.2
0.3
0.4
Tiempo (s)
0.5
0.6
0.7
0.5
0.1
0.2
0.3
0.4
Tiempo (s)
0.5
0.6
7
U1
U2
U3
U4
6.5
0.5
Fuerza (N)
Angulo ()
0.7
0
5.5
0.5
0.1
0.2
0.3
0.4
Tiempo (s)
0.5
0.6
0.7
0.05
0.1
0.15
Tiempo (s)
0.2
0.25
0.3
144
Ensayos
A continuacion se presentan las repuestas a escalones de distintos valores en la referencia empezando por el unitario, mostrado en la figura 6.15. En esta grafica se han
superpuesto las repuestas de cada
angulo a fin de ver con mayor claridad los parametros
caractersticos de estas.
Angulo ()
0.8
0.6
0.4
0.2
0.2
0.1
0.2
0.3
0.4
0.5
Tiempo (s)
0.6
0.7
0.8
0.9
0.775
0.775
0.667
145
Ensayos
0.8
Angulo ()
0.6
0.4
0.2
0.2
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Tiempo (s)
6.8
6.6
6.4
Fuerza (N)
6.2
5.8
5.6
5.4
5.2
0.05
0.1
0.15
Tiempo (s)
0.2
0.25
0.3
Figura 6.17: Se
nal de mando para la respuesta al escalon unitario con ponderacion a la
referencia
Se puede observar que este tipo de regulador no llega a satura el mando para un
escalon unitario a la entrada. Sin embargo s se puede observar que requiere de valores
relativamente altos teniendo en cuenta los lmites de saturaci
on fijados por las condiciones
fsicas del sistema. As pues, aunque la respuesta es muy buena para escalones unitarios es
146
Ensayos
de esperar que el comportamiento sea diferente para escalones mayores. Para comprobarlo
se han realizado dos simulaciones m
as, en las que se introduce al sistema un escalon de 10
grados a cada
angulo (figura 6.18) y otra en la que se introduce uno de 20 grados (6.19).
Respuesta escaln theta=10
15
10
10
Angulo ()
Angulo ()
0
1
1.2
1.4
Tiempo (s)
1.6
1.8
1.2
1.4
Tiempo (s)
1.6
1.8
25
8.5
U1
U2
U3
U4
8
20
7.5
Fuerza (N)
Angulo ()
15
10
7
6.5
6
5.5
5
4.5
0
1
1.2
1.4
Tiempo (s)
1.6
1.8
1.2
1.4
Tiempo (s)
1.6
1.8
20
25
20
Angulo ()
Angulo ()
15
10
15
10
5
5
0
0
1
1.2
1.4
Tiempo (s)
1.6
1.8
1.2
1.4
Tiempo (s)
1.6
1.8
70
8.5
U1
U2
U3
U4
60
7.5
Fuerza (N)
50
Angulo ()
40
30
7
6.5
6
5.5
20
5
10
4.5
0
1
1.5
2.5
Tiempo (s)
1.2
1.4
Tiempo (s)
1.6
1.8
147
Ensayos
Procediendo con el analisis temporal se ha introducido el escalon de 20o dandose comportamientos peculiares en la salida. La respuesta del
angulo tiende a sobreamoriguarse
y las de y sufren un aumento en el tiempo de establecimiento y en el sobrepaso. De
igual manera, el mando sigue estando saturado, esta vez por un mayor intervalo de tiempo
lo que genera m
as irregulares en las respuestas. Si se tiene en cuenta que lo normal es que
las amplitudes de las referencias esten entre 5 y 15 grados surge la necesidad de recalibrar
el controlador para ajustar una mejor respuesta para cada
angulo. Los nuevos valores de
la ponderacion a cada
angulo se han incluido en la tabla 6.6.
b
0.8
0.5
0.05
15
15
Angulo ()
Angulo ()
10
10
0
1
1.2
1.4
Tiempo (s)
1.6
1.8
1.4
Tiempo (s)
1.6
1.8
40
8.5
35
30
7.5
25
Fuerza (N)
Angulo ()
1.2
20
15
U1
U2
U3
U4
7
6.5
6
5.5
10
4.5
0
1
1.2
1.4
1.6
1.8
2
Tiempo (s)
2.2
2.4
2.6
2.8
1.2
1.4
Tiempo (s)
1.6
1.8
Ensayos
400
8.5
200
7.5
Fuerza (N)
200
Angulo ()
U1
U2
U3
U4
400
6.5
600
5.5
800
5
1000
4.5
1200
0
0.5
1.5
2.5
3
Tiempo (s)
3.5
4.5
0.5
1.5
2.5
3
Tiempo (s)
3.5
4.5
149
Ensayos
40
Angulo ()
Angulo ()
50
30
20
10
0
60
40
20
0
1.5
2
Tiempo (s)
Respuesta escaln psi=50
1.5
2
Tiempo (s)
Mando para la respuesta el escaln
8
Fuerza (N)
Angulo ()
150
100
50
U1
U2
U3
U4
7
6
5
4
6
Tiempo (s)
10
1.5
Tiempo (s)
10
ngulos()
0
3.5
4.5
5.5
Tiempo (s)
150
Ensayos
El segundo tipo de perturbaciones que pueden aparecer en un lazo de control son las
asociadas al ruido en la medida. Por tanto, a fin de evaluar el efecto sobre el sistema, se
ha realizado un ensayo que ha dado lugar al grafica que se muestra en la figura 6.24.
1.2
ngulos()
0.8
0.6
0.4
0.2
1.2
1.4
1.6
1.8
Tiempo (s)
2.8 rad/s
160.51
o /s
2.4 rad/s
137.58
o /s
1.4 rad/s
80.25 o /s
Tabla 6.7: Valores de las omegas del cuerpo ante un escalon de 10o
151
Ensayos
2.5
2.5
1.5
0.5
0.5
1.5
2
Tiempo (s)
2.5
1.5
Velocidad (rad/s)
Velocidad (rad/s)
Velocidad (rad/s)
0.5
4.2
4.4
4.6
4.8
5
Tiempo (s)
5.2
5.4
5.6
5.8
7.5
8.5
Tiempo (s)
9.5
Este
modelo tiene la ventaja de que permite limitar estos incrementos a traves de una saturacion, reduciendo los escalones tanto en el mando como en la salida. Como el controlador
es el mismo, siempre que los lmites de saturacion incrementales sean lo suficientemente
laxos, las respuestas seran iguales y, por tanto, no se proceder
a a su analisis.
La elecci
on de los lmites de saturacion incrementales es especialmente delicada pues
puede hacer la respuesta inestable y, por tanto, invalidando su uso. Por otro lado se ha
de evaluar la necesidad de a
nadir esta restriccion a traves de las respuestas obtenidas en
la simulaci
on real. Este hecho se estudiara m
as en profundidad en el seccion 6.2, d
onde se
eval
ua la validez de los distintos controladores en el sistema real. Como anticipo, cuando
la se
nal de mando satura suele producirse un comportamiento peculiar, pues esta se transforma en una se
nal binaria oscilante, es decir, el mando vale bien el lmite superior o bien
el inferior fijado en la condicion de saturacion. Este comportamiento genera una salida
inestable y, por tanto, indeseada. Para evitarlo, se puede limitar los cambios entre estos
valores, es decir, los incrementos. Esta nueva restricci
on puede llevar al sistema anteriormente inestable a un punto de equilibrio si los lmites estan correctamente elegidos y, para
obtenerlos, es necesario evaluar las salidas del mando en el sistema real. As pues en esta
seccion no se presentaran graficas del control puesto que, sin limitaciones incrementales,
son exactamente las mismas que en el control PID estudiado anteriormente.
152
Ensayos
0.8
0.6
0.4
6.5
Fuerza (N)
ngulo ()
0.2
0.2
5.5
0.4
0.6
0.8
1
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
4.5
1.4
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
1.4
153
1.2
1
0.8
0.8
0.6
0.4
0.2
0
1.2
ngulo ()
ngulo ()
Ensayos
0.6
0.4
0.2
0.2
0.4
0.6
0.8
1
1.2
Tiempo (s)
1.4
1.6
1.8
4.5
6.5
7.5
6.5
Fuerza (N)
ngulo ()
6
Tiempo (s)
500
500
5.5
7.5
8.5
Tiempo (s)
9.5
5.5
10
3
Tiempo (s)
KI
KI
1050
1050
50
Tabla 6.8: Correccion en la KI del control por realimentacion de estados con accion integral
En la figura 6.28 se muestra al respuesta a un escal
on unitario una vez corregida la constante de integracion asociada al control del
angulo . Lo primero que se puede observar
es que su respuesta es ahora estable, lo que permite aceptar este control como un control
posible para el sistema. Ademas se puede observar que las respuestas de los tres
angulos
son muy similares, con un tiempo de establecimiento de 1.5 segundos y sobreamortiguadas.
Respuesta escaln phi=1
0.8
0.8
0.6
0.4
0.2
0
1.2
ngulo ()
ngulo ()
1.2
0.6
0.4
0.2
0.2
0.4
0.6
0.8
1
1.2
Tiempo (s)
1.4
1.6
1.8
4.5
5.5
6
Tiempo (s)
6.5
7.5
Fuerza (N)
ngulo ()
0.8
0.6
0.4
0.2
0
7.5
8.5
Tiempo (s)
9.5
5.5
10
3
Tiempo (s)
Ensayos
accion de control. Como se puede observar, esta es muy breve y de poca amplitud por lo
que es de esperar correctos funcionamientos para referencias con mayor amplitud, como
se muestra en la figura 6.29.
Respuesta escaln theta=10
10
8
ngulo ()
ngulo ()
6
4
2
0
6
4
2
0.2
0.4
0.6
0.8
1
1.2
Tiempo (s)
1.4
1.6
1.8
4.5
5.5
6
Tiempo (s)
6.5
7.5
10
Fuerza (N)
ngulo ()
8
6
4
2
0
6.5
6
5.5
5
7.5
8.5
Tiempo (s)
9.5
4.5
10
3
Tiempo (s)
15
15
ngulo ()
ngulo ()
10
10
0.2
0.4
0.6
0.8
1
1.2
Tiempo (s)
1.4
1.6
1.8
4.5
5.5
6
Tiempo (s)
6.5
7.5
20
Fuerza (N)
ngulo ()
15
10
6.5
6
5.5
5
5
0
7.5
8.5
Tiempo (s)
9.5
4.5
10
3
Tiempo (s)
Ensayos
Esta repuesta vuelve a ser muy similar a las anteriores para los
angulos y , de nuevo
demostrado una alta robustez en el regulador. Sin embargo, la respuesta del
angulo empieza a diferir ligeramente por lo que sera el punto debil del regulador, es decir, la variable
que desestabilizara el conjunto ante escalones de mayor amplitud. De nuevo, analizando
la accion de mando, se pueden observar tramos mas grandes de saturacion. Como ya se
mencion
o en secciones anteriores, la saturacion tiende a modificar, bastante notablemente,
la repuesta original accion que se puede comprobar en la gr
afica del
angulo . Sin embargo
es necesario incluir estos lmites puesto que no existe dispositivo real capaz de dar mandos
infinitos, es decir, siempre existe una limitacion que debera cumplirse. De no incluirse esta
saturacion, la respuesta obtenida carecer
a de sentido en el sistema real y solo servira para
inducir a error en futuros ensayos.
Tal y como se realiz
o con el controlador PID, se ha incluido la grafica de la figura 6.31
donde se presenta las se
nales obtenidas para cada
angulo ante una entrada de 50 grados.
Respuesta escaln phi=20
500
1000
ngulo ()
ngulo ()
500
0
500
1000
1500
500
0.2
0.4
0.6
0.8
1
1.2
Tiempo (s)
1.4
1.6
1.8
2000
4.5
5.5
6
Tiempo (s)
6.5
7.5
500
7.5
400
200
Fuerza (N)
ngulo ()
300
100
0
6.5
6
5.5
100
5
200
300
7.5
8.5
Tiempo (s)
9.5
4.5
10
3
Tiempo (s)
Ensayos
0.7
0.7
0.7
0.6
0.6
0.6
0.5
0.5
0.5
0.4
Velocidad (rad/s)
0.8
Velocidad (rad/s)
Velocidad (rad/s)
0.4
0.4
0.3
0.3
0.3
0.2
0.2
0.2
0.1
0.1
0.1
1.5
2
Tiempo (s)
2.5
4.2
4.4
4.6
4.8
5
Tiempo (s)
5.2
5.4
5.6
5.8
7.5
8.5
Tiempo (s)
9.5
0.68 rad/s
38.98
o /s
0.59 rad/s
33.82
o /s
0.73 rad/s
41.85 o /s
Tabla 6.9: Valores de las omegas del cuerpo ante un escalon de 10o
Control LQ para el modelo simplificado
El u
ltimo de los controladores que se dise
naron en la seccion 4.3.3 fue el control lineal
cuadratico o LQ, el cual es una version avanzada de un regulador por realimentaci
on de
estados. Se dice que es una version avanzada porque no se han de especificar los nuevos
polos del sistema sino que, a traves de las matrices de ruido Q y R, estos se obtienen
resolviendo una compleja ecuacion de costes. Por tanto, es de esperar un mejor comportamiento por parte del sistema que con el controlador anterior. Se recuerda que la matrices
de ruido y la ganancia de realimentacion se encuentran definidas en la secci
on 4.3.3, por
lo que no se mostraran de nuevo en esta secci
on.
La figura 6.33 muestra la respuesta libre del
angulo cuando este se ha posicionado a
20 grados del punto de equilibrio. El hecho de que se sit
ue a tal distancia y que el regulador
sea capaz de corregirlo, es un signo de robustez por parte del controlador. En cuanto a
la respuesta se puede observar un sobrepaso relativamente grande, pero asumible dado el
desequilibrio fijado, y un tiempo de establecimiento del orden de 0.6 segundos. La rapidez
en el establecimiento y la robustez del algoritmo parecen posicionar a este controlador
como uno de los mejores para la aplicacion buscada. N
otese que los mandos se encuentran
saturados y que, sin la presencia de un anti-windup, el sistema es capaz de recuperar la
posicion de equilibrio establecida.
157
Ensayos
Respuesta Libre
10
7
5
6.5
Fuerza (N)
ngulo ()
5
10
5.5
15
20
0
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
4.5
1.4
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
1.4
0.8
0.8
ngulo ()
ngulo ()
0.6
0.4
0.2
0
0.6
0.4
0.2
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
1.4
4.2
4.4
4.6
4.8
Tiempo (s)
5.2
5.4
1
5.98
Fuerza (N)
ngulo ()
0.8
0.6
0.4
5.94
5.92
0.2
0
5.96
7.2
7.4
7.6
7.8
8
8.2
Tiempo (s)
8.4
8.6
8.8
5.9
5
6
Tiempo (s)
10
Ensayos
8
ngulo ()
ngulo ()
6
4
2
0
6
4
2
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
1.4
4.2
4.4
4.6
4.8
Tiempo (s)
5.2
5.4
10
Fuerza (N)
ngulo ()
8
6
4
2
0
7.2
7.4
7.6
7.8
8
8.2
Tiempo (s)
8.4
8.6
8.8
5.5
5
6
Tiempo (s)
10
15
15
ngulo ()
ngulo ()
10
10
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
1.4
4.2
4.4
5.2
5.4
6.5
Fuerza (N)
15
ngulo ()
20
10
5.5
4.6
4.8
Tiempo (s)
7.2
7.4
7.6
7.8
8
8.2
Tiempo (s)
8.4
8.6
8.8
5
6
Tiempo (s)
10
Ensayos
40
40
ngulo ()
ngulo ()
30
20
10
0
30
20
10
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
1.4
4.2
4.4
5.2
5.4
50
Fuerza (N)
40
ngulo ()
4.6
4.8
Tiempo (s)
30
20
6.5
6
5.5
10
4.5
7.2
7.4
7.6
7.8
8
8.2
Tiempo (s)
8.4
8.6
8.8
5
6
Tiempo (s)
10
80
80
60
60
ngulo ()
ngulo ()
40
20
0
40
20
0.2
0.4
0.6
0.8
Tiempo (s)
1.2
1.4
4.2
4.4
4.6
4.8
Tiempo (s)
5.2
5.4
60
Fuerza (N)
ngulo ()
80
40
20
0
6.5
6
5.5
5
7.2
7.4
7.6
7.8
8
8.2
Tiempo (s)
8.4
8.6
8.8
4.5
5
6
Tiempo (s)
10
160
Ensayos
0.9
0.9
0.8
0.8
0.7
0.7
0.6
0.6
0.25
0.5
Velocidad (rad/s)
Velocidad (rad/s)
Velocidad (rad/s)
0.2
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0.15
0.1
0.05
1.5
2
Tiempo (s)
2.5
4.2
4.4
4.6
4.8
5
Tiempo (s)
5.2
5.4
5.6
5.8
7.5
8.5
Tiempo (s)
9.5
0.8 rad/s
45.86
o /s
0.81 rad/s
46.44
o /s
0.28 rad/s
16.05 o /s
Tabla 6.10: Valores de las omegas del cuerpo ante un escalon de 10o
Comparaci
on entre controladores
A lo largo de esta secci
on se han analizado las respuestas del sistema cuando este se regula con los controladores presentados. Dada la profundidad de los estudios realizados, se
ha credo conveniente incluir una comparacion entre las respuestas temporales generadas
por cada uno de ellos. Este ejercicio de sntesis permite extraer el regulador con mejores
prestaciones para el control del sistema, as como condensar lo explicado anteriormente.
Se ha evaluado u
nicamente la respuesta temporal por ser la respuesta m
as caracterstica
161
Ensayos
para caso que nos ocupa, pues las demas son meros complementos que definen un mejor o
peor comportamiento de esta antes unas condiciones concretas. A continuacion se procede
con la mencionada comparacion.
La figura 6.40 contiene las gr
aficas asociadas a la respuesta del sistema ante un escalon
unitario en referencia para cada uno de los controladores principales. Se han separado
en tres gr
aficas diferentes, una para cada
angulo, para facilitar tanto su estudio como su
identificacion.
0.8
0.8
0.8
0.6
0.6
0.6
ngulo ()
ngulo ()
ngulo ()
PID
Realimentacin
LQR
0.4
0.4
0.4
0.2
0.2
0.2
0.5
1.5
2
Tiempo (s)
2.5
4.5
5.5
6
Tiempo (s)
6.5
7.5
8.5
9
Tiempo (s)
9.5
10
Ensayos
11
PID
Realimentacin
LQR
11
10
ngulo ()
10
ngulo ()
ngulo ()
10
11
0.5
1.5
2
Tiempo (s)
2.5
4.5
5.5
6
Tiempo (s)
6.5
7.5
8.5
9
Tiempo (s)
9.5
10
PID
Realimentacin
LQR
20
20
18
18
16
16
14
14
12
12
35
30
10
ngulo ()
ngulo ()
ngulo ()
25
10
20
15
10
0.5
1.5
2
Tiempo (s)
2.5
4.5
5.5
6
Tiempo (s)
6.5
7.5
8.5
9
Tiempo (s)
9.5
10
Ensayos
6.1.3.
Control para el p
endulo invertido
Ensayos
System: G
Phase Margin (deg): 0.398
Delay Margin (sec): 0.0139
At frequency (rad/s): 0.501
Closed loop stable? Yes
Nichols Chart
10
20
30
40
50
System: G
Gain Margin (dB): 51.6
At frequency (rad/s): 270
Closed loop stable? Yes
180
150
OpenLoop Phase (deg)
165
Ensayos
System: untitled1
Bode Diagram
Peak gain (dB): 44.5
At frequency (rad/s): 0.345
40
Magnitude (dB)
35
30
25
20
15
1
10
10
Frequency (rad/s)
se desaconseja la implantaci
on de este control. Estas
muestran un pico de sensibilidad de
44.5 dB cuando debera ser menor que 6 dB, y un pico de sensibilidad complementaria de
44.4 dB cuando debera ser inferior a 2,3 dB.
Bode Diagram
48
System: untitled1
Peak gain (dB): 44.5
At frequency (rad/s): 0.346
46
44
42
Magnitude (dB)
40
38
36
34
32
30
28
1
10
10
Frequency (rad/s)
166
Ensayos
ngulos()
2.5
2
1.5
1
0.5
0
10
15
Time(s)
20
25
30
20
25
30
Tensin(V)
210
200
190
180
170
160
10
15
Time(s)
Td
0,7
-4.5682
0,113
167
Ensayos
Nichols Chart
5
System: G
Phase Margin (deg): 47.8
Delay Margin (sec): 0.0751
At frequency (rad/s): 11.1
Closed loop stable? Yes
5
10
15
20
25
System: G
Gain Margin (dB): 28.6
At frequency (rad/s): 302
Closed loop stable? Yes
30
180
135
OpenLoop Phase (deg)
Figura 6.47: Diagrama de Black del lazo abierto con el control reajustado
A continuacion se muestran las respuestas en frecuencia de las funciones de transferencia de la sensibilidad y su complementaria en las figuras 6.48 y 6.49.
Bode Diagram
1.8
System: untitled1
Peak gain (dB): 1.83
At frequency (rad/s): 11.1
1.6
1.4
Magnitude (dB)
1.2
0.8
0.6
0.4
0.2
10
10
Frequency (rad/s)
Ensayos
Bode Diagram
6
System: untitled1
Peak gain (dB): 4.71
At frequency (rad/s): 4.92
Magnitude (dB)
1
2
3
0
10
10
Frequency (rad/s)
ngulos()
1.5
0.5
0.5
1.5
1.5
Time(s)
Mando para la respuesta temporal al escaln unitario
230
Tensin(PWM)
220
210
200
190
180
170
160
0.5
Time(s)
1
= 0,41
1 + C[1]P [1]
(6.3)
Ensayos
integral. Sin embargo, para el caso que nos ocupa, este controlador permite evaluar todos
los puntos enumerados al principio de este estudio por lo que no se proceder
a con tal
correccion.
6.2.
Ensayos en el dispositivo
6.2.1.
Filtro de Kalman
Ensayos
80
MEKF
Filtro IMU
MEKF
Filtro IMU
0
60
5
40
ngulos ()
ngulos ()
10
20
15
0
20
20
25
30
40
0.1
0.2
0.3
Tiempo (s)
0.4
0.5
Tiempo (s)
0.6
0.7
0.8
0.9
Ensayos
inicial es considerablemente mejor en el MEKF que en el de la IMU. La respuesta al escalon muestra un comportamiento distinto para cada filtro. El de la IMU tiene un tiempo
de establecimiento del orden de 0.1s pero por contra un sobrepaso del orden del 40 %.
Consecuentemente se trata de una respuesta bastante r
apida pero con un sobrepaso excesivamente alto. En cambio, el MEKF, muestra una respuesta altamente sobreamortiguada
con un tiempo de alcance de 0.6s. Esto tampoco es aceptable puesto que para la aplicacion
buscada, los
angulos debe estimarse mas rapidamente. A modo de conclusion, se podra
decir que la respuesta ideal estara entre medias de las dos mostradas, obteniendo un menor sobrepaso y, por contra, un mayor tiempo de establecimiento.
A continuacion se muestra en la figura 6.52 la repuesta de los estimadores a cambios
en el
angulo cuando las helices estan girando. El hecho de que giren implica que las
vibraciones en la estructura aumentan considerablemente y por tanto la estimacion puede
verse afectada.
20
ngulos ()
10
10
20
30
0.2
0.4
0.6
0.8
1
Tiempo (s)
1.2
1.4
1.6
1.8
Ensayos
Estimacin corregida
40
MEKF
Filtro IMU
20
ngulos ()
20
40
60
80
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Tiempo (s)
50
Q =
0
0
0
50
0
(6.4)
50
Ensayos
se trabaja hay una gran presencia de materiales ferromagneticos que influyen altamente
en las medidas de los magnetometros. Concretamente se realizo una medida del norte
magnetico con los magnet
ometros y con una br
ujula para comprobar que ambos indican
la misma direccion, sin embargo esto no fue as sino que la estimacion de este norte,
por parte de los magnet
ometros, estaba desviada entorno a 20 grados hacia el oeste.
El valor y la direccion de la desviacion no es importante, puesto que dependen de las
condiciones que se den cuando se realice en ensayo. Lo que s es importante remarcar
es que existe una desviacion, relativamente grande, entre la medida y la realidad, por
lo que las estimaciones de los
angulos proporcionadas por este algoritmo no van a ser
correctas. En consecuencia no se podran utilizar los magnet
ometros para la estimacion
de los
angulos si no se realiza ninguna calibracion. Sin embargo, el hecho de que no se
usen, como ocurre en el MEKF, genera una deriva en la estimacion de estos
angulos,
como consecuencia de la falta de una referencia externa. En las gr
aficas anteriormente
mostradas se pudo observar este comportamiento, y se comento que era consecuencia
de una mala correccion del bias propio de los giroscopos. Si bien esto es verdad, hay
que remarcar que tambien es consecuencia de la falta de referencia externa al sistema
(medida que proporcionan los magnet
ometros). Para intentar aislar una u
nica fuente de
inexactitudes en las medidas, se modifico el driver de la IMU para obtener las medidas
propias al dispositivo ya filtradas, es decir, a traves de un algoritmo interno se cancela
el ruido de los aceler
ometros as como el bias de los giroscopos. Como caba esperar, la
estimacion vuelve a presentar la deriva, lo que refuerza el uso de estos elementos de medida
en la obtencion de los
angulos de posici
on. Surge por tanto un compromiso, puesto que
se han de usar los magnet
ometros para realizar una estimaci
on adecuada pero, al mismo
tiempo, no se pueden usar porque al no estar calibrados, su medida no es representativa y
generar
a errores en la estimacion a no ser que sean calibrados adecuadamente. Ante esta
situacion existen dos soluciones, una parcial o de tipo parche y otra absoluta y por tanto
mejor. La primera de ellas consisten en asimilar la deriva a un bias introducido por el
propio filtro y que, por tanto, puede ser eliminado a traves de un compensador de bias.
Para tal fin se puede hacer uso del bloque dise
nado anteriormente, el cual lo eliminaba de la
medida de los giroscopos. De esta forma se consigue eliminar esta desviacion, pero tambien
se retrasa la obtencion de los
angulos, correctamente estimados, y por tanto habra que
evaluar su efecto en el control. La segunda opcion, y mas adecuada, consiste en calibrar los
elementos de medida. Esta solucion, un tanto obvia, es m
as compleja de lo que realmente
parece pues o bien se encuentra un software que sea capaz de realizar tal tarea en un
dispositivo como el que se usa y con las condiciones que se presentan (hechos que reducen
la lista de posibilidades), o bien se programa uno propio, con la dificultad que esto conlleva.
Tras realizar una extensiva b
usqueda de opciones en la red se ha dado con las llamadas
br
ujulas virtuales, en esencia un software que simula una br
ujula a la cual no le afecta
ninguna perturbacion magnetica (pues se trata de un c
odigo), las cuales pueden servir
para el calibrado de los magnet
ometros. En la actualidad existen algunos programas que
174
Ensayos
175
6.2.2.
Ensayos
Filtro de Savitzky-Golay
Ruido en la referencia
Referencias filtradas
1510
1500
phi
theta
psi
altura
phi
theta
psi
altura
1490
1500
1480
1470
1490
1460
1480
1450
1440
1470
1430
1420
1460
1410
1450
0.05
0.1
0.15
0.2
Tiempo (s)
0.25
0.3
0.35
0.4
1400
0.05
0.1
0.15
0.2
Tiempo (s)
0.25
0.3
0.35
0.4
176
Ensayos
30
30
Original
Filtrado
20
20
10
10
ngulo()
Velocidad angular(rad/s)
Original
Filtrado
10
10
20
20
30
0.05
0.1
0.15
0.2
Tiempo(s)
0.25
0.3
0.35
30
0.4
0.05
0.1
0.15
0.2
Tiempo(s)
0.25
0.3
0.35
0.4
Referencia de altura
30
1.5
Original
Filtrado
Original
Filtrado
20
Altura (m)
Velocidad angular(rad/s)
1
10
0.5
10
0
20
30
0.05
0.1
0.15
0.2
Tiempo(s)
0.25
0.3
0.35
0.5
0.4
0.05
0.1
0.15
0.2
Tiempo(s)
0.25
0.3
0.35
0.4
Figura 6.55: Se
nales de referencia con y sin filtrado
Este filtro tambien se implanto para filtrar tantos los picos como el ruido asociado a la
medida de la tensi
on de la batera que se comento en la seccion 5.1.4. De nuevo el hecho
de que la ganancia estatica no sea unitaria no supone un gran problema por la presencia
de otro reprocesado. En la grafica 6.56 se muestran las se
nal sin filtrado (imagen de la
izquierda) y la filtrada (imagen de la derecha). Como era de esperar el filtro limpia la
medida y suaviza los saltos de tensi
on. Con estas graficas se demuestra tambien que se
generan picos decrecientes de tensi
on para poder realizar cambios bruscos en la velocidad
de las helices.
Batera filtrada
8
7.8
7.8
7.7
7.6
7.6
7.4
7.5
7.2
Voltios (V)
Voltios (V)
7.4
7.3
6.8
7.2
6.6
7.1
6.4
6.2
6.9
0.1
0.2
0.3
0.4
0.5
0.6
0.7
Tiempo (s)
0.1
0.2
0.3
0.4
Tiempo (s)
177
0.5
0.6
0.7
6.3.
Ensayos
Finalmente, a fin de dotar un mayor contenido a este captulo, se han realizado unos
ensayos sobre el dispositivo fsico en los cuales se han usado y evaluado los algoritmos de
control que se dise
naron anteriormente. Sin embargo, de los tres algoritmos principales que
se estudiaron a nivel simulaci
on, s
olo se han ensayado el controlador PID y el controlador
LQ con y sin accion integral. De esta forma se pretende evaluar su validez como sistema
de control para el dispositivo.
Las primeras gr
aficas que se presentan describen las variaciones que sufren las se
nales
de mando u
nicamente por la presencia de ruido que incorporan las se
nales de referencia,
haciendo uso de un control LQ. Realmente, el uso de este control no es esencial sino que
se pretende hacer notar que el ruido que incorporan estas medidas, a
un habiendo sido
filtradas anteriormente, produce un efecto notable como muestra la figura 6.57.
U1
U2
200
200
Referencia simulada
Referencia real
196
196
194
194
192
192
190
188
190
188
186
186
184
184
182
180
Referencia simulada
Referencia real
198
Tensin(V)
Tensin(V)
198
182
0
0.05
0.1
0.15
0.2
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
180
0.5
0.05
0.1
0.15
0.2
U3
0.35
0.4
0.45
0.5
200
Referencia simulada
Referencia real
198
Referencia simulada
Referencia real
198
196
196
194
194
192
192
Tensin(V)
Tensin(V)
0.3
U4
200
190
188
190
188
186
186
184
184
182
180
0.25
Tiempo(s)
182
0
0.05
0.1
0.15
0.2
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
180
0.5
0.05
0.1
0.15
0.2
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
0.5
Ensayos
Mandos U1 y U2
260
U1
U2
250
240
Tensin(PWM)
230
220
210
200
190
180
170
160
150
0.05
0.1
0.15
Tiempo(s)
Mandos U3, U4
260
U3
U4
250
240
Tensin(PWM)
230
220
210
200
190
180
170
160
150
0.05
0.1
0.15
Tiempo(s)
Figura 6.58: Mandos aplicados sobre el dispositivo en lazo abierto con el controlador PID.
En esta figura se puede observar un comportamiento que, a priori, puede parecer
erroneo y que, sin embargo, es correcto. En ella, el mando aumenta con el tiempo (o disminuye dependiendo de que motor sea) hasta alcanzar el valor de saturacion, valor en el
cual se mantiene. Esta tendencia es consecuencia de la accion integral incluida en el controlador, la cual integrar
a el error existente el cual, como el sistema esta en lazo abierto,
no sera cancelado por lo que se seguir
a integrando el error, en teora hasta el infinito.
Sin embargo, dada la presencia de las saturaciones, en vez de integrar hasta el infinito
integrar
a hasta los valores de saturacion. La conclusion obtenida a partir de esta gr
afica es
tremendamente importante, y es que la accion integral de cualquier control que se use s
olo
debe activarse cuando el sistema este en lazo cerrado. Esto quiere decir que la m
aquina
de estados debe de ser capaz de gestionarlo, de forma que la accion integral s
olo se active
cuando los motores esten armados y listos para ser regulados. Otra conclusion que se ha
de obtener de esta grafica esta relacionada con el pico que esta presenta a los 0.1s. Entorno
a los 0.05s, se modifico la posicion del dispositivo, sacandolo de su posici
on de equilibrio,
por lo que el control debera responder variando su se
nal de mando. Sin embargo la respuesta no se hizo notar hasta t=0.1s. Esto se debe al efecto del wind-up, efecto que es
consecuencia de la acumulacion del error en la integral, como se describa anteriormente.
Esto quiere decir que, apesar de que se ha producido una variaci
on en la posicion del
dispositivo, la integral a
un incorpora parte del error acumulado anteriormente, por lo que
179
Ensayos
Mandos U1 y U2
260
U1
U2
250
240
Tensin(PWM)
230
220
210
200
190
180
170
160
150
0.05
0.1
0.15
Tiempo(s)
0.2
0.25
0.3
Mandos U3, U4
260
U3
U4
250
240
Tensin(PWM)
230
220
210
200
190
180
170
160
150
0.05
0.1
0.15
Tiempo(s)
0.2
0.25
0.3
Ensayos
ciona se
nales de fuerza desacopladas las cuales, a traves de diferentes operaciones,
se transforma en se
nales de tensi
on, pero acopladas. Esto quiere decir que la logica
del mecanismo no solo tiene que detectar la saturacion en tensi
on, sino que tiene
que descubrir, a traves de una serie de c
alculos, cual de los cuatro motores debe
modificar para que cuando se acoplen, no se sature la se
nal correspondiente. Esta
tarea es bastante compleja y puede dar lugar a errores. La soluci
on consiste en usar
un controlador incremental, de forma que sea m
as facil gestionar el anti-windup.
A pesar de las soluciones que se han presentado anteriormente, no se ha procedido a
su modificacion si no que se ha optado por implementarlas en el regulador LQ. La razon
viene dada por las se
nales de mando que se obtuvieron en las simulaciones de este control.
Dado que el principal problema que presenta el control PID es que requiere se
nales de
mando demasiado grandes, parece sensato recurrir al controlador que permite regular la
planta con la se
nal de mando
optima (definicion de un control LQ).
La figura 6.60 muestra la se
nal de mando en lazo abierto para un control LQ sin accion
integral.
Mandos U1 y U3
260
U1
U3
240
Tensin(PWM)
220
200
180
160
140
120
0.1
0.2
0.3
0.4
0.5
Tiempo(s)
0.6
0.7
0.8
0.9
Mandos U2, U4
260
U2
U4
240
Tensin(PWM)
220
200
180
160
140
120
0.1
0.2
0.3
0.4
0.5
Tiempo(s)
0.6
0.7
0.8
0.9
Ensayos
Mandos U1, U3
260
Phi
Theta
240
Tensin(PWM)
220
200
180
160
140
120
0.05
0.1
0.15
0.2
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
0.5
Mandos U2, U4
260
U2
U4
240
Tensin(PWM)
220
200
180
160
140
120
0.05
0.1
0.15
0.2
0.25
Tiempo(s)
0.3
0.35
0.4
0.45
0.5
Ensayos
183
Captulo 7
Conclusiones
Este captulo recoge las conclusiones de proyecto, donde se sintetizan las tareas realizadas destacando lo mas importante de cada una de ellas. De esta forma se pretende
resaltar los contenidos, parametros y resultados m
as importantes obtenidos durante el estudio realizado facilitando el entendimiento al lector y facilitando futuras investigaciones
en este campo.
A continuacion se muestra un esquema representando las tareas realizadas.
Conclusiones
7.1.
El primer grupo representado en el esquema 7.1 hace referencia a los estudios mecanicos realizados para el sistema, y que se describieron en profundidad en el captulo 3. La
presencia de este captulo es muy importante para el desarrollo del proyecto, pues permite
obtener los parametros mecanicos que definen el comportamiento del dispositivo y que son
utilizados en el modelado matematico y, consecuentemente, en el controlador. As pues, se
realiz
o un modelado CAD del dispositivo lo cual permitio obtener los parametros mecanicos asociados a la geometra del dispositivo, as como obtener una representaci
on grafica
del conjunto, informacion que puede ser utilizada en otros proyectos relacionados con cuadricopteros. En este captulo se obtuvieron tambien los parametros asociados a la din
amica
de los motores, recogidos a traves de los ensayos realizados con el banco de ensayos. Los
valores de los parametros obtenidos se han agrupado en la tabla 7.1 para facilitar al lector
la b
usqueda de los mismos.
Masa
Volumen
Ixx
Iyy
Izz
Kv
Rm
(Kg)
(mm3 )
(Kgm2 )
(Kgm2 )
(Kgm2 )
(rpm/v)
()
Ns )
( rad
ms )
(N
rad
0.2722
94059.7154
7,83 104
7,85 104
1,401 103
2900
0.6
5.44e-7
7.32e-9
Conclusiones
Conclusiones
traves de la simulaci
on pero al existir ruido, conviene calibrarlos en base a ensayo.
Como la nave es simetrica respecto del centro de la estructura, el control del otro
eje sera el mismo permitiendo dise
nar el control de los
angulos de alabeo y cabeceo.
Posteriormente, en la secci
on 4.3.1 se obtuvieron las funciones de transferencia asociadas a cada modelo, de forma que se puedan calcular los parametros que definen los distintos
controles en base a estos modelos. Dichas funciones de transferencia se han recogido en la
siguiente tabla.
Angulos
de Euler
P (s)
P (s)
P (s)
L
Ix
L
Iy
1
Iz
s(sK2 )
s(sK3 )
Velocidades
s(sK4 )
Altura
Pz (s) =
1
s( s+1)
con
PVx (s)
PVy (s)
PVz (s)
1
s
1
s
1
s
P
endulo
=
1
Kp
P (s) =
b
Iy +mh2
2
s mgh 2
Iy +mh
50
0.7772
-0.0226
-0.0862
50
-0.0226
0.6491
0.003
50
-0.0862
0.003
0.4048
Conclusiones
Control P
Control PD
Variable
Ti
Variable
Td
Vx
0.75
0.4939
0,4
Vy
0.75
0.5748
0,4
0,7
0,9524
0.898
2,97
0.5051
-0.0251
0,4
Kvz = 2
Ti
Td
19,85
0,1356
0.0185
0.8
19,9
0,1356
0.0185
0.5
3,93
0,1356
0.0185
0.05
Polos finales
Ki
[0,9 0,08j]
0.753
[24.4589,0.3472]
1050
[0,9 0,08j]
0.753
[29.5341,3.4481]
1050
[0,9 0,08j]
0.753
[5.7941,0.0683]
50
Control LQ
Variable
,
,
,
Polos finales
[617, 6,74]
[16.7291,2.5288]
[616, 6,74]
[16.7529,2.5325]
[1,06 1,06]
0.708
[0.0032,0.003]
Polos finales
Ki
[179.2775,2.0863]
-1.8879
[149.39,2.0889]
-1.8894
[57.37,0.7]
-0.725
Conclusiones
Finalmente, se han recogido en la tabla 7.6 los valores asociados al regulador para
el control del sistema modelado como un pendulo invertido. N
otese que este controlador
no usa los parametros mecanicos de la tabla 7.1, pues estos se ven modificados dada la
presencia de la moto en el conjunto. Estos valores se pueden obtener del proyecto realizado
por Jose Antonio Fernandez en el cual se analiza en mayor profundidad.
Variable
Td
0,7
0,5
-2.8654
0,0113
Conclusiones
De igual manera se han incluido las tablas 7.7 y 7.8 las cuales muestran la relaci
on
entre cada canal y la variable real que describe, as como los pines de la tarjeta a los cuales
han sido conectados.
CH1
Empuje
CH2
Gui
nada
CH3
Cabeceo
CH4
Alabeo
CH5
CH6
Interruptor
Interruptor
primario
secundario
GND
Mi
TRC
Jump
Tierra
Motores
Tierra RC
Jumper
CH1
CH2
CH3
CH4
CH5
CH6
GND
M1
M2
M3
M4
TRC
Jump
A15
A13
A12
A11
A10
A9
A8
GND
12
Conclusiones
La u
ltima de las tareas que se han incluido en este grupo es la que hace referencia
al dise
no de los drivers de comunicacion entre los elementos perifericos y la placa microcontroladora. Es importante remarcar que estos drivers no se han podido obtener de
fuentes externas porque, dada las caractersticas del proyecto, se ha buscado integrar todo
el codigo en un entorno de Matlab Simulink. La elaboracion de los drivers se estudio en
profundidad a lo largo de la secci
on 5.1, donde se estudiaron cuatro drivers. A continuacion
se describe brevemente la funci
on de cada uno.
Driver para la IMU: Con este driver se pretende establecer la comunicaci
on entre la
IMU y el microcontrolador, es decir, que las medidas obtenidas en la unidad puedan
ser usadas en el control.
Driver para el transmisor-receptor RC: Este c
odigo es el que establece la comunicacion entre el receptor RC y el microcontrolador. El receptor es el encargado de
transmitir las referencias al sistema de control que, dependiendo de si es el control
para el modelo completo o simplificado, podran ser valores de
angulos o de velocidades lineales.
Driver para los motores: El driver para los motores es en esencia un generador de
pulsos de amplitud modulada (PWM) que permite variar la tensi
on aplicada al motor
a partir de una se
nal generada por el microcontrolador.
Driver para el lector de la tension de la bateria: Este driver permite registrar las
medidas que suministra la placa encargada de registrar la tensi
on de la batera.
Finalmente, el u
ltimo grupo hace referencia a los complementos realizados para el proyecto. Se han denominado como tal por no ser estrictamente necesarios para el desarrollo
del mismo, sino que permiten ayudar a visualizar o a ordenar los contenidos de que se
disponen. As pues se ha dise
nado un simulador de vuelo en Matlab que permite obtener
una representacion gr
afica de la posici
on de la nave en vez de la clasica grafica. El codigo
realizado se han incluido en el Anexo B de la memoria, en el cual se describe detalladamente su funcionamiento. Por otro lado, dado que este proyecto esta orientado a la educacion,
se ha considerado interesante crear una pagina web que incluya, de forma ordenada, todos
los contenidos realizados. De esta forma se pretende facilitar el acceso a la informacion en
futuros trabajos en este campo. El c
odigo programado se ha incluido en el Anexo C de
esta memoria.
7.2.
En esta secci
on se comentan los resultados obtenidos evaluando su validez de cara al
cumplimiento de los objetivos establecidos en la introducci
on del proyecto. As pues se
proceder
a a analizar cada una de las partes principales que componen este estudio de
forma que estas conclusiones queden de la forma m
as organizada posible.
192
7.2.1.
Conclusiones
Estudios mec
anicos
Los estudios mecanicos realizados sobre el sistema son bastante precisos y los valores de
los parametros que se han obtenido de ellos son cualitativamente exactos. Especialmente
los parametros de los motores, pues el banco de ensayos dise
nado permite obtenerlos con
una gran precision.
En cuanto a los parametros de la estructura tambien se suponen lo suficientemente
precisos como para asegurar un buen parecido de los modelos con la realidad. Sin embargo
s hay que notar que la estimacion de las densidades de las piezas, a pesar de haber sido
adecuadamente realizada, puede contener errores por lo que los valores de los momentos
de inercia del conjunto pueden contenerlo tambien. Sin embargo, estos errores pueden ser
asumidos como imprecisiones de los elementos de medida y, en principio, no debera ser
excesivamente grandes, por lo que el algoritmo de control sera capaz de compensarlo.
Finalmente, teniendo en cuentas las consideraciones aerodinamicas realizadas, el uso
de este dispositivo s
olo esta orientado a vuelos internos. Esto se debe a que no se han
incluido las ecuaciones que describen los efectos presentes en vuelo externo (presencia de
corrientes de aire, derivas etc.) en la ecuaciones del modelo.
7.2.2.
Regulaci
on del sistema
Conclusiones
el adecuado. Si se analizan las ecuaciones utilizadas se vera que a ese nivel s describen el
comportamiento buscado, siempre y cuando se restrinja su uso a un vuelo interno, por lo
que la u
nica fuente de inexactitud pueden venir dada por los parametros mecanicos usados.
El analisis del estimador de estados es bastante importante, incluso se podra clasificar
como crtico. Existen altas probabilidades de que el hecho de no poder regular la estabilidad del dispositivo sea consecuencia de una mala estimacion de
angulos de Euler. Esto
se debe, principalmente, a que el filtro de Kalman requiere de una referencia externa para
generar una estimacion totalmente precisa. En este caso, dada la presencia de materiales ferromagneticos en el entorno y la influencia de estos sobre los magnetometros, se ha
prescindido de su uso. La consecuencia es que aparece una deriva o bias en los
angulos
estimados y, consiguientemente, se introduce un error importante al sistema. En teora, la
presencia de una accion integral en el control podra cancelar esta perturbacion en carga
que se aplica sobre el dispositivo, sin embargo, sera m
as recomendable eliminarla. As pues
conviene realizar una labor de calibrado de los magnet
ometros para que puedan funcionar
en el entorno pertinente. La calibracion se puede realizar a traves una br
ujula virtual, las
cuales no presenta desviaciones con respecto al norte magnetico teorico. A pesar de no
haber hecho uso de estos elementos de medida, el filtro de Kalman esta preparado para
a
nadir la accion de estos sensores. Como se comento en la secci
on 2.6, este filtro de Kalman
es un filtro multiplicativo, es decir, que puede funcionar u
nicamente (con las limitaciones
que conlleva) con las medidas de giroscopos y aceler
ometros, pero se le puede a
nadir mas
elementos de medida (obviamente con cierto sentido) de forma que se mejore la estimacion. Por tanto, de buscar solucionar este problema, solamente habra que realizar unas
ligeras modificaciones, explicadas en la seccion 2.6, en el codigo del filtro para contar con
la informacion que estos sensores recogen.
Otro de los problemas que pueden darse en esta estimacion es que la velocidad a la cual
se generan los
angulos de Euler no sea la adecuada. Es importante que estos esten disponibles para su uso en el regulador, pues de lo contrario el controlador realizara acciones
de mando incorrectas, basadas en una mala observacion, es decir, de las medidas. Ademas
hay que tener en cuenta las vibraciones que generan los motores y que se transmiten a
traves de la estructura, afectando gravemente a los elementos de medida. Si se realiza un
estimador muy sensible, se podran estimar los
angulos de posicion m
as r
apidamente, pero
a su vez los
angulos incluiran un alto nivel de ruido. Por tanto aparece un compromiso
entre velocidad de estimacion y precision de la medida que debe solucionarse. La soluci
on
puede venir dada por la instalacion de dispositivos que absorban las vibraciones, de forma
que se asle la IMU, permitiendo hacer m
as sensible al filtro. Sin embargo, tambien puede
lograrse, al menos teoricamente, con una adecuada elecci
on de las matrices de covarianza.
As pues el la obtencion de las estas matrices, tales que permitan obtener los
angulos de
posicion con la precision y velocidad suficiente, es crtica. Uno de los metodos mas comunes, a pesar de no ser muy cientfico, consiste en utilizar el metodo de prueba y error.
194
Conclusiones
Sin embargo, este metodo no se puede utilizar en este caso pues requiere de una buena
monitorizaci
on de los resultados, cosa que no se da con los dispositivos disponibles. Como
se mencion
o anteriormente en el captulo 6.2.1, la evaluaci
on de la velocidad de estimacion
es compleja, puesto que los valores mostrados en simulaci
on, entendiendo simulacion como
el ensayo en el dispositivo fsico pero estando este en modo externo, no son siempre en
tiempo real, ya que la informacion se retrasa por distintos motivos (transmisi
on de datos
por el cable, procesado de estos en la tarjeta de adquisici
on de datos del PC, representacion grafica del proceso en los osciloscopios de Simulink...). As pues, para obtener un dato
real, o lo m
as parecido posible a la realidad, conviene instalar un sistema de telemetra
que permita monitorizar los valores caractersticos que definen el comportamiento de la
nave, evitando el uso del modo externo. Como cabe esperar, la inclusion de este nuevo
sistema de comunicacion aumenta la complejidad del sistema, es importante remarcar que
con el codigo dise
nado el microprocesador est
a casi al lmite de su capacidad, por lo que
puede que no sea posible a
nadirlo (habra que adquirir otro microcontrolador con mayor
capacidad de c
alculo); y ademas requiere de la creaci
on de un driver de comunicacion entre
el sistema telemetrico y el PC.
Como consecuencia de estas razones recien explicadas, se han llegado a la conclusion de
que este es el punto donde falla el sistema y que por tanto debe ser modificado.
Las conclusiones que se pueden obtener con respecto al funcionamiento de los controladores estan altamente influencias por la estimacion de los
angulos de posici
on que
estos reciben. As pues, si estas estimaciones son incorrectas, la informacion que se puede
sacar acerca del funcionamiento del sistema no es especialmente valiosa, pues no refleja
la realidad. Sin embargo, si se parte de la hipotesis de que la estimacion s se realiza de
forma adecuada, es decir, que el error se produce en el propio controlador, s se pueden
extraer conclusiones interesantes. Como se ha podido observar en la secci
on 6.3, el controlador que mejor resultados ha dado es el que usa una realimentacion de estados con
accion integral obtenido por el metodo LQ. Como consecuencia de la accion integral, el
control se debe modificar a un control incremental con mecanismo anti-windup y con una
logica tal que desactive la accion integral hasta que el sistema este en lazo cerrado. Este
controlador requiere de acciones de mando relativamente bajas, al menos en simulacion,
lo que permite alcanzar respuestas mas rapidas que con los demas controles. Ademas, la
estructura incremental facilita la l
ogica del mecanismo anti-windup al poder detectar la
saturacion a la salida del acumulador, y no cuando la se
nal se encuentra convertida a
valores de tension (con su consiguiente reconversion y desacoplo para la cancelacion de
la accion integral pertinente). Asimismo, permite limitar los incrementos en el mando,
evitando controles binarios, es decir, controles que oscilan entre los valores maximos y
mnimos de saturacion. Es muy probable que la razon del funcionamiento incorrecto del
sistema sea consecuencia de la conversion de la se
nal, es decir, el cambio de fuerzas acopladas a tensi
on en cada motor. Esa cadena de operaciones matematicas puede introducir
195
Conclusiones
errores en el sistema ademas de dificultar la identificacion de los mismos, pues con tal
cantidad de modificaciones es difcil seguirlos. Ademas, para acoplar las fuerzas que salen
del mando es necesario hacer uso de las medidas de los giroscopos, hecho particularmente
peligroso teniendo en cuenta el alto nivel de ruido que contienen, ya que el ruido entra
directamente sobre la se
nal de mando, pudiendo hacer el sistema inestable. As pues, la
mejor opcion que se presenta para futuros trabajos en la materia consisten en simplificar
la cadena de conversion, llegando incluso a eliminarla si fuera posible. De conseguirse, se
puede hacer uso de la misma estructura de control que se ha usado hasta el momento,
pues esta preparado para realizar tales modificaciones. La eliminacion de la cadena de
transformaciones supondra una modificacion en el modelo del sistema, modelo que se usa
para la obtenci
on de la matriz de realimentaci
on. As pues, solo se debera modificar el
diagrama de bloques del modelo y ejecutar el archivo de inicializacion que acompa
na al
controlador para obtener los nuevos valores de la matriz de realimentaci
on.
Finalmente, las m
aquinas de estados han demostrado funcionar adecuadamente tanto
en simulacion como en el sistema fsico, por lo que se puede asegurar que estan listas para
su implementacion.
A modo de sntesis, se ha realizado la siguiente tabla que resume los puntos tratados
anteriormente.
Parte
Resultados
Resultados
del
en
en el
proyecto
simulaci
on
sistema real
Comentarios
Par
ametros
mec
anicos
Modelado
S.Completo
Modelado
S.Simplificado
Modelado
Pendulo
Estimador
Velocidad de estimaci
on inadecuada.
de
Falta de magnet
ometros.
Estados
Regulador
S.Completo
Regulador
Efecto windup crtico.
S.Simp
PID sin anti-Winup
Regulador
Control binario.
S.Simp
PID con anti-Winup
196
Conclusiones
Parte
Resultados
del
en
Resultados
en el
proyecto
simulaci
on
sistema real
Comentarios
Regulador
S.Simp
Realmientaci
on Est.
Regulador
S.Simp
Control LQ.
Regulador
Fallo en el Anti-windup.
S.Simp
Control LQI.
Regulador
S.Simp
Control binario.
LQI incremental.
M
aquina de
estados
Simulaci
on.
M
aquina de
estados
Dispositivo real.
7.2.3.
Implementaci
on
A diferencia de los resultados obtenidos de cara a la regulacion del sistema, los obtenidos de cara a la implementacion son muy favorables. Los driver blocks programados
realizan su funci
on a la perfeccion permitiendo su uso para futuros trabajos en este campo. Por otro lado el montaje del dispositivo tambien arroja resultados positivos, ya que
ning
un elemento ha presentado ninguna mal funci
on o defecto. De igual manera, la placa
que contiene el divisor realiza su funci
on perfectamente permitiendo registrar la tensi
on de
la batera en todo momento. As pues se puede concluir que este grupo de tareas cumplen
su funci
on a la perfeccion y por tanto no hay m
as puntos que resaltar. Como se realiz
o anteriormente, se han recogido los resultados en una tabla para condensar el contenido de
una forma m
as grafica.
Parte
Resultados
Resultados
del
en
en el
proyecto
simulaci
on
sistema real
Driver
IMU.
Driver
Transmior/Receptor.
197
Comentarios
Conclusiones
Parte
Resultados
Resultados
del
en
en el
proyecto
simulaci
on
sistema real
Driver
Comentarios
Motores.
Driver
Batera.
Montaje del
cuadric
optero.
Montaje de
la placa
con el divisor.
Conexionado
de los elementos.
7.2.4.
Estudio en conjunto
A modo de conclusion general del proyecto se puede decir que no se ha podido dise
nar
un controlador capaz de regular el comportamiento del cuadricoptero. Por lo tanto, los
objetivos fijados al principio de este documento no se han podido cumplir. Sin embargo,
evaluando el volumen de contenidos realizados, s se ha preparado el terreno para futuras
investigaciones en este campo. No solo se ha elaborado todo el paquete de drivers y se ha
dado un soporte fsico al sistema, sino que se ha generado tambien un conjunto de archivos
con el estimador, los controladores etc a partir de los cuales retomar la investigacion.
Ademas, se han elaborado una serie de documentos, como esta memoria, que describe en
detalle la labor realizada de forma que se facilite, en la mayor medida de lo posible, los
futuros trabajos en este sector. Se recuerda al lector que a lo largo de este documento
se han ido explicando las posibles causas por las cuales el sistema no se comporta como
se hubiera deseado as como posibles soluciones para estos problemas planteados. A fin
de agrupar todas las posibles lneas de investigacion en este campo se ha introducido el
captulo 8, donde se sintetiza toda la informacion expuesta a lo largo del documento de
cara a futuros desarrollos en este campo.
7.3.
Conclusiones
No se debe abrir la proteccion de las bateras LiPO, pues arden cuando estas se
ponen en contacto con el aire.
Para cargar las bateras LiPo se debe conectar el cable de tensi
on (rojo y negro)
y, ademas, el cable que sirve para equilibrar las cargas. Despues se ha de fijar la
intensidad de carga, 0.95A y el tipo de batera que se va a cargar.
Las bateras que se usan en la emisor son del tipo LiFe, por lo que se ha de seleccionar
el tipo de batera en el cargador.
Las bateras LiFe de que se disponen deben ser cargadas a 1.5A, por lo que no se
pueden usar los enchufes de los laboratorios ya que los transformadores existentes
solo admiten 1A. Deberan cargarse con las fuentes de alimentaci
on de corriente
continua que dispone la universidad.
Si por alg
un motivo se quiere dejar de cargar la batera se ha de desconectar primeramente el cargador, pues de lo contrario saltar
a un arco entre la batera y el
dispositivo.
Hay que asegurarse de que los aprisonadores usados para fijar las helices estan bien
fijos al eje de cada rotor. De lo contrario, a un elevando regimen de revoluciones,
pueden desprenderse pudiendo ocasionar da
nos humanos.
Ha de respetarse siempre y en todo momento la polaridad de la batera. Si se cambia
la polaridad al conectarla a la nave se quemar
an los cuatro ESC.
Si se esta realizando ensayos con el conjunto moto-cuadricoptero se ha de comprobar
que las abrazaderas, en forma de alambre, mantienen el conjunto unido. Si no ocurre
as, los motores tienen fuerza suficiente para separar ambos elementos, causado da
nos
sobre el cuadric
optero.
El jumper que viene originalmente con la placa ha de ser quitado de los pines para
habilitar la alimentaci
on externa.
Existe la posibilidad de que, si se usa una tarjeta controladora nueva, Simulink de un
error al volcar el c
odigo sobre esta. Esto se debe a que hay que cargar inicialmente
un codigo de Arduino que compatibiliza el uso de Simulink en el microcontrolador.
El codigo mencionado se encuentra en el anexo D.
El diagrama de bloques que engloba todo el algoritmo de control del sistema usa
la mayor parte de la capacidad de calculo de procesador. Si se a
naden mas bloques
puede darse el caso de que la simulacion se quede bloqueada en un instante de tiempo.
De ocurrir, desconecte el cable USB y reduzca el n
umero de bloques del sistema.
El arranque de los motores es relativamente elaborado. Se recomienda acudir al
manual de usuario (Documento II) realizado para facilitar la labor al lector.
199
Captulo 8
Futuras mejoras
Este u
ltimo captulo recoge las lneas de investigacion que, a juicio propio, pueden dar
lugar a resultados positivos en relacion a la regulacion del cuadricoptero. La mayor parte
de ellas ya se han mencionado en secciones anteriores, por lo que este captulo es mas un
sntesis de contenidos entorno a la idea de mejorar el trabajo realizado. Consecuentemente,
los puntos de partida as como algunas breves ideas de como proceder se enuncian a
continuacion.
1. Se ha de comprobar que las densidades de las piezas utilizadas en el modelo CAD
Futuras mejoras
202
Bibliografa
[1] Andrew Nelson Eric Klavins, Justin Palm and Andy Bradford. Quad-rotor uav project. University of Washington, (1):138, June 2011.
[2] http://www.allstar.fiu.edu/aero/images/pic5 1.gif.
[3] C BALAS and Dr J.F. Whidborne. Modelling and linear control of a quadrotor.
CRANFIELD UNIVERSITY, (1):195, September 2007.
[4] Sai Kishan R. C. S. Suraj G. Ramesh Srikanth Govindarajan, Tarun Agarwal and
Veena Devi. Design of multicopter test bench. International Journal of Modeling and
Optimization, Vol.3, No.3, June 2013.
[5] Steven L. Waslander Claire J. Tomlin Haomiao Huang, Gabriel M. Homann. Stanford university, stanford, california, usa. Aerodynamics and control of autonomous
quadrotor helicopters in aggressive maneuvering.
[6] Timothy W. McLain James K. Hall, Nathan B. Knoebel. Quaternion attitude estimation for miniature air vehicles using a multiplicative extended kalman filter. Brigham
Young University, Provo, UT 84602.
[7] Bertulfo Giraldo Osorio. Observador de estado mediante modos deslizantes de alto orden para procesos no lineales. Universidad Nacional de Colombia, Manizales,
Colombia, 2012.
[8] Dr. Ganesh Rajagopalan and Dong-Bum Kim. Froudes momentum theory: (actuator
disk theory). V/STOL, (1):19, Fall 2002.
[9] Peter Corke Paul Pounds, Robert Mahony. Modelling and control of a quad-rotor
robot. Australian National University, (3):110, 2006.
[10] J.Gresham P. Corke P. Pounds, R.Mahony and J. Roberts. Towards dynamicallyfavourable quad-rotor aerial robots. Australasian Conference on Robits and Automation, (1), 2004.
[11] Andrew Gibiansky. Quadcopter dynamics, simulations and control. (2):118, November 2012.
203
BIBLIOGRAFIA
and
theory
of
flight.
Langley
flying
school.
www.langleyflyingschool.com, 2013.
[16] W. Johnson. Helicopter theory. Princeton University Press, Princeton, NJ, 1980.
[17] Aleksandr Kushleyev Bruce Kothmann Vijay Kumar Caitlin Powers, Daniel Mellinger. Influence of aerodynamics and proximity eects in quadrotor flight. GRASP
Laboratory, University of Pennsylvania, Philadelphia.
[18] Holger Voos. Nonlinear control of a quadrotor micro-uav using feedback-linearization.
Proceedings of the 2009 IEEE International Conference on Mechatronics. Malaga,
Spain, April 2009.
[19] Noth A. Bouabdallah, S. and R. Siegwart. Pid vs lq control techniques applied to an
indoor micro quadrotor. Swiss Federal Institute of Technology, (1), 2004.
[20] P. McKerrow. Modelling the draganflyer four rotor helicopter. IEEE International
Conference on Robotics and Automation, page 3596, April 2004.
[21] Rajnarayan D. G. Waslander S. L. Dostal D. Jang J. S. Homann, G. M. and C. J.
Tomlin. The stanford testbed of autonomous rotorcraft for multi agent control. Digital
Avionics Systems Conference, pages 12.E.4 12110., 2004.
[22] Lozano R. Castillo, P. and A. Dzul. Stabilization of a mini rotorcraft with four rotors.
IEEE Control Systems Magazine, pages 12.E.4 12110., 2005.
[23] Whidborne J.F. Cowling, I.D. and A.K. Cooke. Optimal trajectory planning and lqr.
Proc. UKACC Int. Conf. Control, (1), 2006.
[24] H Voos. Nonlinear state dependent riccati equation control of a quadrotor uav. IEEE
International Conference on Control Applications, (1), 2006.
[25] M. Chen and M. Huzmezan. A combined mbpc/2 dof ha controller for a quad rotor
uav. AIAA Atmospheric Flight Mechanics Conference, (1), 2003.
[26] Nikolas Trawny and Stergios I. Roumeliotis. Indirect kalman filter for 3d attitude
estimation. a tutorial for quaternion algebra. Technical Report Number 2005-002,
Rev. 57, University of Minnesota, March 2005.
204
BIBLIOGRAFIA
205
MODELADO Y CONTROL
DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
DOCUMENTO II
MANUAL DE USUARIO
Autor:
Directores:
Luis Sevilla
Cesareo
Fernandez
3 de junio de 2014
Captulo 1
209
210
nula, independientemente de cualquier otra variable, tanto del proceso como de las transmitidas
por el emisor.
La tension aplicada a los motores se encuentra limitada superiormente de forma que se obtenga el mnimo regimen de revoluciones posibles, es decir, se busca que las helices giren pero
sin llegar a levantar, ni a regular en tierra, el dispositivo. Generalmente, este estado se produce
cuando la palanca llega a la mitad del recorrido. Cuando se ha comprobado que todos los rotores giran adecuadamente, se activa el interruptor marcado en la figura 1.7. Este interruptor
fija la tension para el regimen de revoluciones deseado, independientemente de la palanca usada
anteriormente.
As pues, fijado ese regimen de revoluciones se vuelve a bajar la palanca usada a su mnimo valor,
como muestra la figura 1.8. Una vez realizado, el sistema se encuentra listo para activar el modo
de control, activacion que se produce devolviendo el interruptor anteriormente accionado a su
posicion original, como muestra la figura 1.9. El salto es ahora suave pues, el punto inferior de la
palanca coincide con el mnimo valor del perodo del PWM generado por el algoritmo de control.
214
La desconexion no sera inmediata, sino que tardara entorno a 3 segundos, debido al tiempo
Es importante tenerlo en cuenta de cara a paradas de emergencia pues,
de procesado de la senal.
se ha de saber que no responde de forma instantanea.
Este proceso de arranque permite cumplir con las necesidades enunciadas en la introduccion
as como usar un numero relativamente bajo de elementos.
215
MODELADO Y CONTROL
DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
DOCUMENTO III
CODIGO
FUENTE
Autor:
Directores:
Luis Sevilla
Cesareo
Fernandez
3 de junio de 2014
Indice
general
1. Modelos
221
1.1. Modelo completo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
1.2. Modelo simplificado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
1.3. Modelo de un pendulo invertido . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
2. Estimador de Estados
229
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
235
235
239
239
243
246
248
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
249
249
251
253
254
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Driver Blocks
255
5.1. Driver para la IMU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
5.2. Driver para el receptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
ccxix
Captulo 1
Modelos
En esta seccion se presenta el codigo implementado que describe el comportamiento matematico obtenido en los modelos de cada sistema.
221
Modelos
b=param(4);
% Drag Factor
d=param(5);
% Resistencia del motor en ohm
Rm=param(9);
% Constante del motor (V.s o N.m/A)
Km=param(10);
% Momento de inercia de los motores
Ir=param(11);
%% Ecuaciones de estado:
% Motor DC brushless numero i
% Km*(umiKm*wi)/Rm = Ir*dw1/dt + d*wi2
dw1=1/Ir*(Km*(um1Km*w1)/Rmd*w12);
dw2=1/Ir*(Km*(um2Km*w2)/Rmd*w22);
dw3=1/Ir*(Km*(um3Km*w3)/Rmd*w32);
dw4=1/Ir*(Km*(um4Km*w4)/Rmd*w42);
% Nuevas variables de entrada auxiliares (fuerzas y pares provocadas por los motores)
u1=b*(w12+w22+w32+w42); % Fuerza ascendente eje Z del cuerpo ()
u2=b*(w22w42); % Fuerza neta de roll (+)
u3=b*(w12w32); % Fuerza neta de pitch (+)
u4=d*(w12+w32w22w42); % Par de yaw ()
gu=w1w2+w3w4;
dX=[dw1 dw2 dw3 dw4]';
%% Ecuaciones de salida
Y = [u1,u2,u3,u4,gu];
222
Modelos
%% Par
ametros
% Longitud del brazo(m)
L=param(2);
% Tensor de inercia (Kgm2)
Ix=param(6);
Iy=param(7);
Iz=param(8);
% Inercia del rotor (Kgm2)
Ir=param(11);
%% Previos
I1= (IyIz)/Ix;
I2= (IzIx)/Iy;
I3=(IxIy)/Iz;
%% Ecuaciones de estado
dphi=phi punto+sin(phi)*tan(theta)*theta punto+cos(phi)*tan(theta)*psi punto;
dtheta=cos(phi)*theta puntosin(phi)*psi punto;
dpsi=sin(phi)/cos(theta)*theta punto+cos(phi)/cos(theta)*psi punto;
dphi punto=theta punto*psi punto*I1(Ir/Ix)*theta punto*gu+(L/Ix)*u2;
dtheta punto=phi punto*psi punto*I2+(Ir/Iy)*phi punto*gu+(L/Iy)*u3;
dpsi punto=phi punto*theta punto*I3(1/Iz)*u4;
% Vector de estado
dX=[dphi dtheta dpsi dphi punto dtheta punto dpsi punto]';
%% Ecuaciones de salida
Y = [phi theta psi];
giroscopo=[phi punto theta punto psi punto];
223
Modelos
z punto=X(3);
%% Parametros
% Masa (Kg)
m=param(1);
% gravedad (m/s2)
g=9.81;
%% Ecuaciones de estado
dx punto = (cos(phi)*sin(theta)*cos(psi)+sin(phi)*sin(psi))*u1/m;
dy punto = (cos(phi)*sin(theta)*sin(psi)sin(phi)*cos(psi))*u1/m;
dz punto = g cos(phi)*cos(theta)*u1/m;
% Vector de estado
dX=[dx punto dy punto dz punto]';
%% Ecuaciones de salida
Y = [phi theta psi];
velocidades=[x punto,y punto,z punto];
aceleraciones=[dx punto dy punto dz punto];
function Medidas
= IMU(vel,accel,ang,giro)
phi=ang(1);
theta=ang(2);
psi=ang(3);
g=9.81;
%% Ecuaciones:
R
= [cos(theta)*cos(psi) sin(phi)*sin(theta)*cos(psi)cos(phi)*sin(psi)...
cos(phi)*sin(theta)*cos(psi)+sin(phi)*sin(psi);
cos(theta)*sin(psi) sin(phi)*sin(theta)*sin(psi)+cos(phi)*cos(psi)...
cos(phi)*sin(theta)*sin(psi)sin(phi)*cos(psi);
sin(theta) sin(phi)*cos(theta) cos(phi)*cos(theta)];
%% Ecuaciones de salida
ab= R'*([0 0 g] 0*accel)';
ejeXb=R(1,:)';
Medidas = [giro' ; ab ; ejeXb] ;
224
Modelos
225
Modelos
%% Par
ametros
Ix=param(1);
Iy=param(2);
Iz=param(3);
L=param(4);
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
a3=(IxIy)/Iz;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
%% Variables de estado:
phi=x(1);
theta=x(2);
psi=x(3);
wphi=x(4);
wtheta=x(5);
wpsi=x(6);
%% Ecuaciones de estado
dphi=wphi;
dtheta=wtheta;
dpsi=wpsi;
dwphi=a1*wtheta*wpsi + b1*u2;
dwtheta=a2*wphi*wpsi + b2*u3;
dwpsi=a3*wphi*wtheta + b3*u4;
dx=[dphi,dtheta,dpsi,dwphi,dwtheta,dwpsi]';
omegas=[wphi,wtheta,wpsi]';
y = [phi,theta,psi]';
226
Modelos
function y = fcn(U1,U2,UC,wc,param)
d=param(1);
R=param(2);
% Constante del motor (V.s o N.m/A)
Kt=param(3);
a2=Kt2/d/R;
b2=Kt/d/R;
Au=U1UC;
y=((8*wc*b2)/(4*wc+2*a2))*Au;
%0.5709
227
Modelos
d=param(6);
Rm=param(7);
Km=param(8);
Ir=param(9);
m=param(10);
h=param(11);
g=param(12);
theta=x(1);
wtheta=x(2);
dtheta=wtheta;
dwtheta=(h*m*g*sin(theta)b*L*(u))/(Iy+m*h2);
dx=[dtheta,dwtheta];
y =[theta,wtheta]';
228
Captulo 2
Estimador de Estados
En esta seccion se presenta el codigo programado que constituye el filtro de Kalman.
function R= R correction(g)
k=[1.5;1.5;1.5];
%Corrige la matriz de error en las medidas R
R=[0.1,0,0;0,0.1,0;0,0,0.1];
R(1,1)=R(1,1)*(1+k(1)*(1norm(g))2);
R(2,2)=R(2,2)*(1+k(2)*(1norm(g))2);
R(3,3)=R(3,3)*(1+k(3)*(1norm(g))2);
229
Estimador de Estados
Zi=[0;0;1];
R=[e(1)2+e(2)2e(3)2e(4)2, 2*(e(2)*e(3)+e(4)*e(1)), 2*(e(2)*e(4)e(3)*e(1));...
2*(e(2)*e(3)e(4)*e(1)), e(1)2e(2)2+e(3)2e(4)2, 2 *(e(3)*e(4)+e(2)*e(1));...
2*(e(2)*e(4)+e(3)*e(1)), 2*(e(3)*e(4)e(2)*e(1)), e(1)2e(2)2e(3)2+e(4)2];
zb=R*Zi;
zb=zb/(norm(zb)+sqrt(eps));
%% Correci
on de la medida
EeA=cross((g a./(norm(g a)+sqrt(eps))),(zb));
230
Estimador de Estados
function x = x update(K,xant,ae)
%Actualiza el vector de estados
%% Descomposici
on del quaternion de altitud en componentes
e0=xant(1);
ex=xant(2);
ey=xant(3);
ez=xant(4);
%% Actualizaci
on del error de posici
on
ae sig=K*ae;
%% Descomposicion del vector del error de posici
on en componentes
aex sig=ae sig(1);
aey sig=ae sig(2);
aez sig=ae sig(3);
%% Creaci
on del quaternion del error de posci
on por componentes
delta ae0=cos(norm(ae sig)/2);
delta aex=(aex sig/(norm(ae sig)+sqrt(eps)))*sin(norm(ae sig)/2);
delta aey=(aey sig/(norm(ae sig)+sqrt(eps)))*sin(norm(ae sig)/2);
delta aez=(aez sig/(norm(ae sig)+sqrt(eps)))*sin(norm(ae sig)/2);
%% Actualizaci
on de la posici
on
e sig=[delta ae0*e0delta aex*exdelta aey*eydelta aez*ez;...
delta ae0*ex+delta aex*e0delta aey*ez+delta aez*ey;...
delta ae0*ey+delta aex*ez+delta aey*e0delta aez*ex;...
delta ae0*ezdelta aex*ey+delta aey*ex+delta aez*e0];
%% Salida
x=[e sig(1);e sig(2);e sig(3);e sig(4);ae sig(1);ae sig(2);ae sig(3)];
231
Estimador de Estados
232
Estimador de Estados
e sig=e+(ts/2)*([w0*e0wx*exwy*eywz*ez;w0*ex+wx*e0wy*ez+wz*ey;...
w0*ey+wx*ez+wy*e0wz*ex;e0*ezwx*ey+wy*ex+wz*e0]);
x1=[e sig(1);e sig(2);e sig(3);e sig(4);0;0;0];
phi=atan((2*(e0*ex+ey*ez))/(12*(ex2+ey2)));
theta=asin(2*(e0*eyez*ex));
psi=atan((2*(e0*ez+ex*ey))/(12*(ey2+ez2)));
ang=[phi,theta,psi];
233
Captulo 3
235
236
Archivo de inicializaci
on
%
clc
clear
%% Par
amentros:
s=tf('s');
% Periodo de muestreo
ts=10e3;
z=tf('z',ts);
% Gravedad (m/s2)
g=9.81;
% Motor DC brushless:
% Resistencia (ohm)
Rm=0.6;
% Constante motor DC brushless (V.s o N.m/A)
Km=35.3e3;
237
238
239
%==========================================================================
%
% Luis Sevilla Fern
andez
% 17/04/2014
Control de un cuacric
optero
%
%% Par
ametros:
ti=1;
s=tf('s');
% Periodo de muestreo
ts=1/490;
z=tf('z',ts);
% Gravedad (m/s2)
g=9.81;
% Motor DC brushless:
% Resistencia (ohm)
240
Rm=0.6;
% Constante motor DC brushless (V.s o N.m/A)
Km=60/2900/2/pi;
Kt=Km;
Kv=2900;
% Momento de inercia motor DC brushless (kg.m2)
Ir=104e8;
% Quadcopter
% Masa del quadcopter (kg)
m=0.2722;
% Distancia entre el eje de cada motor y el CDG (m)
L=0.11;
% Distancia CDG (m)
h=0.1;
% Thrust factor (N.s2)
b=5.4455e07;
% Drag Factor (N.m.s2)
d=7.3251e09;
% Momentos de inercia (kg.m2)
Ix=0.000783;
Iy=0.000785;
%Iy=5e3;
Iz=0.001401;
Ir=104e6;
%Ix=8.1e3;
%Iy=8.1e3;
%Iz=14.2e3;
% Vector de parametros
param=[m L h b d Ix Iy Iz Rm Km Ir]';
% Par
ametros
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
%% Dise
no Control PID (Ts=1/490)
ts=1/490;
Kt=50;
% Plantas:
s= tf([1,0],[1]);
Pphi=(L/Ix)/(s*(s+Kt));
Pphi ret=Pphi*exp(ts*s/2);
Ptheta=(L/Iy)/(s*(s+Kt));
241
Ptheta ret=Ptheta*exp(ts*s/2);
Ppsi=(1/Iz)/(s*(s+Kt));
Ppsi ret=Ppsi*exp(ts*s/2);
% Par
ametros del control:
margen=80;
f pi=10;
w0=50;
f=0.0001;
b pond1=0.8;
b pond2=0.5;
b pond3=0.05;
% Obtenci
on de constantes del control:
[Am1,fm1]=bode(Pphi ret,w0);
[Am2,fm2]=bode(Ptheta ret,w0);
[Am3,fm3]=bode(Ppsi ret,w0);
f1 pd=(180+fm1+f pimargen);
f2 pd=(180+fm2+f pimargen);
f3 pd=(180+fm3+f pimargen);
I=(1/tan(f pi *pi/180))/w0;
temp1= (1/f1)/(2*tan(f1 pd *pi/180));
temp2= (1/f1)/(2*tan(f2 pd *pi/180));
temp3= (1/f1)/(2*tan(f3 pd *pi/180));
D1=(temp1sqrt(temp12(1/f)))/w0;
D2=(temp2sqrt(temp22(1/f)))/w0;
D3=(temp3sqrt(temp32(1/f)))/w0;
Kp1=(1/Am1)*cos(f pi *pi/180)*sqrt((1+(f*w0*D1)2)/(1+(w0*D1)2));
Kp2=(1/Am2)*cos(f pi *pi/180)*sqrt((1+(f*w0*D2)2)/(1+(w0*D2)2));
Kp3=(1/Am3)*cos(f pi *pi/180)*sqrt((1+(f*w0*D3)2)/(1+(w0*D3)2));
mu1=1+(1f)*D1/(I);
mu2=1+(1f)*D2/(I);
mu3=1+(1f)*D3/(I);
Ti1=mu1*I;
Ti2=mu2*I;
Ti3=mu3*I;
N1=(1/(mu1*f))1;
N2=(1/(mu2*f))1;
N3=(1/(mu3*f))1;
242
Td1=(N1)/(1/(mu1*f))*D1/mu1;
Td2=(N2)/(1/(mu2*f))*D2/mu2;
Td3=(N3)/(1/(mu3*f))*D3/mu3;
K1=mu1*Kp1;
K2=mu2*Kp2;
K3=mu3*Kp3;
3.2.2. Control LQ
%==========================================================================
%
243
% 17/04/2014
Control de un cuacric
optero
%
%% Par
ametros:
ti=1;
s=tf('s');
% Periodo de muestreo
ts=1/490;
z=tf('z',ts);
% Gravedad (m/s2)
g=9.81;
% Motor DC brushless:
% Resistencia (ohm)
Rm=0.6;
% Constante motor DC brushless (V.s o N.m/A)
Km=60/2900/2/pi;
Kt=Km;
Kv=2900;
% Momento de inercia motor DC brushless (kg.m2)
Ir=104e8;
% Quadcopter
% Masa del quadcopter (kg)
m=0.2722;
% Distancia entre el eje de cada motor y el CDG (m)
L=0.11;
% Distancia CDG (m)
h=0.1;
% Thrust factor (N.s2)
b=5.4455e07;
% Drag Factor (N.m.s2)
d=7.3251e09;
% Momentos de inercia (kg.m2)
Ix=0.000783;
Iy=0.000785;
%Iy=5e3;
Iz=0.001401;
Ir=104e6;
%Ix=8.1e3;
%Iy=8.1e3;
%Iz=14.2e3;
% Vector de parametros
param=[m L h b d Ix Iy Iz Rm Km Ir]';
244
% Parametros
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
%% Dise
no Control LQR (Ts=1/490)
ts=1/490;
[A,B,C,D]=linmod('Modelo Simplificado');
Pss=ss(A,B,C,D);
Pdss=c2d(Pss,ts,'tustin');
Pd=tf(Pdss);
Pphi=Pd(1,1);
Ptheta=Pd(2,2);
Ppsi=Pd(3,3);
[Phi,Gamma,C,D]=ssdata(Pdss);
A=rank(ctrb(Pdss));
Q=[150 0 0 0 0 0 ;
0 150 0 0 0 0 ;
0 0 1e2 0 0 0 ;
0 0 0 0.01 0 0 ;
0 0 0 0 1e4 0 ;
0 0 0 0 0 1e4 ];
R=[1 0 0;
0 1 0;
0 0 1];
K=dlqr(Phi,Gamma,Q,R);
245
%% Variables
wphi=omegas(1);
wtheta=omegas(2);
wpsi=omegas(3);
%% Ecuaciones
U2=(Ix/L)*(Kt*wphiwtheta*wpsi*a1)+Up2;
U3=(Iy/L)*(Kt*wthetawphi*wpsi*a2)+Up3;
U4=(Iz)*(Kt*wpsiwphi*wtheta*a3)+Up4;
de estados
3.2.3. Control por realimentacion
%==========================================================================
%
% Luis Sevilla Fern
andez
% 17/04/2014
%
%% Par
ametros:
ti=1;
s=tf('s');
% Periodo de muestreo
ts=1/490;
z=tf('z',ts);
246
% Gravedad (m/s2)
g=9.81;
% Motor DC brushless:
% Resistencia (ohm)
Rm=0.6;
% Constante motor DC brushless (V.s o N.m/A)
Km=60/2900/2/pi;
Kv=2900;
% Momento de inercia motor DC brushless (kg.m2)
Ir=104e8;
% Quadcopter
% Masa del quadcopter (kg)
m=0.40;
% Distancia entre el eje de cada motor y el CDG (m)
L=0.11;
% Distancia CDG (m)
h=0.08;
% Thrust factor (N.s2)
b=5.4455e07;
% Drag Factor (N.m.s2)
d=7.3251e09;
% Momentos de inercia (kg.m2)
Ix=0.002173;
Iy=0.002529;
%Iy=5e3;
Iz=0.001003;
Ir=104e6;
%Ix=8.1e3;
%Iy=8.1e3;
%Iz=14.2e3;
% Vector de parametros
param=[m L h b d Ix Iy Iz Rm Km Ir]';
% Parametros
a1=(IyIz)/Ix;
a2=(IzIx)/Iy;
b1=L/Ix;
b2=L/Iy;
b3=1/Iz;
%% Dise
no Control LQR (Ts=1/490)
ts=1/490;
Kt=50;
[A,B,C,D]=linmod('Modelo Simplificado');
Pss=ss(A,B,C,D);
temp=tf(Pss);
Pphi=temp(1,1);
Pdss=c2d(Pss,ts,'tustin');
247
temp=tf(Pdss);
Pdphi=temp(1,1);
[Phi,Gamma,C,D]=ssdata(Pdss);
K=place(Phi,Gamma,[0.8+0.18i;0.80.18i;0.8+0.18i;0.80.18i;0.8+0.18i;0.80.18i]);
248
Captulo 4
general
4.1. Configuracion
249
250
4.2. PID
Figura 4.7: Diagrama de bloques del control PID para una variable
%% Dise
no Control PID (Ts=1/490)
ts=1/490;
Kt=50;
% Plantas:
s= tf([1,0],[1]);
Pphi=(L/Ix)/(s*(s+Kt));
Pphi ret=Pphi*exp(ts*s/2);
Ptheta=(L/Iy)/(s*(s+Kt));
Ptheta ret=Ptheta*exp(ts*s/2);
Ppsi=(1/Iz)/(s*(s+Kt));
Ppsi ret=Ppsi*exp(ts*s/2);
251
% Par
ametros del control:
margen=80;
f pi=10;
w0=50;
f=0.0001;
b pond1=0.8;
b pond2=0.5;
b pond3=0.05;
% Obtenci
on de constantes del control:
[Am1,fm1]=bode(Pphi ret,w0);
[Am2,fm2]=bode(Ptheta ret,w0);
[Am3,fm3]=bode(Ppsi ret,w0);
f1 pd=(180+fm1+f pimargen);
f2 pd=(180+fm2+f pimargen);
f3 pd=(180+fm3+f pimargen);
I=(1/tan(f pi *pi/180))/w0;
temp1= (1/f1)/(2*tan(f1 pd *pi/180));
temp2= (1/f1)/(2*tan(f2 pd *pi/180));
temp3= (1/f1)/(2*tan(f3 pd *pi/180));
D1=(temp1sqrt(temp12(1/f)))/w0;
D2=(temp2sqrt(temp22(1/f)))/w0;
D3=(temp3sqrt(temp32(1/f)))/w0;
Kp1=(1/Am1)*cos(f pi *pi/180)*sqrt((1+(f*w0*D1)2)/(1+(w0*D1)2));
Kp2=(1/Am2)*cos(f pi *pi/180)*sqrt((1+(f*w0*D2)2)/(1+(w0*D2)2));
Kp3=(1/Am3)*cos(f pi *pi/180)*sqrt((1+(f*w0*D3)2)/(1+(w0*D3)2));
mu1=1+(1f)*D1/(I);
mu2=1+(1f)*D2/(I);
mu3=1+(1f)*D3/(I);
Ti1=mu1*I;
Ti2=mu2*I;
Ti3=mu3*I;
N1=(1/(mu1*f))1;
N2=(1/(mu2*f))1;
N3=(1/(mu3*f))1;
Td1=(N1)/(1/(mu1*f))*D1/mu1;
Td2=(N2)/(1/(mu2*f))*D2/mu2;
Td3=(N3)/(1/(mu3*f))*D3/mu3;
K1=mu1*Kp1;
252
K2=mu2*Kp2;
K3=mu3*Kp3;
4.3. LQ
Q=diag([100,100,0.1,2.2,2.2,1e4]);
R=diag([0.1,0.1,1e4]);
K=dlqr(Pdss.A,Pdss.B,Q,R);
253
incremental
4.4. LQI en configuracion
eye(3)];
Gamma amp=[Gamma;D];
C amp=[C,zeros(3,3)];
Q=diag([50000 50000 50000 5 5 5 8 8 8]);
R=[1 0 0 ;
0 1 0 ;
0 0 1 ];
K=lqi(Pdss,Q,R);
sys r=ss(Phi ampGamma amp*K,Gamma amp,C amp,D,ts);
polos d=eig(Phi ampGamma amp*K);
polos c=log(polos d)/ts;
damp(poly(polos c))
K re=K(:,1:6);
K int=K(:,7:9);
254
Captulo 5
Driver Blocks
En este captulo se presenta el codigo programado en C++ para la establecer la comunicacion
entre el microcontrolador y la IMU y el receptor RC. Este codigo debe generarse a traves de bloques del tipo s-functions, incluyendo en cada seccion de estos bloques el codigo correspondiente.
En cada driver presentado se ha indicado con un comentario que parte del codigo debe colocarse
en cada seccion.
// En la secci
on libraries
# ifndef MATLAB MEX FILE
# ifndef ARDUINO
# define ARDUINO 100 /* only for slsp */
#include "Wire.h"
#include "I2Cdev.h"
#include "SPI.h"
#include "MPU60X0.h"
#include "HMC58X3.h"
#include "MS561101BA.h"
#include "FreeIMU.h"
#include "DebugUtils.h"
255
Driver Blocks
#include "EEPROM.h"
int raw values[11];
float angles[3];
float val[9];
// Set the default object
FreeIMU my3IMU = FreeIMU();
# endif
# endif
// En la secci
on output
/* wait until after initialization is done */
if (xD[0]==1) {
/* don't do anything for mex file generation */
# ifndef MATLAB MEX FILE
my3IMU.getRawValues(raw values);
my3IMU.getEuler (angles);
axyz raw[0]=raw values[0];
axyz raw[1]=raw values[1];
axyz raw[2]=raw values[2];
gxyz raw[0]=raw values[3];
gxyz raw[1]=raw values[4];
gxyz raw[2]=raw values[5];
mxyz raw[0]=raw values[6];
mxyz raw[1]=raw values[7];
mxyz raw[2]=raw values[8];
temp raw[0]=raw values[9];
presion raw[0]=raw values[10];
ang[2]=angles[0];
ang[1]=angles[1];
ang[0]=angles[2];
# endif
}
//En la secci
on discrete update
if (xD[0]!=1) {
/* no hace nada si es una simulaci
on */
# ifndef MATLAB MEX FILE
Wire.begin();
delay(500);
my3IMU.init(true); // the parameter enable or disable fast mode
256
Driver Blocks
delay(500);
# endif
/* initialization done */
xD[0]=1;
}
// En la secci
on libraries
# ifndef MATLAB MEX FILE
# ifndef ARDUINO
# define ARDUINO 100
// Liber
as:
# include <Arduino.h>
# include <PinChangeInt.h>
// Asignaci
on de canales
#define PIN1 A8
#define PIN2 A9
#define PIN3 A10
#define PIN4 A11
#define PIN5 A12
#define PIN6 A13
// Declaraci
on de flags
#define flag PIN1 1
#define flag PIN2 2
#define flag PIN3 3
#define flag PIN4 4
#define flag PIN5 5
#define flag PIN6 6
// Declaraci
on de variables
volatile uint8 t act flag;
volatile uint16 t PIN1 copia;
volatile uint16 t PIN2 copia;
volatile uint16 t PIN3 copia;
volatile uint16 t PIN4 copia;
257
Driver Blocks
258
Driver Blocks
{
if(digitalRead(PIN4) == HIGH)
{
PIN4 start = micros();
}
else
{
PIN4 copia = (uint16 t)(micros() PIN4 start);
act flag | = flag PIN4;
}
}
void calcPIN5()
{
// if the pin is high, its a rising edge of the signal pulse, so lets record its value
if(digitalRead(PIN5) == HIGH)
{
PIN5 start = micros();
}
else
{
PIN5 copia = (uint16 t)(micros() PIN5 start);
act flag | = flag PIN5;
}
}
void calcPIN6()
{
// if the pin is high, its a rising edge of the signal pulse, so lets record its value
if(digitalRead(PIN6) == HIGH)
{
PIN6 start = micros();
}
else
{
PIN6 copia = (uint16 t)(micros() PIN6 start);
act flag | = flag PIN6;
}
}
# endif
# endif
// En la secci
on Outputs:
/* wait until after initialization is done */
if (xD[0]==1) {
/* don't do anything for mex file generation */
# ifndef MATLAB MEX FILE
static uint8 t UpdateFlags;
if(act flag)
{
noInterrupts(); // Apaga las interrupciones
259
Driver Blocks
// Actualizaci
on del estado del flag
UpdateFlags = act flag;
if(UpdateFlags & flag PIN1)
{
ch1[0] = PIN1 copia;
}
if(UpdateFlags & flag PIN2)
{
ch2[0] = PIN2 copia;
}
if(UpdateFlags & flag PIN3)
{
ch3[0] = PIN3 copia;
}
if(UpdateFlags & flag PIN4)
{
ch4[0] = PIN4 copia;
}
if(UpdateFlags & flag PIN5)
{
ch5[0] = PIN5 copia;
}
if(UpdateFlags & flag PIN6)
{
ch6[0] = PIN6 copia;
}
// Borra la copia de la actualizaci
on de flags
act flag = 0;
interrupts(); // Reactiva las interrupciones
}
digitalWrite(12,HIGH);
digitalWrite(11,HIGH);
# endif
}
// En la secci
on discrete update:
if (xD[0]!=1) {
/* don't do anything for MEXfile generation */
# ifndef MATLAB MEX FILE
// Asignaci
on del pin, funci
on de interrupci
on y tipo de cambio.
PCintPort::attachInterrupt(PIN1, calcPIN1,CHANGE);
PCintPort::attachInterrupt(PIN2, calcPIN2,CHANGE);
PCintPort::attachInterrupt(PIN3, calcPIN3,CHANGE);
PCintPort::attachInterrupt(PIN4, calcPIN4,CHANGE);
260
Driver Blocks
PCintPort::attachInterrupt(PIN5, calcPIN5,CHANGE);
PCintPort::attachInterrupt(PIN6, calcPIN6,CHANGE);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
# endif
/* initialization done */
xD[0]=1;
}
261
MODELADO Y CONTROL
DE UN CUADRICOPTERO
UNIVERSIDAD PONTIFICIA DE COMILLAS
DOCUMENTO IV
PRESUPUESTO
Autor:
Directores:
Luis Sevilla
Cesareo
Fernandez
3 de junio de 2014
Indice
general
1. Mediciones
1.1. Componentes principales . . . . . . . . . . .
1.2. Placa para la medida de tension en la batera
1.3. Equipo y herramientas . . . . . . . . . . . .
1.4. Software . . . . . . . . . . . . . . . . . . . .
1.5. Mano de obra . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
267
267
268
268
268
269
2. Precios unitarios
2.1. Componentes principales . . . . . . . . . . .
2.2. Placa para la medida de tension en la batera
2.3. Equipo y herramientas . . . . . . . . . . . .
2.4. Software . . . . . . . . . . . . . . . . . . . .
2.5. Mano de obra . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
271
271
272
272
272
273
3. Sumas parciales
3.1. Componentes principales . . . . . . . . . . .
3.2. Placa para la medida de tension en la batera
3.3. Equipo y herramientas . . . . . . . . . . . .
3.4. Software . . . . . . . . . . . . . . . . . . . .
3.5. Mano de obra . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
275
275
276
276
276
277
4. Presupuesto general
279
cclxv
Captulo 1
Mediciones
En este captulo se presentan los componentes necesarios para la reproduccion del cuadricoptero con el que se ha trabajado a lo largo de este proyecto. Los elementos se han organizado
a traves de las siguientes secciones a fin de facilitar su comprension as como su inspeccion.
Marca
ID del producto
Cantidad
Turnigy
Crius
Turnigy
Turnigy-plus
NTM
Turnigy
HobbyKing
Turnigy
Turnigy
-
93320000011
1
1
4
4
2
2
4
4
1
1
1
1
4
8
8
8
8
1. www.HobbyKing.com
2. www.juguetronica.com
267
3870000071
T 1811 29001
T R 6A1
93290000181
93290000191
N T M 28 ACC 1
0532
92100000051
HK,1500.T X.L1
T X 9X M 21
T X 9X M 21
2580000111
-
Mediciones
en la batera
1.2. Placa para la medida de tension
En esta seccion se presentan los elementos necesarios para la reproduccion de la placa di
senada
para la medicion de la tension de la batera.
Componentes
Cantidad
Placa base
Resistencia 20 K
Pin de conexion
Horas de uso
proyecto
al ano
430
2000
Fuente de alimentacion 30 V DC 5 A
15
300
15
1500
Osciloscopio de 4 canales
400
Sonda
1500
Polmetro
10
450
Soldador
10
500
40
250
30
1500
Elemento
Cantidad
Ordenador
1.4. Software
En el desarrollo de este proyecto se ha hecho uso de una serie de programas los cuales se
presentan a continuacion.
Programa
Cantidad
Horas de
Horas de uso
proyecto
al ano
Matlab/Simulink
330
2000
Arduino Software
100
Kompozer
25
LaTex Studio
80
1500
Microsoft PowerPoint
10
400
268
Mediciones
Horas
315
25
Correccion de errores
25
85
269
Captulo 2
Precios unitarios
En este captulo se muestran los precios unitarios asociados a los elementos y componentes
introducido en el captulo 1.
Precio
Estructura base
$14.99
Placa reguladora
$49.41
Motores Brushless
$11.35
$8.45
Helices 8045
$0.615
Helices 8045R
$0.615
$1.86
Almohadillas antivibraciones
1.7
$6.75
$7.63
$59.99
$0.475
$0.475
Tuercas M3
0.0052
Tornillos M3
0.0079
0.036
271
Precios unitarios
en la batera
2.2. Placa para la medida de tension
Componentes
Precio (/ud.)
Placa base
0.06
0.25
0.14
Resistencia 20 K
0,0035
Pin de conexion
0,0053
0,0032
Precio (/ud.)
Ordenador
800
Fuente de alimentacion 30 V DC 5 A
219.9
3.95
Osciloscopio de 4 canales
1580
Sonda
3.95
Polmetro
45
Soldador
35
$22.99
70
2.4. Software
Programa
Precio (/ud.)
Matlab/Simulink
500
Arduino Software
Open Source
Kompozer
Open Source
LaTex Studio
Open Source
Microsoft PowerPoint
79.34
Open Source es el tipo de software que se distribuye y desarrollada libremente, es decir, es gratuito.
272
Precios unitarios
Precios (/h.)
60
25
Correccion de errores
45
40
273
Captulo 3
Sumas parciales
En este captulo se consignan los importes parciales de cada uno de los elementos mostrados
anteriormente que conforman las partidas y que han sido calculados a partir de las mediciones y
los precios unitarios.
Cantidad
Precio unitario
Coste total
Estructura base
$14.99
$14.99
Placa reguladora
$49.41
$49.41
Motores Brushless
$11.35
$45.4
$8.45
$33.8
Helices 8045
$0.615
$1.23
Helices 8045R
$0.615
$1.23
$1.86
$7.44
Almohadillas antivibraciones
1.7
6.8
$6.75
$6.75
$7.63
$7.63
$59.99
$59.99
$0.475
$1.9
$0.475
$3.8
Tuercas M3
0.0052
0.0416
Tornillos M3
0.0079
0.0632
0.036
0.288
Total
175.73
275
Sumas parciales
en la batera
3.2. Placa para la medida de tension
Componentes
Cantidad
Precio (/ud.)
Placa base
0.06
0.06
0.25
0.25
0.14
0.14
Resistencia 20 K
0.0035
0.007
Pin de conexion
0.0053
0.0212
0.0032
0.0128
Total
0.491
Amortizacion Hproyecto
P recio
100
Hanuales
(3.1)
Horas de
Horas por
Precio
Amortizacion
Coste
proyecto
ano
(/ud.)
anual
(/ud.)
430
2000
800
25 %
43
15
300
219.9
25 %
2.75
Elemento
Ud
Ordenador
Fte de alimentacion
Cable de conexion
15
1500
3.95
25 %
0.01
Osciloscopio
400
1580
25 %
8.88
Sonda
1500
3.95
25 %
0.006
Polmetro
10
450
45
25 %
0.25
Soldador
10
500
35
25 %
0.175
0.66
Cargador
40
250
16.64
25 %
Herramientas
30
1500
70
25 %
0.35
Total
56.09
3.4. Software
y, dado que los u nicos programas con licencia son el
El software se suele amortizar en 5 anos
Matlab 2013a y Microsoft PowerPoint, haciendo uso de la ecuacion 3.1, el coste asociado a e stos
resulta:
Programa
Ud
Horas de
Horas por
Precio
Amortizacion
Coste
proyecto
ano
(/ud.)
anual
(/ud.)
Matlab/Simulink
330
2000
500
20 %
16.5
M. PowerPoint
10
400
79.34
20 %
0.3967
Total
16.8967
276
Sumas parciales
Horas
Precio (/h.)
Coste total()
315
60
18900
25
25
625
Correccion de errores
25
45
1125
85
40
13400
Total
24050
277
Captulo 4
Presupuesto general
Sumando la contribucion de todas las partidas anteriores se concluye que el coste del proyecto, impuestos incluidos, asciende a:
Concepto
Coste ()
Componentes principales
175.73
0.49
Equipo y herramientas
56.09
Software
16.89
Mano de obra
24050
Total
24302.21
279
Anexo A
Pasos a seguir para la programacion de un Driver Block en Simulink.
1. Preconfigurar las caractersticas del bloque para el controlador al cual se va a volcar
el software en la ventana Parametros de configuracion. (Discreto y singleTasking).
2. Crear un S-Function block, entrar en propiedades y posteriormente en la pesta
na
Data Properties. Una vez ah eliminamos la variable de salida y renombramos la
variable de entrada (normalmente a in). Configuramos tambien el tipo de variable a
tipo Booleano.
3. En la misma pesta
na, acceder a la subpesta
na parametros donde se seleccion un tipo
de variable entera y sin signo y se especifica el valor. El valor incluido sera el n
umero
de puerto donde se realizara la accion programada.
4. Acceder a la pesta
na Build Info y seleccionar la casilla Generate Wrapper TLC. De
esta forma se generar
a un ejecutable que correr
a en la plataforma. Asegurarse de
que la casilla Enable access to SimStruct esta desactivada.
5. Abrir el panel de inicializacion y especificar el tiempo de muestreo y el n
umero
de variables de estado. Es importante mencionar que debe existir al menos una
variable discreta cuyo valor inicial sea nulo. De lo contrario no se podra inicializar
el programa.
6. Acceder a la pesta
na Discrete Update donde especificaremos como se actualiza el
algoritmo. En esta seccion se incluira el siguiente codigo:
281
8. Por u
ltimo acceder al panel de libreras e incorporar las necesarias. Si son externas
al software de MATLAB han de incluirse en la carpeta de trabajo del proyecto. Las
tres lneas b
asicas para el funcionamiento en una placa Arduino son:
# ifndef M AT LAB M EX F ILE
# include Arduino.h"
# endif
Es muy importante remarcar que despues de la generacion de los archivos hay que acceder
al archivo wrapper y a
nadir la linea extern c al principio de las funciones output y
update.
282
Anexo B
En este anexo se describe el software auxiliar dise
nado en Matlab para obtener una
representaci
on grafica de los
angulos de Euler adquiridos por el cuadricoptero. De esta
forma se facilita la comprobacion de resultados obtenidos en las simulaciones al transformar el conjunto de datos obtenidos (generalmente visualizados a traves de graficas) en
una representacion m
as visual de estos.
As pues, el programa hara uso de los valores obtenidos en simulaciones anteriormente
realizadas, que se guardaron en variables especficas, para crear una matriz de cambio
de base que relacione los vectores caractersticos anteriores con los transformados. Esta
matriz se calculara para cada muestra siendo definida como la matriz de giro de Euler
clasica:
cos()
sin()
cos() 0 sin()
0
0 cos()
R =
1
sin()
sin()
cos()0
0
0
1
sin() 0
0 sin() cos()]
0
cos()
(1)
283
singleton*.
%
%
%
%
%
%
%
%
existing singleton*. Starting from the left, property value pairs are
applied to the GUI before Vuelo OpeningFcn gets called. An
stop.
%
%
%
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Vuelo
% Last Modified by GUIDE v2.5 01Feb2014 13:38:38
% Begin initialization code DO NOT EDIT
gui Singleton = 1;
gui State = struct('gui Name',
'gui Singleton',
mfilename, ...
gui Singleton, ...
284
'gui LayoutFcn',
[] , ...
'gui Callback',
[]);
handle to figure
% eventdata
% handles
% varargin
% hObject
handle to figure
% eventdata
% handles
load('Valores2','Phi','Theta','Psi')
v=[];
phi=[];
theta=[];
psi=[];
temp=1;
v(:,1)=[0.5,0,0]';
v(:,2)=[0.5,0,0]';
v(:,3)=[0,0.5,0]';
285
v(:,4)=[0,0.5,0]';
axes(handles.vuelo);
plot3([v(1,1),v(1,2)],[v(2,1),v(2,2)],[v(3,1),v(3,2)],'k','LineWidth',4);
hold on;
grid on;
plot3(v(1,1),v(2,1),v(3,1),'g*','LineWidth',10);
plot3(v(1,2),v(2,2),v(3,2),'g*','LineWidth',10);
plot3([v(1,3),v(1,4)],[v(2,3),v(2,4)],[v(3,3),v(3,4)],'k','LineWidth',6);
plot3(v(1,3),v(2,3),v(3,3),'r*','LineWidth',10);
plot3(v(1,4),v(2,4),v(3,4),'y*','LineWidth',11);
set(gca,'color',[0 0.5 0.85])
axis([1 1 1 1 1 1]);
hold off
for i=1:1:length(Phi.signals.values)
phi(i,1)=Psi.signals.values(i,2) *pi/180;
end
for i=1:1:length(Theta.signals.values)
theta(i,1)=Theta.signals.values(i,2) *pi/180;
end
for i=1:1:length(Psi.signals.values)
psi(i,1)=Phi.signals.values(i,2) *pi/180;
end
inc phi=0;
inc theta=0;
inc psi=0;
for i=1:1:length(phi)
inc phi=phi(i)inc phi;
inc theta=theta(i)inc theta;
inc psi=psi(i)inc psi;
M theta=[1 0 0;0 cos(inc theta) sin(inc theta); 0 sin(inc theta) cos(inc theta)];
M psi=[cos(inc psi) 0 sin(inc psi);0 1 0;sin(inc psi) 0 cos(inc psi)];
M phi=[cos(inc phi) sin(inc phi) 0; sin(inc phi) cos(inc phi) 0; 0 0 1];
R=M psi * M theta * M phi;
v2(:,1)=R*v(:,1);
v2(:,2)=R*v(:,2);
v2(:,3)=R*v(:,3);
v2(:,4)=R*v(:,4);
axes(handles.vuelo);
286
plot3([v2(1,1),v2(1,2)],[v2(2,1),v2(2,2)],[v2(3,1),v2(3,2)],'k','LineWidth',4);
hold on;
grid on;
plot3(v2(1,1),v2(2,1),v2(3,1),'g*','LineWidth',10);
plot3(v2(1,2),v2(2,2),v2(3,2),'g*','LineWidth',10);
plot3([v2(1,3),v2(1,4)],[v2(2,3),v2(2,4)],[v2(3,3),v2(3,4)],'k','LineWidth',6);
plot3(v2(1,3),v2(2,3),v2(3,3),'r*','LineWidth',10);
plot3(v2(1,4),v2(2,4),v2(3,4),'y*','LineWidth',11);
set(gca,'color',[0 0.5 0.85])
axis([1 1 1 1 1 1]);
hold off;
pause(0.1)
end
% Get default command line output from handles structure
varargout{1} = handles.output;
287
Anexo C
< !DOCTYPE html PUBLIC //W3C//DTD HTML 4 . 0 1 / /EN h t t p : / /www. w3 . o r g /TR/ html4 / s t r i c t . dtd >
<html><head>
<meta content= L u i s
Sevilla
<meta content= M o z i l l a / 4 . 7
Ferna
n d e z name= Author >
[ en ]
(WinNT ;
t i t l e></head><body s t y l e= c o l o r :
I)
rgb ( 0 ,
0 , 0) ;
backgroundc o l o r :
rgb ( 2 0 4 ,
204 , 255) ;
<td s t y l e= v e r t i c a l a l i g n :
t e x t a l i g n :
r i g h t ; ><img s t y l e= w i d t h :
321 px ;
height :
c e n t e r ; >
<h1 s t y l e= t e x t a l i g n :
<h4 s t y l e= t e x t a l i g n :
</h4>
<div s t y l e= t e x t a l i g n :
l e f t ; >
<div s t y l e= t e x t a l i g n :
l e f t ; >
<t a b l e s t y l e= t e x t a l i g n :
left ;
<tbody>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><big><big>P r o y e c t o
realizado
Sevilla
Ferna
n d e z<br>
<br>
<br>
<big><big>D i r i g i d o
top ;
height :
240 px ;
width :
320 px ; ><br>
<br>
<v i d e o
289
153
<t a b l e s t y l e= t e x t a l i g n :
left ;
w i d t h : 100 %; margin l e f t :
auto ;
marginr i g h t :
a u t o ; border= 0
top ;
P i e z a s C u a d r i c o p t e r o S o l i d . z i p ><img s t y l e= b o r d e r : 0 px s o l i d
width :
77 px ;
height :
t o p ; ><br>
cuadric
o p t e r o en S o l i d E d g e</ big><br>
</ td>
</ t r>
<t r>
top ;
<td s t y l e= v e r t i c a l a l i g n :
t e x t a l i g n :
<img s t y l e= b o r d e r : 0 px s o l i d
width :
height :
52 px ; a l t= s r c= M a t l a b L o g o .
png ></a><br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><br>
del
c u a d r i c o p t e r o en S i m u l i n k</ big><br>
</ td>
</ t r><t r>
<td s t y l e= v e r t i c a l a l i g n :
top ;
t e x t a l i g n :
r a r ><img s t y l e= b o r d e r : 0 px s o l i d
c e n t e r ; ><a h r e f= Modelo / M o d e l o S i m p l i f i c a d o .
width :
58 px ;
height :
52 px ; a l t= s r c=
t o p ; ><br>
simplificado
del
cuadrico
p t e r o en S i m u l i n k</ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
top ;
t e x t a l i g n :
img s t y l e= b o r d e r : 0 px s o l i d
width :
58 px ;
height :
52 px ; a l t= s r c= M a t l a b L o g o . png
></a></ td>
t o p ; ><br>
<td s t y l e= v e r t i c a l a l i g n :
i n v e r t i d o en S i m u l i n k</ big><br>
</ td>
</ t r>
</tbody>
</ t a b l e>
<br>
<hr s i z e= 2 width=100 %>
<h3><big><u><b>C o n t r o l</b></u></ big></h3>
<t a b l e s t y l e= t e x t a l i g n :
left ;
w i d t h : 100 %; margin l e f t :
auto ;
marginr i g h t :
a u t o ; border= 0
<td s t y l e= v e r t i c a l a l i g n :
h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= C o n t r o l /
C o n t r o l a d o r V o s s . s l x ><img s t y l e= b o r d e r :
0 px s o l i d
width :
58 px ;
height :
52 px ; a l t=
t o p ; ><br>
P r o p o r c i o n a l H . Voos</ big><br>
</ td>
</ t r>
<t r>
t o p ; ><a h r e f= C o n t r o l / c o n t r o l q u a d c o p t e r . z i p ><img s t y l e=
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
width :
77 px ;
height :
55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png
></a></ td>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><br>
  ;
<big>S i s t e m a C o n t r o l a d o<br>
</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
solid
width :
77 px ;
el
t o p ; ><br>
modelo
s i m p l i f i c a d o</ big><br>
  ;
<big><br>
</ big></ td>
</ t r><t r>
290
<td s t y l e= v e r t i c a l a l i g n :
solid
width :
77 px ;
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>C o n t r o l LQ p a r a
el
t o p ; ><br>
modelo
s i m p l i f i c a d o</ big><br>
</ td>
</ t r>
<t r>
t o p ; ><a h r e f= C o n t r o l / P o l e P l a c e M s i m p . r a r ><img s t y l e= b o r d e r :
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d
width :
77 px ;
height :
/ td>
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>C o n t r o l p o r
t o p ; ><br>
realimentaci
o n de e s t a d o s p a r a
el
modelo
s i m p l i f i c a d o</ big><br>
</ td>
</ t r>
<t r>
t o p ; ><a h r e f= C o n t r o l / c o n t r o l q u a d c o p t e r . z i p ><img s t y l e=
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
width :
77 px ;
height :
55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png
></a></ td>
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>C o n t r o l p a r a
el
t o p ; ><br>
p
endulo
i n v e r t i d o</ big><br>
</ td>
</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<h3><big><u><b>E s t i m a c i
o n</b></u></ big></h3>
<t a b l e s t y l e= t e x t a l i g n :
left ;
w i d t h : 100 %; margin l e f t :
auto ;
marginr i g h t :
a u t o ; border= 0
top ;
t e x t a l i g n :
<img s t y l e= b o r d e r : 0 px s o l i d
width :
c e n t e r ; ><a h r e f= E s t i m a d o r / F i l t r o f i n a l . s l x >
58 px ;
height :
52 px ; a l t= s r c= M a t l a b L o g o .
t o p ; ><br>
multiplicativo
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
top ;
h e i g h t : 100 %; w i d t h : 4 %;><a h r e f= E s t i m a d o r /
0 px s o l i d
width :
77 px ;
height :
55 px ; a l t
t o p ; ><br>
multiplicativo
</ td>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d
width :
77 px ;
height :
55 px
t o p ; ><br>
c o m p l e m e n t a r i o</ big> ( R e a l i z a d o p o r J o s
e Antonio
Ferna
n d e z )<br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :
top ;
t e x t a l i g n :
r i g h t ; ><img s t y l e= w i d t h :
63 px ;
height :
53 px ;
u n d e r l i n e ; ><big>M
a quina de e s t a d o s</ big><br>
</h3>
<t a b l e s t y l e= t e x t a l i g n :
left ;
w i d t h : 100 %; margin l e f t :
auto ;
marginr i g h t :
a u t o ; border= 0
top ;
t e x t a l i g n :
center ;
0 px s o l i d
t o p ; ><br>
291
width :
77 px ;
height :
55 px ;
  ;
<big>S i s t e m a
con m
a quina de
e s t a d o s  ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp
;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;&
nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;
.& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp
;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;&
nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;&
nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;& nbsp ;
<br>
</ big></ td>
</ t r>
</tbody>
</ t a b l e>
<br>
<hr s t y l e= w i d t h : 100 %; h e i g h t : 2 px ; >
<h3><big><u><b>D r i v e r B l o c k s</b></u></ big></h3>
left ;
<t a b l e s t y l e= t e x t a l i g n :
w i d t h : 100 %; margin l e f t :
auto ;
marginr i g h t :
a u t o ; border= 0
top ;
><img s t y l e= b o r d e r : 0 px s o l i d
width :
77 px ;
height :
55 px ; a l t= D e s c a r g a r modelo
del
t o p ; ><br>
t r a n s m i s o r e m i s o r RC</ big><br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :
top ;
t e x t a l i g n :
r i g h t ; ><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
solid
width :
77 px ;
<td s t y l e= v e r t i c a l a l i g n :
0 px
t o p ; ><br>
top ;
t e x t a l i g n :
r i g h t ; ><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d
width :
77 px ;
height :
55 px
los
t o p ; ><br>
motores
b r u s h l e s s</ big><br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :
top ;
t e x t a l i g n :
r i g h t ; ><img s t y l e= w i d t h :
63 px ;
height :
53 px ;
t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d
width :
77 px ;
height :
55 px
t o p ; ><br>
top ;
t e x t a l i g n :
r i g h t ; ><img s t y l e= w i d t h :
63 px ;
height :
53 px ;
t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d
width :
77 px ;
height :
55 px
t o p ; ><br>
s e n s o r e s de p r o x i m i d a d</ big><br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :
top ;
t e x t a l i g n :
r i g h t ; ><img s t y l e= w i d t h :
63 px ;
height :
53 px ;
left ;
w i d t h : 100 %; margin l e f t :
292
auto ;
marginr i g h t :
a u t o ; border= 0
top ;
p d f ><img s t y l e= b o r d e r : 0 px s o l i d
width :
61 px ;
height :
56 px ; a l t= D e s c a r g a r Anexo
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>I n f o r m e
del
ensayo sobre
el
modelo d e l
cuadrico
p t e r o en
S i m u l i n k</ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d
width :
t o p ; ><a h r e f= I n f o r m e s / E n s a y o F i l t r o . p d f ><img s t y l e= b o r d e r :
61 px ;
height :
></ td>
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>I n f o r m e
del
ensayo
t o p ; ><br>
del
filtro
multiplicativo
e x t e n d i d o de
Kalman</ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><img s t y l e= b o r d e r : 0 px s o l i d
width :
61 px ;
height :
56 px
del
t o p ; ><br>
ensayo sobre
el
c o n t r o l a d o r de Voos</ big><br>
</ td>
</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<h3><big><u><b>Documentos
O f i c i a l e s<br>
</b></u></ big></h3>
<t a b l e s t y l e= t e x t a l i g n :
left ;
w i d t h : 100 %; margin l e f t :
auto ;
marginr i g h t :
a u t o ; border= 0
top ;
width :
61 px ;
height :
56 px ; a l t
t o p ; ><br>
t o p ; ><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
width :
61 px ;
height :
56 px ; a l t= D e s c a r g a r Anexo B s r c= I c o n o p d f .
t o p ; ><br>
t o p ; ><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
width :
61 px ;
height :
56 px ; a l t= D e s c a r g a r Memoria s r c= I c o n o p d f .
t o p ; ><big><br>
p r o y e c t o <br>
top ;
t e x t a l i g n :
r i g h t ; ><img s t y l e= w i d t h :
63 px ;
height :
53 px ;
left ;
w i d t h : 100 %; margin l e f t :
293
auto ;
marginr i g h t :
a u t o ; border= 0
top ;
B3digo . z i p ><img s t y l e= b o r d e r :
0 px s o l i d
width :
77 px ;
height :
55 px ; a l t= D e s c a r g a r
<td s t y l e= v e r t i c a l a l i g n :
  ; <big>S i m u l a d o r de v u e l o
r e a l i z a d o en Matlab .
( Proyecto
realizado
con N a t i v i d a d Bermejo H e r r e r o )</ big><br>
  ;
( Para
iniciar
ejectuar
con M atlab
el
a r c h i v o  ;
S i m u l a d o r V u e l o .m) <br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
top ;
t e x t a l i g n :
c e n t e r ; ><a h r e f= Complementos /
S i m u l a d o r I n f o r m e . p d f ><img s t y l e= b o r d e r : 0 px s o l i d
width :
61 px ;
height :
56 px ; a l t
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>I n f o r m e
del
width :
77 px ;
height :
55 px ; a l t= D e s c a r g a r modelo s r c= w i n r a r . png
></a></ td>
<td s t y l e= v e r t i c a l a l i g n :
  ; S i m u l a d o r de v u e l o p a r a
t o p ; ><big><br>
los
angulos
o b t e n i d o s con
el
controlador
disen
a d o .<br>
</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
top ;
t e x t a l i g n :
img s t y l e= b o r d e r : 0 px s o l i d
width :
61 px ;
height :
59 px ; a l t= s r c= a r d u i n o . png ></
a><br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><big><br>
  ; Programa de a r d u i n o p a r a p o d e r
insertar
co
d i g o s de
top ;
t e x t a l i g n :
br>
</a></ td>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><br>
  ;
<big><br>
</ big></ td>
</ t r>
</tbody>
</ t a b l e>
<hr s i z e= 2 width=100 %>
<h3><big><u><b> B i b l i o g r a f a</b></u></ big></h3>
<br>
<t a b l e s t y l e= t e x t a l i g n :
left ;
w i d t h : 100 %; margin l e f t :
auto ;
marginr i g h t :
a u t o ; border= 0
top ;
G r o u p 3 f i n a l r e p o r t . p d f ><img s t y l e= b o r d e r :
0 px s o l i d
width :
61 px ;
height :
56 px ;
t o p ; ><br>
University
o f Washington ,
Klavins ,
Justin
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d
width :
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 3 3 7 6 7 . p d f ><img s t y l e= b o r d e r :
61 px ;
<td s t y l e= v e r t i c a l a l i g n :
height :
t o p ; ><br>
294
<big>  ; M o d e l l i n g and c o n t r o l
Corke Paul Pounds ,
R o b e r t Mahony .
o f a quadr o t o r
Australian
National
robot .
Peter
University ,
2 0 0 6 .</ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d
width :
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 3 3 8 3 3 . p d f ><img s t y l e= b o r d e r :
61 px ;
height :
t o p ; ><br>
<td s t y l e= v e r t i c a l a l i g n :
aerial
Roberts .
robots .
A u s t r a l a s i a n<br>
2004</ big><br>
</ td>
</ t r>
<t r>
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ Q uad cop ter %20Dynamics , %20
<td s t y l e= v e r t i c a l a l i g n :
0 px s o l i d
width :
61 px ;
height :
t o p ; ><br>
Qu ad cop te r dynamics ,
s i m u l a t i o n s and
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
width :
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>M o d e l l i n g and l i n e a r
J . F . Whidborne .
Cranfield
61 px ;
height :
t o p ; ><br>
control
University ,
o f a q u a d r o t o r . C BALAS and Dr
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
px s o l i d
width :
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 1 2 . p d f ><img s t y l e= b o r d e r :
61 px ;
<td s t y l e= v e r t i c a l a l i g n :
height :
t o p ; ><br>
i n g e n i a c a t a
motion
control
d e p a r t m e n t . </ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ p r o j e c t 4 3 d e s i g n r e v i e w . p d f ><
img s t y l e= b o r d e r : 0 px s o l i d
width :
61 px ;
height :
56 px ; a l t= s r c= I c o n o p d f . png ><
/a></ td>
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>A l t e r n a t i v e
Moy.& nbsp ;
University
t o p ; ><br>
quadcopter .
of
S i l v e r De Guzman C h r i s t o p h e r
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ i o c c h i simp armuav08 . p d f ><img
s t y l e= b o r d e r : 0 px s o l i d
width :
61 px ;
height :
56 px ; a l t= s r c= I c o n o p d f . png ></a>
</ td>
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>Autonomous i n d o o r
N a r d i G.
A n ge l et ti , J . R.
t o p ; ><br>
Pereira
Valente .
Sapienza
I o c c h i D.
University
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
<td s t y l e= v e r t i c a l a l i g n :
  ; D e s i g n
of
multicopter
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/276CQ2010 . p d f ><img s t y l e=
width :
test
61 px ;
height :
t o p ; ><big><br>
bench .
S a i Kishan R . C . S .
S u r a j G.
Journal
o f  ;
M o d e l i n g and O p t i m i z a t i o n ,
Vol . 3 ,
No . 3 , June 2 0 1 3 .<br>
</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>H e l i c o p t e r
P r i n c e t o n , NJ ,
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/276CQ2010 . p d f ><img s t y l e=
width :
t h e o r y . W.
61 px ;
height :
t o p ; ><br>
Johnson .
Princeton
University
Press ,
1 9 8 0 .</ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ I S E R 2 0 1 2 p o w e r s %282 %29. p d f ><
img s t y l e= b o r d e r : 0 px s o l i d
width :
61 px ;
/a></ td>
295
height :
56 px ; a l t= s r c= I c o n o p d f . png ><
<td s t y l e= v e r t i c a l a l i g n :
  ; I n f l u e n c e
flight .
of
t o p ; ><big><br>
a e r o d y n a m i c s and p r o x i m i t y
effects
in
quadrotor
  ; Powers ,
Daniel
Pennsylvania ,
P h i l a d e l p h i a .<br>
M e l l i n g e r . GRASP L a b o r a t o r y ,
University
of
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
width :
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>Pid v s
lq
control
techniques
q u a d r o t o r . </ big><big>Noth A .
Federal
Institute
  ; Te ch nology ,
61 px ;
height :
t o p ; ><br>
applied
t o an i n d o o r m i c r o
B o u a b d a l l a h , S . and R .
Siegwart .
Swiss
o f <br>
2 0 0 4 .</ big><big> .</ big></ td>
</ t r>
<t r>
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ f u l l t e x t . p d f ><img s t y l e=
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
width :
  ;<big>M o d e l l i n g t h e
61 px ;
height :
t o p ; ><br>
<td s t y l e= v e r t i c a l a l i g n :
draganflyer
four
rotor
h e l i c o p t e r . </ big><big>P .
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ h r w d j t 0 4 d a s c . p d f ><img s t y l e=
width :
  ;<big>The s t a n f o r d
agent
testbed
61 px ;
height :
t o p ; ><br>
<td s t y l e= v e r t i c a l a l i g n :
o f autonomous
c o n t r o l . </ big><big>R a j n a r a y a n D. G.
rotorcraft
for
Waslander S . L .
multi
D o s t a l D.
Jang J . S .<br>
  ; Hoffmann , G. M. and C . J .
S y s te m s C o n f e r e n c e ,
Avionics
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
px s o l i d
width :
<td s t y l e= v e r t i c a l a l i g n :
<big>  ; S t a b i l i z a t i o n
R.
C a s t i l l o , P . and A .
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 5 2 5 . p d f ><img s t y l e= b o r d e r :
61 px ;
height :
t o p ; >  ;<br>
o f a mini
rotorcraft
with
four
r o t o r s . </ big><big>Lozano
width :
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>Optimal
trajectory
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ f 1 2 5 . p d f ><img s t y l e= b o r d e r :
61 px ;
height :
t o p ; ><br>
p l a n n i n g and l q r . Whidborne J . F .
Proc .UKACC I n t .
Conf .
Control ,
Cowling ,
2 0 0 6 .</ big><br>
  ;<big><br>
</ big></ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>N o n l i n e a r
state
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ v o o s 2 0 0 9 . p d f ><img s t y l e=
width :
61 px ;
dependent
riccati
height :
t o p ; ><br>
equation
control
of a
C o n f e r e n c e on C o n t r o l<br>
2 0 0 6 .</ big><br>
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
b o r d e r : 0 px s o l i d
<td s t y l e= v e r t i c a l a l i g n :
  ;<big>Feedback
t o p ; ><a h r e f= B i b l i o g r a f %C3 %
ADa/ 0 1 6 4 4 5 4 5 . p d f ><img s t y l e=
width :
linearization
61 px ;
height :
t o p ; ><br>
and h i g h
order
s l i d i n g mode o b s e r v e r
for a
q u a d r o t o r uav .
Mokhtari A.
  ; I n t e r n a t i o n a l Workshop on V a r i a b l e
Structure
</ td>
</ t r>
<t r>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><br>
</ td>
<td s t y l e= v e r t i c a l a l i g n :
t o p ; ><br>
</ td>
</ t r>
</tbody>
</ t a b l e>
296
Systems ,
2 0 0 6 .</ big><br>
<br>
<br>
<hr s i z e= 2 width=100 %>
</body></html>
297
Anexo D
En este anexo se ha incluido el codigo necesario para poder utilizar Matlab o Simulink
en una placa con un controlador Arduino. Este c
odigo s
olo debe ejecutarse la primera
vez y debe abrirse con la aplicacion de arduino dise
nada para programar este tipo de
microcontroladores. Para realizar tal tarea, copiese el c
odigo que a continuacion se presenta
y peguese en un archivo .txt. Posteriormente cambie su extension al tipo .pde y
abralo
con el programa de arduino. Seleccione el dispositivo de destino y vuelque el c
odigo.
*/
*/
1e
3f
R0
R1
R2
99
/* define internal for the MEGA as 1.1V (as as for the 328)
*/
*/
299
#endif
void setup() {
/* Make sure all pins are put in high impedence state and
that their registers are set as low before doing anything.
This puts the board in a known (and harmless) state
*/
int i;
for (i=0;i<20;i++) {
pinMode(i,INPUT);
digitalWrite(i,0);
}
/* initialize serial
*/
Serial.begin(115200);
}
void loop() {
/* variables declaration and initialization
*/
static int
static int
pin = 13;
*/
*/
int
val =
0;
int
agv =
0;
int
dgv =
0;
= 1;
/* state
*/
*/
*/
switch (s) {
300
*/
s=20 is DO;
s=30 is AI;
s=40 is AO;
*/
*/
case 0:
/* the second received value indicates the pin
from abs('c')=99, pin 2, to abs('t')=116, pin 19
*/
/* calculate pin
s=1; /* next we will need to get 0 or 1 from serial
*/
*/
}
else {
s=1; /* if value is not a pin then return to 1
*/
}
break; /* s=0 taken care of
*/
case 1:
/* the third received value indicates the value 0 or 1 */
301
*/
pinMode(pin,INPUT);
}
else {
pinMode(pin,OUTPUT);
}
}
s=1;
*/
*/
*/
/* calculate pin
/* perform Digital Input
*/
*/
Serial.println(dgv);
*/
}
s=1;
*/
*/
*/
/* calculate pin
*/
s=21; /* next we will need to get 0 or 1 from serial */
}
else {
s=1; /* if value is not a pin then return to 1
*/
}
break; /* s=20 taken care of
*/
case 21:
/* the third received value indicates the value 0 or 1 */
if (val>47 && val<50) {
dgv=val48;
digitalWrite(pin,dgv);
/* calculate value
/* perform Digital Output */
*/
}
s=1;
*/
*/
302
*/
/* calculate pin
/* perform Analog Input
/* send value via serial */
*/
*/
}
s=1;
*/
*/
*/
/* calculate pin
s=41; /* next we will need to get value from serial
*/
*/
}
else {
s=1; /* if value is not a pin then return to 1
*/
}
break; /* s=40 taken care of
*/
case 41:
/* the third received value indicates the analog value */
analogWrite(pin,val);
/* perform Analog Output */
s=1; /* we are done with AO so next state is 1
*/
break; /* s=41 taken care of
*/
/* s=90 means Query Script Type (1 basic, 2 motor)
case 90:
*/
if (val==57) {
/* if string sent is 99
Serial.println(1);
}
s=1;
*/
*/
*/
switch (val) {
case 48:
303
analogReference(DEFAULT);
break;
case 49:
analogReference(INTERNAL);
break;
case 50:
analogReference(EXTERNAL);
break;
default:
/* unrecognized, no action
*/
break;
}
s=1;
*/
*/
*/
*/
*/
*/
304