Está en la página 1de 20

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 M.Rogers.
[2] Small Unmanned Aircraft. Theory and Practice. Randal W. Beard, Timothy W. McLain.
[3] Cartas de aproximaci
on de los aerodromos espa
noles: http://www.enaire.es/csee/
Satellite/navegacion-aerea/es/Page/1078418725163/?other=1083158950596&
other2=1083857760137#ancla350
[4] KML toolbox desarrollada por Rafael Oliveira
matlabcentral/fileexchange/34694-kml-toolbox

20

https://www.mathworks.com/

También podría gustarte