civil engineering d. johnscn,v}co—chairmaw 2 e...the geometric approach yields a much simpler...
TRANSCRIPT
-
1gb
A GEOMETRIC APPROACH TO DETERMINATION OF SATELLITEEPHEMERIS OVER A LIMITED AREAby
Keith R. Thackrey
Thesis submitted to the Faculty of theVirginia Polytechnic Institute and State University
in partial fulfillment cf the requirements for the degree of
MASTER OF SCIENCEin
Civil Engineering
APPRDVED: grzäé v} 2 ES. D. Johnscn, Co—ChairmaWOP.
J. -ell, Co-Chairman T. Sc er
December, 1988
Blacksburg, Virginia
-
A GEOMETRIC APPROACH TO DETERMINATIONOF SATELLITE EPHEMERIS OVER A LIMITED AREA
byKeith Richards Thackrey
Committee Co-Chairmen: Steven D. Johnson, Patrick J. FellCivil Engineering
(ABSTRACT)
Range and interferometric observations have been
examined for their potential application in a geometric
approach to determination of satellite ephemeris. The
approach differs from the normal (dynamic) approach in that
(_ each satellite position is treated as an independent statety variable or benchmark.
F%Ä Programs have been developed that simulate and formatR’ the input data for the least squares estimation routines,
{Siand perform statistical analyses of those results. Random
errors, tropospheric refraction errors, and atomic clock
errors have been considered, and the range observation
adjustment program directed to solve for clock errors.
Tests have been conducted, using different error
sources, and varying the quality of the initial estimates of
the satellite positions, to examine the sensitivity of the
programs to various parameters.
-
EZ
To test the accuracy of the solution, the results were
compared to the true satellite positions, which were used
to generate the input data. Interpolations to determine
positions at intermediate times have also been performed,
and compared with true values.
The results support the use of the geometric approach
for satellite positioning.
L L
-
iv
-
l
l
ll
TABLE OF CONTENTS
ÄBSTRAÜT•••••••••••••••••••••••••••••••••••••••••••••••ACm¤WLEDGEMENTS•••••••••••••••••••••••••••••••••••••••
FIGURES••••••••••••••••••••••••••••••••••••••••
TABLES•••••••••••••••••••••••••••••••••••••••••1•
INTR¤DUCTION••••••••••••••••••••••••••••••••••••••• 1
1.1 Satellite Ephemeris Determination............ 1l•2 Objectiv€•••••••••••••••••••••••••••••••••••• 31•3 Sc¤pe•••••••••••••••••••••••••••••••••••••••• 3
1•42•
BÄ€KGROUND••••••••••••••••••••••••••••••••••••••••• 6
2.1 Global Positioning System.................... 6
2.1.1 The Satellite System.................. 62.1.2 Observation Types..................... 7
2.2 Previous Studies............................. 9
3• PRÜCEDURE••••••••••••••••••••••••••••••••••••••••••3•1
Data•••••••••••••••••••••••••••••••••••••3.2
The Software Programs........................ 17
3•2•l3•2•2RNGB••••••••••••••••••••••••••••••••••3•2•3
PHASE•••••••••••••••••••••••••••••••••3•2•4
PÜSDAT••••••••••••••••••••••••••••••••3.3
Observation Equations........................ 33
3.3.1 Range Observations.................... 353.3.2 Phase Observations.................... 39
3.3.2.1 Undifferenced Phase
3.3.2.2 Single Difference Phase
3.3.3 Observation Errors.................... 47
V
-
IPI
3.4 The Normal Equations......................... 524• ANALYSIS•••••••••••••••••••••••••••••••••••••••••••4•l
R€SultS•••••••••••••••••••••••••••••••••4•2
R€SUltS••••••••••••••••••••••••••••••••5•
• • •••• • •• • •• • •• ••••5.1
Conclusions.................................. 745 • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
REFERENCES•••••••••••••••••••••••••••••••••••••
A•••••••••••••••••••••••••••••••••••••••••••A.1
Source Code Listings......................... 79A.2 Sample Run and Data.......................... 161
A• 2 • 1 • • • • • • • • • • • • • • • • • • • • • • • • • •
•A.2.2Program Runs.......................... 168A• 2 • • • • • • • • • • • • • • • • • • • • • • • • • • • •
2VITA•••••••••••••••••••••••••••••••••••••••••••••••••••vi
-
III
LIST OF FIGURES
3.1 GPS Ground Track................................. 15
3.2 Structure of the Normal Matrices................. 56
vii
-
IiI
LIST GFTABLES3.1
GPS Orbit Parameters............................. 13
3.2 Ground Stations.................................. 16
4.1 Run Descriptions................................. 64
viii
-
l
CHAPTER 1INTRODUCTION
1.1 Satellite Ephemeris Determination
The classical approach to satellite orbit estimation
employs a dynamic model of the satellite orbit to find its
position and velocity at any given point in time. To
produce the necessary accuracies for most applications, the
force model needs to consider, among other things, the
gravitational model of the Earth, yielding an extremely
complex mathematical solution requiring a great deal of data
and numerical calculation.
The geometric approach yields a much simpler solution
to the problem of ephemeris determination. Ephemerides can
be derived with comparable accuracies, in some cases
considerably better than those of the dynamic approach.
There are, however, certain constraints, which prevent
universal application of the geometric approach. In those
cases where it can be used, it offers some advantages.
A dynamic model is a time varying force function of the
orbital elements, with a gravity model which normally is
described by a set of spherical harmonic coefficients. The
degree and order of the harmonic function will determine the
sufficiency of the model. As a result, the complexity of
1
-
2
the problem increases significantly when a higher degree of
accuracy is required.
The geometric approach treats each satellite position
as an independent benchmark in space. By using a network of
precisely known ground locations, each satellite position
may be determined independent of any other, presumably with
a high degree of accuracy. In this case, the accuracy is
less a function of the complexity of the model, and more a
function of the knowledge of the ground positions and the
accuracy and density of the observations. The equations are
not necessarily time varying, nor do they require knowledge
of the gravity field. If intermediate positions are needed,
they can be generated using some type of interpolation
scheme.
There are some restrictions to the geometric approach.
It requires a network of accurately known ground station
locations, or at least accurately known baselines between
the stations. Since many of the stations must be visible to
the satellite simultaneously, this usually restricts the use
of the geometric approach to a limited geographic area. Of
course smaller areas may be tied together, but it is
extremely difficult to tie continents together across the
oceans using the geometric approach, especially using
A satellites of low altitude.
-
3 I
For low orbit satellites, the ground network can only
cover a small area and still provide visibility. To perform
simultaneous positioning over larger areas, a higher orbit
satellite must be used, such as those of the Global
Positioning System.
1.2 Objective
In order to determine the utility of the geometrio
approach, the model will be tested against a known system of
ground stations, satellite positions, and observations with
their associated errors. Using the geometrio approach in
simulation, with individual observations, the accuracy of
derived satellite positions will be compared with the "true"
positions. The sensitivities of the models to such factors
as the quality of the initial estimates, a priori weights
(including correlation of variables), addition of error
sources, and adding additional unknowns (parameters) to the
model, will also be determined. The result will be a
demonstration of the hypothesis that the geometric approach
actually can replace the dynamic approach for certain
applications.
1.3 Sggpg
To study the characteristics of the geometrio approach,
a network of precisely known ground stations and simulated
I
-
4
satellite positions was considered over North America.
Observations were generated, varying from perfect
observations, to observations containing such major error
sources as random error, tropospheric refraction, and clock
error. Initial estimates were varied to determine
sensitivities, giving a general idea of the strength and
flexibility of the geometric solution. All observation
types were not considered, nor were all error sources.
Alternative models might prove more effective for certain
applications, but were not examined.
1.4 Organization
Chapter 2 outlines some useful background information
for satellite positioning with an overview of the Global
Positioning System (GPS) of satellites presented in Section
2.1.1, and the observation types supported by GPS presented
in Section 2.1.2. Some literature related to satellite
positioning is reviewed in Section 2.2.
Chapter 3 describes the procedures employed, including
a description of the simulated data, a discussion of the
programs used, and finally an explanation of the algorithms
and the mathematical model employed by the geometric
solution.
-
5
An analysis of the results is included in Chapter 4.
Also in that Chapter is a discussion of some of the problems
encountered during the data processing.
A list of the conclusions is given in Chapter 5, along
with recommendations for implementation and possible further
studies.
All source code for the programs used, is contained in
the appendix.
-
II
CHAPTER 2BACKGROUND
2.1 Global Positioning System
2.1.1 The Satellite System
The Global Positioning System (GPS) network of
satellites, according to Fell [1986], will be a system of 18
satellites in six orbital planes, designed to provide at
. least four satellites in view world—wide, at any instant in
time. Stansell [1978] stated that employing range and
range-rate measurements, GPS will provide navigational
accuracy and availability well in excess of that provided by
the Navy Navigation Satellite System, or Transit System,
which it is intended to replace.
The six orbital planes of the GPS are inclined at 55
degrees, and three satellites will be equally spaced within
each plane, according to Fell [1986]. Currently, a reduced
constellation is in place which provides four satellites in
view at various times during the day.
The satellites fly in a high orbit with a semi-major
axis in excess of 25,000 km. This reduces the effect of
local variations in the gravity field on the orbit, and
increases the time that a given satellite is in view, as
well as the area on the ground which can view the satellite
6I
I1
-
7
*at a given time. Satellite 4 on day 17, 1983, was in viewover much of North America for more than four and one—half
hours. The satellite contains two high precision clocks, a
cesium clock and a rubidium clock, designed to reduce the
synchronization error between the satellite and a uniform
time scale.
Fell [1980] described the broadcast frequencies of the
GPS. The satellite broadcasts on two L band frequencies.
The frequencies are 1575.4 MHz and 1227.6 MHz, known as L1and L2 respectively. L1 has a pseudo random noise sequence,
known as the P code, which has a repetition rate of 38
weeks. L2 also has a pseudo random noise sequence, known as
the C/A code, but with lower frequency and a repetition
cycle of 1 millisecond.
2.1.2 Observation Types
The GPS yields three types of observations. The first
is a range observation, produced using the P code to
calculate the time for a particular pulse to travel from the
satellite to the ground. This observation type is highly
dependent on the clock synchronization error between the
satellite and the ground station.
The other two observation types are more in the nature
of range difference observations. Doppler observations are
based on the shift in frequency (known as the Doppler shift)
-
I
8
due to the motion of the satellite relative to the observer.
The shift is the difference between the observed frequency,
with errors removed, and the broadcast frequency, and is
caused by the fact that the distance between the satellite
and the receiver is changing. Doppler observations are
based on the frequency shift over a time interval, and since
they are dependent on the range, a range difference equation
over the interval can be developed.
The final observation type is the phase, or
interferometric observation, and can take two forms. One is
the measurement of a single pulse at two geographically
separated receivers. The difference between the times of
receipt of the pulse at the two stations, after other errors
are removed, is due to the difference in the ranges between
each station and the satellite. This requires some type of
interference to make a single pulse recognizable. The
second form results from the measurement of the phase of a
continuous signal from a single satellite and takes the form
of a biased range measurement rather than a range
difference. In this case there are two considerations at
any given time, the phase of the wave at that point in time,
and a whole cycle count from some initial time. Using these
two modeled quantities, an integer wave count for the
initial observation can be determined. Multiplying the
number of waves by the wavelength and combining this with
-
_ 9
the measured phase will give the range at each observation
time.
2.2 Previous Studies
Numerous articles and papers have been written on the
subject of satellite positioning, and in particular, using
GPS. Fell [1980] was one of the earliest investigations of
the geodetic positioning applications of GPS. His
dissertation presented three models for positioning, using
range, integrated Doppler, and interferometric observations
with dynamic models to perform ground station positioning
and baseline determination. The study also looked at the
relative strengths of the different models, rank
deficiencies and the sensitivities due to different error
sources.
Each of the observation types was found to have
advantages for certain applications. In particular, the
range solution showed the greatest geometric strength, and
the range and phase solutions were most suited to shorter
tracking intervals, while the Doppler observations were
suited to longer tracking intervals. In general, depending
on the errors in the known satellite position, ground
locations could be determined to an accuracy of less than 2
meters and baselines in the neighborhood of 10 centimeters.
-
w
10
A number of papers were presented on the subject of
satellite positioning at the Fourth International Geodetic
Symposium on Satellite Positioning held in Austin, Texas in
1986. This was in fact, the primary purpose of the
symposium. Wu, et al. [1986] presented a consolidation of
two earlier studies on orbit determination of GPS and of
LANDSAT—5. The first study, conducted in March-April 1985,
was presented by Davidson, et al. [1985] on the fiducial
network concept, using ten sites in the continental United
States. The second experiment was conducted in November
1985 and was also presented at the Fourth International
Geodetic Symposium, by Davidson, et al. [1986]. The results
of the two studies indicated that orbits for both satellites
can be obtained with true errors under 2 meters.
Several other studies were presented on orbit
determination. Abbot, et al. [1986] performed a comparative
study using March 1985 data, as did Abusali, et al. [1986].
Both studies varied some of the parameters, but obtained
comparable results.
Beutler, et al. [1986] presented a paper employing
March 1985 test data to perform orbit determination using
double differenced phase observations. Eren and Leick
[1986] looked at triple differenced phase observations and a
1983 test data set over the same area. Qifeng [1986]
studied single differenced phase observations for orbit
-
11
[ determination, using simulated data over China. All of the
studies attempted to make use of the more precise
interferometric observations, in spite of the lack of
geometric strength of the solution, and all were able to
demonstrate a high degree of positioning accuracy under
their controlled circumstances.
Two other studies looked at alternate ground networks
with similar success to that of the previously described
papers. The topic presented by Thornton, et al. [1986]
described networks in Mexico and the Caribbean. Landau and
Hein [1986] presented their results of a feasibility studyfor a European GPS tracking network.
A variety of other studies have been performed, and
presented at this and other conferences. The papers of the
Fourth International Geodetic Symposium on Satellite
Positioning represent a good cross—section of the available
literature.
All of the studies deal with some type of correlation
between satellite positions. While there is a fair amount
of literature on the geometric approach, the literature
directly addressing the geometric approach applied to the
GPS is somewhere between scant and non—existent.
-
CHAPTER 3PROCEDURE
Two approaches were examined, one using range
observations and the other using phase observations. Whilethe basic problem to be solved is the same, there are many
peculiarities to programming the phase observation
equations, so they will be treated separately. In addition
to the two reduction programs, there are two dataprocessors, a pre-processor which builds the simulated data
sets, and a post—processor which performs some statistical
analyses on the output data.
Chapter 3 is an examination of the approach used to
study the problem. Section 3.1 will look at the setting for
the simulation study. The programs and their subroutines
will be described in detail in Section 3.2. Section 3.3will contain a description of the observation equations
employed, as well as a brief discussion of some alternative
observation equations. An explanation of the algorithms
used to carry out the least squares adjustment is contained
in Section 3.4.
3.1 The Data
The simulation data is derived from an orbit generation
routine using actual GPS orbit parameters. Table 3.1 lists
12
-
13
Table 3.1GPS Orbital Parameters
Satellite 4, Day 17, 1983
Parameter yglgeSemi-major Axis 26,561.983 km.
Eccentricity .003187
Inclination 630 13' 45.46"
Argument of Perigee -1520 39' 39.68"
Right Ascension of 1720 25' 18.99"the Ascending Node
Mean Anomaly 1550 50' 47.56"
-
14 '
the orbital parameters for the satellite, which represent
satellite 4 on day 17 of 1983. A listing of the ephemerides
at five and fifteen minute intervals was generated, and
using a display routine on an HP9845, Figure 3.1 was
generated. This figure shows graphically at which time the
satellite was first and last in view (assuming an elevation
of 100 above the horizon) at the five ground stations listed
in Table 3.2, simultaneously. The programs used to generate
this data were developed in support of other work, and thus,
they will not be discussed in detail.
The five ground stations are actual satellite tracking
stations in North America. Two of these stations, the ones
located at Richmond, Florida and Westford, Massachusetts,
are a part of the Cignet network, a worldwide network which
provides continuous tracking of GPS satellites. The station
at Ft. Davis, Texas was originally a part of the GPS
monitoring system, but is no longer used for that purpose.i The station at Owens Valley, California was used in the
early testing stages of the GPS system, and together with
the stations at Ft. Davis and Westford, formed what was
known as the Iron Triangle. The final station, located in
Vancouver, British Columbia, contains a satellite receiver,
although it is not a part of the GPS network. The five
stations were chosen because they form a strong network of
-
15 I
Z I
A . - ·——·— °£'— 22
Xl _•,„I_• BS'
l V ·• g •
26 O 4/ fr Ö‘ sbÜCLI { ” ‘ I 0LJ _ · N>•I.; MI— * I · es- "‘°O l ·¤25 JO I M EU I 1 g 8:::..1 V ‘ „ I ""u•z
Ä' ä Qj_v& J ___E5
~ß °
’ „ . azxäl "Idä 1 / 5EE 2 2 ~°Z•°gd .. ESZB ‘“
~ \ · ¤=¢-‘ r ., .‘ E'*§‘Z·'• x ·°.R; r am. Q • :••J••~ · ° „ „ „=·*·8 E 8 8 *3 8 N •-
3Uf't.LI.LB°I
-
16
Table 3.2Ground Stations
Q
Station x(km) y(km) z(km)
Richmond, Fla. 961.374 -5673.945 2740.832
Ft. Davis, Tex. -1324.339 -5331.448 3232.978
Westford, Mass. 1492.211 -4458.116 4296.000
Owens Valley, Cal. -2409.585 -4478.332 3838.587
Vancouver, B.C. -2287.436 -3493.350 4805.126
All coordinates are geocentric coordinates referenced
to the WGS-84 coordinate system.
-
17
control stations, giving good geometric coverage of North
America.The locations of the stations, given in Table 3.2, are good
to an accuracy of 1 m. in each component, with the exception
of Vancouver. The coordinates used for that station were
rounded to the nearest minute on both latitude and
longitude, but will be treated as if known to the same
degree of accuracy as for the other stations. The baselines
between the stations are known to about 10 cm. For
satellite positioning purposes, the ground stations are
given a 10 cm. accuracy, as their relative positions are
used to determine the locations of the satellite relative to
the network. The position of the whole system will then
have about a 1 m. bias.
3.2 The Software Programs
There are four programs for processing the data, a pre-
processor called BUILD, two least squares processors called
RNGE and PHASE, and a post—processor called POSDAT. Each of
these programs will be described separately. The source
code listings for all of the programs and their associated
subroutines are contained in Appendix A.1, and the
mathematical models behind the programs are described in
Sections 3.3 and 3.4.
-
18
g 3.2.1 DQTLQ
BUILD is a pre-processor which takes the ground station
positions and satellite positions, simulates and thenreformats the data to be used by both of the least squares
processors. The program computes both types of
observations, can scale the satellite positions to put some
error on the initial estimates, and can generate three types
of error and place them on the observations.
Random error can be generated, with a gaussian
distribution and specified standard deviation. A 1 m. errorwas placed on the range observations, consistent with what
is generally obtained in practice. An error of about one-
half of a pulse, or 10 cm., was placed on the phaseobservations, again consistent with actual observations.
Atmospheric refraction error is generated using the
Hopfield model for tropospheric refraction. Anderle [1974]
presents a good description of the Hopfield refraction
model. Default values of 15° C for local temperature, 980
mbars local atmospheric pressure, and 50% relative humidity
were used. On the assumption that most of the refraction
error can be modeled and removed from the observation in
actual practice, only 5% of the computed error is actually
added into the observations.
The program generates random correlated clock error
known as flicker noise, using a specified Allan variance,
-
19‘
for either a cesium or a rubidium atomic clock. A cesiumclock is generally used for both the satellite and the
ground stations, treating the clock at the first station,
that in Richmond, Florida, as truth. The clock error is
then computed by converting the flicker noise to a range
error, and subtracting the satellite clock error from the
ground station clock error, for each station and each
satellite position. Any bias and drift can be removed from
the computed error.
The driver program is titled BUILD, and like all of the
routines, was written in the FORTRAN 77 version FORTVS2,
which is resident on the IBM 360/370 mainframe at Virginia
Polytechnic Institute and State University. The driver
calls the subroutines GAUSS and RANDOM, which are general
subroutines, accessed by several routines, and the
subroutine OBSBLD, which is specific to BUILD. GAUSS is
designed to generate random errors with a gaussian
distribution and RANDOM is a random number generator.
OBSBLD is the heart of the pre-processor. Its purpose
is to build the observations for the range and phase
processing routines. Using the known ground station
locations and the "true" satellite positions, the routine
computes the ranges for each station, at each discrete time
of interest. Upon request, the routine will add random
error, atmospheric refraction error, and/or atomic clock
-
20
error to the true ranges. Using these ranges the program
will then compute the phase observations, and the number of
whole waves counted since the first observation, at time to.Finally, OBSBLD will compute a mean and standard deviation
of the different errors, and of the total errors, and print
the results.
OBSBLD calls the subroutines LSTBLD, REF, and GAUSS.
It receives as input, the station locations and satellite
positions, along with support data such as the frequency of
the satellite broadcast, the time between observations, the
standard deviations for the different observation types,
which are used in computing the random error, the seed for
the random number generator, and the time since the last
calibration of the ground station and satellite clocks,
which is used in computing the clock error. The subroutine
also receives instructions as to whether to compute the
different errors.
On output, the routine gives the observations and the
total means and standard deviations of the errors.
Additionally, the random number seed, which has been
updated, is returned to the main program.
REF was developed at the Naval Surface Warfare Center
(NSWC) on a CDC computer and converted for use by BUILD on
the IBM. REF generates atmospheric refraction using the
Hopfield refraction method, which is discussed more fully in
-
21
Anderle [1974]. It takes as input, the distance from the· center of the earth to the ground station and the zenith
angle of the satellite, and outputs the amount of refraction
as a range error.
LSTBLD was created to extract clock error when called,
and upon request, to filter any bias and drift from the
generated error. The subroutine computes a linear least
squares solution to determine the bias and drift of the
clock errors, then removes each from the computed clock
errors. This process assumes that, in actuality, the bias
and drift of the clock errors could be modeled, knowing the
type of clock, and the time since its last calibration,
leaving only the random and higher order error components.
LSTBLD calls MAINV, MAMULT, and FLICKE, all of which were
adapted from existing programs.
MAINV and MAMULT are modified programs for matrix
manipulation, which are used often in the programs. MAINV
computes the inverse of a matrix. MAMULT computes the
product of two matrices.
Like REF, FLICKE was developed at the NSWC and adapted
for use by BUILD on the IBM. It generates clock noise using
an Allan variance. FLICKE computes both a fractional
frequency error and a range error, determined for either a
cesium or a rubidium clock. The errors can also be computed
for either ground station or satellite clocks. BUILD
-
22
assumes that the first ground station is the master clock,
and calls FLICKE twice, once to compute a set of errors for
the other four stations, and a second time to compute a
separate set of errors for the satellite clock.
FLICKE receives the number of ground stations and
satellite positions for which the error is to be determined,the time between observations, the time since the lastcalibration of the clocks, and a flag which says whether the
satellite clock is a cesium or rubidium clock. On output
are two arrays, one containing the flicker noise for each
observation, and the other, the range error.FLICKE calls a package of subroutines, including STM,
MATSM, COVMAT, with its entry point COVSET, PACK, MAMSNG,
and RANDOM, which has already been described. With the
exception of RANDOM and MAMSNG, all of these were created
for FLICKE at the NSWC, and will not be described further.
A good description of the subroutines can be found in Cadzow
[1970]. MAMSNG is a single precision version of MAMULT.
3.2.2 ggg;
RNGE is the main thrust of the work. The program is
designed to take range observations and known ground control
and solve for satellite positions. Currently, the ground
station location uncertainties are 10 cm. The program can
-
r23 g
also, upon request, solve for a clock bias and drift. The
weights for those variables are taken as input.
RNGE can either accept satellite position estimates, or
by performing a smaller least squares adjustment, can
generate initial estimates for the satellite positions. Theobservation weights can be input as a constant, or as a
matrix containing a different weight for each observation.The program can solve for a maximum of five ground
stations, with three positional and two clock variables, for
a maximum of twenty-five parameters. It can also solve for
a maximum of thirty satellite positions, with three
variables per position, yielding a maximum of ninety
satellite variables, for a total of 115 variables. The
program employs a partitioning scheme which preventsinversion of any matrix larger than 25x25. All of the
normal equations, and the partitioning scheme are described
more fully in Section 3.4.The driver is titled RNGE. It calls the subroutines
RGETDT, CONSTR, RPARTL, TILDA, MATEQ, and LEAST.
RGETDT collects the input data for RNGE. The routine
reads the number of ground stations and satellite positions,
and tests to be sure there are at least four ground stations
in view while not more than five, and at least four
satellite positions with not more than thirty. It then
-
24
reads the ground station coordinates and the range
observations.
The subroutine also reads several records
conditionally, depending on the value of flags contained in
the input file. If instructed to solve for the clock
parameters, RGETDT will read the sigmas for the clock bias
and drift. Next the observation weights are read, as either
a single value if the weights are constant, or as an array
_ of standard deviations if they vary. The program will not
read any off-diagonal elements. RGETDT also converts all of
the sigmas to weights.
Two flags are read, concerning the satellite positions.
The first determines whether to generate covariance matrices
for the satellite positions. The second instructs the
program whether to generate initial position estimates, or
to read them. If so instructed, RGETDT reads the satellite
positions. Finally, it reads the time between observations.
All times are in seconds and all distances are in
kilometers.
RGETDT calls the subroutine POSITS, while getting no
input data from the calling routine. Through the call line,
RGETDT returns the delta time, the range observations, the
weights, and the flags which are needed by the rest of the
program. The ground station data is passed in one common
block, and the satellite data is passed in another.
-
25
POSITS is called by RGETDT when the operator has
instructed the program to compute initial estimates for the
satellite positions. The subroutine uses three of the
ground stations, and three iterations to perform a small
least squares solution on each satellite position
independently. This gives rough estimates for the
positions, which improve over time, because the final
estimate of the previous position is used as the initial
estimate for the current solution.l
POSITS calls MAINV and MAMULT, and receives the
observations and ground station information as input, along
with the number of satellite positions. The output data
contains the estimates of the satellite positions.
CONSTR is called by RNGE to add the ground station
constraints to the normal equations. If solving for a clock
bias and drift, those weights will also be added by CONSTR.
The subroutine calls MATEQ, and it calls NORMAL, with
its entry points NITIAL and FILL. It receives as input, the
number of ground stations, and satellite positions, the
number of variables per ground station, and the bias and
drift weights. It returns N-dot, T—dot, and N-tilda, the
matrices for the normal equations.
MATEQ is called to move matrices from one array
location to another. It receives as input, the two arrays,
the starting row and column for the matrix within each
II
-
26
array, the row dimension of each array, and the row and
column order of the matrix.
NORMAL is called to add observations to the normal
equations, which are described in Sections 3.3 and 3.4. The
subroutine was modified from one in another program. It
receives the normal matrices, the observation partials and
the weights, and the locations within the matrices of the
non—zero elements. Normal returns the updated normal
equations.
NITIAL is an entry point of NORMAL. Its purpose is to
clear the normal matrices before processing begins. It
receives the matrices to be cleared and their rank, and
returns the cleared matrices.
FILL is the other entry point for NORMAL. Its purpose
is to fill in the lower triangular portion of an upper
triangular matrix, forming a symmetric normal matrix. The
subroutine receives the upper triangular matrix, and its
rank, and returns the symmetric matrix.
RPARTL is a workhorse of RNGE. It is called once for
each satellite position and computes the partial derivatives
for the observation equations, which are described in
Section 3.3. The subroutine then loads the partials into
the normal matrices, using NORMAL along with NITIAL and
FILL. Most of the work is performed in temporary locations,
and transferred to the universal arrays using MATEQ.Ith
'lmu
Se.-----................................;...........................-.-.----
-
27
also computes the B and F matrices which are used to
calculate the residuals. RPARTL also calls MAMULT, which is
discussed in Section 3.2.1.The input data for RPARTL includes the time and number
for each satellite position, and its associatedobservations. The routine also receives the number of
ground stations and their locations, and the same
information for the satellite positions. The number of
ground station variables, the observation weights, and the
bias and drift values, as well as a flag indicating whether
to use the clock variables, are also included among the
input data. The output data includes the B and F matrices,
and the different normal matrices, as described in Section
3.3.
TILDA is employed to build the N-tilda and T—tilda
matrices. It is called for each satellite position,
immediately after RPARTL. The subroutine calls MATEQ, as
well as MAINV and MAMULT, which are explained in Section
3.2.1.
The input data includes the satellite position number,
the number of ground variables, and the normal matrices
built by RPARTL. It outputs the tilda matrices of
Section 3.3.
The other workhorse of RNGE is LEAST. The purpose of
this routine is to perform the least squares adjustments and
-
28
update the unknowns. The least squares adjustment for the
ground stations is actually computed in MSOLVE, and for the
satellites, in SATSLV. LEAST also calls RESID to compute
the residuals.
Among the input data for LEAST is the number of ground
variables. The normal matrices, the delta matrices, the
number of variables per ground station, the observation
weights, and a flag indicating whether to compute the
satellite position covariances, are also passed to LEAST.The ground station and satellite position information isobtained through common blocks. The output data includes
the updated positions and delta matrices, and the weighted
variance of the solution.
MSOLVE was created to solve the equation:
N * A = U (3.1)
for A. It is employed by RNGE to solve for the ground
station variables, due to the partitioning used by the two
reduction programs. MSOLVE calls MAINV and MAMULT.
The input data consists of the rank of the N matrix,
and the N and U matrices, which are the matrices of the
normal equations from LEAST. The output contains the
updates to the ground station unknowns.
-
29
SATSLV is also required due to the partitioning, andsolves for the satellite position unknowns. The subroutine
calls MATEQ and MAMULT. The inverse of the N matrices are
passed to SATSLV, as are the rest of the normal equations,
the number of satellite positions, the number of ground
station variables, and the ground station updates. The
updates to the satellite position unknowns are returned to
LEAST.
RESID is the last subroutine called by LEAST. It is
used to compute the observation residuals and the weighted
variance of the solution, and upon request will compute the
satellite position covariances. It calls MATEQ, MAMULT,
MAINV, and HDNG.
RESID receives the number of ground variables,
satellite positions, ground stations, and variables perground station. It also receives the observation weights, aflag directing the program whether to compute the satellite
covariances, and the B, F, and delta matrices used in
computing the residuals. Finally, it receives the different
N matrices. The subroutine returns the weighted variance,
and prints out the residuals and the covariances.
3.2.3 Qgggg
Work on the phase reduction program was halted at a
relatively early stage, when it became apparent that the
-
I
30 Iapproach was flawed. Consequently, the data file created by
BUILD does not match what is expected for the program. The
possible reasons for the failure, and recommendations for
future work are contained in Chapters 4 and 5.
The program is called PHASE, and uses undifferenced
phase observations to compute satellite positions. The
different type of observation equations which support
interferometry, including the undifferenced observations,
are described in Section 3.3.
The program can solve a maximum of five ground
stations, with three positional unknowns, and an unknown
integer number of whole waves between the first satellite
position and each ground station. This yields four unknowns
per station for a maximum of twenty ground variables. The
biases and drifts of the clocks were never added to the
program. The program can also solve for up to thirty
satellite positions, with three unknowns per position for a
maximum of ninety satellite unknowns, and a total of 110
unknowns.
The driver is titled PHASE. It calls GETDAT, COMPUT,
CONSTR, PARTIL, TILDA, and LEAST. The processing performed
by CONSTR, TILDA, and LEAST is explained in Section 3.2.2.
GETDAT performs much the same function for PHASE as
RGETDT does for RNGE. The observations are phase Iobservations, which should not exceed 2N, and a number of
I
II
-
31 {
I
whole waves counted since an initial observation. The other
item which is unique to PHASE is the frequency of the pulse.
From that frequency, GETDAT also calculates a wavelength.
GETDAT will not compute initial estimates as was the case in
RGETDT.
Like RGETDT, GETDAT receives no data from the main
driver, and the common blocks are the same. The output data
on the call line include the observations, the frequency,
the time between observations, the wavelength, the a priori
sigmas and weights, and a flag directing whether to compute
the satellite covariances.
COMPUT is used to compute the estimated ranges using
the ground station information, along with the estimated
satellite positions. The subroutine also computes the
difference between the number of pulses transmitted by the
satellite and the number of pulses received on the ground,
since the receiver began receiving.
COMPUT receives the frequency and time between
observations, along with the observed number of waves, and
the ground and satellite positional information. It returns
the computed ranges, and the computed pulse deltas, which
are defined in Section 3.3.2.1 and by Equation 3.28.
PARTIL is the sister subroutine of RPARTL. While the
partial derivatives are slightly different, and there are
some different variables involved, the processing is
-
32
essentially the same. PARTIL calls NORMAL and its entry
points NITIAL and FILL, which are discussed in Section
3.2.2. It also calls MAMULT, which is first addressed in
Section 3.2.1, and MATEQ, which is first described in
Section 3.2.2.
The input for the routine includes the positional
information, the information calculated by COMPUT, the
observed phases, the observation weights, and the
wavelength. PARTIL also receives the number of whole pulses
computed from the ranges of the first satellite position
estimate. The other input data are the number of ground
variables and the number of variables per ground station.
The output data contains the normal equations and the
observation equations.
3.2.4 POSDAT
The post—processor for RNGE is called POSDAT. Its
purpose is to take the satellite positions generated by RNGE
and compare them to truth values. If there are intermediate
truth positions available, the program will also compute
intermediate positions, using a seven point formula of a
Lagrangian interpolation. The formula is
6 lk(x)f(x) ¤ L6 = käo qäifk (3.2)
-
33
where
l0(x) = (x—xl)(x—x2) ... (x-x6)
lk(x) = (x—x0) ... (x—xk_l)(x-xk+l) ... (x-x6)
l6(x) = (x-xO)(x-xl) ... (x-x5)
POSDAT takes the computed values from RNGE and computes
a root mean square (RMS) of the x, y, and z component
differences from the truth values. It also computes an RMS
for the differences between the interpolated positions and
the truth values.
The driver is called POSDAT. The input data includes
the computed satellite positions, and the true satellite
positions. The program also gets the number of positions
and the time between positions for both the computed and the
true satellite positions.
The computed positions are output first. This is
followed by the true positions and any interpolated
positions. Finally, the RMS values are written to the
output file.
3.3 Observation Eggations
Section 3.3 contains a discussion of the observation
equations which can be employed to perform orbit
determination for the GPS. In addition to the basic
-
34
observations, the partial derivatives will be examined, and
the rank deficiencies for the equations actually used by
RNGE and PHASE.
All observation equations used, employ the special case
of the adjustment with conditions only, whose matrix form is
defined by Mikhail [1976] as follows:
Av + BA,= f (3.3)
with
f:d··A1 (3.4)
In the programs, A represents the partials of the functions
with respect to the observations, v is the residual vector,
B represents the partials of the functions with respect to
the unknowns, A is the difference between the latest
estimate of the unknown and its updated value, d is a column
vector of constants, and 1 represents the observations.
Since the equations each contain only one observation, the A
matrix is the identity, yielding what Mikhail [1976] refers
to as an adjustment of indirect observations. The equation
is solved for A, which is then added to the last estimates
for the unknowns.
-
35
Doppler observations yield stronger solutions when
continuous observations are taken over a long period of
time. Conseguently, they were deemed less amenable to the
geometric approach and there was no attempt to include them.
Range observations are discussed in Section 3.3.1, with a
look at the interferometric equations in Section 3.3.2. An
examination of the error sources, and their inclusion in the
observation equations, takes place in Section 3.3.3.
3.3.1 Range Observations
The range observation is the simplest form of all of
the observations. In some manner, each of the other
observation equations will contain the range equation. The
basic form, without error sources considered, is
Rij = :2 + 2 + 21l/2 (3-5)
where Rij is the distance between the ith ground station and
the jth satellite position, Xj, Yj, and Zj are therectangular coordinates of the jth satellite position, and
xi, yi, and zi are the rectangular coordinates of the ith
ground station. This is a simple application of the
distance formula from the pythagorean theorem.
The linearized observation equation used to create the
B matrix is
-
(
36
Bfii Bf;. Bfi. Bfi. _Y1; ay. AY1 + az. M1 °' ax. AX;1 1 1 ;8f.. Bf,. (3.6)+——’*-·lAY.+-$·‘—Az. =-11..+s..BY. ; BZ. ; 1; 01;J J 0
where
fij = •[(Xj • Xi)2 + • yi)2 + • Zi)2]1/2 (3.7)
and Rij is the observed range from the ith ground station to
the jth satellite position, foij is the value of fij usingthe latest estimates of Xj, Yj, Zj, xi, yi, and zi. Xj, Yj,
Zj, xi, yi, and zi, are as in Equation 3.5. The zero
subscript on the parentheses in Equation 3.6 implies that
the partial derivatives are evaluated using the latest
estimates of the unknowns.
In Equation 3.6, the partial derivatives are defined as
follows:Bfi. X. · xiBx. = r., (3°8)1 13Bfi. Y. · yi—‘lay = ·‘];* (3.9)i ij
Bfi. Z. - zi· —-·‘— = -·‘——- (3.10)Bz. r,.1 1JBf,. —(X. - x.)..&l =...;L...l. (3.11)BX. r,.J 1JBf,. - Y.- .1; =
(; Y1) (3.12)BYj rij
-
37
asi. -(zi - zi)az. ‘ 1~.. (3-33)
J 1J
where
Iij = · Xi)2 + · yi)2 +• Zi)2]l/2 (3.14)
The preceding equations describe the basic processing for
the range observation equations.
There is a singularity in the system at this point,
which prevents direct processing. As all of the ground
stations and satellite positions are undefined, there is no
frame of reference for the coordinate system. A minimum of
six constants are required to establish the reference frame,
and as the five ground stations are known to a relative
accuracy of 10 cm., they can be entered as constraints to
the system. The coordinates are entered as weighted
observations using the following equations:
Axi = 0 (3.15)
Ayi = 0 (3.16)
Azi = 0 (3.17)
with a standard deviation of 10 cm. This is identical to
processing using the following constraint equation:
-
38
CA= 9 (3.18)
where C represents the constraint equations and g = 0.
There are ngr equations generated for each satellite
position, where ngr is the number of ground stations, and
there are nsat satellite positions. As a result, the numberof observation equations, neq, ignoring the constraints, is
neq = ngr * nsat (3.19)
There are three coordinate constraints per ground station,
so the total number of equations, n, is
n = 3*ngr + nSat*ngr (3.20)
Each satellite position and each ground station have
three unknown coordinates, so the total number of unknowns,
u, is
u = 3*ngr + 3*nSat (3.21)
which is the rank of the B matrix. The redundancy, r, or
degrees of freedom, is found by the equation
r = n - u (3.22)
-
39 :or
r = ngr*nSat — 3*nSat = (ngr - 3)*nSat (3.23)
To be able to solve the normal equations, r must be greater
than zero, which means that there must be at least fourground stations. As a result of the constraints on the
ground stations, each satellite position is essentially
solved independently, and thus, the number of satellite
positions is immaterial.The complete range observation equations have now been
presented, provided no solution is desired for error
sources. The errors are discussed in Section 3.3.3.
3.3.2 Phase Observations
3.3.2.1 Undifferenced Phase Observations. The phase
observation equations can take several forms. The first,
and the one used by PHASE, is the undifferenced phase
observation, which is basically a range equation.
The observation itself, 9, is a measure of the position
within the sine wave, between zero and 2w, received at thestation at a discrete time. Assuming that the transmitter
is at zero at the time of the measurement, the equation for
the observation is
-
I40 I
Öij = 21T/Ä(Rij • ANij) (3.24)
where Gij is the phase observation from the jth satellite
position to the ith ground station, A is the wavelength of
the pulse, Rij is the range, composed of six unknowns, as
defined in Equation 3.5, and Nij is an integer unknown which
represents the number of whole waves which makes up the
signal from the satellite to the ground.
The assumption is made here that A is the same value,
when sent by the transmitter and when received at the
ground. The fact that the wavelength at the receiver will
change is ignored. The change is due to the Doppler shift
and is a function of the changing distance between the
satellite and the receiver. The change is of a fairly small
order, but could be considered in a real life situation.
As the equation stands, there will be one new integer
unknown, Nij, for each equation, in addition to the
positional unknowns, and consequently the system could never
be solved.
For each phase observation, there is also an
accompanying whole wave count, Ncbs, which measures thenumber of whole pulses received since the first observation.
At any given time tl, the number of waves transmitted, Nt,
by the satellite, since the initial time to, is defined by
-
Q
41
Nt = fAt (3.25)
where f is the frequency of the transmission and
At = tl - to (3.26)
The difference, ANij, between the number transmitted
and number received can be added to the wave count for that
ground station, from the first satellite position, yielding
Nij = Nil + ANij (3.27)
and the observation equation becomes
= 2TT/Ä[Rij ' Ä(Nil + (3.28)
In this way, ANij can be computed, and the only additional
unknowns in the equation are the integer counts from the
first satellite position to each ground station.
The total number of unknowns is the same as in Equation
3.21, with the addition of one unknown per ground station,
or
u = 4*ngr + 3*nSat (3.29)
-
u
42
The rank of the B matrix is identical to that in Equation
3.20, given as
n = 3*ngr + nSat*ngr (3.30)
The degrees of freedom are then
r = (ngr - 3)*nSat - ngr (3.31)
and for r to be greater than zero, ngr must be greater than
three, and nsat should be greater than ngr.The partial derivatives of the constraints for the
undifferenced phase observations are identical to those
defined in Equations 3.15 through 3.17. The B matrix uses
the following equations:
öfi. öfi. Ef,. Bf,.v.. - ——·lAx. + ——·lAy. + —¥·lAz. + —i‘l./AX.1J 3x. 1 Sy. 1 öz. 1 BX. J1 1 1 J
öfi. öfi. öfi.1 61. MJ az. MJ + 611. ANi1 = 'R1;5 J' foij (3*32)J J 11 o
where
= ·2TT/Ä[Rij • Ä(Nil + (3.33)
-
43i
and fOij is the value of fij using the initial values of xi,yi, zi, Xj, Yj, Zj, and Nil. All other values are as
previously explained, and the zero subscript on the
parentheses in Equation 3.32 implies that the partials are
evaluated using the initial estimates of the unknowns.
In Equation 3.32, the partial derivatives are defined
as follows: Sfii -2n SR1.Gx. =
—T—3x.1
1
öfia -2n SR1.--t•L - —..—„ —
—·‘—(3.36)öyi A öyi
Sfi. -2w SR_.TM = T TM. @36)1 1
Sfi. -2n 3RiiSX. = T V. J JS51. -2n SR1.S1'. “ T SY. (3·38)J JSfi. -2n SRi.SZ. = T az. >J JSfi.g$J'= ZV (3.40)‘11
The partials of Rij are as outlined in Equations 3.8 through
3.14, with SL1bStitI1t€d fOI° fij.There is a peculiarity which makes this system
difficult to solve. One of the unknowns, Nil, is an integer
value, so there is a problem in assuring that the final
optimum solution contains integer values for Nil.
-
44
0ne answer to this problem, and the one employed by
PHASE, is to use a two-step solution process. The first
solution allows the integers to vary and converge. The
integers are then locked down at the nearest whole number
and removed from the solution as unknowns.
Technically, to assure the optimum solution, all
integer values within a set number of standard deviations
about the solution should be tested, but if that amounts to
as few as three values each, over five ground stations, that
would mean 243 solutions would need to be computed and
compared, so only the closest integer value is used.
3.3.2.2 Single Difference Phase Observations. Another
potential solution to the problem of integer unknowns is to
use a single difference phase observation. Given that the
unknown for a particular ground station, over multiple
satellite positions, is the same, taking the difference of
two observations Gij and Gik will yield
Aöijk = Gik - Gij = (zw/k)Rik - 2¤Ni1 — 2¤ANik· (ZV/)~)Rij + 2TTNi1 + 2TTANij (3.41)
or
Aöijk = (2'TT/Ä) (Rik• • 2TT(ANik • ANij) (3.42)
-
45 l I
The integer unknown is now removed, and the observation
becomes a range difference equation, rather than a range
observation.In this case, the equation which defines the B matrix
is Sfi.k Sfi.k Sfi.k Sfi.ky.. - ——·L—Ax. + %·‘L—Ay. + -)-112. + --1-Ax.1J SX. 1 Sy. 1 Sz. 1 SX. 3
( 1 1 l J
SY. J SZ. 3 SX k S1 K:1 1 k k
+ - + fazk "k " ' 1311 oijk (3-43)O
where
fijk = -2TF/Ä(Rik - + 2TT(ANik " ANi.j) (3.44)
and the other variables are as previously detailed. The
zero subscript indicates that the values are determined
using the latest estimates of the unknowns.
In Equation 3.43 the partials are represented as
follows: 61*.. -2y 612. 612._ .112 _ ..1Sx. — A Sx. Sx. (3-45)1 1 1)6s.. -2n 612. 612.. _ ..112 _ .1.1ay. 1 ay. ay. (3.).6)1 1 1)
-
46
(3.47)32.
—A 32. 32.l ( l l
Bf,. 2n SR., (3°48)_l.1Ä=...;..laxj A 3Xjaf,. 2¤6R.. (3'49)...£.1Ä=.....iJ.3Yj A 8YjBf,. &röR.. (3°5O)..?LZ&=....i.lözj A 3Zjar., -2¤ aa, (3'Sl)..e..1§=.__&3Xk A 6Xk
(3.52)Bf., -2n 3R..;.1.12:....A3Yk A 3Yk„ (3.53)of,. -2TI BR.l]k_____ ik3Zk A 3Zk
The partials of Rij and Rik are as described in Equations3.8 through 3.14, with Rij or Rik substituted for fij.
The number of unknowns is the same as in Eguation 3.21.
As a result of the differencing, there is one less
observation equation per ground station than in Eguation
3.20, resulting in
n = 3*ngr + (nsat — 1)*ngr (3.54)
which makes the degrees of freedom
r = ngr*(nSat - 1) - 3*ngr= (ngr — 3)*nSat — ngr (3.55)
-
1
471
As was the case with the undifferenced equations, the number
of ground stations must exceed three, and the number of
satellite positions should exceed the number of ground
stations.
Double and triple differencing have been used to reduce
the effect of errors, and therefore are described in Section
3.3.3.
3.3.3 Observation Errors
Four error sources were considered in the program RNGE.
Several other error sources were not included, but will
briefly be touched upon.
The first error source is random, uncorrelated error
drawn from a normal distribution. Random error is included
in the residual error, which is solved for by any least
squares solution. In fact the purpose of an optimizing
solution is to make sure that the residual error is as small
as possible, ideally representing only the random
measurement error.
Atmospheric refraction is caused by the increasing
density of the troposphere bending the wave by increasing
amounts. It can be removed in several manners. The method
used by RNGE and BUILD is to model the error, using known
atmospheric conditions, and remove it from the observation,
prior to the least squares solution. The Hopfield
-
I48
refraction method, as described by Anderle [1974], removes
all but about 5% of the error, which is added to the
residual error.
A second possible method is to solve for the refraction
as an unknown in the normal equations. This adds a great
deal of geometric complexity to the system, and as the bulk
of the refraction is easily removed, it is a less desirable
alternative.
The third error source treated by RNGE is clock error.
As with the tropospheric refraction, clock error can be
modeled and the majority removed prior to a least squares
solution. Given the type of atomic clock, cesium or
rubidium, and the time since last calibration, an Allan
variance model can be used to simulate clock error affecting
the observations. There is a small random component to the
clock error as well as a small ageing term, both of which
increase over time, and will affect the results; but if the
atomic clocks are calibrated regularly, these components
should remain small.
The majority of the clock error can be modeled as a
bias and drift. The equation representing the error, gc, is
Sc = b + dAt + rc (3.56)
-
49
where b is the clock bias, d is the drift rate, At is the
time since calibration, and rc is the random component of
the clock error, which will include any unmodeled systematic
and random error.Each clock in the system will have its own error
characteristic. In the range equation, this can be
represented by
Rij = r(xj - xi)2 + (Yj — yi>2 + (zj - zi)211/2+ (Bi + DiAt) - (BS + DSAt) (3.57)
where Bi and Di are the bias and drift of the clock at theith ground station, and BS and DS are the bias and drift of
the clock on the satellite. The other variables are as
previously defined.
The partial derivatives for the bias and drift terms in
Equation 3.57 areöfi.3B_ = -1 (3.66)
' 1
Bfi.616. = ‘^*° (M9)
1
Bfi.SB = 1 (3.60)Söfi.
s
I
-
50
In addition, one of the clocks, in the case of RNGE and
BUILD, the first ground station clock, can be the master
clock against which the others are measured, so the bias and
drift for that clock are defined to be zero. Therefore, if
i = 1, the Bi and Di terms in Equation 3.57 are notincluded.
Under these assumptions, two additional unknowns would
be added for each clock, including the satellite clock, but
excluding the master clock, for a total addition of
Au = 2*ngr (3.62)
This is not a large addition, and consequently the clock
errors can be solved, without an excessive impact to the
system.
There are other considerations related to observational
error or treatment of observations in terms of modeling.
Instrument error was not modeled within the programs
RNGE or PHASE, but was accounted for by the weights placed
on the observations. The total error contribution,
including random error, to the range observations is one
meter, and the contribution to the interferometric
observations is ten centimeters.
-
51‘
l
Ionospheric refraction is a second form of atmospheric
refraction, and was not considered in the solutions. It is
caused by the effect of the charged particles in the
ionosphere on the electromagnetic signal. The amount of
error is a function of frequency and altitude along the
signal path. According to Fell [1980] the upper bound on
the error, given the GPS frequency of 1575 MHz, is 4.8
millimeters, which is small compared with the error sources
that were included.
An observation effect which was not considered, but
could be applied to the phase observations, is the Doppler
shift. The wavelength is actually a function of the
velocity of the transmitter, relative to the receiver. To
get a good estimate of this value, a priori knowledge of the
satellite velocity vector over time is required. This
complicates the model, and means that the satellite
observations would not truly be independent.
Another error results from the fact that the PHASE
program made the assumption that the transmitter began at a
phase of zero, which is not necessarily true. As a result,
there is an initial phase offset, 59j, at each satellite
position. The observation equation then becomes
-
l52
Using the single difference formula at two ground stations,
i and l, yields
+ ' (ZTI/Ä)Rlj + ZTTNI1 + 2TI'ANlj "°2nNi1 + 2nANik - öök + (2n/A)Rij
• 211*Nil • 21rAN-ij + ßßj (3.64)
or
^@115k (Rlk ‘ R15 " R1k + R15)-2n(ANlk - ANlj — ANik + ANij) (3.65)
thus removing the initial offset. Equation 3.65 is the
double difference formula.
The triple difference formula takes the difference for
two satellites, at the same two ground stations, at the same
two times. The formula can be used to eliminate errors at
the ground station which are a function of time, such as the
drift terms for the ground clocks.
3.4 The Normal Eguations
The normal equations lent themselves to some unusual
partitioning schemes. The basic observation equation is
BA = f (3.66)
-
53 I
I
and can be partitioned according to ground station variables
and satellite variables, yielding
(B IB)[A} = f (3.67)Ü)
where the single dot refers to ground station variables,
including all clock bias and drift variables when they are
employed, and the double dot refers to satellite position
variables.
Multiplying both sides of Equation 3.66 by BTW gives
the normal equation
NA. = t (3.68)
where
N = BTWB (3.69)t = ¤Tw£ (3.70)
In the case of RNGE, with clock error unknowns
included, there could be as many as five ground stations,
and thirty satellite positions. Inserting these values in
Equations 3.21 and 3.62 gives a maximum of 115 unknowns,
which would be the rank of the N matrix. Solving for A
-
V54
requires inverting the N matrix, which would be extremely
time cohsuming on the computer used.This equation also can be partitioned, using Equation
3.67, into
= (3.71)LET N1 [tl
where
11 = 6Tw13 (3.72)E = 6Tw°é‘ (3.73)ä = ESTWE (3.74)t= 6Tw: (3.75)t = ÄTW: (3.76)
Solving the two equations simultaneously results in the
standard partitioning solution of
5 = ü'1E (3.77)
where
(3.78)t= - §°1i'l°£ (3.79)
-
I
55 I
As a result, the largest matrix which needs to be inverted
is N. N has a maximum rank of 90, and the inversion, while
faster than N, is still extremely slow.
As it turns out, N is a sparse matrix, as shown in
Figure 3.2. In Figure 3.2, the j subscript implies that the
matrix is a submatrix which is only the portion of the
complete matrix that applies to observations from satellite
position j.
This structure leads to additional partitioning, which
results in the equations
NA + = t (3.80)-•·T• |•‘O••=
OO.NJ A + NBA] t] (3.81)
where j ranges from 1 to nsat. Solving this system for
results in the following:
Ä = Ä'1; (3.82)
where
~=
•
¢NN ZNJNJ N] (3.83)“ - ° - —.".-1".t - t NJN] tl (3.84)
-
56
•• •• ‘
N = N1 0 ... 0o gz o
0 0...ii
= (El E2 iim)
•• ••]
E2
where
m = nsatOO' =.OO·T ·•O•NJ B] WJB]-—•
'Z
.•T••••N] B] WJBJ
= °°.T . .tl BJ Wjfn
Figure 3.2Structure of the Normal Matrices
-
!57
Additionally
N = 2Nj (3.85)
and
t = Ztj (3.86)
which results in the following values for N and t
“= °. - ’.°°.·1“.TN Z(N] NJN] NJ ) (3.87)” - °. - ".°°.—l°°.t — Z(tJ N]N] tj) (3.88)
and allows the matrices to be built one satellite position
at a time.
The largest matrix which is inverted in these equations
is N which has a rank of ngrv, or the number of ground
variables. That number has a maximum value of 25, while all
of the Nj matrices have a rank of three. This considerably
speeds the process, to the point that RNGE can be run in
real time in a matter of seconds, rather than in batch mode,
requiring many minutes, or even hours.
There are problems with this type of partitioning. One
problem is that it makes the process of coding and debugging
extremely difficult, and increases the lines of code
-
581
I
significantly. A second problem is that the covariancel
terms relating a satellite position to the ground, and
relating different satellite positions to each other, are
lost.
The §°1 matrix yields the covariance for the ground
variables. The satellite position covariances, relating the
different elements of a single position, can be generated
through a more complex process, by solving the system of
Equations in 3.80 and 3.81 for·ZB rather than Ä. This
results in the following normal equation:
Kj = ;1j°1€j (3.89)
where
= + + l-lüj (3.90)Ej = °£j - + §jiz3°°l'1ijT)‘1(€ + iji¢5‘l¥j) (3.91)
The covariance can then be generated from §j”l, and tj doesnot need to be computed.
In both programs, the observation equations are
linearized, thus requiring one or more iterations to achieve
a solution. There are four criteria, any one of which will
cause the iteration process to halt. The weighted variance
is determined for each iteration by the equation
-
59
soz = vTwv/r (3.92)
where v is the residual vector defined by the equation
v = f - BA (3.93)
and W and r are as previously defined. If soz is
sufficiently small, less than 10-6 for RNGE and PHASE, the
solution has converged, and the iterations are halted
successfully.
Two other criteria relate the weighted variance of the
current iteration to that of the previous iteration. If the
two are not sufficiently different, less than 10% for RNGE
and less than 10-7 for PHASE, the solution is again
considered to have converged, and the iterations are
successfully halted. If the variance of the current
iteration is greater than that of the previous iteration,
then the solution is diverging, and the program is halted in
error. The variance of the previous iteration is
initialized to 1030 to ensure that neither of the last two
conditions will be met on the first iteration.
When the solution for RNGE has converged, it has always
done so within five iterations. Therefore, an iteration
limit of five,has been imposed on both programs. If the
-
60 *l
solution does not meet any of the other criteria by the end
of the fifth iteration, the program is again halted in
error, as the solution is not converging as rapidly as it
should.
Whenever the programs are halted during the iteration
process, whether after successful completion, or in error,
the output files are created.
-
CHAPTER 4ANALYSIS
Simulations were performed using both programs,
resulting in varying degrees of success. Processing and
development were halted at an early stage on PHASE, as the
6 redesign required was extensive. A large number of runs,
with a variety of input data, were performed on RNGE. Those
results are addressed in Section 4.1. The results of the
few PHASE simulations, along with a discussion of the
probable causes of its failure, are contained is Section
4.2.
4.1 RNGE Results
All runs involving the RNGE program used five ground
stations. In addition, nineteen satellite positions at
fifteen minute intervals were used. This represents the
complete 4.5 hours of coverage during which the satellite
was visible from all five stations, simultaneously.
The first runs performed with RNGE were for test and
debug purposes, and consequently, used perfect data. There
were no errors on the observations, and the initial
estimates for the satellite positions were the truth values.
As expected, when the code was functioning properly, the
solution converged on the first iteration, and the weighted
variance was negligible.
61
-
I
62
POSDAT determines the difference between the computed
values from RNGE and the truth values, and prints them out
to six places. The smallest unit displayed is one
millimeter. The program also performs a Lagrangian
interpolation to determine intermediate positions, as
described in Section 3.2.4, and compares those values with
truth values, printing the results to six places, as was the
case with the computed values from RNGE.
In all cases, for the run with perfect data, these
results were displayed as zero, meaning the values were less
than .5 millimeters. The primary purpose of the run was to
test the basic algorithm, and make sure it would perform the
desired processing. As such, the run was a success.
The next test runs were similar tests, which involved
using perfect observations, with no errors from any source.
The difference in these runs being that the satellite
„ positions were scaled to create initial estimates which
deviated from the true values.
In the first of these, the scale factor was one part in
105, creating initial errors on the order of 100 meters.
Again, the solution converged in one iteration, with a
weighted variance of 10°7. The RMS of the differences of
the computed values and the true values were all under 4
centimeters. The interpolations differed from the true
IIIII
-
63 I
Ppositions by a value of less than 35 centimeters in all
cases.
The same observation data was used, allowing RNGE to
generate the initial estimates, as described in Section
3.2.2. This scenario seemed to tax the system more than any
other, as the solution required five iterations to converge.
The weighted variance was just less than the cutoff value of10°6. The output RMS for the computed variables was less
than 20 centimeters and for the interpolated positions, less
than 40 centimeters, in each component.
A final run using the perfect observations was
attempted. The initial estimates had a scaling factor of
1.0. When entered into RNGE, however, some estimates
exceeded the allowable range, and the program halted in
error.
Table 4.1 gives a description of thirteen simulation
runs which completed successfully. The table describes each
run, and states whether the initial estimates for the
satellite positions were estimated by BUILD from scaled
values of the true positions, or were generated by RNGE.
For the positions which were estimated, the table gives the
scale factor. The final two columns show the means and
istandard deviations, in meters, of the errors placed on the
observations.
-
Go N M
-
65
Table 4.2 shows the results for the simulations listed
in Table 4.1. The table shows the number of iterations
required for each, which is useful in determining the
sensitivity of the program to different input data. The
next column gives the weighted variance from the final
iteration. All elements of the table are given in meters,
with the exception of the weighted variance, which is
unitless.
The output errors show the root mean square of the
errors in the results of RNGE. The error listed in those
columns reflects the difference between the computed
position and the true satellite position for the same time.
The final three columns list the differences between the
interpolated values for the intermediate times and the
actual satellite positions. In each case, the error is
given for the X, Y, and Z components individually. The mean
and standard deviations of the total input errors which were
added to each range in order to compute the observation,
were computed by BUILD.
A variety of input data was used to test the program's
sensitivities to different errors. Comparing the
magnitudes, it is apparent that the majority of the input
error is random. In fact, by chance, the direction of the
clock and refraction errors is, on average, opposite to that
-
l
\D f\ |\ N O Q N •-4 O O O Ih \O$-4 rs GN O G1 O ü' Ih ¤0 Q Ih N Qoma UT I-Ü kh Ih O Q Q ¥D ln \D If} Q OLJ O I O l O O O O O O O O IO O O O O O N I\ N N N f\I3O •-• O O O I~ •—• N ~1 In Q Q O •—• •-•
•-• •—• •—• •-• •—• t~ N t~ r~ Q QH•QJ
OU C'! CN öl öl kh öl I-H Öl UW VN UW 6] anZI-U
G:3 O •—• NVW ¥D |\ UN •··* •-• •··¢
•··¢
-
67 l
lof the random error, so the net effect of the clock and
refraction errors is to reduce the total error.
The first five runs in Table 4.2 had only random errors
added to the observations. The program used a standard
deviation of one meter to generate the errors. The results
of BUILD show a mean of -.016 meters and a standard
deviation of 1.084 meters. The difference between the runs
was in the estimated satellite positions.
Because most of the error in any of the runs was
random, these runs were used as a test of the ability of the
program to complete the adjustments even though the initial
estimates were bad. Run number four scaled the initial
estimates by 10-5, or about 100 meters. Run three varied
the initial estimates by a 10-4 scale factor, or about one
kilometer. Run two was scaled by 10-3 and run one was
scaled by 10-2. The fifth run allowed RNGE to generate the
initial estimates. Another run was performed using a
scaling factor of 0.1, but the initial estimates exceeded
the allowable range, and the program was terminated in
error.
The five runs concluded successfully, with nearly
identical variances. The satellite positions were also
nearly identical, for both the computed and the interpolated
positions. In each component, the error is on the order of
ten meters, which is good for most ephemeris applications.
-
68
Given the input error, and the ground and observation
weights, ten meters might seem large, but this is probably
an indication that the program, and particularly the
application of the weights, require some fine tuning. For
both the Y and Z components, the interpolated positions were
closer to truth than the computed positions. This is not
statistically significant, however, and is probably due to
coincidence.
The primary difference between the five runs is
indicated by the number of iterations required for
convergence. Runs two, three, and four, each needed only
two iterations for a solution. Run one, with initial
estimates in error by about 1000 kilometers, took three
iterations to complete, and run five required the maximum of
five iterations, still yielding approximately the same
results. This indicates that the solution is largely
insensitive to the error in the initial estimates,
presumably because of the geometric strength of the range
equations.
The next two runs were conducted using both the random
errors, described in the previous runs, and tropospheric
refraction error. The refraction error is the 5% residual
error detailed in Section 3.3.3. The total mean refraction
error, as computed in BUILD was 3.6 meters, meaning that
about 18 centimeters of error was added to the observations.
-
69 I
Run six used the initial estimates which were scaled by
a factor of 1O”5. The input errors had a mean of 16.6
centimeters, but the standard deviation was close to that of
the runs with only the random errors applied. The run
required two iterations and finished with a weighted
variance which was almost identical to that in the previous
five runs. The output values were also almost identical,
between 7 and 13 meters for the computed positions, and
between 8 and 11 meters for the interpolated errors.
The seventh run used the same observations, but the
initial estimates were generated in RNGE. As was the case
in the other types of runs, the results were nearly
identical to run six, but run seven required five iterations
to converge.
Runs eight through thirteen all had clock errors, as
well as the refraction and random errors, added to the
observations. Runs eight through eleven employed a simple
linear least squares model in BUILD to filter the bias and
drift of the clock error before it was added to the
observations, as described in Section 3.3.3. The clock bias
and drift terms were not solved during RNGE, so that the
only variables determined were the ground and satellite
positional variables.
Runs eight and nine assumed that all clocks had been i
calibrated at the time the first observation was taken, so TIIIII
-
I70
that to was zero. After removing the bias and drift, the
mean clock error added to the observations was zero, as
expected, and the standard deviation was 2.9 centimeters.
The errors of the output data showed slight improvement
over those of the previous seven runs in all but the X
component of the least squares positions. The weighted
variances also showed some slight improvement. The change
was small in all cases, and not statistically significant.
As was the case with the previous run groupings, the
difference between runs eight and nine was in the estimated
satellite positions. Those of run eight were scaled by
lo'5, while those of run nine were generated by RNGE.
Again, the results were almost identical, except that run
eight required two iterations, and run nine required five,
for convergence.
Runs ten and eleven duplicated runs eight and nine
respectively, for both input and output. The only
difference between the sets was that runs ten and eleven
assumed that the ground clocks were last calibrated 2.5
hours before the observations began, and the satellite clock
was checked 250 hours prior to the start of the
observations. After filtering, the input data looked almost
identical to that of runs eight and nine, as did the results
of RNGE.
-
71 ,The final two successful runs used the same input
assumptions as runs eight and nine. The difference for
twelve and thirteen was that the clock errors were not
filtered, with the total error passed to the observations.
RNGE was run without solving for the bias and drift, just
solving for the positional variables. For the computed
positions, the results fell between the results of runs
eight through eleven and those of runs one through seven,
for all components. The results were very close to runs
eight through eleven for the interpolated positions. The
weighted variances also fell in the middle of the values for
the thirteen runs.
Four additional runs were attempted using the clock
errors generated for runs eight through eleven, but without
filtering the bias and drift. In these runs, RNGE attempted
to solve for the bias and drift, but the solutions diverged
with differences from the true positions in excess of 10
kilometers. The reasons for the failure have not been fully
analyzed, but are believed to be in the coding or design,
not in the basic concept.
4.2 PHASE Results
In contrast with RNGE, only two runs were performed
using the PHASE program. Both runs used a reduced data set
from that used by the RNGE program, with five ground
-
72|
stations and five satellite positions, the latter at fifteen
minute intervals.
The first simulation was the same as the first for
RNGE, using perfect observations and perfect estimates.
Again, this data set was used for test and debug purposes.
The run was brought to a successful conclusion in both
parts. The first adjustment, using the integer unknowns,
converged in one iteration with a weighted variance on the
order of 10'26. The second adjustment, which held the
integers constant, and only allowed the positional variables
to change, also concluded in a single iteration, with a
variance on the order of 1O”27. The differences between the
computed components and the true values were not observable.
The second run used the same perfect observations, but
with scaled errors of 10°7 on the estimates, or on the order
of a meter. Even with such good initial estimates, the
solution diverged on the second iteration. After
preliminary analysis, it was determined that extensive
rewriting of the program was required to correct the
problems.
There are several constraints for which the program did
not account. The