21
1 DISCA / UPV Departament d’Informàtica de Sistemes i Computadors Universitat Politècnica de València Enrique Hernández y Joan Vila Computadores y Programación Matlab: SACTA Matlab: SACTA 2 CYP Computadores y Programación SACTA SACTA Índice Introducción Control de Tráfico Aéreo. Coordenadas geográficas Descripción de SACTA Manual de la librerías SACTA. Ejercicios

Matlab: SACTA - Dpto. de Informática de Sistemas y ... · Funciones de alto nivel para utilizarlo en Matlab. Escenarios simulados ... – Ejercicios. 3 5 CYP Computadores y Programación

  • Upload
    ngodat

  • View
    231

  • Download
    0

Embed Size (px)

Citation preview

1

DISCA / UPV Departament d’Informàtica de Sistemes i Computadors

Universitat Politècnica de València

Enrique Hernández y Joan Vila

Computadores y Programación

Matlab: SACTAMatlab: SACTA

2

CYP

Com

puta

dore

s y

Prog

ram

ació

n

SACTASACTA

Índice– Introducción

– Control de Tráfico Aéreo.

– Coordenadas geográficas

– Descripción de SACTA

– Manual de la librerías SACTA.

– Ejercicios

2

3

CYP

Com

puta

dore

s y

Prog

ram

ació

nIntroducciIntroduccióónn

Objetivo

– Desarrollo de un programa de control de tráfico aéreo usando MATLAB.

Entorno

– Se proporciona un entorno de simulación SACTA:Simulador de Aprendizaje de Control de Tráfico Aéreo.

– Es un simulador muy básico.Consta de un monitor de radar para Windows.

Funciones de alto nivel para utilizarlo en Matlab.

Escenarios simulados

Conexión a radar secundario– NO es el objetivo del trabajo aprender Control de Tráfico Aéreo.

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

4

CYP

Com

puta

dore

s y

Prog

ram

ació

n

SACTASACTA

Índice– Introducción

– Control de Tráfico Aéreo.

– Coordenadas geográficas

– Descripción de SACTA

– Manual de la librerías SACTA.

– Ejercicios

3

5

CYP

Com

puta

dore

s y

Prog

ram

ació

nControl de TrControl de Trááfico Afico Aééreoreo

Objetivo

– Asegurar el tráfico comercial y aéreo. Coordinar los movimientos de miles de aviones

mantener las distancias de seguridad

guiarlos para el despegue o aterrizaje

Gestionar incidencias (mal tiempo, cierre aeropuertos, etc.)

– y todo esto sin producir retrasos…

División

– Todas este control se realiza por zonas.

6

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Control de TrControl de Trááfico Afico Aééreoreo

División (ver animación aena.swf arrastrando el fichero al navegador)

– En España el tráfico se divide por zonas.

– Cada zona gestiona un área geográfica con un radar

– Cada zona esta enlazada con el resto por redes informáticas.

Aena.swf

4

7

CYP

Com

puta

dore

s y

Prog

ram

ació

nControl de TrControl de Trááfico Afico Aééreoreo

Centro de control de tránsito aéreo (ACC)

– Controla el tráfico aéreo en la zona correspondiente. Están 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 también distintos servicios de tránsito aéreo.

– Cada uno de estos centros dispone de un radar primario y secundario.

Primario: sólo permite determinar la posición de la aeronave en dos dimensiones

Secundario ; ofrece datos tales como identificación y nivel de vuelo (altura barométrica), utilizando un transponder.

8

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Control de TrControl de Trááfico Afico Aééreoreo

Transponder (ver animación transponder.swf)

– Responde a la señal del radar devolviendo información de altura, etc.

transponder.swf

5

9

CYP

Com

puta

dore

s y

Prog

ram

ació

nControl de TrControl de Trááfico Afico Aééreoreo

Plan de vuelo.

– Antes de iniciar un vuelo el piloto proporciona al controlador de tráfico aéreo:

Nombre de la aerolínea y número de vuelo.

Tipo de avión 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 información en tiempo real del vuelo.

10

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Control de TrControl de Trááfico Afico Aééreoreo

Navegación aérea.– Navegación instrumental:

