Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SACTA
SACTA
Matlab: SACTA
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.
CYP
SACTA
ndice
Computadores y Programacin
Introduccin Control de Trfico Areo. Coordenadas geogrficas Descripcin de SACTA Manual de la libreras SACTA. Ejercicios
CYP
aeropuertos,
Divisin
Todas este control se realiza por zonas.
CYP
Aena.swf
CYP
CYP
transponder.swf
CYP
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
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
millas
10
CYP
11
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 +
O:Oeste
Longitud Latitud `-
Longitud +
E:Este
CYP
S:Sur
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
Descripcin de SACTA
Matlab SACTA Computadores y Programacin RADAR SACTAmon
Tu programa
TCP/IP
SACTAlib
CYP
18
Descripcin de SACTA
Matlab SACTA Computadores y Programacin RADAR SACTAmon
Tu programa
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
ocultar
esta
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
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).
CYP
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
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
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
CYP
25
CYP
26
13
CYP
27
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
CYP
29
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
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
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
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];
CYP
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
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.
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)
CYP
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
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
CYP
42
21