índiceitem superior

item anteriorpróximo item

 

5.5 – SGP8

 

            O pacote de funções SGP8 foi inicialmente desenvolvido e implementado em Fortran e consistia num propagador de órbita analítico adotado pela NASA. A principal característica deste propagador é que ele usa um modelo analítico de Brower (Brower e Clemence, 1961) com cálculo tanto dos elementos médios quanto dos elementos osculadores. O modelo foi adaptado por Hoots e Roehrich (1980). A órbita é então propagada em elementos médios, usando-se para isso os “2-line elements”, que são a forma usual de descrição dos elementos orbitais adotada pelo NORAD. Nesta descrição os elementos orbitais são organizados em duas linhas de dados, como neste exemplo:

 

1 15642u 85028b   98145.46280604 -.00000045  00000-0  10000-3 0  8676

2 15642   0.9415  94.0931 0002726 306.7030 253.8375  1.00303630 53828

           

As principais variáveis armazenadas nestas linhas de dados são a seguir indicadas sobre o exemplo fornecido:

 

  <id1 > <id2 >   <epoch       > <xndt20  > <xndd60> <bstar >

1 15642u 85028b   98145.46280604 -.00000045  00000-0  10000-3 0  8676

        <xincl > <xnodeo> <eo   > <omegao> <xmo   > <xno      > <rev>

2 15642   0.9415  94.0931 0002726 306.7030 253.8375  1.00303630 53828

 

onde id1 e id2 são identificadores do satélite ou veículo orbital, epoch é o tempo das efemérides, no formato yyddd.dddddddd no qual yy representa o ano (entre 1957 e 2056), e ddd.dddddddd é o dia do ano (a partir de 1o de janeiro) e fração do dia. A seguir tem-se, respectivamente, a primeira e a segunda derivadas temporais do movimento médio, isto é  (xndt20) e (xndd60), em ciclos pelo quadrado de dia e ciclos pelo cubo de dia, em formato exponencial e o último no formato exponencial e multiplicado por 105. O último elemento de interesse na primeira linha é B*, ou bstar, relacionado com o arrasto atmosférico e também no formato exponencial e multiplicado por 105. A segunda linha apresenta, após a identificação, a inclinação orbital xincl em graus, a ascenção reta do nodo ascendente orbital xnodeo também em graus, a excentricidade eo (ponto decimal assumido à esquerda) e o argumento do perigeu omegao em graus. Os dois  parâmetros seguintes são a anomalia média xmo e o movimento médio xno em ciclos por dia. O último parâmetro é o número da órbita rev, com um dígito decimal assumido.

 

Na conversão do pacote em Fortran para a linguagem C, optou-se pela descrição dos elementos orbitais por meio de uma estrutura, definida pelo tipo nasa_el, com os seguintes componentes, todos do tipo duplo (double):

 

ne.mean_motion          - movimento médio em radianos por segundo

ne.eccentricity         - excentricidade

ne.inclination          - inclinação em radianos

ne.right_ascension      - ascenção reta do nodo ascendente em radianos

ne.perigee              - argumento do perigeu em radianos

ne.mean_anomaly         - anomalia média em radianos

ne.mean_motion_dot      - derivada do movimento médio dividido por 2 em rad/s2

ne.mean_motion_dot_dot  - segunda derivada dividida por 6 em rad/s3

ne.bstar                - B*  em unidades do inverso do raio da Terra

ne.revolution_number    - número da órbita referido ao tempo das efemérides

ne.mod_julian_date      - data Juliana modificada do tempo das efemérides

ne.day_fraction         - fração do dia em segundos do tempo das efemérides.

 

            A conversão dos parâmetros de 2-line para os parâmetros da estrutura acima deve ser feita na forma:

 

ne.mean_motion          =  xno

ne.eccentricity         = 10-7 eo

ne.inclination          =  xincl

ne.right_ascension      =  xnodeo

ne.perigee              =  omegao

ne.mean_anomaly         =  xmo

ne.mean_motion_dot      =  xndt20

ne.mean_motion_dot_dot  = 10-5 xndd60

ne.bstar                = 10-5 bstar

ne.revolution_number    = 10-1 rev

           

A data Juliana modificada e a fração do dia são calculadas com base no tempo das efemérides epoch usando para isto a função djm (ver Capítulo 5).

 

Esta estrutura pode ser fornecida diretamente ao propagador de órbita, ou então se pode igualmente utilizar uma função para ler um arquivo no formato 2-line elements. Uma vez que o propagador necessita de uma grande quantidade de parâmetros derivados dos elementos apontados acima, é conveniente calculá-los previamente antes de ser acionada a propagação. A função sgp8 faz este cálculo e necessita ser chamada sempre que algum elemento orbital for modificado externamente ao propagador. Este pacote está contido no arquivo sgp8.lib, e utiliza o arquivo de cabeçalho sgp8.h que descreve os protótipos das funções e a definição da estrutura nasael. Foram implementadas funções para efetuar a leitura de um arquivo no formato “2-line”, para a inicialização da propagação pelo SGP8, para propagar a órbita em elementos médios e osculadores, para obter o semi-eixo maior da órbita a partir dos elementos 2-line e para calcular o movimento médio a partir dos elementos keplerianos. Segue a descrição das funções implementadas neste pacote.

 

·         nasa_el nasael (FILE *ifile, int itype);

·         int sgp8 (nasa_el nasael);

·         vector6 sgp8pr_mean (double tsince);

·         vector6 sgp8pr (double tsince);

·         double mean_a (nasa_el nasael);

·         double mean_n (vector6 kepel);