Se realiza con el apoyo de instrumentos.

Tienen un plan de vuelo y sigue una rutas establecidas.

– Cartas de navegaciónDefinen las “carreteras aéreas”.

Hay dos espacios aéreos:Inferior : < 24000 ft (7320m).Superior: >= 24000 ft.

– Separación de seguridad.Altitud:

Espacio aéreo Inferior 1000ft (305m)Espacio aéreo Superior 2000ft (610m)

Misma altitud: 5 millas (8km).

6

11

CYP

Com

puta

dore

s y

Prog

ram

ació

nControl de TrControl de Trááfico Afico Aééreoreo

Curiosidades I…

– Whirlwind (1951). Primer ordenador para aplicaciones en tiempo real con una interfaz gráfica.

SAGE: Precursor de los Sistemas de control de tráfico aéreo

12

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Control de TrControl de Trááfico Afico Aééreoreo

Curiosidades II…

– SAGE 1955: Evolución de la terminal gráfica.

7

13

CYP

Com

puta

dore

s y

Prog

ram

ació

nSACTASACTA

Índice– Introducción

– Control de Tráfico Aéreo.

– Coordenadas geográficas

– Descripción de SACTA

– Manual de la librerías SACTA.

– Ejercicios

14

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Coordenadas geogrCoordenadas geográáficasficas

Cualquier lugar de la Tierra se determina con dos números, 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.

8

15

CYP

Com

puta

dore

s y

Prog

ram

ació

nCoordenadas geogrCoordenadas geográáficasficas

Notación utilizada:

– Hay varias notaciones para representar las coordenadas; nosotros vamos a utilizar número reales con signo.

– 1º es aproximadamente 110km. (pero varia dependiendo la latitud y la longitud)

E:EsteO:Oeste

N:Norte

S:Sur

Madrid(-3,41 40,24)

Palma de Mallorca(2,39 39,35)

Longitud +Longitud -Latitud +

