Está en la página 1de 21

Computadores y Programacin

Matlab: SACTA

Enrique Hernndez y Joan Vila


DISCA / UPV Departament dInformtica de Sistemes i Computadors Universitat Politcnica de Valncia

SACTA
ndice
Computadores y Programacin

Introduccin Control de Trfico Areo. Coordenadas geogrficas Descripcin de SACTA Manual de la libreras SACTA. Ejercicios

CYP

Introduccin
Objetivo
Computadores y Programacin Desarrollo de un programa de control de trfico areo usando MATLAB.

Entorno
Se proporciona un entorno de simulacin SACTA:
Simulador de Aprendizaje de Control de Trfico Areo.

Es un simulador muy bsico.


Consta de un monitor de radar para Windows. Funciones de alto nivel para utilizarlo en Matlab. Escenarios simulados Conexin a radar secundario

NO es el objetivo del trabajo aprender Control de Trfico Areo.


Por ello, sistema. por motivos docentes, se ha simplificado el

CYP

SACTA
ndice
Computadores y Programacin

Introduccin Control de Trfico Areo. Coordenadas geogrficas Descripcin de SACTA Manual de la libreras SACTA. Ejercicios

CYP

Control de Trfico Areo


Objetivo
Computadores y Programacin Asegurar el trfico comercial y areo.
Coordinar los movimientos de miles de aviones mantener las distancias de seguridad guiarlos para el despegue o aterrizaje Gestionar incidencias (mal tiempo, cierre etc.)

aeropuertos,

y todo esto sin producir retrasos

Divisin
Todas este control se realiza por zonas.

CYP

Control de Trfico Areo


En Espaa el trfico se divide por zonas. Cada zona gestiona un rea geogrfica con un radar Cada zona esta enlazada con el resto por redes informticas.

Aena.swf

Divisin (ver animacin aena.swf arrastrando el fichero al navegador) Computadores y Programacin

CYP

Control de Trfico Areo


Centro de control de trnsito areo (ACC) Computadores y Programacin
Controla el trfico areo en la zona correspondiente. Estn situados en Madrid, Barcelona, Las Palmas de Gran Canaria y Sevilla, y el centro de control de rea terminal (TACC) de Palma de Mallorca. stos se complementan con los TACC de Valencia y Santiago, que proporcionan tambin distintos servicios de trnsito areo. Cada uno de estos centros dispone de un radar primario y secundario.
Primario: slo permite determinar la posicin de la aeronave en dos dimensiones Secundario ; ofrece datos tales como identificacin y nivel de vuelo (altura baromtrica), utilizando un transponder.

CYP

Control de Trfico Areo


Transponder (ver animacin transponder.swf) Computadores y Programacin
Responde a la seal del radar devolviendo informacin de altura, etc.

transponder.swf

CYP

Control de Trfico Areo


Plan de vuelo. Computadores y Programacin
Antes de iniciar un vuelo el piloto proporciona al controlador de trfico areo:
Nombre de la aerolnea y nmero de vuelo. Tipo de avin y equipamiento. Velocidad y altitud de vuelo prevista. Ruta de vuelo (aeropuerto origen y destino; centros por donde va a pasar).

Este plan de vuelo es validado y se introduce en el ordenador, que genera una ficha de progreso de vuelo.
Esta ficha se pasa de controlador a controlador cuando va pasando de zona. Esta ficha es constantemente actualizada con la informacin en tiempo real del vuelo.

CYP

Control de Trfico Areo


Navegacin area. Computadores y Programacin
Navegacin instrumental:
Se realiza con el apoyo de instrumentos. Tienen un plan de vuelo y sigue una rutas establecidas.

Cartas de navegacin
Definen las carreteras areas. Hay dos espacios areos:
Inferior : < 24000 ft (7320m). Superior: >= 24000 ft.

Separacin de seguridad.
Altitud:
Espacio areo Inferior 1000ft (305m) Espacio areo Superior 2000ft (610m)

CYP

Misma altitud: (8km).

millas

10

Control de Trfico Areo


