Universidad de Sevilla
Escuela T
ecnica Superior de Ingeniera
Sistemas de control de aeronaves
Aterrizaje autom
atico de una Cessna
en el Aeropuerto de Sevilla
Mario Benjamn de la Rosa Trivi
no
M
aster en Ingeniera Aeronautica
Sevilla - 30 de junio de 2016
Indice
1. Sistema de Guiado
1.1. Trayectoria de aproximaci
on .
1.2. Sistema de guiado . . . . . .
1.2.1. Selector de waypoints
1.2.2. Referencia de rumbo .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
4
5
2. Sistema de control
2.1. Controlador de alto nivel . . .
2.1.1. Control de altitud . . .
2.1.2. Control de rumbo . . .
2.1.3. Control de TAS . . . . .
2.2. Controlador de bajo nivel . . .
2.2.1. Controlador de pitch . .
2.2.2. Controlador de roll . . .
2.3. Respuesta de los controladores
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
7
7
8
8
8
8
3. Programa en C
3.1. Funci
on main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Hilos de guiado y control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Conexi
on con Simulink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
14
14
15
4. Implementaci
on en Simulink
15
5. Aterrizaje autom
atico
16
Referencias
20
Aterrizaje automatico de una Cessna en el Aeropuerto de Sevilla
Mario de la Rosa
30 de junio de 2016
El objetivo de este trabajo es llevar a cabo el aterrizaje automatico de una avioneta Cessna
en el aeropuerto de Sevilla. Para llevar a cabo esta tarea se ha implementado un sistema de
guiado y un sitema de control que seran los encargados de dirigir y controlar la aeronave hasta
la pista. El programa se ejecutar
a en una maquina virtual y se conectara con FlightGear para
recibir y enviar datos del modelo y, por otra parte, tambien se comunicara con Simulink para
poder representar los estados y las referencias durante el aterrizaje.
El documento se divide en tres secciones principales. En primer lugar, en la seccion 1, se
comentar
a el sitema de guiado implementado, posteriormente, en la seccion 2 se trataran los
diferentes controladores que se han implementado. En tercer lugar, en la seccion 3 se explicara brevemente el contenido del programa implementado en C. Finalmente, en la seccion 5 se
muestran los resultados de la simulacion del aterrizaje.
1.
Sistema de Guiado
El sistema de guiado del avi
on sera el encargado de establecer las consignas que recibiran los
controladores. En resumen este sistema recibira la posicion actual del avion y, en funcion de la
misma, seleccionar
a el pr
oximo punto de referencia.
En primer lugar, en la secci
on 1.1, se estableceran los puntos de referencia y las consignas
necesarias para poder realizar un aterrizaje en el aeropuerto de Sevilla. Ademas de indicar estos
puntos tambien es necesario implementar un sistema de guiado que seleccione automaticamente
el punto objetivo. El funcionamiento del mismo se tratara en detalle en la seccion 1.2
1.1.
Trayectoria de aproximaci
on
La trayectoria de aproximaci
on depende del sistema disponible para realizar la aproximaci
on.
En la web de En Aire[3] se especifica cada una de estas trayectorias en funcion de la ayuda
a la navegaci
on utilizada. Por ejemplo, si se utilizase ILS (Instrumental Landing System), la
trayectoria vertical a seguir sera la mostrada en la Fig. 1.
Sin embargo, en este trabajo no se seguira esta senda de aproximacion con el objetivo de
poder utilizar todos los controladores implementados y hacer el aterrizaje mas interesante.
Para definir la trayectoria de aterrizaje se han definido una serie de puntos de paso. Estos se
han representado en Google Earth tal y como se muestra en la Fig. 2. Como se vera en la secci
on
5, este software permitir
a representar la trayectoria resultante con lo cual se vera claramente el
correcto funcionamiento del controlador.
Adem
as, en cada waypoint se ha establecido una altitud y una velocidad aerodinamica de
referencia como se indica en la siguiente tabla.
En la Fig. 3 se muestra el perfil de descenso que se ha establecido. Inicialmente el avi
on se
a
encuentra en el punto posici
on inicial. una altitud de 1000ft con una velocidad de 100knot,
Figura 1: Senda de aproximacion con ILS
Figura 2: Puntos de paso
desde aqu se dirigir
a al FAF (Final Approach Fix) a una altitud de 1000ft y una velocidad de
85knot. El siguiente punto objetivo sera el punto A, al cual se acercara a una altitud de 700ft
y una velocidad de 85 knot. Una vez alcance este punto se dirigira al punto B a una altitud de
250ft y una velocidad de 70knot. En el punto B cambiara el control de la velocidad aerodinamica,
a partir de este momento la velocidad aerodinamica se controlara con el pitch y se impondr
a la
posicion de palanca.
1.2.
Sistema de guiado
El sistema de guiado es el encargado de establecer el control que se emplea e indicar las
referencia de altitud, rumbo y velocidad.
1.2.1.
Selector de waypoints
El selector de waypoints ser
a el encargado de seleccionar el waypoint objetivo. Para ello se
calcula la distancia hacia el punto siguiente y cuando la misma es menor de 500m, se selecciona
el siguiente waypoint de la lista. La distancia se ha calculado como se indica a continuacion:
dwp =
p
x2 + y 2
(1)
siendo
x = Rmer (AC wp )
4
(2)
Punto
Posici
on inicial
FAF
Punto A
Punto B
Pista
Latitud[ ]
37.426564
37.4175
37.417663
37.417839
37.417991
Longitud[ ]
-6.014983
-5.9925
-5.954661
-5.914728
-5.887864
Altitud[ft]
1000
1000
700
250
80
Velocidad[knot]
100
85
80
70
60
Tabla 1: Lista de waypoints
1200
Tramo 1: 1000 ft, 85knot
1000
Altitud [ft]
800
Tramo 2: 700ft, 85knot
600
400
Tramo 3: 250 ft, 70knot
200
Tramo 4: 60knot
0
0
50
100
150
Time [s]
200
250
300
Figura 3: Perfil de descenso
y = Rnorm (AC wp )
(3)
donde Rmer es el radio de curvatura del meridiano, Rnorm el radio de curvatura normal, AC y
AC son la latitud y longitud de la aeronave(aircraft) y wp y wp son la latitud y longitud del
waypoint de destino. Rmer y Rnorm son los radios de curvatura a lo largo de lineas de latitud y
longitud constantes respectivamente. Las ecuaciones para su calculo se pueden consultar en el
captulo 4, secci
on 4.1 de [1].
Una vez seleccionado el waypoint se tendran las coordenadas del punto objetivo, latitud y
longitud y la altura y la velocidad aerodinamica de referencia.
Por u
ltimo cabe destacar que esta referencia de altitud no es la que recibe directamente el
controlador. Esto se debe a que la tasa de variacion de la referencia esta limitada con el objetivo
de conseguir una respuesta del controlador mas suave y precisa.
1.2.2.
Referencia de rumbo
La referencia de rumbo se debe calcular en funcion de la posicion de la aeronave en cada
momento. En primer lugar se implemento un algoritmo que calculaba el rumbo determinando
la direcci
on de la recta que pasa por la aeronave y el punto objetivo, es decir:
Rnorm (wp AC )
= atan
(4)
Rmer (wp AC )
Sin embargo este metodo no proporcionaba un resultado aceptable ya que peque
nos errores en
el rumbo hacan que la direcci
on de aproximacion a la pista no fuese la que se buscaba. Adem
as,
cuando la aeronave se iba acercando al waypoint objetivo, el rumbo comenzaba a variar de forma
notable provocando que la avioneta oscilase al llegar a cada waypoint.
5
Este problema se solucion
o implementando un metodo de seguimiento de una lnea recta con
el objetivo de seguir la lnea que une el waypoint objetivo con el anterior. El metodo implementado, obtenido de [2], se explica a continuacion.
En primer lugar se determina el rumbo de la recta que se desea seguir:
y2 y1
12 = atan
(5)
x2 x1
siendo x2 e y2 las coordenadas del punto objetivo y x1 e y1 las del waypoint anterior. En segundo
lugar se determina el error lateral:
elat = (x1 x)sin(12 ) + (y y1)cos(12 )
(6)
siendo x e y las coordenadas de la aeronave.
Las coordenadas cartesianas se han obtenido a partir de la latitud y la longitud tomando
como referencia el ARP(Airport Reference Point) del aeropuerto de Sevilla.
x = Rmer ( ARP )
(7)
y = Rnorm ( ARP )
(8)
Por u
ltimo, el rumbo comando se calcula empleando la siguiente expresion:
2
= 12 nf atan(Kpath elat )
(9)
siendo nf y Kpath dos variables de dise
no. La primera hace referencia al valor del rumbo de
aproximaci
on a la recta lejos de la misma y Kpath define la suavidad del acercamiento a la recta.
2.
Sistema de control
Los control de las aeronaves se divide a su vez en dos grupos: el controlador de alto nivel y el
controlador de bajo de nivel. El primero recibe las consignas del navegador es decir, la altitud,
el rumbo y la velocidad aerodin
amica. El segundo es el encargado de controlar las consignas que
el controlador de alto nivel define: pitch y roll.
En todos los controladores se ha implementado un anti-windup para evitar que el termino
integral aumente indefinidamente.
2.1.
Controlador de alto nivel
Como ya se ha comentado en el controlador de alto nivel incluye tres controladores: el control
de altitud, el control de rumbo y el control de velocidad aerodinamica. A continuacion se detalla
cada uno de ellos.
2.1.1.
Control de altitud
El control de altitud recibe la referencia de altitud y enva al controlador de bajo nivel
la referencia de pitch. El metodo utilizado para implementar el PI ha sido de implementaci
on
directa tal y como se muestra en la siguiente relacion:
ref = trim + kp (ek +
T
Ik )
Ti
(10)
siendo Ik el valor del termino integral que se calcula como se indica a continuacion:
Ik = Ik1 + ek
(11)
y trim es el valor de pitch de trimado para cada velocidad de referencia.
2
trim = 0,002 T ASref
0,472 T ASref + 27,72
2.1.2.
(12)
Control de rumbo
El control de rumbo se realiza con un PI que recibe las se
nales del navegador y mantiene
el rumbo impuesto enviando una consigna de roll. El controlador implementado es un PI con
implementaci
on directa:
T
ref = kp (ek + Ik )
(13)
Ti
Siendo Ik el valor del termino integral que se calcula como se indica a continuacion:
Ik = Ik1 + ek
2.1.3.
(14)
Control de TAS
Para el control de la velocidad aerodinamica verdadera (True Airspeed, TAS) se han dise
nado
dos controladores: uno para controlar la velocidad a traves de la posicion de palanca (throttle)
y otra a partir del pitch.
Control de TAS con throttle
Se ha implementado un PI para controlar la velocidad aerodinamica con la posicion de
palanca. Las entrada de este controlador es la consigna de velocidad del sistema de navegaci
on
y la salida es la posici
on de palanca establecida. Se ha empleado el metodo de implementaci
on
directa tal y como se indica a continuacion:
T,ref = kp (ek +
T
Ik )
Ti
(15)
Siendo T,ref la posici
on de palanca de referencia e Ik el valor del termino integral que se calcula
como se indica en la siguiente expresion:
Ik = Ik1 + ek
(16)
Ademas, para un mejor ajuste y relajar el trabajo del integrador se ha calculado una funci
on de
trimado tal que para cada velocidad de referencia se obtiene una posicion de palanca determinada.
2
T,trim = 5 105 T ASref
0,0061 T ASref + 0,89
(17)
Control de TAS con pitch
Con el objetivo de controlar la velocidad de descenso en la u
ltima fase del aterrizaje se ha
implementado este controlador que recibe la consigna de velocidad aerodinamica y establece
un pitch que permite alcanzar esa referencia. Se ha implementado un PI con el metodo de
implementaci
on directa:
T
ref = trim + kp (ek + Ik )
(18)
Ti
7
siendo Ik el valor del termino integral que se calcula como se indica a continuacion: Ik = Ik1 +ek
y trim es el valor del pitch de trimado para cada velocidad de referencia con un valor de throttle
de 0.1.
trim = 0,001 powf (refT AS, 2) 0,05 refT AS + 7,5;
(19)
2.2.
Controlador de bajo nivel
En esta secci
on se tratar
a el control de bajo nivel que es el encargado de controlar las
consignas de roll y pitch.
2.2.1.
Controlador de pitch
El controlador de pitch recibe las consignas del control de altitud o del control de velocidad
aerodinamica. Cuando el modo de vuelo es aterrizaje se utiliza este u
ltimo mientras que cuando
se vuela en crucero se reciben las consignas del control de altitud. Para controlar el pitch ha
implementado un PI con el metodo de implementacion directa:
e = kp (ek +
T
Ik )
Ti
(20)
siendo Ik el valor del termino integral que se calcula como se indica a continuacion: Ik = Ik1 +ek
2.2.2.
Controlador de roll
El controlador de roll recibe las se
nal de referencia del bloque de control de rumbo. Para
controlarlo tambien se ha empleado un PI con el metodo de implementacion directa:
a = kp (ek +
T
Ik )
Ti
(21)
siendo Ik el valor del termino integral que se calcula como se indica a continuacion: Ik = Ik1 +ek
2.3.
Respuesta de los controladores
En esta secci
on se mostrar
a la respuesta de los controladores ante diferentes entradas.
100
Airspeed [knot]
95
90
85
Estado
Referencia
80
75
0
50
100
150
200
250
150
200
250
Tiempo [s]
Throttle [-]
0.9
0.8
0.7
0.6
0.5
0.4
0
50
100
Tiempo [s]
Figura 4: Respuesta del controlador de velocidad
1250
Referencia
Estado
Altitud [ft]
1200
1150
1100
1050
1000
950
0
10
20
30
40
50
60
70
Tiempo [s]
10
Referencia
Estado
Pitch []
-5
-10
0
10
20
30
40
50
60
70
40
50
60
70
Tiempo [s]
0.1
Elevator [-]
0.05
-0.05
-0.1
0
10
20
30
Tiempo [s]
Figura 5: Respuesta del controlador de altitud
10
6
Referencia
Estado
Rumbo []
4
2
0
-2
-4
-6
150
160
170
180
190
200
210
220
230
240
250
Tiempo [s]
15
Referencia
Estado
Roll []
10
5
0
-5
-10
150
160
170
180
190
200
210
220
230
240
250
210
220
230
240
250
Tiempo [s]
0.2
Aileron [-]
0.15
0.1
0.05
0
-0.05
-0.1
150
160
170
180
190
200
Tiempo [s]
Figura 6: Respuesta del controlador de altitud
11
50
Rumbo []
Referencia
Estado
-50
0
20
40
60
80
100
120
Tiempo [s]
30
Referencia
Estado
Roll []
20
10
0
-10
-20
0
20
40
60
80
100
120
80
100
120
Tiempo [s]
0.2
0.15
Aileron [-]
0.1
0.05
0
-0.05
-0.1
-0.15
0
20
40
60
Tiempo [s]
Figura 7: Respuesta del controlador de altitud
12
82
Referencia
Estado
Airspeed [knot]
80
78
76
74
72
70
68
0
10
20
30
40
50
60
70
80
90
Tiempo [s]
10
Pitch []
Referencia
Estado
-5
0
10
20
30
40
50
60
70
80
90
60
70
80
90
Tiempo [s]
0.05
Elevator [-]
-0.05
-0.1
-0.15
0
10
20
30
40
50
Tiempo [s]
Figura 8: Respuesta del control de velocidad con pitch
13
3.
Programa en C
Los controladores se han implementado en un programa en C que se comunica via UDP
con Flightgear. Este programa ser
a el encargado de establecer las referencias y de controlar
totalmente la aeronave. Adem
as, para facilitar el proceso de representacion de datos se ha creado
una interfaz de comunicaci
on Simulink y se ha implementado un modelo que recibe, representa
en tiempo real y guarda los datos para su analisis.
El programa en C se divide en tres partes:
Programa base: incluye la funcion principal (main), los hilos de guiado y control y el hilo
para enviar datos a Simulink.
Librera de la interfaz de Flightgear: librera para enviar y recibir datos de Flightgear
facilitada por el profesor Joaqun Ferruz Melero.
Librera de la interfaz con Simulink: incluye la funciones necesarias para establecer la
conexi
on con Simulink y enviar datos.
A continuaci
on se describir
a brevemente el objetivo de cada funcion, para mas informaci
on
se puede consultar el c
odigo que se ha enviado junto con este documento.
3.1.
Funci
on main
Esta funci
on realiza las siguientes tareas:
Define y crea los hilos de control y comunicaciones.
Crea un conjunto de se
nales para detener el programa correctamente cuando se requiera.
Espera hasta que recibe la se
nal de parada.
Finaliza correctamente la conexion cerrando los sockets.
3.2.
Hilos de guiado y control
Se han definido los siguientes hilos de guiado y control:
Hilo de guiado: permite realizar las funciones que se han comentado anteriormente correspondientes al sistema de guiado.
Hilos de control: se han definido los siguientes hilos de control:
Control de altitud
Control de rumbo
Control de velocidad aerodinamica
Control de pitch
Control de roll
Control de throttle
14
3.3.
Conexi
on con Simulink
La comunicaci
on con Simulink se lleva a cabo mediante UDP. En el programa en C se
creado la librera isimulink.h que incluye las funciones necesarias para iniciar la conexi
on y
enviar datos.
Los datos que se envan a Simulink son las referencias de cada controlador: altitud, rumbo,
roll, pitch y velocidad aerodin
amica.
4.
Implementaci
on en Simulink
Simulink se ha empleado tanto para ajustar los controladores como para recibir los datos en
tiempo real de FligthGear y del programa en C durante el aterrizaje.
La implementaci
on de los controladores en Simulink se ha llevado a cabo para poder probar
en tiempo real los controladores y as ajustar las ganancia sin tener que compilar continuamente.
En la Fig. 9 se muestra el contenido del modelo en Simulink. Este
basicamente recibe los
datos de FlightGear, en el bloque Control se incluyen los controladores y en el bloque de Send
Data se envan las se
nales de control al simulador de vuelo.
Set
Pace
Simulation Pace
1 sec/sec
AC_data
Receive data
AC_data control_output
control_output
Send Data
Control
Figura 9: Modelo de control en FlightGear
Por otra parte, en la Fig. 10, se muestra el modelo implementado para recibir datos tanto de
FlightGear como del programa en C. Los datos se reciben por UDP con una tasa de muestreo
de 0.1 segundos.
15
AC_data
AC_data
To Workspace1
Receive states data
AC_data
Set
Pace
ref_data
Simulation Pace
Scopes
ref_data
1 sec/sec
received_ref
To Workspace
Receive references data
Figura 10: Modelo para recibir datos de FlightGear y el programa en C
5.
Aterrizaje autom
atico
Para terminar, en la Fig. 11 se muestra la trayectoria recorrida en Google Earth. Para representar esta trayectoria se ha empleado la herramienta KML toolbox [4]. Posteriormente se han
incluido gr
aficas donde se puede observar la respuesta de los controladores durante el aterrizaje.
Figura 11: Trayectoria representada en Google Earth
16
90
Referencia
Estado
TAS [m/s]
80
70
60
50
40
0
50
100
150
200
250
300
200
250
300
Time [s]
1
Throttle [-]
0.8
0.6
0.4
0.2
0
0
50
100
150
Time [s]
Figura 12: Respuesta del controlador de velocidad durante el aterrizaje
17
130
Referencia
Estado
Rumbo []
120
110
100
90
80
0
50
100
150
200
250
300
Time [s]
20
Referencia
Estado
Roll []
10
0
-10
-20
-30
0
50
100
150
200
250
300
200
250
300
Time [s]
0.2
Aileron [-]
0.1
-0.1
-0.2
0
50
100
150
Time [s]
Figura 13: Respuesta del controlador de rumbo durante el aterrizaje
18
1200
Referencia
Estado
Altitud [m]
1000
800
600
400
200
0
0
50
100
150
200
250
300
Time [s]
15
Referencia
Estado
Pitch []
10
5
0
-5
-10
0
50
100
150
200
250
300
200
250
300
Time [s]
0.1
Elevator [-]
0
-0.1
-0.2
-0.3
-0.4
0
50
100
150
Time [s]
Figura 14: Respuesta del controlador de altitud durante el aterrizaje
19
Referencias
[1] Applied mathematics in integrated navigation systems, second edition. Robert [Link].
[2] Small Unmanned Aircraft. Theory and Practice. Randal W. Beard, Timothy W. McLain.
[3] Cartas de aproximaci
on de los aerodromos espa
noles: [Link]
Satellite/navegacion-aerea/es/Page/1078418725163/?other=1083158950596&
other2=1083857760137#ancla350
[4] KML toolbox desarrollada por Rafael Oliveira
matlabcentral/fileexchange/34694-kml-toolbox
20
[Link]