civil engineering d. johnscn,v}co—chairmaw 2 e...the geometric approach yields a much simpler...

216
1gb A GEOMETRIC APPROACH TO DETERMINATION OF SATELLITE EPHEMERIS OVER A LIMITED AREA by Keith R. Thackrey Thesis submitted to the Faculty of the Virginia Polytechnic Institute and State University in partial fulfillment cf the requirements for the degree of MASTER OF SCIENCE in Civil Engineering APPRDVED: grzäé v} 2 E S. D. Johnscn, Co—ChairmaW OP. J. -ell, Co-Chairman T. Sc er December, 1988 Blacksburg, Virginia

Upload: others

Post on 25-Jan-2021

0 views

Category:

Documents


0 download

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