Curiosidades I Computadores y Programacin
Whirlwind (1951). Primer ordenador para aplicaciones en tiempo real con una interfaz grfica.
SAGE: Precursor de los Sistemas de control de trfico areo

CYP

11

Control de Trfico Areo


Curiosidades II Computadores y Programacin
SAGE 1955: Evolucin de la terminal grfica.

CYP

12

SACTA
ndice
Computadores y Programacin

Introduccin Control de Trfico Areo. Coordenadas geogrficas Descripcin de SACTA Manual de la libreras SACTA. Ejercicios

CYP

13

Coordenadas geogrficas
Cualquier lugar de la Tierra se determina con dos nmeros, su latitud y su longitud.
La latitud mide el ngulo entre cualquier punto y el ecuador. La longitud mide el ngulo a lo largo del ecuador desde cualquier punto de la Tierra. Se acepta que Greenwich en Londres es la longitud 0.

CYP

Computadores y Programacin

14

Coordenadas geogrficas
Notacin utilizada: Computadores y Programacin
Hay varias notaciones para representar las coordenadas; nosotros vamos a utilizar nmero reales con signo. 1 es aproximadamente 110km. (pero varia dependiendo la latitud y la longitud)

N:Norte
Madrid (-3,41 40,24)

Latitud +

Palma de Mallorca (2,39 39,35)

O:Oeste

