2010:072 master's thesis - ltu.diva-portal.org
TRANSCRIPT
2010:072
M A S T E R ' S T H E S I S
In-Orbit Autonomous Position Determinationof Satellites using Sparsely Distributed
GNSS MeasurementsFor Geostationary Transfer Orbits, Geostationary Earth Orbit and
Higher Altitudes
Andrés Barrios-Montalvo
Luleå University of Technology
Master Thesis, Continuation Courses Space Science and Technology
Department of Space Science, Kiruna
2010:072 - ISSN: 1653-0187 - ISRN: LTU-PB-EX--10/072--SE
CRANFIELD UNIVERSITY
ANDRÉS BARRIOS-MONTALVO
IN-ORBIT AUTONOMOUS POSITION DETERMINATION OF SATELLITES USING
SPARSELY DISTRIBUTED GNSS MEASUREMENTS For Geostationary Transfer Orbits, Geostationary
Earth Orbit and Higher Altitudes
SCHOOL OF ENGINEERING
MSc IN ASTRONAUTICS AND SPACE ENGINEERING (SPACEMASTER)
MSc THESIS
CRANFIELD UNIVERSITY
ANDRÉS BARRIOS-MONTALVO
IN-ORBIT AUTONOMOUS POSITION DETERMINATION OF SATELLITES USING SPARSELY DISTRIBUTED GNSS MEASUREMENTS
For Geostationary Transfer Orbits, Geostationary Earth Orbit and Higher Altitudes
SCHOOL OF ENGINEERING
MSc IN ASTRONAUTICS AND SPACE ENGINEERING (SPACEMASTER)
MSc THESIS
Academic Year 2009-2010
Supervisors: Dr. Stephen Hobbs Dr. Christopher Kühl
Presented June 2010
This thesis is submitted in partial fulfillment (45%) of the requirements for the Degree of Master of Science in
Astronautics and Space Engineering
© Cranfield University, 2010. All rights reserved. No part of this publication may be reproduced without the
written permission of the copyright holder.
IN-ORBIT AUTONOMOUS POSITION DETERMINATION OF SATELLITES USING SPARSELY DISTRIBUTED GNSS
MEASUREMENTS For GTO, GEO and Higher Altitudes
Andrés Rolando Barrios-Montalvo
ABSTRACT
The state-of-the-art MosaicGNSS receiver at EADS Astrium is currently a standard
product for satellites operating in Low Earth Orbits (LEO). Previous assessments showed
that GPS signals taken from the main lobe only result in poor visibility conditions in
Geostationary Orbits (GEO). Including the sidelobes of the GPS satellites increases the
number of tracked satellites over time. This number however is still very low.
The aim of this thesis project is to find alternative solutions to improve the in-orbit
autonomous position determination of satellites in GTO, GEO and higher orbits; through
the change of the algorithms of the MosaicGNSS receiver, in order to deal with sparsely
distributed GNSS measurements. Thus, the proposed topic targets the development and
implementation of methods for batch-processing of the acquired signals.
The research process started with the development of attitude dynamics capabilities for
the EADS Astrium’s Space Environment Simulator, which was tuned and verified as
compared to observations made during hardware-in-the-loop tests using the Spirent RF
Simulator. A representative GTO/GEO mission scenario was created, where analysis of
the dynamics and visibility conditions showed that the mean value of tracked satellites
was found to be 1 and the maximum 5. In addition, two or more satellites are always in
track during 29.8% of the simulation time. In GEO, there are long periods that can last for
almost two hours where no satellite can be tracked, and only small periods of some tens
of minutes where up to 4 satellites can be tracked.
After the choice of a suitable state-of-the-art batch-processing algorithm including system
models, optimization criterion (Weighted Least Squares) and optimization approach
(Newton-Raphson), the implementation was carried on in a MATLAB environment; and
the results in terms of position determination accuracy were compared under different
configurations with respect to the results achieved using the state-of-the-art algorithms of
the MosaicGNSS receiver, which features a Kalman Filter.
The results show that in LEO, the use of 1000 measurements for the estimation provided
a good performance, and this number can be collected in approximately 2.7 minutes
(~3% of one orbit). For GEO, 4000 measurements provided a good performance, and this
number can be collected from an observation period that ranges from 45 minutes (~3%) to
3 hours (~12.5%). In this case, the batch-processing achieved an accuracy of 11.5 m with
1σ value of 7.4 m, in contrast to 45 m with 1σ value of 35.8 m achieved by the Navigation
Module of the MosaicGNSS receiver. Moreover, it is concluded that at least 2 satellites in
different positions should be in track during the observation period in order to achieve a fit
of an orbital arc during such observation period, where the second satellite not necessarily
has to be available during the whole time of the observation period.
The thesis extends an ESA project assessing the feasibility of GNSS receivers in GEO
and higher altitudes, and supports the activities of EADS Astrium’s on-going programs. In
the future, the results of this research are expected to be introduced as well in the
MosaicGNSS receiver as in EADS Astrium’s next generation multi-frequency/multi-
constellation receiver, the LION Navigator.
I have fought the good fight,
I have completed the race,
I have kept the faith.
2 Timothy 4, 7
He combatido el buen combate,
he corrido hasta la meta,
he mantenido la fe.
2 Timoteo 4, 7
You see things; and you say, ‘Why?’
But I dream things that never were;
and I say, ‘Why not?’.
Bernard Shaw
To God Father, for His LOVE, His Blessings, and His Gifts. To Maria Mother too.
To Rolando, my father, and Alicia Victoria, my mother, mother courage, who taught me to
fight for the things I believe in. For their unlimited and unconditional Love.
To Luis Alfredo and Leonardo, my beloved brothers, and to all my family.
To Sven Molin. I will never forget the day when I received your e-mail with the last call to
the SpaceMaster, the last call to my Space Dreams.
Ja, det här har varit väldigt bra, Sven.
To Bruno, who made it easier for me to leave our brilliant R&D home, GIDEMS, in Perú.
To Ludwig Bölkow’s angel, hon.-Prof. Dr. Eveline Gottzein, who developed and led the
Control and Simulation Dept. of the MBB Space Division, now EADS Astrium, because
she opened a window when all the doors appeared to be closed. She is so high above.
To Christopher Kühl, for guidance and control of this thesis through the whole process,
and overall, with the right attitude; that have made all the difference, Chris.
To Steve Hobbs, for his outstanding academic advice and encouragement.
To Victoria Barabash, who agreed review this piece of work during her holidays.
To my SpaceMaster fellows; our paths of life and cultures crossed on the way to Space.
We will meet each other again, somewhere over the Rainbow.
To all the people involved in the SpaceMaster Consortium, and to all the friends from all
over the world that I have met in Europe, especially in Germany, Sweden, and the UK.
To all the nice people at EADS Astrium, Ottobrunn. You all made it possible.
Vielen Dank nochmal für die tatkräftige Unterstützung!
To Pedro Paulet, Peruvian Space Pioneer, Father of Liquid Propellant Rocketry, who in
1895 became the first person to design and build a liquid-fueled rocket engine.
And, with all Heart, to my Мрiя [Mriya]. I never stopped to think of you.
Thank you everyone who was around; this undertaking has been a true team effort.
This is to the Space Ones.
This is to You.
The Author.
IN-ORBIT AUTONOMOUS POSITION DETERMINATION OF SATELLITES USING SPARSELY DISTRIBUTED GNSS MEASUREMENTS For GTO, GEO and Higher Altitudes
1 INTRODUCTION ................................................................................................ 1
1.1 State of the Art in Previous Space Missions ............................................ 2
1.2 Aim and Objectives .................................................................................. 5
1.2.1 Aim.................................................................................................... 5
1.2.2 Objectives ......................................................................................... 5
1.3 Methodology ............................................................................................ 6
2 STATE-OF-THE-ART REAL-TIME POSITION DETERMINATION
ALGORITHMS IN THE MOSAICGNSS RECEIVER .......................................... 7
2.1 Navigation Module ................................................................................... 7
2.2 Navigation Planning ................................................................................. 8
2.3 Navigation Solution .................................................................................. 9
2.3.1 Kinematic Navigation Solution .......................................................... 9
2.3.2 Dynamic Navigation Solution .......................................................... 10
2.4 Results obtained in previous navigation performance assessments on the
use of the MosaicGNSS in LEO and GEO ............................................. 13
2.4.1 In-flight navigation performance assessment in LEO...................... 13
2.4.2 Navigation performance assessment in GEO ................................. 14
3 ATTITUDE DYNAMICS FOR THE EADS ASTRIUM SPACE ENVIRONMENT
SIMULATOR .................................................................................................... 16
3.1 Requirements for a GTO and GEO scenario ......................................... 18
3.1.1 Orbit Requirements......................................................................... 18
3.1.2 Attitude Requirements .................................................................... 19
3.2 Design and implementation of the Attitude Dynamics............................ 21
3.2.1 Model and Algorithms ..................................................................... 24
3.3 Implementation of a representative GTO/GEO attitude and orbit
scenario ................................................................................................. 28
3.3.1 Manoeuvres for the orbit profile ...................................................... 28
3.3.2 Manoeuvres for the attitude profile.................................................. 32
3.4 Verification of the GTO/GEO attitude and orbit scenario........................ 32
4 ANALYSIS OF THE DYNAMICS AND VISIBILITY CONDITIONS IN GTO
AND GEO......................................................................................................... 35
4.1 Definition of Visible, Trackable, Tracked and Used GPS satellites ........ 35
4.1.1 Visible GNSS satellites ................................................................... 36
4.1.2 Trackable GPS satellite .................................................................. 37
4.1.3 Tracked GNSS satellite................................................................... 37
4.1.4 Used GNSS satellites in Navigation Solution.................................. 37
4.2 Verification of visibility conditions as compared to observations made
during closed-loop tests for LEO............................................................ 38
4.2.1 GPS and MosaicGNSS antenna patterns ....................................... 39
4.2.2 Analysis of received Carrier-to-Noise Density................................. 40
4.2.3 Analysis of visible vs. tracked GPS satellites.................................. 42
4.3 Verification of visibility conditions as compared to observations made
during closed-loop tests for GEO ........................................................... 44
4.3.1 GPS and MosaicGNSS antenna patterns ....................................... 44
4.3.2 Analysis of received Carrier-to-Noise Density................................. 45
4.3.3 Analysis of visible vs. tracked GPS satellites.................................. 47
4.3.4 Further discussion on performance tuning for the GEO scenario ... 49
4.4 Results and discussion on the expected visibility conditions in GTO
and GEO ................................................................................................ 49
4.4.1 GPS and MosaicGNSS antenna patterns ....................................... 50
4.4.2 Analysis of received Carrier-to-Noise Density................................. 51
4.4.3 Analysis of visible vs. tracked GPS satellites.................................. 52
4.4.4 Creation of the test and verification script for the Spirent RF
Simulator......................................................................................... 53
5 ESTIMATION TECHNIQUES AND STATE-OF-THE-ART
BATCH-PROCESSING ALGORITHMS ........................................................... 55
5.1 Estimation techniques: Batch-processing algorithms and the choice of an
adequate optimization criterion .............................................................. 56
5.1.1 System models ............................................................................... 57
5.1.2 Optimization criteria ........................................................................ 58
5.1.3 Optimization approach .................................................................... 60
5.1.4 Processing approach ...................................................................... 61
5.2 Batch-processing algorithms as used in Ground Stations...................... 61
5.3 Batch-processing approach: Previous experiences ............................... 67
5.4 Batch-processing approach: The chosen one........................................ 70
5.4.1 System models ............................................................................... 70
5.4.2 Optimization criterion ...................................................................... 75
5.4.3 Optimization approach .................................................................... 76
5.4.4 Batch-processing main module....................................................... 76
6 RESULTS AND DISCUSSION OF THE BATCH-PROCESSING
APPROACH ..................................................................................................... 78
6.1 Results in Low Earth Orbit ..................................................................... 78
6.1.1 Results using only pseudoranges as observations ......................... 79
6.1.2 Results including the weighting matrix as part of the optimization
criterion ........................................................................................... 81
6.1.3 Results including the range rates as part of the observations......... 81
6.2 Results in Geostationary Earth Orbit...................................................... 83
6.3 Further Assessment Studies .................................................................. 87
7 CONCLUSIONS AND RECOMMENDATIONS ................................................ 92
7.1 Conclusions ........................................................................................... 92
7.1.1 Regarding the attitude dynamics for the EADS Astrium’s Space
Environment Simulator.................................................................... 92
7.1.2 Regarding the verification of the EADS Astrium’s Space
Environment Simulator.................................................................... 93
7.1.3 Regarding the visibility conditions in GTO/GEO.............................. 94
7.1.4 Regarding batch-processing algorithms.......................................... 94
7.2 Recommendations ................................................................................. 96
8 BIBLIOGRAPHY AND REFERENCES ............................................................ 98
8.1 References............................................................................................. 98
8.2 Bibliography ......................................................................................... 101
9 APPENDIX ..................................................................................................... 102
NOMENCLATURE
ΔV Velocity increment
AEF Apogee Engine Firing
AMU Amplitude Measurement Units
AO-40 AMSAT-OSCAR 40 Spacecraft
AOCS Attitude and Orbit Control Subsystem
ARTES Advanced Research and Telecommunications Systems
BWLS Bayesian Weighted Least Squares
C/A-Code Coarse/Acquisition Code
CHAMP CHAllenging Minisatellite Payload Satellite Mission
Cmd Command
C/N0 Carrier-To-Noise Density
CP Carrier Phase
CPS Combined Propulsion Subsystem
CPU Central Processing Unit
DC Direct Current
DEOS Delft Institute of Earth Observation and Space Systems
DLL Delay-Locked Loop
DLR Deutsches Zentrum für Luft- und Raumfahrt
DoD Department of Defense
DOY Day Of Year
DSP Digital Signal Processor
EADS European Aeronautic Defence and Space Company
ECEF Earth Centred / Earth Fixed
ECI J2000 Earth Centred Inertial J2000
EGM96 Earth Gravity Model 96
EIRP Effective Isotropic Radiated Power
EME2000 Earth Mean Equator and Equinox of J2000 (ECI J2000)
ESA European Space Agency
FDIR Failure Detection, Isolation and Recovery
FLL Frequency-Locked Loop
GALILEO European Global Navigation Satellite System
GEO Geostationary Earth Orbit
GHOST GPS High Precision Orbit Determination Software Tools
GNSS Global Navigation Satellite System
GPS Global Positioning System
GSOC German Space Operations Center
GTO Geostationary Transfer Orbit
GUTS Global and high accUracy Trajectory determination System
HEO High Earth Orbit
IAU International Astronomical Union
IERS International Earth Rotation and Reference Systems Service
IGS International GNSS Service
JAXA Japan Aerospace eXploration Agency
KIPP Kinematic Point Positioning
LEO Low Earth Orbit
LNA Low Noise Amplifier
LOS Line Of Sight
LS Least Squares
LV Launch Vehicle
LVLH Local Vertical / Local Horizontal
MIR Russian Space Station
MBB Messerschmitt-Bölkow-Blohm GmbH
MLE Maximum Likelihood Estimate
MSE Mean Square Error
Msg Message
NASA National Aeronautics and Space Administration
NED Local Geographic / North-East-Down
NIMA National Imagery and Mapping Agency
OD Orbit Determination
ORD Operational Requirement Document
P-Code Precise Code
PLL Phase-Locked Loop
POD Precise Orbit Determination
PR Pseudorange
PRN Pseudo Random Number
PVT Position, Velocity and Time
RAIM Receiver Autonomous Integrity Monitoring
RDOD Reduced Dynamics Orbit Determination
RF Radio Frequency
RMS Root Mean Square
SAR Synthetic Aperture Radar
S/C Spacecraft
SLR Satellite Laser Ranging
SNR Signal-To-Noise Ratio
SPP Single-Point Positioning
SSTO Super-Synchronous Transfer Orbit
SSV Space Service Volume
SV Space Vehicle
S/W Software
TEAMSAT Technology education Experiment Added To MAQSat
TM Telemetry
UMT User Motion File
URE User Range Error
UTC Coordinated Universal Time
UT/CSR The University of Texas at Austin / Center for Space Research
WGS84 World Geodetic System (1984)
WLS Weighted Least Squares
YES Young Engineer’s Satellite
IN-ORBIT AUTONOMOUS POSITION DETERMINATION OF SATELLITES USING SPARSELY DISTRIBUTED GNSS
MEASUREMENTS For Geostationary Transfer Orbits, Geostationary
Earth Orbit and Higher Altitudes
1 INTRODUCTION
1957, October 4th. With the launch of the first spacecraft, the artificial satellite Sputnik I,
the Space Age began. From that day on, the world and the way we do things have
changed radically with the use of space technology in different areas such as Exploration,
Earth Observation, Communications and Navigation.
EADS Astrium is one of the leading companies in the development of new products in the
space industry. One of these products is the MosaicGNSS receiver, a space-borne
radiation-tolerant single-frequency GNSS (Global Navigation Satellite System) receiver.
“Spaceborne GPS receivers represent a cost efficient alternative to traditional ground
based tracking systems for satellites in low Earth orbit (LEO). Aside from offline orbit
determination, GPS receivers can provide real-time navigation and timing information and
therefore contribute to an increased on-board autonomy. With a representative accuracy
of 10 m, even single-frequency GPS receivers can nowadays meet the navigation
requirements of a wide range of LEO missions” (Montenbruck et al., 2008).
“The MosaicGNSS receiver of EADS Astrium represents a fully space qualified receiver
that is specifically designed for high robustness and longterm use in a space environment.
The receiver comprises a main electronic unit, a single L1 GPS patch antenna and an
external low noise amplifier (LNA). The signal correlation is performed in software and up
1
to eight satellites can be tracked simultaneously with the current hardware configuration.
A navigation filter ensures a smooth and continuous navigation solution even under
restricted GPS visibility” (Montenbruck et al., 2008).
This MosaicGNSS receiver is established as a standard product for Low Earth Orbits
(LEO). It features a Kalman-Filter with highly accurate models of the Earth gravity, air
drag, solar radiation pressure and other perturbations. As such, it can be used in
Geostationary Earth Orbits (GEO) by adjustment of the Kalman Filter parameters in order
to take into account the present dynamic conditions and the visibility of the GNSS
satellites. Previous assessments showed that GPS signals taken from the main lobe only
result in poor visibility conditions in geostationary orbits. Using sidelobes in addition to the
main lobe of the GPS satellite increases the number of tracked satellites over time. “For
instance, more than one satellites are tracked for over 78.1% of the time (mean number of
tracked satellites is 2.2) when sidelobes are used versus only 29.8% (mean number of
tracked satellites is only 1.3) when the main lobe only is employed” (Astrium, 2006). This
number however is still very low. Additionally, during the transfer to geostationary orbits,
the visibility is highly dependent upon the manoeuvres performed, ranging from a Sun-
pointing attitude to calibration manoeuvres. Consequently, alternative methods for orbit
determination need to be employed.
Therefore, this master thesis focuses on the improvement of the in-orbit autonomous
position determination of satellites in Geostationary Transfer Orbits (GTO), Geostationary
Earth Orbits (GEO) and Higher Orbits. This implies a change in the algorithms to deal with
sparsely distributed GNSS measurements.
The thesis extends an ESA project assessing the feasibility of GNSS receivers in GTO,
GEO and higher altitudes, and supports the activities of EADS Astrium’s on-going
programs. Therefore, it is of mutual benefit in the co-operation between education and
industry. In the future, the results of this research are expected to be introduced as well in
the MosaicGNSS receiver as in EADS Astrium’s next generation multi-frequency/multi-
constellation receiver, the LION Navigator.
1.1 State of the Art in Previous Space Missions
There is widespread interest in the extension of autonomous GPS-based Spacecraft
navigation to GTO, GEO and HEO; however, due to reduced GPS observability at high
altitudes and limitations of existing receivers, the use of GPS in Space has been limited
2
primarily to regions where point solutions are always possible, typically below altitudes of
3000 km. According to Moreau et al. (2002), a number of papers have appeared in the
literature examining the reception of GPS signals from above the GPS constellation and
presenting expected navigation accuracies based on simulation.
Moreau et al. (2002) mention that, in late 1997 three separate high altitude GPS
experiments were launched (See Table 1.1), the primary objectives of which were to
validate the concept of GPS tracking at high altitudes, and to return actual measurements
of GPS sidelobes and back lobe transmissions, data that are generally unavailable. Two
of these satellites, TEAMSAT/YES and EQUATOR-S utilized existing GPS receivers with
LEO heritage. Limitations in the receiver’s acquisition functions at high altitudes were
overcome by manually commanding the receiver to track specific GPS satellites. Notably,
EQUATOR-S tracked a GPS satellite from an altitude of 61 000 km and demonstrated
tracking of GPS sidelobe signals from HEO. However, due to limited battery life of the
TEAMSAT experiment and premature failure of the Spacecraft on EQUATOR-S, only a
limited amount of GPS data was returned from these missions.
The Falcon Gold satellite sponsored by the US Air Force Academy took a different
approach, using a sampling receiver built by NAVSYS Corporation to record sparse
samples of the GPS spectrum from GTO, as Moreau et al. has suggested. However, the
experiment operated for only a couple of weeks before the S/C battery was depleted, and
a minimal amount of data was ultimately extracted from the measurements. “The normal
receiver processing functions were then performed on the ground in post-processing. At
the time, these experiments were assumed to be the first ever examples of GPS tracking
in a HEO, or from above the GPS constellation. Then, in September 2000 the first public
disclosure was made of a restricted US Department of Defense (DoD) satellite program
that has been using GPS measurements to perform the operational orbit determination for
a geostationary satellite for at least several years. Similar to the Falcon Gold approach,
they use a distributed GPS receiver architecture comprised of an analog translator on the
Spacecraft coupled with a ground-based receiver and processing system. GPS signals
are translated from the L1 frequency to a convenient intermediate frequency, and
transmitted to the ground, combined with data from a ground receiver and used to
compute the navigation solution. … The Department of Defense program has actually
gone a step further and demonstrated an operational GPS based orbit determination
system; although it uses a distributed GPS receiver architecture that does not perform
closed-loop GPS signal tracking onboard the Spacecraft”.
3
Table 1.1. HEO GPS flight experiments. Source: Moreau et al., 2002 (See references therein).
Orbit/Date/Duration Architecture Comments Mission US DoD Satellite
Geostationary GPS-based OD system dates to early 1990s, ongoing program.
Distributed architecture using a transponder on the Spacecraft and a ground based receiver
Operational GPS-based OD system for GEO satellite, uses specialized high-gain antenna design utilizing an array of patch antennas.
TEAMSAT-YES
GEO transfer orbit Launched Oct. 1997 Operated ~2 weeks
Trimble TANS-II Tracked GPS signals up to ~26 000 km altitude. Mission length limited by several week life span of Spacecraft battery.
Equator-S 500 x 67 000 km alt. Launched Dec. 1997 Operated several months
Motorola Viceroy GPS experiment operated intermittently over several months. Tracked PRN 30 from an altitude of 61 000 km and tracked GPS sidelobes signals. Satellite failed prematurely.
Falcon Gold
GEO Transfer Orbit Launched Oct. 1997 Operated several weeks
NAVSYS TIDGIT sampling receiver
Receiver returned digitized samples of GPS spectrum, processed on ground.
Experiment operated for a couple of weeks.
STRV 1c&d GEO Transfer Orbit Launched Nov. 2000
microGPS II sampling receiver
No GPS data returned due to Spacecraft failure.
AO-40 1000 x 58 800 km alt. Launched Nov. 2000 Currently operating
Two Trimble TANS Vectors
Spacecraft currently spin stabilized, GPS receiver 1 activated from 25th Sept. to 2nd Nov., 2001. Uses “high gain” receiving antennas.
In 2000, the AMSAT-OSCAR 40 Spacecraft was launched and carried within it a GPS
flight experiment on HEO, which aims to use GPS as a low-cost orbit determination
sensor for future HEO missions. Like TEAMSAT and EQUATOR-S, AO-40 uses a
receiver with LEO flight heritage. According to Moreau et al. (2002), the GPS receiver
“regularly returned GPS observations from points all around the orbit. Raw signal-to-noise
levels as high as 12 AMUs (Trimble Amplitude Measurement Units) or approximately 48
dB-Hz were recorded at apogee, when the Spacecraft was close to 60 000 km in altitude.
On several occasions when the receiver was below the GPS constellation (below 20 000
km in altitude), observations were reported for GPS satellites tracked through side lobe
transmissions. Although the receiver has not returned any point solutions, there has been
at least one occasion when four satellites were tracked simultaneously, and this short arc
of data was used to compute point solutions. … Already AO-40 has demonstrated the
feasibility of recording GPS observations in HEO using an unaided receiver”.
4
At the present moment, a European consortium has been working on the development of
the Small Geostationary Platform since March 2007, under the Advanced Research and
Telecommunications Systems (ARTES) 11 programme of the European Space Agency
(ESA). The Small GEO is planned to be launch in 2011-2012, and will incorporate
advanced payload technology: DVB S2 Processor and active antennas (European Space
Agency, 2010). In addition, the Small GEO has good chances to be the first commercial
platform to test a GNSS receiver in GEO (Zentgraf et al., 2010). The EADS Astrium’s
MosaicGNSS receiver is expected to be used in this mission.
1.2 Aim and Objectives
1.2.1 Aim
The aim of this project is to find alternative solutions to the in-orbit autonomous position
determination of satellites in GTO and GEO, through the change of the algorithms of the
EADS Astrium’s state-of-the-art MosaicGNSS receiver, in order to deal with sparsely
distributed GNSS measurements.
1.2.2 Objectives
The development of methods for batch processing of acquired GNSS signals defines the
following objectives:
• Summarize the algorithms used for position determination in the current navigation
product, the MosaicGNSS receiver,
• Summarize the results obtained in previous navigation performance assessments on
the use of the MosaicGNSS receiver in GEO,
• Determine the dynamics and visibility conditions of the GPS constellation for a LEO
circular orbit and GEO,
• Verify the visibility conditions for LEO and GEO as compared to the observations
made during closed-loop tests using the Spirent RF Simulator and the MosaicGNSS
receiver in the loop,
• Develop attitude dynamics capabilities in the MATLAB-based S/W Simulation
Environment of EADS Astrium,
5
• Create a representative GTO attitude and orbit scenario,
• Determine the expected visibility conditions in GTO and GEO,
• Investigate estimation techniques and batch-processing algorithms,
• Investigate state-of-the-art batch-processing algorithms, as used in the satellite
ground stations,
• Choose an adequate batch-processing algorithm and optimization criterion,
• Implement the batch-processing methods in a MATLAB environment,
• Compare and evaluate the achievable position determination accuracy under the
MATLAB environment, with respect to the results achieved using the state-of-the-art
algorithms available from the current navigation product, the MosaicGNSS receiver.
1.3 Methodology
The following methodology is proposed for the development of this project:
• Analysis of the state-of-the-art real-time position determination algorithms, used in
the current navigation product,
• Analysis of dynamic and visibility conditions in GTO and GEO,
• Investigation of state-of-the-art batch-processing algorithms, as they are used in
satellite ground stations,
• Adaptation of the methods to on-board autonomous processing, and
• Comparison and evaluation of the achievable position determination accuracy.
The process starts with the analysis of the state-of-the-art real-time position determination
algorithms, used in the current navigation product, continues with the adaptation of the
most suitable state-of-the-art batch-processing algorithm, and finishes with evaluation of
the achievable position determination accuracy using such estimation technique.
6
2 STATE-OF-THE-ART REAL-TIME POSITION DETERMINATION ALGORITHMS IN THE MOSAICGNSS RECEIVER
Introduction
“The MosaicGNSS receiver of EADS Astrium represents a fully Space qualified receiver
that is specifically designed for high robustness and long-term use in a Space
environment. … A navigation filter ensures a smooth and continuous navigation solution
even under restricted GPS visibility” (Montenbruck et al., 2008). The following sections
describe the core of the Navigation Module: The Navigation Planning and the Navigation
Solution.
2.1 Navigation Module
The Navigation Module is made up of two modules as it is shown in Figure 2.1:
• Navigation Solution
• Navigation Planning
Sensor Module
ChannelController
Navigation Module
Solution
Planning
Cmd & Msg Handler
TMHandler
PVT
Predictions
Raw Data,Ephemeris
Almanac
Figure 2.1. Navigation Module: Interfaces and data flow. Source: Astrium, 2010a.
7
Additional two modules are required to build up a functional system:
• GPS Sensor
• Command & Message Handler
The GPS Sensor module is in charge of acquiring the raw measurements from the GPS
constellation (Astrium, 2002). It provides to the Navigation Solution module the
information of measured pseudorange and Doppler shifts, and decoded navigation data
such as clock parameters of the GPS satellites and User Range Errors (URE). At the
same time, it provides to the Navigation Planning module the decoded navigation data i.e.
almanac and ephemeris. The Navigation Planning module is in charge of calculating the
visibility of the GPS satellites and of making predictions of the propagation delays,
Doppler shifts and the associated uncertainties. All these values are returned to the GPS
Sensor module in order to have an optimal assignment to the channels of the
MosaicGNSS receiver of GPS satellites that are going to be tracked.
The Navigation Solution module calculates the position, velocity and time (PVT) solution
for the user S/C and provides it to the Navigation Planning module.
2.2 Navigation Planning
This module calculates the visibility of all GPS satellites, performs the planning for the
assignment of the channels to the tracking of GPS satellites, using mainly the ECI J2000
reference frame. First of all, the boresight vector of the GPS antenna is determined in
such reference frame, and then the positions of all the GPS satellites (Space Vehicles,
SV) and line-of-sight (LOS) from the user S/C to the SV are calculated. The geometrically
visible SVs are determined, using the LOS vectors, antenna boresight vector and the half
cone angles of the receiver antenna and of GPS signals. The GPS SVs that are masked
by the Earth and signals that pass through the atmosphere are excluded from the visible
set (the height of the atmosphere is a commanded value). In case that the altitude of the
user S/C is lower than the atmospheric height, all GPS SVs with LOS vectors below the
tangential plane of the user S/C’s orbit are excluded from the visible set. The algorithms
are described in Astrium (2002).
8
The assignment of the GPS satellites that are going to be tracked to the channels of the
receiver is based on the priority defined by the planning module. The algorithms are
described in Astrium (2002).
Finally, the following outputs are computed for the predictions:
• Pseudorange estimation/propagation,
• Doppler frequency,
• 1σ uncertainty for propagation delay,
• 1σ uncertainty for Doppler shift.
There are two sets of data from which those predictions can be calculated: the
measurement model and the prediction node. The measurement model is calculated in
the navigation solution module for each tracked GPS SV. This model is available if a
solution is calculated and the SV is in track and valid. The ephemeris data is used for the
calculations. The other set of data, the prediction node, is calculated in the procedure that
checks the GPS visibility. This model is available when there is almanac data available.
These predictions are performed once per second for every satellite appointed to a
channel. The algorithms are described in Astrium (2002).
2.3 Navigation Solution
There are two major navigation solution modules: the kinematic solution and the dynamic
solution. These two modules represent different navigation solution methods, and are
executed alternatively. Both methods provide navigation solutions at a frequency of 1 Hz
(Astrium, 2002).
2.3.1 Kinematic Navigation Solution
The kinematic solution is an instantaneous navigation solution with 4 or more SVs in track
at the same time to calculate the four unknowns: position vector and clock bias. When the
navigation solution method is set by an external command to be the kinematic solution,
the navigation solutions are computed with this method using least square algorithms; the
9
default method is the dynamic solution. The algorithms are described in Astrium (2002).
Figure 2.2 depicts the sub-modules and interfaces of the kinematic navigation solution.
GPSSensor Calc.
Meas.Model
Calc.DeltaStateVector
CorrectPositionVelocity
CmdMsg
Handler
Navigation Planning
I/F1b
I/F7
I/F1a
I/F4a
I/F8
I/F9
I/F5
I/F4bI/F3
Figure 2.2. Kinematic Navigation Solution: Sub-modules and interfaces. Source: Astrium, 2002.
2.3.2 Dynamic Navigation Solution
The dynamic solution is a navigation solution calculated using sequential data processing
(Kalman filtering). This method requires a model of the dynamics of the user S/C and
statistical knowledge of the process and measurement noise. Even in situations with less
than four tracked SVs, a dynamic solution can be provided. If less than two SVs are
available, the dynamic solution is solely based on the implemented orbit models. If the
situation of having less than two SVs available remains for a specific time, the solution is
declared invalid.
The initialization of the Kalman filter is in general performed by the kinematic navigation
solution as entry point. However, there also exist options of having a “Warm Start” using
uploaded initial conditions, or a “Hot Start” using the last PVT from before a restart
happened. If an initialization of the Kalman filter is not possible, e.g. due to low visibility,
the receiver will continue in the kinematic solution mode until an initialization is successful.
When less than 2 satellites are visible, the state is propagated, but the navigation solution
mode remains in dynamic solution mode (Astrium, 2002). Figure 2.3 depicts the sub-
modules and interfaces of the dynamic navigation solution.
10
GPSSensor Calc.
Meas.Model
Filt. sol. for
PVT
Propag. to next
time step
CmdMsg
Handler
Navigation Planning
I/F1b
I/F1a
I/F4a
I/F8
I/F7
I/F5
I/F4b I/F3
Figure 2.3. Dynamic Navigation Solution: Sub-modules and interfaces. Source: Astrium, 2002.
2.3.2.1 Orbit Model
The orbit model in the MosaicGNSS receiver propagates the position and velocity of the
user S/C in ECI J2000 Frame using the different forces and accelerations that the user
S/C is subject to. The propagator takes into account for the acceleration the following
sources:
• Gravitational force exerted by the Earth, for which the Earth Gravity Model 96
(EGM96), developed by NASA and NIMA is used.
• Perturbations from the gravitational forces of the Sun and Moon.
• Solar radiation pressure.
• Air drag due to the atmosphere (essentially for LEO orbits).
• External accelerations due to the activation of thrusters, provided by telecommand to
the MosaicGNSS receiver.
2.3.2.2 Sequential Filtering: The Kalman Filter
For the Kalman filter to eliminate the receiver clock bias from the measurements of the
pseudoranges, the differences method is used, i.e. instead of using every single
measured pseudorange, the difference between two measured pseudoranges is
calculated, thereby eliminating common errors.
11
The measurement vector for the filter update is therefore:
( )Tknkikk zzzz ,,,,1 LK=
niki rrz −= Eq. 2.1
where:
zk = Vector with the set of n measurements at time tk.
zki = ith element of vector zk.
ri = ith measured pseudorange at time tk.
And, the vector of estimates is given by:
( )Tknkikk zzzz ˆ,,ˆ,,ˆˆ 1 LK=
( ) ( )ninikuserngpskuserigpsniki bbcrrrrrrrrz Δ−Δ−Δ−Δ+−−−=−= −−,,,,ˆˆˆ Eq. 2.2
where:
kz = Vector with the set of n measurements at time tk.
kiz = ith element of vector . km
ir = ith measured pseudorange at time tk.
igpsr , = Position vector of the ith GPS satellite in ECEF reference frame at time tk.
−kuserr , = Position vector of the user S/C in ECEF reference frame at time tk.
Δri = Correction to the pseudorange due to the Sagnac Effect.
c = Speed of light.
Δbi = Clock error of the ith GPS satellite.
Regarding the Sagnac Effect, while most calculations are conducted in the ECI coordinate
system, the positions of the GPS satellites are first computed in the ECEF coordinate
system at time of signal transmission and then transformed into ECI. However, in order to
minimize the number of computations, the transformation matrix from the ECEF to the ECI
system is calculated only once every second at the time of measurements. Therefore, the
relative rotation between the ECEF and the ECI system during the time of transit has to be
compensated, which is also known as the Sagnac correction (Astrium, 2010a).
12
The state vector is then updated with:
( kkkkk zzKxx ˆˆˆ −+= −+ ) Eq. 2.3
And, the error covariance matrix is updated with:
Tkkk
Tkkkkkk KRKHKIPHKIP +−−= −+ )()( Eq. 2.4
where:
Kk = Weighting matrix at time tk, also known as the Kalman gain.
Hk = Observation matrix at time tk.
Rk = Uncertainty matrix in the measurements at time tk.
The algorithms are described in the reference Astrium (2002).
2.4 Results obtained in previous navigation performance
assessments on the use of the MosaicGNSS in LEO and
GEO
2.4.1 In-flight navigation performance assessment in LEO
During the years 2007 and 2008, the Deutsches Zentrum für Luft- und Raumfahrt (DLR)
performed an in-flight performance assessment of the MosaicGNSS receiver for satellite
navigation in the framework of the Earth Observation mission TerraSAR-X (Montenbruck
et al., 2008).
Before the in-flight performance assessment, DLR conducted a pre-flight validation of the
MosaicGNSS receiver. “In the absence of ionospheric path delays, broadcast ephemeris
errors and multipath errors, a kinematic positioning accuracy of roughly 20-30 m (3D rms)
has been obtained in the simulator test bed. … In case of TerraSAR-X, the filtered
navigation solution is used exclusively. This reduces the short-term noise of the position
and velocity measurements and safeguards against a loss of navigation if less than four
satellites can be tracked. Under the ideal case of a fully error free scenario, a filtered
navigation solution accuracy of 7 m (3D rms position error) and 1.5 cm/s (3D rms velocity
error) has been obtained in the pre-flight signal simulator tests. Adding representative
13
ionospheric and broadcast ephemeris errors to the simulation, a slightly degraded
navigation accuracy of 12 m and 2.5 cm/s, respectively, was achieved” (Montenbruck et
al., 2008).
Table 2.1 presents the in-flight characterization of position and velocity errors of the
filtered MosaicGNSS navigation solution, and Figure 2.4 shows the cross-track position
errors for the April 12th-13th, 2008 period (Day of year, DOY, 103-104) relative to a centre
of mass reference trajectory.
Table 2.1. Position and velocity errors of the MosaicGNSS navigation solution for April 12th-13th, 2008 period (DOY 103-104). Source: Montenbruck et al., 2008.
Parameter Radial Along-track Cross-track 3D RMS Peak
Position 3.530 ±4.170 m 1.250 ±3.270 m 0.160 ±2.720 m 7.040 m 22.00 m
Velocity 0.004 ±0.008 m/s -0.001 ±0.004 m/s 0.000 ±0.006 m/s 0.011 m/s 0.04 m/s
Figure 2.4. Cross-track position errors of the MosaicGNSS navigation solution from the in-flight assessment in LEO. Source: Montenbruck et al., 2008.
2.4.2 Navigation performance assessment in GEO
In the year 2006, tests were performed by EADS Astrium in order to investigate the
navigation performance of the MosaicGNSS receiver under GEO conditions, when in
addition to the main lobe of the GPS satellite antenna also the sidelobes are used.
Using the MosaicGNSS receiver in the loop, both cases, with and without sidelobes, were
simulated. “In each case, the number of tracked satellites, 3D rms position error and the
associated pseudoranges were recorded over a 72 hours time span (3 days). The x-, y-
and z-component of position and velocity in the ECEF reference frame were also
recorded” (Astrium, 2006).
14
The advantage of using sidelobes in addition to the main lobe of the GPS satellite antenna
is clearly shown by comparing the number of tracked satellites over time. “For instance,
more than one satellite is tracked for over 78.1% of the time (mean number of tracked
satellites is 2.2) when sidelobes are used versus only 29.8% (mean number of tracked
satellites is only 1.3) when only the main lobe is employed” (Astrium, 2006).
Finally, the 3D RMS position error after about two orbits was found to be 60.3 m in case of
side lobes versus 174.3 m when only the main lobe is used. Figure 2.5 shows the number
of tracked satellites and 3D RMS error over the 72 hours time span.
Figure 2.5. 3D RMS error of the filtered MosaicGNSS navigation solution (blue) and number of tracked satellites (green) from the assessment in GEO. Source: Astrium,
2006.
15
3 ATTITUDE DYNAMICS FOR THE EADS ASTRIUM SPACE ENVIRONMENT SIMULATOR
Introduction
In 2009, EADS Astrium carried out a study for the European Space Agency (ESA) which
investigated the feasibility of Global Navigation Satellite System (GNSS) receivers as
autonomous AOCS (Attitude and Orbit Control Subsystem) in-orbit sensor for GTO, GEO
and higher orbits (Astrium, 2010b). The risk of using GPS for commercial Space missions
at geostationary altitudes, in particular civil communications and weather satellites was
greatly reduced in February 2000 with the release of the GPS Operational Requirement
Document (ORD) to support the upgrade of GPS Block IIF and incorporating a first
description of a Space Service Volume (SSV), extending from 3 000 km to approximately
geostationary altitude (Air Force Space Command, 2002). Prior to this update, the half-
beam- angle of the GPS L1 antenna was specified only up to 14°, which is approximately
the half cone angle under which the Earth is seen from GPS altitude (±13.9°). The above
mentioned ORD specifies the signal L1 at a half-beam angle of 23.5° at worst case
(geosynchronous) altitude, which is approximately 9.6° wider than the half-cone of the
Earth and allows satellites in geosynchronous orbit to receive signals from GPS satellites
behind the Earth using a nadir pointing antenna.
In the frame of these activities, a MATLAB-based simulation model was created for
performance evaluation of on-board orbit determination by GNSS, to support future
development of GNSS receivers and applications in HEO, and expansion of the GALILEO
constellation into the Space Service Volume (SSV). The model of the MATLAB-based
Simulation Environment (S/W Simulator) was verified by comparison to MosaicGNSS
receiver’s PVT Navigation Solution Module by EADS Astrium in a real-time test-
environment (Mittnacht and Fichter, 2000). Figure 3.1 depicts the basic structure of the
Simulation Environment, which contains:
• A GNSS Orbit Propagation block,
• An User S/C Orbit Propagation block,
16
• A Navigation Module Input Generation block,
• A Navigation Module block, and
• An Acceleration Determination block.
Figure 3.1. Structure of the S/W Simulation Environment for GNSS. Source: Astrium, 2010b.
This Simulation Environment provided the functionality of setting the orientation of the
user S/C’s antenna boresight in nadir- or zenith-pointing. This capability was enough for
simulating LEO scenarios, where the antenna boresight should point to zenith in order to
get visible GNSS satellites and therefore their signals, and GEO scenarios, where the
antenna boresight should point to nadir to do so. Although, this functionality was
appropriate for already established LEO and GEO scenarios, it was not enough when a
complete scenario is required, which includes transfer orbits, manoeuvres and the
transition to the final GEO, which change the orientation of the antenna boresight at every
time. Therefore, the objective of this section is to develop attitude dynamics capabilities
for this S/W Simulator.
17
3.1 Requirements for a GTO and GEO scenario
In a GTO scenario, the addition of manoeuvres is mandatory to get a representative
profile of the visibility of GNSS satellites from the separation of the launch vehicle to the
final insertion in GEO. Such manoeuvres can range from manoeuvres for pointing to the
Sun and calibration of the gyros to apogee manoeuvres, among others. As they change
the orientation of the MosaicGNSS’ antenna boresight, which is fixed with respect to the
body frame of the user S/C, these manoeuvres should be simulated. Therefore, the
introduction of an attitude dynamics module for the S/W Simulator was identified as a
necessary pre-requisite for further assessments.
3.1.1 Orbit Requirements
An overview of a typical transfer sequence for a geostationary Spacecraft using an Ariane
5 Launch Vehicle is shown in Figure 3.2. Orbits from injection to the geosynchronous orbit
are plotted in the inertial plane X-Y (ECI J2000 reference frame), where Earth is depicted
in the centre. The GPS altitude is depicted as a black circumference.
+Z-axis in cruising mode (-Z-axis is Sun-pointing)
Figure 3.2. Typical transfer sequence for a GEO Spacecraft. Three intermediate orbits for the GTO (blue), the geosynchronous orbit (red) and the GPS orbit (black) are depicted. The magenta arrow near the Earth shows the orientation of the S/C’s +Z-axis in Sun Cruising Mode (-Z-axis is Sun-pointing). The yellow shadow depicts the range of possible Sun-Earth-Apogee angles, and the yellow circle represents
the Sun position.
18
At injection, the perigee altitude can be no more than 250 km (Ariane), with an apogee
close to the GEO altitude (42 165 km). In this case, the Super-Synchronous Transfer Orbit
(SSTO) case is not considered.
Several burns, typically 3, are performed at apogee in order to raise the perigee up to the
GEO altitude. Therefore, each burn moves the satellite on a new orbit called Intermediate
Orbit, up to the final one.
As a special requirement, the Sun should be always on the apogee side. More precisely,
the Sun-Earth / Earth-apogee angle is roughly in a range from 0° to 40°, printed in yellow
in Figure 3.4 above.
3.1.2 Attitude Requirements
Regarding the attitude profile, three cases are distinguished: the first transfer orbit, the
Sun cruising mode and the sequence of attitudes before each apogee boost.
Parking Orbit .- After the injection in the first transfer orbit by the Launch Vehicle, several
manoeuvres are performed. The first manoeuvre is for the Sun acquisition in order to
deploy the solar arrays, where the cells should point towards the Sun. This Sun cruising
attitude is kept until the second set of manoeuvres is performed for the calibration of the
gyros. Basically, it consists on a 20° pitch manoeuvre with respect to the Sun-pointing
attitude for the first calibration, and then a 45° pitch manoeuvre for the second calibration.
Finally, the last manoeuvre brings the satellite back to a Sun-pointing attitude or Sun
Cruising Mode. Figure 3.3 shows this first part of the GTO, where the positions around the
orbit are labelled: 0) Transfer orbit injection, 1) Initialization of AOCS and CPS (Combined
Propulsion Subsystem) subsystems, 2) Sun acquisition, 3) Solar array deployment, cells
pointed towards the Sun, 4) Sun cruising attitude, 5) Sequence of gyro calibration, 6)
Manoeuvre to acquire the first gyro calibration attitude, 7) Second sequence of gyro
calibration, 8) Manoeuvre to go back to a Sun-pointing attitude, 9) Sun cruising mode.
19
Figure 3.3. Transfer Mode – First Orbit.
Sun Cruising Mode .- Most of the time, the satellite is in cruising mode during the
transfer phase, where the -Z-axis of the satellite (-Zsat) is pointing to the Sun, with usually
no bias. In Figure 3.4, the +Zsat is represented by the arrow at a given position in this
cruising attitude.
Figure 3.4. Transfer Mode - Sun Cruising Mode.
20
Consequently, assuming that there is no bias in the satellite attitude, the helix antenna
and patch antenna are kept in a constant and near inertial direction. Actually, this direction
is linked to the Sun and thus moving at about 1°/day, therefore it is called near inertial.
Apogee Manoeuvres Mode .- Out of the cruising mode, the satellite has to perform a
sequence of attitude manoeuvres before and after each apogee burn, as it is shown in
Figure 3.5. Before each of the three apogee burns, several attitude manoeuvres are
performed in order to change from a Sun-pointing attitude to an apogee boost attitude.
After the burn has been performed plus a stand-by period, the satellite returns to the Sun-
pointing Cruising Mode.
Figure 3.5. Transfer Mode – Apogee Boost.
3.2 Design and implementation of the Attitude Dynamics
An attitude dynamics module was developed for the S/W Simulator in order to meet the
requirements pointed out above. This new module was included as part of the user S/C
Orbit Propagation block in the model and is shown in Figure 3.6 below.
21
Figure 3.6. User S/C Attitude Dynamics Module of the S/W Simulator.
22
This function calculates the attitude of the user S/C, after the execution of the specified
manoeuvres for the current time. The function returns the representation of the Body
Frame in the following reference frames: ECI J2000, ECEF and LVLH.
Additionally, it receives as input the attitude of the user S/C antenna boresight with
respect to the body reference frame, and returns as outputs the same attitude in the
following reference frames: ECI J2000, ECEF and LVLH.
The key data structure for the implementation of the attitude profile in the S/W Simulator is
the matrix ATTITUDE_MANOEUVRES_MATRIX. This matrix contains all the information
needed for the attitude dynamics. The definition of the matrix is as follows:
[Column 1: GPS Time: Absolute GPS Time (s).
Column 2: Manoeuvre Command.
Column 3: Rotation Method.
Column 4-13: Parameters of the rotation method.
]
Table 3.1 shows the inputs, parameters and outputs of the attitude dynamics module. A
detailed definition of them as well as the definition of the useful reference frames can be
found in Appendix A.
Table 3.1. Interfaces of the attitude dynamics module.
Interface Description
Inputs GPS reference time, user S/C position in ECI J2000, user S/C velocity in ECI J2000, sun position in ECI J2000, rotation matrix from ECI J2000 to ECEF, axes of the user S/C in Body Frame, and antenna boresight of the user S/C in Body Frame.
Parameters Matrix with the attitude manoeuvres: GPS time, command, rotation method, and parameters of the rotation method.
Outputs Axes of the user S/C in ECI J2000, ECEF, and LVLH reference frames. Antenna boresight of the user S/C in ECI J2000, ECEF, and LVLH reference frames.
23
3.2.1 Model and Algorithms
When a rotation should be executed at the current GPS time, the attitude dynamics
module can perform 3 groups of manoeuvres. The first group is to produce an absolute
attitude with respect to the selected reference frame: ECI J2000, LVLH or Sun-pointing.
The second group involves a rotation from an initial absolute attitude to a final attitude with
respect to the selected reference frame: ECI J2000, LVLH or Sun-pointing. And, the last
group involves a rotation with respect to the body frame, although this last method was
not implemented within the purposes of the present project.
3.2.1.1 Absolute attitude with respect to a selected reference frame
For this case, in order to produce an absolute attitude with respect to the selected
reference frame, the first step is to get a rotation matrix from that frame to body frame.
Then, the rotation method and its parameters are processed. The available rotation
methods are: Euler angles, Tait-Bryan angles (roll, pitch and yaw), quaternions, and Euler
axis/angle.
Euler Angles
“According to Euler’s rotation theorem, any rotation may be described using three angles”
(Wolfram MathWorld, 2010). If the rotations are written in terms of rotation matrices D, C,
and B, then a general rotation A can be written as:
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡==
333231
232221
131211
aaaaaaaaa
DCBA Eq. 3.1
When the Euler angles are selected, the “x-convention” or “z-x-z’ convention” is used. In
this convention, “the rotation given by Euler angles (Φ, θ, ψ) is as follows: the first rotation
is by an angle Φ about the z-axis using D, the second rotation is by an angle ],0[θ π∈
about the former x-axis (now x’) using C, and the third rotation is by an angle ψ about the
former z-axis (now z’) using B” (Wolfram MathWorld, 2010). Therefore, the rotation
matrices become:
24
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−==
1000cossin0sincos
φφφφ
φzRD
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−==
θθθθθ
cossin0sincos0
001
xRC
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−==
1000cossin0sincos
ψψψψ
ψzRB Eq. 3.2
These rotations are illustrated in Figure 3.7 below.
Figure 3.7. Rotation using Euler angles. Source: Wolfram MathWorld, 2010.
Tait-Bryan Angles
The Tait-Bryan angles are the “x-y-z convention” of the Euler angles and are also known
as “roll-pitch-yaw convention”, where Φ is yaw, θ is pitch, and ψ is roll (Wolfram
MathWorld, 2010). In this case, the rotation matrices become:
25
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡−==
1000cossin0sincos
φφφφ
φzRD
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡ −==
θθ
θθθ
cos0sin010
sin0cos
yRC
( )⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡
−==
ψψψψψ
cossin0sincos0
001
xRB Eq. 3.3
Euler Axis/Angle
Euler’s rotation theorem states that any rotation can be expressed as a single rotation
about some axis. The axis is a unit vector, which remains unchanged by the rotation, and
the magnitude of the angle is a unique value, which is positive when the rotation is
counterclockwise about the axis. The Euler angle and axis are represented as follows:
φ=0e ; [ ]Teeee 321= Eq. 3.4
Quaternions
The quaternions are a number system that extends the complex numbers. The four
parameters of the quaternion q0, q1, q2 and q3 describe a finite rotation about an arbitrary
axis. These parameters are described as follows:
⎟⎠⎞
⎜⎝⎛=⎟
⎠⎞
⎜⎝⎛=
2cos
2cos 0
0e
q φ; [ ] [ ]TT eeeqqqq 321321 == Eq. 3.5
To get the rotation matrix in the case of the Euler axis/angle, we first transform these
parameters to the quaternions, and then for these both cases we can calculate each
element of the rotation matrix as follows (Wolfram MathWorld, 2010):
( )( )203131
302121
23
22
21
2011
22
qqqqaqqqqa
qqqqa
+=−=
−−+=
( )
( )103232
23
22
21
2022
302112
2
2
qqqqaqqqqa
qqqqa
−=−+−=
+=
( )( )
23
22
21
2033
103223
203113
22
qqqqa
qqqqaqqqqa
+−−=
+=−=
Eq. 3.6
26
In addition, an extra functionality was implemented for the Euler axis and angle method, in
which we can set two more optional parameters: a constant angular velocity and a final
angle of rotation. This modification was added in order to perform a smooth change
between the attitudes in the attitude manoeuvres profile.
As the attitude can be provided either in Euler angles, Tait-Bryan angles (roll, pitch and
yaw), quaternions or Euler axis/angle, there is no core attitude representation. The choice
of the rotation method depends on the convenience of the representation of the user S/C’s
attitude for one type of manoeuvre or another. Still, internally almost every representation
is converted in some way to a rotation matrix which specifies the rotation manoeuvre.
And, the vectors in the S/W Simulator are multiplied by such a rotation matrix to obtain
their new orientations. So, when the rotation matrix has been calculated, it is used to get
the orientation of the user S/C’s body axes in ECI J2000, ECEF, and Sun-pointing
reference frames.
3.2.1.2 Rotation from an initial attitude to a final attitude
For this case, in order to produce a rotation from an initial attitude to a final attitude with
respect to the selected reference frame, the first step is to get the rotation parameters of
the initial and final attitude in such reference frame. These parameters can be specified
using one of the different methods that were explained above, and the rotation method for
the final attitude can be chosen independently of the rotation method for the final attitude.
The final parameter needed is the time duration in which the manoeuvre has to be
completed.
Once the rotation matrices for the initial and final attitude are calculated, the next step is to
calculate the final rotation matrix from the initial to the final attitude. From the elements of
this matrix (aij), it is possible to obtain the Euler axis and angle of the net rotation as
follows (Gottzein, 2008):
27
3322110 1 aaaq +++=
[ ] ( ) ( ) ([ ]TT aaaaaaq
qqqq 2112133132230
321 41
−−−== )
( )00 arccos2 qe ==φ
( )( ) [Tqqq
qe 321
0arccossin1
= ] Eq. 3.7
Alternative representations are available when the denominator is getting too small. The
intermediate rotation matrix at each time is then calculated using the obtained Euler axis
and computing the effective rotation angle at this time based on the GPS time of the
command (tcommand), the current GPS time (tcurrent), and the time duration of the manoeuvre
(Tmanoeuvre) as it is shown as follows:
( commandcurrentmanoeuvre
effective ttT
−= )φφ Eq. 3.8
3.3 Implementation of a representative GTO/GEO attitude and
orbit scenario
For the complete definition of the GTO/GEO scenario, two types of manoeuvre should be
implemented. The first one is with respect to the orbit profile, which includes all the ΔV
manoeuvres to get the three intermediate orbits plus GEO; and, the second one is with
respect to the attitude profile, which includes all the attitude manoeuvres as they were
defined above.
3.3.1 Manoeuvres for the orbit profile
The Acceleration Pre-Processing Block in the S/W Simulator checks at every time step if
there is an external acceleration due to a manoeuvre at every time of the simulation. If so,
it returns the acceleration vector with respect to body and ECI J2000 reference frames.
28
In order to simulate the thruster manoeuvres needed to generate the orbits in the
GTO/GEO scenario, the matrix
ACCELERATION_MANOEUVRES_MATRIX_BODY_FRAME in the S/W Simulator has to
be set. This matrix contains all the information of the user S/C’s specified accelerations in
Body reference frame. The definition of the matrix is as follows:
[Column 1: GPS Time: Absolute GPS time (s).
Column 2: direcX: Direction of the acceleration in X-axis w.r.t. Body Frame.
Column 3: direcY: Direction of the acceleration in Y-axis w.r.t. Body Frame.
Column 4: direcZ: Direction of the acceleration in Z-axis w.r.t. Body Frame.
Column 5: misAlignX: Misalignment of the direction in X-axis.
Column 6: misAlignY: Misalignment of the direction in Y-axis.
Column 7: misAlignZ: Misalignment of the direction in Z-axis.
Column 8: accMagn: Magnitude of Acceleration.
]
An array method of representation of the information was used in order to maintain the
standard that was used along the whole S/W Simulator development. This method was
chosen to keep compatibility with input formats provided by other EADS Astrium sites.
Following the requirements stated above, the total ΔV was calculated for the GTO/GEO
scenario with 3 intermediate orbits and the final Geostationary Earth Orbit, using standard
Keplerian formulas. The first intermediate orbit has a perigee of 250 km that is the
injection altitude that can be provided by the Ariane 5 Launch Vehicle, and an apogee
equals to the GEO altitude. Hence, for the first orbit:
13762860002501, =+= Ep Rr m; 000165421, =+== GEOEGEOa hRrr m;
5.568396242
1,1,1 =
+= ap rr
a m
where:
rp,1 = Radius of the user S/C at perigee.
ra,1 = Radius of the user S/C at apogee.
a1 = Semi-major axis of the orbit.
RE = Earth radius equals to 6 378 137 m, according to the WGS84 (NIMA, 1997).
hGEO = Altitude of the Geostationary Earth Orbit.
29
rGEO = Distance of the Geostationary Earth Orbit measured from the centre of the
Earth.
The velocity at apogee is:
597.602112
11,1, =⎟
⎟⎠
⎞⎜⎜⎝
⎛−=
arv
aEa μ m/s
where:
μE = Gravitational parameter of the Earth equals to 3.986004418 x 1014 m3/s2,
according to WGS84 (NIMA, 1997).
And, its period is:
121.923372 11 ==
E
aT
μπ s
On the other hand, the final velocity required at GEO is:
63.0743==GEO
EGEO r
vμ
m/s
Therefore, the total ΔV required is:
033.47211, =−=Δ aGEOTotal vvV m/s
In this case, the ΔV was divided by three, although different configurations can be chosen
for different GTO scenarios, where the respective acceleration vectors and times of
execution need to be calculated for the new intermediate orbits. The 3 burns of equal ΔV
are:
678.4903321 =
Δ=Δ=Δ=Δ TotalV
VVV m/s
For the next intermediate orbit, the velocity after the burn becomes:
274.209311,2, =Δ+= Vvv aa m/s
30
In addition, deriving a formula to get the semi-major axis of the new orbit from the Vis-viva
equation, and knowing that the apogee is the same for the new orbit (the GEO altitude),
the new semi-major axis is:
514.56044227212
2,
2,2 =⎟
⎟⎠
⎞⎜⎜⎝
⎛−=
−
E
a
a
vr
aμ
m
Table 3.1 below presents the final results calculated for each of the intermediate orbits.
Table 3.1. Parameters of the intermediate orbits in the GTO/GEO scenario.
GTO / GEO Semi-major axis, a Velocity at apogee, va Orbital Period, T
First orbit 24 396 568.500 m 1 602.597 m/s 37 923.121 s
Second orbit 27 442 560.514 m 2 093.274 m/s 45 242.640 s
Third orbit 32 592 319.268 m 2 583.952 m/s 58 557.680 s
GEO 42 165 000.000 m 3 074.630 m/s 86 166.630 s* * This value is due to rounding errors in the intermediate calculations, the actual sidereal day is approx. 86 164.1 s. Despite this fact, the results are suitable for the purposes of the simulation.
Regarding the firing times, the burns occur at the apogee of each intermediate orbit and
each burn was designed to last for 2.5 minutes, being the simulation time step equal to
1 second. For the first intermediate orbit, an additional orbital time has to be introduced in
order to fulfill the timing requirements of the attitude profile. Therefore, the times of firing
are as follows:
682.8845621
11, =+=T
Tt f s; 322.12710221,2, =+= Ttt ff s; 68516032,3, =+= Ttt ff s
Table 3.2 sums up the final values taken with regard to the acceleration manoeuvres
using the external thrusters of the user S/C for the GTO/GEO scenario.
31
Table 3.2. Definition of the manoeuvres for the orbit profile of the GTO/GEO scenario.
Burns Time of firing, tf ΔV requirement, ΔV
First boost 56 885 s 490.678 m/s
Second boost 102 127 s 490.678 m/s
Third boost 160 685 s 490.678 m/s
Total ΔV 1 472.034 m/s
3.3.2 Manoeuvres for the attitude profile
The attitude dynamics module in the S/W Simulator processes at every time of the
simulation the matrix ATTITUDE_MANOEUVRES_MATRIX. If there is an attitude
manoeuvre then it is executed. This matrix with the attitude profile for the GTO/GEO
scenario was implemented according to the requirements above.
3.4 Verification of the GTO/GEO attitude and orbit scenario
The verification of the attitude and orbit profile was carried on visually. First, the
GTO/GEO scenario was configured for the S/W Simulator, and then it was run in the
MATLAB environment for a total simulation time of 300 000 s (~3.5 days). The S/W
Simulator has produced for every simulation step the corresponding position vector and
attitude of the S/C. Figures 3.8 and 3.9 show the results of the implemented attitude and
orbit profile.
It is important to note that the formulae used to calculate the parameters for the orbital
manoeuvres are for ideal Keplerian orbits, while the S/W simulator actually propagates the
state vector of the satellite, position and velocity using a 4th order Runge-Kutta
propagation,, taking into account different sources of perturbations. This means that there
are differences with respect to what actually occurs in the framework of a real mission,
where even more issues have to be considered such as the precise orbit determination
carried on by the control segment and the detailed specification of the telecommands in
32
the Space operations framework. Taking all this into account, the results are regarded as
valid by EADS Astrium, because the implementation of the GTO/GEO attitude and orbit
scenario follows the given specification, and provides an in-depth insight of the mission
scenario in the early stages of the on-going Space projects.
Moreover, this implementation fulfills the aim for which it was developed in the first
instance, the analysis of the visibility conditions during the GTO/GEO scenario, which will
be covered in the next chapter.
Figure 3.8. Ariane GTO/GEO with 3 apogee burns and manoeuvres (top view). The antenna (green) is pointing in the S/C +Z-axis direction, mostly Sun-pointing in GTO
(except during gyro calibration and boost manoeuvres) and eventually Earth-pointing in GEO. The GPS orbit is also shown (red).
33
Figure 3.9. Ariane GTO/GEO with 3 apogee burns and manoeuvres (3/4 view).
34
4 ANALYSIS OF THE DYNAMICS AND VISIBILITY CONDITIONS IN GTO AND GEO
Introduction
This first objective of this section is to tune the S/W Simulator, so that it can produce
similar outputs to the ones obtained using the Spirent RF Simulator. For this, the tracking
behaviour of the MosaicGNSS receiver is taken as the criterion for the verification as it
influences the number of satellites that can be used to provide a solution and therefore the
navigation solution performance.
The second objective is to perform an analysis of the visibility conditions in the LEO, GEO
and GTO scenarios. This visibility analysis does not only refer to the pure geometrical
visibility conditions, but also includes the analysis of the GPS satellites which signals can
be acquired, and moreover tracked.
The Spirent RF Simulator STR4760 is a GNSS Simulator designed for testing GPS
equipment in manufacturing environments. It provides a complete simulated RF
environment for production testing GPS L1/L2 receivers. It is able to create a
3-dimensional simulation, so it is possible to test receiver sensitivity as well as time-to-fix
and positioning accuracy (Spirent, 2010). The Spirent RF Simulator is going to be used for
testing and verification purposes of all the work contained in the thesis project.
4.1 Definition of Visible, Trackable, Tracked and Used GPS
satellites
For the purpose of the verification is it important to define the following concepts:
• Visible GNSS satellites ("VISIBLE SVs")
• Trackable GNSS satellites ("TRACKABLE SVs")
35
• Tracked GNSS satellites ("TRACKED SVs")
• Used GNSS satellites ("USED SVs")
4.1.1 Visible GNSS satellites
The visibility check is an important step in order to know which GNSS satellites can be
used at a specific time in the PVT solution. The algorithm checks which GNSS satellites
are visible as seen from the user S/C using the ECI J2000 reference frame.
Visibility is a purely geometrical condition. In order to declare that GNSS satellite is visible,
three conditions should be fulfilled. The first condition is fulfilled when the GNSS satellite
has a valid line-of-sight (LOS) to the user S/C, i.e. the Earth is not occulting the GNSS
satellite. The second condition is fulfilled when the angle between the LOS and the
transmission antenna orientation of the GNSS satellite is within the half cone aperture
angle of the GNSS satellite. And, finally, the third condition is fulfilled when the angle
between the LOS and the antenna orientation of the receiver is within the reception half
cone aperture angle. The relevant formulas can be found in Appendix B. Figure 4.1 shows
the visibility of the GPS satellites for LEO and GEO scenarios.
Figure 4.1. Visibility of the GPS satellites in 3D for a LEO scenario (left) and a GEO scenario (right). The yellow lines represent the vectors from the user S/C to all the GPS satellites, and the red lines represent the vectors to the GPS satellites that are
visible.
36
4.1.2 Trackable GPS satellite
In order to track a GNSS satellite, the visibility conditions are not enough for a GNSS
receiver. The signal correlation module in the receiver is only able to decode the received
signals if they have a Carrier-To-Noise Density (C/N0) above a certain threshold. For the
MosaicGNSS, two different types of threshold are defined. The signals from the GNSS
satellites should be above the acquisition threshold in order to be initially decoded. Once
in track, the signals must remain above the tracking threshold in order to keep the tracking
loop active. The acquisition threshold is always higher than the tracking threshold. In
addition, the signal’s Doppler shift, i.e. the range rate, should not exceed a maximum
Doppler limit value.
The definition of such important concepts as the received signal power, noise power,
signal-to-noise ratio and carrier-to-noise density can be found in the Appendix C.
4.1.3 Tracked GNSS satellite
The tracked GNSS satellites are a subset of the trackable ones. Generally, not all of the
trackable GNSS satellites can be tracked due to constraints in the receiver, such as:
• number of channels in the receiver,
• time delay needed for signal detection/decoding (until a channel is in "fully tracking"),
• CPU power availability (which has to be divided among the tracked channels).
In the case of the MosaicGNSS receiver, the tracking loops need from 18 to 30 s to be
fully closed (i.e. fully tracking). In addition, due to the software-based correlation in the
MosaicGNSS receiver, the number of tracked GNSS satellites depends on the CPU load
required to track the corresponding signal, which depends on and is inversely proportional
to the received C/N0, because of a partial correlation that is performed by software in the
receiver. It means that in order to reduce the computational load of the receiver, the
strongest signals, where the peak of the signal power is high above the noise level and
therefore known, are correlated over a shorter time period than the longer period needed
for weaker signals.
4.1.4 Used GNSS satellites in Navigation Solution
The used GNSS satellites are a subset of the tracked ones. The Navigation Module gets
the measurements from the fully tracked GNSS satellites as input, and the navigation
37
solution may isolate/exclude some GNSS satellites due to Failure Detection, Isolation and
Recovery (FDIR) / Receiver Autonomous Integrity Monitoring (RAIM) algorithms.
4.2 Verification of visibility conditions as compared to
observations made during closed-loop tests for LEO
As a first step, the S/W Simulation Environment was configured to simulate a Spacecraft
in LEO. In this case, a mission scenario in a polar Sun-synchronous orbit with an altitude
of 400 km was chosen, due to the fact that there were available configuration scripts for
the Spirent RF Simulator, which were created previously and independently by EADS
Astrium. The antenna boresight of the MosaicGNSS receiver is configured as Zenith-
pointing in this scenario.
As a second step, the configuration parameters were tuned in order to get the visibility,
carrier-to-noise density (C/N0) and signal-to-noise ratio (SNR) outputs similar to the ones
from the Navigation Module of the MosaicGNSS receiver during closed-loop tests with the
Spirent RF Simulator.
Figure 4.2 shows the orbit and the antenna boresight of the receiver pointing “up” in zenith
direction.
Figure 4.2. User S/C in LEO (thin blue line) with receiver antenna boresight (red) and GPS orbits (colours).
38
4.2.1 GPS and MosaicGNSS antenna patterns
Figure 4.3 shows the GPS transmission antenna pattern with a 0 dB reference as it was
used for the LEO reference test in the Spirent RF Simulator. For this test case, only the
main lobe was considered. The GPS transmission power was set to an effective isotropic
radiated power (EIRP) of 30.2 dBW, and the GPS half cone angle to 26° (only main lobe).
-100 -80 -60 -40 -20 0 20 40 60 80 100-50
-45
-40
-35
-30
-25
-20
-15
-10
-5
0
atte
nuat
ion
[dB
]
angle [deg]
GPS ANTENNA ATTENUATION PATTERNGPS ANTENNA TX HALF CONE ANGLE = 26deg.
GPS TRANSMITTED POWER in DBW = 30.2
Figure 4.3. GPS transmission antenna pattern as used for the LEO reference test in the Spirent RF Simulator and in the S/W Simulator. Only the main lobe was used.
Source: Astrium, 2010 (internal communication).
Figure 4.4 shows the receiver antenna pattern of the user S/C with 0 dB reference. In this
case, the receiver antenna gain was set to 10 dB, and the receiver half cone angle to 82°.
39
Figure 4.4. Receiver antenna pattern as used for the LEO reference test in the Spirent RF Simulator and in the S/W Simulator. Source: Astrium, 2010 (internal
communication).
4.2.2 Analysis of received Carrier-to-Noise Density
The tracking behaviour of the MosaicGNSS receiver influences the navigation solution
performance and is therefore an important criterion for verification. As was explained
above, the MosaicGNSS receiver has two thresholds for the received Carrier-To-Noise
Density (C/N0). It is important to note that in LEO, the C/N0 values are generally good
enough so that the above thresholds have little impact on the tracking behaviour of the
receiver, therefore we can set them higher than the minimum values in order to assign a
channel to another GPS satellites with a better C/N0. For this test case, the acquisition
threshold was set to 35 dB-Hz and the tracking threshold to 30 dB-Hz.
In addition, a limit is imposed on the number of tracked GPS satellites due to the CPU
load of the sensor tracking loops in the MosaicGNSS receiver, as it uses software
correlation for signal decoding. The used function that determines the number of satellites
which can be tracked is hardware-specific, where the weaker the signal (C/N0) the more
CPU needed for keeping the signal in track. The result of this is a dynamic limitation on
the number of tracked GPS satellites. In the MosaicGNSS receiver, up to 8 GPS satellites
can be tracked. Due to the CPU load limit, this reduces to approx. 2.8 GPS satellites with
C/N0 below 33 dB-Hz. At this limit, the signal needs to be fully correlated and the number
does not further degrade.
40
4.2.2.1 Results using the Spirent RF Simulator
Figure 4.5 shows a histogram of the received C/N0 values for the LEO scenario test case.
The minimum value was found to be 35 dB-Hz and the maximum 48 dB-Hz.
Figure 4.5. Carrier-To-Noise Density (C/N0) distribution of the tracked GPS satellites for the LEO scenario using the Spirent RF Simulator. Source: Astrium, 2010
(internal communication).
4.2.2.2 Results using the S/W Simulator
The parameters in the S/W Simulator were first set to be physically representative and
then fine-tuned in order to produce a C/N0 distribution that matches the one obtained from
the Spirent RF Simulator. This tuning was necessary so that miscellaneous losses in the
signal power are accounted for correctly. Figure 4.6 shows a histogram of the received
C/N0 values as they were obtained from the S/W simulation.
41
Figure 4.6. Carrier-To-Noise Density (C/N0) distribution of the tracked GPS satellites for the LEO scenario using the S/W Simulator.
4.2.3 Analysis of visible vs. tracked GPS satellites
As part of the tuning, the visibility analysis was carried on. The following sections show
the plots of the visible and tracked satellites.
4.2.3.1 Results using the Spirent RF Simulator
Figure 4.7 shows a histogram of the number of tracked GPS satellites for the LEO
scenario test case. The minimum value of tracked GPS satellites was found to be 3, the
mean value 6.36 and the maximum value 8.
Figure 4.7. Distribution of tracked GPS satellites for the LEO scenario using the Spirent RF Simulator. Source: Astrium, 2010 (internal communication).
42
4.2.3.2 Results using the S/W Simulator
Figure 4.8 shows the number of visible and tracked GPS satellites for the LEO scenario.
The mean value of visible GPS satellites was 8.7 and the mean value of tracked GPS
satellites was 6.9. In addition, two or more GPS satellites are always in track during the
whole simulation time.
Figure 4.8. Visible and tracked GPS satellites for the LEO scenario using the S/W Simulator.
As we can observe, the final statistics using the S/W Simulator are close enough to the
statistics obtained during the hardware-in-the-loop test using the Spirent RF Simulator.
Therefore, the final configuration that was set can be used as a reference for LEO
scenarios in the S/W Simulator.
43
4.3 Verification of visibility conditions as compared to
observations made during closed-loop tests for GEO
After the tuning of the S/W Simulator for a LEO scenario, it was configured for a standard
GEO scenario with the antenna boresight of the MosaicGNSS receiver pointing towards
the Earth. As in the previous case, configuration scripts for the Spirent RF Simulator were
provided by EADS Astrium, and were used to verify the results obtained.
The ionospheric delay was not considered for the test. In order to compensate this, the
Earth radius was masked with additional 600 km, which is above the peak of the
ionosphere, so that no signals affected by ionosphere delay are used.
Figure 4.9 shows the orbit and the antenna boresight of the receiver pointing “down” in the
nadir direction.
Figure 4.9. User S/C in GEO (blue) with receiver antenna boresight (red) and GPS orbits (colours).
4.3.1 GPS and MosaicGNSS antenna patterns
Figure 4.10 shows the GPS transmission antenna pattern with a 0 dB reference as was
used for the GEO reference test in the Spirent RF Simulator. For this test case, the main
lobe and side lobes were considered. The GPS transmission power was set to an
44
effective radiated power (EIRP) of 30.2 dBW, and the GPS half cone angle to 45° (with
sidelobes). The receiver half cone angle was set to 65°.
Figure 4.10. GPS transmission antenna pattern, with an EIRP of 30.2 dBW, as used for the GEO reference test in the Spirent RF Simulator and in the S/W Simulator. Side lobes were also included. Source: Astrium, 2010 (internal communication).
4.3.2 Analysis of received Carrier-to-Noise Density
In GEO the tracking behaviour depends strongly on the acquisition and tracking limits.
The expected C/N0 is rather low and therefore the signals cannot be acquired and tracked
for all geometrically visible GPS satellites. Thus, different values of acquisition and
tracking thresholds are used for the LEO, GEO and GTO scenarios. Keeping them high as
in the LEO scenario ensures that GPS satellites with strong signal are used, while
lowering them relative to the values used in the LEO scenario allows more GPS satellites
to be used. For the GEO test case, the acquisition threshold was set to 34 dB-Hz and the
tracking threshold to 27 dB-Hz.
45
4.3.2.1 Results using the Spirent RF Simulator
Figure 4.11 shows a histogram of the received C/N0 values for the GEO scenario test
case. The minimum value was found to be 27 dB-Hz and the maximum 45 dB-Hz. It is
also interesting to note two peaks in the received C/N0 at 35 and 43 dB-Hz, due the main
lobe and the sidelobes.
26 28 30 32 34 36 38 40 42 44 460
2
4
6
8
10
12
14
hist
[%]
C2N [dBHz]
Spirent GEO Ref Test: histogram of received Carrier-to-Noise ratio
Figure 4.11. Carrier-To-Noise Density (C/N0) distribution of the tracked GPS satellites for the GEO scenario using the Spirent RF Simulator. Source: Astrium,
2010 (internal communication).
46
4.3.2.2 Results using the S/W Simulator
Figure 4.12 shows the received C/N0 values as they were obtained from the S/W
simulation.
Figure 4.12. Carrier-To-Noise Density (C/N0) distribution of the tracked GPS satellites for the GEO scenario using the S/W Simulator.
4.3.3 Analysis of visible vs. tracked GPS satellites
As part of the fine-tuning, the visibility analysis was carried on. The following sections
show the plots of the visible and tracked satellites.
4.3.3.1 Results using the Spirent RF Simulator
Figure 4.13 shows for the GEO scenario test case, the number of visible and tracked GPS
satellites for the whole simulation time. The minimum value of used GPS satellites was
found to be 1, the mean value 2.1 and the maximum value 5. There is more than one
tracked GPS satellite for 78.4% of the time of the scenario.
47
0 0.5 1 1.5 2 2.5
x 105
0
2
4
6
8
10
12Spirent Geo Ref Test:Number of tracked(blue) and visible(red) Satellites
runtime [s]
num
ber o
f sv
Figure 4.13. Number of tracked (blue) and number of geometrically visible (red) GPS satellites vs. time for the GEO scenario using the Spirent RF Simulator. Source:
Astrium, 2010 (internal communication).
4.3.3.2 Results using the S/W Simulator
Figure 4.14 shows the number of visible and tracked GPS satellites for the GEO scenario.
The mean value of visible GPS satellites was 9.1 and the mean value of tracked GPS
satellites was 2.8. In addition, two or more GPS satellites are always in track during 98.6%
of the simulation time.
Figure 4.14. Visible and tracked GPS satellites for the GEO scenario using the S/W Simulator.
48
4.3.4 Further discussion on performance tuning for the GEO scenario
The S/W Simulator yields better navigation solution accuracy than the one from the
Spirent RF Simulator, although all concerning error sources had been considered and the
associated error magnitudes were set to realistic nominal values.
The reason for this difference in performance in the GEO scenario might be due to the
following issues that currently are not fully considered in the simulation. The first one is
the fundamental computation accuracy of 40 bits in the Digital Signal Processor (DSP) of
the MosaicGNSS receiver. This is in contrast to the Navigation Module as compiled in
MATLAB and used in the S/W Simulator, which is currently using double precision
variables of 64 bits.
The second one can be related to the receiver clock error, which affects the measurement
of the pseudoranges and the range rates. Since only the Navigation Solution module of
the on-board software was used in the tests, it was not easily possible to introduce the
clock errors at all required points. In a real scenario, the Navigation Solution module
provides a feedback to the Sensor module (See Figure 2.1), which is the one that
provides the measurements. Therefore, the clock errors needed to be introduced in the
simulated signals as far as possible in an open-loop fashion, without changing the flight-
code or having a feedback from the Navigation Solution module.
In order to consider these effects that are currently not simulated and to verify the S/W
Simulator in GEO, it was chosen to set one of the possible errors higher than nominal in
order to obtain the same performance in GEO as the one from the Spirent RF Simulator
tests. Hence, the 1σ value of the noise on the pseudorange measurements in the
MosaicGNSS receiver was set to 100 m.
4.4 Results and discussion on the expected visibility
conditions in GTO and GEO
After the fine-tuning of the S/W Simulator, it was configured for a standard GEO scenario
with the antenna boresight of the MosaicGNSS’ receive antenna fixed to the +Z-axis
direction of the S/C body frame. In this case, the ionosphere delay was not considered for
the test. In order to compensate this, the Earth radius was masked with additional 600 km,
49
which is above the peak of the ionosphere, so that no signals affected by ionosphere
delay are used.
Figure 3.8 and Figure 3.9 show the orbit and the antenna boresight along the whole GTO
manoeuvres (Sun-pointing, gyro calibrations and apogee boost manoeuvres), and that
remains pointing towards the Earth once GEO is reached.
4.4.1 GPS and MosaicGNSS antenna patterns
Figure 4.15 shows the GPS transmission antenna pattern with a 0 dB reference as was
used for the GEO reference test in the Spirent RF Simulator. The model is based on the
measured gain pattern from a GPS Block IIA satellite, assuming an effective isotropic
radiated power (EIRP) of 29.8 dBW (Czopek, 1993, cited in Moreau et al., 2002). For this
test case, the main lobe and sidelobes were considered. The GPS half cone angle was
set to 40° (with sidelobes); outside this the GPS transmitted signals are not considered.
Figure 4.15. GPS transmission antenna pattern as used for the GTO/GEO scenario in the S/W Simulator. Model based on the measured gain pattern from a GPS Block IIA satellite, assuming an EIRP of 29.8 dBW (transmitted power corresponding to
zero attenuation). Source: Czopek, 1993, cited in Moreau et al., 2002.
Figure 4.16 shows the receiver antenna pattern of the user S/C with 0 dB reference. In
this case, the antenna is a Helix antenna and the gain is 12 dB. The receiver half cone
angle was set to 65°.
50
Figure 4.16. Receiver antenna pattern as used for the GTO/GEO scenario in the S/W Simulator.
4.4.2 Analysis of received Carrier-to-Noise Density
During the GTO scenario, the tracking behaviour depends even more strongly on the
acquisition and tracking limits than in the GEO case due to the manoeuvres that have to
be taken into account. For this test case, the acquisition and tracking thresholds were
lowered compared to the ones used in the GEO scenario, so that more GPS satellites can
be used. The acquisition threshold was set to 30 dB-Hz and the tracking threshold to 26
dB-Hz. The values of the losses used for the configuration of the S/W Simulator were the
same as for the GEO scenario.
Figure 4.17 shows a histogram of the received C/N0 values for the GTO/GEO scenario
test case obtained from the S/W Simulator. The minimum value was found to be 27 dB-Hz
and the maximum 45 dB-Hz, which correspond roughly to the range obtained in the GEO
case. In addition, it is interesting to note that the received C/N0 values are more uniformly
distributed along the whole range. This behaviour is due to the nature of the GTO/GEO
scenario (See Figure 3.8 in the previous chapter). Around perigee, the user S/C is below
the GPS altitude and the helix antenna is pointing “up” to the sky. Therefore, the
51
MosaicGNSS receiver is able to track the GPS satellites with a high C/N0 values. And,
around apogee, the user S/C is above the GPS altitude and the helix antenna is pointing
“down” to Earth, acquiring the signals of the GPS satellites that are on the other side of
the Earth. This happens during the intermediate orbits of the GTO, after that the helix
antenna remains pointing to nadir.
Figure 4.17. Carrier-To-Noise Density (C/N0) distribution of the tracked GPS satellites for the GTO/GEO scenario using the S/W Simulator.
4.4.3 Analysis of visible vs. tracked GPS satellites
Figure 4.18 shows for the GEO scenario test case, the number of GPS satellites that are
visible, exceeding the C/N0 tracking threshold, and exceeding the C/N0 acquisition
threshold along the whole simulation time. As we can observe, the visibility is severely
affected during the GTO phase, especially during the third intermediate orbit, and there
are long intervals during which no GPS satellite is visible at all.
The minimum value of tracked GPS satellites was found to be 0, the mean value 1 and
the maximum value 5. At the perigee of the 1st intermediate orbit, the number of visible
and tracked satellites can achieve its highest value, because the perigee is far below the
52
GPS constellation and therefore a highest visibility condition is achieved. This can be
observed at the beginning of the GTO scenario in Figure 4.18. In addition, two or more
GPS satellites are always visible during 91.6% of the simulation time. And, two or more
GPS satellites are always in track during 29.8% of the simulation time.
Figure 4.18. Number of GPS satellites that are geometrically visible (green) and exceeding the C/N0 tracking threshold (blue) for the GTO/GEO scenario using the
S/W Simulator.
4.4.4 Creation of the test and verification script for the Spirent RF Simulator
The Spirent RF Simulator is going to be used as the reference standard for all the work
contained in the thesis project. This simulator can be operated remotely via the Spirent's
SimREMOTE capability, which allows control over scenario selection. Therefore, the
attitude dynamics module was modified in order to return the attitude of the user S/C in
terms of bank, elevation and heading angles (roll, pitch and yaw respectively) in the NED
reference frame; and a script was created in MATLAB in order to generate the User
Motion (UMT) file required for the Spirent RF Simulator.
The format of the UMT file is (Spirent, 2006):
<timestamp>, <px>,<py>,<pz>, <vx>,<vy>,<vz>, 0,0,0, 0,0,0, <h>,<e>,<b>
53
where:
timestamp = relative time of the simulation in the Spirent RF Simulator.
px = X position in metres with respect to ECEF reference frame.
py = Y position in metres with respect to ECEF reference frame.
pz = Z position in metres with respect to ECEF reference frame.
vx = Velocity in X-axis in m/s with respect to ECEF reference frame.
vy = velocity in Y-axis in m/s with respect to ECEF reference frame.
vz = velocity in Z-axis in m/s with respect to ECEF reference frame.
h = Heading in radians (range +/-π) with respect to NED reference frame.
e = Elevation in radians (range +/-π/2) with respect to NED reference frame.
b = Bank in radians (range +/-π) with respect to NED reference frame.
In this way, the scenarios created in the S/W Simulator can be reproduced in the Spirent
RF Simulator in order to test and verify the developed algorithms with the MosaicGNSS
receiver in the loop.
54
5 ESTIMATION TECHNIQUES AND STATE-OF-THE-ART BATCH-PROCESSING ALGORITHMS
Introduction
The estimation problem attempts to find the value of a state vector (e.g. position, velocity,
and polynomial coefficients) that best fits, in a defined mathematical sense, the
observational data. In the following section, we will expound some of the estimation
techniques relevant to the batch processing as they are described in Hall and McMullen
(2004). We also carried on preliminary investigations on batch-processing techniques as
they were used for position determination of the MIR Space Station, which provided an
important insight for the algorithms that were later developed.
In our case, the estimation problem is dynamic, since the state vector changes as a
function of time, and the following are important concepts for the estimation process:
Observability .- The issue of how many and what type of observations are necessary to
develop an estimate of the state vector.
Dynamic modelling .- The need for accurate equations of motion to describe the
evaluation of a state vector in time.
A priori estimate .- The role of an initial (or starting) value of the state vector in order to
obtain a solution.
Observation noise .- Sets the stage for a probabilistic interpretation of observational
noise.
55
5.1 Estimation techniques: Batch-processing algorithms and
the choice of an adequate optimization criterion
The estimation process combines the observations to obtain a new or improved estimate
of a state vector, x(t), which best fits the observed data. Figure 5.1 summarizes the
alternatives and issues related to estimation. These include the following as they are
described in Hall and McMullen (2004):
System models .- What model will be selected to define the problem under
consideration? What is to be estimated (namely what is the state vector sought)? How do
you predict the state vector in time? How are the observations related to the state vector?
What assumptions (if any) can we make about the observation process (e.g. noise and
biases)?
Optimization criteria .- How will we define a criteria to specify best fit? That is, what
equation will be used to specify that a state vector best fits a set of observations?
Optimization approach .- Having defined a criteria for best fit, what method will be used
to actually find the unknown value of the state vector that satisfies the criterion?
Processing approach .- Fundamentally, how will the observations be processed (e.g. on
a batch mode, in which all observations are utilized after they have been received, or
sequentially, in which observations are processed one at a time as they are received)?
56
Figure 5.1. Overview of estimation alternatives. Source: Hall and McMullen, 2004.
5.1.1 System models
“An estimation problem must be defined by specifying the state vector, observation
equations, and equations of motion (for dynamic problems), and other choices such as
data selection, editing and preconditioning, convergence criteria, and coordinate system
necessary to specify the estimation problem. … A fundamental choice in estimation is to
first specify exactly what parameters are to be estimated, i.e. what is the independent
variable or state vector x(t)”. This choice “depends upon defining what parameters are
necessary to determine the future state of a system, and what parameters may be
estimated based on the observed data. The latter issue is termed observability“ (Hall and
McMullen, 2004). The general rule of thumb in selecting a state vector is to choose the
minimum set of components necessary to characterize the system under consideration.
A second choice required to define the estimation problem is the specification of the
observation equations. These equations relate the unknown state vector to the predicted
observations. Thus if x(t) is the state vector, and y(tK) is an actual observation, then
( ) kkk ntxgtz += )()( Eq. 5.1
57
predicts an observation z(tk), which would match yk(tk) exactly, if we knew the value of x(tk)
and the value of the observational noise, nk. The function g(x(tk)) represents the
coordinate transformations necessary to predict an observation based on assumed value
of a state vector. When the state vector x varies in time, then the estimation problem is
dynamic and requires further specification of an equation of motion that propagates the
state vector at time t0 to the time of an observation tk. For example,
( ) )(,)( 00 txtttx kk Φ= Eq. 5.2
where Φ is known as the transition matrix.
5.1.2 Optimization criteria
“Having established the observation equations that relate a state vector to predicted
observations, and the equations of motion, a key issue involves the definition of best fit.
We seek to determine a value of a state vector x(t), which best fits the observed data.
There are a numerous ways to define best fit. Each of these formulations involves a
function of residuals” (Hall and McMullen, 2004),
( ))()( kkk tztyv −= Eq. 5.3
Where, vk is the vector difference between the observation, y(tk), and the predicted
observation, z(tk). The latter is a function of the state vector x(t0), via Eq. 5.1 and Eq. 5.2,
and hence, vk is also a function of x(t0).
“Various functions of vk have been defined and used for estimation. A summary of several
optimization criteria is shown in Table 5.1. In essence, a function is chosen that provides
an overall measure of the extent to which the predicted observations match the actual
observations. This function of the unknown state vector x is sometimes termed a loss (or
cost) function, because it provides a measure of the penalty (i.e. poor data fit) for an
incorrect value of x. The state vector x is varied until the loss function is either a minimum
or maximum, as appropriate. The solution of the estimation problem then becomes an
optimization problem” (Hall and McMullen, 2004).
58
Table 5.1. Overview of optimization criteria. Source: Hall and McMullen, 2004.
Criteria Description Mathematical Formulation Comments
( ) vvxL T= Least squares
(LS)
Minimize the sum of the squares of the residuals.
Earliest formulation provided by Gauss. No a priori knowledge assumed.
Weighted least
squares (WLS)
Minimize the sum of the weighted squares of the residuals.
( ) vWvxL T= Yields identical results to MLE when noise is Gaussian and weight matrix equals inverse covariance matrix.
Mean square error
(MSE)
Minimize the expected value of the squared error.
( ) ( ) ( )∫ −−= xdyxPxxWxxxL T )/(ˆˆ Minimum covariance solution.
Minimize the sum of the weighted squares of the residuals constrained by a priori knowledge of x.
( ) ( ) ( )00 0xxPxxvWvxL x
TT −−+= Δ Constrains the solution
of x to a reasonable value close to the a priori estimate of x.
Bayesian weighted
least squares (BWLS)
Allows specification of the probability distribution for the noise process.
Maximum likelihood estimate (MLE)
Maximize the multivariate probability distribution function.
( ) ( )∏=
=m
iii xnlxL
1
/
“The selection of an optimization criterion from among the choices shown in Table 5.1
depends upon the a priori knowledge about the observation process. Clearly, selection of
the MLE criterion presumes that the probability distributions of the observational noise are
known. Similarly, the MSE criterion presumes knowledge of a conditional probability
function, while the Bayesian weighted least squares assumes a priori knowledge of the
variance of the state vector. Under the following restricted conditions, the uses of these
criteria result in an identical solution for x. The conditions are listed as follows:
1. The measurement (observational) errors are Gaussian distributed about a zero
mean;
2. The errors nk at tk are stochastically independent of the errors nj at tj;
3. The weight for the weighted least squares criterion is the inverse covariance of x.
Under these conditions, the WLS solution is identical to the MLE, MSE, and BWLS
solutions” (Hall and McMullen, 2004).
59
5.1.3 Optimization approach
The solution of the optimization criterion to determine the value of the state vector x may
be performed by one of several techniques, which may be categorized into two broad
classes as it is shown in Table 5.2 below.
Table 5.2. Overview of optimization technique. Source: Hall and McMullen, 2004 (See references therein).
Category Optimization Technique Description Direct
Methods Non-derivative methods: Direct methods find the value of x that satisfies
the optimization criteria (i.e. find x such that the loss function is either a minimum or maximum). Techniques fall into two classes: derivative methods require knowledge of derivative of loss function with respect to x, while non-derivative methods require only the ability to compute the loss function.
Downhill simplex
Direction set
Derivative methods:
Conjugate gradient
Variable metric (quasi-Newton)
Indirect Methods
Newton-Raphson methods Indirect methods find the roots of a system of equations involving partial derivatives of the loss function with respect to the state vector, x (i.e. the partial derivative of L(x) with respect to x set equal to zero); the only successful techniques are multidimensional Newton-Raphson methods.
Direct methods treat the optimization criteria, without modification, seeking to determine
the value of x that finds an extremum (i.e. minimum or maximum) of the optimization
criterion. Geometrically, direct methods are hill-climbing (or valley-seeking) techniques
that seek to find the value of x for which L(x) is a maximum or minimum. These methods
may be subdivided into non-derivative techniques (i.e. those methods that require the
ability to compute L(x)) and derivative techniques that rely on the ability to compute L(x)
as well as the derivative of L(x).
By contrast, indirect methods seek to solve the simultaneous non-linear equation given
by,
0)()()(
1
=⎥⎦
⎤⎢⎣
⎡∂∂
∂∂
=∂
∂
nxxL
xxL
xxL
K Eq. 5.4
where n is the number of components of the state vector. Indirect methods require that the
optimization criterion be explicitly differentiated with respect to x. The problem is thus
60
transformed from finding the maximum (or minimum) of a nonlinear equation, to one of
finding the roots of n simultaneous non-linear equations given by Eq. 5.4 above.
5.1.4 Processing approach
There are two basic alternatives (Hall and McMullen, 2004): batch processing and
sequential processing. Batch processing assumes that all n observations are available to
be considered simultaneously, so we select an optimization criterion and proceed to find
the value of x that best fits the n observations. The batch approach is commonly used in
modelling and curve-fitting problems, and often used when there is no time-critical
element involved. On the other hand, the sequential estimation approach incrementally
updates the estimate of the state vector as each new observation is received. This new
estimate is obtained without revisiting all previous n observations. The Kalman filter is a
commonly used approach for sequential estimation.
5.2 Batch-processing algorithms as used in Ground Stations
Publications from different Space organizations provide insight into the methods used for
Precise Orbit Determination (POD). One of them is the DLR’s German Space Operations
Center (DLR/GSOC), which in close cooperation with the Delft Institute of Earth
Observation and Space Systems (DEOS) at TU Delft, has developed the GPS High
Precision Orbit Determination Software Tools (GHOST) for satellites in LEO (DLR, 2010).
Figure 5.2 shows GHOST processing scheme.
61
Figure 5.2. Core GHOST processing scheme. Source: DLR, 2010.
“Typically, the following steps are performed in sequence:
• Initially, the coarse position and clock offset at each epoch are determined from the
observed pseudoranges using the SPPLEO (Single-Point Positioning for LEO
Satellites) program. Depending on the available receiver, the results have a typical
accuracy between 3 m (dual-frequency) and 10 m (single-frequency). Optionally, the
SPPLEO can also determine the velocity and clock drift at each time from Doppler
measurements.
• The coarse position fixes are subsequently smoothed by PosFit program, which
adjusts a reduced-dynamics trajectory using the positions as pseudo-measurements.
The resulting trajectory can already achieve an accuracy of 0.2 - 2 m but serves
primarily as a reference for the data in the following processing steps.
• The actual precise orbit determination is carried out in the RDOD (Reduced
Dynamics Orbit Determination) program. Using the a priori orbit as a reference, the
code and carrier phase measurements are initially screened for outliers and bad
data. The Spacecraft trajectory is modeled using a concise dynamic model with
supplementary empirical acceleration parameters that are adjusted along with epoch
wise clock offsets and pass-by-pass biases in a large least-squares process.
62
Typically, a total of 4000 parameters are adjusted in 24 hours arc, but the size of the
normal equations can conveniently be reduced by factorization and pre-elimination.
Through the use of low-noise carrier phase measurements, the position accuracies
down to the level of a few centimeters can be achieved in this orbit determination
process.
• As an alternative to the reduced dynamics processing, purely kinematic solutions can
be obtained in the KIPP (Kinematic Point Positioning) program. Similar to RDOD, this
program benefits from the processing of highly accurate carrier phase measurement
and can thus achieve accuracies of 10 cm or better. However, no dynamical model is
employed and individual positions are adjusted at each epoch along with the
associated receiver clock offsets. Kinematic orbits are generally more sensitive to
modeling errors and the comparison with reduced dynamic solutions can provide
valuable insight into the achieved orbit determination quality. In addition, kinematic
orbit determination results are of interest for gravity field studies since they do not
involve any a priori assumptions on the Spacecraft dynamics.
• Satellite laser ranging (SLR) provides high accuracy measurements that can be used
for an external validation of GPS based orbit determination results. To this end
residuals of the SLR measurements with respect to the GPS based reduced dynamic
orbit solutions are computed and statistically analyzed in the SLRRES program”
(DLR, 2010).
Table 5.3 shows the models used in GHOST for the processing of GPS and SLR
observations and the modelling of S/C trajectories.
63
Table 5.3. GHOST’s dynamical and measurement models. Source: DLR, 2010.
Item Description GPS
measurement model
Undifferentiated ionospheric-free code and phase observations. IGS GPS orbits and 30 s clock solutions in IGS05 reference system. GPS and receiver antenna phase center offsets and variations phase wind-up.
SLR measurement
model
SLRF2005 station coordinates. Solid Earth and pole tides (IERS2005). GOT00.2 ocean loading. Marini & Murray tropospheric delay model (IERS2005).
Gravitational forces
Earth gravity field (UT/CSR GGM01 100x100, or other). Relativity. Solid-Earth tides, pole tide (IERS2003). Ocean tides (UT/CSR TOPEX_3.0 or other). Luni-Solar third body acceleration using low-accuracy analytical ephemeris.
Non-gravitational
forces
Jacchia-Gill atmospheric density model with daily F10.7 and 3-hourly Kp values.Cannon ball solar radiation pressure model with conical Earth shadow model (umbra, penumbra). Empirical accelerations in radial, along-track and across-track direction at 10 min (default) interval.
Reference frame
EME2000 (ECI J2000). IAU 1976 precession (Lieske model). IAU 1980 nutation (Wahr model). Earth orientation from IERS igs96p02 solution. Spacecraft body frame orientation modeled based on attitude quaternions or default attitude modes.
Another example of ground station’s POD is given by the Japan Aerospace Exploration
Agency (JAXA), which has planned the development of a Global and high accUracy
Trajectory determination System (GUTS) based on the core technology developed by
Fujitsu. GUTS uses measurements from double-frequency receivers, precise carrier
phase measurements, GPS satellite’s position and clock offset as calculated from ground
GPS stations, precise satellite dynamical model and observation models. Furthermore,
SLR measurements are used to verify the determination of the user S/C’s orbit (Katagiri
and Yamamoto, 2008). Figure 5.3 shows GUTS configuration.
64
Figure 5.3. GUTS configuration. Source: Katagiri and Yamamoto, 2010.
GUTS has six core technologies, as presented by Katagari and Yamamoto (2008):
• Preprocessing of observation data .- GPS data obtained from GPS receivers on
ground GPS stations and user S/C, and SLR data obtained from SLR stations are
preprocessed: carrier smoothing, detection and corrections of cycle slip, ionospheric
delay corrections, correction of phase centre variation, DCB (bias) correction, GPS
station quality check.
• Nominal orbit determination .- While the orbit estimation of the satellites has a non-
linear nature and is based on estimates of a large number of variables, linear
processing is conducted to reduce the computation time.
• Orbit generation .- Precise computation of a satellite’s orbit is carried out through
numerical integration by adding various dynamical models: Earth gravity potential,
gravity of other astronomical objects, tides, solar radiation pressure, Earth radiation
pressure, air drag, relativistic effects, empirical accelerations, satellite attitude.
• Theoretical calculation of observed data .- In the case of the GPS, pseudorange and
carrier phase, and in the case of the SLR, laser beam round-trip time. Observation
residuals and various models necessary for the estimation are considered: bias,
satellite attitude, variation of centre of mass position, tropospheric delay, tropospheric
65
gradient, phase centre offset and optical origin offset, tides, plate motion, polar
motion, clock offset, relativistic effect, correction of phase rotation.
• Rejection of bad data using observation residuals .- Double difference value often
used for differential GPS is used to judge and reject bad GPS data. In the case of
SLR data, the time-series shape of observation residuals is used.
• Batch sequential filter and smoother .- The parameters estimated in the POD consist
of various coefficients from the previous steps in addition to the satellite’s position,
velocity and clock offset. The number of parameters reaches approximately 1000 in
total.
Regarding the approaches in POD, Gill and Montenbruck (2004) have compared several
POD strategies for the on-ground trajectory reconstruction of LEO satellites, using two
sample sets of GPS measurements of the BlackJack receiver, which were obtained in the
framework of the CHAMP mission. “Single frequency L1 GPS receivers may vary in the
delivered data types which range from position fixes to raw data. The latter may comprise
C/A- and P-code pseudoranges as well as carrier phase measurements. In addition,
geodetic-type receivers may deliver L2 P-code and L2 carrier phase which, in the end,
opens up a variety of approaches to orbit determination. Finally, different data sets many
be treated in a kinematic, reduced-dynamics, or fully dynamic way, depending on the
amount of orbit knowledge included in the processing”. Data arcs of 24 h were used, and
“the raw GPS measurements are provided at a standard data interval of 10 s. Based on
nine active channels, a total of 200 000 pseudoranges (C1, P1 and P2) and 200 000
carrier phase (LA, L1 and L2) data are typically provided per day. The noise of carrier-
smoothed pseudoranges varies between a minimum of 5 cm at high elevations and 0.5 m
(C1) or 1.0 m (P1, P2) at 10 deg elevation”. Table 5.4 shows the typical CHAMP position
accuracy obtained.
66
Table 5.4. Typical CHAMP position accuracies (3D RMS). PR: pseudorange, CP: carrier phase, SPP: single point position. Source: Gill and Montebruck, 2004.
Data Type Processing Scheme Accuracy Navigation solutions Kinematic 16.5 m
Navigation solutions Reduced-dynamic 1.6 m
Single frequency PR Kinematic 9.1 m
Dual frequency PR Kinematic 2.9 m
Single frequency SPP Reduced-dynamic 0.8 m
Dual frequency SPP Reduced-dynamic 0.3 m
Single frequency PR Reduced-dynamic 0.8 m
Dual frequency PR Reduced-dynamic 0.2 m
Single frequency PR & CP Reduced-dynamic 0.3 m
Dual frequency PR & CP Reduced-dynamic 0.1 m
“The quality of GPS-based orbit determination depends crucially on the applied GPS orbit
and clock solutions. Since the analysis is focused on off-line orbit determination
strategies, only IGS final orbit and clock products have been employed. These products
are provided with a latency of about 13 days and provide GPS orbits with a sampling of 15
mins, while the clock products are sampled at 5 mins intervals” (Gill and Montenbruck,
2004).
Finally, Gill and Montenbruck (2004) concluded that “the direct use of the receiver’s
navigation solutions is ruled out due to possible data gaps, a limited position accuracy of
about 15 m, and poor velocity estimates. Also, a purely dynamic orbit determination from
navigation solutions is not recommended, since the resulting position is susceptible to
periods of high dynamic perturbations. However, a reduced-dynamic approach provides
an efficient and robust strategy which yields position accuracies better than 2 m”.
5.3 Batch-processing approach: Previous experiences
As our first attempt for the batch processing, we decided to follow the procedure
presented in the paper “Use of GPS for determining motion parameters of Space Station
MIR” (Belyaev et al., 1997), because it was one of the first methods that we found that
appeared to present a detailed processing technique of the GPS measurements obtained
on Spacecraft.
67
As part of its procedure, the method describes the solution of the motion equation, having
as an initial condition the state vector α, where α== 00 )( xtx and ( )ϕ α,tx = . The most
detailed notation of the solution is ( )αϕ ,, 00 tttx −= and is properly expressed by the
following relationship:
( ) (( ))ατϕττϕαϕ ,,,,,, 0000 ttttttx −−=−= Eq. 5.5
Where τ is an arbitrary moment in time. Further, the following matrix is required:
( ) ( )α
αϕα∂−∂
=−,,,, 00
00ttttttF Eq. 5.6
In view of Eq. 5.5 the following relationship is valid:
( ) ( )( ) ( )ατατϕττα ,,,,,,,, 000000 ttFtttFtttF −−−=− Eq. 5.7
The method then proceeds to explain the equations that we have to minimize in the
following way: Assume that the station coordinates are measured at moments tk (k =
1,2,…,N). Designate the result of measuring coordinate xi at moment tk as zi(k) (i = 1,2,3).
Divide the measurement interval containing points tk on intervals Iμ (μ = 1,2,…,M). Interval
Iμ contains nμ of points tk numbered by k = Nμ-1+1,…, Nμ, where N0 = 0, Nμ = Nμ+ nμ, NM =
N. Suppose that errors in all measurements are independent and distributed normally with
a mean value equal to zero. Errors in measurements or each coordinate zi in interval Iμ
have similar but unknown standard deviations σμ. With the given assumptions, the
definition of initial conditions of the station motion = 00 =α)( xtx and the unknown
standard deviations σμ is reduced within a framework of maximum likelihood method to
the minimization of the function:
∑=
⎟⎟⎠
⎞⎜⎜⎝
⎛+
Ψ=Φ
M
n1
2 ln32μ
μμμ
μ σσ
( )(∑ ∑+= =−
−=Ψμ
μ
αϕμ
N
Nk iki
ki tz
1
3
1
2)(
1
, ) Eq. 5.8
Where should be minimized in several steps. Φ
68
The aim of this method is “to compress” the large amount of GPS data available by
generating normal points for each interval.
To solve every iteration the method proposes to use a Keplerian approximation
( )βχ ,tx = of the station motion in interval Iμ, where ( )TiLea ωβ ,,,,, 0 Ω= and the
Keplerian elements of the orbit are: semi-major axis α, eccentricity e, mean longitude for a
certain epoch L0, longitude of ascending node Ω, inclination i, and argument of perigee ω.
Therefore, after some calculations, the method concludes that we need to minimize the
function:
( )∑= ⎟
⎟
⎠
⎞
⎜⎜
⎝
⎛ Ψ=Φ
M b
122 ˆ,
21
μ μ
μμ
σ
βα; ( ) ( ) ( )( )∑
=
−≈Ψ3
1
2,,,i
iib n
μμμμμμ βτχατϕβα Eq. 5.9
Where the solution will be 2minargˆ Φ=α . The details can be found in the paper “Use of
GPS for determining motion parameters of Space Station MIR” (Belyaev et al., 1997).
Although, the approximations in this method are fairly good for its intended application
(the Space Station MIR in LEO), after careful consideration it presented some
implementation issues that made this method not suitable under the constraints of this
project. First of all, the observations in the proposed algorithm are position and velocity,
which makes the models used and the minimization simpler than the ones that would be
needed using ranges and range rates, as in our case. For instance, the function ( )ϕ α,t
will give the state vector at some specific time, and ( )χ β,t will provide the Keplerian
elements. The latter is also thought to be an ideal case that probably will not represent a
good approximation for a batch processing of measurements in GTO or GEO scenarios.
Furthermore, the computation of the initial state α Φ that minimizes the function was still
an issue that has to be taken into account and solved.
2
The investigations on this approach were discontinued, when it did not appear to be viable
for finding a suitable solution for a more advanced model that extends the Kepler model,
and that includes perturbations such as the ones from third bodies among other
perturbations. Therefore, although in the end this method did not fit with the requirements
of the project, it provided an important insight for the algorithms that were later developed.
69
5.4 Batch-processing approach: The chosen one
The chosen estimation technique based on batch processing is described in the following
sections.
5.4.1 System models
5.4.1.1 State vector and state transition matrix
The state vector xuser,k to estimate was chosen to be the position and velocity of the
Spacecraft at a reference point, as follows:
⎥⎦
⎤⎢⎣
⎡=
)()(
,k
kkuser tr
trx
& Eq. 5.10
where:
)( ktr = Position vector of the Spacecraft at time tk.
)( ktr& = Velocity vector of the Spacecraft at time tk.
For the formulation of the state transition matrix, we will follow the derivation developed by
Kühl (2005). In the case of the Kepler-motion the governing equation is merely dependent
on the gravitational forces, leading to the differential equation
( ) 23
rrrr
Tμ−=&& Eq. 5.11
The linearization of r&& leads to
( ) ( )( )[ 132
3 −−−−=
∂∂
= rrrrIrrrrG TTTμ&& ] Eq. 5.12
And, this matrix in turn can be used in
xG
Ix Δ⎥
⎦
⎤⎢⎣
⎡=Δ
00
& Eq. 5.13
70
In general, the state transition matrixΦ , which transforms the state at time t (xk-1) to the
state at time t+Δt (xk), can be composed from the linear system with xAx& = as
∑∞
=
Δ⎥⎦⎤
⎢⎣⎡ Δ==Φ
0 !1
i
iitA tAi
e Eq. 5.14
where Δt is the time step. The linearized system is treated accordingly by appropriate
substitution of A, leading to the linearized state transition matrix,
⎥⎦
⎤⎢⎣
⎡
++Δ+Δ+
=⎥⎥⎦
⎤
⎢⎢⎣
⎡Δ⎥
⎦
⎤⎢⎣
⎡≈Φ
ΔΔ
ΔΔ=
=− ∑ GIGGt
GItGIt
GI
i tx
t
tx
tx
i
i
ii
k233
26
6332333
01 23
32
00
!1
Eq. 5.15
where the Taylor expansion of the matrix exponential includes the zero order term and is
truncated to third order.
However, this derived linear model yields to a sate transition matrix for small steps, and
what we need is an analytical model that only depends on the initial state in order to
minimize the errors with respect to the observations.
As can be observed, this state transition matrix still depends on the position of the
previous state, and is not totally independent from the state vector information, or in other
words it does not only depend on time. Although, this is a Keplerian model which is
suitable for determining the position after a small period of time, it is no longer valid for
large propagation times, as in our case where the measurements can be separated by
very long times in the order of minutes. If we would like to go from the initial state to the
state of a time greater than Δt, the option considered was to propagate the state vector,
and to use a sequence of multiplication of kΦ matrices, which at each time will depend on
the previous propagated state vector, through the G matrix.
5.4.1.2 Observation model
The observation equations of our measurement model were defined for pseudoranges
and range rates as follows:
71
( )( ) ( )
⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢
⎣
⎡
+−
−•−
+++Δ−Δ+−=⎥
⎦
⎤⎢⎣
⎡==
•
RErr
rrrr
REUREIbcrrr
rr
txgtz
igpskuser
igpskuserigpskuser
iiigpskuser
kk
,,
,,,,
,,
)()(&&&
Eq. 5.16
where:
r = ith predicted pseudorange at time tk.
r& = ith predicted range rate at time tk.
kuserr , = Position vector of the user S/C in ECEF reference frame at time tk.
igpsr , = Position vector of the ith GPS satellite in ECEF reference frame at time tk.
Δri = Correction to the pseudorange due to the Sagnac Effect.
c = Speed of light.
Δbi = Clock error of the ith GPS satellite.
I = Ionospheric correction of the pseudorange at time tk.
URE = User Range Error for the pseudorange at time tk.
RE = Errors due to the receiver for the pseudorange at time tk.
kuserr ,& = Position vector of the user S/C in ECEF reference frame at time tk.
igpsr ,& = Position vector of the ith GPS satellite in ECEF reference frame at time tk.
•
RE = Errors due to the receiver for the range rate at time tk.
Equation 5.16 is then extended to deal with multiple satellites.
5.4.1.3 Equations of motion
For the dynamical model of the system, the Earth Gravity Model 96 was used, with degree
and order up to 10. Additional gravitational forces were introduced such as perturbations
from Sun and Moon, and non-gravitational forces such as solar radiation pressure and air
drag were also taken into account. The implementation also provides the possibility to
include accelerations due to thrust manoeuvres in the model of the user S/C motion. The
following formula represents the equation of motion:
( ) ( ) ( ) ( ) ( ) ( rrtrrrtrrtrrtrrtrrrr ThurstDragSolRadMoonSunEarth &&&&&&&&&&&&&&&& ,,,,,,, )+++++= Eq. 5.17
72
5.4.1.4 Numerical integration
In order to solve the following differential equation, which relates position and
acceleration,
( )(∫−
+== −
k
k
t
tkkk drrrrrrrrx
1
,,,),(),( 1 ττ &&&&&& ) Eq. 5.18
we chose 4th order Runge-Kutta as the numerical integration method. This is a well-known
and robust method with uses 4 derivative steps to calculate the integral.
Let the initial value problem be specified as follows,
),( xtfx =& , 00 )( xtx = Eq. 5.19
Then, the Runge-Kutta method for this problem is given by the following equations:
( )43211 226
kkkkhxx kk ++++=+ , htt kk +=+1
( )( )( )( )34
223
122
1
,2/,2/,
,
khyhtfkkhytfkkhytfk
ytfk
kk
kh
k
kh
k
kk
++=
++=
++=
=
Eq. 5.20
The time step of the Runge-Kutta method was set to 1 s.
5.4.1.5 Process noise model
In the case of the pseudorange, the sigma value or standard deviation is in part due to the
User Range Error, which was set to 2 m, but mostly due to the Delay-Locked Loop (DLL)
error in the hardware of the receiver. This value is strongly dependent on the Carrier-To-
Noise Density (C/N0) among other parameters that are hardware specific, and is defined
by the following formula (Kaplan and Hegarty, 2006), which specifies the thermal noise
code tracking jitter:
73
⎥⎦
⎤⎢⎣
⎡−
+=)2(/
21/2
][00 DNCTNC
DBchip n
tDLLσ , fe
c
BR
Dπ
≥ Eq. 5.21
where:
C/N0 = Carrier-To-Noise power ratio (ratio-Hz).
Bn = Code (carrier) loop noise bandwidth (Hz).
Bfe = Double-sided front-end bandwidth (Hz).
D = Early-To-Late correlator spacing (chips).
T = Predetection integration time (s).
Rc = Chipping rate (Hz).
The thermal noise code tracking jitter is finally expressed in meters as follows:
WavelengthCodechipsFrequencyCode
cchipsm tDLLtDLLtDLL *][*][][ σσσ == Eq. 5.22
The code frequency for the C/A code is equal to 1.023 MHz, which means that one chip is
equal to 293.05 m. Since the noise is White Gaussian Noise, we use this variance in a
Gaussian distribution with mean zero. The noise power in the pseudorange is equal
to . 2tDLLσ
In the case of the range rate, the sigma value is also dependent on the C/N0. First, we
define the Phase-Locked Loop (PLL) thermal noise using the following formula (Kaplan
and Hegarty, 2006):
⎥⎦
⎤⎢⎣
⎡+=°
00 /211
/2360][
NCTNCBn
tPLL πσ Eq. 5.23
where:
C/N0 = Carrier-To-Noise power ratio (ratio-Hz).
Bn = Code (carrier) loop noise bandwidth (Hz).
T = Predetection integration time (s).
The part of the equation involving the predetection integration time, T, is called the
squaring loss. Increasing the predetection integration time reduces the squaring loss,
74
which in turn decreases the standard deviation. To convert this to meters we use the
following formula:
°°=
360][][ L
PLLPLL mλ
σσ Eq. 5.24
where:
λL = GPS L-band carrier wavelength (m).
= (speed of the light) / (1 575.42 MHz) = 0.1903 m/cycle for L1.
= (299 792 458 m/s) / (1 227.6 MHz) = 0.2442 m/cycle for L2.
The pseudorange rates are calculated using the following formula:
me
jj
TseCarrierPhaseCarrierPha
r 1−−=& Eq. 5.25
where:
CarrierPhasej = Carrier Phase (pseudorange) measurement at time j (m).
Tme = Timestep of measurement epoch (s).
So, the variance of the range rate is calculated using the following formula:
][][][
22
22222
sTmm
me
PLLPLLraterange
σσσ
+= Eq. 5.26
which is the noise power in the range rate.
5.4.2 Optimization criterion
The chosen optimization criterion was the Weighted Least Square method, which is a
function of the observation residuals (Eq. 5.1, 5.2 and 5.3). In the case of the weighting
matrix, the inverse of the squares of the sigma values of the observations, described
above, were used for every single observation in the form of a diagonal matrix shown as
follows:
75
( ) vWvxL T= ,
⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
=
2
22
21
100
010
001
n
W
σ
σ
σ
L
MOMM
K
K
Eq. 5.27
5.4.3 Optimization approach
The chosen optimization approach was the Newton-Raphson method, which involves
partial derivatives and demanded the explicit differentiation of the pseudoranges and
range rates observation function g(x(tk)) with respect to the state vector. This means that
we had to calculate the Jacobian matrix, where every component of the state vector is
taken as independent of each other. The Jacobian matrix was derived as follows,
( )
[ ]⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢
⎣
⎡
=∂
∂=
TT
kk
rr
rxrxrr
rr
xtxg
H
'1)''('1
0'
)(
3&
Eq. 5.28
where:
igpskuser rrr ,,' −= (Relative position vector of the user S/C)
igpskuser rrr ,,' &&& −= (Relative velocity vector of the user S/C)
igpskuser rrr ,, −= (Geometrical distance - pseudorange)
5.4.4 Batch-processing main module
After the linearization of the model, the correction to the predicted state vector is
calculated as follows:
76
( ) ( )vWHHWHx TT 1
0ˆ−
=Δ ,
⎥⎥⎥⎥⎥⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢⎢⎢⎢⎢⎢
⎣
⎡
ΦΦ
Φ
ΦΦ
=
−−
NN
NN
kk
HH
H
HH
H
11
11
00
M
M
Eq. 5.29
The derivation of the correction 0xΔ can be found in Hall and McMullen (2004). The aim
is to correct the estimation of the state through an iterative process until the correction is
small enough. For this two loops are required. The inner loop processes all the
observations and calculates the correction to the state vector,
( ) ( ) 0001 xtxtx ii Δ+=+ Eq. 5.30
And, the outer loop controls that the correction is smaller that an arbitrary epsilon value.
ε<Δ 0x Eq. 5.31
77
6 RESULTS AND DISCUSSION OF THE BATCH-PROCESSING APPROACH
Introduction
After the selection of the batch-processing scheme, several steps were taken. During the
implementation and test phases of the batch-processing, a LEO scenario was chosen first
due to practical reasons. It was faster to get the required number of measurements and to
observe the improvements in the results of the method when each module of the batch-
processing finally was incorporated. Then the batch-processing was tuned in order to deal
with sparsely distributed GNSS measurements in GEO. Finally, the GEO scenario was
tuned in order to obtain the expected performance of the batch-processing under a harsh
scenario. The following sections show the results.
6.1 Results in Low Earth Orbit
The LEO scenario was configured to include ionospheric delays, which is the main
contributor of disturbances in a real scenario for the determination of a PVT solution by a
GNSS receiver. The batch-processing input generator was implemented in such a way
that the number of measurements in a set is a multiple of 20 measurements, which is the
default value for the size of the subsets. This facilitated testing of different scenarios with
different numbers of measurements in a set, without having to run several times the
S/W Simulator to generate the set of measurements once again.
Another important aspect of the setting of the scenario is that the order and degree of the
Earth gravity potential model used to generate the reference orbit in the S/W Simulator
was set to 10, while the order and degree set for the Earth gravity potential model was set
to a maximum of 4. The aim of this is to introduce unmodelled forces in the setting.
78
6.1.1 Results using only pseudoranges as observations
As first step, only the pseudoranges were used as observations. Figure 6.1 shows the
batch-processing performance in terms of the 3D RMS error using 240 measurements,
where the sampling frequency of the 8 channels is every second. In average for a LEO
scenario, observations from 6 of the channels are available every second due to the CPU
load limit. where the achieved mean value was of 2.83 m with a standard deviation of
0.95 m; in comparison of the Navigation Module performance, where the achieved mean
value was of 7 m with a standard deviation of 3.6 m. Figure 6.2 shows the performance
using 1 000 measurements, where the achieved mean value was of 2.55 m with a
standard deviation of 0.6 m. It can be observed that the larger the number of
measurement used in the estimation, the smoother the 3D RMS error is. In this scenario,
1 000 measurements can be collected in approximately 2.7 minutes, which corresponds to
roughly 3% of one orbit. It is important to note that although the batch-processing
solutions in the figures appear to be noisy, they actually not have any noise as the
position solution is propagated from the refined reference point of every batch-processing
set. The noisy-like output is due to the transition from the last propagated position of one
set to the refined reference position of the next set. For instance in the case of 1 000
measurements, the transitions occur approximately every 2.7 minutes, which appear to be
noisy in the 5 hours timescale of the figure.
Figure 6.1. Batch-processing performance (red) in LEO using only pseudoranges as observations and 240 measurements, in comparison to the Kalman Filter
performance (blue).
79
Figure 6.2. Batch-processing performance (red) in LEO using only pseudoranges as observations and 1 000 measurements, in comparison to the Kalman Filter
performance (blue).
Figure 6.3 shows the reference orbit and orbits generated by the Kalman Filter and the
batch-processing.
Figure 6.3. Reference orbit (green) and orbits generated by the Kalman Filter (blue) and the batch-processing (red).
80
6.1.2 Results including the weighting matrix as part of the optimization criterion
As a second step, the weighting matrix was introduced in order to run the tests using the
Weighted Least Square method. In this case, the result is not too different from the one
without using the weighting matrix, mainly because in LEO the signals are more or less
homogeneous and therefore the sigma values in the weighting matrix are also similar,
leading to an almost constant weighting matrix. Figure 6.4 shows the results, where the
batch-processing achieved a mean value of 2.51 m with a standard deviation of 0.72 m.
Figure 6.4. Batch-processing performance in LEO using pseudoranges as observations, 1 000 measurements and introducing the weighting matrix, in
comparison to the Kalman Filter performance (blue).
6.1.3 Results including the range rates as part of the observations
The next step was to include the range rates in the observation equations, and therefore
to modify the Jacobian matrix in order to take into account these range rates. In this case,
the result is notably much better than the previous case because it is smoother. Figure 6.5
shows the results, where the batch-processing achieved a better mean value of 2.43 m
and a better standard deviation of 0.55 m.
81
Figure 6.5. Batch-processing performance in LEO using pseudoranges and range rates as observations, the weighting matrix and 1 000 measurements, in
comparison to the Kalman Filter performance (blue).
Table 6.1 summarizes the results obtained for a LEO scenario as the incremental
development of the batch-processing was carried on.
Table 6.1. Results obtained with the different options considered for the batch-processing as they were developed in the LEO scenario.
Estimation Technique 3D RMS error Standard Deviation (1σ)
Navigation Module – Kalman Filter 7.00 m 3.60 m
Batch-processing – 240 measurements 2.83 m 0.95 m Only pseudoranges
Batch-processing – 1 000 measurements 2.55 m 0.60 m Only pseudoranges
Batch-processing – 1 000 measurements 2.51 m 0.72 m Pseudoranges Weighting matrix
Batch-processing – 1 000 measurements 2.43 m Pseudoranges Range rates Weighting matrix
0.55 m
82
6.2 Results in Geostationary Earth Orbit
The GEO scenario was also configured to include ionospheric delays; however, a mask of
600 km above the surface of the Earth was introduced in order to discard the signals
passing through the ionosphere. In addition, the sets of results in LEO and GTO/GEO are
not directly comparable, since the dynamics and visibility conditions of each scenario are
different.
The order and degree set for the Earth gravity potential model was set to a maximum of 4
as in the previous case. Another important aspect of the setting of this scenario is that the
GPS antenna pattern of the Block IIA was used including sidelobes. From this point on,
only the final implementation of the batch-processing was used including pseudorange
and range rages in the observation equations and the weighting matrix.
As a first step, the same setting as in the previous case using 1 000 measurements was
used. Figure 6.6 shows the results, which were not good and a peak at 4 500 km can be
observed.
Figure 6.6. Batch-processing performance in GEO using 1 000 measurements, in comparison to the Kalman Filter performance (blue). Because of the huge scale in
the Y-axis, the Kalman Filter performance, which is in the order of hundred of metres, cannot be appreciated.
83
Therefore, other settings needed to be tested using different numbers of measurements
for the batch-processing. Figure 6.7 shows the performance of the batch-processing using
4 000 measurements. And, Figure 6.8 shows the performance using 6 000
measurements.
Figure 6.7. Batch-processing performance in GEO using 4 000 measurements, in comparison to the Kalman Filter performance (blue).
Figure 6.8. Batch-processing performance in GEO using 6 000 measurements, in comparison to the Kalman Filter performance (blue).
84
Finally, when 8 000 measurements where used, the performance resulted to be good.
Figure 6.9 shows the results, where the Navigation Module achieved a mean value of
54.5 m with a standard deviation of 76.8 m, and the batch-processing achieved a mean
value of 14.4 m with a standard deviation of 10.4 m.
Figure 6.9. Batch-processing performance in GEO using 8 000 measurements, in comparison to the Kalman Filter performance (blue). The figure at the bottom
shows a zoom up to a 3D RMS error of 200 m.
85
It was also attempted to change the order and degree of the gravity potential model to the
maximum allowed of 10, which is the order and degree used to propagate the reference
orbit. And, as an interesting fact, the performance of batch-processing was only slightly
better. This agrees with the order of magnitude of various perturbations of a satellite orbit
shown in Figure 6.10, where can be noted that in GEO, the perturbation from the Moon,
for instance, is roughly equal to the perturbation introduced by the J2,0 harmonic
(degree 2, order 0) of the Earth geopotential model.
Figure 6.10. Order of magnitude of various perturbations of a satellite orbit. Source: Montenbruck and Gill, 2010.
Further analysis of the scenario showed that the almanac file that was used for the test
contained 2 satellites flying almost in the same position all the time, and although the
86
visibility showed two tracked satellites during the arc between the hours number 12 and
14, these two satellites were providing roughly the same pseudorange and range rate
information. It is possible that the used almanac had two satellites from different GPS
blocks in the same position, and both of them with the healthy status turned on, due to a
replacement of the GPS satellite. Therefore, assuming that only one satellite was
effectively in view, it was concluded that with information from only one satellite, it is not
possible to fit an arc of the orbit.
6.3 Further Assessment Studies
After the assessment of the situation described above, the almanac file was changed to a
newer one. And, another important change was introduced in the S/W Simulator. All the
scenarios that were run up to now were using the GPS antenna pattern of the Block IIA.
However, right now the Block IIR is the one that is currently mostly flying. Therefore, the
antenna pattern in the scenario was changed to the one representative of the Block IIR.
This pattern was taken from Moreau (2008). Figure 6.11 shows the antenna pattern of the
Block IIR in comparison to the one of the Block IIA. The data of the Block IIR has a
steeper drop-off of the main lobe signals, but higher sidelobes, which can improve the
tracking of them. In spite of this fact, only the information from the main lobe was
considered in this assessment because complete data from the sidelobes were not
available. In addition, the 1σ value of the minimum noise on the pseudorange
measurements in the MosaicGNSS receiver was set again to 5 m, and when higher, it
follows the equation of the noise model. This change was made in order to assess the
effect of the weighting matrix in the batch-processing.
87
Figure 6.11. GPS transmission antenna pattern of the GPS Block IIR satellite. Source: Moreau, 2008.
After running the scenario with the previous setting using 8 000 measurements, the first
step was to check the visibility and tracking scenario. Figure 6.12 shows the number of
GPS satellites that could be acquired and tracked during the total time of the scenario. As
it can be observed, there are long periods that can last for almost two hours during which
no satellite can be tracked, and there are only small periods that can last for some tens of
minutes where up to 4 satellites can be tracked. Figure 6.13 shows the performance of the
batch-processing in comparison to the one of the Navigation Module using 8 000
measurements, where the Navigation Module achieved a mean value of 45 m with a
standard deviation of 35.8 m, and the batch-processing achieved a mean value of 10.5 m
with a standard deviation of 7.4 m. In addition, it can be noted that when there are more
than one satellite in track, the Navigation Module starts to execute the Kalman Filter to
process the information from the observations. And, when there are less than two
satellites in view or none at all, the Navigation Module starts to propagate the PVT
solution.
88
Figure 6.12. Number of GPS satellites that can be acquired (black) and tracked (red) in the new setting of the GEO scenario using GPS Block IIR.
Figure 6.13. Batch-processing performance in GEO using GPS Block IIR and 8 000 measurements, in comparison to the Kalman Filter performance (blue).
Moreover, it was decided to reduce the number of measurements in the batch-processing
in order to test its performance under the new setting of the scenario. Figure 6.14 shows
the results obtained using 6 000 measurements, where the batch-processing achieved a
mean value of 11.3 m with a standard deviation of 9.5 m.
89
Figure 6.14. Batch-processing performance in GEO using GPS Block IIR and 6 000 measurements, in comparison to the Kalman Filter performance (blue).
Figure 6.15 shows the results obtained using 4 000 measurements, where the batch-
processing achieved a mean value of 11.5 m with a standard deviation of 7.4 m. As can
be observed under the scenario setting, the performance of the batch-processing was not
affected so much. This means that using 8 000 measurements, the performance in terms
of the mean value is better by only 1 m, and therefore we can conclude that sets of 4 000
measurements provide interesting good results in terms of the position determination
performance.
90
Figure 6.15. Batch-processing performance in GEO using GPS Block IIR and 4 000 measurements, in comparison to the Kalman Filter performance (blue).
Table 6.2 summarizes the results obtained with the different batch sizes that were
assessed for the GEO scenario. It is important to note that although the batch-processing
uses different numbers of data points, the statistics are calculated using the total number
of points available per day, which is practically independent of the batch size.
Table 6.2. Results obtained with different batch sizes in comparison to the results obtained by the MosaicGNSS Navigation Module.
Estimation Technique 3D RMS error Standard Deviation (1σ)
Navigation Module – Kalman Filter 45.0 m 35.8 m
Batch-processing – 4 000 measurements 11.5 m 7.4 m
Batch-processing – 6 000 measurements 11.3 m 9.5 m
Batch-processing – 8 000 measurements 10.5 m 7.4 m
91
7 CONCLUSIONS AND RECOMMENDATIONS
Introduction
The investigation of batch-processing estimation techniques as an alternative solution to
the in-orbit autonomous position determination of satellites was carried out. All the
objectives proposed in this thesis work were successfully and satisfactory fulfilled. It has
been demonstrated that the use of batch-processing approach results in an interesting
performance to deal with sparsely distributed GNSS measurements in terms of the 3D
RMS error with respect to the true orbit of the Spacecraft. Each chapter has presented its
own discussion, so all the major findings and discussions are summarized in this chapter.
It also details the conclusions and presents the recommendations for the continuation of
the investigation in this field of research.
7.1 Conclusions
7.1.1 Regarding the attitude dynamics for the EADS Astrium’s Space Environment Simulator
In a GTO/GEO scenario, the addition of attitude manoeuvres, ranging from a Sun-pointing
attitude to calibration manoeuvres, is mandatory to get a representative profile of the
visibility of GNSS satellites from the separation of the launch vehicle to the final insertion
in GEO. Therefore, the introduction of an attitude dynamics module for the S/W Simulator
was identified as a necessary pre-requisite for further assessments of the navigation
solution performance. Such a module was successfully developed under the framework of
this thesis work for the S/W Simulator, which supports future development of GNSS
receivers and applications in HEO, and the expansion of the of the GALILEO constellation
into the Space Service Volume (SSV). The attitude dynamics module calculates the
92
attitude of the user S/C, after the execution of the specified manoeuvres for the current
time, using different rotation methods in different reference frames.
The department at EADS Astrium has started to use the attitude dynamics module of the
S/W Simulator not only for investigations of the use of GNSS in GEO applications, but
also for the assessment of orbit and attitude profiles provided by other EADS Astrium
sites, in the framework of their on-going missions in several types of scenarios.
7.1.2 Regarding the verification of the EADS Astrium’s Space Environment Simulator
The S/W Simulator was tuned in order to match the visibility conditions for LEO and GEO
as compared to the observations made during closed-loop tests using the Spirent RF
Simulator and the MosaicGNSS receiver in the loop. The tracking behaviour of the
MosaicGNSS receiver influences the navigation solution performance and was therefore
an important criterion for the verification. As it was explained above, the MosaicGNSS
receiver has two thresholds for the received Carrier-To-Noise Density (C/N0), one for
acquisition and the other one for tracking of a GPS satellite. The S/W Simulator yielded
better navigation solution accuracy than the one from the Spirent RF Simulator, although
all concerning error sources were considered and the associated error magnitudes were
set to realistic nominal values.
The reasons for this are believed to be due to the 40 bit processing in the MosaicGNSS
Receiver versus the 64 bit processing under MATLAB and due to the incomplete clock-
error model.
In order to consider these effects that are currently not simulated and to verify the
S/W Simulator in GEO, it was chosen to set one of the possible errors higher than nominal
in order to obtain the same performance in GEO as the one from the Spirent RF Simulator
tests. Hence, the 1σ value of the noise on the pseudorange measurements in the
MosaicGNSS receiver was set to 100 m.
93
7.1.3 Regarding the visibility conditions in GTO/GEO
Representative visibility conditions for a GTO/GEO scenario were obtained, where not
only the number of geometrically visible GPS satellites was assessed, but also the
number of trackable GPS satellites, which is more important in the framework of a GNSS
receiver development. Results confirm the poor visibility and tracking of GPS satellites
under the conditions of these scenarios.
In order to eliminate the ionospheric delays, the Earth radius was masked with additional
600 km, which is above the peak of the ionosphere, so that no signals affected by
ionospheric delay were used.
The number of tracked GPS satellites depends on the position of the user S/C and the
viewing direction of the antenna boresight. At the perigee of the 1st intermediate orbit, the
number of visible and tracked satellites can achieve its highest value, because the perigee
is far below the GPS constellation and therefore a highest visibility condition is achieved.
This can be observed at the beginning of the GTO scenario. In addition, two or more GPS
satellites are always visible during 91.6% of the simulation time. And, two or more GPS
satellites are always in track during 29.8% of the simulation time.
Moreover, it can be noted in Figure 4.18 that during the GEO phase, the minimum value
of geometrically visible satellites was found to be 5, the mean value 7.4 and the maximum
value 11. This means that under a different configuration of the MosaicGNSS receiver, the
mean value of tracked GPS satellites can be increased. For instance, it can be achieved
by changing the receiver antenna or by lowering the acquisition and tracking thresholds,
while still keeping the Delay-, Phase- and Frequency-Locked Loops in the MosaicGNSS
receiver.
7.1.4 Regarding batch-processing algorithms
Estimation techniques based on batch-processing algorithms were investigated.
Publications from different Space organizations provided insight into the methods used for
Precise Orbit Determination (POD) using the batch-processing approach on Ground
Stations, although none of them provided details regarding the implementation of such
methods.
94
After the choice of an adequate batch-processing algorithm including system models,
optimization criterion and optimization approach; the implementation was carried on in a
MATLAB environment, and the results in terms of position determination accuracy were
compared with respect to the results achieved using the state-of-the-art algorithms of the
MosaicGNSS receiver, which implements a sequential approach based on a Kalman
Filter.
It can be observed that the larger the number of measurement used in the batch-
processing estimation, the smoother the 3D RMS error is. In a LEO scenario, the use of
1 000 measurements for the estimation provided a good performance in terms of the
3D RMS error. This number of measurements can be collected in approximately 2.7
minutes, which corresponds to roughly 3% of one orbit.
According to the visibility and tracking conditions in this setting of the GEO scenario, there
are long periods that can last for almost two hours where there is no satellite that can be
tracked, and only small periods that can last for some tens of minutes where up to 4
satellites can be tracked.
Different numbers of measurements were tried for the batch-processing, where the use of
4 000 measurements for the estimation provided a good performance. In this case, the
batch-processing achieved a mean value of 11.5 m with a standard deviation of 7.4 m, in
contrast to the mean value of 45 m with a standard deviation of 35.8 m achieved by the
Navigation Module of the MosaicGNSS receiver. After using 8 000 measurements, the
performance in is better by only 1 m, and therefore we can conclude that sets of 4 000
measurements provide interesting good results in terms of position determination
performance.
Furthermore, it was also attempted to change the degree and order of the gravity potential
model to the maximum allowed of 10, which are used to propagate the reference orbit.
And, as interesting fact, the performance of batch-processing was only slightly better. This
agrees with the order of magnitude of various perturbations of a satellite orbit shown in the
theory, where can be seen that in GEO, the perturbation from the Moon, for instance, is
roughly equal to the perturbation introduced by the J2,0 harmonic (degree 2, order 0) of the
Earth geopotential model. Therefore, the accuracy of the Earth geopotential model is not
critical in a GEO scenario, and by setting a lower number of degree and order, a
considerable amount of computational time can be saved.
95
7.2 Recommendations
The first step to continue this work should be to assess the achieved performance of the
batch-processing trying different initial reference points for the estimation of the orbital arc.
It also can be observed that the plots of the batch-processing performance in the previous
chapter show discontinuities in the solutions of the estimation of consecutive arcs. It is
due to the fact that the measurements used in the estimation of one arc are taken
independently from the ones used in the estimation of the next arc. In order to smooth the
transition, it is recommended to consider some percentage of the measurements from the
previous set in the estimation of a new arc. A percentage of 50% seems to be a good
number to start with this procedure.
The next challenge for a batch-processing estimation technique after the performance
evaluation in terms of the 3D RMS error is to concentrate in an optimal implementation of
it in terms of execution time. Currently, the batch-processing computation is not fast
enough to run in a dedicated hardware for a GNSS receiver, taking in a normal PC setting
a couple of seconds to process a solution for an arc in a LEO scenario with
1 000 measurements to several seconds for an arc in a GEO scenario with 4 000
measurements. This is due to the fact that in the latter scenario the measurements are
sparsely distributed along the orbital arc, and therefore the state vector needed to be
propagated using a time step equal to one second until reaching the time of the
observation. So, a lighter implementation is needed.
The computational time also depends on the chosen order and degree of the Earth
geopotential model. The higher the number, the longer that it takes to compute the
acceleration the user S/C is subjected to. In addition, a dramatic improvement can be
achieved changing the time step of the Runge-Kutta method from 1 s to 30 s, or using
another integration method more suitable for a long observation period. For instance, the
Cowell method is optimized for differential equations of second order. Methods that use
variable time steps can also be assessed.
On the other hand, the GEO scenario should be assessed using the GPS antenna pattern
of the Block IIR also including sidelobes. Moreover, the first GPS satellite of the new Block
IIF, SV-1, was recently launched at 03:00 UTC on May 28th, 2010. An assessment of the
position determination using the signals and the antenna pattern from this new block of
GPS satellites should be made. Furthermore, the assessment of a scenario using the
96
European GALILEO constellation should be carried on as well as the assessment of a
scenario using both the GPS and the GALILEO constellation at the same time.
In addition, a performance assessment of the batch-processing should be carried on for
several GTO scenarios, which strongly depend on the chosen launch vehicle and on the
latitude of the launch site.
Finally, the way to achieve a batch-processing mode in a GNSS receiver is by the means
of two processes that should run on it. The first one should run on foreground and will be
in charge of the propagation of the state, position and velocity; and the second one should
run on background and will be in charge of the batch-processing of the measurements.
Thus, the possibility of using a batch-processing approach was assessed for higher orbits.
The results indicate that for the moment this method is feasible; although, the next steps
toward the future need work.
97
8 BIBLIOGRAPHY AND REFERENCES
8.1 References
Air Force Space Command (2002), GPS Operational Requirements Document (ORD),
No. AFSC/ACC 003-92-ull/m.
Belyaev, M.Y., Sazonov, V.V., Foeckersperger, S., and Paeffgen, W. (1997), “Use of GPS
for Determining Motion Parameters of Space Station MIR”, Proceedings of the 12th
International Symposium on Space Flight Dynamics, June 2-6, 1997, ESOC,
Darmstadt, Germany.
Braasch, M.S., and Van Dierendonck, A.J. (1999), “GPS Receiver Architectures and
Measurements”, Proceedings of the IEEE, Vol. 87, No. 1, p. 48-64.
Czopek, F. M., and Shollenberger, S. (1993), “Description and Performance of the GPS
Block I and II L-Band Antenna and Link Budget”, Proceedings of the ION GPS
1993: 6th International Technical Meeting of the Satellite Division of the Institute of
Navigation, p. 37-43, September 19-22, 1993, Salt Lake City, Utah, USA, cited in
Moreau, M.C. et al. (2002), “Preliminary Results of the GPS Flight Experiment on
the High Earth Orbit AMSAT-OSCAR 40 Spacecraft”, 25th Annual American
Astronautical Society (AAS) Guidance and Control Conference, February 6-10,
2002, Breckenridge, Colorado, USA.
Deutsches Zentrum für Luft- und Raumfahrt (DLR) (2010), GPS High Precision Orbit
Determination Software Tools, available at:
http://www.weblab.dlr.de/rbrt/GpsNav/GHOST/GHOST.html (accessed March 12th,
2010).
EADS Astrium (2002), MosaicGNSS Receiver: Navigation Module Description and
Relative Navigation Algorithms, No. MosaicGNSS-14-300, Issue 3.0, Munich,
Germany (unpublished report).
98
EADS Astrium (2006), Performance of MosaicGNSS Receiver in Geosynchronous Orbit,
No. 1, Issue 1.0, Munich, Germany (unpublished report).
EADS Astrium (2010a), MosaicGNSS Receiver: Navigation Algorithms, Top Level
Description, No. MosaicGNSS-176-110, Issue 1.0, Munich, Germany (unpublished
report).
EADS Astrium (2010b), Feasibility of GNSS Sensors for AOCS Applications in GEO and
Higher Altitudes: D4: Simulator Design Description (including Physical Model and
Onboard Algorithms) and User Manual, No. GNSS_GEO_TN_04, Issue 1.0,
Munich, Germany (unpublished report).
European Space Agency (ESA) (2010), ARTES 11 Small GEO, available at:
http://telecom.esa.int/telecom/www/object/index.cfm?fobjectid=25603 (accessed
April 28th, 2010).
Gill, E., and Montenbruck, O. (2004), “Comparison of GPS-based Orbit Determination
Strategies”, Proceedings of the 18th International Symposium on Space Flight
Dynamics, October 11-15, 2004, Munich, Germany.
Gottzein, E. (2008), Spacecraft Dynamics and Controls, Würzburg, Germany (lecture
notes of the Joint European Master in Space Science and Technology,
SpaceMaster).
Hall, D.L., and McMullen, S.A.H. (2004), Mathematical Techniques in Multisensor Data
Fusion (2nd Edition), Artech House, Norwood, Massachusetts, USA.
Kaplan, E.D., and Hegarty, C.J., E. (2006), Understanding GPS: principles and
applications (2nd Edition), Artech House, USA.
Katagiri, S., and Yamamoto, Y. (2008), “Technology of Precise Orbit Determination”,
FUJITSU Sci. Tech. J., Vol. 44, No. 4, p. 401-409.
Kühl, C.T.F. (2005), Combined Earth-/Star Sensor for Attitude and Orbit Determination of
Geostationary Satellites (PhD thesis), Universität Stuttgart, Stuttgart, Germany.
National Imagery and Mapping Agency (NIMA) (1997), Department of Defense World
Geodetic System 1984 – Its Definition and Relationships with Local Geodetic
Systems (3rd Edition), No. NIMA TR 8350.2, Bethesda, Maryland, USA.
99
Mittnacht, M., Fichter, W. (2000), “Real Time On-Board Orbit Determination of GEO
Satellites Using Software or Hardware Correlation”, Proceedings of ION GPS 2000:
13th International Technical Meeting of the Satellite Division of the Institute of
Navigation, September 19-22, 2000, Salt Lake City, Utah, USA.
Montenbruck, O., and Gill, E. (2000), Satellite Orbits: Models, Methods, and Applications
(1st Edition), Springer-Verlag, Berlin, Germany.
Montenbruck, O., Yoon, Y., Ardaens, J.S., and Ulrich, D. (2008), “In-flight Performance
Assessment of the Single Frequency MosaicGNSS Receiver for Satellite
Navigation”, 7th International ESA Conference on Guidance, Navigation and Control
Systems, June 2-5, 2008, Tralee, County Kerry, Ireland.
Moreau, M.C., Bauer, F.H., Carpenter, J.R., Davis, E.P., Davis, G.W., and Jackson, L.A.
(2002), “Preliminary Results of the GPS Flight Experiment on the High Earth Orbit
AMSAT-OSCAR 40 Spacecraft”, 25th Annual American Astronautical Society (AAS)
Guidance and Control Conference, February 6-10, 2002, Breckenridge, Colorado,
USA.
Moreau, M.C. (2008), “GPS Space Service Volume: Increasing the Utility of GPS for
Space Users”, presentation given by Moreau, M.C., Flight Dynamics Analysis
Branch, NASA Goddard Space Flight Center, October 16, 2008, available at: http:// pnt.gov/advisory/2008-10/moreau.ppt (accessed April 6th, 2010).
Spirent Communications (2010), available at: http://www.spirent.com (accessed March 6th,
2010).
Spirent Communications (2006), SimREMOTE User Manual and Interface Control
Document: Software for the Spirent Range of Satellite, No. DGP00792AAA, Issue
2.0.
Tapley, B.D., Schutz, B.E., and Born G.H. (2004), Statistical Orbit Determination, Elsevier
Academic Press, Amsterdam, Netherlands.
Wolfram MathWorld (2010), Euler Angles, available at:
http://mathworld.wolfram.com/EulerAngles.html (accessed February 16th, 2010).
Zentgraf, P., Berge, S., Chasset, C., Filippi, H., Gottzein, E., Gutiérrez-Cañas, I.,
Hartrampf, M., Krauss, P.A., Kühl, C., Lübke-Ossenbeck, B., Mittnacht, M.,
100
Montenbruck, O., Müller, C., Rueda, P., and Truffi, A. (2010), “Preparing the GPS-
Experiment for the Small GEO Mission”, 33rd Annual American Astronautical Society
(AAS) Guidance and Control Conference, February 6-10, 2010, Breckenridge,
Colorado, USA.
8.2 Bibliography
Bate, R.R., Mueller, D.D., and White, J.E. (1971), Fundamentals of Astrodynamics (1st
Edition), Dover Publications, New York, USA.
Battin, R.H. (1987), An Introduction to the Mathematics and Methods of Astrodynamics
(1st Edition), American Institute of Aeronautics and Astronautics (AIAA), New York,
USA.
Montenbruck, O., Yoon, Y., Gill, E., and Garcia-Fernandez, M. (2006), “Precise Orbit
Determination for the TerraSAR-X Mission”, 19th International Symposium on Space
Flight Dynamics, June 4-11, 2006, Kanazawa, Japan.
Wermuth, M., Hauschild, A., Montenbruck, O., and Jäggi, A. (2009), “TerraSAR-X Rapid
and Precise Orbit Determination”, 21th International Symposium on Space Flight
Dynamics, September 28 - October 2, 2009, Toulouse, France.
Prasad, R., and Ruggieri, M. (2005), Applied Satellite Navigation Using GPS, GALILEO,
and Augmentation Systems (1st Edition), Artech House, USA.
101
9 APPENDIX
Appendix A. S/W Simulator’s Attitude Dynamic Module
Definition of inputs, parameters and outputs of the S/W Simulator’s Attitude Dynamic Module
Inputs .- The inputs of the user S/C’s attitude dynamics module are listed below:
1. refTime(GPS) [s] .- It is the GPS time for the iteration of the simulation and should be
contained in the time frame of the Almanac File. The GPS time is a linear time scale
where no leap seconds are inserted. It is equal to International Atomic Time (TAI)
minus 19 seconds. GPS time starts from 6th January 1980 and it matched UTC until
1st July 1981.
2. dcm_Eci2Ecef .- Direct cosine matrix for the rotation transformation from ECI J2000
reference frame to ECEF reference frame.
3. userPosEci [m] .- For the first iteration of the simulation it is the initial position of the
user S/C set in the init file in ECI J2000 reference frame. For the next iterations, it is
the new propagated position in ECI J2000 reference frame. The data structure is as
follows:
[posX posY posZ]
4. userVelEci [m/s] .- For the first iteration of the simulation it is the initial velocity of the
user S/C set in the init file in ECI J2000 reference frame. For the next iterations, it is
the new propagated velocity in ECI J2000. The data structure is as follows:
[velX velY velZ]
5. sunPosEci [m/s] .- It is the calculated position of the Sun at refTime(GPS) in ECI
J2000 reference frame. The data structure is as follows:
[posX posY posZ]
102
6. userBodyAxesBody .- This 3x3 matrix contains the representation in Body Frame of
the three orthonormal vectors that define the body axes of the user S/C. The first row
is the X-axis, the second row is the Y-axis, the third row is the Z-axis. The values of
the vectors are readed from the init file, although in general the vectors X, Y and Z in
this frame should be [1 0 0], [0 1 0] and [0 0 1] respectively.
7. userAntennaBsBody .- Attitude of the user S/C antenna boresight in Body Reference
Frame. The data structure is as follows:
[attitudeX attitudeY attitudeZ]
Parameters .- The parameters of the user S/C’s attitude dynamics module are listed
below:
1. ATTITUDE_MANOEUVRES_MATRIX .- This nx13 matrix specifies the attitude
manoeuvres that are to be executed at every step of the simulation. The data
structure is as follows:
[Column 1: GPS Time: Absolute GPS Time (s).
Column 2: Manoeuvre Command:
0 = Rotation w.r.t. ECI J2000 reference frame.
1 = Rotation w.r.t. LVLH (Nadir) reference frame.
2 = Rotation w.r.t. Sun-Pointing reference frame.
3 = Rotation from absolute Attitude-1 to Attitude-2 w.r.t. ECI J2000 frame.
4 = Rotation from absolute Attitude-1 to Attitude-2 w.r.t. LVLH frame.
5 = Rotation from absolute Attitude-1 to Attitude-2 w.r.t. Sun-pointing frame.
6 = Rotation w.r.t. Body Frame relative to the last attitude of the user S/C.
Column 3: Rotation Method:
1 = Euler Angles "X-convention" (Z-X'-Z').
2 = Tait-Bryan Angles (Roll, Pitch, Yaw).
3 = Quaternions.
4 = Euler Axis / Euler Angle.
Column 4-13: Parameters of the rotation method:
- For commands = 0, 1, 2:
- When Rotation Method = 1 (Euler Angles), 3 parameters are required:
- Phi (1st rotation about Z-axis).
103
- Theta (2nd rotation about X-axis).
- Psi (3rd rotation about Z-axis).
- When Rotation Method = 2 (Tait-Bryan Angles), 3 parameters are
required:
- Roll (3rd rotation about X-axis).
- Pitch (2nd rotation about Y-axis).
- Yaw (1st rotation about Z-axis).
- When Rotation Method = 3 (Quaternions), 4 parameter are required:
- q1, q2, q3: Vectorial part of the quaternion.
- q0: Scalar part of the quaternion.
- When Rotation Method = 4 (Euler Axis / Euler Angle), 3 parameters are
required and 2 parameters are optional:
- e1, e2, e3: Euler Axis.
- e0: Euler Angle (Initial angle).
- ω: Angular rate (Optional).
- Final angle (Optional).
- For commands = 3, 4:
- The first 4 parameters (columns: 4, 5, 6, 7) are for the definition of the
initial attitude, according to the rotation method in column 3.
- Column 8 specifies the rotation method for the final attitude.
- The next 4 parameters (columns: 9, 10, 11, 12) are for the definition of the
final attitude, according to the rotation method in column 8.
- Column 13 specifies the duration of the manoeuvre from the initial to the
final attitude.
]
2. dbzEps [m/s2] .- Epsilon or threshold on the vector magnitude for handling the
division by zero.
Outputs .- The outputs of the user S/C’s attitude dynamics module are listed below:
1. userBodyAxesEci .- This 3x3 matrix contains the representation in ECI J2000
reference frame of the three orthonormal vectors that define the body axes of the
user S/C. The first row is the X-axis, the second row is the Y-axis, the third row is the
Z-axis. The new values of the vectors are calculated every second after the
execution of the manoeuvres.
104
2. userBodyAxesEcef .- This 3x3 matrix contains the representation in ECEF reference
frame of the three orthonormal vectors that define the body axes of the user S/C. The
first row is the X-axis, the second row is the Y-axis, the third row is the Z-axis. The
new values of the vectors are calculated every second after the execution of the
manoeuvres.
3. userBodyAxesNadir .- This 3x3 matrix contains the representation in LVLH reference
frame of the three orthonormal vectors that define the body axes of the user S/C. The
first row is the X-axis, the second row is the Y-axis, the third row is the Z-axis. The
new values of the vectors are calculated every second after the execution of the
manoeuvres.
4. userAntennaBsEci .- Attitude of the user S/C antenna boresight in ECI J2000
reference frame. The data structure is a unit vector as follows:
[attitudeX attitudeY attitudeZ]
5. userAntennaBsEcef .- Attitude of the user S/C antenna boresight in ECEF reference
frame. The data structure is a unit vector as follows:
[attitudeX attitudeY attitudeZ]
6. userAntennaBsNadir .- Attitude of the user S/C antenna boresight in LVLH reference
frame. The data structure is a unit vector as follows:
[attitudeX attitudeY attitudeZ]
7. Reference Frame. The data structure is a unit vector as follows:
[attitudeX attitudeY attitudeZ]
8. dcm_Eci2Nadir .- Direction cosine matrix for the rotation transformation from ECI
J2000 to LVLH reference frame.
[attitudeX attitudeY attitudeZ]
105
Appendix B. Visibility check of the GNSS satellites
The visibility check is an important step in order to know which GNSS satellites can be
used at a specific time in the PVT solution. The algorithm checks which GNSS satellites
are visible as seen from the user S/C using the ECI J2000 reference frame.
Visibility is a purely geometrical condition. In order to declare that GNSS satellite is visible,
three conditions should be fulfilled. For the first condition, the relative position vectors of
the GNSS satellites and the Earth with respect to the user S/C are:
usergnssgnssuser rrri−=2 (LOS vector)
userusereciearthuser rrr −=−Ο=2 Eq. B.1
The angle between these two vectors is:
⎟⎟⎠
⎞⎜⎜⎝
⎛ •=
earthusergnssuser
earthuserT
gnssuser
rrrr
22
22arccosα
The angle of the half cone obscured by the Earth and atmosphere is:
⎪⎪⎩
⎪⎪⎨
⎧+>⎟
⎟⎠
⎞⎜⎜⎝
⎛ +
=
otherwise
hRrr
hRatmEarthuser
user
atmEarth
,2
,arcsin
πβ Eq. B.2
The first condition is fulfilled when the GNSS satellite has a valid line-of-sight (LOS) to the
user S/C, i.e. the Earth is not occulting the GNSS satellite. This is true when α is greater
than β.
For the second condition, the angle between the GNSS vector (or the direction of the
GNSS satellite’s transmission antenna boresight) and the LOS vector is calculated as
follows:
106
⎟⎟⎠
⎞⎜⎜⎝
⎛ •=
gnssusergnss
gnssuserTgnss
rrrr
2
2arccosγ Eq. B.3
The second condition is fulfilled when the angle between the LOS and the transmission
antenna orientation of the GNSS satellite, γ, is within the half cone aperture angle of the
GNSS satellite.
For the third condition, the angle between the direction of the user S/C’s receiver antenna
boresight and the LOS vector is calculated as follows:
⎟⎟⎠
⎞⎜⎜⎝
⎛ •=
gnssuser
gnssuserTboresight
rre
2
2arccosθ Eq. B.4
where:
boresighte = Unit vector that represents the orientation of the user S/C’s antenna
boresight in ECI J2000.
The third condition is fulfilled when the angle between the LOS and the antenna
orientation of the receiver, θ, is within the reception half cone aperture angle.
107
Appendix C. Definition of important concepts
Important concepts for visibility and tracking of GPS satellites
Received Signal Power
The received signal power is a function of several factors such as the transmission power
of the GNSS satellite, the transmitter and receiver gains as a function of the transmission
and reception angles respectively (with respect to line-of-sight), the free-Space path loss
(FSPL) and other losses, such as antenna polarization mismatch, quantization and
sampling losses. The receiver signal power is described as follows:
2
24 ⎟⎟⎠
⎞⎜⎜⎝
⎛==
GnssUser
LotherrttFSPLatmrttr r
AAGPAAAGPP rπλ
Eq. C.1
where:
Pt = Nominal transmitted power of the GNSS satellite.
Gt = Antenna gain of the GNSS satellite.
Ar = Antenna gain of the user S/C.
AFSPL = Free-Space path loss factor.
λL = GPS L-band carrier wavelength (m)
= (speed of the light) / (1 575.42 MHz) = 0.1903 m/cycle for L1.
= (299 792 458 m/s) / (1 227.6 MHz) = 0.2442 m/cycle for L2.
Aother = Other losses.
Noise Power
“The bandwidth of the final stage of intermediate frequency (IF) filtering ranges from
2 MHz in low-end receivers up to 20 MHz in high performance models” (Braasch and Van
Dierendonck, 1999). The noise power in this bandwidth can be approximated by,
BTkN E= Eq. C.2
108
where:
k = Boltzmann’s constant. K = 1.3806 x 10-23 J/K.
TE = Effective noise temperature in Kelvin.
B = Bandwidth in Hz.
In the case of the bandwidth B, the GPS signal is despread after being correlated with the
locally generated code, thus occupying the bandwidth of the navigation data (Braasch and
Van Dierendonck, 1999). Therefore, B is equal to 50 Hz.
Signal-To-Noise Ratio
The Signal-To-Noise Ratio (SNR) in dB can be calculated as follows:
dBinNPowerNoisedBinPpowerSignalSNR r )()( −= Eq. C.3
Carrier-To-Noise Density
“The SNR of spread-spectrum signals (like that of GPS) is a function of the point in the
receiver under consideration. Precorrelation SNR’s are negative whereas postcorrelation
SNR’s are positive. It is convenient, therefore, to normalize the SNR to a 1 Hz bandwidth
and thus achieve a ratio of signal and noise that is bandwidth-independent. Alternately,
this can be viewed as a density, and the result is referred to as the Carrier-To-Noise
Density ratio” (Braasch and Van Dierendonck, 1999):
( )(BSNRNC =0/ )
))
Eq. C.4
where:
C/N0 = Carrier-To-Noise Density Ratio in (ratio - Hz).
SNR = Straight ratio form of the SNR at a certain point in the receiver, say, the
final IF stage.
B = Bandwidth of that stage of the receiver in (Hz).
Usually, this quantity is converted into decibels:
( )(( BSNRNC 100 log10/ = Eq. C.5
where:
C/N0 = Carrier-To-Noise Density Ratio in (dB-Hz). Typical C/N0 ranges from
35 dB-Hz to 55 dB-Hz.
109
Important concepts regarding reference frames
Earth Centred Inertial J2000 (ECI J2000)
Inertial reference frame in which the Z-axis is pointing to the North Pole, the X-axis is
pointing to the Vernal Equinox, and the Y-axis completes the right-handed system. A
commonly used ECI frame, which is defined with the Earth's Mean Equator and Equinox
at 12:00 Terrestrial Time on 1 January 2000, is referred as J2000 or EME2000. The X-
axis is aligned with the mean equinox, the Z-axis is aligned with the Earth's spin axis or
celestial North Pole, and the Y-axis is rotated by 90° East about the celestial equator
(Tapley et al., 2004).
Earth Centred / Earth Fixed (ECEF)
Reference frame in which the Z-axis is pointing to the celestial North Pole, the X-axis
intersects the sphere of the earth at the 0° latitude, 0° longitude, and therefore is rotating
with the Earth. And, the Y-axis completes the right-handed system.
Sun-pointing
Reference frame in which the Z-axis is pointing to the Sun, the X-axis lies in the orbital
plane spanned by the velocity and the position vector, and the Y-axis completes the right-
handed system, with a bias to the celestial South Pole.
Body Frame
Reference frame that is fixed to the body, and therefore it translate and rotates with the
body.
Local Vertical / Local Horizontal (LVLH, Nadir)
Reference frame in which the Z-axis points in the negative position direction, towards to
Earth, the Y-axis is perpendicular to the plane spanned by the velocity and the position
vector, and the X-axis completes the right-handed system.
Local Geographic / North-East-Down (NED)
Local geographic frame in which the X-axis points to the North, the Y-axis points to the
East, and the Z-axis points down to the Earth.
110