Latitud `-

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

Sydney(151,18 -33,90)

16

CYP

Com

puta

dore

s y

Prog

ram

ació

n

SACTASACTA

Índice– Introducción

– Control de Tráfico Aéreo.

– Coordenadas geográficas

– Descripción de SACTA

– Manual de la librerías SACTA.

– Ejercicios

9

17

CYP

Com

puta

dore

s y

Prog

ram

ació

nDescripciDescripcióón de SACTAn de SACTA

SACTA

– Consta de tres módulos principales.SACTAmon: Monitor SACTA.

Visualizador del espacio aéreo. Programa independiente para Windows.Librería SACTA

Funciones para Matlab para poder controlar SACTAmonRADAR

Funciones para Matlab para obtener información del radar.

– SimulaciónPara desarrollar la aplicación se simula la información del radar por medio del módulo ESCENARIO

Esto permite definir varios escenarios para poder probar nuestro programas.Desarrollo y prueba más rápido.

– Datos reales RADARCuando nuestro programa funcione correctamente nos conectaremos al RADAR real.

18

CYP

Com

puta

dore

s y

Prog

ram

ació

n

DescripciDescripcióón de SACTAn de SACTAMatlab

SACTAmon

TCP/IPLibrería SACTA

Para Matlab

SACTAlib

Librería RADARPara Matlab

SACTA

RADAR

Tu programa

10

19

CYP

Com

puta

dore

s y

Prog

ram

ació

nDescripciDescripcióón de SACTAn de SACTA

Matlab

SACTAmon

TCP/IPLibrería SACTA

Para Matlab

SACTAlib

Librería RADARPara Matlab

SACTA

RADAR

Tu programa

Escenario simulado

ESCENARIO

20

CYP

Com

puta

dore

s y

Prog

ram

ació

n

DescripciDescripcióón de SACTAn de SACTA

Monitor SACTA

– Presenta la información del tráfico aéreo.

– Información estáticaMalla: latitud y longitudes de referencia.

Mapa : mapa vectorial de la zona.

Rutas : rutas de vuelo

– Información dinámicaPosición del haz (ángulo)

Tiempo.

Objetos. Presenta la siguiente información:

Nombre, destinoLongitud, LatitudAltitud (ft), Velocidad (NM/h).

– Se puede presentar o ocultar esta información.

– Ventana con la información de los aviones

11

21

CYP

Com

puta

dore

s y

Prog

ram

ació

nDescripciDescripcióón de SACTAn de SACTA

Definición 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];

– El nombre y destino son simplemente descriptivos, y lo más interesante es la definición 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 están 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 avión 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.

– Podéis crear vuestros propios escenarios.

t0

t1

t2

22

CYP

Com

puta

dore

s y

Prog

ram

ació

n

SACTASACTA

Índice– Introducción

– Control de Tráfico Aéreo.

– Coordenadas geográficas

– Descripción de SACTA

– Manual de la librerías SACTA.

– Ejercicios

12

23

CYP

Com

puta

dore

s y

Prog

ram

ació

nManual de las librerManual de las libreríías SACTAas SACTA

Librerías– Se ha desarrollado un conjunto de funciones para manejar los distintos

módulos.

– Todas las funciones tienen ayuda (help Nombre_funcion)

– Todas las funciones tienen un prefijo indicando el nombre de la librería.P.ej SACTA_PonCoord, RADAR_Leer.

– SACTAHay funciones para Iniciar el monitor, poner coordenadas, mapa, rutas, etc.

Actualizar los objetos.

– RADARObtiene información del RADAR

– ESCENARIOContiene los escenarios. Lo utiliza RADAR para obtener los datos.

24

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Manual de las librerManual de las libreríías SACTAas SACTA

SACTA I

– SACTA_IniciarInicia las librerías y comprueba la conexión con el monitor SACTA

Devuelve 0 si ha funcionado correctamente

– SACTA_PonCoordSACTA_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

13

25

CYP

Com

puta

dore

s y

Prog

ram

ació

nManual de las librerManual de las libreríías SACTAas SACTA

SACTA II

– SACTA_PonMallaSACTA_PonMalla Define la malla (grid) del monitor

RET = SACTA_PonMalla(pLon, pLat)

pLon array con las longitudes donde hay definidas líneas

pLat array con las latitudes donde hay definidas líneas

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);

26

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Manual de las librerManual de las libreríías SACTAas SACTA

SACTA III– 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 próxima 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

14

27

CYP

Com

puta

dore

s y

Prog

ram

ació

nManual de las librerManual de las libreríías SACTAas SACTA

SACTA IV

– SACTA_PonRutasSACTA_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 creación 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

28

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Manual de las librerManual de las libreríías SACTAas SACTA

SACTA V– SACTA_PonHaz

SACTA_PonHaz Actualiza el haz en pantallaRET = SACTA_PonHaz(pAngulo, pHora, pObjetos)pAngulo angulo en radianes del hazpHora Hora actual (es una cadena; se puede poner cualquier formato)pObjetos Un array con los objetos identificados por el hazCada objeto es una estructura que contiene los siguientes elementos

Campo Tipo Descripción-------------------------------------------------------Clave uint16 Identificador único del objetoNombre charx8 Nombre del aviónDestino charx4 Destino del aviónLongitud double LongitudLatitud double LatitudAltura double Altura en piesVelocidad double Velocidad en mphIdentificacion uint8 0 - sin identificar (OVNI); 1 – IdentificadoColor uint8 Color del avión Estado uint8 Estado del avión (0 - correcto;

1 - peligro colisión; 2 - fuera de ruta)

Si pAngulo es -1 no se muestra el haz ni se iluminan los objetos Devuelve 0 si ha funcionado correctament

15

29

CYP

Com

puta

dore

s y

Prog

ram

ació

nManual de las librerManual de las libreríías SACTAas SACTA

ESCENARIO

– ESCENARIO_CargarESCENARIO_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 simulación.

1 funciona en tiempo real,

> 1 se indica factor de multiplicación del tiempo.

Por ejemplo si pVelocidad es 10 indica que va 10

veces más rápido y 10s de simulación 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)

30

CYP

Com

puta

dore

s y

Prog

ram

ació

n

Manual de las librerManual de las libreríías SACTAas SACTA

ESCENARIO (II)– 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_DistPuntoRectaESCENARIO_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.

16

31

CYP

Com

puta

dore

s y

Prog

ram

ació

nManual de las librerManual de las libreríías SACTAas SACTA

RADAR– RADAR_Leer

RADAR_Leer Lee la información del radar en función del tiempo[iRet rAngulo rTiempo rObjetos ] = RADAR_Leer(pTiempo)pTiempo es un double con los segundos desde el inicio de la simulación.Devuelve lo siguiento

iRet : número de objetos leídos.rAngulo : ángulo actual del radar en radianes. Si en el escenario se

indica turbo devuelve siempre -1.rTimepo : tiempo de la simulación en segundos. Es un double.rObjetos : Lista de objetos.

Cada objeto es una estructura que contiene los siguientescampos:

Campo Tipo Descripción-------------------------------------------------------Clave uint16 Identificador único del objetoNombre charx8 Nombre del aviónDestino charx4 Destino del aviónLongitud double LongitudLatitud double LatitudAltura double Altura en piesVelocidad double Velocidad en mphIdentificacion uint8 devuelve 0Color uint8 devuelve 0Estado uint8 devuelve 0

32

CYP

Com

puta

dore

s y

Prog

ram

ació

n

SACTASACTA

Índice– Introducción

– Control de Tráfico Aéreo.

– Coordenadas geográficas

– Descripción de SACTA

– Manual de la librerías SACTA.

– Ejercicios

17

33

CYP

Com

puta

dore

s y

Prog

ram

ació

nEjerciciosEjercicios

Ejercicios

– Los ejercicios están pensados para tres sesiones de laboratorio.Primera sesión: Presentación y hacer bucle de control.

Segunda sesión: Identificación y control de objetos.

Tercera sesión: Almacenar y visualizar trayectorias.

– Para que el software funcione asegurarse que se tiene la versión de Matlab 7.1.0. o superior.

34

CYP

Com

puta

dore

s y

Prog

ram

ació

n

EjerciciosEjercicios

Sesión 1: Configuración de SACTA y creación del bucle de lectura y actualización.– Primero bajarse el software de la microweb.

1. Crear un directorio de trabajo (p.e. w:\cyp\SACTA).2. Bajar el fichero comprimido SACTA.zip y extraer todos los fichero al

directorio de trabajo.3. Configurar en Matlab el directorio de trabajo.

– Segundo: Crear un script para controlar todo el sistema (p.e. ControlTrafico.m).Este script haría lo siguiente (en pseudocodigo)Cargar escenario ‘e1’.Iniciar SACTASi correcto

PonCoordenasPonMallaPonMapaPonRutastiempo = 0;Bucle mientras tiempo sea menor tmax

Lee objetos del radarActualizar objetos en el radar.

finFin

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

18

35

CYP

Com

puta

dore

s y

Prog

ram

ació

nEjerciciosEjercicios

Sesión 1– 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 línea para cada grado.Las líneas estarán 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

Escenario e1, tMax = 2000s.Cada escenario tiene un tiempo de simulación.

36

CYP

Com

puta

dore

s y

Prog

ram

ació

n

EjerciciosEjercicios

Sesión 2: Identificación de los objetos– Todos los ejercicios de esta sesión se basan en modificar el bucle para identificar y

controlar los objetos.Por ello después 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 Identificación y Estado de los objetos leídos.

Para ello se realizará un bucle para los objetos leído del radar y se desarrollará una función para cada ejercicio.

Esta función tendrá como parámetro 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

19

37

CYP

Com

puta

dore

s y

Prog

ram

ació

nEjerciciosEjercicios

Sesión 2: Ejercicios A– Ej. 2.1: Identificación de objetos.

Función IdentificarObjeto

Objeto no identificado -> aquel que no tiene nombre.

Si están identificados se modifica el campo Identificación.

Utilizar escenario e1, tmax = 2000s

– Ej. 2.2: Gestión de rutasFunción IdentificarRuta

Comprobar si los objetos siguen una ruta (sólo 2d)

Pasando como parámetros las rutas definidas, comprobar que la distancia es menor a 1000 pies (en 2 dimensiones).

Para ello utilizar la función ESCENARIO_DistPuntoRectaEl truco es buscar entre todas las recta de todas la rutas si hay alguna que esté a menos de 200 pies.

Si un avión no está en ruta se modifica su estado a 2 (fuera ruta).

Utilizar escenario e2, tmax = 2000s

38

CYP

Com

puta

dore

s y

Prog

ram

ació

n

EjerciciosEjercicios

Sesión 2: Ejercicios B

– Ej. 2.3: Gestión de colisiones simpleFunción ColisionSimple

Comprobar si dos objetos van a colisionar

Para ello a esta función 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 mínimas de seguridad. Si hay peligro de colisión el objeto pasa a estado colisión (1)

Para ello hay que iterar por cada objeto con el resto de objetos y comprobar las distancias de colisión.Primero comprobar si está a misma altitud (<1000ft) y luego comprobar distancia < 8km. Para esto último podéis utilizar la función ESCENARIO_Distancia.

Utilizar escenario e3 tmax = 2000s

20

39

CYP

Com

puta

dore

s y

Prog

ram

ació

nEjerciciosEjercicios

Sesión 2: Ejercicios C (opcional y para nota…).

– Ej. 2.4: Gestión de colisiones con predicción (opcional)Función 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 antelación.

Idea: hay que obtener la ecuación paramétrica de la recta en función de t a partir de dos puntos. El actual y otro anterior. Ver derecha.Para ello utiliza la función ESCENARIO_Parametrica.Con esta ecuación se predice la situación del objeto en t+15minutos.Se aplica los criterios de colisión simple para los nuevos puntos obtenidos.

Utilizar escenario e3 tmax = 2000s

2 11 1

2 1

2 11 1

2 1

2 11 1

2 1

( ) ( )

( ) ( ) ( )

( ) ( )

lon lonlon t t t lont t

lat latP t lat t t t latt t

alt altalt t t t altt t

⎛ ⎞−= − +⎜ ⎟−⎜ ⎟

⎜ ⎟−= = − +⎜ ⎟

−⎜ ⎟⎜ ⎟−

= − +⎜ ⎟−⎝ ⎠

P1(lon1, lat1, alt1, t1)

P2(lon2, lat2, alt2, t2)

40

CYP

Com

puta

dore

s y

Prog

ram

ació

n

EjerciciosEjercicios

Sesión 3– El objeto de esta sesión es almacenar la información de los vuelos en fichero

y después presentar está información

– Ej. 3.1: Modificar el programa de la sesión anterior para generar un fichero.Este fichero debe almacenar en cada línea el tiempo, Clave, Longitud,Latitud y Altura de todos los objetos.

El número de muestras será de una por iteración

– Un ejemplo de fichero es el siguiente4 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

21

41

CYP

Com

puta

dore

s y

Prog

ram

ació

nEjerciciosEjercicios

Sesión 3– Ej. 3.2: Visualización de rutas 2-D

Realizar una función que leyendo el fichero generado en el ejercicio anterior visualice en un gráfico las posiciones de los aviones.

Para ello realizar una funciónfunction DibujaObjeto2D(fichero, pClave)

Por ejemplo para el escenario 2 y clave 4 sacaría

El algoritmo sería como sigueAbrir fichero en lecturaLon = []; Lat = [];Mientras no fin de fichero

Leer tiempo, clave, longitud, latitud y alturaSi la clave es igual a pClave

añadir Longitud y Latitud a Lon y LatFin

FinPlot(Lon, Lat) -1.5 -1 -0.5 0 0.5 1 1.5 2

38

38.5

39

39.5

40

40.5

41

42

CYP

Com

puta

dore

s y

Prog

ram

ació

n

EjerciciosEjercicios

Sesión 3

– Ej. 3.3: Visualización de rutas 3-DModificar el ejemplo anterior para incluir Altura y dibujar en 3-D utilizando plot3.

Para ello realizar una función

function DibujaObjeto3D(fichero, pClave)

– Ej. 3.4: OpcionalModificar el ejercicio anterior pare que se muestren varios objetos en un mismo gráfico.

Cada uno de los aviones tendráun color de línea diferente.

-2-1

01

2

38

39

40

410

2000

4000

6000

8000

10000