Longitud Latitud `-

Longitud +

E:Este

CYP

Santiago de Chile (-70,11 -20,32)

S:Sur

Sydney (151,18 -33,90) 15

SACTA
ndice
Computadores y Programacin

Introduccin Control de Trfico Areo. Coordenadas geogrficas Descripcin de SACTA Manual de la libreras SACTA. Ejercicios

CYP

16

Descripcin de SACTA
SACTA
Computadores y Programacin Consta de tres mdulos principales.
SACTAmon: Monitor SACTA.
Visualizador del espacio areo. Programa independiente para Windows.

Librera SACTA
Funciones para Matlab para poder controlar SACTAmon

RADAR
Funciones para Matlab para obtener informacin del radar.

Simulacin
Para desarrollar la aplicacin se simula la informacin del radar por medio del mdulo ESCENARIO
Esto permite definir varios escenarios para poder probar nuestro programas. Desarrollo y prueba ms rpido.

CYP

Datos reales RADAR


Cuando nuestro programa funcione correctamente nos conectaremos al RADAR real.
17

Descripcin de SACTA
Matlab SACTA Computadores y Programacin RADAR SACTAmon

Librera RADAR Para Matlab

Tu programa

Librera SACTA Para Matlab

TCP/IP

SACTAlib

CYP

18

Descripcin de SACTA
Matlab SACTA Computadores y Programacin RADAR SACTAmon

Librera RADAR Para Matlab

Tu programa

Librera SACTA Para Matlab

TCP/IP

SACTAlib ESCENARIO

CYP

Escenario simulado

19

Descripcin de SACTA
Monitor SACTA
Presenta la informacin del trfico areo. Informacin esttica
Malla: latitud y longitudes de referencia. Mapa : mapa vectorial de la zona. Rutas : rutas de vuelo

Computadores y Programacin

Informacin dinmica
Posicin del haz (ngulo) Tiempo. Objetos. Presenta la siguiente informacin:
Nombre, destino Longitud, Latitud Altitud (ft), Velocidad (NM/h).

CYP

Se puede presentar informacin.

ocultar

esta

Ventana con la informacin de los aviones

20

10

Descripcin de SACTA
Definicin de escenarios.
Los escenarios simulados se definen por medio de un array de estructuras, donde cada elemento i define un objeto:
e(i).Nombre = 'A380'; e(i).Destino = 'BCN'; e(i).Trayecto = [-0.042, 38, 5000, 0 ; -0.08, 40.13, 6000, 1200; 0.059, 42.46, 4000, 3000];

t0

Computadores y Programacin

t1

El nombre y destino son simplemente descriptivos, y lo ms interesante es la definicin de trayecto:


El trayecto es una matriz en la que cada fila se define.
Longitud, Latitud, Altura (pies), tiempo.

Cada fila est definiendo un punto para un tiempo t. Por lo tanto dos puntos i y i+1 estn definiendo una trayectoria entre los tiempos ti y ti+1. La velocidad vendr dada por la distancias entre los puntos partido (ti+1-ti) Si altura vale -1 indica que el avin no ha despegado (o se ha estrellado).

La forma de generar escenario (ver ejemplo escenario1.m)


Se crea un script y se crea la estructura e(i). Se guarda la variable e en un fichero.

CYP

Podis crear vuestros propios escenarios.

t2
21

SACTA
ndice
Computadores y Programacin

Introduccin Control de Trfico Areo. Coordenadas geogrficas Descripcin de SACTA Manual de la libreras SACTA. Ejercicios

CYP

22

11

Manual de las libreras SACTA


Libreras
Computadores y Programacin Se ha desarrollado un conjunto de funciones para manejar los distintos mdulos. Todas las funciones tienen ayuda (help Nombre_funcion) Todas las funciones tienen un prefijo indicando el nombre de la librera.
P.ej SACTA_PonCoord, RADAR_Leer.

SACTA
Hay funciones para Iniciar el monitor, poner coordenadas, mapa, rutas, etc. Actualizar los objetos.

RADAR
Obtiene informacin del RADAR

CYP

ESCENARIO
Contiene los escenarios. Lo utiliza RADAR para obtener los datos.
23

Manual de las libreras SACTA


SACTA I
Computadores y Programacin SACTA_Iniciar
Inicia las libreras y comprueba la conexin con el monitor SACTA Devuelve 0 si ha funcionado correctamente

SACTA_PonCoord
SACTA_PonCoord Define las coordenadas del Monitor RET = SACTA_PonCoord(pLonO, pLonE, pLatN, pLatS) donde pLonO y pLonE son las longitudes OESTE y ESTE, y pLatN y pLatS son la latitud NORTE y SUR Devuelve 0 si ha funcionado correctamente

CYP

24

12

Manual de las libreras SACTA


SACTA II
Computadores y Programacin SACTA_PonMalla
SACTA_PonMalla Define la malla (grid) del monitor RET = SACTA_PonMalla(pLon, pLat) pLon array con las longitudes donde hay definidas lneas pLat array con las latitudes donde hay definidas lneas Devuelve 0 si ha funcionado correctamente Ejemplo de uso LonGrid = [-2.0 -1.0 0 1.0 2.0]; LatGrid = [37.0 38.0 39.0 40.0 41.0]; SACTA_PonMalla(LonGrid, LatGrid);

CYP

25

Manual de las libreras SACTA


SACTA III Computadores y Programacin
SACTA_PonMapa
SACTA_PonMapa Pone el mapa en formato vectorial RET = SACTA_PonMapa(pMapa) pMapa es matriz con dos columnas (longitud y latitud) Un valor infinito indica que la prxima coordena no enlaza con la anteriores. Ejemplo Inf Inf -1.000045 37.584565 -1.002392 37.584565 -1.003272 37.585445 -1.006792 37.585445 Inf Inf -1.007672 37.586325 -1.007966 37.585738 -1.007966 37.584858 Devuelve 0 si ha funcionado correctamente

CYP

26

13

Manual de las libreras SACTA


SACTA IV
Computadores y Programacin SACTA_PonRutas
SACTA_PonRutas Define la rutas en pantalla RET = SACTA_PonRutas(pRutas) pRutas es un array de celdas en la que se contienen las rutas. Cada celda contiene una matriz con dos columnas y n-filas indicando longitud y latitud Ejemplo de creacin de rutas ruta1 = [ -0.5 41.0; 0.0 39; 0.5 38 ]; ruta2 = [ 2 39.1; 0 39.1]; ruta3 = [ 0 39.1; -2 39.5]; rutas = { ruta1 ruta2 ruta3 }; Devuelve 0 si ha funcionado correctamente

CYP

27

Manual de las libreras SACTA


SACTA V
SACTA_PonHaz

Computadores y Programacin

CYP

SACTA_PonHaz Actualiza el haz en pantalla RET = SACTA_PonHaz(pAngulo, pHora, pObjetos) pAngulo angulo en radianes del haz pHora Hora actual (es una cadena; se puede poner cualquier formato) pObjetos Un array con los objetos identificados por el haz Cada objeto es una estructura que contiene los siguientes elementos Campo Tipo Descripcin ------------------------------------------------------Clave uint16 Identificador nico del objeto Nombre charx8 Nombre del avin Destino charx4 Destino del avin Longitud double Longitud Latitud double Latitud Altura double Altura en pies Velocidad double Velocidad en mph Identificacion uint8 0 - sin identificar (OVNI); 1 Identificado Color uint8 Color del avin Estado uint8 Estado del avin (0 - correcto; 1 - peligro colisin; 2 - fuera de ruta) Si pAngulo es -1 no se muestra el haz ni se iluminan los objetos Devuelve 0 si ha funcionado correctament

28

14

Manual de las libreras SACTA


ESCENARIO
Computadores y Programacin ESCENARIO_Cargar
ESCENARIO_Cargar Carga un escenario a partir de un fichero ESCENARIO_Cargar(pEscenario, pVelocidad, pConectaRadar) pEscenario : Fichero donde est almacenado el escenario de pruebas pVelocidad : Indica la velocidad de simulacin. 1 funciona en tiempo real, > 1 se indica factor de multiplicacin del tiempo. Por ejemplo si pVelocidad es 10 indica que va 10 veces ms rpido y 10s de simulacin tardan 1 seg. real. pConectaRadar : (opcional) Si TRUE se conectar al radar de verdad (con lo cual los dos parameteros Escenario y Velocidad no se tienen en cuenta)

CYP

29

Manual de las libreras SACTA


ESCENARIO (II)
Computadores y Programacin
ESCENARIO_Distancia
ESCENARIO_Distancia devuelve la distancia entre dos coordenadas en km. ESCENARIO_Distancia(Lon1, Lat1, Lon2, Lat2) Aproximadamente... 1 grado latitud = 110 km 1 grado longitud = 111 km

ESCENARIO_DistPuntoRecta
ESCENARIO_DisPuntoRecta devuelve la distancia un punto y una recta definida por dos puntos en pies ESCENARIO_DistPuntoRect(Lonp1, Latp1, Lonr1, Latr1, Lonr2, Latr2) Lonp1, Latp1 : Longitud y latitud del punto Lonr1, Latr1, Lonr2, Latr2 : Longitud y latitud de los puntos r1 y r2 que definen la recta.

CYP

30

15

Manual de las libreras SACTA


RADAR
RADAR_Leer

Computadores y Programacin

RADAR_Leer Lee la informacin del radar en funcin del tiempo [iRet rAngulo rTiempo rObjetos ] = RADAR_Leer(pTiempo) pTiempo es un double con los segundos desde el inicio de la simulacin. Devuelve lo siguiento iRet : nmero de objetos ledos. rAngulo : ngulo actual del radar en radianes. Si en el escenario se indica turbo devuelve siempre -1. rTimepo : tiempo de la simulacin en segundos. Es un double. rObjetos : Lista de objetos. Cada objeto es una estructura que contiene los siguientes campos: Campo Tipo Descripcin ------------------------------------------------------Clave uint16 Identificador nico del objeto Nombre charx8 Nombre del avin Destino charx4 Destino del avin Longitud double Longitud Latitud double Latitud Altura double Altura en pies Velocidad double Velocidad en mph Identificacion uint8 devuelve 0 Color uint8 devuelve 0 Estado uint8 devuelve 0

CYP

31

SACTA
ndice
Computadores y Programacin

Introduccin Control de Trfico Areo. Coordenadas geogrficas Descripcin de SACTA Manual de la libreras SACTA. Ejercicios

CYP

32

16

Ejercicios
Ejercicios
Computadores y Programacin Los ejercicios estn pensados para tres sesiones de laboratorio.
Primera sesin: Presentacin y hacer bucle de control. Segunda sesin: Identificacin y control de objetos. Tercera sesin: Almacenar y visualizar trayectorias.

Para que el software funcione asegurarse que se tiene la versin de Matlab 7.1.0. o superior.

CYP

33

Ejercicios
Sesin 1: Configuracin de SACTA y creacin del bucle de lectura y actualizacin.
Primero bajarse el software de la microweb.
1. 2. 3.

Computadores y Programacin

Crear un directorio de trabajo (p.e. w:\cyp\SACTA). Bajar el fichero comprimido SACTA.zip y extraer directorio de trabajo. Configurar en Matlab el directorio de trabajo. Este script hara lo siguiente (en pseudocodigo) Cargar escenario e1. Iniciar SACTA Si correcto PonCoordenas PonMalla PonMapa PonRutas tiempo = 0; Bucle mientras tiempo sea menor tmax Lee objetos del radar Actualizar objetos en el radar. fin Fin

todos

los

fichero

al

Segundo: Crear un script para controlar todo el sistema (p.e. ControlTrafico.m).

CYP

Tercero: para probar el programa hay que tener arrancado el monitor. Desde el administrador de archivos lanzar la aplicacin SACTAmon.bat

34

17

Ejercicios
Sesin 1
Computadores y Programacin Datos
Coordenadas Manises : -0.28 39.29 ; 3 grados en ventana.
Es decir el cuadrado definido por los siguientes puntos -0.28-1.5,-0.28+1.5, 39.29-1.5, 39.29+1.5

Malla: presentar lnea para cada grado.


Las lneas estarn definidas en la siguiente longitudes -1,0,1 y latitudes 38,39,40.

Rutas:
A33 = [ -3.17 40.22; -0.28 39.29; 2.45 39.26 ]; A34 = [ 0.33 42.41; -0.1 40.15; -0.19 39.53; -0.28 39.29; -0.34 38.16; 0.012 36.52]; B28 = [ 2.06 41.18; -0.28 39.29; -2.13 38.21]; G30 = [ -0.28 39.29; 1.28 38.54]; N609 = [ -0.012 36.52; -0.08 40.13; 0.059 42.46];

Mapa: carga del fichero MapaCV.mat.


Este fichero contiene la variable mapaCV que es la que tiene que usar SACTA_PonMapa

CYP

Escenario e1, tMax = 2000s.


Cada escenario tiene un tiempo de simulacin. 35

Ejercicios
Sesin 2: Identificacin de los objetos Computadores y Programacin
Todos los ejercicios de esta sesin se basan en modificar el bucle para identificar y controlar los objetos.
Por ello despus de leer los objetos hay que realizar una serie de operaciones sobre ellos antes de enviarlos al monitor. El objetivo es rellenar correctamente los campos Identificacin y Estado de los objetos ledos. Para ello se realizar un bucle para los objetos ledo del radar y se desarrollar una funcin para cada ejercicio.
Esta funcin tendr como parmetro un objeto y devolver el objeto modificado.

En seudocodigo ser:
Mientras tiempo < tmax Objetos = RADAR_Leer Para todos los objetos Objeto_i = IdentificarObjeto(Objeto_i); Objeto_i = IdentificarRuta(Objeto_i, arg); Fin SACTA_PonHaz() fin

CYP

36

18

Ejercicios
Sesin 2: Ejercicios A
Computadores y Programacin Ej. 2.1: Identificacin de objetos.
Funcin IdentificarObjeto Objeto no identificado -> aquel que no tiene nombre. Si estn identificados se modifica el campo Identificacin. Utilizar escenario e1, tmax = 2000s

Ej. 2.2: Gestin de rutas


Funcin IdentificarRuta Comprobar si los objetos siguen una ruta (slo 2d) Pasando como parmetros las rutas definidas, comprobar que la distancia es menor a 1000 pies (en 2 dimensiones).
Para ello utilizar la funcin ESCENARIO_DistPuntoRecta El truco es buscar entre todas las recta de todas la rutas si hay alguna que est a menos de 200 pies.

CYP

Si un avin no est en ruta se modifica su estado a 2 (fuera ruta). Utilizar escenario e2, tmax = 2000s
37

Ejercicios
Sesin 2: Ejercicios B
Computadores y Programacin Ej. 2.3: Gestin de colisiones simple
Funcin ColisionSimple Comprobar si dos objetos van a colisionar Para ello a esta funcin se le pasar el objeto a comprobar y el array con todos los objetos. Para ello comprobar en cada momento si se respetan las distancias mnimas de seguridad. Si hay peligro de colisin el objeto pasa a estado colisin (1)
Para ello hay que iterar por cada objeto con el resto de objetos y comprobar las distancias de colisin. Primero comprobar si est a misma altitud (<1000ft) y luego comprobar distancia < 8km. Para esto ltimo podis utilizar la funcin ESCENARIO_Distancia.

Utilizar escenario e3 tmax = 2000s

CYP

38

19

Ejercicios
Sesin 2: Ejercicios C (opcional y para nota). Computadores y Programacin
Ej. 2.4: Gestin de colisiones con prediccin (opcional)
Funcin ColisionFutura Predecir si dos objetos van a colisionar Para ello se calcula la ruta de todos los objetos y se comprueba si va a colisionar con otro. Se avisar con 15 minutos de antelacin.
Idea: hay que obtener la ecuacin paramtrica de la recta en funcin de t a partir de dos puntos. El actual y otro anterior. Ver derecha. Para ello utiliza la funcin ESCENARIO_Parametrica. Con esta ecuacin se predice la situacin del objeto en t+15minutos. Se aplica los criterios de colisin simple para los nuevos puntos obtenidos. P1(lon1, lat1, alt1, t1)

P2(lon2, lat2, alt2, t2)

CYP

Utilizar escenario e3 tmax = 2000s

lon2 lon1 (t t1 ) + lon1 lon(t ) = t2 t1 lat lat1 P (t ) = lat (t ) = 2 (t t1 ) + lat1 t2 t1 alt alt1 alt (t ) = 2 (t t1 ) + alt1 t2 t1

39

Ejercicios
Sesin 3
Computadores y Programacin El objeto de esta sesin es almacenar la informacin de los vuelos en fichero y despus presentar est informacin Ej. 3.1: Modificar el programa de la sesin anterior para generar un fichero.
Este fichero debe almacenar en cada lnea el tiempo, Clave, Longitud,Latitud y Altura de todos los objetos. El nmero de muestras ser de una por iteracin

Un ejemplo de fichero es el siguiente


4 1 -0.0421267 38.0071 5003.33 4 3 -3.15844 40.2163 10000 8 1 -0.0422533 38.0142 5006.67 8 3 -3.14688 40.2126 10000 12 1 -0.04238 38.0213 5010 12 3 -3.13532 40.2088 10000 16 1 -0.0425067 38.0284 5013.33 16 3 -3.12376 40.2051 10000
40

CYP

20

Ejercicios
Sesin 3
Computadores y Programacin Ej. 3.2: Visualizacin de rutas 2-D
Realizar una funcin que leyendo el fichero generado en el ejercicio anterior visualice en un grfico las posiciones de los aviones. Para ello realizar una funcin
function DibujaObjeto2D(fichero, pClave)

Por ejemplo para el escenario 2 y clave 4 sacara El algoritmo sera como sigue
41

CYP

Abrir fichero en lectura Lon = []; Lat = []; Mientras no fin de fichero Leer tiempo, clave, longitud, latitud y altura Si la clave es igual a pClave aadir Longitud y Latitud a Lon y Lat Fin Fin Plot(Lon, Lat)

40.5

40

39.5

39

38.5

38 -1.5

-1

-0.5

0.5

1.5

41

Ejercicios
Sesin 3
Computadores y Programacin Ej. 3.3: Visualizacin de rutas 3-D
Modificar el ejemplo anterior para incluir Altura y dibujar en 3-D utilizando plot3. Para ello realizar una funcin
function DibujaObjeto3D(fichero, pClave)
10000 8000 6000 4000 2000 0 41 40 39 -1 38 -2 0 2 1

Ej. 3.4: Opcional


Modificar el ejercicio anterior pare que se muestren varios objetos en un mismo grfico. Cada uno de los aviones tendr un color de lnea diferente.

CYP

42

21

También podría gustarte