CAPÍTULO 1 INTRODUÇÃO A modelagem e simulação de sistemas de redes de comunicação de dados se constituem em ferramentas valiosas, pois elas fornecem uma maneira de avaliar o desempenho destas sem que se perturbe o seu funcionamento ou até mesmo antes de sua construção. Elas fornecem também uma maneira de se estudar diferentes alternativas para sua configuração, através de análises do tipo “o que ocorreria se...”, que contribuem para o aumento da confiabilidade dos componentes e da totalidade da rede. O Sistema Brasileiro de Coleta de Dados Baseado em Satélites consiste de plataformas coletoras de dados, satélites retransmissores e estações terrenas, entre elas o Centro de Controle de Missão, que estão interligados por enlaces de comunicação. Este sistema, a seguir denominado simplesmente de SBCD, é utilizado em aplicações ambientais dos satélites da MECB (Missão Espacial Completa Brasileira) e será modelado neste trabalho como uma rede de comunicação de dados que possui um 'link' baseado em satélite. As questões associadas com a quantificação do número de plataformas de coleta de dados, a distribuição geográficas e a operação satisfatória destas, tendo em vista a dependência que elas apresentam em relação aos satélites em sua órbita terrestre, resultam complexas e de elevado custo, envolvendo freqüentemente até entidades externas ao Instituto, interessadas na obtenção e tratamento desses dados. Desta forma a possibilidade de se estudar, de antemão, aspectos ligados à estruturação, operação e desempenho do sistema, visando projetar a sua melhor configuração e reduzir os custos de sua implantação e operação, tornam a simulação uma alternativa interessante de ferramenta para a análise 17 deste tipo de sistema. 1.1 MOTIVAÇÃO E ORIGEM A presente dissertação se originou a partir da proposta de um projeto de engenharia de responsabilidade da Gerência do Segmento Solo da MECB (SSM), da Coordenadoria de Engenharia e Tecnologia Espacial (ETE) do Instituto Nacional de Pesquisas Espaciais (INPE). O objetivo original do projeto era desenvolver técnicas e/ou ferramentas que permitissem analisar a capacidade e a forma de operação do SBCD, com vistas a orientar o seu crescimento e definir procedimentos para se obter um melhor desempenho do sistema. A criação de um simulador para auxiliar na análise da capacidade do sistema e permitir o seu melhor aproveitamento foi inicialmente identificada em Tude et al. (1986), em um relatório técnico que descreve os enlaces de subida (Plataforma de Coleta de Dados -Transponder), de descida (Transponder Estação Terrena) e o processo de modulação a bordo do satélite. A SSM elaborou posteriormente uma especificação de requisitos para o Simulador do Sistema Brasileiro de Coleta de Dados, visando efetuar uma licitação pública para a sua construção (INPE, 1995). As especificações apresentadas e as características peculiares do sistema tornaram o simulador de elevado risco para as firmas concorrentes, que precisariam reunir especialistas com conhecimentos de várias áreas distintas para a sua construção, elevando, por conseguinte, o preço final solicitado, inviabilizando o projeto (Braga, 1995), (Elebra, 1995), (Iman, 1995). O presente trabalho baseia-se na documentação existente sobre o projeto 18 citado e retoma a idéia de desenvolvimento do simulador com base numa abordagem acadêmica, caracterizada pelo uso das técnicas e ferramentas de simulação discretas disponíveis no Laboratório Associado de Computação e Matemática Aplicada (LAC) para fins didáticos e de pesquisa, visando a criação de um protótipo do mesmo e a realização de um estudo completo de simulação do SBCD. As limitações devidas ao escopo acadêmico e à abrangência do protótipo, entretanto, não devem ser vistos como fatores que impliquem na existência de restrições definitivas às capacidades do sistema, que está dotado de todas as condições (estruturação, flexibilidade, etc.) que o permitem evoluir e vir a se tornar um simulador completo do SBCD, capaz de contemplar todas as necessidades da SSM. 1.2 OBJETIVOS O objetivo geral da pesquisa descrita neste trabalho é a realização de um estudo de simulação do SBCD (Sistema Brasileiro de Coleta de Dados Baseado em Satélites), tendo como foco principal a análise do tráfego de mensagens na rede de comunicação de dados constituídas pelo sistema real. Um estudo completo de simulação compreende todas as etapas envolvidas na análise e criação do simulador, desde a definição do problema, desenvolvimento do modelo, sua experimentação e o apoio à tomada de decisão (Kienbaum, 1989). Conforme formulado acima, o objetivo geral da pesquisa é de longo prazo e de escopo muito abrangente, tendo como componente principal a criação de um modelo computacional de simulação (simulador) do SBCD, com capacidade para analisar a configuração, operação e desempenho do sistema real, permitindo a tomada de decisões estratégicas sobre o mesmo. 19 O simulador será utilizado para determinar importantes parâmetros operacionais do sistema, tais como configurações limites e o número máximo de PCDs que podem ser utilizadas pelo sistema, permitir a avaliação do seu desempenho para uma dada configuração, além de permitir analisar alternativas para a atualização do sistema, relacionados com diferentes configurações de Plataformas de Coleta de Dados - PCDs (tipo, número, localização, etc.), com as Estações de Recepção de Coleta de Dados - ERCDs (tipo, número, localização, etc.) e com os satélites em utilização (número, órbitas, etc.). Devido à complexidade e à abrangência do objetivo geral, e à necessidade de desenvolvimento do próprio simulador, entretanto, este trabalho priorizará, como objetivo específico, a execução das etapas de definição do problema, de determinação dos requisitos, de elaboração da análise e da prototipação do simulador. Um outro objetivo específico do trabalho é a utilização de uma abordagem de simulação discreta orientada a objetos para explorar as vantagens desta técnica na modelagem do problema e, permitir a rápida prototipação de um simulador do sistema SBCD. A execução das corridas e a análise de resultados da simulação serão apresentados em parte como continuação da pesquisa e do desenvolvimento aqui apresentados, uma vez que o simulador tenha sido completado com todos os recursos necessários para tal, conforme projetados neste trabalho. Para isto antecipa-se, com base no conhecimento adquirido sobre o sistema SBCD e na experiência de utilização de interfaces de simulação de características semelhantes, quais serão os procedimentos a serem seguidos para uso do simulador na montagem dos cenários, no planejamento dos experimentos, na execução das corridas de simulação, e na análise e 20 apresentação dos resultados, com a finalidade de auxiliar a equipe que estará futuramente encarregada do simulador. 1.3 ESTRATÉGIA E MÉTODOS O sistema foi analisado como um problema típico de simulação discreta, no qual o sistema real é visualizado como uma rede de comunicação de dados e o objetivo principal é a análise do tráfego de mensagens nesta rede. O paradigma de orientação a objetos é utilizado para a criação de um modelo computacional de simulação do sistema adotando-se uma estratégia de desenvolvimento iterativo e incremental, na qual as funcionalidades do simulador são expandidas de forma gradual. O uso da linguagem de simulação MODSIM III possibilita o emprego da metodologia e da estratégia de desenvolvimento escolhidos. 1.4 ESTRUTURA DO TRABALHO Esta dissertação está estruturada da seguinte forma. No Capítulo 1 fez-se uma pequena introdução do trabalho, a motivação que originou a dissertação, seus objetivos e a estratégia e os métodos utilizados na condução da pesquisa. O capítulo termina com a apresentação da estrutura geral do trabalho. A seguir, no Capítulo 2, é apresentado o contexto geral no qual a pesquisa se insere, consistindo da formulação do problema, da análise das alternativas de abordagem, da fundamentação teórica do uso de simulação orientada a objeto como técnica de análise, bem como a escolha da ferramenta de implementação do protótipo do simulador. No Capítulo 3 é feita a descrição geral do SBCD. 21 No Capítulo 4 são descritos os requisitos funcionais do simulador, que norteiam a condução das fases de análise e de projeto. Como resultado, são apresentadas a estrutura dos módulos e de classes das componentes do protótipo do simulador e são estabelecidas as limitações para o seu desenvolvimento. O Capítulo 5 descreve a implementação do protótipo, as fases de evolução da pesquisa e o estágio de desenvolvimento atual do protótipo. O capítulo 6 estabelece as linhas mestras para a continuação desta pesquisa, destacando aspectos relacionados com o aperfeiçoamento e a adição de novas facilidades ao simulador, discutindo questões relacionadas com a verificação e validação do mesmo, e fazendo uma projeção sobre como será o estudo de simulação a ser realizado como sistema SBCD. Por último, no Capítulo 7, são apresentadas as conclusões deste trabalho. 22 CAPÍTULO 2 FUNDAMENTAÇÃO E CONTEXTO DA PESQUISA Neste capítulo serão apresentados os principais conceitos sobre os quais o desenvolvimento deste trabalho está baseado. Serão feitas considerações sobre a formulação do problema, com sua complexidade e multidisciplinaridade intrínsecas e sobre as possíveis alternativas de análises existentes para o mesmo. Com relação à técnica de abordagem escolhida, a simulação de sistemas, descreve-se a seguir suas principais etapas e conceitos, o uso de orientação a objetos, bem como a linguagem MODSIM III empregada para a elaboração do protótipo. 2.1 A FORMULAÇÃO DO PROBLEMA O problema é visto como uma rede de comunicação de dados, envolvendo estações de coleta e de recebimento de dados, satélites e links. O SBCD contempla todos os processos, desde a geração das mensagens pelas PCDs, o enlace de subida para o satélite, o processo de transposição de freqüência, o enlace de descida até as estações terrenas, até o processo de recepção e tratamento dos dados, que serão disponibilizados para os usuários finais, tanto em sua forma bruta, como pré-formatados. Com base no conceito de sistemas, pode-se caracterizar o SBCD como um sistema complexo, composto por subsistemas ativos (PCDs – satélites – ERCDs) e dotado de uma estrutura geral, que descreve a forma como estes subsistemas interagem. Modificações da configuração, do comportamento e da forma de interação dos subsistemas podem ser estudadas através de investigações de natureza analítica ou numérica. 23 Para se entender as características destes subsistemas e suas formas de interação são requeridos conhecimentos profundos de diversas disciplinas. O estudo do SBCD precisa considerar, no mínimo, tópicos relativos à área de simulação, engenharia de “software”, telecomunicações e redes e mecânica celeste (Escobal, 1965) (Há, 1990) (Pressman, 1992). 2.2 ALTERNATIVAS DE ABORDAGEM O estudo de um sistema, visando conhecer como interagem os seus diversos componentes e/ou avaliar o seu desempenho quando submetido a novas condições de operação, pode ser realizado utilizando-se diversas formas de abordagem, conforme descritas na Figura 2.1 (Law e Kelton,1992). Sistema Experimento com um Modelo do Sistema Experimento com o Sistema Real Modelo Físico Modelo Matemático Solução Analítica Simulação Fig. 2.1 - Alternativas para estudar um sistema. FONTE: Law e Kelton (1992). Do que está apresentado na Figura 2.1, pode-se sintetizar, para o caso do 24 problema em estudo, que as alternativas de abordagem disponíveis são as seguintes: 1) Experimento com o sistema real; 2) Modelagem matemática e solução analítica; e 3) Estudo de simulação. No caso do SBCD fica descartada a experimentação com um modelo físico, também chamado icônico, construído em escala do sistema real, pois este seria de difícil realização e de limitados resultados para o problema em questão. 2.2.1 EXPERIMENTO COM O SISTEMA REAL Alterar o sistema real e operá-lo sob as novas condições, é provavelmente a escolha mais confiável, não havendo nenhum questionamento quanto a validade do estudo. Entretanto, é muito pouco provável que se faça um experimento dessa natureza, porque isto pode comprometer, seriamente, o funcionamento normal do sistema. No experimento com o sistema real, abordagem empírica, usa-se todo o conhecimento pessoal adquirido com a experiência prática de operação do sistema, para analisar o seu comportamento. Esse tipo de abordagem apresenta alto risco associado quando se deseja avaliar o comportamento do sistema nos casos de modificações de projeto, seja pela inclusão de novos elementos e, também, no caso de se estabelecer alterações na política de funcionamento vigente. Para o primeiro caso, por exemplo, incluir uma nova PCD é a alteração mais 25 comum na rede. Porém, somente após a sua instalação, em uma presumível localização favorável, se poderá avaliar as conseqüências decorrentes desta nova plataforma sobre o conjunto de mensagens que, anteriormente, seriam transmitidas no sistema. Caso não se obtenha os resultados esperados, uma nova tentativa deverá ser realizada com o sistema em pleno funcionamento, implicando no transporte e reinstalação dos equipamentos em outra posição. Dependendo da região onde a plataforma deva operar, certamente incidirão custos adicionais, decorrentes da mudança de local e, ainda assim, levarem, mais uma vez, a resultados desfavoráveis. O estabelecimento de diferentes políticas de funcionamento, também são de difícil implementação, pois as modificações planejadas não podem ser testadas previamente, e têm que ser efetivadas com o sistema em operação, com todos os riscos associados ao processo. 2.2.2 MODELO MATEMÁTICO E SOLUÇÃO ANALÍTICA Avaliações a partir de um modelo são recomendadas para os sistemas que não permitam experimentos reais, ou que possam vir a comprometer sua operação normal. Em outros casos, o sistema pode, ainda, nem existir, mas se deseja conhecer as várias configurações possíveis, para orientar como construí-lo. Por essa razão, é necessário criar um modelo que o represente e que permita estudá-lo como substituto do sistema verdadeiro. A grande maioria dos modelos construídos com a finalidade de estudo são modelos matemáticos. Estes modelos representam o sistema em termos de seus relacionamentos lógicos e quantitativos, que são manipulados e alterados para se saber como o modelo reage e, então, se concluir como o sistema deve reagir, caso o modelo matemático criado for válido. 26 Na abordagem analítica, deve-se obter um modelo matemático que descreva o sistema real para que as análises de seu comportamento possam ser realizadas, via a alteração das variáveis do modelo. A maior dificuldade dessa técnica refere-se a dificuldade em se obter o modelo matemático que descreva o sistema desejado. Ao se construir um modelo matemático, ele deve ser examinado para se verificar se é possível responder as perguntas, acerca do sistema que ele representa. Se o modelo for simples, pode-se trabalhar, diretamente, com suas quantidades e relacionamentos para se conseguir uma solução analítica exata. Logo, se existe uma solução analítica para o modelo matemático e ela é eficiente, deve-se optar por esta forma de solução. 2.2.3 ESTUDO DE SIMULAÇÃO “Simulação é o processo de se elaborar um modelo de um sistema real e conduzir experimentos com esse modelo, tendo como propósito a compreensão do comportamento do sistema ou a avaliação de diversas estratégias (dentro dos limites impostos por um critério ou conjunto de critérios) para a operação do sistema”. (Shannon ,1975) Muitos sistemas reais são complexos, de modo que modelos matemáticos válidos são igualmente complexos, impedindo qualquer possibilidade de se obter uma solução analítica. Nesses casos, o modelo deve ser estudado usando-se a simulação, isto é, exercitar numericamente o modelo com entradas representativas e observar como elas afetam o seu comportamento. Um estudo de simulação pode ser representado, segundo um diagrama, que recebe o nome de ciclo de vida do modelo. 27 2.3 CICLO DE VIDA DO MODELO O ciclo de vida do modelo pode ser visto como processo de transformação aplicado à informação disponível sobre um sistema. Num nível mais elevado, o processo é composto das seguintes etapas: 1) Definição do problema; 2) Desenvolvimento do modelo e sua experimentação; e 3) Apoio à decisão. (Kienbaum, 1989) Num nível mais detalhado, cada etapa do processo é decomposta em processos mais simples, que transformam a representação do problema original em formas distintas, sucessivas e interligadas. A cada evolução do desenvolvimento deve haver pelo menos um passo correspondente de verificação de qualidade do progresso realizado, que se convenciona chamar de Estágio de Aferição de Credibilidade - EAC. O ciclo de vida do modelo, como mostra a Figura 2.2, é composto de dez formas de representação do problema correspondentes aos estágios de desenvolvimento do modelo. Os estágios de desenvolvimento são representados pelos símbolos ovais. As setas em linhas tracejadas descrevem os processos que relacionam os estágios de desenvolvimento e as linhas cheias os processos de verificação de qualidade. Os processos, descritos originalmente em Balci (1985), são apresentados de forma resumida no apêndice B. Deve-se observar que o ciclo de vida não é estritamente seqüencial. A direção das setas indica apenas a progressão cronológica das atividades durante o desenvolvimento do estudo. O ciclo de vida, no entanto, é iterativo e 28 incremental, esperando-se que realimentações ocorram entre os passos. (Balci,1985) As formas de representação existentes, da definição do sistema e dos objetivos do estudo até os resultados do modelo, correspondem à etapa de desenvolvimento do problema. As que lhe antecedem corresponde à etapa de definição do problema e as lhe sucedem à etapa de apoio à tomada de decisão. 29 PROBLEMA COMUNICADO Formulação do problema Verificação do problema formulado PROBLEMA FORMULADO DECISORES Avaliação da viabilidade do uso de simulação Estudo das técnicas de solução Aferição da aceitabilidade dos resultados TÉCNICA DE SOLUÇÃO PROPOSTA (SIMULAÇÃO) APOIO INTEGRADO À DECISÃO Verificação da definição do sistema e dos seus objetivos DEF. DO SISTEMA E DOS OBJETIVOS DO ESTUDO Formulação do modelo Certificação do modelo conceitual MODELO CONCEITUAL Redefinição Verificação do modelo conceitual Validação do modelo RESULTADOS DO MODELO Validação dos dados Representação do modelo MODELO COMUNICATIVO Verificação do modelo programado Programação Experimentação MODELO PROGRAMADO Aferição da credibilidade dos resultados MODELO EXPERIMENTAL Projeto de experimentos Fig. 2.2 - Ciclo de Vida do Modelo em um Estudo de Simulação. FONTE: Balci (1985). 30 2.4 SIMULAÇÃO DISCRETA E SUAS ESTRATÉGIAS A simulação computacional pode ser classificada em dois grandes grupos, quanto ao tipo de sistema em estudo e a forma de controle de tempo utilizada: simulação contínua e simulação discreta. Na simulação contínua o modelo é descrito usando um conjunto de equações diferenciais que serão solucionadas numericamente em função do tempo. São exemplos desta área os problemas de escoamento de fluidos e problemas hidráulicos. A simulação discreta, por outro lado, descreve o sistema em termos de relacionamentos lógicos que causam mudanças das variáveis de estado em determinados instantes de tempo, em vez de continuamente sobre o tempo. Exemplos deste tipo de problemas podem ser encontrados em sistemas constituídos por redes de filas, tais como clientes em um posto de gasolina para abastecer, aeronaves aguardando decolagem ou pouso, etc. Na simulação discreta, a mudança das variáveis de estado se faz de forma instantânea podendo transcorrer quaisquer quantidades de tempo simulado entre os eventos. Somente se está interessado no estado do sistema, quando uma de suas partes componentes, muda de estado. O SBCD, em estudo, se enquadra nesta segunda categoria. Existem várias formas de abordagem para a construção de modelos de simulação discreta, conhecidas como estratégias de simulação, que são denominadas: Eventos, Atividades, Três Fases e Processos (Pidd, 1992). A abordagem utilizada neste trabalho está baseada em processos, que adicionalmente é implementada através do uso do paradigma de orientação a 31 objetos, o que resulta em aspectos particulares para as etapas de modelagem e desenvolvimento, que são abordados a seguir. 2.5 SIMULAÇÃO ORIENTADA A OBJETOS De uma forma simplificada, fala-se de simulação orientada a objetos quando um sistema é modelado e implementado usando metodologias e linguagens orientada a objetos. A primeira linguagem de programação orientada a objetos foi SIMULA, que era originalmente designada como uma linguagem de simulação de finalidade geral. SIMULA já fornecia objetos, classes e herança, algumas das características fundamentais da programação orientada a objetos. Outra linguagem desenvolvida no início da década de 80, que contribuiu de forma significativa para a orientação a objetos, foi Smalltalk. Smalltalk fornecia um ambiente gráfico que estendia os conceitos de tipagem dinâmica, classe e herança encontradas em SIMULA (Kienbaum, 1994) (Roberts et Al, 1998). Na simulação orientada a objetos o sistema em estudo é descrito como uma coleção de objetos que interagem. Os comportamentos dos objetos são descritos por meio de métodos, e as suas características estão contidas nos atributos dos objetos que podem ser representadas por variáveis. Tudo que o objeto conhece está em suas variáveis e tudo que ele pode fazer são os seus métodos. Essa estrutura mapea claramente os objetos significativos do mundo real que constituem o sistema sendo modelado. A Figura 2.3 apresenta uma visão simplificada da estrutura de um modelo orientado a objetos. As elipses representam classes de objetos, as setas cheias indicam as heranças implementadas e as setas tracejadas a colaboração existentes entre os objetos instanciados. Na orientação a objetos, 32 os objetos que pertencem as classes, interagem ou se comunicam através de troca de mensagens. Classe Classe Classe Classe Classe Classe Classe Classe Classe Herança Colaboração Fig. 2.3 - Estrutura do Modelo Orientado a Objeto. FONTE: Yilmaz (1998). 2.5.1 CONCEITOS BÁSICOS Os conceitos fundamentais da abordagem orientada a objetos e como elas se relacionam com o modelo em simulação, descritos por Roberts e Heim (1988), são apresentados a seguir. Classe é usada para definir um tipo de dado abstrato particular. A definição de classe irá especificar a estrutura de dados implementada e as operações que podem ser executadas sobre os dados. Essa propriedade de juntar dados e código em um único objeto (ou classe) é conhecida como encapsulamento. Uma classe é descrita pelos atributos (variáveis) que seus objetos possuem e métodos (funções) que podem atuar sobre esses objetos. Objeto é uma instância de uma classe específica. Ela contém todas as informações desta classe específica e as ações que podem ser executados 33 nos dados, invocando-se os métodos da classe. O mecanismo usado para se efetuar a chamada dos métodos de um objeto é pelo meio de mensagens. Uma mensagem para um objeto requisita a execução de um procedimento. Uma mensagem invoca um método (procedimento) no objeto receptor para produzir um comportamento requerido. Herança possibilita que as classes sejam organizadas em hierarquias de modo que uma classe que é subordinada a outra classe automaticamente herde todas as variáveis e métodos da classe superior. Polimorfismo é a possibilidade de se enviar uma mesma mensagem a um objeto, cuja execução vai depender do tipo de objeto instanciado. Uma mesma operação pode se comportar diferentemente quando definida em classes diferentes. 2.5.2 PROTOTIPAGEM RÁPIDA DE PROGRAMAS Uma das razões pelas quais Orientação a Objetos (OO) se tornou bastante popular nas comunidades científicas e de engenharia de software é a sua propalada característica de permitir aos seus usuários maior produtividade e rapidez no processo de desenvolvimento dos programas (Yourdon, 1994). Estas qualidades de OO seriam resultantes da capacidade de reutilização dos componentes já desenvolvidos, bem como da aplicação de um estilo de desenvolvimento que se poderia denominar de prototipagem rápida de programas. Esta última característica torna OO especialmente atraente para ser usada no desenvolvimento de simuladores e no uso destes na realização de estudos de simulação, segundo Kienbaum e Paul (1994). A figura 2.4 a seguir (adaptada de Kienbaum e Paul, 1994), originalmente 34 inspirada a partir do ciclo de vida do projeto de software OO descrito pelo Object Management Group (Yourdon, 1994), retrata o ciclo de vida do desenvolvimento de sistemas destinados à simulação quando se aplica esta filosofia de projeto. CICLO DE VIDA DA PROGRAMAÇÃO OO REQUISITO M O D E L A G E M O B J E T O S P R O T Ó T I P O ANÁLISE / PROJETO IMPLEMENTAÇÃO TESTE IMPLANTAÇÃO MODELO SIMULAÇÃO COORDENAÇÃO E CICLO DE VIDA DO MODELO DE SIMULAÇÃO SISTEMA REAL REUSO Fig. 2.4 - Prototipagem Rápida de Sistemas para Simulação. A abordagem OO é empregada tanto para o processo de desenvolvimento do protótipo, como, também, para o desenvolvimento (ciclo de vida) do modelo de simulação, mostrando que estes dois processos podem ser vistos como mantendo, inicialmente, uma certa relação de independência. A cada ciclo de 35 desenvolvimento do protótipo, baseado na metodologia orientada a objetos, este vai, progressivamente, incorporando novas funcionalidades. Desta forma, o modelo de simulação construído vai se tornando cada vez mais completo. Ao incorporar todos os requisitos de projeto, o protótipo se converterá no próprio simulador almejado. 2.6 ESTUDO E ESCOLHA DA FERRAMENTA COMPUTACIONAL Dentre as alternativas existentes de ferramentas computacionais, para desenvolver o estudo do SBCD, usando a tecnologia de simulação, há, basicamente, quatro opções: 1) Usar um modelo comercial pronto (off-the-shelf); 2) Modificar um modelo existente; 3) Usar um ambiente (framework) de desenvolvimento de modelos; e 4) Desenvolver um modelo customizado usando linguagens de simulação. Um modelo comercial é normalmente a melhor escolha, se houver um disponível. Suas vantagens são que ele já está desenvolvido, tem suporte do fabricante, já terá sido testado através de aplicações anteriores e pode ser usado imediatamente, sem atrasos. Suas desvantagens são o preço e o fato de que os pacotes comerciais são, em sua maioria, fechados e não permitem modificações. Um modelo comercial testado neste trabalho, considerado como opção inicial, foi o STK – Satellite Tool Kit (AGI, 2001), existente na ETE. Este modelo foi considerado insatisfatório, em virtude da impossibilidade de atender os requisitos mínimos do simulador, tanto no que diz respeito a montagem e 36 recuperação de um cenário constituídos por diversas PCDs-satélites-ERCDs, como pela posterior simulação do envio e recepção das mensagens coletadas por aquelas estações terrestres. No entanto, alguns benefícios foram obtidos com base nesta experiência com o sistema STK, pois o pacote serviu como referência, para a construção do protótipo, tanto na exemplificação da forma de animação das órbitas dos satélites, quanto no uso dos elementos “two-line”, padronizados pelo NORAD (“North American Aerospace Defense Command”), para a propagação orbital (Sousa, 2000). Modificar um modelo existente, para adaptá-lo ao sistema pretendido, como preconizado na segunda opção, é uma tarefa difícil. Tecnologias proprietárias, mesmo quando elas são fornecidas de forma aberta, para serem utilizadas em pesquisa e desenvolvimento, precisam de um completo entendimento, antes que as alterações necessárias no modelo sejam implementadas. Além disso, os desenvolvedores originais podem não estar dispostos ou não serem acessíveis para se obter deles todo o auxílio necessário. Um exemplo de ferramenta que se pode adaptar e utilizar neste trabalho é a propagação orbital (Kelso, 1995), disponível nas linguagens de programação Fortran e Pascal. O mesmo não ocorreu com os sistemas comerciais, à semelhança do STK, que não tornam público os códigos fontes e uma documentação mínima que permita modificar o produto para as características desejadas no estudo de simulação do SBCD. O emprego da terceira opção, se baseia no uso de um ambiente (framework) de construção de modelos, e fornece um ponto de partida intermediário entre o modelo pré-construído (sistema comercial) e o desenvolvimento completo do modelo, reduzindo o tempo e o custo para o sua implementação. O processo se torna mais rápido, devido ao uso de componentes fornecidos em uma 37 biblioteca de objetos, que podem ser adaptados e estendidos para executar as funcionalidades de um protótipo ou de uma aplicação completa de simulação. Uma tentativa neste sentido foi feita também para o SBCD, tendo-se utilizado o pacote comercial COMNET III, disponível no LAC, que permite a análise e a avaliação de uma grande variedade de redes de comunicação de dados, desde simples redes locais – LAN, até complexas redes corporativas distribuídas por uma grande área – WAN. (Caci, 1997a) O COMNET III permite a construção do modelo de simulação, a partir da identificação da topologia da rede. A topologia da rede consiste na montagem dos recursos existentes, que são descritos através de blocos de construção, objetos, para representar os nós e os “links” do sistema. Os nós são os pontos com funções de processamento, tipicamente computadores e equipamentos de transmissão, que se conectam aos links. Estes, por sua vez, representam os meios de transmissão, que ligam dois ou mais nós. Com o COMNET III foi possível construir um modelo simples que se mostrou inadequado devido a impossibilidade de simular aspectos importantes existentes no sistema real. O fato do segmento espacial está projetado para operar com satélites de órbitas baixas, necessita que o posicionamento dos satélites, em relação as estações terrestres, sejam constantemente alterados. Com isso, a comunicação PCD - satélite - ERCD, é totalmente dependente da visibilidade das estações terrestres em relação ao satélite. Esta característica não pode ser implementada no modelo, pela inexistência de blocos de construção móveis, que pudessem simular o segmento espacial. A Figura 2.5 mostra o modelo construído do SBCD com o auxílio do ambiente de simulação COMNET III. 38 Fig. 2.5 - Modelo do SBCD construído no COMNET III. Outra dificuldade encontrada foi na definição do link de subida, PCD – satélite. Ele precisou ser definido como sendo um link do tipo ALOHA, (“broadcast”) por não existir outro com as características mais próximas do sistema real. Ocorre que este tipo de link, na realidade, não se comporta como o protocolo empregado no SBCD, principalmente no caso de colisão de mensagens. Uma outra ferramenta pesquisada foi SIMPROCESS que, apesar de se destinar a análise e modelos de processos de negócios, poderia auxiliar na análise do SBCD, combinando os recursos de simulação do programa, com a possibilidade de animação gráfica. Novamente, a solução se mostrou inadequada, em virtude de não se poder contar com os códigos fontes e a documentação completa do SIMPROCESS. Com isso, utilizar o programa implicaria em um risco elevado, por não permitir modificações nos objetos préconstruídos, que se fizessem necessários, durante o andamento do trabalho. 39 Por fim, se não há nenhum modelo apropriado disponível, baseado em pacotes prontos, ferramentas ou ambientes de desenvolvimento pré-existentes, a opção que resta para efetuar um estudo de simulação, é construí-lo, usando-se uma moderna linguagem de simulação. O tempo e o custo de desenvolvê-lo podem ser elevados, mas são plenamente justificáveis dados os benefícios em termos de flexibilidade na construção e manutenção do modelo. Desta forma optou-se pelo desenvolvimento de um simulador próprio para o sistema, e para tanto, foi escolhida a linguagem de simulação MODSIM III, devido as característica que serão apresentadas a seguir. 2.7 LINGUAGEM MODSIM III A linguagem de simulação escolhida, por atender bem às características do projeto, foi MODSIM III, que é uma linguagem de simulação discreta, dotada de recursos avançados para o desenvolvimento de interfaces gráficas, permitindo a rápida prototipação de sistemas baseados na metodologia de orientação a objetos. MODSIM III é uma linguagem própria de programação de alto nível, gerando código C++ numa etapa intermediária, que é compilado usando o compilador da plataforma utilizada, estando disponível nos ambiente Windows 95, 98, NT e em plataformas UNIX. MODSIM III dispõe de um ambiente completo de desenvolvimento, consistindo de uma camada para simulação, editor gráfico, gerente de compilação, debugger interativo e bibliotecas pré-construídas, possibilitando desta forma ao programador a elaboração de aplicações complexas, com qualidade e maior rapidez. As bibliotecas fornecidas com a linguagem incluem módulos que fornecem 40 toda as capacidades necessárias para se programar modelos de simulação discreta, como também, módulos para desenvolver interfaces do usuário e mecanismos de apresentação de resultados. Os objetos em MODSIM III são codificados em dois módulos distintos, o de Definição e o de Implementação. O módulo de Definição descreve o tipo de objeto, declarando suas variáveis e métodos. A lógica do que eles fazem e como eles afetam as variáveis do objeto são descritas no módulo de Implementação. A seguir é apresentado um exemplo de um módulo de Definição e o de Implementação para um objeto aeronave, adaptado de MODSIM III (Caci, 1997b). 2.7.1 MÓDULO DEFINIÇÃO Aeronave = OBJECT VelCruzeiro : REAL; EmVoo : BOOLEAN; ASK METHOD DetVelCruzeiro (IN v : REAL); TELL METHOD Voar (IN Dist : REAL); END OBJECT; O módulo de Definição para o objeto Aeronave declara as variáveis e os métodos (funções) que o objeto usa no modelo de simulação. Nesse exemplo, o objeto aeronave possui duas variáveis que representam seu estado e dois métodos do que o ele pode fazer. A variável VelCruzeiro indica a velocidade de cruzeiro para uma aeronave, e EmVoo, se a aeronave está em vôo ou não. 41 2.7.2 MÓDULO IMPLEMENTAÇÃO OBJECT AeronaveObj ASK METHOD VelCruzeiro (IN Velocidade : REAL); BEGIN VelCruzeiro := Velocidade; END METHOD; TELL METHOD Voar (IN Distancia : REAL); BEGIN EmVoo := TRUE; WAIT DURATION Distancia/VelCruzeiro); END WAIT; EmVoo := FALSE; OUTPUT (“Pouso seguro em “, SimTime); END METHOD; END OBJECT; Os métodos apresentados no bloco de implementação descrevem os comportamentos do objeto. No exemplo acima, a aeronave é capaz de descrever o comportamento de dois métodos. Quando a aeronave é requisitada para executar o comando ASK METHOD VelCruzeiro, ela registra, instantaneamente, a velocidade de cruzeiro fornecida. No caso de se requisitar a execução do comando TELL METHOD Voar, o objeto aeronave calcula o tempo de vôo requerido para cobrir a distância passada na chamada do método. Esta atividade, então, interrompe sua execução até que o período de tempo calculado tenha sido gasto dentro do modelo de simulação, antes de completar o restante do código, neste caso imprimindo a notificação de pouso seguro. Diferente do ASK, o método TELL é usado para descrever comportamentos 42 que tenham de simular tempo transcorrido. Enquanto este método é interrompido, aguardando o tempo de simulação passar, outros métodos, de outros objetos, podem estar sendo executados. 2.7.3 DISPONIBILIDADE DA LINGUAGEM DE SIMULAÇÃO A disponibilidade da linguagem de simulação MODSIM III em sua versão acadêmica e de pesquisa na pós-graduação em computação do Instituto Tecnológico de Aeronáutica (ITA) do Centro Técnico Aeroespacial (CTA) e a existência de um convênio de cooperação com a pós-graduação em computação aplicada do INPE (CAP/INPE) permitiu que a linguagem fosse utilizada para implementação do protótipo. 43 CAPÍTULO 3 SISTEMA DE COLETA DE DADOS BASEADO EM SATÉLITES O sistema de coleta de dados ambientais dos satélites da MECB permite a obtenção de forma automática dos dados ambientais, medidos em um grande número de pontos sobre todo o território nacional, através do uso de plataformas de coleta de dados. Além da rede de plataforma de coleta de dados, o sistema se compõe de uma rede de estações de recepções, que completam o segmento solo, e pelos “transponders” a bordo dos satélites, que constituem o segmento espacial. Um esboço simplificado do sistema está mostrado na Figura 3.1 e se encontra descrito a seguir (Tude, 1986 ) (Yamaguti, 1994) (INPE, 1995). Fig. 3.1 - Sistema Brasileiro de Coleta de Dados. FONTE: INPE (2001a). 45 3.1 PLATAFORMAS DE COLETA DE DADOS As Plataformas de Coleta de Dados, conforme mostra a figura 3.2, têm a finalidade de efetuarem a coleta automática de dados ambientais destinados a aplicações de monitoração tais como o de controle do fluxo de correnteza e alarme de inundações, controle de irrigação, qualidade da água, gerenciamento dos recursos hídricos, medidas da qualidade do ar e do clima, migração de animais, etc. A coleta de dados é feita por um conjunto de sensores definidos de acordo com o tipo de monitoração desejada e da interface de aquisição de dados. Os sensores normalmente usados são para a monitoração da qualidade e nível dos rios e reservatórios de água, radiação solar, direção e velocidade do vento, temperatura e umidade do solo, precipitação e concentração de ozônio, etc. Fig. 3.2 - Plataforma de Coleta de Dados. FONTE: INPE (2001b). Os dados coletados, incluindo o “status” e a identificação da PCD, são armazenados e formatados em uma mensagem padrão e transmitidos para o 46 satélite. Embora a emissão seja repetida após um certo intervalo de tempo, a comunicação só se realiza de forma efetiva quando o satélite passa sobre um ponto que tem visibilidade simultânea, tanto em relação à PCD quanto à estação receptora. A potência de transmissão varia de 1 a 3 Watts com um período de repetição podendo variar de 30 a 200 segundos. O fornecimento de energia para as PCDs é feito por baterias e painéis solares. As PCDs usadas no Sistema Brasileiro de Coleta de Dados podem utilizar dois canais diferentes para a transmissão das mensagens - canal de 401.62 MHz ou de 401,65 MHz. As transmissões dos sinais das PCDs são aleatórias em freqüência e no tempo. Devido ao movimento dos satélites, todos os sinais por eles recebidos sofrem de desvio em sua freqüência de aproximadamente ± 12 kHz (efeito Doppler). O desvio de freqüência depende da localização da PCD, da posição do satélite e de sua velocidade no momento da transmissão. Devido aos efeitos aleatórios incidentes sobre a freqüência e a geração das mensagens, o canal de acesso para os “transponders” a bordo dos satélites é considerado compartilhável por todas as PCDs visíveis em qualquer instante. Se duas ou mais mensagens coincidirem, entretanto, tanto em freqüência, quanto em instante de chegada, haverá uma colisão e todas elas serão perdidas. O sistema deve ser capaz de atender entre 500 e 2000 PCDs (seu número exato deverá ser determinado também a partir dos resultados da simulação), até 20 satélites em órbita e até 20 estações terrenas. As PCDs podem estar distribuídas em todo território brasileiro, e seus sinais devem ser recebidos e processados com probabilidade de sucesso superior a 95% durante as passagens favoráveis do satélite. As passagens favoráveis do satélite são definidas como aquelas durante as quais a PCD consegue fazer em média três transmissões durante o período de 47 visibilidade mútua PCD-satélite-estação terrena. O número de passagens favoráveis em 24 horas depende da localização da PCD. A taxa de repetição e a potência das mensagens transmitidas pelas PCDs podem ser alteradas, de forma que pelo menos uma mensagem livre de erros consiga ser transmitida por dia pelo sistema. 3.2 OS SATÉLITES Não há nenhum processamento do sinal a bordo dos satélites, nem há qualquer capacidade para armazenamento e uma posterior retransmissão de mensagens. Os “transponders” a bordo dos satélites apenas modulam as mensagens recebidas nas freqüências de 401,65 MHz ou de 401,62 MHz, efetuam um ganho de potência sobre seu sinal, e as retransmitem para uma estação terrena localizada em Cuiabá (GS), operando na banda S na freqüência de 2267 MHz. No caso dos satélites CBERS1 (já em operação), CBERS2, e SCD3 as mensagens recebidas das PCDs também serão retransmitidas diretamente para estações receptoras terrenas (ERCDs) que estiverem no campo de visibilidade simultânea PCD-satélite-ERCD, e que operam na banda UHF em 462,5 MHz. 48 Fig. 3.3 - Satélite SCD1 em órbita. FONTE: INPE (2001c). Na estação de recepção, os sinais na banda S e UHF recebidos são convertidos para banda base para procura e detecção dos sinais das PCDs. Quando um sinal de PCD é detectado, um canal de processamento é alocado para a demodulação e armazenamento da mensagem na estação. No caso de estação na banda S (estações de Cuiabá e Alcântara) todas as mensagens recebidas são enviadas para o Centro de Missão de Coleta de Dados (Cachoeira Paulista), após o término da passagem do satélite, para processamento, armazenamento em banco de dados e disseminação aos usuários. 3.3 ESTAÇÕES DE RECEPÇÃO DE COLETA DE DADOS A ERCD é um sistema completo destinado a aquisição e acompanhamento do satélite, recepção e processamento de dados para o Sistema Brasileiro de Coleta de Dados de satélites de órbitas baixas. Devido ao esquema de acesso aleatório, a ERCD efetua a procura e detecção do sinal da PCD, antes de recuperar os dados. Os dados recuperados são armazenados em um banco de dados e disponibilizados para os usuários, tanto em sua forma original (bruta), 49 como após ter passado por uma crítica e formatação. Os usuários podem acessar esses dados usando um computador tipo PC conectando-se a ERCD através da rede pública de telefonia e pela INTERNET. A ERCD pode processar dois ou mais sinais simultâneos das PCDs dependendo do número de canais de processamento determinado de acordo com a necessidade do usuário. O processador de coleta de dados executa as funções destinadas a designação do canal, configuração e monitoração do “hardware”, banco de dados e facilidades de comunicação. A estação de recepção pode receber e processar tanto os sinais das plataformas de coleta de dados do INPE como das redes existentes operando no sistema internacional ARGOS. Como as PCDs operam com um canal específico de freqüência, a ERCD pode ser programada para operar com diferentes formatos de mensagens. Estão disponíveis dois tipos de ERCDs, uma que opera na banda S, no enlace de descida, usando uma antena com capacidade de auto-acompanhamento, conforme ilustração contida na Figura 3.4. 50 Fig. 3.4 – Estação Terrena de Cuiabá. FONTE: INPE (2001d). O outro tipo de estação de recepção opera na faixa de UHF, utilizando-se de uma antena de baixo custo. O primeiro tipo de estação permite uma cobertura de uma grande área, enquanto o segundo é um sistema que necessita de menores investimentos. 3.4 EXEMPLOS DE CONSULTAS DO SBCD Como um dos exemplos de uso das informações disponibilizadas pelo SBCD para os usuários finais, a figura 3.5 apresenta um relatório de monitoramento hidrológico diário, produzido pela Agência Nacional de Energia Elétrica (ANEEL), tendo em vista a geração da Energia Elétrica em diversas bacias hidrográficas brasileiras. 51 Fig. 3.5 - Monitoramento Hidrológico Diário. FONTE: ANEEL (2001). Outro tipo de saída pode ser visualizada na figura 3.6, que apresenta o Relatório dos Dados Coletados nos últimos 5 dias, captados por PCDs Meteorológicas. O exemplo escolhido foi o da plataforma instalada no município de Caldas Novas – GO, onde são apresentadas as informações coletadas, daquela localidade, que foram recebidas, com êxito, pelo Centro de Missão do SBCD. 52 Fig. 3.6 - Relatório dos Dados Coletados nos últimos 5 dias. FONTE: INPE (2001e). 53 CAPÍTULO 4 ESPECIFICAÇÃO DE REQUISITOS E MODELAGEM FUNCIONAL Este capítulo apresenta a especificação dos requisitos previamente definidos pelos usuários e operadores do simulador e, com base nestes, é feita a modelagem funcional do sistema e a modelagem de objetos do protótipo. A modelagem funcional do simulador na forma de grandes componentes ou módulos visa decompô-lo em elementos que implementem todas as características exigidas para que este represente adequadamente o sistema real, tendo-se sempre em consideração os objetivos do estudo. Ela engloba o modelo computacional do sistema propriamente dito e as funcionalidades associadas à interface gráfica de interação com o usuário. Inicialmente são apresentados os requisitos do simulador, conforme as especificações contidas em INPE (1995). Em seguida são apresentados os modos de operação da interface gráfica com o usuário, e é feita a proposta de uma estrutura para os módulos componentes principais do simulador. Por fim, apresenta-se o modelo de classes criado e as limitações do protótipo, que refletem as restrições do escopo e abrangência adotadas no desenvolvimento do presente trabalho. 4.1 REQUISITOS GERAIS Os requisitos do simulador, utilizados no desenvolvimento do modelo e do protótipo do sistema, foram definidos tomando-se como referência as especificações contidas em INPE (1995). 55 O modelo computacional para simulação deve contemplar todos os processos compreendidos pelo SBCD, desde o processo de geração das mensagens pelas PCDs, os enlaces de subida para o satélite, o processo de transposição de freqüência e ganho de potência realizado pelo “transponder” a bordo do mesmo, o enlace de descida até a estação terrena em Cuiabá (GS), ou estações terrenas - ERCDs, e o processo de recepção e tratamento dos dados realizado por estas últimas. O simulador será utilizado para se analisar e avaliar o desempenho global do sistema em diferentes cenários de operação envolvendo fatores dos seguintes tipos: configurações de PCDs (tipo, número, localização, etc.); configurações das estações de recepção (tipo, número, localização, etc.); constelações de satélites em utilização (órbitas, altitude, potência de retransmissão, etc.); e alternativas de operação do sistema de acordo com estratégias diferenciadas (intervalo entre mensagens, potência de transmissão). A lista de requisitos gerais inclui algumas exigências referentes à própria capacidade de operação do simulador. As principais delas são: o sistema deve ser capaz de representar até 2000 PCDs, até 20 satélites em órbita e até 20 estações receptoras terrenas (GS ou ERCDs); ele deve ainda permitir a operação simultânea de mais de um satélite, bem como de mais de uma estação terrena, a apresentação dos resultados da simulação de forma gráfica e textual e oferecer ajuda “on line” para o usuário. 4.1.1 REQUISITOS GENÉRICOS DA INTERFACE GRÁFICA A interface do sistema deve permitir a representação gráfica e a animação de todas as entidades do sistema, tais como a rede de PCDs, com sua localização determinada automaticamente ao serem inseridas sobre um mapa do Brasil georeferenciado, bem como os satélites e suas respectivas órbitas, as estações terrenas e os enlaces de comunicação estabelecidos entre eles. 56 A interface deve estar baseada em janelas gráficas e menus, cuja utilização se fará de forma homogênea para todas as operações de criação, especificação e execução do modelo de simulação. As configurações do modelo deverão ser feitas “on line”, com o posicionamento na tela dos elementos gráficos e a parametrização destes, pela atribuição de valores definidos pelo usuário no início da simulação, ou a partir de parâmetros 'default' designados pelo sistema na falta destes. 4.1.2 REQUISITOS DOS COMPONENTES ESPECÍFICOS O módulo principal deve permitir o gerenciamento de todas as operações do simulador, e a correta interação entre os seus módulos componentes durante a execução das corridas de simulação. As corridas devem poder ser interrompidas para a redefinição dos parâmetros do sistema de maneira interativa e o monitoramento das variáveis de estado por meio de “displays” durante sua execução. O módulo principal provê ainda meios para a realização de outras tarefas básicas relacionadas com o estudo de simulação, tais como a execução dos experimentos e a coleta de dados das corridas. O módulo principal é responsável pela identificação e tratamento de possíveis erros, tanto nas situações de anormalidade no funcionamento do modelo, quanto em relação a possíveis desvios do comportamento ideal previsto para a operação do sistema real, tais como desvios de órbitas previstas dos satélites, resultantes de distorções relativas ao seu ponto de injeção em órbita, velocidade e ângulos de posicionamento, assim como mal alinhamento de suas antenas devido a movimentos erráticos dos mesmos verificados durante sua operação. O módulo principal é finalmente responsável pela geração dos relatórios contendo informações do tipo: janela de visibilidade por passagem do satélite por dia de uma determinada plataforma em relação a uma determinada 57 estação terrena; o número de mensagens recebidas de cada PCD (por estação ou conjunto de estações, referentes a uma passagem do satélite ou a um dia de operação do sistema), a distribuição do número de mensagens geradas por uma PCD ou conjunto de PCDs que foram recebidas em um intervalo de tempo ou em um dia de operação, seja por uma determinada estação, ou pelo satélite ou pelo sistema como um todo. Cada um dos demais objetos componentes do sistema possui ainda um conjunto de atributos mínimos e de funcionalidades requeridas para a definição completa de sua configuração dentro do modelo e para a execução de todas as operações por eles efetuadas no sistema. Estes atributos individuais e funcionalidades estão listados a seguir: Para as PCDs: 1) Uma série de atributos do tipo: potência de transmissão efetiva atingida pelo conjunto PCD/antena, localização (latitude, longitude, altitude), taxa de repetição (intervalo de tempo entre duas mensagens consecutivas), comprimento da mensagem, freqüência da portadora utilizada no satélite (e sua faixa de variação), estabilidade do oscilador (influencia a freqüência e a dispersão do sinal gerado), cabeçalho identificador do gerador da mensagem, instante inicial da transmissão, estrutura e formato da mensagem transmitida por cada PCD; 2) A simulação de uma determinada configuração de PCDs, com seu número total e sua distribuição espacial definidas pelo usuário; 3) A geração de uma série de pulsos ou mensagens para cada PCD da rede, de acordo com um conjunto de especificações previamente introduzidos pelo usuário, com base nos parâmetros acima mencionados; 58 4) A armazenagem destes conjuntos de mensagens durante o tempo de visibilidade simultânea para cada passagem do satélite, em relação a cada PCD e a rede como um todo; e 5) A utilização de geradores de números aleatórios para os procedimentos de geração dos pulsos e para a determinação da freqüência e instante inicial de operação do oscilador de cada PCD. Para as estações terrenas: 1) Uma série de atributos do tipo: localização (latitude, longitude, altitude); ângulo mínimo de elevação, G/T, freqüência da portadora (Banda S ou UHF), largura da banda, C/No, probabilidade de detecção de mensagens, probabilidade de falso alarme, número de canais disponíveis para processamento das PCDs; 2) Determinação da capacidade de detecção e de processamento do sinal emitido pelo satélite, de acordo com uma série de especificações designadas para cada uma das estações terrenas; 3) Determinação da disponibilidade de um canal para processamento do sinal e da probabilidade final deste ser processado corretamente, de acordo os parâmetros mencionados; 4) Determinação da freqüência de colisão dos sinais das várias PCDs; e 5) Associação dos sinais das PCDs com uma série de parâmetros de “status” da mensagem sendo recebida, tais como: identificação da PCD de origem, freqüência de colisão com outras PCDs, suficiência de tempo para processo de varredura e aquisição, disponibilidade de canal, 59 probabilidade final do processamento correto da mensagem, desvio Doppler no início da transmissão do sinal pela PCD. Para os satélites: 1) Uma série de atributos do tipo: elementos de definição da órbita, atitude e forma de estabilização, potência de transmissão (Bandas S e UHF) ou potência de retransmissão nos demais casos, G/T, freqüência e estabilidade do oscilador; 2) A simulação da órbita e atitude de cada satélite componente do sistema (SCD1, SCD2, SCD3, CBERS1, CBERS2). Esta função deve conter facilidades para a inclusão futura de outros tipos de missões (novos satélites); 3) A simulação em um dado instante, e para uma dada PCD, do efeito Doppler (espectro de freqüência, sua taxa de variação), com base no azimute e elevação do satélite em relação à estação terrena (GS ou ERCD); 4) Utilização de diferentes sistemas de coordenadas, bem como o fornecimento de facilidades destinadas à transformação entre eles, incluindo os seguintes sistemas: geocêntrico inercial, geocêntrico terrestre e topocêntrico terrestre (Kuga, 1995); 5) A consideração de que, uma vez em órbita, a variação da posição do satélite e de sua velocidade podem ser determinadas através da propagação de elementos keplerianos, conforme descritos pela Teoria de Brouwer; e 60 6) A avaliação dos ângulos de atitude do satélite com relação às PCDs e às estações terrenas (GS ou ERCDs), dos ângulos relativos à visibilidade simultânea (cumulativa) entre o satélite e as PCDs, e entre o satélite e as estações terrenas, bem como o azimute e a elevação de cada estação e de cada PCD com relação ao satélite. 4.2 MODOS DE OPERAÇÃO DO SIMULADOR Os modos de operação do simulador, casos de uso (Jacobson, 1992 e 1998), são aqueles associados com as formas de interação do usuário com o sistema, que precisam ser implementadas através de sua interface gráfica. A Figura 4.1 mostra que o simulador é dotado de quatro modos de operação principais: montagem de cenário (subdividido em configuração do cenário e inicialização das entidades); projeto de experimentos; simulação (subdividido em inicialização da execução, simulação, exibição e controle, geração de resultados); e análise e apresentação de resultados. 61 MONTAGEM DE CENÁRIO - Configuração dos cenários - Inicialização das entidades PROJETO DE EXPERIMENTOS SIMULAÇÃO - Inicialização da execução - Simulação - Exibição e controle - Geração de resultados ANÁLISE E APRESENTAÇÃO DOS RESULTADOS Fig. 4.1 - Modos de Operação do Simulador. O modo montagem de cenário destina-se a entrada dos elementos que comporão o sistema a ser simulado, formado pelas PCDs, os satélites e as Estações de Recepção de dados, com os seus respectivos atributos. 62 Através de uma interface gráfica, o usuário irá descrever a rede de coleta de dados a ser analisada, que tanto poderá ser carregada a partir da base de dados de estações anteriormente cadastradas, como criá-la no momento, posicionando as estações, via “mouse”, em suas coordenadas geográficas. A qualquer instante, são permitidas atualizações no cenário, seja na forma de inclusão de novas PCDs, como de alterações de suas características ou mesmo desativação de outras. As Estações de Recepção de dados, de forma semelhante as PCDs, podem também ser incluídas no cenário a partir da base de dados e serem atualizadas posteriormente. O satélite será escolhido a partir da entrada de suas efemérides ou da lista de satélites cadastrados. Desta forma serão descritas os objetos básicos do ambiente a ser simulado. O modo projeto de experimentos corresponde à entrada dos demais parâmetros associados com a experimentação do cenário e que serão utilizados durante a corrida de simulação. Esses parâmetros, fornecidos pelo usuário, servirão para identificar o cenário montado, a semente para a geração das variáveis aleatórias, bem como a velocidade de simulação desejada, etc. Neste estágio estes dados são apenas armazenados para servirem de entrada para o modo simulação, que juntamente com os atributos das entidades introduzidos no modo cenário, irão permitir a avaliação do sistema. O modo simulação é acionado após a conclusão de todo o cenário e do projeto de experimentos, e corresponde à execução e ao controle de toda a dinâmica do sistema, fazendo com que os objetos tenham um comportamento ativo, de acordo com as características definidas para cada elemento. Assim, as PCDs irão coletar e transmitir os dados ambientais, através de 63 mensagens de formatos fixos, em intervalos de tempo regulares, que serão recebidas e retransmitidas pelo satélite que estiver visualizando a PCD para a Estação de Recepção em terra que esteja posicionada em sua área de cobertura naquele momento. As mensagens geradas pelas PCDs serão atualizadas progressivamente pelos diversos objetos que interagem durante a comunicação, isto é, PCDs, satélites e Estações de Recepção. Desta forma, são registrados todos os possíveis estados que uma mensagem possa sofrer durante todo o ciclo de comunicação. O módulo de simulação produz como saída, na forma de registros nas mensagens geradas, todo o comportamento resultante da comunicação entre os elementos do sistema. Como exemplos de registros efetuados nos campos existentes, durante o fluxo de mensagens, podem ser citados: a identificação do caminho percorrido, os tempos de transmissão, retransmissão e recebimento, os desvios de freqüência ocasionados pelo efeito Doppler, as potências resultantes. Finalmente, o modo de análise e apresentação dos resultados utiliza os registros nas mensagens geradas na simulação, efetuados progressivamente pelos objetos participantes do “link” de comunicação, como fonte de entrada para as análises estatísticas e apresentações de resultados em formatos prédefinidos. As análises poderão ser realizadas diretamente na interface gráfica do simulador e, também, consultando-se os relatórios gerados. Desta forma, é possível se verificar o comportamento de um cenário do sistema construído para o período de tempo de simulação estipulado. A interação com o usuário, em todos os modos de operação, é disponibilizada através do módulo de interface gráfica, que possibilita desde a entrada dos dados necessários à simulação, a visualização de todo o processo simulado e a apresentação e impressão dos resultados Esta comunicação é realizada através de menus, caixas de diálogos e pelo “mouse”. 64 Em geral, o modelo construído de um simulador é bem mais detalhado do que o modelo analítico, permitindo a inclusão de distúrbios estocásticos e políticas de funcionamento individuais, em praticamente, todos os objetos do sistema. 4.3 MODELAGEM FUNCIONAL A modelagem funcional consiste na estruturação do modelo computacional na forma de grandes componentes ou módulos que são os elementos que implementam as funcionalidades exigidas para que ele represente adequadamente o sistema real, tendo-se como referência os objetivos propostos. Ela contempla, além do modelo computacional de simulação propriamente dito, as interações associadas à interface gráfica com o usuário final, que é feita com base nos casos de uso levantados, que descrevem os modos de operação do simulador. Com base nos modos de operação do simulador descritos no item anterior e explorando-se a modularidade, que são características intrínsecas tanto do modelo quanto da própria linguagem de simulação MODSIM III, é possível se formular uma estrutura básica para representar as principais componentes do simulador, o que é feito na Figura 4.2. Os módulos que compõem o protótipo estão descritos no capítulo 5 - Implementação. 65 PRINCIPAIS CASOS DE USO Montagem de Cenário Projeto de Experimentos Ajuda I N T E R F A C E Repositório de Configurações Repositório de Experimentação Módulo Satélites C O M PCD Módulo PCD O Inicialização, Simulação com Animação, Interação, Reinicialização e Geração de Resultados U S U Á R I O Inicia Simulação, Interrompe corrida, Reinicializa Experimentação M Ó D U L O Análise e Apresentação de Resultados Módulo Help M A P W I N Geração de Relatórios SATÉLITES Geração de Trajetórias Controle de Visibilidade ERCD Módulo Estações MÓDULO PRINCIPAL Simulação Experimentação Tratamento de Erros Geração de Dados Arquivo de Dados e Resultados Relatórios Dados e Resultados Gráficos Apresentação de Resultados Módulo Result Fig. 4.2 - Componentes do Simulador. 66 4.4 DIAGRAMA DE CLASSES No paradigma de orientação a objetos, uma classe ou objeto é constituído por sua estrutura de dados e pelas operações a ele associadas, que implementam suas funcionalidades e realizam a comunicação entre eles através de mensagens. Para se determinar que entidades, classes ou objetos, são necessários na descrição do sistema e os tipos de funcionalidades que elas necessitam implementar, é necessário se construir uma estrutura de classes. Como descrito anteriormente, o SBCD é essencialmente composto por três grupos distintos de objetos que interagem de modo a permitir que os dados ambientais, coletados pelos grupos das PCDs, sejam, transmitidos para os satélites, que por sua vez, os retransmitem para estações em terra, completando, desta forma, um ciclo completo de comunicação realizada com sucesso. Portanto, a estrutura hierárquica básica de classes consiste de três ramos principais representando as PCDs, os satélites e as ERCDs que efetivam a transmissão dos dados ambientais coletados, via, a outra estrutura fundamental no processo, representada pela classe de mensagens. O diagrama de classes do protótipo do simulador para o SBCD é mostrado na figura 4.3. Os retângulos representam as classes componentes da estrutura apresentada. 67 Menu Background Paleta MapWindown Mensagem Plataforma PCD Fixa Satélite Móvel ERCD Banda S UHF Fig. 4.3 - Diagrama de Classes do Simulador. As características comuns das três classes principais do sistema, PCD, satélite e ERCD, são descritas numa classe denominada plataforma. Estas, também, se relacionam com a classe das mensagens que, por sua vez, representa e registra o tráfego de mensagens efetivamente realizado no sistema. Tanto as PCDs, quanto os satélites e ERCDs são subdivididos em tipos, de acordo com características físicas de seu posicionamento, PCDs móveis ou fixas, ou de freqüência de transmissão/recepção, Bandas S ou UHF. As classes Menu, “Background” e Paleta são apresentadas no modelo por 68 disponibilizarem requisitos importantes desejáveis do sistema. Elas estão incorporadas na classe MapWindown, que por sua vez, implementa a interface gráfica do simulador com o usuário final. 4.5 LIMITAÇÕES DO MODELO E DOS REQUISITOS DO PROTÓTIPO Os requisitos originalmente descritos foram limitados em alguns aspectos para fins deste trabalho, tendo em vista o seu escopo acadêmico e a limitação de tempo de desenvolvimento do mesmo, a saber: Para a trajetória dos satélites serão utilizadas as rotinas de propagação orbital fornecidas pelo NORAD (Kelso, 1999), obtidas via internet em www.celestrak.com, que retornam a posição e a velocidade de satélite para instantes desejados. O conjunto de elementos que identificam um satélite, gerados pelo NORAD para a propagação orbital, são chamados NORAD “twoline”, ou efemérides, podendo estes também ser obtidos via internet, no endereço acima citado. O formato do elemento NORAD “two-line” é apresentado no apêndice A. Não serão considerados os erros provenientes de desvios no ponto de injeção do satélite: ponto, velocidade e ângulo de injeção, bem como os possíveis desalinhamentos das antenas em virtude de movimentos erráticos do satélite. Não será feito tratamento de ruídos de outra origem, que não os diretamente relacionados com as colisões de mensagens com freqüências sobrepostas e que tenham sido geradas simultaneamente (exclui-se, portanto, cobertura de nuvens, radiações de fontes externas ao sistema, etc.). 69 CAPÍTULO 5 IMPLEMENTAÇÃO A metodologia de desenvolvimento adotada para a criação do protótipo do simulador está baseada na simulação orientada a objetos e a linguagem de implementação que está sendo utilizada é MODSIM III. A metodologia de orientação a objetos foi escolhida devido às características do projeto. Os benefícios esperados pela adoção desta metodologia vão desde a maior facilidade na concepção do modelo, com base em princípios modernos de engenharia de software, bem como em sua modularização, extensibilidade e reusabilidade. Além disto o uso da orientação a objetos permite a adoção de um estilo incremental de programação e possibilita um rápido desenvolvimento de protótipos, mesmo para complexos sistemas de simulação. Durante o estudo da linguagem MODSIM III foram avaliados os diversos exemplos de modelos de simulação contidos no “software”, que serviram de complemento ao aprendizado e foram tomados como referência para a programação do simulador. As componentes e módulos identificados na modelagem funcional são detalhados e descritos com base em objetos, que implementam as necessidades funcionais requisitadas em cada um deles. Os objetos com maior afinidade entre si são mantidos agrupados para uma melhor modularidade do sistema. A documentação apresentada a seguir, destina-se a fornecer uma descrição dos módulos de definição que compõem o protótipo do simulador. Os módulos de definição definem a interface de interação de cada objeto com os demais objetos componentes do sistema e são em geral suficientes para a 71 compreensão de todos os seus atributos e funcionalidades, dispensando a consulta ao seu código de implementação, a menos que o analista deseje compreendê-lo em detalhes para utilizá-lo em outra situação ou modificá-lo. A extensão do código que descreve o modelo na versão inicial do protótipo é, aproximadamente, de mil linhas. Abaixo são ilustrados os módulos desenvolvidos em MODSIM III, que serão detalhados nos próximos tópicos. 1) MSSBCD - Programa principal do simulador; 2) DMAPWIN - Módulo de exibição e controle ou interface gráfica do protótipo; 3) DPCD - Módulo das Plataformas de Coleta de Dados; 4) DSATELITE - Módulo dos satélites; 5) DERCD - Módulos das Estações de Recebimento Terrestres; 6) DRESULT - Módulo de Apresentação de Resultados; e 7) DHELPDLG - Módulo de Ajuda. 5.1 MSSBCD - PROGRAMA PRINCIPAL DO SSBCD MAIN MODULE SSBCD ; FROM Gprocs IMPORT HandleEvents ; FROM MapWin IMPORT MapWindow ; BEGIN NEW (MapWindow) ; ASK MapWindow TO Init ; LOOP 72 HandleEvents (TRUE) ; END LOOP ; END MODULE . O programa principal é utilizado apenas para controlar a interação do usuário com os diversos menus e suas listas de comandos disponibilizados na interface gráfica, o que é feito através da rotina HandleEvents. Embora denominado e implementado como sendo o programa principal do simulador, na prática ele é somente uma extensão da sua interface gráfica, conforme explicado abaixo. Isto foi feito desta forma porque a própria estrutura de programas em MODSIM III exige que haja um programa principal, separado das demais componentes do protótipo usadas na implementação da interface gráfica e do modelo do sistema. 5.2 DMAPWIN - MÓDULO DE EXIBIÇÃO E CONTROLE DEFINITION MODULE MapWin ; FROM Window IMPORT WindowObj ; FROM Gpalet IMPORT PaletteObj, PaletteButtonObj ; FROM Graphic IMPORT GraphicLibObj ; FROM Text IMPORT TextObj ; FROM Image IMPORT ImageObj ; FROM Menu IMPORT MenuBarObj, MenuItemObj ; FROM RandMod IMPORT RandomObj ; FROM IOMod IMPORT StreamObj, ALL FileUseType ; TYPE OffsetRandomObj = OBJECT (RandomObj) ; ASK METHOD OffsetStream (IN offset : INTEGER) ; END OBJECT ; ComMenuBarObj = OBJECT (MenuBarObj) ; ASK METHOD DoSave ; ASK METHOD DoLoad ; OVERRIDE 73 ASK METHOD BeSelected ; END OBJECT ; MessageNodeObj = OBJECT Message : STRING; ASK METHOD SetMessage(IN message : STRING) ; END OBJECT ; MapPaletteObj = OBJECT (PaletteObj) ; Select : PaletteButtonObj ; GroundStation : PaletteButtonObj ; Satellite : PaletteButtonObj ; PcdStation : PaletteButtonObj ; CurrentSelection : PaletteButtonObj ; ASK METHOD InitChildren ; OVERRIDE ASK METHOD BeSelected ; END OBJECT ; MapWindowObj = OBJECT (WindowObj) ; Menubar : ComMenuBarObj ; Background : ImageObj ; Palette : MapPaletteObj ; MessageCount : TextObj ; ASK METHOD Init ; ASK METHOD UpdateMessageCount (IN num : INTEGER) ; ASK METHOD VerifySim () : BOOLEAN ; ASK METHOD CreateNewNode () : ImageObj ; OVERRIDE ASK METHOD MouseMove (IN x, y : REAL) ; ASK METHOD MouseClick (IN x, y : REAL ; IN buttonDown : BOOLEAN) ; END OBJECT ; VAR MapWindow : MapWindowObj ; GraphicLib : GraphicLibObj ; Random : OffsetRandomObj ; InSimulation : BOOLEAN ; OrbitRoot : ImageObj; Showitem : MenuItemObj; Hideitem : MenuItemObj; 74 END MODULE. Este módulo descreve a interface gráfica principal disponibilizada pelo protótipo do simulador. Ele é o módulo que implementa a interação do usuário com o protótipo e que aciona a chamada do módulo principal descrito nos requisitos, que tem a finalidade de controlar toda a agenda de eventos da simulação. Na implementação feita o módulo principal, correspondente à descrição existente nos requisitos e apresentada na figura 4.2, está sendo representado pelas bibliotecas de componentes pré-existentes do MODSIM III, que realiza o controle da agenda de eventos e aciona a chamada dos demais módulos componentes do modelo. Com a evolução do protótipo este módulo de interface incorporará o trecho de programa visto acima e será convertido no próprio programa principal do simulador, embora ele continuará na verdade a representar a interface gráfica com o usuário. O módulo principal descrito nos requisitos (figura 4.2), continuará a ser representado pelas bibliotecas de controle geral do MODSIM III, sendo que algumas funcionalidades previstas para ele pelos requisitos (condução da experimentação, tratamento de erros, geração e armazenagem dos dados de saída das corridas) poderão estar sendo implementadas no programa principal (interface gráfica) ou gerarem novos módulos componentes do simulador, a exemplo do que foi feito com o módulo análise dos resultados. A implementação atual do módulo interface gráfica pode ser resumida conforme a descrição a seguir. O objeto MapWindowObj define a janela principal e incorpora outros objetos necessários para a montagem do cenário, da animação dos componentes ativos do modelo e da apresentação de resultados parciais da simulação. Esta interface gráfica é composta da barra de menu, com as funcionalidades disponíveis no simulador, da imagem de fundo que incorpora o mapa da 75 América do Sul, da paleta que permite criar ou modificar um cenário com os objetos necessários, para descrever as PCDs (figura 5.1), a ERCD e o satélite desejado, bem como os demais controles, destinados a conduzir a análise preliminar do SBCD, que são visualizados através de mensagens. Fig. 5.1 - Entrada de Dados da PCD. Outros objetos disponíveis neste módulo são o gerador de número aleatórios, OffsetRandomObjt e, o MessageNodeObj destinado ao registro mensagens que trafegam no modelo. 5.3 DPCD - MÓDULO DAS PLATAFORMAS DE COLETA DE DADOS DEFINITION MODULE Pcd ; FROM Image IMPORT ImageObj ; FROM GrpMod IMPORT QueueObj ; FROM IOMod IMPORT StreamObj ; FROM Sat IMPORT SatelliteObj ; FROM MapWin IMPORT MessageNodeObj ; TYPE 76 das PcdStationQObj = OBJECT (QueueObj[ANYOBJ:PcdStationObj]) ; ASK METHOD InitSim ; ASK METHOD RandomStation (IN source : PcdStationObj) : PcdStationObj ; END OBJECT ; PcdStationObj = OBJECT (ImageObj) ; MeanTimeBtwnMsg : REAL ; ASK METHOD SetMeanTimeBtwnMsg (IN time : REAL) ; TELL METHOD Simulate ; ASK METHOD SendMessage (IN target : SatelliteObj; IN MessageNode : MessageNodeObj) ; OVERRIDE ASK METHOD ObjInit ; ASK METHOD ObjTerminate ; ASK METHOD BeSelected ; CLASS PcdStations : PcdStationQObj ; ASK METHOD NewPcdStations ; ASK METHOD SavePcdStations (IN file : StreamObj) ; ASK METHOD LoadPcdStations (IN file : StreamObj) ; END OBJECT ; VAR AnimationSpeed : INTEGER ; NumMsgAttempted : INTEGER ; END MODULE . Este módulo descreve as Plataformas de Coletas de Dados, e objetos correlatos às PCDs. O primeiro objeto, PcdStationQObj, destina-se a incorporar a fila de PCDs criadas no cenário, e controla o início de simulação destas plataformas através do procedimento InitSim. O outro procedimento, RandomStation, possibilita a escolha aleatória de uma PCD das existentes na fila mantida pelo objeto anterior. O objeto PcdStationObj descreve as características das plataformas e as suas funcionalidades, através dos atributos e dos métodos incorporados na classe 77 para permitir a simulação do funcionamento das PCDs. O método Simulate destina-se a controlar o tempo simulado transcorrido na operação normal da plataforma. O método SendMessage destina-se a enviar uma mensagem para um satélite, e os métodos ObjInit, ObjTerminate e BeSelect, respectivamente, para criar, terminar e selecionar um determinado objeto. A classe de objeto do tipo fila, anteriormente apresentada, permite a inclusão de novas PCDs, pela execução do procedimento NewPcdStations e, também, possibilitam que as plataformas criadas sejam salvas ou recuperadas em disco, pelos procedimentos SavePcdStations e LoadPcdStations. A variável AnimationSpeed controla a velocidade da animação dos objetos instanciados e a NumMsgAttempted o número de mensagens transmitidas. 5.4 DSATELITE - MÓDULO DOS SATÉLITES DEFINITION MODULE Satélite ; FROM GrpMod IMPORT QueueObj, RankedObj ; FROM Gtypes IMPORT PointType ; FROM IOMod IMPORT StreamObj ; FROM Ground IMPORT GroundStationObj ; FROM MapWin IMPORT MessageNodeObj ; FROM Animate IMPORT DynImageObj, DynDClockObj; FROM Line IMPORT PolylineObj; TYPE SatelliteQObj = OBJECT (QueueObj[ANYOBJ:SatelliteObj]) ; ASK METHOD InitSim ; ASK METHOD RandomStation : SatelliteObj ; END OBJECT ; SatelliteObj = OBJECT (DynImageObj) ; Quadrant : INTEGER; OrbitPosition : REAL; OrbitVelocity : REAL; OrbitCenterX : REAL; OrbitCenterY : REAL; 78 OrbitRadius : REAL; Orbit : PolylineObj; TELL METHOD Simulate ; ASK METHOD ComputeQuadrant; ASK METHOD ComputePosition (IN orbitPostion : REAL; OUT x, y : REAL); ASK METHOD SetOrbitData (IN radius, position : REAL); ASK METHOD SendMessage (IN target : GroundStationObj ; IN MessageNode : MessageNodeObj) ; ASK METHOD ReceiveMessage (IN MessageNode : MessageNodeObj ); ASK METHOD ShowOrbit; ASK METHOD HideOrbit; OVERRIDE ASK METHOD ObjInit ; ASK METHOD ObjTerminate ; ASK METHOD DynamicUpdate (IN CurrentTime, ElapsedTime : REAL); CLASS Satellites : SatelliteQObj ; ASK METHOD NewSatellites ; ASK METHOD SaveSatellites (IN file : StreamObj) ; ASK METHOD LoadSatellites (IN file : StreamObj) ; END OBJECT ; VAR AnimationSpeed : INTEGER ; SimNumMsg : INTEGER ; END MODULE . As caraterísticas e o comportamento dos satélites são definidos neste módulo. O primeiro objeto, SatelliteQObj, visa permitir a inclusão de um cenário com mais de um satélite. O início de simulação desses objetos é efetuado pelo procedimento InitSim. O procedimento RandomStation permite a escolha aleatória de um satélite entre os existentes na fila para que seja efetuada a comunicação. 79 O objeto SatelliteObj é definido como um objeto dinâmico, o que o torna passível de movimentação dentro do cenário. O método Simulate destina-se a controlar o tempo simulado gasto nas operações realizadas pelo satélite. O método ReceiveMessage possibilita o recebimento de uma mensagem enviada pela PCD e o método SendMessage, destina-se a enviar uma mensagem para uma estação terrestre. Os métodos ObjInit e ObjTerminate servem, respectivamente, para criar e eliminar um satélite. O método SetOrbitData faz o posicionamento inicial do satélite na orbita desejada. O seu posicionamento durante a simulação é calculado por ASK METHOD ComputePosition, que por sua vez passa a nova posição para o método DynamicUpdadte para atualizar a movimentação do satélite em sua órbita. Os métodos ShowOrbit e HideOrbit, por sua vez, exibem ou não a órbita percorrida pelo satélite. A classe de objetos SatelliteQObj permite que novos satélites sejam incluídos na fila, via a chamada do método NewSatellites e, também, possibilitam que os satélites existentes sejam gravados em disco ou recuperados pelos métodos SaveSatellites e LoadSatellites. A variável AnimationSpeed controla a velocidade da animação dos objetos e a SimNumMsg armazena o total de mensagens simuladas. 5.5 DERCD - MÓDULO DAS ESTAÇÕES DE RECEPÇÃO TERRESTRES DEFINITION MODULE ERCD ; FROM Image IMPORT ImageObj ; FROM GrpMod IMPORT QueueObj ; FROM IOMod IMPORT StreamObj ; FROM MapWin IMPORT MessageNodeObj ; TYPE GroundStationQObj = OBJECT (QueueObj[ANYOBJ:GroundStationObj]) ; ASK METHOD RandomStation : GroundStationObj ; END OBJECT ; 80 GroundStationObj = OBJECT (ImageObj) ; MeanTimeBtwnMsg : REAL ; ASK METHOD SetMeanTimeBtwnMsg (IN time : REAL) ; ASK METHOD ReceiveMessage (IN MessageNode : MessageNodeObj ); OVERRIDE ASK METHOD ObjInit ; ASK METHOD ObjTerminate ; ASK METHOD BeSelected ; CLASS GroundStations : GroundStationQObj ; ASK METHOD NewGroundStations ; ASK METHOD SaveGroundStations (IN file : StreamObj) ; ASK METHOD LoadGroundStations (IN file : StreamObj) ; END OBJECT ; VAR Messages : QueueObj; filemsg : StreamObj; END MODULE . O primeiro objeto, GroundStationQObj, descrito neste módulo, destina-se a incorporar a fila de ERCDs criadas no cenário, e controla a escolha aleatória de uma Plataforma de Recepção das existentes na fila, através do procedimento RandomStation. O objeto GroundStationObj descreve as características existentes nas ERCDs. O procedimento SetMeanTimeBtwnMsg fornece o tempo médio entre as mensagens. O método ReceiveMessage permite a recepção de uma mensagem enviada pelo satélite, e os métodos ObjInit, ObjTerminate e BeSelect, respectivamente, para criar, terminar e selecionar um determinado objeto do tipo GroundStationObj. A classe de objetos do tipo fila, GroundStationQObj, permite a inclusão de novas ERCDs via o procedimento NewGroundStations e, também, possibilitam que as plataformas criadas sejam salvas ou recuperadas de disco, via os métodos SaveGroundStations e 81 LoadGroundStations, respectivamente. A variável messages, do tipo fila, destina-se a armazenar as mensagens recebidas pela ERCD, e filemsg descreve o nome do arquivo no qual as mensagens serão gravadas em disco. 5.6 DRESULT – MÓDULO DE APRESENTAÇÃO DE RESULTADOS Este módulo será responsável pela apresentação e análise dos resultados gerados durante a corrida de simulação. Ele deve ser capaz de emitir todos os relatórios solicitados nos requisitos do simulador, entre eles: janela de visibilidade por passagem do satélite por dia de uma determinada plataforma em relação a uma determinada estação terrena; o número de mensagens recebidas de cada PCD (por estação ou conjunto de estações, referentes a uma passagem do satélite ou a um dia de operação do sistema), a distribuição do número de mensagens geradas por uma PCD ou conjunto de PCDs que foram recebidas em um intervalo de tempo ou em um dia de operação, seja por uma determinada estação, ou pelo satélite ou pelo sistema como um todo. Na versão atual do protótipo este módulo ainda não foi estudado em detalhes e não foi objeto de qualquer tipo de implementação. 5.7 DHELPDLG - MÓDULO DE AJUDA DEFINITION MODULE HelpDlg ; FROM Form IMPORT DialogBoxObj ; FROM Window IMPORT WindowObj ; TYPE HelpDialogBoxObj = OBJECT (DialogBoxObj) ; ASK METHOD DisplayFile (IN filename : STRING; IN window : WindowObj) ; OVERRIDE 82 ASK METHOD ObjInit ; END OBJECT ; END MODULE . O objeto descrito neste módulo destina-se a auxiliar o usuário final a operar o protótipo do simulador através de consultas “on line”. O objeto HelpDialogBoxObj é composto por dois processos destinados a inicializar e a exibir um texto de ajuda, passado por parâmetro, em uma janela criada na interface gráfica. 5.8 ESTÁGIOS DE DESENVOLVIMENTO DA PESQUISA E DO PROTÓTIPO A pesquisa compreendeu uma fase inicial de estudo do problema, envolvendo a determinação dos requisitos necessários para o desenvolvimento do simulador, sua estruturação geral e a implementação de uma primeira versão dos seus componentes básicos (Interface Gráfica com o usuário, PCDs, ERCDs e Satélites), para servir como catalisador do esforço de implementação nas etapas seguintes. Esta fase inicial foi concluída com um artigo (Kienbaum et al., 1999) apresentado no Simpósio de Pesquisa Operacional e Logística da Marinha, em 1999 (SPOLM99), que apresentou a proposta da pesquisa e descreveu a primeira versão da interface gráfica interativa construída. Uma segunda etapa da pesquisa consistiu em situar o problema dentro do contexto maior que é o estudo completo de simulação a ser conduzido com o sistema, em elaborar a documentação inicial do protótipo, e em detalhar a questão da estrutura dos seus módulos componentes. A segunda etapa da pesquisa também foi objeto de um trabalho para congresso (Travassos et al., 2001), que está sendo submetido para apresentação no XVIII Congresso Brasileiro de Pesquisa Operacional (SOBRAPO 2001). No tocante ao desenvolvimento do protótipo, a segunda etapa se caracterizou 83 pela inclusão de diversas melhorias em aspectos da implementação inicial, e foram acrescentadas novas funcionalidades na interface gráfica de interação com o usuário, resultando na versão atual do simulador apresentada na Figura 5.1 e descrita a seguir. Fig. 5.2 - Interface Gráfica Interativa do Simulador. No modo de operação montagem de cenário, o protótipo atual do simulador permite a construção de configurações da rede de plataformas de coleta de dados e das estações terrenas sobre mapa da América do Sul georeferenciado, onde a determinação das coordenadas de localização das PCDs e estações terrenas é realizada de forma automática pelo sistema. As configurações são criadas escolhendo-se objetos da paleta e posicionandoos na tela, após o que é feita a designação de valores a seus atributos, através de caixas de diálogo apropriadas que são apresentadas na tela para cada tipo 84 de objeto que está sendo especificado. As configurações criadas podem ser salvas em arquivos de dados e reutilizadas posteriormente na forma de cenários pré-construídos. Com relação à entrada de dados que serão utilizados na experimentação, os atributos ativos das PCDs compreendem sua localização e seu intervalo de geração entre mensagens. Os demais atributos estão sendo registrados para posterior utilização. O satélite tem como atributos ativos o registro das freqüências utilizadas em sua operação (Bandas S e UHF), sua localização e velocidade em órbita, sendo os demais atributos, como a potência de transmissão e retransmissão, G/T e estabilidade do oscilador, também registrados para uso futuro. Para as Estações de Recepção estão ativados nos objetos instanciados, a sua localização, freqüência da portadora, número de canais de processamento disponíveis e estado de operação. Os demais atributos, da mesma forma que os casos similares de PCD e satélite, não são utilizados no presente modelo e são registrados para futura implementação. O modo projeto de experimentos ainda necessita ser detalhado, mas já é possível se determinar a duração da corrida de simulação através do número de mensagens geradas na execução, bem como se introduzir uma semente para ser utilizada na geração dos números aleatórios, embora isto seja feito atualmente na caixa de diálogo que dá início à simulação, devendo posteriormente ser implementado na forma de um menu apropriado, contendo todas as facilidades destinadas a este modo. No modo simulação, o simulador permite a realização de corridas simples de simulação, com a geração de mensagens, a atribuição de valores ao seu conteúdo, e o registro de seus parâmetros básicos durante a corrida de 85 simulação, como instante de geração e conteúdo, para fins de monitoramento. A simulação se baseia atualmente apenas no tráfego de mensagens entre cada PCD, satélite e a ERCD. Todo o processo se inicia na PCD a partir da geração e transmissão de mensagens que têm freqüência, tamanho e período de transmissão estipulados para cada plataforma. O instante inicial de transmissão é gerado de forma aleatória, em virtude de não ser possível estipulá-lo para as plataformas instaladas. A potência da plataforma ainda está sendo registrada apenas para efeito de documentação e futura implementação. Os métodos implementados para os satélites possibilitam receber e reenviar as mensagens, que são recebidas e registradas nas estações de recepção para posterior análise e apresentação de resultados. A animação inclui a fixação da velocidade de execução pelo usuário no início da corrida, através da designação de um valor entre 0 e 9 ao parâmetro velocidade, bem como a exibição ou ocultação da trajetória descrita pelos satélites em sua projeção sobre o solo e a comunicação entre os nós da rede na forma de linhas representativas do tráfego de mensagens. Alguns aspectos da versão atual precisam, no entanto, ser melhorados ou ainda estão pendentes como, por exemplo, a incorporação da órbita dos satélites por meio do propagador de órbita, o tratamento da questão da visibilidade das plataformas ao longo destas trajetórias e todas as facilidades relacionadas com o módulo de análise e apresentação dos resultados. O capítulo 6, a seguir, apresenta o próximo estágio de desenvolvimento na forma de pesquisa futura a ser realizada com o sistema, cobrindo os aspectos já identificados como ainda incompletos na versão atual, bem como projetando a questão da adição de facilidades para a criação do projeto de experimentos, da execução das corridas de simulação e da análise e apresentação dos resultados 86 O desenvolvimento do sistema prosseguirá de acordo com o processo de natureza incremental descrito, onde cada estágio de detalhamento do problema será explorado através da construção de um estágio correspondente de sua implementação. 87 CAPÍTULO 6 PESQUISA E DESENVOLVIMENTO FUTUROS Este capítulo descreve a direção a ser seguida pela pesquisa e desenvolvimento futuros do simulador e do estudo de simulação a ser realizado com o mesmo. Os aspectos cobertos são bem amplos e vão desde a melhoria de facilidades já existentes; a implementação de novas facilidades identificadas como essenciais a partir dos requisitos; procedimentos para verificação e validação do simulador; procedimentos para elaboração do projeto de experimentos; e, por fim, propostas para a sua utilização para análise da configuração, da operação e do desempenho do sistema. 6.1 APERFEIÇOAMENTO E NOVAS FACILIDADES NO SIMULADOR 6.1.1 MONTAGEM DE CENÁRIO Deverão ser incorporados comandos adicionais, disponibilizados através de menus, como alternativa ao processo de seleção/arrasto via “mouse”, para inclusão e manutenção dos elementos componentes dos cenários. Todos os parâmetros fornecidos, via interface de diálogo com o usuário, necessários a execução da simulação sofrerão críticas na entrada, minimizando os erros oriundos de digitação. Pretende-se implementar acesso a banco de dados relacionais para permitir consultas não estruturadas à base de dados de configuração, como também às de projeto de experimentos e de resultados da simulação. Para isto será necessário se obter a nova versão do MODSIM III que já disponibiliza, em sua forma nativa, objetos apropriados para implementação de acesso completo a banco de dados relacionais (GOBLE et al.,1998). 89 6.1.2 PROJETO DE EXPERIMENTO A montagem dos projetos de experimento será objeto da criação de um menu específico para conter todas as facilidades relacionadas com este modo de operação, entre elas: a atribuição do valor de duração das corridas de simulação, a seleção de sementes, e a determinação de instantes para interrupção de corridas, destinadas à verificação das variáveis de estado e/ou modificação destas para reinicialização da simulação. O projeto de experimento deverá considerar ainda a questão da criação de unidades experimentais que sejam formadas pela variação controlada dos atributos de cada um ou de um grupo de elementos componentes do cenário, constituídos por PCDs, Satélites e Estações. Com isto será possível alternar situações em que um elemento ou grupo de elementos tem seus atributos especificados com valores alto, médio ou baixo, e o efeito cruzado destas variações possam ser estudados com base nos resultados gerados para cada unidade experimental ensaiada. 6.1.3 SIMULAÇÃO Serão incorporados no protótipo o posicionamento e a velocidade do satélite, a partir do propagador de elementos orbitais do modelo NORAD SGP4 – para satélites próximos da Terra. Para tanto a interface de entrada de dados dos satélites deverá ser modificada para permitir que sejam recuperados o conjunto de elementos “two-line” que identificam o satélite simulado. Uma vez que se tenha obtido sucesso na inclusão da chamada da rotina de propagação orbital pelo simulador, outros requisitos poderão ser rapidamente incorporados, tais como: a determinação da distância (“range”), da velocidade relativa (“range-rate”), range-rate-rate, azimute e elevação do satélite em relação à PCD e à estação terrena; o processamento da região de visibilidade 90 do satélite durante sua passagem; a identificação das estações inoperantes e sua exclusão da correspondente rodada de simulação; e as limitações de comunicação devido ao número de canais disponíveis para processamento das mensagens nas estações de recepção. Outra característica importante, influenciada diretamente pela incorporação do propagador de órbitas no simulador é o tratamento de colisões de mensagens. Devido ao deslocamento do satélite no espaço, se aproximando ou se afastando das PCDs, ocasiona um desvio na freqüência originalmente transmitida, quando ela for recebida pelo satélite (efeito Doppler) (Blitzkow,1975). A freqüência resultante pode então, se sobrepor a uma outra mensagem recebida no mesmo instante, acarretando em uma colisão de mensagens. Assim, este efeito poderá sofrer o tratamento adequado, quando da execução do processo de recebimento da mensagem pelo satélite, durante a simulação. Um menu destinado a execução e ao controle da simulação deverá ser disponibilizado, para ser usado depois que o modelo estiver pronto para ser simulado. O menu deverá conter comandos para iniciar, terminar ou parar uma rodada de simulação. A opção de parar deverá interromper a simulação momentaneamente, quando poderão ser analisadas as variáveis de estado do sistema. A opção de terminar uma simulação deverá interromper definitivamente a rodada de simulação, no instante da execução do comando, preservando as operações já concluídas. Serão incluídos em menu específico, parâmetros para controle da velocidade de animação, exibição ou não de resultados parciais e do relógio, antes e durante a corrida de simulação Algumas estatísticas básicas (mínimo, máximo, média, desvio padrão) poderão ser apresentadas “on line” a partir do monitoramento de alguns objetos do 91 sistema, ou armazenadas para serem observadas depois que a simulação for completada. Deverá ser considerado ainda o tratamento de erros dos dados utilizados durante as corridas de simulação, que sejam provenientes de desvios da injeção nas órbitas dos satélites: ponto, velocidade e ângulo de injeção, bem como de mal alinhamento das antenas devido a movimentos erráticos dos satélites. (Souza, 1989) 6.1.4 ANÁLISE DOS RESULTADOS Um menu de relatórios apresentará as várias opções de relatórios préformatados disponíveis no simulador. Os relatórios estarão armazenados na forma de arquivos para permitir consultas a partir de um editor de texto ou sua impressão. Através de um menu de resultados gráficos, os dados gerados durante a experimentação também poderão ser visualizados para a condução das análises apropriadas. 6.1.5 FACILIDADES ADICIONAIS DA INTERFACE GRÁFICA O menu de ajuda fornecerá a opção de auxílio “on line” das funcionalidades do sistema de modo sensível ao contexto da chamada. Além disso, toda a documentação do sistema será fornecida em arquivos para consulta imediato pelo usuário. 6.2 VERIFICAÇÃO E VALIDAÇÃO DO PROTÓTIPO Verificação é a certificação de que um programa de simulação implementa e executa corretamente o modelo conceitual de simulação de um sistema real. A 92 simplicidade da formulação deste conceito esconde muitas vezes a enorme dificuldade de se checar inteiramente um programa de simulação de larga escala (Law e Kelton, 1992). Validação está relacionada com a determinação se o modelo conceitual de simulação do sistema representa corretamente o sistema real. Se um modelo é válido, então as decisões tomadas com base neste deverão ser semelhantes àquelas que seriam tomadas a partir da experimentação feita diretamente com o sistema real, se isto fosse possível (Law e Kelton, 1992). Um roteiro completo para a execução dos procedimentos relacionados com a verificação e validação de modelos de simulação pode ser visto em (Kienbaum, 1989), que contém um “survey” da literatura publicada sobre o assunto. O receituário pode ser descrito em 13 itens, agrupados sob a denominação de Estágios de Aferição de Credibilidade (EACs), acompanhados de um procedimento para aplicação destes critérios por um painel de especialistas, que desta forma podem concluir sobre a confiabilidade do modelo, classificando-o como aceitável ou não aceitável. A equipe encarregada do simulador deve ter em mente, porém, que a prática mostra que a validação de um simulador emprega apenas parte das técnicas de validação apresentadas e que, adicionalmente, podem haver métodos mais eficientes que podem ser desenvolvidos para a aplicação particular em consideração (Law e Kelton, 1992). 6.3 PROJETO DE EXPERIMENTOS O projeto de experimentos é a etapa do estudo de simulação em que se faz o planejamento e a especificação dos parâmetros que serão acompanhados durante as corridas de simulação, podendo ele ser ainda subdividido em três atividades menores: a identificação dos fatores, a definição das unidades 93 experimentais e a seleção das variáveis de resposta. Na identificação dos fatores precisam ser levadas em consideração uma série de questões, que devem ser respondidas de acordo com o conhecimento de especialistas sobre o sistema. Algumas das questões que estarão sendo formuladas aos operadores do SBCD para a elaboração do projeto de experimentos serão: 1) Que fatores são considerados relevantes para experimentação? 2) Quais são os modos alternativos de operação do sistema? 3) Que modificações nos valores dos parâmetros devem ser consideradas? 4) Que variações são possíveis na quantidade disponíveis de recursos (PCDs, Satélites, Estações de Recepção)? A definição das unidades experimentais significa a escolha de um conjunto completo de fatores, que são os parâmetros a serem monitorados, associados com os demais aspectos determinantes de uma corrida, tais como as condições de início e término, a escolha da semente para os geradores das variáveis aleatórias, o comprimento da corrida, o período de “aquecimento”, que é o tempo durante o qual as estatísticas são desprezadas, e outros. Esta atividade está mais afeita ao analista que desenvolveu o simulador e o conhece em profundidade do que aos operadores do sistema. A identificação dos fatores e o grupamento destes numa unidade experimental pronta para a execução de uma corrida é feita no início desta etapa, através de uma análise cuidadosa a partir de propostas de experimentos (“screening experiments”) que podem ainda ser descartados. 94 Finalmente, a seleção das variáveis de resposta, se constitui também num importante aspecto desta etapa, que terá conseqüências sobre as fases seguintes do ciclo de vida, isto é, na execução da simulação, no tipo de análise e apresentação dos resultados, e na qualidade do apoio à tomada de decisão. Para a escolha das principais variáveis de saída a serem medidas pelo modelador é preciso ter em mente que as variáveis de resposta são variáveis aleatórias e as conclusões sobre elas vão requerer uma análise estatística cuidadosa. 6.4 SIMULAÇÃO E ANÁLISE DE RESULTADOS Finalmente, apresenta-se neste tópico algumas considerações sobre o uso do simulador em sua forma final para a condução da análise do sistema SBCD propriamente dita. São identificadas quatro situações de interesse, que agrupam o monitoramento de diversos parâmetros de um dado tipo, a saber: a análise de configuração; a análise de estratégias de operação; a análise do desempenho do sistema; e a análise de sensibilidade a condições extremas de operação do simulador. Estes estudos só serão possíveis a partir da incorporação das facilidades descritas no item 6.1 ao protótipo do simulador, de forma a dotá-lo de todos os recursos necessários a um sistema completo de simulação, como é o caso do COMNET III mostrado na Figura 2.5, com o qual se desenvolveu o primeiro modelo do SBCD, conforme mencionado no item 2.6. Os casos identificados a seguir tão pouco são considerados exaustivos, podendo os operadores do SBCD identificarem novos estudos de interesse a partir destas análises, e até proporem modificações no próprio modelo, buscando dotá-lo de novas capacidades para outros tipos de análise não previstas abaixo. 95 6.4.1 ANÁLISE DE CONFIGURAÇÃO 1) Modificação de configurações: testar cenários baseados em casos reais de operação do sistema, prever situações de instalações de novas PCDs, inclusive a questão da colocação destas de forma concentrada em determinadas regiões, procurando-se determinar qual a melhor configuração destas, evitando-se interferências oriundas da distribuição da própria rede de PCDs. 6.4.2 ANÁLISE DE OPERAÇÃO 1) Modificação de Intervalos entre mensagens: variar os intervalos entre mensagens para cada tipo de PCD para identificar se isto afeta aspectos do desempenho do sistema, tais como número de colisões e conseqüente perda de mensagens na recepção e eventuais efeitos cruzados resultantes disto com as variações de freqüência ocasionadas pelo efeito Doppler. 2) Potência dos sinais: verificar o efeito da variação de potência dos sinais emitidos pelas PCDs e a relação desta com a questão do ganho dos “transponders” no satélite e sua retransmissão com sucesso para as estações terrenas. 3) Canais das estações de recepção: a quantidade de canais disponíveis e a alocação destes a cada instante para cada uma das bandas afeta diretamente a capacidade de processamento no recebimento das mensagens. 4) Influência das trajetórias dos satélites e regiões de visibilidade: dimensionar os períodos de visibilidade mútua das plataformas com as 96 estações de recepção terrena, durante a passagem do satélite, nas suas diversas órbitas. 5) Tratamento de colisões e efeito Doppler: alterar a posição relativa de PCD crítica (baixo número de mensagens transmitidas com sucesso devido a colisões de mensagens em freqüência) para posições mais favoráveis, visando aumentar a probabilidade de se transmitir mensagens válidas. 6.4.3 ANÁLISE DE DESEMPENHO DO SISTEMA 1) Desempenho do sistema será avaliado com base em relatórios gerados pelo simulador, que devem conter no mínimo o seguinte: tempo de visibilidade por passagem do satélite por dia por PCD em relação a uma determinada estação terrena; número de mensagens recebidas por estação, referentes a uma passagem do satélite; número de mensagens recebidas de cada PCD por estação, referentes a uma passagem do satélite e sem repetição; a distribuição do número de mensagens geradas por uma PCD que foram recebidas em um intervalo de tempo ou em um dia de operação, seja por uma determinada estação ou por uma determinada estação e um satélite. 2) Simulação de quebra de plataformas, estações e satélites: avaliar a influência no desempenho do sistema, considerando a desativação de PCDs, plataformas de recepção, e até mesmo de satélites, quando houver mais de um. 6.4.4 ANÁLISE DE SENSIBILIDADE 1) Determinação de configurações limites e sensibilidade a parâmetros extremos: identificar casos limites, nos quais o sistema apresenta 97 saturação de mensagens bem sucedidas para a configuração simulada ou em que o simulador passa a se comportar de forma inválida. 98 CAPÍTULO 7 CONCLUSÕES Este trabalho apresentou um estudo completo de simulação para a modelagem e a simulação do Sistema Brasileiro de Coleta de Dados baseado em Satélites, tendo como foco principal a análise do tráfego de mensagens na rede de comunicação de dados constituída pelo sistema real. O simulador visa determinar importantes parâmetros operacionais do sistema, tais como configurações limites e o número máximo de PCDs que podem ser utilizadas, permitir a avaliação do seu desempenho para uma dada configuração, além de permitir analisar alternativas para sua atualização, relacionados com diferentes configurações de PCDs (tipo, número, localização, etc.), com as estações receptoras ERCDs (tipo, número, localização, etc.) e com os satélites em utilização (número, órbitas, etc.). O desenvolvimento do simulador foi feito baseado na metodologia de orientação a objetos. Esta metodologia foi escolhida devido às características do projeto e aos benefícios esperados pela adoção da mesma, que vão desde a maior facilidade na concepção do modelo, com base em princípios modernos de engenharia de software, bem como em sua modularização, extensibilidade e reusabilidade. Os benefícios esperados foram confirmados e além disto o uso da orientação a objetos permitiu a adoção de um estilo incremental de programação e possibilitou um rápido desenvolvimento do protótipo, mesmo levando-se em consideração à complexidade conceitual do modelo em questão. Apesar do objetivo geral do projeto de pesquisa ter sido formulado de forma bastante ampla, a concentração dos esforços nas etapas de definição do 99 problema, de determinação de requisitos, de elaboração da análise e do projeto, e da prototipação do simulador permitiu que o objetivo prático fosse atingido com sucesso, o que é evidenciado pelo protótipo do simulador implementado, em comparação com o nível de conhecimento e das técnicas de abordagens disponíveis para o problema no início das atividades deste trabalho. Os objetivos de natureza teórica ou acadêmica propostos também foram atingidos, tanto o de caráter geral, de apresentar o problema dentro de um contexto maior que é o estudo de simulação a ser conduzido com o sistema, quanto os de caráter específicos, relacionados com o uso de uma abordagem de simulação discreta orientada a objetos para permitir a rápida prototipação do simulador. Como principal realização pode ser destacada a estruturação geral para os módulos componentes do simulador, e a implementação de algumas de suas principais funcionalidades, tendo sido atingido um estágio de desenvolvimento bastante avançado, tanto em relação à sua interface gráfica de interação com o usuário, quanto aos demais componentes do protótipo. Os recursos ainda incompletos na versão atual do protótipo foram projetados para implementação futura com base nos requisitos, e sua inclusão está prevista para uma próxima etapa de desenvolvimento. A construção do sistema deverá prosseguir, adotando-se uma estratégia de desenvolvimento do tipo incremental, buscando-se retratar cada estágio da compreensão e detalhamento do modelo com um protótipo correspondente, até a conclusão satisfatória de todos os requisitos de desenvolvimento estabelecidos para o projeto. Por fim, foram antecipados alguns problemas relacionados com o uso do simulador, com base no conhecimento adquirido sobre o sistema SBCD e na 100 experiência com a utilização de sistemas de simulação de características semelhantes, visando auxiliar a equipe de desenvolvedores e de usuários em suas futuras tarefas de projeto de experimentos, execução da simulação e análise dos resultados gerados pelo modelo. Trabalhos posteriores podem ser elaborados para a apresentação do sistema de simulação na sua forma final e para a apresentação dos resultados das simulações realizadas com o mesmo. 101 REFERÊNCIAS BIBLIOGRÁFICAS Agência Nacional de Energia Elétrica (ANEEL). Monitoramento hidrológico diário. Disponível em: <http://www.aneel.gov.br/sih/teleme/dados/relhidro.htm>. Acesso em: jun. 2001. Analytical Graphics Inc. (AGI). Satellite Tool Kit. [online]. Disponível em: <www.stk.com>. Acesso em: jun. 2001. Balci, O. Guidelines for successful simulation studies. Blacksburg: Virginia Tech. Department of Computer Science, Nov. 1985. (Technical Report TR85-2). Blitzkow, D. Elementos que influem na precisão dos sistemas Doppler de posicionamento. São José dos Campos: INPE, 1975. 29 p. (INPE-705RRE/017). Braga, R. L. C. Sistema simulador de coleta de dados – SSCD. Proposta técnica International Bussiness Machines/Instituto Nacional de Pesquisas Espaciais. Rio de Janeiro: IBM-Brasil, 1995. 131 p. Caci Products. Comnet III user’s manual: planning for network managers. La Jolla: 1997a. Caci Products. Modsim III - object oriented simulation: reference manual. La Jolla: 1997b. 103 Elebra Sistemas de Defesa e Controles & Elebra Comunicação de Dados. Desenvolvimento, instalação e treinamento do software simulador do sistema de coleta de dados. Proposta técnica Elebra Sistemas de Defesa e Controles & Elebra Comunicação de Dados/Instituto Nacional de Pesquisas Espaciais. São Paulo: Elebra, 1995. 66 p. Elmaghraby, S. E. The role of modeling in IE design. Industrial Engineering, v. 19, n. 6, p. 292-305, Jun. 1968. Escobal, P. R. Methods of orbit determination. New York: John Wiley, 1965. 479 p. Goble, J. et al. Modsim III – A tutorial with advances in database access and HLA support. [CD-ROM]. In: Winter Simulation Conference, Washington, D.C., 1988. Proceedings. Washington, D.C., Dez. 1998. Ha, T. T. Digital satellite communications. 2.ed. New York: McGraw-Hill, 1990. 574 p. Iman Comercial e Engenharia de Sistemas. Simulador do sistema de coleta de dados. Proposta técnica Iman Comercial e Engenharia de Sistemas/Instituto Nacional de Pesquisas Espaciais. São Paulo: Iman, 1995. 48 p. Instituto Nacional de Pesquisas Espaciais (INPE). Sistema de coleta de dados dos satélites. Missão espacial completa brasileira: a missão. Disponível em: <http://www.inpe.br/programas/mecb/Port/satelites/scd2/misscd2.htm>. Acesso em: ago. 2001a. Instituto Nacional de Pesquisas Espaciais (INPE). Sistema de coleta de dados de Cachoeira Paulista. Missão espacial completa brasileira: 104 serviços aos usuários de coleta de dados. Disponível em: <http://www.inpe.br/programas/mecb/Port/satelites/scd1/pcd1.jpg>. Acesso em: ago. 2001b. Instituto Nacional de Pesquisas Espaciais (INPE). SCD-1 na sua órbita. Centro de missão de coleta de dados: galeria de fotos. Disponível em: <http://www.cmcd.inpe.br/imacmcd/orbview.jpg>. Acesso em: ago. 2001c Instituto Nacional de Pesquisas Espaciais (INPE). Estação terrena de Cuiabá. Missão espacial completa brasileira: galeria de fotos – solo. Disponível em: <http://www.inpe.br/programas/mecb/Port/fotos/cuiaba2.jpg>. Acesso em: ago. 2001d. Instituto Nacional de Pesquisas Espaciais (INPE). PCDs meteorológicas. Centro de missão de coleta de dados: produtos. Disponível em: <http://www.cmcd.inpe.br/port/dados.html>. Acesso em: jun. 2001e. Instituto Nacional de Pesquisas Espaciais (INPE). Data collection system simulator requirements specification. São José dos Campos: INPE MECB, 1995. 18 p. (A-DRS-2004). Jacobson, I. et al. Object-oriented software engineering - A use case driven approach. New York: Addison Wesley, l992. 524 p. Jacobson, I. et al. The unified software development process. New York: Addison Wesley, l998. 463 p. Kelso, T. S. Orbit determination. Satellite Times, v. 1, n. 6, p. 80-81, JulyAug. 1995. 105 Kelso, T. S. Documentation for NORAD SGP4/SDP4 units. [online]. Disponível em: <www.celestrak.com/software/satellite/sgp4-plb26a.zip>. Acesso em: Nov. 1999. Kienbaum, G. S. Uma visão integrada sobre metodologia e ambiente para modelagem e simulação assistidas por computador. São José dos Campos. 218 p. Dissertação (Mestrado em Análise de Sistemas e Aplicações) - Instituto Nacional de Pesquisas Espaciais, 1989. Kienbaum, G. S. A Framework for Automatic Simulation Modeling Using an Object-Oriented Approach. West London. 396 p. Tese (Doutorado em Ciências da Computação) - Brunel University, 1995. Kienbaum, G. S.; Paul, R. J. H-ACDNET: An object-oriented graphical user interface for simulation modeling of manufacturing systems. Simulation Practice and Theory, n. 2, p. 141-157, 1994. Kienbaum, G. S., et al. Arquitetura para um simulador do sistema de coleta de dados baseado em satélites da MECB. In: Simpósio de Pesquisa Operacional da Marinha, 3.; Simpósio de Logística da Marinha, 4., (SPOLM’99), Rio de Janeiro, 1999. Resumo dos trabalhos. Rio de janeiro: CASNAV, 1999. p 48-49. Kuga, H. K. ; Rao, R. K. Introdução à mecânica celeste. São José dos Campos: INPE, 1995. 74 p. (INPE-5615-PUD/064). Law, A. M. ; Kelton, W.D. Simulations modeling & analysis. 2.ed. New York: McGraw-Hill, 1992. 759 p. 106 Nance, R. E. Model representation in discrete event simulation: the conical methodology. Blacksburg: Virginia Tech. Dept. of Computer Science, Mar. 1981. (Tech. Rep. CS81003-R). Pidd, M. Computer simulation in management science. New York: John Wiley & Sons, 1992. 351 p. Pressman, R. S. Software engineering: a practitioner’s approach. New York: McGraw-Hill, 1992. 793 p. Roberts, C. A. et al. An overview of object-oriented simulation. Simulation, v. 70, n. 6, p. 359-367, June 1998. Shannon, R. E. Systems simulation: art and science. Englewood Cliffs: Prentice-Hall, 1975. 387 p. Sousa, C. T. Geolocalização de transmissores com satélites usando desvio doppler em tempo-quase-real. São José dos Campos. 175 p. (INPE-8391-TDI/771). Tese (Doutorado em Engenharia e Tecnologia Espaciais) - Instituto Nacional de Pesquisas Espaciais, 2000. Souza, L. C. G. Rede experimental de plataforma de coleta de dados e localização – descrição da rotina “ORBIT”. São José dos Campos: INPE, fev. 1989. 29 p. (INPE-4798-NTE/287). Travassos, P. R. N. et al. Um estudo de simulação do sistema brasileiro de coleta de dados baseado em satélites. Submetido ao: XXXIII Simpósio Brasileiro de Pesquisa Operacional. Campos do Jordão: nov. 2001. Tude, E.A.P. et al. Análise do sistema de coleta de dados da MECB/SS. São José dos Campos: INPE, 1986. 999 p. (INPE-3820-NTE/253). 107 Yamaguti, W, et al. Collection and treatment of the environment data with the brazilian satellite SCD1. Revista Brasileira de Ciências Mecânicas, v. 16, p 205-211, fev. 1994. Special Issue. Yilmaz, L. A. Taxonomical review of object-oriented simulation model verification and validation techniques. Blacksburg: Department of Computer Science, Virginia Polytechnic Institute and State University, Mar. 1998. (Technical Report TR-98-6). Yourdon, E. Object-oriented systems design: an integrated approach. Englewood Cliffs: Prentice-Hall, 1994. 400 p. 108 APÊNDICE A FORMATO DOS ELEMENTOS NORAD “TWO-LINE” O conjunto de elementos NORAD “Two-line” consiste de três linhas de dados para cada satélite no seguinte formato: AAAAAAAAAAAAAAAAAAAAAAAA 1 NNNNNU NNNNNAAA NNNNN.NNNNNNNN +.NNNNNNNN +NNNNN-N+NNNNN-N N NNNNN 2 NNNNN NNN.NNNN NNN.NNNN NNNNNNN NNN.NNNN NNN.NNNN NN.NNNNNNNNNNNNNN Linha 0 define o nome do satélite de até 24 caracteres. (linha opcional). Linhas 1 e 2 contém os elementos orbitais no formato padrão “Two-Line” idênticos aos que são usados pelo NORAD e NASA. Descrição do formato: Linha 1 Coluna Descrição 01 Número da Linha 03-07 Número do Satélite 08 Classificação (U = Não Classificado) 10-11 Designador Internacional (dois últimos dígitos do ano do lançamento) 12-14 Designador Internacional (número de lançamento no ano) 15-17 Designador Internacional (parte do lançamento) 19-20 Época do Ano (dois últimos dígitos do ano) 21-32 Época (dia do anos e parte fracionária do dia) 34-43 Primeira Derivada do Movimento Médio 45-52 Segunda Derivada do Movimento Médio (ponto decimal assumido) 109 54-61 Termo de arrasto BSTAR (ponto decimal assumido) 63 Tipo de Efemérides 65-68 Número do Elemento 69 Dígito Verificador (Módulo 10) Linha 2 Coluna Descrição 01 Número da Linha 03-07 Número do Satélite 09-16 Inclinação [graus] 18-25 Ascensão reta do nó ascendente [graus] 27-33 Excentricidade (ponto decimal assumido) 35-42 Argumento do Perigeu [graus] 44-51 Anomalia Média [graus] 53-63 Movimento Médio [revoluções. por dia] 64-68 Número de Revoluções na Época [Revoluções] 69 Dígito Verificador (Módulo 10) Exemplo: NOAA 14 1 23455U 94089A 97320.90946019 .00000140 00000-0 10191-3 0 2621 2 23455 99.0090 272.6745 0008546 223.1686 136.8816 14.11711747148495 110 APÊNDICE B PROCESSOS DO CICLO DE VIDA DO MODELO O Ciclo De Vida Do Modelo, descritos originalmente em Balci (1985), é composto por dez processos indicados pelas setas tracejadas, conforme mostrado na figura 2.1. A ordem de execução de cada processo é indicada pelas setas, mas um erro identificado num determinado passo pode requerer que se retorne a passos anteriores e se recomece todo o procedimento novamente. Os processos são definidos de forma resumida a seguir. B.1 FORMULAÇÃO DO PROBLEMA Quando um problema é identificado, um decisor (patrocinador) inicia o seu estudo comunicando-o ao analista. O problema que é comunicado raramente se encontra claramente definido, especificado ou organizado. Assim, a formulação, às vezes denominada de estruturação ou definição, do problema é o processo pelo qual o problema inicialmente comunicado é transcrito num problema formulado de maneira suficientemente clara e bem definida para possibilitar a condução da pesquisa. B.2 ESTUDO DAS TÉCNICAS DE SOLUÇÃO Todas as técnicas alternativas que podem vir a ser utilizadas na solução do problema precisam ser identificadas. A técnica que tiver custo elevado, ou que for julgada insuficiente para atender os objetivos do estudo, deve ser descartada. Entre aquelas que restarem deve ser escolhida a de maior proporção benefícios/custos esperado com seu emprego. Algumas vezes o problema comunicado é formulado sob a influência de uma técnica de solução antecipadamente arbitrada. Ignorar simplesmente o 111 processo de investigação das técnicas de solução não é uma prática aconselhável, podendo conduzir a soluções excessivamente caras, quando não absolutamente erradas. Com o resultado do processo de investigação, deve ser acionado o responsável pelo gerenciamento do modelo, que será encarregado da verificação do problema formulado e da verificação da factibilidade de se aplicar a técnica escolhida na solução, antes de se prosseguir para o próximo processo do ciclo de vida. B.3 FORMULAÇÃO DO SISTEMA As características do sistema que dizem respeito ao problema formulado devem ser estudadas e consideradas na formulação do modelo e na sua simulação. Seis são as características importantes que devem ser observadas num sistema: (1) sua constituição e as modificações que ela sofre; (2) seu meio ambiente; (3) seu comportamento não intuitivo; (4) sua performance nas respostas (particularmente nos extremos do espectro); (5) suas interdependências; e (6) sua organização. (Shannon,1975) B.4 FORMULAÇÃO DO MODELO A formulação do modelo é o processo através do qual o modelo conceitual do sistema é construído, O modelo conceitual é o modelo que existe na cabeça do modelador. (Nance,1981) A modelagem exige um criativo balanceamento de tendências opostas. Se por um lado o modelo não pode excluir elementos essenciais do sistema, por outro lado não se deve incluir detalhes desnecessários. A falta de um elemento importante pode invalidar a representação do modelo. A inclusão de detalhes desnecessários torna o modelo mais complexo. A fronteira do sistema é o ente 112 que separa os elementos que devem ser incluídos no modelo daqueles que devem permanecer fora dele. B.5 REPRESENTAÇÃO DO MODELO É o processo pelo qual o modelo conceitual é transcrito num modelo comunicativo. Um modelo comunicativo pode ser representado de diferentes formas distintas. Para um mesmo sistema podem ser elaborados diversos tipos de modelos comunicativos. Um deles pode ser em linguagem natural, para o pessoal não técnico; um outro pode ser feito na forma de diagrama de blocos; para a programação, etc. B.6 PROGRAMAÇÃO O processo de programação consiste na transcrição do modelo comunicativo para o modelo programado Embora o modelo programado possa ser construído utilizando-se de uma linguagem de programação de alto nível, como o Fortran, Pascal ou C, geralmente é preferível se fazer uso de uma linguagem de simulação. Esta linguagem reduz significativamente o tempo necessário para a elaboração do modelo programado por colocar à disposição do usuário as seguintes funções pré-programadas: (1) uma estratégia de abordagem (um arcabouço conceitual, ou esqueleto, que serve de base para estruturação e controle do programa representativo do modelo); (2) um mecanismo de controle do tempo simulado; (3) um gerador de números aleatórios; (4) funções de distribuições estocásticas para geração de variáveis aleatórias; (5) mecanismos de análise estatísticas; e (6) diagnósticos para facilitar a identificação dos erros de programação. B.7 PROJETO DE EXPERIMENTOS Este processo consiste em formular uma estratégia que possibilite a coleta da 113 informação desejada sobre o modelo para que o analista possa fazer inferências válidas sobre ele incorrendo num custo mínimo (Shannon, 1975). O modelo experimental é o modelo programado acrescido de uma descrição executável das operações contidas na referida estratégia. B.8 EXPERIMENTAÇÃO É o processo de experimentar com o modelo com o propósito específico. Alguns propósitos de experimentação são: (1) comparação de diferentes políticas de operação do sistema; (2) avaliação do seu comportamento; (3) análise de sensibilidade; (4) previsão; (5) otimização; e (6) determinação de relações funcionais internas do sistema (Shannon, 1975). B.9 REDEFINIÇÃO A redefinição é um processo que consiste em (1) atualizar o modelo experimental para que ele venha a representar a forma corrente do sistema; (2) alterá-lo para obter um novo conjunto de resultados; (3) modificá-lo sob qualquer outro aspecto visando sua manutenção; (4) modificá-lo para reutilização em outro contexto; ou (5) redefinir um novo sistema a ser modelado, visando uma solução alternativa do problema. B.10 APRESENTAÇÃO DOS RESULTADOS DO MODELO Este processo consiste na interpretação dos resultados do modelo e na apresentação destes para os decisores, que se encarregarão de aceitá-los ou não. Todos os modelos de simulação são descritivos, isto é, eles descrevem o comportamento do sistema sem qualquer julgamento prévio do que é um “bom” ou “mau” resultado (os modelos que fazem isto são chamados prescritivos). A conclusão sobre a solução do problema fica, desta forma, inteiramente sob a responsabilidade do analista, que é o responsável pela execução da análise e 114 interpretação dos resultados. B.11 ESTÁGIOS DE AFERIÇÃO DE CREDIBILIDADE “É preciso ter mente que ninguém resolve o problema, o que se resolve é um modelo do problema real” (Elmaghraby, 1968). Um aspecto crucial de um estudo de simulação é a aferição de credibilidade das diversas formas de representação do modelo construído, que vão sendo criadas a cada passo do ciclo de vida. Uma vez que o modelo é uma abstração da realidade, não se pode falar de sua precisão em termos absolutos. Por isto as medidas usadas, como a credibilidade, a qualidade e a validade, são relativas aos resultados desejáveis de serem obtidos, tendo em vista os objetivos do estudo. Em alguns casos, um nível de credibilidade de apenas 60% nos resultados poderia ser satisfatório, em outros poderia ser exigido uma credibilidade bem maior, por exemplo 90%. 115 APÊNDICE C TABELA C.1 - RELAÇÃO DE PCDs FIXAS INSTALADAS Estação UF Latitude Longitude Estação UF Latitude Longitude Abunã Acima do Córrego Grande Açude Boqueirão Paraiba Açude Boqueirão Parelhas Açude Gavião Água Clara Água Vermelha Águas do Verê Alcantara Alegrete Altamira Anagé Anapólis Apiúna Aquidauana Araçuaí Aragarças Araguaina Aranjuez Araripina Arcoverde Argoim Aruanã Arumã Jusante Arumã Jusante Atalaia B Horizonte Balsa de Santa Maria Balsa do Cerro Azul Balsas HIDRO Balsas MET Bananal Barão de Grajau Barra do Batatal Barra do Escuro Barra do Garça Barra do Pirai Barra do Turvo RO MT 09°42'00'' 16°40'00'' 65°21'00'' 55°09'00'' SC 27°10'00'' 49°55'00'' PA 07°29'24'' 36°08'11'' RN 06°41'00'' 36°37'00'' CE MS SP PR MA RS PA BA GO SC MS MG MT TO BO PE PE BA GO AM AM AL PA PR 06°15'00'' 20°26'00'' 19°51'00'' 25°46'00'' 02°24'00'' 29°46'00'' 03°12'00'' 14°37'05'' 16°22'45'' 27°01'00'' 20°29'00'' 16°51'00'' 15°54'03'' 07°12'00'' 16°33'18'' 07°27'30'' 08°26'01'' 12°33'00'' 14°49'00'' 04°44'00'' 04°44'00'' 09°31'00'' 05°23'00'' 24°10'00'' 38°54'00'' 52°53'00'' 50°21'00'' 52°56'00'' 44°24'00'' 55°47'00'' 52°13'00'' 41°08'59'' 48°56'44'' 49°23'00'' 55°47'00'' 42°04'00'' 52°14'44'' 48°12'00'' 68°05'29'' 40°25'02'' 37°03'19'' 39°32'00'' 51°10'00'' 62°08'00'' 62°08'00'' 36°02'00'' 52°53'00'' 53°44'00'' BA 12°10'00'' SP 20°35'01'' GO 15°04'00'' MG 19°55'00'' RS 26°50'00'' MG 14°47'00'' RR -03°21'00'' BA 11°20'00'' SC 28°15'00'' AC 11°01'00'' AC 11°01'00'' GO 15°21'48'' BA 14°12'26'' SC 27°06'00'' PA 04°38'00'' MT 16°04'00'' SP 22°40'50'' SP 22°40'00'' 45°20'00'' 48°35'41'' 48°59'00'' 43°56'00'' 49°03'00'' 43°33'00'' 59°49'00'' 43°48'00'' 49°11'00'' 68°44'00'' 68°44'00'' 51°10'34'' 41°46'41'' 48°55'00'' 56°18'00'' 57°41'00'' 45°00'09'' 45°00'00'' PA BA GO AL SP 01°05'00'' 13°57'41'' 17°43'33'' 10°01'00'' 23°36'00'' 57°02'00'' 42°36'24'' 48°36'54'' 36°18'00'' 48°30'00'' PR MA MA SP MA SP MG MT RJ SP 24°47'00'' 06°31'00'' 08°36'00'' 22°41'00'' 06°46'00'' 24°35'21'' 16°16'00'' 15°47'00'' 22°28'00'' 24°45'30'' 49°16'00'' 46°03'00'' 45°46'00'' 44°19'00'' 43°01'00'' 48°16'16'' 45°12'00'' 52°12'00'' 43°50'00'' 48°30'27'' Barragem OesteTaio Barreiras Barretos Barro Alto Belo Horizonte Blumenau Boca da Caatinga Bonfim Boqueirão Braço do Norte Brasiléia Brasiléia Britânia Brumado Brusque Buburê Cáceres Cachoeira Paulista Cachoeira Paulista HIDRO Cachoeira Porteira Caitité Caldas Novas Camacari Campina do M. Alegre Campo A. de Goias Campo Bom Campos do Jordão Canal Pacajus Canastra I Capim Branco Caquella Caracarai Caracarai Caraguatatuba Caratinga Carauri Careaçu Barra dos Bugres Barra Mansa GO 17°40'00'' RS 29°41'00'' SP 22°45'01'' CE 04°13'57'' SC 16°19'00'' MG 18°45'00'' BO 21°29'49'' RR -01°48'00'' RR -01°48'00'' SP 23°40'00'' MG 19°47'00'' 05°00'00'' MG 22°03'00'' MT 15°04'00'' 22°28'00'' 47°37'00'' 51°02'00'' 45°36'27'' 38°23'14'' 48°11'00'' 48°16'00'' 67°55'35'' 61°08'00'' 61°08'00'' 45°26'00'' 42°08'00'' 67°00'00'' 45°42'00'' 57°11'00'' 44°27'00'' Continua 117 TABELA C.1 - CONTINUAÇÃO Estação UF Latitude Longitude Carolina Caruaru Cataguases Catalão Ceres Chapadão do Céu COGERH Acude Gaviao COGERH Jaguaribe Colatina Conceição do Araguaia Conceição do Araguaia Concisa Concisa Córrego do Nado SUDECAP Coxim Crixás Cruzeiro Cruzeiro do Sul Cruzeiro do Sul Cruzeta Cucui Cuiabá Cuiabá Cunha Descoberto Jusante Dona Francisca EB-0 Jaguaribe Eirunepê El Carmen Eldorado Ererê EB-1 Estrada GO-56 Estrada MT 738 Eunapólis Farol de Itapua Faz Panambi Faz. Boa Fortuna Fazenda Alegria Fazenda Angical Fazenda Corredeira Fazenda Maringá Fazenda Nanci Fazenda Veneza MA PE MG GO GO GO CE 07°20'00'' 08°14'17'' 21°23'00'' 18°09'16'' 15°20'52'' 18°24'02'' 03°54'15'' 47°28'00'' 35°54'57'' 42°42'00'' 47°55'46'' 49°36'06'' 52°40'22'' 38°33'32'' CE ES PA 05°53'52'' 19°32'00'' 08°15'00'' 38°37'59'' 40°38'00'' 49°16'00'' PA 08°17'00'' 49°15'00'' MT MT MG 09°43'00'' 09°43'00'' 19°49'12'' 60°35'00'' 60°35'00'' 43°57'13'' MS 18°26'00'' GO 14°31'58'' SP 22°34'53'' AC 07°37'00'' AC 07°37'00'' RN 06°25'00'' AM -01°11'00'' MT 15°37'00'' MT 15°35'00'' SP 23°04'01'' DF 16°03'00'' RS 29°37'00'' CE 04°40'28'' AM 06°41'00'' BO 15°53'28'' SP 24°31'00'' CE 04°09'49'' GO 21°06'00'' MS 20°44'00'' BA 16°17'26'' RS 30°05'00'' TO 08°05'64'' AL 09°29'00'' PA 05°30'00'' TO 12°17'00'' SP 21°19'00'' PA 03°16'00'' BA 15°35'00'' PI 05°35'00'' 54°48'00'' 49°56'01'' 44°58'01'' 72°40'00'' 72°40'00'' 36°47'00'' 66°50'00'' 56°05'00'' 56°06'00'' 44°57'01'' 48°16'00'' 53°21'00'' 37°49'11'' 69°54'00'' 64°37'38'' 48°07'00'' 38°26'11'' 48°05'00'' 56°07'00'' 39°34'47'' 51°02'00'' 46°39'12'' 35°51'00'' 48°18'00'' 48°18'00'' 47°29'00'' 48°10'00'' 39°31'00'' 43°02'00'' Estação Fazenda Vista Alegre Fernando de Noronha Ferros Flores de Goias Fluviópolis Fontanilhas Formosa Rio Preto Formoso Fortaleza Foz do Cachoeira Fragosos Gavião Goiana Goiânia Goiatuba Governador Valadares Grajau II Guaira Guaratingueta HIDRO Itajuba Horizonte EB-2 Hotel Cataratas Huatajata Humaita Iate Clube Ibiaporã Ibimirim Ibirama Iguatu Ilha da Pintada Ilhéus Indaial Ipanguaçu Ipatinga Ipirá Ipiranga Novo Ipiranga Novo Ipojuca Iporá Iporanga Iraí Irecê Itaberaí Itaete Itaicaba UF Latitude Longitude AM 04°54'00'' 60°01'00'' PE 03°51'00'' 32°25'00'' MG GO PR MT BA SP PA SC PR AM PE GO GO MG 19°14'00'' 14°30'47'' 26°02'00'' 11°25'00'' 11°03'00'' 22°39'00'' 06°02'00'' 25°38'00'' 26°09'00'' 04°50'00'' 07°38'39'' 16°35'52'' 18°01'00'' 18°52'00'' 43°02'00'' 47°00'24'' 50°35'00'' 58°39'00'' 45°12'00'' 44°31'00'' 57°36'00'' 51°58'00'' 49°23'00'' 66°45'00'' 34°56'57'' 49°16'39'' 49°22'00'' 41°56'00'' MA PR SP MG CE PR BO AM PR BA PE SC CE RS BA SC RN MG BA AM AM PE GO SP RS BA GO BA CE 05°48'00'' 24°04'00'' 22°48'00'' 18°12'00'' 04°08'25'' 25°41'00'' 16°12'26'' 07°30'00'' 25°36'00'' 12°03'08'' 08°32'17'' 27°03'00'' 06°22'00'' 30°01'00'' 14°45'23'' 27°12'00'' 05°25'36'' 19°29'00'' 12°09'42'' 02°52'00'' 02°52'00'' 08°30'52'' 16°25'31'' 24°35'00'' 27°10'00'' 11°17'21'' 16°01'45'' 12°59'00'' 04°39'28'' 46°08'00'' 54°15'00'' 45°12'00'' 45°15'00'' 38°29'42'' 54°26'00'' 68°42'18'' 63°01'00'' 54°35'00'' 40°48'32'' 37°40'42'' 49°31'00'' 39°18'00'' 51°15'00'' 39°13'55'' 49°50'00'' 36°52'18'' 42°31'00'' 39°44'49'' 69°40'00'' 69°40'00'' 35°00'21'' 51°07'04'' 48°35'00'' 53°14'00'' 41°53'39'' 49°47'40'' 40°57'00'' 37°50'58'' Continua 118 TABELA C.1 - CONTINUAÇÃO Estação Itajubá MET Itambé Itirá Itumbiara Ituporanga Ivinhema I Jaguaquara Jaguaribe Jaguaruna Jus. Jaíba Januária Jardim do Seridó Jataí Jequié Jequitinhonha Jiparaná Ji-Paranã Juazeiro Jupiá Jusante Juquiá Jus. Nova Anhandava Jusante Peixoto Juvenilia Labréa Ladário Laranjal Paulista Lavras Leopoldina Macaia Machado Manaus Manoel Duarte Manoel Viana Marabá Marcelino Ramos Marcionílio Souza Mário de Carvalho MET Altamira MET Cachoeira Porteira MET Cruzeiro do Sul MET Humaitá MET Marabá MET Pires do Rio MET São Félix do Araguaia UF Latitude Longitude Estação MG BA MG GO SC MS BA CE MG MG MG RN GO BA MG RO RO BA MS SP SP 22°24'37'' 15°15'00'' 16°46'00'' 18°24'34'' 27°24'00'' 22°23'00'' 13°34'23'' 05°54'00'' 19°46'00'' 15°37'00'' 15°29'00'' 06°31'00'' 17°55'25'' 13°52'23'' 16°26'00'' 10°53'00'' 10°50'00'' 09°25'00'' 20°52'00'' 24°19'00'' 21°07'00'' 45°26'58'' 40°38'00'' 42°02'00'' 49°11'30'' 49°36'00'' 53°32'00'' 39°56'27'' 38°38'00'' 44°48'00'' 43°36'00'' 44°21'00'' 36°56'00'' 51°43'03'' 40°04'19'' 40°59'00'' 61°57'00'' 61°55'00'' 40°38'00'' 51°38'00'' 47°38'00'' 50°15'00'' MT 09°38'00'' MG 14°16'00'' AM 07°15'00'' MS 19°02'00'' SP 22°57'00'' MG 21°15'00'' MG 21°32'00'' MG 21°09'00'' MG 21°42'01'' AM 03°08'00'' RJ 22°05'00'' RS 29°36'00'' PA 05°21'00'' RS 27°28'00'' BA 13°08'29'' MG 19°32'00'' PA 03°12'00'' PA 01°05'00'' 56°15'00'' 44°11'00'' 64°48'00'' 57°33'00'' 47°49'00'' 45°00'00'' 42°38'00'' 44°56'00'' 45°53'27'' 60°00'00'' 43°33'00'' 55°29'00'' 49°09'00'' 51°54'00'' 41°31'51'' 42°38'00'' 52°12'00'' 57°02'00'' AC 07°36'00'' 72°46'00'' AM PA GO MT 07°30'00'' 05°20'00'' 17°18'00'' 11°37'00'' 63°01'00'' 49°07'00'' 48°16'00'' 50°41'00'' Milagres Miracatú Miraflores Missão Surucucu Mocidade Monteiro Lobato Montes Claros Montes Claros de Goiás Morpara Mossoró Moura Muçum Natal Nossa Senhora Amparo Obidos Oiapoque Orleans Montante Palmeiras de Goiás Paracatu Paraibuna Paranã Passo Mariano Pinto Passo Montenegro Passo Santa Maria Passo Socorro Patos de Minas Pedra do Ó Pedra Selada Pedras Negras Pedras Negras Pedro Afonso Perimetral Norte Petrolina Piatã Pindamonhangaba Pindaré Mirim Pipiripau Montante Piracicaba Pirapama Pirapora Pirapora -Barreiro Pires do Rio Ponte Mística Ponte Nova Ponte Rio Branco UF Latitude Longitude BA 12°54'41'' SP 24°16'48'' BO 11°06'26'' RR -02°47'00'' RR -03°27'00'' SP 22°58'00'' MG 16°44'00'' GO 16°00'39'' 39°44'45'' 47°27'34'' 66°24'36'' 63°48'00'' 60°55'00'' 45°50'00'' 43°52'00'' 51°24'24'' BA RN AM RS RN RJ 12°11'00'' 05°11'00'' 01°30'00'' 29°10'00'' 05°48'00'' 22°22'00'' 43°13'00'' 37°20'00'' 61°40'00'' 51°52'00'' 35°12'00'' 44°07'00'' PA 01°54'00'' AP -03°48'00'' SC 28°21'00'' GO 16°48'34'' MG 17°13'00'' SP 23°24'00'' TO 12°33'00'' RS 29°19'00'' RS 29°42'00'' RS 28°35'00'' RS 28°12'00'' MG 18°36'00'' PA 04°34'00'' RJ 22°18'00'' RO 12°50'00'' RO 12°50'00'' TO 08°58'00'' PA -00°39'00'' PE 09°09'00'' BA 13°09'51'' SP 22°55'00'' MA 03°34'00'' DF 15°39'00'' SP 22°43'00'' PE 08°14'00'' MG 17°20'00'' MG 17°22'00'' GO 17°20'00'' RS 28°11'00'' MG 20°23'00'' BA 12°17'00'' 55°30'00'' 51°51'00'' 49°17'00'' 49°56'06'' 46°52'00'' 45°38'00'' 47°51'00'' 56°03'00'' 51°26'00'' 54°55'00'' 50°45'00'' 46°32'00'' 54°03'00'' 44°09'00'' 62°56'00'' 62°56'00'' 48°10'00'' 56°52'00'' 40°22'00'' 41°46'15'' 45°28'00'' 45°24'00'' 47°35'00'' 47°39'00'' 35°15'00'' 44°56'00'' 44°57'00'' 48°15'00'' 54°44'00'' 42°54'00'' 39°00'00'' Continua 119 TABELA C.1 - CONTINUAÇÃO Estação UF Latitude Longitude Estação UF Latitude Longitude Ponte Sul Goiania Porangatu Porto Amazonas Porto Capanema Porto Cercado Porto Conceição Porto do Cavalo Porto dos Buenos Porto dos Gauchos Porto Esperança Porto Ferreira Porto Jau Porto Jofre Porto Murtinho Porto Nacional Porto Nacional Porto Paraiso do Norte Porto São José Porto Velho Porto Vitória Posse Prainha Velha Prainha Velha Propriá Queluz Quirinópolis Recife Registro Ribeira Ribeirão Preto Rio Bonito Rio Branco Rio do Sul Novo Rio Grande Regatas Rio Negro Rio Novo Rio Pardo Rio Verde Rosário do Oeste Rosário do Sul Rurrenabaque S Félix do Xingu S Gabriel da Cachoeira S Martinho da Serra S10 - S. Gabriel Cachoeira GO GO PR PR MT MT MG MG MT MS SP SP MT MS TO TO PR 18°07'00'' 13°18'33'' 25°33'00'' 25°34'00'' 16°26'00'' 17°09'00'' 17°01'00'' 21°36'00'' 11°32'00'' 19°37'00'' 21°51'00'' 22°54'00'' 17°20'00'' 21°42'00'' 10°43'00'' 10°42'00'' 23°19'00'' 50°09'00'' 49°07'03'' 49°53'00'' 53°56'00'' 56°20'00'' 57°23'00'' 45°30'00'' 45°30'00'' 57°25'00'' 57°27'00'' 47°30'00'' 50°02'00'' 56°47'00'' 57°52'00'' 48°25'00'' 48°26'00'' 52°40'00'' SC PR BA SP PR PI GO RR SP RJ BA AM PE MT 27°18'00'' 25°32'00'' 12°55'53'' 23°22'00'' 25°38'00'' 09°15'00'' 17°51'22'' 00°26'00'' 22°41'00'' 21°32'00'' 14°16'00'' 03°06'00'' 08°31'40'' 11°36'00'' 49°20'00'' 53°02'00'' 38°21'39'' 45°54'00'' 51°58'00'' 45°39'00'' 50°33'53'' 61°46'00'' 44°10'00'' 42°11'00'' 41°18'00'' 67°56'00'' 36°27'35'' 50°40'00'' PR RO PR GO AM AM SE SP GO PE SP SP SP SC AC SC RS PR MG RS GO MT RS BO PA AM 22°43'00'' 08°46'00'' 25°32'00'' 14°04'57'' 07°15'00'' 07°15'00'' 10°13'00'' 22°32'43'' 18°26'05'' 08°03'52'' 24°29'28'' 24°39'23'' 21°11'00'' 27°11'00'' 09°58'00'' 27°11'00'' 30°01'00'' 26°06'00'' 21°29'00'' 29°59'00'' 17°47'07'' 14°55'00'' 30°15'00'' 14°26'25'' 06°38'00'' 00°08'00'' 53°10'00'' 63°55'00'' 53°02'00'' 46°21'48'' 60°24'00'' 60°24'00'' 36°50'00'' 44°46'24'' 50°24'49'' 34°55'29'' 47°50'11'' 49°00'28'' 47°48'00'' 49°59'00'' 67°40'00'' 49°37'00'' 52°04'00'' 49°48'00'' 43°08'00'' 52°22'00'' 50°57'53'' 56°23'00'' 54°54'00'' 67°32'01'' 51°59'00'' 67°05'00'' RJ MS AP AM 21°39'00'' 18°23'00'' 00°41'00'' 00°08'00'' 41°45'00'' 57°21'00'' 52°53'00'' 67°05'00'' AM 00°08'00'' 67°04'00'' MT RS SP 17°10'00'' 29°57'00'' 22°38'43'' 55°59'00'' 51°43'00'' 44°35'03'' SC AM AM MG MG 28°10'00'' 03°28'00'' 03°28'00'' 16°22'00'' 19°28'00'' 48°58'00'' 68°45'00'' 68°45'00'' 45°04'00'' 41°11'00'' GO 19°05'00'' AM 09°02'00'' AM 09°02'00'' AP -00°53'00'' PE 07°55'49'' BA 11°38'54'' SP 24°23'27'' SP 22°48'22'' BA 12°05'49'' BA 13°24'00'' 50°32'00'' 68°34'00'' 68°34'00'' 52°00'00'' 38°17'19'' 38°58'58'' 47°55'52'' 44°50'34'' 41°38'46'' 44°15'00'' RS AM 29°15'50'' 00°08'00'' 53°29'31'' 67°05'00'' Salseiro Salto Osorio Salvador Santa Branca Santa Clara Santa Filomena Santa Helena Santa Maria Boiaçu Santana Bonsucesso Santo A. de Pádua Santo Antônio Santo António Içá São Bento do Una São Félix do Araguaia São Fidélis São Francisco São Francisco I São Gabriel da Cachoeira São Gabriel da Cachoeira Sao Jerônimo Sao Jerônimo São José do Barreiro São Martinho São Paulo Olivença São Paulo Olivença São Romão Sao Sebastiao da Encruzilhada São Simão Seringal Caridade Seringal Caridade Serra do Navio Serra Tallhada Serrinha Sete Barras Silveiras Souto Soares Sta. Maria da Vitória Sucunduri Tabatinga Taguatinga Taió Tapuruquara AM AM TO SC AM 59°02'00'' 69°57'00'' 46°26'00'' 49°59'00'' 65°02'00'' 06°47'00'' 04°15'00'' 12°24'00'' 27°07'00'' 00°24'00'' Continua 120 TABELA C.1 - CONCLUSÃO Estação Tapuruquara Taraqua Taraquá Tefé Tefé Teixeira de Freitas Tibagi Timbó Trecho Médio Tubarão Uba do Sul Ubaitaba Uberaba Ulianópolis União da Vitória Uruguaiana Usina Luis Dias Vianópolis Vicentinópolis Viçosa Vila Bela Sant Trindade Vila Bitencourt Vila Bittencourt Vila Bittencourt Vila do Apiaú Vila Matias Vilhena Villa Tunari Vitória da Conquista Vitória de Santo Antão Votupoca Xambioá Xingó UF Latitude Longitude AM 00°24'00'' AM -00°04'00'' AM -00°04'00'' AM 03°22'00'' AM 03°22'00'' BA 17°34'32'' PR 24°30'00'' SC 26°49'00'' MT 13°29'00'' SC 28°29'00'' PR 24°03'00'' BA 14°19'00'' MG 19°42'57'' PA 03°51'02'' PR 26°14'00'' RS 29°45'00'' MG 22°22'00'' GO 16°48'00'' GO 17°42'45'' MG 20°46'00'' RO 15°01'00'' 65°02'00'' 68°14'00'' 68°14'00'' 64°22'00'' 64°22'00'' 39°43'58'' 50°24'00'' 49°16'00'' 51°27'00'' 49°01'00'' 51°37'00'' 39°19'00'' 47°57'05'' 47°30'07'' 51°04'00'' 57°05'00'' 45°19'00'' 48°29'58'' 49°47'50'' 42°52'00'' 59°57'00'' AM 01°24'00'' AM 01°24'00'' AM 01°24'00'' RR -02°33'08'' MG 18°35'00'' RO 12°17'00'' BO 16°58'27'' BA 14°53'10'' 69°25'00'' 69°25'00'' 69°25'00'' 61°18'24'' 41°56'00'' 60°05'00'' 63°28'00'' 40°48'03'' PE 08°07'42'' 35°18'10'' SP TO AL 24°27'43'' 06°23'00'' 04°39'00'' 47°58'56'' 48°33'00'' 38°04'00'' 121