• Nenhum resultado encontrado

Capítulo 6 O Módulo de Acompanhamento e Previsão de Cená-

6.5 Implementação do MAPC

6.5.3 Modelagem do Cenário Atual

O sub-módulo de Modelagem do Cenário Atual é responsável por inserir as aeronaves em um cenário que representa a FIR-BS. A Figura 6.7 fornece

uma perspectiva das principais classes do sub-módulo, que são apresen- tadas em seguida.

Figura 6.7: Diagrama de classes do sub-módulo MCA

6.5.3.1 RepeatedFlightPlan.java

A classe modela um plano de vôo repetitivo elaborado de acordo com o doc- umento IEPV 100.21 [8]. Os planos de vôo recuperados pelo CTG são rep- resentados pela classe, que é uma especialização da classe abstrata Flight-

Plan. Esta última fornece inclusive suporte a implementação futura de

planos de vôo completos.

A classe é responsável por construir as rotas a serem seguidas pelas aeronaves. No plano de vôo, as informações de rota são armazenadas de duas maneiras: ordem de setores e ordem de trechos de aerovias. Os trechos componentes de uma rota são recuperados diretamente do banco de dados e, assim, tem-se a seqüência de setores pelos quais a aeronave vai passar.

6.5.3.2 Aircraft.java

Esta classe diz respeito ao comportamento da aeronave. Sempre que um plano de vôo é obtido, é criada uma instância que representa a aeronave. Os principais atributos relativos à aeronave são:

• flightPlan: o plano de vôo associado a este vôo;

• currentSection: o trecho percorrido pela aeronave atualmente; • currentSector: o setor onde a aeronave se localiza;

• lastSpeed: a velocidade da aeronave no momento anterior; é utilizada para o cálculo da aceleração;

• elapsedTimeOnSector: tempo de vôo no setor atual;

• elapsedTimeFlying: tempo total de vôo desde a entrada na FIR-BS; • distInSector: distância já percorrida dentro do setor atual;

• distanceToNextSector: distância restante para a transferência de se- tor.

É a própria classe que atualiza seus dados de posicionamento baseada nas informações de tempo. Os principais métodos da classe são:

• computeAverageTimes( ): Este método é utilizado para o modo de pre- visão estática. Sua funcionalidade é calcular os tempos médios de percorrimento dos trechos na rota da aeronave, apenas considerando os planos de vôo. O tempo médio é uma estimativa do tempo que a ae- ronave levaria para percorrer uma determinada seqüência de trechos, se ela se movimentar na velocidade prevista no plano de vôo. No caso, esta seqüência é uma sub-rota dentro de um setor, e cada um destes tempos médios é armazenado em um vetor. O pseudo-algoritmo que ilustra este método pode ser visto na Figura 6.8.

Figura 6.8: Algoritmo Calcula Tempos Médios de Percorrimento de Se-

tores().

• updateTotalDistance( ): Este método concentra a metodologia pro- posta para a modelagem do cenário atual. Aqui, a distância total percorrida da aeronave é calculada com base no tempo de vôo e ve- locidade desenvolvidos desde a última situação. Todos os atributos de distância da aeronave são devidamente atualizados, bem como a iden- tificação do nome e do horário de entrada no novo setor (na ocorrência deste evento).

• computeElapsedTimeOnSector( ): O método calcula o tempo de vôo no setor atual. No caso do modo estático de execução, o cálculo é feito baseando-se somente no tempo de vôo da aeronave decorrido desde o horário previsto de decolagem. Segundo os tempos médios computa- dos pelo método computeAverageTimes( ), a posição da aeronave é

Figura 6.9: Algoritmo Atualiza Distâncias().

obtida a partir da distância que esta consegue percorrer no tempo t1 + ... + tn. Se a distância for inferior ao comprimento do setor, o

tempo de vôo no setor atual é incrementado. Caso contrário, a aero- nave muda de setor e o tempo de vôo agora recebe a diferença entre o tempo total de vôo e t1 + ... + tn.

Em modo dinâmico, o cálculo é mais simples, pois a informação radar é utilizada para se efetuar a diferença entre o horário atual e o horário de transferência de setor.

Figura 6.10: Algoritmo Calcula Tempo de Vôo no Setor Atual().

6.5.3.3 Section.java

A classe Section representa um trecho de uma aerovia em um determinado setor. Seus atributos são de vital importância para a correta modelagem da trajetória da aeronave. Eles são:

• length: comprimento do trecho, em milhas náuticas; • name: nome da aerovia que contém o trecho;

• sector: setor no qual o trecho se localiza; • origin: ponto fixo no qual o trecho se inicia; • destination: ponto fixo no qual o trecho termina.

Os atributos origin e destination podem ser permutáveis, ou seja, eles apenas limitam o referido segmento de rota, sem importar o sentido no qual as aeronaves se deslocam.

6.5.3.4 FIRBS.java

Foi elaborada uma interface que define os métodos a serem implementados pelas FIRs do Brasil. Como o escopo do protótipo é a FIR-BS, tem-se que a classe FIRBS implementa tal interface, chamada ICurrentScenario.

Esta classe modela os cenários aéreos, contendo os setores, as aerovias, os pontos fixos e as aeronaves. Ela utiliza a interface do CTG para se comu- nicar com os managers de radar e de planos de vôo, a fim de obter e tratar os dados advindos do radar e da base de planos de vôo.

Seus métodos se limitam a operações entre setores e aeronaves, re- movendo ou adicionando aeronaves em um setor. Para isto, ela utiliza a classe Sector.java, que é apenas um container de aeronaves que tem uma ocupação específica. Estas modelagens são elaboradas segundo três mode- los de previsão:

• STATIC_ONLY: somente recupera as informações do banco de dados de planos de vôo e, dado o horário previsto de decolagem, é verificado se a aeronave está ou não em cruzeiro. No caso de a aeronave não estar na FIR-BS, ela não é tratada.

• DYNAMIC_ONLY: somente recupera as informações em tempo real, ou seja, provenientes do radar. Os planos de vôo são desprezados e o cenário é obtido apenas com as aeronaves que já estão sobrevoando a FIR-BS.

• STATIC_AND_DYNAMIC: este modo de execução mescla as funcional- idades providas pelos dois modos anteriores. Primeiramente, o radar é consultado para que se tenha a utilização momentânea do espaço aéreo. Em seguida, os planos de vôo são consultados. Se a aeronave é reportada pelo radar, seu plano de vôo é ignorado. No entanto, caso ela não esteja no radar, então seu plano de vôo é utilizado para atestar o atraso ou não em seu traslado.

Documentos relacionados