Upload
buihanh
View
215
Download
0
Embed Size (px)
Citation preview
UNIVERSIDADE TÉCNICA DE LISBOA
INSTITUTO SUPERIOR TÉCNICO
TÉCNICAS AVANÇADAS PARA POSICIONAMENTO GLOBAL BASEADAS EM GPS
Alexandre Barbosa Bastos Gomes n.º 50652, AE de Sistemas, Decisão e Controlo Rui Miguel Bento de Pina Mendes n.º 50852, AE de Sistemas, Decisão e Controlo
LICENCIATURA EM ENGENHARIA ELECTROTÉCNICA E COMPUTADORES Relatório de Trabalho Final de Curso
75/2006/L
Orientador: Professor Paulo Jorge Coelho Ramalho Oliveira Co-Orientador: Professor Carlos Jorge Ferreira Silvestre
Outubro de 2006
i
Agradecimentos
Aos Professores Paulo Oliveira e Carlos Silvestre, os nossos primeiros
agradecimentos, pela confiança no nosso trabalho desde o primeiro momento. Agradecemos
também a disponibilidade e todo o apoio fornecido, sem os quais não poderia ter sido
realizado este trabalho.
Ao ISR – Instituto de Sistemas e Robótica, que nos forneceu o material necessário
para a realização deste trabalho. Ao Eng. Luís Sebastião, pela análise crítica dos nossos
resultados e pela grande ajuda com a componente de software. Aos Engenheiros Manuel
Rufino e João Alves, pela ajuda prestada com a componente de hardware.
À REN – Rede Eléctrica Nacional, em especial ao Eng. Simão Vieira, por nos ter
facilitado o acesso a um excelente local para realizar os testes.
Ao Professor José Sanguino, pelos seus conselhos experientes. Ao Daniel Santos e
Pedro Gordalina, pela ajuda logística e por todos os bons momentos.
Aos amigos, por terem compreendido e aceite as nossas ausências.
Por fim, às nossas famílias, sem as quais não teria sido possível esta caminhada.
iii
Resumo
Este relatório insere-se no contexto do trabalho final de curso “Técnicas Avançadas
para Posicionamento Global, baseadas em GPS” e descreve a actividade desenvolvida no seu
âmbito durante o ano lectivo de 2005/2006. O trabalho seguiu três fases distintas: o estudo do
GPS e dados a medir, a análise de metodologias para a estimativa da posição e a
implementação dos algoritmos de posicionamento.
A primeira fase aprofunda o conhecimento do GPS ao nível dos princípios de
funcionamento. Descrevem-se as medições da pseudo-distância e da fase da portadora, e as
fontes de erro que as afectam.
Relativamente à segunda etapa, são abordadas metodologias para resolução da posição
em GPS. Inicialmente estudam-se métodos de posicionamento absoluto, como o iterativo e o
Bancroft, que recorrem simplesmente ao receptor do utilizador e às respectivas pseudo-
-distâncias. Em seguida tratam-se algoritmos avançados baseados em GPS diferencial e
duplas diferenças, com o objectivo de melhorar a precisão. Nestes processos são usados dois
receptores, um utilizador e uma estação-base, e as respectivas pseudo-distâncias ou fases da
portadora. Para resolver a ambiguidade inerente à fase, destaca-se o método LAMBDA.
A parte final consistiu na implementação de algoritmos de posicionamento em Matlab
e C++ para a validação e estudo do desempenho das metodologias propostas com dados
recolhidos de receptores GPS. Os algoritmos implementados obtiveram uma confiança
horizontal de 95% de: 6.6576m para algoritmos de posicionamento absoluto, 7.6109m para
GPS diferencial, 6.4217m para duplas diferenças utilizando somente a pseudo-distância e
0.2007m para o método LAMBDA.
Palavras-chave:
Posicionamento GPS, Bancroft, DGPS, Duplas Diferenças, Método LAMBDA.
v
Abstract
This report is about the final graduation thesis “Advanced Techniques for Global
Positioning, based on GPS” and describes the work during the school year of 2005/2006. The
work consisted of three different stages: the study of GPS and data measurements, the
analysis of methodologies for position estimation and the development of positioning
algorithms.
The first stage deepens the knowledge of GPS and its operation principles.
Measurements of pseudo-range and carrier phase are described, as well as their error sources.
In the second stage, the methods for solving a user position in GPS are described. First
the methods of absolute positioning are explicated, like iterative and Bancroft’s, those only
employ the user’s receiver and its pseudo-ranges. Next are explained the advanced algorithms
like differential GPS and double differences, to improve precision. This time it is used two
receivers, user and base-station, and their pseudo-ranges or carrier phases. To solve phase
ambiguity, the LAMBDA method is distinguished.
The last stage is the development of positioning algorithms in Matlab and C++ for the
validation and study of the methods’ performance. The results obtained for horizontal
confidence at 95% are: 6.6576m for absolute positioning, 7.6109m for differential GPS,
6.4217m for double differences with pseudo-range and 0.2007m for the LAMBDA method.
Keywords:
GPS Positioning, Bancroft, DGPS, Double Differences, LAMBDA Method.
vii
ÍNDICE
Lista de Figuras ......................................................................................................................... ix Lista de Tabelas......................................................................................................................... xi Lista de Siglas .........................................................................................................................xiii Notação..................................................................................................................................... xv Capítulo 1 Introdução........................................................................................................... 1
1.1 Motivação................................................................................................................... 1 1.2 Estado da Arte ............................................................................................................ 3 1.3 Objectivos do Trabalho .............................................................................................. 4
Capítulo 2 Sistema GPS....................................................................................................... 5 2.1 Constituição do Sistema ............................................................................................. 5 2.2 Princípios de Funcionamento do GPS........................................................................ 6 2.3 Fontes de Erro ............................................................................................................ 9 2.4 Determinação da Pseudo-Distância.......................................................................... 12 2.5 Determinação da Fase .............................................................................................. 13 2.6 Métodos de Posicionamento..................................................................................... 15
Capítulo 3 Algoritmos de Posicionamento ........................................................................ 17 3.1 Posicionamento Absoluto......................................................................................... 17
3.1.1 Algoritmo Iterativo........................................................................................... 19 3.1.2 Algoritmo de Bancroft ..................................................................................... 21
3.2 GPS Diferencial........................................................................................................ 23 3.2.1 DGPS em Pseudo-Distância............................................................................. 24 3.2.2 DGPS em Posição ............................................................................................ 25
3.3 Duplas Diferenças .................................................................................................... 26 3.3.1 Duplas Diferenças via Pseudo-Distância ......................................................... 27 3.3.2 Duplas Diferenças via Pseudo-Distância e Fase .............................................. 28
Capítulo 4 Método LAMBDA ........................................................................................... 31 4.1 Modelo das Observações.......................................................................................... 32 4.2 Solução em Vírgula Flutuante.................................................................................. 33 4.3 Estimativa da Ambiguidade Inteira.......................................................................... 34 4.4 Processo de Procura ................................................................................................. 35 4.5 Processo de Selecção e Solução Inteira.................................................................... 37
Capítulo 5 Resultados ........................................................................................................ 39 5.1 Testes de Precisão e Exactidão................................................................................. 40 5.2 Trajectória Fechada .................................................................................................. 43 5.3 Trajectória Livre....................................................................................................... 45
Capítulo 6 Conclusões ....................................................................................................... 49 Anexo A Coordenadas ECEF .............................................................................................. 51
A.1 Conversão ECEF para LLH ..................................................................................... 51 A.2 Coordenadas ECEF do Satélite ................................................................................ 52
Anexo B Diluição da Precisão............................................................................................. 57
Índice
viii
Anexo C Sinal GPS ............................................................................................................. 59 C.1 Código C/A e Código P............................................................................................ 59 C.2 Estrutura da Mensagem de Navegação .................................................................... 61 C.3 Aquisição e Seguimento do Sinal GPS .................................................................... 62
Anexo D Álgebra Linear...................................................................................................... 65 D.1 Mínimos Quadrados ................................................................................................. 65 D.2 Mínimos Quadrados Pesados ................................................................................... 66 D.3 Factorização de Cholesky......................................................................................... 67
Anexo E LAMBDA: Complementos .................................................................................. 69 E.1 Transformação-Z...................................................................................................... 69 E.2 Determinação de 2χ ................................................................................................ 70
Anexo F Filtragem Kalman................................................................................................. 71 F.1 Modelo da Dinâmica e das Observações.................................................................. 71 F.2 Computação do Filtro: Predição e Filtragem ........................................................... 72 F.3 Aplicação: Trajectória do Utilizador........................................................................ 74
F.3.1 Modelo da Dinâmica e das Observações.......................................................... 74 F.3.2 Ajuste das Matrizes de Co-variância kQ e kR ................................................. 76
Anexo G Receptores GPS.................................................................................................... 79 G.1 Ashtech AC12 .......................................................................................................... 79
G.1.1 Descrição.......................................................................................................... 79 G.1.2 Especificações Técnicas................................................................................... 80
G.2 Ashtech GG24 .......................................................................................................... 81 G.2.1 Descrição.......................................................................................................... 81 G.2.2 Especificações Técnicas................................................................................... 81
G.3 Ashtech DG14 .......................................................................................................... 82 G.3.1 Descrição.......................................................................................................... 82 G.3.2 Especificações Técnicas................................................................................... 83
Anexo H Mensagens NMEA ............................................................................................... 85 H.1 Mensagem PBN........................................................................................................ 85 H.2 Mensagem MCA ...................................................................................................... 86 H.3 Mensagem SNV ....................................................................................................... 87
Anexo I Ficheiros C++ Desenvolvidos .............................................................................. 89 I.1 Matriz.h .................................................................................................................... 89 I.2 PBN.h ....................................................................................................................... 89 I.3 MCA.h...................................................................................................................... 90 I.4 SNV.h....................................................................................................................... 90 I.5 Utilizador.h............................................................................................................... 90 I.6 Satelite.h................................................................................................................... 91 I.7 Algoritmos................................................................................................................ 91
Referências ............................................................................................................................... 93
ix
Lista de Figuras
Figura 1.1 – Receitas da indústria associada ao GPS entre 1996 e 2006. .................................. 1 Figura 1.2 – Distribuição de aparelhos GPS vendidos por segmento de mercado..................... 3 Figura 2.1 – Satélite do sistema NAVSTAR GPS [Fonte: NASA]. .......................................... 5 Figura 2.2 – Placa OEM GG12 [Fonte: Thales Navigation]...................................................... 6 Figura 2.3 – Posição geográfica da componente de controlo..................................................... 6 Figura 2.4 – Conceito bidimensional de trilateração.................................................................. 7 Figura 2.5 – Conceito tridimensional de trilateração. ................................................................ 8 Figura 2.6 – Determinação da posição do utilizador.................................................................. 9 Figura 2.7 – Incerteza no cálculo da posição. ............................................................................ 9 Figura 2.8 – Erros de multi-percurso. ...................................................................................... 10 Figura 2.9 – Erros de atraso troposférico e ionosférico. .......................................................... 11 Figura 2.10 – Número de períodos e fase do sinal. .................................................................. 14 Figura 3.1 – Conceito do posicionamento absoluto. ................................................................ 17 Figura 3.2 – Conceito do GPS diferencial................................................................................ 24 Figura 3.3 – Conceito de duplas diferenças. ............................................................................ 26 Figura 5.1 – Precisão e exactidão............................................................................................. 40 Figura 5.2 – Precisão e exactidão: posicionamento absoluto................................................... 41 Figura 5.3 – Precisão e exactidão: DGPS. ............................................................................... 42 Figura 5.4 – Precisão e exactidão: duplas diferenças............................................................... 42 Figura 5.5 – Precisão e exactidão: Ashtech Solutions. ............................................................ 42 Figura 5.6 – Trajectória fechada: posicionamento absoluto. ................................................... 44 Figura 5.7 – Trajectória fechada: DGPS. ................................................................................. 45 Figura 5.8 – Trajectória fechada: duplas diferenças. ............................................................... 45 Figura 5.9 – Trajectória completa. ........................................................................................... 46 Figura 5.10 – Partida e chegada da missão. ............................................................................. 47 Figura 5.11 – Descontinuidades na trajectória do Ashtech Solutions...................................... 47 Figura 5.12 – Descontinuidades: pormenores. ......................................................................... 47 Figura 5.13 – Pormenores da trajectória. ................................................................................. 48 Figura A.1 – Representação das coordenadas ECEF e geodésicas. ......................................... 52 Figura A.2 – Equador e órbita do satellite. .............................................................................. 53 Figura C.1 – Construção do sinal GPS a partir da modulação em fase da portadora 1L . ........ 59 Figura C.2 – Estrutura do sinal GPS a partir da modulação em fase da portadora 1L ............. 60 Figura C.3 – Estrutura de uma trama da mensagem de navegação.......................................... 62 Figura C.4 – Despread do código C/A. .................................................................................... 63 Figura F.1 – Ciclo de computação do filtro Kalman................................................................ 73 Figura F.2 – Filtragem (esq.) e predição (dir.) de trajectórias. ................................................ 76 Figura F.3 – Histograma de posicionamento em longitude e latitude...................................... 77 Figura F.4 – Filtragem da trajectória com kQ baixo (esquerda) e kQ elevado (direita). ........ 77 Figura G.1 – Placa OEM AC12 [Fonte: Thales Navigation]. .................................................. 79 Figura G.2 – Placa OEM GG24 [Fonte: Thales Navigation]. .................................................. 81 Figura G.3 – Placa OEM DG14 [Fonte: Thales Navigation]. .................................................. 82
xi
Lista de Tabelas
Tabela 2.1 – Influência das fontes de erro na pseudo-distância [Fonte: IAG]......................... 11 Tabela 4.1 – Características dos métodos de resolução de ambiguidades. .............................. 31 Tabela 5.1 – Detalhes do teste.................................................................................................. 40 Tabela 5.2 – Precisão dos algoritmos: 95% de confiança e CEP............................................. 43 Tabela 5.3 – Exactidão dos algoritmos: norma das médias. .................................................... 43 Tabela 5.4 – Detalhes do teste.................................................................................................. 44 Tabela 5.5 – Detalhes do teste.................................................................................................. 46 Tabela A.1 – Dados das efemérides. ........................................................................................ 54 Tabela A.2 – Determinação das coordenadas ECEF do satélite. ............................................. 55 Tabela H.1 – Estrutura de uma mensagem PBN. ..................................................................... 85 Tabela H.2 – Estrutura de uma mensagem MCA..................................................................... 86 Tabela H.3 – Estrutura de uma mensagem SNV...................................................................... 87
xiii
Lista de Siglas
C/A – Course-Acquisition Code
CEP – Circular Error Probable
CDMA – Code Division Multiple Access
DGPS – Differential Global Positioning System
DOP – Dilution Of Precision
ECEF – Earth Centered Earth Fixed
FAA – Federal Aviation Agency
FARA - Fast Ambiguity Resolution Approach
FASF - Fast Ambiguity Search Filter
GLONASS - GLObal NAvigation Satellite System
GPS – Global Positioning System
IAG - International Association of Geodesy
LADGPS – Local-Area Differential Global Positioning System
LAMBDA – Least-squares AMBiguity Decorrelation Adjustment
LSAST - Least-Squares Ambiguity Search Technique
NAVSTAR – Navigation Signal Timing and Ranging
NMEA – National Marine Electronics Association
OEM – Original Equipment Manufacturer
OMEGA - Optimal Method for Estimating GPS Ambiguities
P – Precision Code
RMS – Root Mean Square
SA – Selective Availability
SSG - Special Study Group
WADGPS – Wide-Area Differential Global Positioning System
WGS 84 – World Geodetic System 1984
xv
Notação
λ – Comprimento de onda iuρ – Pseudo-distância entre o satélite i e o receptor u
I – Atraso ionosférico em metros iuN – Ambiguidade inteira referente ao satélite i e receptor u
iR – Vector de posição do satélite i
T – Atraso troposférico em metros
c – Velocidade da luz no vácuo
ub – Erro do relógio do receptor u em metros
ib – Erro do relógio do satélite i em metros
ur – Vector de posição do receptor u
1
Capítulo 1 Introdução
1.1 Motivação
Em Dezembro de 1973, o Departamento de Defesa dos Estados Unidos da América
aprovaram o desenvolvimento do NAVSTAR GPS (Navigation Signal Timing and Ranging
Global Positioning System), um sistema de posicionamento baseado em satélites. O primeiro
satélite foi lançado em 1978. Em Dezembro de 1993, estão 24 satélites em órbita, que vieram
pôr à disposição de utilizadores civis um sensor de posicionamento de grande precisão e de
fácil utilização.
Nos anos mais recentes, o uso do GPS para navegação, posicionamento e referências
de tempo tornou-se uma significante actividade económica, com um impacto esperado para
2006 de mais de 20 mil milhões de euros (Figura 1.1) [1]. Projecta-se que em 2010 este
número ultrapasse os 50 mil milhões de Euros [2]. A indústria automóvel e os consumidores
individuais são os responsáveis pela maior parte destes valores (Figura 1.2) [1].
Figura 1.1 – Receitas da indústria associada ao GPS entre 1996 e 2006.
0
5
10
15
20
25
1996 1997 1998 1999 2000 2001* 2002* 2003* 2004* 2005* 2006*
Ano
Rec
eita
s da
indú
stri
a(M
il m
ilhõe
s de
Eur
os)
* Projecção
3
35%
22%
13%
5%
16%
5%
2%
2% Navegação Automóvel
Consumidor Individual
Seguimento e controlo de veículos
Produtores de Equipamento Original (OEM)
Mapeamento
Aviação
Marinha
Militar
Figura 1.2 – Distribuição de aparelhos GPS vendidos por segmento de mercado.
O objectivo da indústria tem sido a redução dos custos de produção para tornar a
tecnologia mais abrangente, mas ao mesmo tempo desenvolver aparelhos com maior precisão.
Devido ao tipo de perturbações existentes no sistema GPS, como a propagação das
ondas electromagnéticas na atmosfera ou o ruído electromagnético das antenas dos receptores
utilizados, podem obter-se melhorias na precisão através do aperfeiçoamento, tanto do
software como do hardware. O recurso a técnicas avançadas de posicionamento para
melhorar a precisão é uma solução óbvia e mais barata de implementar através da
actualização do software do que a alteração do hardware do aparelho GPS.
1.2 Estado da Arte
Desde a criação do sistema GPS que se desenvolveram vários abordagens para a
estimação da posição de um utilizador. Apesar da grande maioria dos produtores mundiais de
receptores GPS não fornecer detalhes acerca das soluções implementadas, existem vários
trabalhos científicos disponíveis nesta área.
As grandezas medidas e processadas são, de um modo geral, a pseudo-distância e a
fase das portadoras. A inovação tem surgido no tratamento destes dados, em especial na
resolução da ambiguidade da fase, onde se destacam os métodos [3]: LSAST (Least-Squares
Ambiguity Search Technique) [4], FARA (Fast Ambiguity Resolution Approach) [5], método
de decomposição modificada de Cholesky [6], LAMBDA (Least-Squares AMBiguity
Decorrelation Adjustment) [7], método de espaço nulo [8], FASF (Fast Ambiguity Search
Filter) [9] e OMEGA (Optimal Method for Estimating GPS Ambiguities) [10].
Capítulo 1. Introdução
4
De acordo com o SSG (Special Study Group) da IAG (International Association of
Geodesy) [11] para além da investigação em métodos de resolução e validação das
ambiguidades, o uso de WADGPS (Wide-Area Differential GPS), recorrendo a redes
compostas por várias estações base GPS, tem vindo a generalizar-se, permitindo aumentar a
performance do sistema através de processamento diferencial [12]. Estas investigações têm
como objectivo melhorar a precisão do sistema GPS e a qualidade dos dados em tempo real.
De futuro será possível aplicar novos métodos de estimação da posição, pois os satélites GPS
irão emitir um maior número de portadoras [13].
1.3 Objectivos do Trabalho
Os objectivos deste trabalho são o estudo e a validação de algoritmos para a estimativa
da posição em sistemas GPS. O trabalho seguiu três fases distintas:
• Estudo do funcionamento do sistema GPS
• Análise de metodologias para a estimativa da posição em GPS
• Implementação dos algoritmos de posicionamento em GPS
A primeira fase, detalhada no Capítulo 2, aprofunda o conhecimento do sistema GPS
ao nível dos princípios de funcionamento. Explicam-se as medições da pseudo-distância e da
fase da portadora, e as principais fontes de erro que as afectam.
No Capítulo 3, relativo à segunda etapa, são analisadas metodologias para a resolução
da posição em GPS. Inicialmente são abordados métodos de posicionamento absoluto, como o
iterativo e o de Bancroft, que recorrem simplesmente a um utilizador e às respectivas pseudo-
-distâncias. Em seguida tratam-se algoritmos avançados baseados em GPS diferencial
(DGPS – Differential GPS) e de duplas diferenças, com o objectivo de melhorar a precisão.
Nestes processos são usados dois receptores, um utilizador e uma estação-base, e as
respectivas pseudo-distâncias e fases da portadora. Para resolver a ambiguidade imposta pela
fase, detalha-se o método LAMBDA (Least-squares AMBiguity Decorrelation Adjustement),
no Capítulo 4.
A parte final consistiu na implementação dos algoritmos de posicionamento em
Matlab e C++ para a validação e estudo do desempenho das metodologias propostas com
dados recolhidos de receptores GPS. No Capítulo 5, representam-se os principais resultados
obtidos.
Finalmente, no Capítulo 6, analisam-se os resultados experimentais e retiram-se as
conclusões finais. São também abordadas implementações futuras.
5
Capítulo 2 Sistema GPS
Neste Capítulo introduz-se o sistema GPS, as suas componentes e os seus princípios
de funcionamento. Detalham-se as medições da pseudo-distância e da fase, e como
contribuem para o cálculo da posição de utilizador do sistema. Em primeiro lugar, é
importante salientar as motivações para a criação do sistema GPS, das quais se destacam:
• Posicionamento tridimensional preciso
• Informação contínua dada em tempo real
• Independência das condições climatéricas
• Suporte de um número ilimitado de utilizadores
2.1 Constituição do Sistema
O sistema GPS, tal como foi concebido, divide-se em três componentes: a espacial, a
de utilizador e a de controlo.
A componente espacial é constituída por 24 satélites NAVSTAR GPS (Figura 2.1) que
orbitam em torno da Terra a aproximadamente 20 200km de altitude, ao longo de seis planos
inclinados com 55º, igualmente espaçados de 60º de latitude e com um período de 12 horas.
Esta configuração optimiza a cobertura da Terra, garantindo sempre a visibilidade de pelo
menos quatro satélites em qualquer ponto da sua superfície [14].
Figura 2.1 – Satélite do sistema NAVSTAR GPS [Fonte: NASA].
Capítulo 2. Sistema GPS
6
A componente de utilizador representa todos os receptores de GPS, tanto na vertente
de hardware como de software, que captam e processam o sinal GPS de forma a obter
posições, velocidades ou referências de tempo (por exemplo, Figura 2.2).
Figura 2.2 – Placa OEM GG12 [Fonte: Thales Navigation].
A componente de controlo consiste em cinco estações de monitorização dispersas pelo
planeta, que fazem o seguimento dos satélites enviando a informação adquirida para uma
estação de controlo principal, (Figura 2.3), que verifica e corrige a trajectória e informação
dos satélites, para garantir o funcionamento correcto do sistema.
Figura 2.3 – Posição geográfica da componente de controlo.
2.2 Princípios de Funcionamento do GPS
No posicionamento em GPS recorre-se às posições iR dos satélites e respectivas
distâncias ao utilizador do sistema, denominadas por pseudo-distâncias, para, através de um
processo de trilateração, determinar a posição do ponto ur , que representa o utilizador do
Ascension
Estação de Monitorização Estação de controlo
Cabo Canaveral
Hawaii Kwajalein
Diego Garcia
Colorado Springs
2.2. Princípios de Funcionamento do GPS
7
sistema. Por posicionamento entende-se a determinação das coordenadas espaciais em relação
a um determinado referencial. O referencial escolhido foi o ECEF (Earth Centered Earth
Fixed), um referencial ortogonal com origem no centro da Terra e que acompanha o seu
movimento de rotação (Anexo A).
Em posicionamento por GPS as coordenadas dos satélites e pseudo-distâncias
associadas são conhecidas com relativa precisão, sendo a determinação da pseudo-distância
discutida na Secção 2.4. As coordenadas dos satélites são obtidas de acordo com o método
exposto no Anexo A.2. Ao longo desta Secção assume-se que as posições dos satélites e
respectivas pseudo-distâncias são conhecidas e exactas.
Para melhor compreender o conceito de trilateração, referido inicialmente, recorre-se a
um exemplo a duas dimensões (Figura 2.4), que, posteriormente, será alargado a três
dimensões. Em termos geométricos, através da intersecção de dois círculos, cujos raios são
definidos pelas pseudo-distâncias *iuρ entre os satélites e o utilizador ur , obtém-se dois pontos
possíveis para a posição do utilizador. Ao introduzir-se mais um satélite fica-se somente com
um ponto possível para a posição do utilizador. Conclui-se que no caso bidimensional são
necessárias as coordenadas de três satélites e respectivas pseudo-distâncias para determinar a
posição do utilizador.
Figura 2.4 – Conceito bidimensional de trilateração.
No caso tridimensional (Figura 2.5), em analogia com o caso a duas dimensões, e uma
vez que existe mais uma incógnita, é inevitável o recurso a mais um satélite, sendo então
necessários quatro satélites e respectivas pseudo-distâncias para se definir um ponto através
de intersecções de superfícies esféricas.
1R
3R
2R
*1uρ
*2uρ
*3uρ
ur
1R2R
*1uρ
*2uρ
ur
Capítulo 2. Sistema GPS
8
Figura 2.5 – Conceito tridimensional de trilateração.
Em termos geométricos, a intersecção entre duas superfícies esféricas definem um
círculo e uma nova intersecção devolve dois pontos, no entanto, apenas o que estiver mais
próximo é factível. Assim, em posicionamento por GPS e pressupondo a inexistência de erros
nos valores trabalhados, a partir do momento em que são conhecidas pelo menos três posições
dos satélites e as respectivas pseudo-distâncias, determina-se a posição do utilizador em
questão. A consideração de erros inerentes ao sistema GPS vai levar a que seja necessário um
mínimo de quatro satélites para se calcular uma posição, como será mostrado na Secção 2.4.
Aborda-se agora com mais profundidade o problema da determinação da posição do
utilizador, assumindo-se medições precisas, i.e., desprezando os erros intrínsecos ao sistema
GPS. A Figura 2.6 reproduz este problema, com as coordenadas do i-ésimo satélite a serem
dadas pelo vector [ ]Ti i i iR X Y Z= e a posição do utilizador dada por
[ ]Tu u u ur x y z= . As pseudo-distâncias *1uρ , *2
uρ e *3uρ podem ser escritas na forma:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
2 2 2*11 1 1
2 2 2*22 2 2
2 2 2*33 3 3
u u u u
u u u u
u u u u
X x Y y Z z
X x Y y Z z
X x Y y Z z
ρ
ρ
ρ
= − + − + −
= − + − + −
= − + − + −
(2.1)
Uma vez que existem três incógnitas, ux , uy e uz , e três equações é possível resolver
o problema. Como (2.1) contém equações não-lineares podem obter-se várias soluções, no
entanto, como foi referido, apenas uma delas é factível, a mais próxima da superfície
Terrestre.
2.3. Fontes de Erro
9
Figura 2.6 – Determinação da posição do utilizador.
2.3 Fontes de Erro
Existem fontes de erro que afectam a precisão e exactidão da medição da distância
entre o utilizador e um satélite, e consequentemente o posicionamento em GPS. A Figura 2.7,
que representa a situação do cálculo de posição semelhante à Figura 2.4, evidencia esta
situação, em que erros nas medições introduzem incerteza no cálculo da posição. Alguns
destes erros, no entanto, podem ser modelados ou corrigidos, e estão divididos em três
grandes categorias: os associados aos satélites, ao receptor e ao meio de propagação.
Figura 2.7 – Incerteza no cálculo da posição.
x
1 1 1, ,X Y Z
y
z
, ,u u ux y z
*1uρ
*2uρ *3
uρ
2 2 2, ,X Y Z 3 3 3, ,X Y Z
Pseudo-distância ideal
Pseudo-distância medida
Capítulo 2. Sistema GPS
10
As fontes de erro nos satélites são muito pequenas e altamente controladas [15].
Distinguem-se as seguintes:
• Relógios internos: apesar da existência de relógios atómicos nos satélites,
corrigidos periodicamente, qualquer deriva implica erro nas medições
• Efemérides: as trajectórias dos satélites são descritas por fórmulas matemáticas
muito precisas, actualizadas regularmente pela estação de controlo. Podem ocorrer
alguns erros, provenientes de alterações nas trajectórias previstas
• Acesso selectivo (SA – Selective Availability): um sistema implementado para
degenerar a performance do GPS para utilizadores civis. Foi desactivado em Maio
do ano 2000, podendo ser reanimado em casos especiais [14]
• Geometria dos satélites: está associada à posição relativa dos satélites. Para
aumentar a precisão do posicionamento deve procurar-se a melhor geometria
possível (Anexo B)
As fontes de erro associadas aos receptores GPS são a principal razão para a
diminuição da precisão das medições [12]. Realçam-se as seguintes:
• Relógios internos: são a principal fonte de erro, não podendo ser modelada
• Multi-percurso: o sinal GPS pode percorrer diferentes caminhos desde do satélite
até ao receptor (Figura 2.8). O mesmo sinal é recebido em instantes diferentes
provocando interferência com ele próprio. Certas características do sinal, como o
baixo espectro de potência (Anexo C.3), permitem minimizar estes erros
• Ruído do receptor: os próprios sensores usados nos receptores têm uma restrição
física, que limita a qualidade com que se capta o sinal
Satélite
Utilizador
Sinal GPS
Sinal GPS reflectido
Sinal GPS
Figura 2.8 – Erros de multi-percurso.
2.3. Fontes de Erro
11
Finalmente, têm-se as fontes de erros nos meios de propagação (Figura 2.9) que em
certas circunstâncias, podem ser modeladas com elevada precisão [16]:
• Atraso ionosférico: a ionosfera começa a 50km da superfície terrestre e prolonga-
se por cerca de 1000km. Este atraso é derivado de uma densidade elevada de
electrões que influencia a velocidade de propagação e a fase do sinal GPS [17].
• Atraso troposférico: a troposfera é a parte inferior da atmosfera. A temperatura,
pressão e humidade existentes alteram a velocidade da propagação do sinal GPS.
Figura 2.9 – Erros de atraso troposférico e ionosférico.
Os vários erros analisados influenciam de maneira diferente a medição das distâncias
entre o utilizador e os satélites. Na Tabela 2.1 observam-se os erros máximos introduzidos nas
observações das pseudo-distâncias por várias fontes de erro. Estes valores são aproximados e
estão sujeitos a variâncias.
Tabela 2.1 – Influência das fontes de erro na pseudo-distância [Fonte: IAG].
Fontes de erro Erro máximo (metros)
Ionosfera 5.0
Efemérides 2.5
Relógio do satélite 2.0
Multi-percurso 1.0
Troposfera 0.5
Capítulo 2. Sistema GPS
12
2.4 Determinação da Pseudo-Distância
A pseudo-distância, definida na Secção 2.2, é a distância geométrica entre o utilizador
e um satélite que, de agora em diante, será designada por pseudo-distância ideal. Pressupondo
que o sinal se propaga à velocidade da luz c , determina-se a pseudo-distância ideal entre o
utilizador e o satélite i , *iuρ , com base no tempo de emissão do sinal GPS pelo satélite i , i
et , e
no tempo de recepção no utilizador, rt , medidos numa mesma referência de tempo:
* ( )i iu r ec t tρ = − (2.2)
A equação (2.2), no entanto, não pode ser resolvida pelo utilizador, pois o tempo de
recepção do sinal é dado pelo seu relógio, que é pouco exacto, e o tempo de emissão é dado
pelo relógio atómico do satélite (Anexo C.2), havendo duas referências de tempo distintas.
Logo é necessário ter em conta os termos de deriva de relógio do utilizador, utb , no tempo
recepção ,r ut e o do satélite i , itb , no tempo de emissão i
et obtendo-se a pseudo-distância
medida entre o utilizador e o satélite i :
, ,( )i iu r u e ic t tρ = − (2.3)
em que ,r u r utt t b= + e ,i i ie i e tt t b= + são os tempos de recepção e emissão medidos no relógio do
utilizador e do satélite, respectivamente.
Recorrendo ao resultado (2.2) redefine-se o conceito de pseudo-distância medida
expresso em (2.3) por:
( )*i i iu u ut tc b bρ ρ= + − (2.4)
Introduzindo em (2.4) os principais erros de propagação tem-se:
*i i iu u ub b T Iρ ρ ε= + − + + + (2.5)
em que:
ub é a deriva do relógio do utilizador, em metros
ib é a deriva do relógio do i-ésimo satélite, em metros
T é o atraso troposférico, em metros
I é o atraso ionosférico, em metros
ε é outros efeitos não modelados e o ruído das medições
No modelo mais geral da pseudo-distância (2.5) nem todos os termos podem ser
determinados. Desprezando a deriva do relógio do satélite (face à deriva do relógio do
2.5. Determinação da Fase
13
receptor) e o atraso ionosférico e, uma vez que o erro troposférico pode ser modelado [16], o
sistema (2.1) é reescrito na seguinte forma:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
2 2 211 1 1
2 2 222 2 2
2 2 233 3 3
u u u u u
u u u u u
u u u u u
X x Y y Z z b
X x Y y Z z b
X x Y y Z z b
ρ
ρ
ρ
⎧ = − + − + − +⎪⎪
= − + − + − +⎨⎪⎪ = − + − + − +⎩
(2.6)
Ao introduzir-se o termo de deriva do relógio do utilizador como incógnita, uma vez
que este não pode ser modelado, é necessária uma nova equação de pseudo-distância para
resolver esta nova variável. Assim (2.6) é reescrita:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
2 2 211 1 1
2 2 222 2 2
2 2 233 3 3
2 2 244 4 4
u u u u u
u u u u u
u u u u u
u u u u u
X x Y y Z z b
X x Y y Z z b
X x Y y Z z b
X x Y y Z z b
ρ
ρ
ρ
ρ
⎧ = − + − + − +⎪⎪
= − + − + − +⎪⎨⎪ = − + − + − +⎪⎪ = − + − + − +⎩
(2.7)
A Equação (2.7) é a equação básica para encontrar a posição de um utilizador e cujos
métodos para a resolver serão discutidos no Capítulo 3. Apesar de só serem necessárias quatro
equações para a resolução do problema, normalmente é útil levar em conta mais satélites.
2.5 Determinação da Fase
A fase da portadora é utilizada, juntamente com a pseudo-distância, quando se
pretende obter maiores níveis de precisão e exactidão em GPS. Tal como foi visto na Secção
2.4, a pseudo-distância é determinada através da diferença entre o tempo de recepção e
emissão do sinal GPS. Um outro método para calcular a distância entre o satélite e o
utilizador consiste em usar o número de períodos realizados pela portadora desde a sua
emissão até à sua recepção (Figura 2.10). Sabendo o comprimento de onda das portadoras que
modelam o sinal GPS (Anexo C), a distância percorrida pelo sinal é determinada somando o
número de períodos à fase no instante de recepção (2.8), ambas expressas em unidades de
distância.
2
ii i uu uM θφ λ
π⎛ ⎞
= +⎜ ⎟⎝ ⎠
(2.8)
Capítulo 2. Sistema GPS
14
em que:
iuφ é a distância, usando a medida da fase, entre o satélite i e o receptor u
λ é o comprimento de onda da portadora
iuM é o número de períodos realizados pelo sinal
iuθ é o valor da fase medido pelo receptor u , entre 0 e 2π
O problema da utilização da fase resume-se à determinação do número de períodos
para se encontrar uma distância ao satélite mais precisa.
Figura 2.10 – Número de períodos e fase do sinal.
Caso só se tivesse acesso ao valor da fase entre 0 e 2π , seria muito complicado
determinar, em cada instante, o número de períodos realizados pelo sinal. Normalmente, um
receptor GPS tem mecanismos que facilitam o cálculo da distância do satélite i ao receptor u
quando se recorre à fase. No instante em que o receptor adquire o sinal de um satélite
(Anexo C.3), atribui um valor arbitrário ao número de períodos. A partir deste instante, ele
conta quantos ciclos completos ocorrem no sinal desde a sua aquisição, i.e., as restantes
medições da fase estarão correctas relativamente à primeira. Deste modo, apenas é necessário
determinar a diferença entre o número de períodos reais e os arbitrários. Esta diferença é
designada por ambiguidade inteira da fase e um método para a sua determinação é proposto
no Capítulo 4. Tendo em conta os mecanismos dos receptores GPS, redefine-se a distância do
satélite i ao receptor u , associada à fase da portadora:
( )*i i i i iu u u u ub b T I Nφ ρ λ λ ϕ ϕ ξ= + − + − + + − + (2.9)
em que:
iuN é a ambiguidade inteira inicial
uϕ é a fase inicial do receptor u
iϕ é a fase inicial do satélite i
ξ é outros efeitos não modelados e o ruído das medições
A partir deste momento, a distância (2.9) será designada por fase da portadora.
2.6. Métodos de Posicionamento
15
Para além do cálculo da ambiguidade, outro problema na utilização da fase são os
cycle slips, i.e., saltos, de um número inteiro de períodos, causados pela perda temporária do
seguimento do sinal (Anexo C.3). Quando um receptor GPS perde temporariamente o sinal e
este volta a ser readquirido podem ocorrer saltos na ambiguidade inteira definida
anteriormente, i.e., o valor arbitrário atribuído pelo receptor é diferente do atribuído na
primeira vez que o satélite foi adquirido. Este facto invalida a ambiguidade inteira
previamente calculada.
2.6 Métodos de Posicionamento
O método descrito na Secção 2.4 é conhecido como posicionamento absoluto: dado
um conjunto de posições dos satélites e respectivas pseudo-distâncias determina-se o vector
de posição do utilizador.
Outro método usado, que geralmente melhora a exactidão do cálculo da posição em
relação ao absoluto é o DGPS, que consiste em ter um receptor extra numa posição conhecida
(estação-base) que use um método de posicionamento absoluto. Sabendo a posição exacta
desta estação, calculam-se correcções a introduzir nos cálculos da posição do utilizador, para
obter melhores resultados. Esta informação é transmitida via rádio para os receptores a
operarem na sua vizinhança. Como seria de esperar à medida que aumenta a distância do
receptor à base a capacidade de correcção de erros diminui [14]. A distância para realizar
DGPS, com eficiência, situa-se na ordem da centena de quilómetros.
Baseados neste conceito, surgiram outros tipos de posicionamento semelhantes como
o LADGPS (Local-Area DGPS), onde o utilizador se encontra na linha de vista da estação-
base, e o WADGPS em que o utilizador recebe informação de várias estações bases
espalhadas na região de operação.
É de salientar o método das duplas diferenças. Este tipo de posicionamento também
necessita de uma estação-base, permitindo criar um vector que posicione o utilizador em
relação à estação-base, em vez de se definir a posição por um conjunto de coordenadas num
sistema de referência global. Muitos dos erros no posicionamento são comuns ao utilizador e
à estação base, caso as estações estejam geograficamente próximas, podendo diminuir os seus
efeitos.
17
Capítulo 3 Algoritmos de Posicionamento
A principal função do sistema GPS é fornecer as coordenadas espaciais ux , uy e uz de
um utilizador em respeito a um sistema global de coordenadas ECEF (Anexo A). Por posição
do utilizador entende-se as coordenadas da antena do receptor GPS associado ao mesmo
utilizador. Normalmente os receptores GPS apresentam esta posição num sistema de
coordenas geodésicas: latitude, longitude e altitude (Anexo A.1).
Os algoritmos de posicionamento apresentados neste Capítulo levam em conta
somente a pseudo-distância ou a pseudo-distância e a fase da portadora. A posição de um
satélite i , iX , iY e iZ , é dada de acordo com Anexo A.2.
3.1 Posicionamento Absoluto
O problema de posicionamento absoluto consiste em determinar a posição do
utilizador recorrendo somente às observações dos satélites realizadas pelo seu receptor. Este
conceito está representado na Figura 3.1. Por observação de um satélite entende-se receber a
sua mensagem de navegação completa e respectivas pseudo-distância e fase.
Figura 3.1 – Conceito do posicionamento absoluto.
Capítulo 3. Algoritmos de Posicionamento
18
Este problema de posicionamento resume-se, matematicamente, a resolver o sistema
de equações definido em (2.7) que, por sua vez, pode ser generalizado para o caso em que o
utilizador observa N satélites, com 4N ≥ , obtendo-se o sistema de equações (3.1).
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
2 2 211 1 1
2 2 222 2 2
2 2 233 3 3
2 2 2
u u u u u
u u u u u
u u u u u
Nu N u N u N u u
X x Y y Z z b
X x Y y Z z b
X x Y y Z z b
X x Y y Z z b
ρ
ρ
ρ
ρ
⎧ = − + − + − +⎪⎪
= − + − + − +⎪⎪⎨ = − + − + − +⎪⎪⎪⎪ = − + − + − +⎩
(3.1)
O sistema definido em (3.1) recorre somente às medições da pseudo-distância para
determinar a posição do utilizador. Esta, uma vez que as pseudo-distâncias não são muito
precisas, também não o vai ser. É com o objectivo de melhorar a precisão para o nível dos
centímetros, que se recorre às medições da fase. No entanto, a utilização exclusiva da fase em
posicionamento absoluto não é viável, uma vez que a solução da ambiguidade inteira pode
demorar várias épocas a convergir [14]. Assim, para evitar resolver o problema da
ambiguidade e obter resultados satisfatórios para a precisão, utiliza-se uma medida, que
associa as medições da pseudo-distância e da fase, designada por CSC (Carrier-Smoothed-
Code):
( ) ( ) ( ) ( ) ( ) ( ) ( )( )1 2ˆ ˆ 1 1i i i i iu u u u uP t z t t z t P t t tρ φ φ= + − + − − (3.2)
em que 1z e 2z são pesos para as medições da pseudo-distância e fase, respectivamente, e
1 2 1z z+ = .
A ideia do CSC consiste em determinar, com base na diferença entre duas medições
da fase consecutivas, uma pseudo-distância mais precisa e exacta do que a medida pelo
receptor do utilizador. Tal como para a pseudo-distância medida, define-se um sistema de
equações, semelhante a (3.1), em que se recorre às medidas CSC:
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( )
2 2 211 1 1
2 2 222 2 2
2 2 233 3 3
2 2 2
ˆ
ˆ
ˆ
ˆ
u u u u u
u u u u u
u u u u u
Nu N u N u N u u
P X x Y y Z z b
P X x Y y Z z b
P X x Y y Z z b
P X x Y y Z z b
⎧ = − + − + − +⎪⎪
= − + − + − +⎪⎪⎨ = − + − + − +⎪⎪⎪⎪ = − + − + − +⎩
(3.3)
3.1. Posicionamento Absoluto
19
Nesta Secção são estudados dois métodos, um iterativo e outro não iterativo que
permitem resolver quer o problema inicial (3.1) quer o problema (3.3). Estes métodos têm
uma vertente mais pedagógica e o seu objectivo é o de introduzir conceitos e noções
importantes na construção de algoritmos mais avançados.
3.1.1 Algoritmo Iterativo
Um dos problemas na resolução do sistema (3.1) é a sua não linearidade. Esta questão
pode ser ultrapassada usando o algoritmo iterativo [14] que recorre à expansão em série de
Taylor de primeira ordem de cada equação. Sendo a pseudo-distância referente a um
determinado satélite dada por uma das equações do sistema (3.1), o incremento diferencial da
pseudo-distância do i-ésimo satélite iuδρ é aproximado linearmente pela expansão em série de
Taylor de primeira ordem, em torno de uma estimativa inicial para ux , uy , uz e ub :
( ) ( ) ( )( ) ( ) ( )2 2 2
i u u i u u i u uiu u
i u i u i u
X x x Y y y Z z zb
X x Y y Z z
δ δ δδρ δ
− + − + −= − +
− + − + − (3.4)
em que uxδ , uyδ , uzδ e ubδ são os incrementos diferenciais de ux , uy , uz e ub .
Através da equação (3.4) obtém-se a linearização do sistema definido em (3.1):
( ) ( ) ( )( ) ( ) ( )
( ) ( ) ( )( ) ( ) ( )
( ) ( ) ( )( ) ( ) ( )
( ) ( ) ( )
1 1 11
2 2 21 1 1
2 2 22
2 2 22 2 2
3 3 33
2 2 23 3 3
u u u u u uu u
u u u
u u u u u uu u
u u u
u u u u u uu u
u u u
N u u N u u N uNu
X x x Y y y Z z zb
X x Y y Z z
X x x Y y y Z z zb
X x Y y Z z
X x x Y y y Z z zb
X x Y y Z z
X x x Y y y Z z z
δ δ δδρ δ
δ δ δδρ δ
δ δ δδρ δ
δ δ δδρ
− + − + −= − +
− + − + −
− + − + −= − +
− + − + −
− + − + −= − +
− + − + −
− + − + −= −
( ) ( ) ( )2 2 2
uu
N u N u N u
bX x Y y Z z
δ
⎧⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪
+⎪⎪ − + − + −⎩
(3.5)
Na resolução de um sistema de equações lineares com mais equações que incógnitas,
uma abordagem possível é o recurso ao método dos mínimos quadrados (Anexo D.1). Para
tal, é necessário representar o sistema (3.5) de uma forma matricial:
Capítulo 3. Algoritmos de Posicionamento
20
1 11 12 13
2 21 22 23
3 31 32 33
1 2 3
111
1u
u
u
u
u
uN N N N r
b
xyzbδ
δρ α δ
δρ α α αδ
δρ α α αδ
δρ α α αδδ
δρ α α α⎡ ⎤⎢ ⎥⎣ ⎦
⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥=⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
(3.6)
em que:
( ) ( ) ( )
1 2 2 2u i
i
i u i u i u
x X
X x Y y Z zα −
=− + − + −
(3.7)
( ) ( ) ( )
2 2 2 2u i
i
i u i u i u
y Y
X x Y y Z zα −
=− + − + −
(3.8)
( ) ( ) ( )
3 2 2 2u i
i
i u i u i u
z Z
X x Y y Z zα −
=− + − + −
(3.9)
Utilizando a pseudo-inversa, proveniente do método de mínimos quadrados, tem-se:
1u T T
u
rbδ
α α α δρδ
−⎡ ⎤⎡ ⎤= ⋅ ⋅⎢ ⎥ ⎣ ⎦
⎣ ⎦ (3.10)
Através de (3.10) obtêm-se urδ e ubδ . Estes valores não fornecem directamente a
solução final, mas esta pode ser obtida utilizando a mesma equação de uma forma iterativa,
ou seja, actualizando a última estimativa de ux , uy , uz e ub com a adição dos incrementos e
repetindo o processo. É necessário definir um valor para verificar se o resultado obtido é o
desejado, que é dado por:
2 2 2 2u u u uv x y z bδ δ δ δ δ= + + + (3.11)
Quando o valor de vδ for menor que um determinado limite vδε significa que o
processo iterativo terminou.
O algoritmo pode ser descrito de uma forma sucinta pelos seguintes passos:
1. Escolhe-se uma estimativa inicial para a posição ux , uy e uz e erro de relógio ub
2. Calcula-se a pseudo-distância ideal *iuρ com base nos valores estimados ux , uy e
uz . A diferença entre o valor observado e o valor esperado é designada por iuδρ
3. Utiliza-se o valor calculado de *iuρ em (3.7), (3.8) e (3.9) para calcular os valores
de 1iα , 2iα e 3iα , respectivamente
4. Recorrendo a (3.10) determina-se os valores de uxδ , uyδ , uzδ e ubδ
3.1. Posicionamento Absoluto
21
5. Somam-se os valores uxδ , uyδ , uzδ e ubδ a ux , uy , uz e ub estimados, obtendo-
-se um novo conjunto de valores para a posição e erro de relógio do utilizador
6. Utilizando os valores uxδ , uyδ , uzδ e ubδ em (3.11) calcula-se o valor de vδ
7. Caso vδ seja maior que um determinado vδε é necessário voltar ao passo 2. Caso
contrário a solução obtida no passo 5 para a posição e erro de relógio deve ser
considerado o resultado final.
A escolha da estimativa inicial da posição e erro de relógio, neste algoritmo, é uma
questão relevante, pois pode implicar a sua não convergência [14]. Para posicionamento em
torno da superfície terrestre esta questão pode ser facilmente ultrapassada, conhecendo a
localização geográfica aproximada.
3.1.2 Algoritmo de Bancroft
A existência de métodos analíticos e não-iterativos permite evitar os problemas de
convergência inerentes a algoritmos iterativos. Nesta área, para problemas de posicionamento
em GPS, destaca-se o algoritmo de Bancroft (Bancroft, 1985) [18][19].
A abordagem algébrica deste método necessita de uma manipulação da equação da
pseudo-distância de um determinado satélite i . Manipulando uma das equações do sistema
(3.1) obtém-se:
( )( ) ( ) ( )22 2 2 2 2 2 22i ii i i u i u i u i u u u u u u uX Y Z X x Y y Z z b x y z bρ ρ+ + − − + + + = − + + − (3.12)
Definindo o produto interno de Lorentz entre dois vectores 4,g h∈ por:
, Tg h g Mh= (3.13)
com:
1 0 0 00 1 0 00 0 1 00 0 0 1
M
⎡ ⎤⎢ ⎥⎢ ⎥=⎢ ⎥⎢ ⎥−⎣ ⎦
(3.14)
Aplicando o produto interno de Lorentz a (3.12) tem-se:
1 1, , , 02 2
i i i u u ui i iu u u u u u
R R R r r rb b bρ ρ ρ
⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤ ⎡ ⎤− + =⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ ⎣ ⎦ (3.15)
Capítulo 3. Algoritmos de Posicionamento
22
Num dado instante, cada pseudo-distância medida dá origem a uma equação
semelhante à definida em (3.15). Como referido na Secção 3.1 são observados N satélites,
que definem uma matriz com todos os parâmetros conhecidos, dada por:
11 1 1
22 2 2
33 3 3
u
u
u
NN N N u
X Y ZX Y Z
B X Y Z
X Y Z
ρρρ
ρ
⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥=⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦
(3.16)
Usando a matriz B definida em (3.16), as N observações definem o sistema:
1
2
3 0u
u
N
rBM e
b
α
ααα
α
⎡ ⎤⎢ ⎥⎢ ⎥ ⎡ ⎤⎢ ⎥ − + Λ =⎢ ⎥⎢ ⎥ ⎣ ⎦⎢ ⎥⎢ ⎥⎣ ⎦
(3.17)
em que:
1 ,2
k kkk ku u
R Rα
ρ ρ⎡ ⎤ ⎡ ⎤
= ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
(3.18)
1 ,2
u u
u u
r rb b⎡ ⎤ ⎡ ⎤
Λ = ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
(3.19)
[ ]1 1 1 Te = (3.20)
com Ne∈ .
No caso de existirem mais do que quatro satélites visíveis, o número de equações é
superior ao número de incógnitas. Por conseguinte recorre-se aos mínimos quadrados para
resolver o sistema definido por (3.17):
( ) ( )1u T T
u
rM B B B e
bα
−⎡ ⎤= Λ +⎢ ⎥
⎣ ⎦ (3.21)
Definindo ( ) 1T TB B B B−+ = como a pseudo-inversa da matriz B tem-se:
( )u
u
rMB e
bα+⎡ ⎤
= Λ +⎢ ⎥⎣ ⎦
(3.22)
3.2. GPS Diferencial
23
Uma vez que Λ contém as incógnitas do sistema ur e ub , substitui-se (3.22) na
definição de Λ (3.19) obtendo-se:
( ) ( )1 ,2
B e B eα α+ +Λ = Λ + Λ + (3.23)
Utilizando a linearidade do produto interno de Lorentz reescreve-se a equação (3.23):
21 1, , ,2 2
B a B a B a B e B e B e+ + + + + +Λ = + Λ + Λ (3.24)
Multiplicando ambos os lados de (3.24) por 2 obtém-se:
( )2, 2 , 1 , 0B e B e B a B e B a B a+ + + + + +Λ + − Λ + = (3.25)
Como se pode constatar (3.25) é uma função quadrática em Λ com coeficientes
,B e B e+ + , ( )2 , 1B a B e+ +⋅ − e ,B a B a+ + . Todos estes coeficientes podem ser
determinados, uma vez que não contêm incógnitas. Deste modo, obtêm-se dois valores
possíveis para Λ , o que implica a existência de duas soluções para a posição e erro de
relógio, de acordo com (3.22). Só uma das soluções obtidas é que faz sentido, aquela cuja
posição se encontra mais próxima da superfície terrestre.
3.2 GPS Diferencial
O GPS diferencial [20] é uma técnica que aumenta significativamente a precisão da
posição do utilizador. Em termos gerais, o DGPS consiste em colocar um receptor GPS num
local fixo (denominado por estação-base) onde as suas coordenadas são conhecidas com
elevada precisão. Num dado instante, conhecendo as verdadeiras coordenadas da estação-
base, é possível calcular a diferença entre estas e as calculadas por um método de
posicionamento absoluto. Esta diferença fornece os valores de correcção que devem ser
aplicados, no mesmo instante, à posição de um utilizador, previamente determinada por um
algoritmo de posicionamento absoluto (Figura 3.2). Este conceito é também aplicado de uma
forma semelhante às medidas das pseudo-distâncias.
Capítulo 3. Algoritmos de Posicionamento
24
Envio das correcções
Calcula correcções com base na posição real e calculada
Determina posição com base nas correcções recebida
Estação-base
Satélite
Utilizador
Sinal GPSSinal GPS
Figura 3.2 – Conceito do GPS diferencial.
Para uma melhor performance no uso de técnicas diferenciais em algoritmos de
posicionamento é essencial que se verifique um conjunto de condições. Em primeiro lugar o
utilizador deve estar próximo da estação-base (máximo de 20km), para garantir que os sinais
recebidos estão sujeitos a atrasos ionosféricos e troposféricos idênticos. É também necessário
que ambos os receptores utilizem o mesmo conjunto de satélites e efemérides (coerência na
constelação usada), para impedir o cálculo de posições com erros associados a diferentes
fontes. Finalmente a estação-base não deve corrigir erros que não são mensuráveis pelo
utilizador, como os erros de multi-percurso.
Neste projecto são abordados dois algoritmos que se enquadram neste tipo de técnica,
um efectua correcções ao nível da pseudo-distância, o DGPS em pseudo-distância, e outro ao
nível da posição, o DGPS em posição.
3.2.1 DGPS em Pseudo-Distância
O uso do GPS diferencial em pseudo-distância consiste em introduzir correcções nas
pseudo-distâncias observadas pelo utilizador. O primeiro passo consiste em determinar um
valor muito próximo da pseudo-distâncias ideal da estação-base, recorrendo às suas
coordenadas precisas e às coordenadas dos satélites observados. A diferença entre este valor e
as pseudo-distâncias observadas pode ser usado por um receptor GPS vizinho para corrigir as
suas observações relativas às mesmas pseudo-distâncias.
Uma das grandes vantagens do tratamento diferencial em GPS é a possibilidade de
cancelar erros idênticos à estação-base e ao utilizador. Recorrendo à equação geral da pseudo-
distância (2.5), define-se a correcção da pseudo-distância referente ao satélite i observado
pela estação-base por [20]:
3.2. GPS Diferencial
25
*i i i ib b b bb b T Iδρ ρ ρ ε= + − = − − − (3.26)
Definiu-se (3.26) de modo a garantir que esta correcção apenas englobe erros idênticos
a ambos os receptores, razão pela qual a deriva do relógio da estação-base não é contemplada.
Considerando a proximidade entre a estação-base e o utilizador, a correcção da pseudo-
distância deste último é:
i iu bδρ δρ≅ (3.27)
A igualdade (3.27) corresponde às correcções individuais que devem ser aplicadas às
medições de cada pseudo-distância realizadas pelo utilizador. Finalmente, para determinar a
posição do utilizador recorre-se a um dos métodos expostos na Secção 3.1, usando as pseudo-
distâncias corrigidas.
3.2.2 DGPS em Posição
O GPS diferencial é usado em posição, aplicando correcções directamente às
coordenadas do utilizador, de forma semelhante ao DGPS em pseudo-distância. A primeira
etapa deste algoritmo consiste em calcular as posições dos receptores br e ur recorrendo a um
dos algoritmos propostos na Secção 3.1. De seguida calcula-se a diferença entre as
coordenadas exactas da estação-base ,b refr , conhecidas a priori, e as calculadas na etapa
inicial. Esta diferença é designada por correcção da posição da estação-base:
,b b ref br r rδ = − (3.28)
em que , , , ,
T
b ref b ref b ref b refr x y z⎡ ⎤= ⎣ ⎦ .
Assume-se que a posição, em analogia com o modelo da pseudo-distância (2.5), é
modelada por [20]:
,
b
b b ref B I T
r
r r ε
δ
δ δ δ δ= − + + + (3.29)
em que:
Bδ é a correcção de posição associada aos erros de deriva dos relógios dos
satélites
Iδ é a correcção de posição associada ao atraso ionosférico
Tδ é a correcção de posição associada ao atraso troposférico
εδ é a correcção de posição associada a erros não modelados
Capítulo 3. Algoritmos de Posicionamento
26
Quando ambos os receptores GPS estão suficientemente próximos, então os erros
ionosféricos e troposféricos assumem valores semelhantes. Os erros de relógio dos satélites
GPS também são idênticos para os dois receptores, porque se utiliza o mesmo conjunto de
satélites para o cálculo das posições. Tendo em conta estas considerações, e como o erro de
relógio do receptor pode ser determinado, a correcção calculada para a estação-base pode ser
aplicada directamente à posição calculada para o utilizador:
,u DGPS u br r rδ= + (3.30)
em que ,u DGPSr é a estimativa da posição do utilizador corrigida diferencialmente.
3.3 Duplas Diferenças
O método das duplas diferenças [16] é um algoritmo semelhante ao GPS diferencial.
Os pressupostos definidos para o bom funcionamento do DGPS mantêm-se para o
posicionamento usando duplas diferenças. A principal vantagem deste método, em
comparação com o DGPS, é o facto de também se conseguir cancelar o erro proveniente do
relógio do receptor.
A grande diferença entre o DGPS e o método das duplas diferenças reside no facto de
no primeiro se calcular correcções para a estação-base que, posteriormente, são enviadas para
o utilizador. O das duplas diferenças, por outro lado, combina a informação de dois receptores
de forma a cancelar erros comuns. Esta técnica é normalmente usada para determinar
baselines, mas também pode ser aplicada à determinação da posição do utilizador. Por
baseline entende-se o vector de distância, com origem na estação-base, que une os dois
receptores (Figura 3.3).
Figura 3.3 – Conceito de duplas diferenças.
3.3. Duplas Diferenças
27
Em duplas diferenças, o problema de posicionamento em GPS fica reduzido ao
cálculo de incrementos urΔ à estimativa da posição do utilizador:
ˆu u ur r r= +Δ (3.31)
em que [ ]Tu u u ur x y zΔ = Δ Δ Δ .
A baseline ,b urΔ pode ser determinada calculando a diferença entre as coordenadas da
estação-base e do utilizador:
,b u b ur r rΔ = − (3.32)
3.3.1 Duplas Diferenças via Pseudo-Distância
Considerando o receptor u e o conjunto de satélites k e l , define-se, para a pseudo-
distância (2.5), diferenças simples entre satélites por:
( ) *kl k l kl kl kl klu u u u u ut T I bρ ρ ρ ρΔ = − = Δ +Δ +Δ −Δ (3.33)
De forma análoga define-se diferenças simples entre receptores por:
( ) *k k k k k kbu b u bu bu bu but T I bρ ρ ρ ρ∇ = − =∇ +∇ +∇ +∇ (3.34)
Como se verifica através da análise de (3.33), no caso das diferenças entre satélites, o
erro de relógio do receptor é cancelado. De forma análoga, analisando (3.34) constata-se que
o erro de relógio do satélite é anulado, quando se calcula a diferença entre receptores.
Obtidas as diferenças simples, define-se as duplas diferenças (diferença entre
diferenças simples de satélites e receptores), para a pseudo-distância, por:
( ) ( ) ( ) ( ) ( )kl k l kl klbu bu bu b ut t t t tρ ρ ρ ρ ρ∇Δ =∇ −∇ = Δ −Δ (3.35)
Substituindo (3.33) ou (3.34) em (3.35) obtém-se:
( ) *kl kl kl klbu bu bu but I Tρ ρ∇Δ =∇Δ +∇Δ +∇Δ (3.36)
Analisando (3.36) verifica-se que os erros derivados do relógio dos receptores e do
relógio dos satélites foram anulados. Partindo do pressuposto que se lida com baselines
pequenas, as duplas diferenças dos atrasos ionosféricos e troposféricos são desprezáveis [16].
Assim (3.36) pode ser reescrita da seguinte forma:
( ) *kl klbu butρ ρ∇Δ =∇Δ (3.37)
Recorrendo a (3.37), conclui-se que as duplas diferenças da pseudo-distâncias medidas
são iguais às duplas diferenças das pseudo-distâncias ideais.
Capítulo 3. Algoritmos de Posicionamento
28
A definição de pseudo-distância ideal (2.1) pode ser expandida em série de Taylor de
primeira ordem em torno do ponto ur :
( ) ( )( )
( )( )
( )( )
* ** * *
ˆ ˆ ˆ0
0 0 0k u k u k uk k
u u u u uk k ku u u
X x Y y Z zx y zρ ρ
ρ ρ ρ− − −
= + Δ + Δ + Δ (3.38)
Definindo kuu como:
( )( )
( )( )
( )( )* * *
ˆ ˆ ˆ0 0 0
k u k u k uku k k k
u u u
X x Y y Z zu
ρ ρ ρ⎡ ⎤− − −
= ⎢ ⎥⎣ ⎦
(3.39)
vem que:
( )* * 0u
k k ku u u u
u
xu y
zρ ρ
Δ⎡ ⎤⎢ ⎥= + ⋅ Δ⎢ ⎥⎢ ⎥Δ⎣ ⎦
(3.40)
Supondo que se observam 1m + satélites ( m duplas diferenças), define-se o satélite
k , com o maior ângulo de elevação, como principal, para maximizar a geometria [16], e
obtém-se o seguinte sistema:
( )( )
( )
1 * 1 1
2 * 2 2
*
00
0u
k k kbu bu u u
uk k kbu bu u u
u
ukm km k mbu bu u u r
AB
u ux
u uyz
u u
ρ ρρ ρ
ρ ρΔ
⎡ ⎤ ⎡ ⎤∇Δ −∇Δ −Δ⎡ ⎤⎢ ⎥ ⎢ ⎥∇Δ −∇Δ − ⎢ ⎥⎢ ⎥ ⎢ ⎥= Δ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥Δ⎢ ⎥ ⎢ ⎥ ⎣ ⎦∇Δ −∇Δ −⎢ ⎥⎢ ⎥ ⎣ ⎦⎣ ⎦
(3.41)
O sistema anterior pode ser resolvido recorrendo aos métodos usuais de mínimos
quadrados pesados:
( ) 11 1T Tur A Q A A Q B
−− −Δ = (3.42)
em que Q é a matriz de co-variância das observações.
A posição do utilizador é então calculada recorrendo a (3.31), somando a correcção
(3.42) à estimativa da posição do utilizador ur .
3.3.2 Duplas Diferenças via Pseudo-Distância e Fase
O posicionamento relativo de grande precisão é baseado em medidas da fase da
portadora bastante exactas. A fase da portadora, no entanto, não pode ser utilizada sozinha
uma vez que é necessário calcular a ambiguidade inteira, referida na Secção 2.5. Uma
possível abordagem será usar a pseudo-distância e a fase em conjunto [16].
3.3. Duplas Diferenças
29
Tal como para a pseudo-distância, define-se duplas diferenças da fase da portadora:
( ) ( ) ( ) ( ) ( )kl k l kl klij ij ij i jt t t t tφ φ φ φ φ∇Δ =∇ −∇ = Δ −Δ (3.43)
Tendo em conta a definição da medida da fase da portadora redefine-se (3.43):
( ) *kl kl kl kl klij ij ij ij ijt I T Nφ ρ λ∇Δ =∇Δ −∇Δ +∇Δ + ∇Δ (3.44)
Considerando que se trabalha com baselines pequenas os atrasos ionosféricos e
troposféricos são desprezáveis [16]. Assim (3.44) pode ser escrita de uma forma simplificada:
( ) *kl kl klij ij ijt Nφ ρ λ∇Δ =∇Δ + ∇Δ (3.45)
O resultado obtido para as duplas diferenças da fase da portadora (3.45) tem um efeito
semelhante ao obtido para as duplas diferenças da pseudo-distância (3.37), sendo capaz de
anular, teoricamente, todos os erros com a mesma fonte.
Recordando a expansão em série de Taylor de primeira ordem da pseudo-distância
ideal (3.38) em torno do ponto ur e usando (3.39) vem que:
( )( )
**
**
000
ukk kui u
u kkk kiui u
u
xu
yNu
z
ρρλρφ
Δ⎡ ⎤⎡ ⎤⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥= + ⋅ Δ +⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎣ ⎦⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎢ ⎥Δ⎣ ⎦
(3.46)
Num caso em que se observam 1m + satélites ( m duplas diferenças), define-se o
satélite k , com o maior ângulo de elevação, como principal, para maximizar a geometria [16],
e obtém-se o seguinte sistema:
( )( )
( )( )( )
( )
1 * 1 1
2 * 2 2
*
1 * 1 11 1
2 * 2 21
*1
0 0 0 00 0 0
0 0 0 00 0 00 0 0
00
k k kij ij i ik k kij ij i i
km km k mij ij i i
k k kij ij i ik k kij ij i i
km kmij ij
u uu u
u uu uu u
u
ρ ρρ ρ
ρ ρφ λ ρ λφ λ ρ
φ λ ρ
⎡ ⎤∇Δ −∇Δ −⎢ ⎥∇Δ −∇Δ −⎢ ⎥⎢ ⎥⎢ ⎥∇Δ −∇Δ −⎢ ⎥ =⎢ ⎥∇Δ −∇Δ −⎢ ⎥∇Δ −∇Δ −⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥∇Δ −∇Δ⎣ ⎦
1
2
10 0
kijkij
kmijk m
i i
xyzNN
Nu λ
⎡ ⎤Δ⎡ ⎤⎢ ⎥
⎢ ⎥⎢ ⎥ Δ⎢ ⎥⎢ ⎥⎢ ⎥Δ⎢ ⎥⎢ ⎥⎢ ⎥ ∇Δ⎢ ⎥⎢ ⎥⎢ ⎥∇Δ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ ∇Δ⎣ ⎦⎢ ⎥−⎣ ⎦
(3.47)
Neste caso não é possível resolver o sistema anterior pelas técnicas usuais de mínimos
quadrados pesados, uma vez que a solução da ambiguidade da fase tem de ser inteira. Uma
primeira abordagem possível consiste em calcular a ambiguidade inteira como uma solução
em vírgula flutuante e posteriormente arredondar para o inteiro mais próximo. Este tipo de
solução não é a mais correcta, uma vez que nem sempre a melhor solução inteira que
minimiza um determinado funcional de custo é o arredondamento directo da solução em
vírgula flutuante, sendo então necessário recorrer a algoritmos de estimação inteira.
31
Capítulo 4 Método LAMBDA
Nos problemas de posicionamento recorrendo à fase da portadora é possível obter-se
resultados de alta precisão, no entanto é necessário resolver o problema da estimativa da
ambiguidade inteira da fase. Para lidar com esta questão foram desenvolvidos vários métodos,
dos quais se destacam [3]: LSAST [4], FARA [5], método de decomposição modificada de
Cholesky [6], LAMBDA [7], método de espaço nulo [8], FASF [9] e OMEGA [10]
(Tabela 4.1).
Tabela 4.1 – Características dos métodos de resolução de ambiguidades.
Algoritmo Autor principal
Procura da ambiguidade
Processamento dos dados
Espaço de procura
LSAST Hatch Independente Uma época Nenhum
FARA Frei e Beutler Todas Várias épocas Condicional
Decomposição modificada de Cholesky Euler and Landau Todas Várias épocas Nenhum
LAMBDA Teunissen Todas Várias épocas Transformação/ Condicional
Espaço Nulo Martin-Neira Independente Uma época Transformação
FASF Chen e Lachapelle Todas Várias épocas Condicional
OMEGA Kim e Langley Independente Uma época/Várias épocas
Transformação/ Condicional
O conceito de melhor algoritmo para resolução de ambiguidades inteiras é discutível.
Um princípio possível seria considerar qual o algoritmo que oferece uma maior probabilidade
de encontrar o valor inteiro correcto para a ambiguidade. No entanto não existem trabalhos de
comparação entre os vários métodos apresentados na Tabela 4.1.
Neste Capítulo detalha-se o método LAMBDA (Teunissen, 1993) [7], um algoritmo
capaz de resolver problemas gerais de estimação inteira. O método LAMBDA foi o primeiro,
de uma classe de algoritmos baseados na teoria de mínimos quadrados inteiros [7], que
melhora a eficiência computacional permitindo resolver ambiguidades da portadora da fase
em GPS em tempo real. De modo a melhorar a eficiência, este método realiza ainda
transformações num espaço de procura condicionado.
Capítulo 4. Método LAMBDA
32
4.1 Modelo das Observações
Assume-se que se têm disponíveis 1m + observações da pseudo-distância e da fase da
portadora num dado instante. Recorrendo a (3.47) é possível construir um modelo matemático
linearizado das observações das duplas diferenças para uma baseline pequena:
( )( )
( )( )( )
( )
1 * 1 1
2 * 2 2
*
1 * 1 11
2 * 2 21
*1
00
000
0
k k kij ij i ik k kij ij i i
km km k mij ij i i
k k kij ij i ik k kij ij i i
km km k mij ij i i
y
u uu u
u uu uu u
u u
ρ ρρ ρ
ρ ρφ λ ρφ λ ρ
φ λ ρ
⎡ ⎤∇Δ −∇Δ ⎡ −⎢ ⎥ ⎢∇Δ −∇Δ −⎢ ⎥ ⎢⎢ ⎥ ⎢⎢ ⎥ ⎢∇Δ −∇Δ −⎢ ⎥ ⎢=⎢ ⎥∇Δ −∇Δ −⎢ ⎥∇Δ −∇Δ −⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥∇Δ −∇Δ −⎣⎣ ⎦
1
2
1
1
0 0 00 0
0 0 00 0
0 0
0 0
u
kij
u kij
u
u kmijr
a
AB
Nx
Ny ez
Nλ
λ
Δ
⎤ ⎡ ⎤⎥ ⎢ ⎥⎥ ⎢ ⎥⎥ ⎢ ⎥ ⎡ ⎤∇ΔΔ⎡ ⎤⎥ ⎢ ⎥ ⎢ ⎥∇Δ⎢ ⎥⎥ ⎢ ⎥ ⎢ ⎥Δ + +⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ Δ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ∇Δ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎣ ⎦
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦⎦
(4.1)
em que:
y é o vector das observações menos as duplas diferenças calculadas; 2my∈
urΔ é o vector que contém os incrementos à posição do utilizador; 3urΔ ∈
a é o vector das m ambiguidades das duplas diferenças; ma∈
B é uma matriz 2 3m× que relaciona as observações com a baseline
A é uma matriz 2m m× que relaciona as observações com as ambiguidades
e é o ruído das medições e efeitos não modulados
Assume-se que a matriz [ ]B A com dimensão ( )2 3m m× + tem característica
completa igual a 3 m+ , ou seja, realizaram-se uma série de observações, suficientes para
determinar os incrementos à posição do utilizador e a ambiguidade inteira da fase.
Na estimativa das coordenadas da posição do utilizador e da ambiguidade da fase das
duplas diferenças utiliza-se o princípio dos mínimos quadrados, com a restrição de a
ambiguidade ter de tomar valores inteiros:
1
2 3
,min com e
yu
mu uQr a
y B r Aa r a−Δ
− Δ − Δ ∈ ∈ (4.2)
em que yQ é a matriz de co-variância das observações y , simétrica e positiva definida.
A estimativa dos parâmetros da minimização (4.2) é realizada em três passos: cálculo
da solução em vírgula flutuante usando mínimos quadrados, estimativa da ambiguidade
inteira da solução obtida e cálculo da solução inteira.
4.2. Solução em Vírgula Flutuante
33
4.2 Solução em Vírgula Flutuante
A minimização expressa em (4.2) é resolvida através de mínimos quadrados pesados
(Anexo D.2) pressupondo ma∈ , obtendo-se valores em vírgula flutuante para a estimativa
da posição do utilizador e da ambiguidade das duplas diferenças. Geralmente o problema de
mínimos quadrados com característica máxima é resolvido via equações normais [21]. O
sistema de equações normais relativo ao problema (4.2) é definido por:
1 1 1
1 1 1
T T Ty y yu
T T Ty y y
xN r
B Q B B Q A B Q yrA Q B A Q A A Q ya
− − −
− − −
⎡ ⎤ ⎡ ⎤Δ⎡ ⎤=⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ ⎥ ⎢ ⎥⎣ ⎦⎣ ⎦ ⎣ ⎦ (4.3)
O sistema Nx r= é resolvido recorrendo à decomposição de Cholesky (Anexo D.3) da
matriz N . As estimativas em vírgula flutuante das incógnitas do sistema (4.3) e a matriz de
co-variância associada são definidas, respectivamente, por:
ˆ
ˆˆ
urxaΔ⎡ ⎤
= ⎢ ⎥⎣ ⎦
(4.4)
ˆ ˆ ˆ
ˆ ˆ ˆ
ˆ u u
u
r r a
a r a
Q QQ
Q QΔ Δ
Δ
⎡ ⎤= ⎢ ⎥⎢ ⎥⎣ ⎦
(4.5)
Por outro lado, a estimativa da ambiguidade inteira utiliza a inversa da matriz de co-
variância aQ que pode ser obtida através do elemento aC , proveniente de factor de Cholesky
C (Anexo D.3):
0
u
u
r
a r a
CC
C CΔ
Δ
⎡ ⎤= ⎢ ⎥⎢ ⎥⎣ ⎦
(4.6)
em que aC é uma matriz triangular inferior de dimensão m .
Recorrendo a (4.6) obtém-se a inversa da matriz de co-variância das ambiguidades:
1ˆ
Ta a aQ C C− = (4.7)
Como será visto na Secção 4.5, no cálculo da solução final dos incrementos da posição
do utilizador é necessária a matriz ˆ ˆur aQΔ . Esta também pode ser obtida através do factor de
Cholesky C :
1ˆ ˆu u u
T T Tr a r a r a aQ C C C C− − −
Δ Δ Δ= − (4.8)
Capítulo 4. Método LAMBDA
34
4.3 Estimativa da Ambiguidade Inteira
A estimativa da ambiguidade inteira é descrita pelo funcional:
1
2ˆmin coma
mQa
a a a a−= − ∈ (4.9)
A minimização (4.9) contém a estimativa inteira por mínimos quadrados do vector de
ambiguidades ( )a . É nesta etapa concreta que se utiliza o método LAMBDA que, por sua
vez, está dividido em dois pontos principais:
1. Descorrelação das ambiguidades, que consiste na reparametrização das
ambiguidades originais a para as novas ambiguidades recorrendo à
transformação-Z (Anexo E.1)
2. Estimativa das ambiguidades inteiras através do processo de procura (Secção 4.4)
Na determinação da solução inteira para as ambiguidades da fase, a solução de (4.9) é
obtida por um processo de procura, em detrimento dos métodos algébricos, que não entram
em conta com a restrição inteira.
A procura da solução em m é dispendiosa em termos computacionais. De modo a
tornar o método mais eficiente, a procura é confinada a um espaço em torno de a [22]:
( ) ( )1 2ˆˆ ˆTaa a Q a a χ−− − ≤ (4.10)
O espaço de procura definido em (4.10) está centrado em a , a sua forma e orientação
são governadas por aQ e a sua dimensão por 2χ . A escolha do parâmetro 2χ (Anexo E.2) é
um compromisso entre a eficiência e a descoberta da melhor solução.
A matriz de co-variância aQ é não diagonal, implicando ambiguidades fortemente
correlacionadas [16]. A procura pode ser ainda mais eficiente, tornando as ambiguidades
independentes, através do descorrelacionamento da matriz aQ recorrendo à transformação-Z
(Anexo E.1), remodelando-a de acordo com:
ˆˆT
z aQ Z Q Z= (4.11)
em que Z é a matriz de transformação do processo de descorrelação.
Devido à natureza inteira da resolução da ambiguidade da fase, uma descorrelação
completa de aQ não é possível, i.e., não se obtém uma matriz de co-variância diagonal mas
sim uma matriz quase diagonal. Por matriz quase diagonal entende-se uma matriz cujos
elementos não diagonais têm um valor próximo de zero.
4.4. Processo de Procura
35
Concluído o processo de descorrelação, a minimização (4.9) usando as ambiguidades
transformadas é equivalente a:
1
2ˆmin comz
mQz
z z z z−= − ∈ (4.12)
em que Tz Z a= e ˆˆ Tz Z a= .
Tal como as ambiguidades, o espaço de procura também é alterado. Deste modo, em
vez de (4.10), obtêm-se o novo espaço de procura:
( ) ( )1 2ˆˆ ˆTzz z Q z z χ−− − ≤ (4.13)
em que:
ˆT
zQ L DL= (4.14)
onde L é uma matriz inferior e D uma matriz diagonal.
Determinadas as novas ambiguidades ( z ) e respectiva matriz de co-variância ( zQ ) o
processo de procura das melhores ambiguidades inteiras pode ser iniciado.
4.4 Processo de Procura
A estimativa da ambiguidade inteira é baseada num processo de procura, utilizando os
limites individuais das ambiguidades que resultam de um ajuste sequencial por mínimos
quadrados [25].
Uma vez terminado o processo de descorrelação, inicia-se a procura num subespaço de m que contém a solução inteira. Esta procura é utilizada para determinar a melhor solução
do problema de mínimos quadrados inteiros (4.12). Recorrendo a (4.13) define-se o funcional
de custo:
( ) ( ) ( )1 2ˆˆ ˆTzf z z z Q z z χ−= − − ≤ (4.15)
Definindo:
( ) ( )ˆ ˆT Tz z L z z L z z z z−= − − ⇔ − = − (4.16)
ou equivalentemente, em termos de cada elemento do vector z [24]:
( )1
ˆ
ˆ 1, 2, ,1
i im
i i j j jij i
z z i m
z z z z l i m m= +
= =⎧⎪⎨ = + − = − −⎪⎩
∑ … (4.17)
em que jil representa o elemento da linha j e coluna i da matriz TL− .
Capítulo 4. Método LAMBDA
36
Substituindo (4.16) em (4.15) e utilizando a decomposição (4.14) vem:
( ) ( ) ( )1 2Tf z z z D z z χ−= − − ≤ (4.18)
ou de modo equivalente:
( ) ( ) ( ) ( )2 2 21 1 2 2 2
1 2
m m
m
z z z z z zf z
d d dχ
− − −= + + + ≤ (4.19)
É de salientar que qualquer z que satisfaça (4.19) também satisfaz os seguintes
limites individuais:
( ) ( )
( ) ( )
1 12 2
1 12 2
1 12 2
1 12 2
1 12 2
2 2
2 2
1 1
2 2
2 21 1 1 1 1
2 2
m m m m m
m mj j j j
i i i i ij i j ij j
m mj j j j
j jj j
z d z z d
z z z zz d z z d
d d
z z z zz d z z d
d d
χ χ
χ χ
χ χ
= + = +
= =
− ≤ ≤ +
⎡ ⎤ ⎡ ⎤− −⎢ ⎥ ⎢ ⎥− − ≤ ≤ + −⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
⎡ ⎤ ⎡ ⎤− −⎢ ⎥ ⎢ ⎥− − ≤ ≤ + −⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
∑ ∑
∑ ∑
(4.20)
Baseado nos limites definidos em (4.20) implementa-se um processo de procura. Os
limites superiores e inferiores de iz definem um intervalo designado por nível i . Os inteiros
neste nível são procurados do menor para o maior e cada inteiro válido é testado
individualmente, um de cada vez. Determinado iz no nível i , procede-se para o nível 1i −
para calcular 1iz − . Caso não se encontre um inteiro válido no nível i volta-se para o nível
anterior 1i + e determina-se o próximo inteiro válido 1iz + , retornando novamente para o nível
i . Quando se encontrar 1z no nível 1, obtém-se um vector completo de inteiros z . Após a
obtenção do vector z inicia-se uma nova procura. O novo processo é iniciado no nível 1 para
procurar todos os outros inteiros válidos, do menor para o maior. A procura só termina
quando todos os inteiros válidos encontrados são processados.
Depois de resolvido o problema (4.12) é necessário realizar uma transformação
inversa de forma a se obter a solução para o problema (4.9). Esta é dada por:
Ta Z z−= (4.21)
É de salientar que (4.21) transforma um vector de inteiros noutro vector de inteiros,
um dos pré-requisitos na obtenção da matriz Z , obtendo-se assim um vector de ambiguidades
inteiras para o problema (4.9), com era pretendido.
4.5. Processo de Selecção e Solução Inteira
37
4.5 Processo de Selecção e Solução Inteira
Após a determinação dos q vectores de ambiguidades é necessário escolher qual
corresponde ao melhor conjunto de ambiguidades inteiras que resolvem (4.1). O método
utilizado para este fim baseia-se na análise do resíduo [26]:
uV B r Aa y= Δ + − (4.22)
Para cada um dos q vectores possíveis, o resíduo (4.22) toma valores diferentes. O
vector das ambiguidades a escolhido é aquele que minimiza 1TyV Q V− . De modo a confirmar a
validade da solução, efectua-se um teste de confiança (quanto maior, maior a confiança na
solução) [26]:
( )( )
1
1
Ty II
Ty I
V Q VR
V Q V
−
−= (4.23)
em que os índices I e II definem o menor e segundo menor valores de 1TyV Q V− ,
respectivamente.
A solução final, depois de escolhido o melhor vector de ambiguidades a através de
(4.23), para os incrementos à posição estimada do utilizador é obtida explicitamente
corrigindo a solução em vírgula flutuante (4.4) [23]:
( )1ˆ ˆ ˆˆ ˆuu u r a ar r Q Q a a−
ΔΔ = Δ − − (4.24)
Um outro método possível para calcular os incrementos à posição do utilizador
estimada vem directamente do sistema de equações normais (4.3) [23]:
( )1u u uu r r r ar N r N a−
Δ Δ ΔΔ = − (4.25)
em que 1u
Tr yN B Q B−
Δ = , 1u
Tr yr B Q y−
Δ = e 1u
Tr a yN B Q A−
Δ = .
39
Capítulo 5 Resultados
Um dos temas relativos aos algoritmos de posicionamento em GPS é a precisão e a
exactidão dos seus resultados. A determinação destes parâmetros é uma tarefa que envolve
várias condicionantes e existem vários métodos estatísticos para as descrever [27]. Também
introduz desde logo um conjunto de questões como: a quantidade de pontos a ser recolhida ao
longo da experiência, a quantidade de satélites e a respectiva geometria, a estrutura do
ambiente envolvente (efeitos multi-percurso) ou as condições atmosféricas.
Como em qualquer instrumento de medição, a única maneira para medir a precisão e a
exactidão é através da comparação com uma medida padrão. É neste sentido que se adoptou a
solução fornecida pelo pacote Ashtech Solutions [28] (pós-processamento) como referência.
Analisa-se também a solução comercial fornecida pelo receptor do utilizador (tempo real).
Esta funciona como um segundo termo de comparação para os algoritmos de posicionamento
absoluto.
De modo a melhor compreender os resultados, as posições recolhidas na experiência
foram transformadas para coordenadas locais, num espaço ortonormado de três dimensões.
Este espaço tem como origem um ponto na superfície da Terra (dada pelo Ashtech Solutions),
o plano xoy é um plano tangente ao geóide da Terra, com eixo xx a ter a direcção do Norte
cardeal, o yy do Este cardeal e o zz perpendicular ao geóide da Terra (Anexo A).
Os vários algoritmos testados para a estimação da posição estão detalhados no
Capítulo 3 e a documentação da sua implementação no Anexo I. Os resultados de cada teste
podem ser comparados, pois são todos relativos ao mesmo conjunto de dados. Nos algoritmos
que recorrem a mais que um receptor (DGPS e duplas diferenças), existe a possibilidade do
número de satélites visíveis ser menor, em certos instantes, do que nos algoritmos de
posicionamento absoluto. No entanto, como se lidou com baselines pequenas e testes
relativamente longos é possível desprezar este facto.
O primeiro ensaio consistiu em deixar o receptor do utilizador estacionário, durante
algumas horas, para analisar a precisão e exactidão dos algoritmos implementados.
O segundo teste consistiu na realização de uma trajectória fechada, para testar se as
coordenadas iniciais são idênticas às coordenadas finais.
Capítulo 5. Resultados
40
No último teste, analisa-se o comportamento dos algoritmos num ambiente não
controlado, com o intuito de verificar os seus comportamentos numa missão real.
5.1 Testes de Precisão e Exactidão
A precisão e a exactidão são regularmente usadas para avaliar o posicionamento em
GPS. É necessário fazer a distinção entre precisão e exactidão: a precisão é o grau
proximidade entre os pontos estimados e a sua média, a exactidão é o grau de proximidade
entre um ponto estimado e o seu valor real (Figura 5.1).
Figura 5.1 – Precisão e exactidão.
De modo a seguir os padrões dos catálogos de receptores fornecidos pela indústria,
usam-se como critérios de precisão o CEP (Circular Error Probable) e a confiança a 95%, e
como critério de exactidão a norma das médias.
O CEP é uma medida estatística de precisão, que é definida como o menor raio de um
círculo que engloba 50% dos pontos estimados. O conceito de confiança de 95% é
semelhante, no entanto o círculo correspondente engloba 95% dos pontos. Finalmente, a
norma das médias é a distância euclidiana entre a média das posições estimadas e a média das
posições fornecidas pelo pacote Ashtech Solutions.
De acordo com as coordenadas locais definidas anteriormente, é possível então definir
medidas de precisão horizontal (plano xoy ), vertical (eixo zz ) e esférica (espaço xoyoz ).
Na Tabela 5.1 mostram-se os pormenores sobre o teste para avaliar a precisão e
exactidão dos vários algoritmos. As Figuras 5.2, 5.3, 5.4 e 5.5 exibem a precisão e exactidão
para os algoritmos de posicionamento absoluto, GPS diferencial, de duplas diferenças e
Ashtech Solutions, respectivamente. A Tabela 5.2 mostra as várias medidas de precisão e a
Tabela 5.3 mostra a exactidão, para os vários algoritmos.
Tabela 5.1 – Detalhes do teste.
5.1. Testes de Precisão e Exactidão
41
Data e Local 6 de Outubro de 2006 na Alameda do Instituto Superior Técnico de Lisboa
Receptor do utilizador AC12 (Anexo G.1)
Receptor da estação base GG14 (Anexo G.3)
Taxa de actualização máxima 1.0 segundos
Teste Receptor estacionário durante 2344 segundos (40 minutos).
Figura 5.2 – Precisão e exactidão: posicionamento absoluto.
Capítulo 5. Resultados
42
Figura 5.3 – Precisão e exactidão: DGPS.
Figura 5.4 – Precisão e exactidão: duplas diferenças.
Figura 5.5 – Precisão e exactidão: Ashtech Solutions.
5.2. Trajectória Fechada
43
Tabela 5.2 – Precisão dos algoritmos: 95% de confiança e CEP.
Precisão em metros
Horizontal Vertical Esférica Algoritmos
95% CEP (50%) 95% CEP (50%) 95% CEP (50%)
Iterativo 7.5085 3.2991 15.0170 4.9486 15.8382 6.7302
Bancroft 7.8200 3.4039 15.6400 5.2133 16.4953 7.0607
CSC 6.8576 3.0542 14.2544 4.8163 15.0334 6.3353
DGPS p.-distância 7.6109 3.2991 14.4488 4.7169 15.6250 6.4420
DGPS posição 7.6109 3.2991 14.4488 4.7169 15.6250 6.4420
Duplas diferenças 6.4217 2.7461 13.5871 4.6341 14.0783 5.9018
LAMBDA 0.2007 0.0985 0.2008 0.0835 0.2607 0.1431
Receptor 1.7614 0.6710 2.6367 1.1429 2.8563 1.4925
Ashtech Solutions 0.0095 0.0035 0.0147 0.0046 0.0169 0.0069
Tabela 5.3 – Exactidão dos algoritmos: norma das médias.
Exactidão em metros Algoritmos
Horizontal Vertical Esférica
Iterativo 4.7380 2.2507 5.2454
Bancroft 4.5045 1.7928 4.8482
CSC 4.7355 2.2450 5.2407
DGPS p.-distância 1.0736 1.0189 1.4801
DGPS posição 1.0739 1.0192 1.4805
Duplas diferenças 0.7322 1.8575 1.9966
LAMBDA 1.2469 0.3400 1.2865
Receptor 1.5001 2.2663 2.7156
5.2 Trajectória Fechada
Na Tabela 5.4 mostram-se os pormenores sobre o teste relativo a uma trajectória
rectangular fechada. As Figuras 5.6, 5.7 e 5.8 exibem as trajectórias criadas pelos algoritmos
de posicionamento absoluto, GPS diferencial e de duplas diferenças, respectivamente, tendo
sempre como referência a solução do pacote Ashtech Solutions.
A trajectória calculada pelo método LAMBDA, na Figura 5.8, revela que em certas
situações o comportamento deste algoritmo pode ultrapassar os resultados obtidos pelo
Ashtech Solutions.
Capítulo 5. Resultados
44
Tabela 5.4 – Detalhes do teste.
Data e Local 11 de Agosto de 2006 na Alameda do Instituto Superior Técnico de Lisboa
Receptor do utilizador AC12 (Anexo G.1)
Receptor da estação base GG14 (Anexo G.3)
Taxa de actualização máxima 1.0 segundos
Teste Realizou-se uma trajectória fechada ao longo de um rectângulo com 28.6 metros (Norte) por 17.5 metros (Este).
Figura 5.6 – Trajectória fechada: posicionamento absoluto.
5.3. Trajectória Livre
45
Figura 5.7 – Trajectória fechada: DGPS.
Figura 5.8 – Trajectória fechada: duplas diferenças.
5.3 Trajectória Livre
Na Tabela 5.5 detalham-se os pormenores sobre o teste relativo a uma trajectória livre
em campo aberto, num ambiente não controlado. A Figura 5.9 mostra o aspecto da trajectória
completa realizada e define o sistema de coordenadas usado nas restantes Figuras.
Nesta Secção apenas vai ser apenas analisado o método LAMBDA, pois pela
observação das Tabelas 5.2 e 5.3 verifica-se que este apresenta melhores resultados.
Na Figura 5.10 observam-se as posições de chegada e saída, e constata-se a
possibilidade da a ambiguidade inicial ter sido mal resolvida pelo método LAMBDA.
Capítulo 5. Resultados
46
A Figura 5.11 mostra duas descontinuidades na trajectória do Ashtech Solutions (em
pormenor na Figura 5.12). Inicialmente, a trajectória do Ashtech Solutions afasta-se da
trajectória calculada pelo método LAMBDA e, posteriormente, volta a aproximar-se. Este
facto pode indiciar que a solução proposta para este troço pelo método LAMBDA seja a mais
correcta.
Na Figura 5.13 observam-se dois troços da trajectória completa, que evidenciam que
os ruídos presentes no método LAMBDA e na solução Ashtech Solutions são semelhantes.
Ainda que a exactidão do método LAMBDA varie ao longo do teste realizado.
Tabela 5.5 – Detalhes do teste.
Data e Local 23 de Junho de 2006 ao largo do cabo de Sines
Receptor do utilizador GG24 (Anexo G.2)
Receptor da estação base GG24 (Anexo G.2)
Taxa de actualização máxima 0.4 segundos
Teste Receptor colocado num barco de reconhecimento do fundo mar do pontão de Sines.
Figura 5.9 – Trajectória completa.
5.3. Trajectória Livre
47
Figura 5.10 – Partida e chegada da missão.
Figura 5.11 – Descontinuidades na trajectória do Ashtech Solutions.
Figura 5.12 – Descontinuidades: pormenores.
Capítulo 5. Resultados
48
Figura 5.13 – Pormenores da trajectória.
49
Capítulo 6 Conclusões
Pretendeu-se com o presente trabalho a análise, o desenvolvimento e a validação de
técnicas avançadas de posicionamento em GPS. O objectivo prático era desenvolver
algoritmos com precisão e exactidão semelhante às soluções disponibilizadas comercialmente,
em especial a do pacote Ashtech Solutions [28].
Os algoritmos de posicionamento absoluto, Bancroft e iterativo, têm resultados
semelhantes, pois são simplesmente dois métodos diferentes para resolver a mesma equação
de posicionamento. Com a introdução do CSC consegue-se melhorar a precisão e exactidão.
Os algoritmos de GPS diferencial e de duplas diferenças apresentam resultados de
qualidade superior aos algoritmos de posicionamento absoluto, pois recorrem a uma estação-
base para diminuir as influências das fontes de erro.
O DGPS em posição e o em pseudo-distância apresentam resultados semelhantes, uma
vez que o seu princípio para a diminuição da influência de erros é idêntico.
O algoritmo de duplas diferenças via pseudo-distância apresenta resultados melhores
que os algoritmos de DGPS, pois diminui o erro proveniente do relógio do utilizador.
O algoritmo de duplas diferenças via pseudo-distância e fase, recorrendo ao método
LAMBDA, é o algoritmo que apresenta melhores resultados. O facto de resolver a
ambiguidade inteira da fase permite-lhe uma grande precisão. Os resultados obtidos, quer a
nível de exactidão, precisão ou perturbações da trajectória, são próximas da solução fornecida
pelo Ashtech Solutions.
O método LAMBDA está limitado à correcta quantificação das variâncias das
medições da pseudo-distância e da fase. O desconhecimento destes valores pode impedir a
correcta resolução das ambiguidades. Por outro lado, o número de observações acumuladas
para resolver a ambiguidade é um factor determinante. Uma alteração deste valor para o
mesmo conjunto de dados, pode levar ao cálculo de uma ambiguidade diferente. Todos estes
factores influenciam a exactidão do método.
Em todos os algoritmos analisados a precisão vertical é maior que a precisão
horizontal, por limitações próprias do sistema GPS e não dos métodos.
Capítulo 6. Conclusões
50
Em resumo, o uso da fase na estimação da posição em GPS é essencial para obter
precisão e exactidão elevadas. No entanto, a complexidade associada à resolução da
ambiguidade da fase pode levar a soluções erróneas.
Num trabalho futuro, seria interessante analisar métodos capazes de resolver a
ambiguidade da fase num só receptor ou com um único conjunto de observações [10]. Outra
área interessante de estudo, é investigação de mecanismos para lidar com cycle-slips, como as
triplas diferenças [16]. A aplicação de filtros e smoothers a variáveis de interesse do sistema
GPS pode melhorar a precisão e exactidão do posicionamento (no Anexo F analisa-se uma
simples aplicação do filtro Kalman à trajectória de um utilizador).
51
Anexo A Coordenadas ECEF
Como a Terra está em constante rotação, para se conseguir referenciar a posição do
satélite a um determinado ponto na superfície terrestre, a sua rotação tem de ser levada em
conta. A solução natural consiste em introduzir um esquema de transformação de coordenadas
do sistema.
Neste Anexo é também apresentado um algoritmo para determinar as coordenadas
ECEF (Earth Centered Earth Fixed) do satélite através dos dados provenientes das
efemérides. O referencial ECEF é um referencial cartesiano fixo, com coordenadas
tridimensionais XYZ , com respeito à Terra e acompanha a sua rotação. A sua origem
corresponde ao centro de massa gravítico, o eixo zz cruza o Pólo Norte, plano xoy define o
plano equatorial e o eixo xx cruza o meridiano de Greenwich.
A.1 Conversão ECEF para LLH
A Terra é um planeta aproximadamente esférico, apresentando no entanto alguns
desvios relativamente à forma esférica, bem como irregularidades desigualmente distribuídas
na sua superfície.
A forma da Terra é definida com base no campo gravítico terrestre. A sua superfície,
abstraindo das ondulações do terreno, pode ser definida pela superfície do nível médio das
águas do mar, suposta prolongada debaixo dos continentes. Esta superfície de nível, chamada
geóide, é uma superfície mal conhecida, não definida matematicamente, cujo estudo é do
âmbito da Geodesia.
Dada a complexidade do geóide é usual utilizar como superfície de referência um
elipsóide de revolução. Um elipsóide de revolução é o sólido gerado pela rotação de uma
semi-elipse em torno de um dos seus eixos. Existem várias referências para este elipsóide, a
usada pelo sistema GPS denomina-se de WGS 84 (World Geodetic System 1984) [30].
O algoritmo fornecido pelo Eng. Luís Sebastião, implementado de acordo com [31],
permite transformar as coordenadas ECEF para um sistema de coordenadas geodésicas sobre
Anexo A. Coordenadas ECEF
52
o elipsóide WGS 84. As coordenadas geodésicas são compostas por latitude, longitude e
altitude.
A latitude ϕ de um ponto é o ângulo formado pela normal ao elipsóide nesse ponto e
pelo plano do equador. Conta-se de -90° a +90° a partir do equador, negativamente no
hemisfério Sul e positivamente no hemisfério Norte.
A longitude λ é o ângulo diedro formado pelo plano do meridiano de um ponto como
plano do meridiano de referência e conta-se de -180° a +180°, negativamente para Oeste e
positivamente para Este. Por acordo internacional adoptou-se para meridiano de referência o
meridiano do Observatório de Greenwich em Inglaterra.
A altitude de um ponto é a distância mínima do ponto à superfície do elipsóide.
Contam-se valores positivos se o ponto for exterior ao elipsóide e negativos se for interior.
Figura A.1 – Representação das coordenadas ECEF e geodésicas.
A.2 Coordenadas ECEF do Satélite
Através de uma transformação de coordenadas, um ponto de referência pode ser
deslocado para o sistema de coordenadas desejado. Na Figura A.2 está representada a órbita
de um satélite, o equador, o ângulo ω entre o perigeu e o nó ascendente, o ângulo i entre o
plano da órbita do satélite e o equador e também está representado o ângulo Ω entre o nó
ascendente e o equinócio de vernal.
A.2. Coordenadas ECEF do Satélite
53
Figura A.2 – Equador e órbita do satellite.
Pretende-se descobrir, tendo em conta os referenciais definidos na Figura A.2, uma
mudança de coordenadas que transforme o referencial 1 no referencial 4, i.e., que transforme
o referencial da órbita do satélite no referencial da Terra. Esta transformação é dada por [14]:
( ) ( ) ( ) ( ) ( )( ) ( ) ( ) ( ) ( )
( ) ( )
4
4
4
cos cos sin cos sinsin cos cos cos sin
sin sin
er er
er er
x r v r i vy r v r i vz r i v
ω ωω ω
ω
Ω + − Ω +⎡ ⎤⎡ ⎤⎢ ⎥⎢ ⎥ = Ω + + Ω +⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ +⎣ ⎦ ⎣ ⎦
(A.1)
em que r é a distância euclidiana do satélite ao centro da Terra, v é a anomalia verdadeira e
er e ertΩ = Ω−Ω é o ângulo entre o nó ascendente e o meridiano de Greenwich, onde eΩ é a
velocidade de rotação da Terra e ert é tal que quando 0ert = o meridiano de Greenwich está
alinhado com o equinócio de vernal.
A transformação de coordenadas definida em (A.1) permite referenciar a posição do
satélite em ECEF. Para se determinar todos os termos necessários para efectuar a
transformação (A.1) é necessário recorrer às efemérides obtidas através do processamento do
sinal GPS que é recebido pelo receptor. A Tabela A.1 contém os dados das efemérides
provenientes do sinal necessários para determinar as coordenadas do satélite em ECEF.
Anexo A. Coordenadas ECEF
54
Tabela A.1 – Dados das efemérides.
Variável Unidades Descrição
0M Semicírculos Anomalia média – fracção de um período orbital expressa como um ângulo – para o tempo de referência
nΔ Semicírculos/segundo Termo de correcção do movimento médio – velocidade de progresso do satélite em torno da órbita
e Adimensional Excentricidade – quantifica o desvio entre a órbita elíptica e a circular
a metros Raiz quadrada do semi-eixo maior
0Ω Semicírculos Ascensão recta no plano da órbita – ângulo formado pelo meridiano do ponto vernal e a órbita do satélite
Ω Semicírculos/segundo Velocidade de ascensão recta
0i Semicírculos Ângulo de inclinação
ω Semicírculos Argumento do perigeu – ângulo desde o nó ascendente até ao ponto do perigeu
idot Semicírculos/segundo Velocidade de inclinação
ucC Radianos Termo de correcção harmónica da amplitude do co-seno do argumento da latitude
usC Radianos Termo de correcção harmónica da amplitude do seno do argumento da latitude
rcC Metros Termo de correcção harmónica da amplitude do co-seno do raio da órbita
rsC Metros Termo de correcção harmónica da amplitude do seno do raio da órbita
icC Radianos Termo de correcção harmónica da amplitude do co-seno do ângulo de inclinação
isC Radianos Termo de correcção harmónica da amplitude do seno do ângulo de inclinação
oet Segundos Tempo de referência da efeméride
Estes valores alimentam um algoritmo, descrito na Tabela A.2, que permite calcular a
posição de um satélite num referencial ECEF para um dado instante. Para se obter uma
informação mais detalhada sobre o algoritmo consultar [14].
A.2. Coordenadas ECEF do Satélite
55
Tabela A.2 – Determinação das coordenadas ECEF do satélite.
Etapas Descrição
14 3 23.986005 10 m sμ = × Parâmetro universal gravitacional da Terra 57.292115167 10 /e rad s−Ω = × Velocidade de rotação da Terra
( )2a a= Semi-eixo maior
30 /n a rad sμ= Movimento médio computado
k oet t t= − Tempo de referência da efeméride
0n n n= + Δ Movimento médio corrigido
0 kM M nt= + Anomalia média sin( )k k kE M e E= + Equação de Kepler para anomalia excêntrica
11 2
cos( )cos
1 cos( )k
k
E ev
e E− ⎛ ⎞−
= ⎜ ⎟−⎝ ⎠ Anomalia real do co-seno
21
21 sin( )
sin1 cos( )
k
k
e Ev
e E−⎛ ⎞−⎜ ⎟=⎜ ⎟−⎝ ⎠
Anomalia real do seno
( )1 2sgnkv v v= Anomalia real
k kfφ ω= + Argumento da latitude cos(2 ) sin(2 )k uc k us kC Cδμ φ φ= + Correcção da segunda harmónica para o argumento da latitude cos(2 ) sin(2 )k rc k rs kr C Cδ φ φ= + Correcção da segunda harmónica para o raio cos(2 ) sin(2 )k ic k is ki C Cδ φ φ= + Correcção da segunda harmónica para a inclinação
k k kμ φ δμ= + Argumento da latitude corrigido (1 cos( ))k k kr a e E rδ= − + Raio corrigido
0 ( )k k ki i i idot tδ= + + Inclinação corrigida
0 0( )k k e oet tΩ = Ω + Ω−Ω −Ω Longitude do nó ascendente corrigida ' cos( )k k kx r μ= Coordenada X no plano da órbita ' sin( )k k ky r μ= Coordenada Y no plano da órbita
' cos( ) ' cos( )sin( )k k k k k kx x y i= Ω − Ω Coordenada X em ECEF ' sin( ) ' cos( ) cos( )k k k k k ky x y i= Ω + Ω Coordenada Y em ECEF
' sin( )k k kz y i= Coordenada Z em ECEF
57
Anexo B Diluição da Precisão
A diluição da precisão (DOP - Dilution Of Precision) é uma medida usada para avaliar
a precisão da posição de um utilizador do sistema GPS. Existem várias maneiras de definir a
DOP, mas todas elas dependem da geometria dos satélites e da posição do utilizador.
Se recorrermos ao sistema linearizado das equações da pseudo-distância para quatro
satélites obtém-se [12]:
1 11 12 13
2 21 22 23
3 31 32 33
1 2 3
111
1
u
u
u
uN N N N
xyzb
α
δρ α α αδ
δρ α α αδ
δρ α α αδδ
δρ α α α
⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥=⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
(B.1)
em que:
( ) ( ) ( )
1 2 2 2u i
i
i u i u i u
x X
X x Y y Z zα −
=− + − + −
(B.2)
( ) ( ) ( )
2 2 2 2u i
i
i u i u i u
y Y
X x Y y Z zα −
=− + − + −
(B.3)
( ) ( ) ( )
3 2 2 2u i
i
i u i u i u
z Z
X x Y y Z zα −
=− + − + −
(B.4)
e uxδ , uyδ , uzδ , ubδ e iδρ são os incrementos diferenciais de ux , uy , uz , ub e iρ ,
respectivamente.
Deste modo define-se a matriz:
11 12 13 14
21 22 23 241
31 32 33 34
41 42 43 44
( )T
A A A AA A A AA A A AA A A A
α α −
⎡ ⎤⎢ ⎥⎢ ⎥=⎢ ⎥⎢ ⎥⎣ ⎦
(B.5)
em que ijA representa o elemento da matriz 1( )Tα α − na linha i e coluna j .
Anexo B. Diluição da Precisão
58
A DOP geométrica (GDOP – Geometry DOP) é definida por
11 22 33 44GDOP A A A A= + + + (B.6)
A DOP da posição (PDOP – Position DOP) é dada por:
11 22 33PDOP A A A= + + (B.7)
A DOP horizontal (HDOP – Horizontal DOP) é dada por:
11 22HDOP A A= + (B.8)
A DOP vertical (VDOD – Vertical DOP) é dada por:
33VDOP A= (B.9)
A DOP do tempo (TDOD – Time DOP) é dada por:
44TDOP A= (B.10)
Um menor valor da DOP significa uma melhor geometria dos satélites para calcular a
posição do utilizador [12]. A DOP pode ser utilizada como critério para seleccionar o melhor
conjunto de satélites de modo a obter uma posição do utilizador mais precisa.
59
Anexo C Sinal GPS
Cada satélite GPS transmite simultaneamente em duas bandas de frequência, uma a
1575.42MHz (banda 1L ) e outra a 1227.60MHz (banda 2L ), que são múltiplas de 10.23MHz,
a frequência do relógio interno. Estas duas frequências são moduladas em fase (BPSK –
Binary Phase-Shift Keying) [12] por uma sequência pseudo-aleatória e por uma mensagem de
navegação contendo a informação necessária para o cálculo da posição do satélite.
C.1 Código C/A e Código P
A portadora 1L é modulada por uma componente em fase (código C/A –
Coarse/Acquisition Code) (Figura C.1) e uma em quadratura (código P – Precision Code).
Por sua vez, a portadora 2L é modulada somente pelo código P, que não está disponível para
uso civil.
Figura C.1 – Construção do sinal GPS a partir da modulação em fase da portadora 1L .
O código C/A consiste numa sequência periódica de impulsos unitários pseudo-
aleatórios, com um período total de 1ms, a uma frequência de 1.023MHz. Este código por sua
vez codifica a mensagem de navegação que é enviada a um ritmo de 50bit/s (Figura C.2).
Mensagem de navegação
Multiplicador Multiplicador
Sinal GPS
Portadora 1
L Código C/A
Anexo C. Sinal GPS
60
Figura C.2 – Estrutura do sinal GPS a partir da modulação em fase da portadora 1L .
O código C/A foi criado com o objectivo de:
• Permitir medições simultâneas e precisas de vários satélites
• Resistir a erros de multi-percurso
• Protecção contra interferências maliciosas (jamming)
Para permitir o envio e a aquisição de informação em simultâneo usa-se CDMA (Code
Division Multiple Access), que só é possível porque os sinais de cada satélite têm correlação
cruzada nula.
Com a função de diminuir os erros causados por multi-percurso, e outro tipo de
interferências, o código C/A apresenta uma densidade espectral de potência baixa, i.e., a
potência do sinal encontra-se espalhada por uma banda de frequência relativamente grande
(2MHz).
O código P, de modo semelhante ao código C/A, baseia-se numa sequência periódica
de impulsos unitários com uma modulação em fase a uma frequência de 10.23MHz, dez vezes
superior ao código C/A. Este código não é transmitido directamente pelo satélite, sendo
modificado primeiro por um código Y, razão pela qual se denomina regularmente de código
P(Y). Devido à estrutura inerente do código, como a largura de banda e frequência, ele é mais
robusto contra interferências exteriores (como spoofing e jamming) e mais preciso que o
código C/A. Este código, tal como foi referido, não está disponível para uso civil.
1bit (20ms)
Portadora 1
L 1575.42MHz
Mensagem de navegação 50bps
Um bit em código C/A 20 períodos de código/bit
Um período do código C/A 1023 impulso/período
1 impulso (0.9775μs)
1ms
C.2. Estrutura da Mensagem de Navegação
61
C.2 Estrutura da Mensagem de Navegação
A mensagem de navegação, como foi referido anteriormente, contém parâmetros que
permitem resolver o problema de posicionamento em GPS. A informação principal contida na
mensagem consiste em:
• Almanaque dos satélites: estes dados são transmitidos por cada satélite e contém
informação pouco precisa sobre as órbitas de todos os satélites que, apesar de não
permitirem calcular a posição, podem ser guardados no receptor, sendo válidos
por vários meses. Com estes parâmetros é possível ao utilizador saber quais os
satélites visíveis num dado sítio, de modo a iniciar primeiro a procura destes
quando o aparelho GPS é ligado pela primeira vez (Anexo C.3)
• Efemérides do satélite: é uma informação semelhante à do almanaque mas muito
mais precisa e relativa apenas ao satélite que a enviou. Estes dados permitem
calcular com rigor a posição do satélite e são válidos apenas por poucas horas
• Temporização do sinal: é uma “etiqueta” imposta na mensagem que permite ao
utilizador calcular o tempo de emissão de pontos específicos do sinal GPS, e
consequentemente o tempo que o sinal demora a percorrer entre o satélite e
utilizador
• Atraso ionosférico: contém parâmetros para realizar estimativas do atraso
ionosférico de modo a melhorar a performance do GPS
• Estado do satélite: esta informação permite ao utilizador saber o estado de
funcionamento do satélite, de modo a poder ignorá-lo caso não esteja a operar
correctamente
Estes dados estão segmentados de igual maneira em todos os satélites. Basicamente
uma mensagem de navegação completa consiste em 25 tramas de 1500 bits. Cada uma destas
tramas está dividida em 5 sub-tramas de 300 bits. A uma taxa normal de transmissão (50 bit/s)
uma mensagem de navegação demora 750 segundos (12.5 minutos) a ser recebida, o que no
pior dos casos pode levar ao tempo de inicialização de um aparelho GPS (recepção completa
de uma mensagem de navegação) a ser praticamente o dobro.
A primeira sub-trama contém um conjunto de coeficientes que permitem realizar
correcções do relógio do satélite. A segunda e terceira sub-tramas são praticamente constantes
ao longo da mensagem, pois contêm informação precisa relativa às efemérides do satélite
Anexo C. Sinal GPS
62
emissor da mensagem. As duas últimas sub-tramas variam ao longo da mensagem e contêm
informação do almanaque, correcções ionosféricas e estado de saúde do satélite. Numa trama
apenas segue uma página (1 25 da informação) do almanaque, razão pela qual uma
mensagem de navegação é composta por um total de 25 mensagens (Figura C.3).
Figura C.3 – Estrutura de uma trama da mensagem de navegação.
Existem também dois campos no início de todas as sub-tramas: a TLM (Telemetria) e
HOW (Hand-Over Word). O preâmbulo do campo TLM permite ao utilizador detectar um
começo de uma sub-trama. Os restantes bits são reservados ou de paridade. O campo HOW
contém a identificação do número da sub-trama, e informação que permite determinar ao
utilizador o tempo de emissão da sub-trama.
C.3 Aquisição e Seguimento do Sinal GPS
Quando o utilizador liga um receptor de GPS, antes de se descodificar a informação
no sinal é necessário realizar a aquisição e o seguimento do sinal GPS. Definem-se um
conjunto de operações a realizar para executar esta tarefa:
1. Determinação dos satélites visíveis
2. Determinação do desfasamento Doppler aproximado para cada satélite visível
3. Procurar o sinal na frequência e na fase do código C/A
4. Detectar a presença do sinal e confirmar a sua detecção
5. Fixar e seguir o código C/A
6. Fixar e seguir a portadora
7. Realizar sincronização de bits
8. Desmodular a mensagem de navegação
1
4
3
2
5
Sub-trama Estrutura
Correcção de relógio HOW
Efemérides do satélite HOW
Efemérides do satélite HOW
Atraso ionosférico, Mensagens especiais, etc. HOW
Almanaque, Saúde do satélite, etc. HOW TLM
TLM
TLM
TLM
TLM
C.3. Aquisição e Seguimento do Sinal GPS
63
A primeira vez que um receptor é ligado é necessário procurar todos os satélites de
forma exaustiva para determinar quais são visíveis. Este intervalo de tempo de procura é
designado de TTFF (Time To First Fix). É possível reduzir o TTFF, em alguns receptores,
introduzindo as coordenadas aproximadas do utilizador e usando a informação do almanaque,
de modo a limitar a procura de satélites. Pode-se também introduzir a hora aproximada,
apesar da maior parte dos receptores terem um relógio suficientemente preciso e que opera
mesmo com o aparelho desligado.
Através da estimativa do desfasamento de Doppler (causado pelo movimento do
satélite) do sinal GPS dos satélites visíveis é possível definir um padrão de procura na
frequência mais eficiente, em que as frequências de recepção mais prováveis são procuradas
em primeiro lugar. O desfasamento de Doppler é calculado com base no conhecimento
aproximado da posição, tempo e dados do almanaque.
Apesar do GPS emitir sinais não basta a sintonização de uma simples frequência para
receber o sinal, uma vez que estes têm uma densidade de potência muito baixa (spread-
spectrum, como havia sido referido nas propriedades do código C/A), isto é, a potência do
sinal está espalhada ao longo de uma banda de frequências vasta. Esta situação leva a que seja
necessário o despread do sinal recorrendo a uma réplica do código usado (C/A ou P)
(Figura C.4). Quando ocorre alinhamento dos códigos, obtém-se um pico no espectro de
potência e o sinal é detectado. Para encontrar o sinal emitido do satélite, de modo eficiente, é
necessário uma procura bidimensional: no atraso do código C/A e na frequência da portadora.
Figura C.4 – Despread do código C/A.
A procura no atraso do código deve ser realizada para cada frequência procurada. O
receptor gera códigos iguais aos dos satélites e altera o atraso do código em intervalos
discretos até encontrar o alinhamento aproximado com o código recebido.
Densidade de potência do sinal após o despreading
Densidade de potência do sinal antes do despreading
Densidade de potência do ruído
Função de transferência do filtro para recuperação do sinal
Anexo C. Sinal GPS
64
A procura na frequência usa os resultados das estimativas de Doppler. Com base na
frequência estimada executa uma procura em torno dessa frequência, pois existe maior
probabilidade de o sinal se encontrar numa frequência na vizinhança da estimada.
Estes métodos de procura do sinal têm um compromisso entre a probabilidade de
detecção e um falso alarme. Esta relação é melhor quanto maior for a potência do sinal.
Sempre que ocorre uma falsa detecção tem de se proceder novamente à procura.
Assim que o sinal é detectado é essencial fixá-lo e efectuar o seguimento da portadora.
Isto é necessário para que o sinal não se perca e se mantenha alinhado, permitindo realizar o
despreading. Deste modo, obtém-se uma fase de referência para a desmodulação do sinal. Isto
também permite a medição da velocidade (através do ritmo de variação da fase), o cálculo
mais preciso do efeito de Doppler para facilitar o seguimento do código e a estimativa da
pseudo-distância através da fase da portadora.
Uma vez fixada e seguida a portadora, procede-se à sincronização de bits. O método
mais simples de o fazer é realizar um histograma com as frequências da portadora em vários
intervalos de tempo seguidos, onde os intervalos mais frequentes identificam os instantes de
tempo que marcam as fronteiras dos bits. Após a sincronização efectua-se a desmodulação
dos bits para se obter a mensagem de navegação.
65
Anexo D Álgebra Linear
D.1 Mínimos Quadrados
O método de mínimos quadrados para sistemas lineares é uma técnica que permite
encontrar uma solução aproximada para um sistema de equações lineares que não tem uma
solução exacta. Este é um problema recorrente em sistemas onde o número de equações ( m ) é
superior ao número de incógnitas ( n ).
Em termos matemáticos pretende-se encontrar uma solução x para a equação:
Ax b= (D.1)
em que A é uma matriz m n× conhecida (com m n> ), x é um vector desconhecido de
dimensão n e b é o vector de medições conhecido de dimensão m .
Mais precisamente, quer-se minimizar o quadrado da norma euclidiana do resíduo
( Ax b− ), ou seja minimizar:
2Ax b− (D.2)
Utilizando o facto da norma quadrada de um vector v ser igual a Tv v , pode reescrever
(D.2) da seguinte forma:
( ) ( ) ( ) ( ) ( )T T TT TAx b Ax b Ax Ax b Ax Ax b b b− − = − − + (D.3)
O mínimo de (D.3) é encontrado derivando (D.3) em ordem a x e igualando a zero:
ˆ2 2 0T TA Ax A b− = (D.4)
A solução do problema é obtida resolvendo:
ˆT TA Ax A b= (D.5)
A equação (D.5) é habitualmente designada por equação normal. A matriz TA A é uma
matriz quadrada que é invertível se a matriz A tiver característica completa igual a n . Neste
caso a solução de (D.5) é única e é dada por:
( ) 1ˆ T Tx A A A b
−= (D.6)
A matriz ( ) 1T TA A A−
é usualmente designada por pseudo-inversa de A .
Anexo D. Álgebra Linear
66
D.2 Mínimos Quadrados Pesados
Uma das suposições no método usual de mínimos quadrados é o facto de se considerar
que todas as medições estão sujeitas ao mesmo tipo de erro, i.e., o desvio padrão do erro é
considerado constante para todas as medições. Esta consideração nem sempre se enquadra em
todos as aplicações. Por exemplo, em GPS, a fase da portadora é muito mais precisa que a
pseudo-distância, ou seja, o desvio padrão do erro associado à fase da portadora é menor que
o associado à pseudo-distância. Em situações como esta, em que não é aconselhável tratar
todas as observações de igual maneira, é usual recorrer-se a mínimos quadrados pesados para
maximizar a eficiência do processo de estimação.
O método de mínimos quadrados pesados é em tudo semelhante ao método de
mínimos quadrados descrito no Anexo D.1. A única diferença reside no facto do quadrado da
norma euclidiana ser ponderada por uma matriz de pesos. Esta condição pode ser descrita
matematicamente por:
2
WAx b− (D.7)
em que W é a matriz de pesos das observações com dimensão n n× .
Usando o facto da norma quadrada de um vector v ser Tv v , pode reescrever (D.7):
( ) ( ) ( ) ( ) ( )T T TT TAx b W Ax b Ax W Ax b WAx Ax Wb b Wb− − = − − + (D.8)
O mínimo de (D.8) é encontrado derivando (D.8) em ordem a x e igualando a zero:
ˆ2 2 0T TA WAx A Wb− = (D.9)
A solução do problema é obtida resolvendo:
ˆT TA WAx A Wb= (D.10)
A matriz TA WA é uma matriz quadrada que é invertível se a matriz A tiver
característica completa igual a n . Neste caso a solução de (D.10) é única e é dada por:
( ) 1ˆ T Tx A WA A Wb
−= (D.11)
É fácil de verificar que caso a matriz W seja a identidade, então a estimativa da
solução obtida em (D.11) é idêntica à obtida em (D.6).
D.3. Factorização de Cholesky
67
D.3 Factorização de Cholesky
A decomposição de Cholesky (Cholesky, 1905) foi talvez o primeiro método para
factorizar uma matriz simétrica definida positiva num produto de matrizes triangulares. Estas
matrizes são designadas de factores de Cholesky.
Um factor de Cholesky C de uma matriz simétrica positiva definida A é tal que:
TCC A= (D.12)
em que C é uma matriz triangular inferior.
A factorização de Cholesky é frequentemente utilizada na resolução de sistemas de
equações lineares na forma Ax b= . Se A for uma matriz simétrica positiva definida, então o
sistema Ax b= pode ser resolvido calculando primeiro a factorização de Cholesky da matriz
A e resolvendo o sistema Cy b= , para y , e depois resolvendo o sistema TC x y= , para x .
Sistemas na forma Ax b= com A simétrica positiva definida são bastante comuns,
nomeadamente os sistemas de equações normais em problemas de mínimos quadrados
lineares.
Os coeficientes do factor de Cholesky podem ser obtidos igualando os coeficientes dos
dois lados da equação (D.12). Seja A uma matriz n n× vem que:
11 11 12 1 11 12 1
21 22 22 2 21 22 2
1 2 1 2
0 00 0
0 0
n n
n n
n n nn nn n n nn
c c c c a a ac c c c a a a
c c c c a a a
⎡ ⎤ ⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥=⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦ ⎣ ⎦
(D.13)
em que os coeficientes, para 1i n= , , e 1j i n= + , , , são dados por:
1 1
2
1 1
ei i
ii ii ik ji ji jk ik iik k
c a c c a c c c− −
= =
⎛ ⎞= − = −⎜ ⎟
⎝ ⎠∑ ∑ (D.14)
Se A for definida positiva então os coeficientes são sempre reais.
A implementação da factorização de Cholesky foi retirada do pacote de funções
LINPACK [32] para C++.
69
Anexo E LAMBDA: Complementos
E.1 Transformação-Z
A transformação-Z é introduzida decompondo-se a matriz de co-variância aQ em:
ˆT
aQ L DL= (E.1)
em que L é uma matriz inferior e D uma matriz diagonal.
O objectivo da transformação-Z é determinar uma matriz Z , que seja próxima da
inversa da matriz L . Caso se consiga encontrar uma matriz de inteiros Z igual a 1L− , então:
ˆˆT T T
z aQ Z Q Z Z L DLZ D= = = (E.2)
Se zQ D= , as ambiguidades z estão completamente descorrelacionadas e a
minimização inteira é reduzida a um simples processo de arredondamento da solução em
vírgula flutuante estimada [21]. Na prática uma descorrelação completa raramente é possível
devido à natureza inteira da solução, logo zQ raramente será uma matriz estritamente
diagonal, sendo possível decompô-la em:
ˆT
zQ L DL= (E.3)
em que L é uma matriz inferior e D uma matriz diagonal.
Analisando (E.3), a matriz de co-variância zQ é próxima da matriz diagonal D
quando os elementos não-diagonais de L são muito pequenos. Este requisito é atingido
recorrendo a transformações inteiras de Gauss [23]. Deste modo a minimização (4.9) é
transformada em:
1ˆ
2ˆmin comz
mQz
z z z−− ∈ (E.4)
É possível, através de permutações, aumentar a eficiência do processo de busca,
ordenando decrescentemente as entradas da matriz diagonal D [24], ou seja:
1 2 md d d≥ ≥ ≥ (E.5)
em que id é o elemento i da diagonal da matriz D .
Anexo E. LAMBDA: Complementos
70
E.2 Determinação de 2χ
O desempenho computacional do método LAMBDA está dependente da determinação
da constante positiva 2χ que controla a dimensão da região do elipsóide. Este valor não pode
ser demasiado pequeno para se garantir que o espaço de procura contém a solução a que
satisfaz (4.9). Por outro lado, um valor de 2χ demasiado elevado pode resultar num espaço de
procura muito grande, o que tornaria o método ineficiente. Na implementação proposta por
Teunissen [7], o valor de 2χ permanece constante durante todo o processo de procura.
O método que permite determinar o valor de 2χ fixa-o inicialmente em infinito.
Supondo que se pretende obter as q melhores soluções para o problema de minimização
(4.12) é necessário definir um valor de 2χ que as contenha. Assim começa-se por determinar
o primeiro candidato através do arredondamento da solução em vírgula flutuante:
11 2
( ) ˆ ˆ ˆ T
mz z z z⎡ ⎤= ⎣ ⎦ (E.6)
em que ˆiz representa o inteiro mais próximo de ˆiz
O segundo candidato é igual ao primeiro, exceptuando o primeiro elemento que será o
segundo valor inteiro mais próximo de 1z . O terceiro candidato é obtido de forma análoga
com a excepção para a primeira entrada que será igual ao terceiro valor inteiro mais próximo
de 1z . Aplicando um método semelhante pode obter-se os restantes candidatos ( m candidatos
no total). Analisando (4.19) retira-se que:
( )( ) ( )( ) ( )( )1 2 qf z f z f z≤ ≤ ≤ (E.7)
O valor de 2χ é então fixado em ( )( )qf z , reduzindo a região do elipsóide.
71
Anexo F Filtragem Kalman
A filtragem Kalman (Kalman, 1960) [29] é um algoritmo recursivo eficiente para
estimar o estado de um sistema dinâmico, que consegue combinar o modelo da dinâmica do
sistema e o modelo observações, cada um com ruído associado. Para sistemas em que o
modelo da dinâmica e o modelo das observações é linear e os ruídos associados são
Gaussianos, a estimativa do filtro Kalman é óptima.
O estado de um sistema é dado por um conjunto de variáveis de interesse, também
chamadas de variáveis de estado. O estado de um sistema evolui em função do estado no
instante anterior e de alguma acção que haja sobre o sistema. Normalmente não se tem acesso
directo às variáveis de estado, mas é possível fazer observações do sistema que são funções
do estado no mesmo instante.
Neste Anexo aborda-se a filtragem Kalman para sistemas lineares e as possíveis
aplicações ao sistema GPS.
F.1 Modelo da Dinâmica e das Observações
Quando se aplica a filtragem Kalman a um sistema dinâmico, é necessário, em
primeiro lugar, definir como estas evoluem ao longo do tempo, de modo a definir a dinâmica
do sistema em estudo. De um modo geral define-se que um sistema linear num instante k
evolui de um estado no instante 1k − de acordo com:
1k k k k k kx F x B a u−= ⋅ + ⋅ + (F.1)
em que:
kx é o vector de variáveis de estado no instante k
kF é o modelo de transição de estado que é aplicado a estado anterior 1kx −
kB é o modelo da entrada de controlo aplicada ao vector de controlo ka
ku é o ruído do processo que pode ser modelado por ruído branco Gaussiano de
média nula com co-variância kQ , (0, )kN Q
Anexo F. Filtragem Kalman
72
A introdução de ruído no modelo da dinâmica é encarada como a impossibilidade de
modelar a física do sistema de modo perfeito. A co-variância kQ quantifica a incerteza que se
tem no modelo.
Em segundo lugar é preciso definir um modelo das observações do nosso sistema.
Num instante k uma observação do estado kx é dada por
k k kz H x w= ⋅ + (F.2)
em que:
kH é o modelo de observações que mapeia o espaço de estados no espaço das
observações
kw é o ruído das observações que pode ser modelado por ruído branco Gaussiano
de média nula com co-variância kR , (0, )kN R
O uso de ruído no modelo das observações é encarado como a falta de precisão dos
sensores que executam as medições sobre o sistema.
F.2 Computação do Filtro: Predição e Filtragem
Uma vez definidos os modelos da dinâmica e das observações do sistema, o filtro
Kalman tem de ser inicializado. O estado do filtro é representado por duas variáveis:
• ˆkx , a estimação do estado no instante k
• kP , a matriz de co-variância da estimação (medida do erro na estimação do
estado)
Como o filtro Kalman é um estimador recursivo, apenas é necessário a estimativa do
estado anterior e respectiva co-variância do instante anterior. É então necessário definir o
estimador do estado inicial 0x e a incerteza que se tem nesta estimação (através de uma matriz
de co-variância 0P ).
Ao longo dos instantes seguintes o filtro Kalman vai actualizando as estimativas e
respectivas co-variâncias, através do ciclo de computação com duas etapas distintas: predição
e filtragem.
F.2. Computação do Filtro: Predição e Filtragem
73
Figura F.1 – Ciclo de computação do filtro Kalman.
Na fase de predição, a estimativa do estado anterior 1kx − é propagada de acordo com o
modelo da dinâmica do sistema e a co-variância 1kP − é actualizada de acordo com a co-
variância associada à dinâmica, Q . De modo mais concreto:
1ˆ ˆk k k k kx F x B a−−= ⋅ + ⋅ (F.3)
1k k k k kP F P F Q−−= ⋅ ⋅ + (F.4)
em que:
ˆkx− é o estado predito no instante k
kP− é a matriz de co-variância da estimação predita
Em seguida, realiza-se a fase de filtragem que é iniciada com as observações sobre o
sistema. Esta informação é depois usada para actualizar o estado predito e a co-variância
associada, de acordo com as equações:
ˆ ˆ ˆ( )k k k k k kx x K z H x− −= + ⋅ − ⋅ (F.5)
( )k k k kP I K H P−= − ⋅ ⋅ (F.6)
em que:
kK é o ganho de Kalman óptimo
ˆk kH x−⋅ é a observação predita no instante k
I é uma matriz identidade
O ganho de Kalman kK é capaz de pesar de modo óptimo o resíduo criado entre a
observação realizada e a observação predita ( ˆk k kz H x−− ⋅ ), de modo a obter-se melhor
estimativa do estado actual possível [29].
Em alguns instantes pode não ser possível efectuar medições no sistema, sendo apenas
propagado o modelo da dinâmica, sem que haja o passo de filtragem propriamente dito.
Inicialização Predição Filtragem
Anexo F. Filtragem Kalman
74
F.3 Aplicação: Trajectória do Utilizador
Uma aplicação simples e directa do filtro Kalman em problemas de posicionamento
em GPS é a filtragem da posição do utilizador. As principais vantagens são:
• Filtragem do ruído da trajectória, levando em conta a dinâmica do sistema
• Predição da trajectória mesmo quando não há satélites suficientes para calcular a
posição
F.3.1 Modelo da Dinâmica e das Observações
O modelo da dinâmica de um sistema é definido muitas vezes de modo experimental
ou pela própria física. Não havendo acesso a parâmetros internos nem conhecimentos a priori
do sistema em causa, não é possível definir um modelo da dinâmica preciso. Este é o caso
quando se usa o sistema GPS de modo independente.
Para contornar este problema usa-se um modelo linear de dinâmica geral em que as
acelerações são dadas pelas derivadas das velocidades, que por sua vez são dadas pelas
derivadas das posições. As posições consideram-se a latitude, longitude e altitude em
preferência às coordenadas ECEF, pois a trajectórias a serem filtradas ficam num sistema
mais intuitivo, correspondente à superfície da Terra. Usando a forma expressa em (F.1) fica-
se com o modelo:
21
21
21
, ,
,
,
,
,
,
1 0 0 0 0 2 0 00 1 0 0 0 0 2 00 0 1 0 0 0 0 20 0 0 1 0 0 0 00 0 0 0 1 0 0 00 0 0 0 0 1 0 00 0 0 0 0 0 1 0 00 0 0 0 0 0 0 1 00 0 0 0 0 0 0 0 1
k ka a
k ka a
k ka a
x k x ka
y k a
z k a
x k
y k
z k
x xT Ty yT Tz zT T
v vTv Tv Taaa
−
−
−
⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥= ⋅⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦
1
, 1
, 1
, 1
, 1
, 1
y k k
z k
x k
y k
z k
v uvaaa
−
−
−
−
−
−
⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥ +⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦
(F.7)
em que:
, ,k k kx y z são a latitude, longitude e altitude no instante k , respectivamente
, , ,, ,x k y k z kv v v são as velocidades segundo a latitude, longitude e altitude no
instante k , respectivamente
F.3. Aplicação: Trajectória do Utilizador
75
, , ,, ,x k y k z ka a a são as acelerações segundo a latitude, longitude e altitude no
instante k , respectivamente
aT é intervalo de tempo de amostragem das variáveis de estado
ku tem associado uma matriz de co-variância kQ de dimensão 9 9×
De modo mais intuitivo, fica-se com o modelo diferencial equivalente:
000
x
x
z
x x
ky y
z z
x
y
z
x vy vz vv a
uv av aaaa
⎡ ⎤ ⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥= +⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣ ⎦⎣ ⎦
(F.8)
em que xxt∂
=∂
, yyt
∂=∂
, zzt∂
=∂
, vvt∂
=∂
e aat
∂=∂
, isto é, as derivadas em ordem ao tempo.
As observações do sistema são os valores finais obtidos pelos algoritmos de
posicionamento, isto é, a latitude, a longitude e a altitude, que são variáveis de estado.
Facilmente se obtém um modelo no formato de (F.2):
,,
,,
,,
,
,
,
1 0 0 0 0 0 0 0 00 1 0 0 0 0 0 0 00 0 1 0 0 0 0 0 0
k
k
k
x kobs k
y kobs k k
z kobs k
x k
y k
z k
xyz
vxvy wvzaaa
⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥
⎡ ⎤ ⎡ ⎤ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥= ⋅ +⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎥⎣ ⎦⎣ ⎦
⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦
(F.9)
em que
, , ,, ,obs k obs k obs kx y z são as observações do sistema no instante k : latitude, longitude
e altitude, respectivamente
kw tem associado uma matriz de co-variância kR de dimensão 3 3×
Anexo F. Filtragem Kalman
76
Utilizando o modelo da dinâmica e modelo das observações previamente definidos,
pode-se aplicar a filtragem Kalman a uma trajectória de um utilizador. Na Figura F.2
mostram-se a filtragem de uma trajectória, onde é diminuído o ruído da mesma, e a predição
de uma trajectória, quando não há satélites suficientes para calcular a posição. Os ruídos
associados aos modelos usados nestes resultados são descritos em mais detalhe no
Anexo F.3.2.
Figura F.2 – Filtragem (esq.) e predição (dir.) de trajectórias.
F.3.2 Ajuste das Matrizes de Co-variância kQ e kR
O bom funcionamento do filtro Kalman está dependente da fiabilidade dos modelos de
dinâmica e de observação [29]. É essencial conseguir quantificar a incerteza dos modelos
através das matriz de co-variância kQ e kR .
Para simplificar este problema considera-se que matrizes de co-variância são
constantes ao longo do tempo e diagonais, isto é, o ruído de cada variável é constante e
incorrelacionado com os outros. Apesar de não ser verdade no sistema definido, é uma boa
aproximação. Partindo deste princípio, o problema da determinação das matrizes de co-
variância resume-se ao cálculo da variância de cada variável em ambos os modelos.
A matriz kR pode ser determinada experimentalmente, uma vez que está associada à
precisão dos algoritmos de posicionamento. O procedimento usado consiste em calcular
várias posições de uma estação fixa, ao longo de um período alargado de tempo, e calcular a
variância destes pontos para cada uma das variáveis observadas: latitude, longitude e altitude.
F.3. Aplicação: Trajectória do Utilizador
77
Figura F.3 – Histograma de posicionamento em longitude e latitude.
A construção da matriz kQ é mais complexa e com um carácter mais subjectivo. A
variância de cada variável de estado não pode ser calculada de modo experimental, uma vez
que não há conhecimento do sistema que usará o posicionamento por GPS. O método
consistiu em testar conjuntos de valores em várias experiências de posicionamento e afiná-los
para obter os melhores resultados. Por melhores resultados, entende-se aqueles em que o filtro
mostrou ser capaz de diminuir o ruído das trajectórias e segui-las com pouco atraso. Quanto
maiores forem os valores de kQ , ou seja, o modelo da dinâmica é pouco fiável, mais a
trajectória filtrada se aproximará das observações realizadas.
Figura F.4 – Filtragem da trajectória com kQ baixo (esquerda) e kQ elevado (direita).
Posição real
79
Anexo G Receptores GPS
Neste Anexo descrevem-se os receptores GPS usados para recolher os dados que
permitiram efectuar os testes necessários para analisar os algoritmos implementados: Ashtech
AC12 (Figura G.1), Ashtech GG24 (Figura G.2) e Ashtech DG14 (Figura G.3).
G.1 Ashtech AC12
Figura G.1 – Placa OEM AC12 [Fonte: Thales Navigation].
G.1.1 Descrição
O Ashtech AC12 [33] é uma placa de baixo custo que fornece, além da pseudo-
distância, uma fase da portadora precisa. Esta é uma característica que só era encontrada em
receptores com um custo muito elevado. O AC12 foi concebido para integração de sistemas,
oferecendo posicionamento absoluto ou posicionamento através de DGPS. Entre outras
características realça-se o facto de ter baixo consumo, de ter dimensões reduzidas e de usar o
protocolo NMEA (National Marine Electronics Association).
A placa OEM AC12 processa sinais, provenientes da constelação de satélites GPS e de
satélites do SBAS (Satellite-Based Augmentation System). Esta última funcionalidade permite
realizar DGPS sem custos adicionais.
Anexo G. Receptores GPS
80
G.1.2 Especificações Técnicas
Características Standard:
• Receptor GPS de 12 canais e até 2 canais para SBAS
• Portadora L1, código e fase
• DGPS remoto
• 1Hz de taxa de actualização máxima
• Suporte para WAAS/EGNOS
• Velocidade (máxima) 514m/s
• Altitude (máxima) 18 228m
Precisão:
• Autónomo:
o Horizontal CEP 3.0m
o Horizontal 95% 5.0m
• DGPS:
o Horizontal CEP 0.8m
o Horizontal 95% 1.5m
Medições da fase da portadora com uma precisão de 3mm (RMS).
Tempo de Aquisição:
• Hot start < 10seg
• Warm start < 45seg
• Cold start < 150seg
Placa AC12 OEM:
• Dimensões: 40 61 2 13 3. .× × mm
• Peso: 45.4g
• Alimentação: 3.3 a 5.0V
• Consumo de potência: 1W
G.2. Ashtech GG24
81
G.2 Ashtech GG24
Figura G.2 – Placa OEM GG24 [Fonte: Thales Navigation].
G.2.1 Descrição
O Ashtech GG24 [34] é um receptor que permite conciliar a informação proveniente
do sistema GPS com a do sistema GLONASS (GLObal NAvigation Satellite System), o
equivalente Russo ao sistema GPS, para melhorar a precisão.
Uma das principais vantagens da integração do GPS com o GLONASS é a
possibilidade de aumentar o número de satélites visíveis pois, para além dos 24 satélites GPS
disponíveis que orbitam em torno da Terra, também se tem acesso aos 13 satélites GLONASS
disponíveis. Assim, e uma vez que a probabilidade de ter muitos satélites visíveis é maior, é
possível aumentar a precisão com que se determina a posição do utilizador do sistema GPS,
uma vez que a geometria dos satélites pode ser melhorada.
G.2.2 Especificações Técnicas
Características Standard:
• 12 canais GPS L1 código e fase
• 12 canais GLONASS L1 código e fase
• DGPS remoto
• Suporta RTK
• 2.5Hz de taxa de actualização máxima
• Velocidade (máxima) 514m/s
• Altitude (máxima) 18 228m
Anexo G. Receptores GPS
82
Precisão:
• Autónomo:
o Horizontal CEP 3.2m
o Horizontal 95% não disponível.
• DGPS:
o Horizontal CEP 0.4m
o Horizontal 95% não disponível.
Tempo de Aquisição:
• Hot start não disponível
• Warm start < 30seg
• Cold start < 40seg
Placa GG24 OEM:
• Dimensões: 10 16 7.× cm
• Peso: 500g
• Alimentação: 5.0V
• Consumo de potência: 2.3W
G.3 Ashtech DG14
Figura G.3 – Placa OEM DG14 [Fonte: Thales Navigation].
G.3.1 Descrição
O Ashtech DG14 [35] é uma placa de nova geração de baixo custo que fornece, além
da pseudo-distância, uma fase da portadora precisa. Esta é uma característica que só era
encontrada em receptores com um custo muito elevado. O DG14 foi concebido para
G.3. Ashtech DG14
83
integração de sistemas, oferecendo posicionamento absoluto ou posicionamento através de
DGPS. Entre outras características realça-se o facto de ter baixo consumo, de ter dimensões
reduzidas e de usar o protocolo NMEA.
A placa OEM DG14 processa sinais, provenientes da constelação de satélites GPS e
de satélites do SBAS – Satellite-Based Augmentation System. Esta última funcionalidade
permite realizar DGPS sem custos adicionais.
G.3.2 Especificações Técnicas
Características Standard:
• Receptor GPS de 14canais e 2 canais para SBAS
• Portadora L1, código e fase
• DGPS remoto
• Suporta RTK
• 20Hz de taxa de actualização máxima
• Velocidade (máxima) 514m/s
• Altitude (máxima) 18 228m
Precisão:
• Autónomo:
o Horizontal CEP 3.0m
o Horizontal 95% 5.0m
• DGPS:
o Horizontal CEP 0.4m
o Horizontal 95% 0.9m
Tempo de Aquisição:
• Hot start < 11seg
• Warm start < 35seg
• Cold start < 90seg
Placa DG14 OEM:
• Dimensões: 10 8 5 7×. . cm
• Peso: 65.35g
• Alimentação: 5.0V
• Consumo de potência: 1.6W.
85
Anexo H Mensagens NMEA
A NMEA desenvolveu especificações que definem a interface entre vários
equipamentos electrónicos marinhos. Neste projecto recorreram-se às seguintes:
• PBN, que contém informação sobre a posição da antena
• MCA, que contém as medições feitas pelo receptor para um satélite
• SNV, que contém informação sobre as efemérides de um satélite
H.1 Mensagem PBN
Uma mensagem PBN abarca informação relativa ao posicionamento da antena e
também contém informação sobre o tempo de recepção. A Tabela H.1 representa a estrutura
de uma mensagem PBN.
Tabela H.1 – Estrutura de uma mensagem PBN.
Campo Bytes Conteúdo
Received Time [long] 4 Tempo de recepção do sinal GPS, em milissegundos da semana GPS
Site Name [char] 4 Quatros caracteres ASCII introduzidos pelo utilizador
Navx [double] 8 Coordenada X (ECEF) em metros da posição da antena do utilizador
Navy [double] 8 Coordenada Y (ECEF) em metros da posição da antena do utilizador
Navz [double] 8 Coordenada Z (ECEF) em metros da posição da antena do utilizador
Navt [double] 8 Deriva do relógio do receptor em metros
Navxdot [float] 4 Velocidade da antena segundo X em metros por segundo
Navydot [float] 4 Velocidade da antena segundo Y em metros por segundo
Navzdot [float] 4 Velocidade da antena segundo Z em metros por segundo
Navtdot [float] 4 Deslize do relógio do receptor em metros por segundo
PDOP [unsigned short] 2 PDOP (DOP da posição) multiplicado por 100
Checksum 2 O checksum é determinado dividindo a estrutura em 27 unsigned shorts, somando-os e retirando os 16 bits mais significativos
Total de bytes 56
Anexo H. Mensagens NMEA
86
H.2 Mensagem MCA
Uma mensagem MCA contém informação sobre as medições feitas pelo receptor para
um determinado satélite. A Tabela H.2 representa a estrutura de uma mensagem MCA.
Tabela H.2 – Estrutura de uma mensagem MCA.
Campo Bytes Conteúdo
Tag [unsigned short] 2 Número de identificação em unidades de 50ms, módulo 30min
Left [unsigned char] 1 Número de mensagens MCA restantes a serem enviadas pelo receptor
Svprn [unsigned char] 1 PRN do satélite (1 – 56)
Elevation [unsigned char] 1 Ângulo de elevação do satélite em graus
Azimuth [unsigned char] 1 Azimute do satélite em incrementos de 2º
ChannelId [unsigned char] 1 Canal (1 – 12) atribuído ao satélite
Medições retiradas do código C/A
Warning [unsigned char] 1
Bit 1 Bit2 0 0 Código/fase foram medidos
0 1 Código/fase medidos, mensagem de navegação obtida, mas não utilizados para determinar a posição
1 0 Código/fase medidos, mensagem de navegação obtida, utilizados para calcular a posição
3 Fase da portadora questionável
4 Fase do código questionável
5 Integração da fase do código incerta
6 Não utilizado
7 Possível perda de seguimento
8 Perda do seguimento, contador reiniciado
Good Bad [unsigned char] 1 Indica a qualidade da posição medida. Se for igual a 24 então as medidas podem ser utilizadas para calcular a posição.
Polarity [char] 1 Se for 0 implica que o satélite acabou se ser adquirido. Se for 5 implica que o preâmbulo da mensagem foi encontrado
SNR [unsigned char] 1 Relação sinal ruído do satélite observado
Always 0 [unsigned char] 1 Não utilizado
Phase [double] 8 Fase da portadora medida em ciclos
Range [double] 8 Pseudo-distância medida em segundos
Doppler [long] 4 Medida da frequência de Doppler (escalamento de 10-4Hz)
Smoothing [long] 4 Quantifica a suavização da magnitude em centímetros
Checksum 1 Determinado fazendo o XOR de todos os bytes da mensagem
Total de bytes 37
H.3. Mensagem SNV
87
H.3 Mensagem SNV
Uma mensagem SNV contém informação sobre as efemérides de um determinado satélite. A Tabela H.3 representa a estrutura de uma mensagem SNV.
Tabela H.3 – Estrutura de uma mensagem SNV.
Campo Bytes Conteúdo
wn [short] 2 Número da semana GPS [0, …, 1023]
tow [long] 4 Segundos da semana [0, …, 604799]
tgd [float] 4 Atraso de grupo ( 31127 2−± × ), em segundos
aodc [long] 4 Número de informação da mensagem
toc [long] 4 Tempo de referência da informação [0, …, 204784]
af2 [float] 4 Termo de segunda ordem de correcção do relógio, em 1/seg
af1 [float] 4 Termo de primeira ordem de correcção do relógio, adimensional
af0 [float] 4 Termo de ordem zero de correcção do relógio, em segundos
aode [long] 4 Número de informação da órbita do satélite
deltan [float] 4 Termo de correcção da anomalia média, em semicírculos por segundo
m0 [double] 8 Anomalia média para o tempo de referência, em semicírculos
e [double] 8 Excentricidade
roota [double] 8 Raiz quadrada do eixo semi-maior, em metros/2
toe [long] 4 Tempo de referencia da orbita, em segundos
cic [float] 4 Termo de correcção harmónica, em radianos
crc [float] 4 Termo de correcção harmónica, em metros
cis [float] 4 Termo de correcção harmónica, em radianos
crs [float] 4 Termo de correcção harmónica, em metros
cuc [float] 4 Termo de correcção harmónica, em radianos
cus [float] 4 Termo de correcção harmónica, em radianos
omega0 [double] 8 Longitude do nó ascendente, em semicírculos
omega [double] 8 Argumento do perigeu, em semicírculos
i0 [double] 8 Ângulo de inclinação, em semicírculos
omegadot [float] 4 Taxa de ascensão recta, em semicírculos por segundo
idot [float] 4 Taxa de inclinação, em semicírculos por segundo
accuracy [short] 2
Precisão da medição do utilizador codificada de zero a quinze: 0 = 2m 4 = 8m 8 = 64m 12 = 1024m
1 = 2.8m 5 = 11.3m 9 = 128m 13 = 2048m
2 = 4m 6 = 16m 10 = 256m 14 = 4096m
3 = 5.7m 7 = 32m 11 = 512m 15 = imp. predizer
Anexo H. Mensagens NMEA
88
Tabela H.3 – Estrutura de uma mensagem SNV (cont.).
Campo Bytes Conteúdo
health [short] 2 Saúde do satélite
fit [short] 2 Intervalo de ajuste da curva. Se o valor de fit for igual a zero implica 4 horas se for igual a um implica 6 horas.
prnnum [char] 1 Número PRN do satélite menos um (0, …, 31)
res [char] 1 Caracter reservado
checksum 2 O checksum é determinado dividindo a estrutura em 65 unsigned shorts, somando-os e retirando os 16 bits mais significativos
Total de bytes 132
89
Anexo I Ficheiros C++ Desenvolvidos
I.1 Matriz.h
Este módulo é composto por vários métodos da classe Matriz, utilizada para a
representação e manipulação de matrizes. Para além das operações básicas destacam-se os
métodos presentes neste Anexo.
InverteMatriz função input: double *mat, int n, double *det
output: -
sintaxe: C.InverteMatriz(A.RetornaArray(), dim, &det)
Determina a inversa da matriz A, armazenando o resultado na matriz C.
Chol função input: double *mat, int lda, int p
output: -
sintaxe: C.Chol(A.RetornaArray(), dim, order)
Determina a decomposição de Cholesky da matriz A de dimensão dim e ordem order, armazenando o
resultado na matriz C.
Pinv função input: const matriz A
output: -
sintaxe: C.Pinv(A)
Determina a pseudo-inversa da matriz A, armazenando o resultado na matriz C.
I.2 PBN.h
Este módulo é composto por vários métodos da classe PBN, utilizada para a
representação, manipulação e leitura das mensagens PBN (Anexo H.1). Neste Anexo
descrevem-se os vários atributos desta classe.
PBN classe campos: double rcvtime, double navx, double navy, double navz, double navt, double navxdot,
double navydot, double navzdot, double navtdot, double pdop.
Anexo I. Ficheiros C++ Desenvolvidos
90
I.3 MCA.h
Este módulo é composto por vários métodos da classe MCA, utilizada para a
representação, manipulação e leitura das mensagens MCA (Anexo H.2). Neste Anexo
descrevem-se os vários atributos desta classe.
MCA classe campos: double left, double prnnumber, double elevation, double azimuth, double channelID,
double warning, double polarity, double SNR, double alwayszero, double phase, double rawrange, double
doppler, double smoothing.
I.4 SNV.h
Este módulo é composto por vários métodos da classe SNV, utilizada para a
representação, manipulação e leitura das mensagens SNV (Anexo H.3). Neste Anexo
descrevem-se os vários atributos desta classe.
SNV classe campos: double wn, double tow, double tgd, double aodc, double toc, double af0, double af1,
double af2, double aode, double deltan, double m0, double ecc, double roota, double, toe, double cic,
double cis, double crc, double crs, double cuc, double cus, double omega0, double omega, double i0,
double omagadot, double idot, double accuracy, double health, double fit, double prnnumber, double res,
double rcvtime.
I.5 Utilizador.h
Este módulo é composto por vários métodos da classe Utilizador, utilizada para a
representação e manipulação das variáveis do utilizador. Para além das operações básicas
destacam-se os métodos presentes neste Anexo.
Utilizador classe campos: double x, double y, double z, double clock, double lat, double lon, double alt
Definição de um objecto do tipo Utilizador. As variáveis x, y, z guardam as coordenadas em ECEF do
utilizador. A variável clock guarda o erro do relógio do utilizador. As variáveis lat, lon e alt guardam a
latitude, longitude e altitude do utilizador, respectivamente.
ECEF2LLH macro argumentos: -
sintaxe: user.ECEF2LLH()
Converte as coordenadas ECEF x, y e z do utilizador user em latitude, longitude e altitude.
I.6. Satelite.h
91
I.6 Satelite.h
Este módulo é composto por vários métodos da classe Satélite, utilizada para a
representação e manipulação das variáveis dos satélites. Para além das operações básicas
destacam-se os métodos presentes neste Anexo. campos: double x, double y, double z, double xcorr, double ycorr, double zcorr, double az, double
el, double d
Definição de um objecto do tipo Satélite. As variáveis x, y, z guardam as coordenadas em ECEF do
satélite. As variáveis xcorr, ycorr e zcorr guardam as coordenadas, corrigidas do termo de rotação da
Terra, em ECEF do satélite. As variáveis lat, lon e alt guardam a latitude, longitude e altitude do
satélite, respectivamente. Finalmente as variáveis az, el e d guardam o azimute, ângulo de elevação e o
comprimento do vector, respectivamente.
SatPos macro argumentos: double tx, SNV eph
sintaxe: sat.SatPos(tx, eph)
Determina as coordenadas ECEF x, y e z do satélite sat através do método descrito no Anexo A.2.
RotationCorection macro argumentos: double traveltime
sintaxe: sat.RotationCorrection(traveltime)
Determina as coordenadas ECEF x, y e z do satélite sat corrigidas do termo de rotação da Terra.
I.7 Algoritmos
Esta secção engloba os módulos que contêm os vários algoritmos de posicionamento
descritos no Capítulo 3:
Bancroft função argumentos: utilizador *roverpos, matriz B
sintaxe:DoubleDiferences(&roverpos, B)
Determina a posição do utilizador através do algoritmo de Bancroft.
Iterativo função argumentos: utilizador *roverpos, matriz B
sintaxe:DoubleDiferences(&roverpos, B)
Determina a posição do utilizador através do algoritmo iterativo.
Anexo I. Ficheiros C++ Desenvolvidos
92
CSC função argumentos: utilizador *roverpos, SNV *Ephr, MCA *MCAsatr, MCA *MCAsatrold, int *sv,
double rcvtime, double *soma, double *rhoold
sintaxe:DoubleDiferences(&roverpos, Ephr, MCAsatr, MCAsatrold, sv, rcvtime, soma, rhoold)
Determina a posição do utilizador através do algoritmo carrier-smoothed-code.
DoubleDiferences função argumentos: utilizador *roverpos, SNV *Ephr, SNV *Ephm, int *sv, MCA *MCAsatm,
MCA *MCAsatr, double rcvtime, double mastersat
sintaxe:DoubleDiferences(&roverpos, Ephr, Ephm, sv, MCAsatm, MCAsatr, rcvtime, mastersat)
Determina a posição do utilizador através do algoritmo de duplas diferenças via pseudo-distância.
Lambda função argumentos: utilizador *roverpos, SNV *Ephr, SNV *Ephm, int *sv, MCA *MCAsatm,
MCA *MCAsatr, double rcvtime, double mastersat, int *DDorder, matriz N1
sintaxe:DoubleDiferences(&roverpos, Ephr, Ephm, MCAsatm, MCAsatr, sv, rcvtime, mastersat,
DDorder, N1)
Determina a posição do utilizador através do método LAMBDA.
93
Referências
[1] Fultron Corporation, Trends in Space Commerce, U.S. Department of Commerce,
2000, (http://www.nesdis.noaa.gov/space/library/reports/2001-06-trends.pdf).
[2] Brandon, J.M., The Global Positioning System: Global Developments and
Opportunities, U.S. International Trade Commission, May, 2003
(http://hotdocs.usitc.gov/docs/pubs/research_working_papers/IPR-ID06.pdf).
[3] Kim, D., Langley, R.B., “GPS Ambiguity Resolution and Validation:
Methodologies, Trends and Issues”, in International Symposium on GPS/GNSS,
Seoul, Korea, Nov. 30-Dec. 2, 2000.
[4] Hatch, R., “Instantaneous ambiguity resolution.”, Proceedings of KIS’90, Banff,
Canada, 10-13 September 1990, pp. 299-308
[5] Frei, E., Beutler, G., “Rapid static positioning based on the fast ambiguity resolution
approach "FARA": theory and first results”, Manuscripta Geodaetica, Vol. 15, No.
4, 1990, pp. 325-356.
[6] Euler, H.-J., Landau, H., “Fast GPS ambiguity resolution on-the-fly for real-time
application.”, Proceedings of Sixth International Geodetic Symposium on Satellite
Positioning, Columbus, Ohio, 17-20 March 1992, pp. 650-659.
[7] Teunissen, P.J.G., “Least-squares estimation of the integer GPS ambiguities”, Invited
lecture, Section IV Theory and Methodology, IAG General Meeting, Beijing, China,
1993. Also in Delft Geodetic Computing Centre LGR series, No. 6, 16pp.
[8] Martin-Neira, M., Toledo, M., Pelaez, A., “The null space method for GPS integer
ambiguity resolution”, Proceedings of DSNS’95, Bergen, Norway, April 24-28 1995,
Paper No. 31, 8 pp.
[9] Chen, D., Lachapelle, G., “A comparison of the FASF and least-squares search
algorithms for on-the-fly ambiguity resolution.”, Navigation: Journal of The Institute
of Navigation, Vol. 42, No. 2, 1995, pp. 371-390.
[10] Kim, D., Langley, R.B., “An optimized least-squares technique for improving
ambiguity resolution performance and computational efficiency.”, Proceedings of
ION GPS’99, Nashville, Tennessee, 14-17 September 1999, pp. 1579-1588.
94
[11] http://www.iag-aig.org/
[12] Grewal, M.S., Weill, L.R., Andrews, A.P., Global Positioning Systems, Inertial
Navigation, and Integration, John Wiley & Sons, Inc., 2001.
[13] http://gps.faa.gov/
[14] Bao, J., Tsui, Y., Fundamentals of Global Positioning System Receivers, John Wiley
& Sons, Inc., 2000.
[15] http://www.navcen.uscg.gov/
[16] Borre, K., Strang, G., Linear Algebra, Geodesy, and GPS, Wellesley-Cambridge
Press, 1997.
[17] Stein, V., Determination of the ionospheric electron density distribution from time
delay measurements of VHF-satellite tracking data, European Space Agency, Paris,
France, December 1976.
[18] Bancroft, S., “An algebraic solution of the GPS equations”, IEEE Transactions on
Aerospace and Electronics System, 1985, 21(7), 56-59.
[19] Ming, Y., Chen, K., “Performance Assessment of a Noniterative Algorithm for
Global Positioning System (GPS) Absolute Positioning”, Proc. Natl. Sci. Counc.
ROC (A) Vol. 25, No. 2, 2001, pp. 102-106.
[20] Parkinson, B.W.; Spilker, J.J., Global Positioning System: Theory and Applications,
Vol. 1-2, American Institute of Aeronautics and Astronautics Journal, Inc., 1996.
[21] Jonge, P.J., Tiberius, C.C.J.M., “The LAMBDA method for integer ambiguity
estimation: implementation aspects”, in LGR-Series publications of the Delft
Geodetic Computing Center, No. 12, 1996.
[22] Teunissen, P.J.G., Jonge, P.J., Tiberius, C.C.J.M., “The Volume of the GPS
Ambiguity Search Space and its Relevance for Integer Ambiguity Resolution”,
presented at ION GPS-96. Kansas City, Missouri, US. September 17-20, 1996.
[23] Teunissen, P.J.G., Jonge, P.J., Tiberius, C.C.J.M., “Computational aspects of the
LAMBDA method for integer ambiguity estimation”, 1996.
[24] Chang, X., Yang, X., Zhou, T., “MLAMBDA: Modified LAMBDA Method for
Integer Ambiguity Determination”, Department of Geodesy and Geomatics
Engineering, University of New Brunswick, Canada, 2004.
[25] Jonge, P.J., Tiberius, C.C.J.M., “Fast Positioning Using the LAMBDA Method”, in
LGR publications of the Delft Geodetic Computing Center, 1996.
[26] Liu, G., Zhu, Y., Zhou, R., “A new approach of single epoch GPS positioning for
landslide monitoring”, July, 2005.
95
[27] Novatel, GPS Position Accuracy Measures, APN-029 Rev 1, 3 December 2003,
(http://www.novatel.com/Documents/Bulletins/apn029.pdf).
[28] Thales Navigation, Ashtech Solutions Datasheet, 2005. (http://professional.
magellangps.com/assets/datasheets/AshtechSolutions_EN_l.pdf).
[29] Kalman, R.E., “A New Approach to Linear Filtering and Prediction Problems”,
ASME Transactions, Series D: Journal of Basic Engineering, Vol. 82, pp. 35-45,
1960.
[30] http://www.wgs84.com/
[31] Casaca, J., Matos, J., Baio, M., Topografia Geral, Lidel Edições Técnicas, 3º Ed,
2000, pag. 29.
[32] http://www.scs.fsu.edu/~burkardt/cpp_src/linpack/linpack.html/
[33] Thales Navigation, AC12 Receiver Datasheet, 2005. (http://professional.
magellangps.com/assets/datasheets/AC12_EN_l.pdf).
[34] Thales Navigation, GG24 Receiver Datasheet, 2005. (http://professional.
magellangps.com/assets/datasheets/GG24_EN_l.pdf).
[35] Thales Navigation, DG14 Receiver Datasheet, 2002. (http://professional.
magellangps.com/assets/datasheets/DGSeries_EN_l.pdf).