S. D. Johnscn, Co ChairmaW. APPRDVED: grzäé v} 2 E OP. EPHEMERIS OVER A LIMITED AREA by. MASTER OF SCIENCE in. 1gb

Similar documents
Week 02. Assist. Prof. Dr. Himmet KARAMAN

Orbit Representation

Orbit Determination Using Satellite-to-Satellite Tracking Data

This Land Surveying course has been developed by Failure & Damage Analysis, Inc.

Earth-Centered, Earth-Fixed Coordinate System

Understanding the Differences between LS Algorithms and Sequential Filters

Principles of the Global Positioning System Lecture 14

GPS Geodesy - LAB 7. Neglecting the propagation, multipath, and receiver errors, eq.(1) becomes:

Figure 1. View of ALSAT-2A spacecraft

TOWARDS ROBUST LOCALIZATION OF RTK-GPS TOPOGRAPHIC SURVEYS 23

Matrix Basic Concepts

Surveying Prof. Bharat Lohani Department of Civil Engineering Indian Institute of Technology, Kanpur

ESTIMATING THE RESIDUAL TROPOSPHERIC DELAY FOR AIRBORNE DIFFERENTIAL GPS POSITIONING (A SUMMARY)

GNSS: Global Navigation Satellite Systems

NGA GNSS Division Precise Ephemeris Parameters

(ii) We have already found out the velocity of the satellite in orbit in part (i) (using equation (2.5)) to be km/s

Review of Vectors and Matrices

Global Navigation Satellite Systems

Appendix A: Matrices

J. G. Miller (The MITRE Corporation), W. G. Schick (ITT Industries, Systems Division)

ELEMENTARY LINEAR ALGEBRA

Chapter 2. Altitude Measurement

EESC Geodesy with the Global Positioning System. Class 6: Point Positioning using Pseuduorange

Velocity and Acceleration of NavIC Satellites using Broadcast Ephemeris

Figure from Mike Rymer, USGS

a 11 x 1 + a 12 x a 1n x n = b 1 a 21 x 1 + a 22 x a 2n x n = b 2.

MATRICES. a m,1 a m,n A =

Linear Algebra. The analysis of many models in the social sciences reduces to the study of systems of equations.

Homework #1 Solution: March 8, 2006

Orbit and Transmit Characteristics of the CloudSat Cloud Profiling Radar (CPR) JPL Document No. D-29695

RADAR-OPTICAL OBSERVATION MIX

Geographic coordinate systems

AIR FORCE INSTITUTE OF TECHNOLOGY

Matrix Arithmetic. a 11 a. A + B = + a m1 a mn. + b. a 11 + b 11 a 1n + b 1n = a m1. b m1 b mn. and scalar multiplication for matrices via.

RELATIVE NAVIGATION FOR SATELLITES IN CLOSE PROXIMITY USING ANGLES-ONLY OBSERVATIONS

Autocorrelation Functions in GPS Data Processing: Modeling Aspects

A matrix over a field F is a rectangular array of elements from F. The symbol

Chapter 4. Satellite Position Estimation and Satellite Clock Error Analysis

Carrier-phase Ambiguity Success Rates for Integrated GPS-Galileo Satellite Navigation

AN EVALUATION OF VARIOUS SPACE CLOCKS FOR GPS IIF

Matrix & Linear Algebra

MULTI PURPOSE MISSION ANALYSIS DEVELOPMENT FRAMEWORK MUPUMA

ELEMENTARY LINEAR ALGEBRA

The Gauss-Jordan Elimination Algorithm

Orbit Design Marcelo Suárez. 6th Science Meeting; Seattle, WA, USA July 2010

CHAPTER 3 PERFORMANCE

AS3010: Introduction to Space Technology

ERTH 455 / GEOP 555 Geodetic Methods. Lecture 04: GPS Overview, Coordinate Systems

Clocks (Time) and Navigation: from Harrison to GPS

CHAPTER 3 PERFORMANCE

A primer on matrices

Real-Time Estimation of GPS Satellite Clocks Based on Global NTRIP-Streams. André Hauschild

Appendix C Vector and matrix algebra

GEOID UNDULATIONS OF SUDAN USING ORTHOMETRIC HEIGHTS COMPARED WITH THE EGM96 ANG EGM2008

CALCULATION OF POSITION AND VELOCITY OF GLONASS SATELLITE BASED ON ANALYTICAL THEORY OF MOTION

Accuracy Assessment of SGP4 Orbit Information Conversion into Osculating Elements

Linear Algebra March 16, 2019

Geophysical Correction Application in Level 2 CryoSat Data Products

The 3-D Global Spatial Data Model: Geometrical Foundation of the Global Spatial Data Infrastructure

MAE 180A: Spacecraft Guidance I, Summer 2009 Homework 2 Due Tuesday, July 14, in class.

Information in Radio Waves

HYPER Industrial Feasibility Study Final Presentation Orbit Selection

Statistical characteristics of L1 carrier phase observations from four low-cost GPS receivers

Proton Launch System Mission Planner s Guide APPENDIX F. Proton Launch System Options and Enhancements

Winds on Titan: First results from the Huygens Doppler Wind Experiment

Calculation and Application of MOPITT Averaging Kernels

Climate Monitoring with Radio Occultation Data

The Orbit Control of ERS-1 and ERS-2 for a Very Accurate Tandem Configuration

GAUSSIAN ELIMINATION AND LU DECOMPOSITION (SUPPLEMENT FOR MA511)

E. Calais Purdue University - EAS Department Civil 3273

Principles of the Global Positioning System Lecture 18" Mathematical models in GPS" Mathematical models used in GPS"

A primer on matrices

Matrix Algebra Review

New satellite mission for improving the Terrestrial Reference Frame: means and impacts

APPENDIX: MATHEMATICAL INDUCTION AND OTHER FORMS OF PROOF

Principles of Global Positioning Systems Spring 2008

ESTIMATION OF NUTATION TERMS USING GPS

A Mission to Planet Mars Gravity Field Determination

BASIC NOTIONS. x + y = 1 3, 3x 5y + z = A + 3B,C + 2D, DC are not defined. A + C =

Creating Satellite Orbits

AIR FORCE INSTITUTE OF TECHNOLOGY

GEA CRDA Range Data Analysis

RECOMMENDATION ITU-R S Impact of interference from the Sun into a geostationary-satellite orbit fixed-satellite service link

9.1 - Systems of Linear Equations: Two Variables

Associated Hypotheses in Linear Models for Unbalanced Data

7.5 Operations with Matrices. Copyright Cengage Learning. All rights reserved.

Test Computations

Algorithms for inverting radio occultation signals in the ionosphere

GPS Worldwide Laboratory: a community of knowledge-seekers spanning the globe

1 Data Arrays and Decompositions

Research of Satellite and Ground Time Synchronization Based on a New Navigation System

Improving LEO prediction precision with TLEs

Atmospheric delay. X, Y, Z : satellite cartesian coordinates. Z : receiver cartesian coordinates. In the vacuum the signal speed c is constant

Analysis of the Accuracy of GMF, NMF, and VMF1 Mapping Functions with GPT 50 a Priori Zenith Constraint in Tropospheric Delay Modelling

Homework Assignment 4 Solutions

LINEAR SYSTEMS, MATRICES, AND VECTORS

Celestial Mechanics III. Time and reference frames Orbital elements Calculation of ephemerides Orbit determination

Orbital and Celestial Mechanics

The GPS System. Brief history of GPS.

ELEMENTARY LINEAR ALGEBRA

Transcription:

1gb A GEMETRC APPRACH T DETERMAT F EPHEMERS VER A LMTED AREA by Keith R. Thackrey SATELLTE Thesis submitted to the Faculty of the Virginia Polytechnic nstitute and State University in partial fulfillment cf the requirements for the degree of MASTER F SCECE in Civil Engineering APPRDVED: grzäé v} S. D. Johnscn, Co ChairmaW 2 E P. J. -ell, Co-Chairman T. Sc er December, 1988 Blacksburg, Virginia

A GEMETRC APPRACH T DETERMAT F SATELLTE EPHEMERS VER A LMTED AREA by Keith Richards Thackrey Committee Co-Chairmen: Steven D. Johnson, Patrick J. Fell Civil Engineering (ABSTRACT) (_ ty F%Ä R {Si 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 state variable or benchmark. Programs have been developed that simulate and format the input data for the least squares estimation routines, and 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.

L L To test the accuracy of the solution, the results were compared to the true satellite positions, which were used to generate the input data. nterpolations 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. E Z

iv

l l l l TABLE F CTETS ÄBSTRAÜTACm WLEDGEMETS FGURES TABLES1 142 TR DUCT 1 1.1 Satellite Ephemeris Determination... 1 l2 bjectiv 3 13 Sc pe 3 BÄ KGRUD 6 2.1 Global Positioning System... 6 2.1.1 The Satellite System... 6 2.1.2 bservation Types... 7 2.2 Previous Studies... 9 3 PRÜCEDURE31 Data3.2 The Software Programs... 17 32l322 RGB323 PHASE324 PÜSDAT3.3 bservation Equations... 33 3.3.1 Range bservations... 35 3.3.2 Phase bservations... 39 3.3.2.1 Undifferenced Phase 3.3.2.2 Single Difference Phase 3.3.3 bservation Errors... 47 V

P 3.4 The ormal Equations... 52 4 AALYSS4l R SultS42 R SUltS5 5.1 Conclusions... 74 5 REFERECES A.1 A Source Code Listings... 79 A.2 Sample Run and Data... 161 A 2 1 Program Runs... 168 A.2.2 A 2 2VTAvi

LST F FGURES 3.1 GPS Ground Track... 15 3.2 Structure of the ormal Matrices... 56 vii

i TABLES3.1 LST GF GPS rbit Parameters... 13 3.2 Ground Stations... 16 4.1 Run Descriptions... 64 viii

l CHAPTER 1 TRDUCT 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. n 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. n 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. f intermediate positions are needed, they can be generated using some type of interpolation A scheme. There are some restrictions to the geometric approach. t 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. f 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 satellites of low altitude.

3 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 bjective n 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

4 satellite positions was considered over orth America. bservations were generated, varying from perfect observations, to observations containing such major error sources as random error, tropospheric refraction, and clock error. nitial 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 rganization 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.

CHAPTER 2 BACKGRUD 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 avy avigation 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 1 6

7 at a given time. Satellite 4 on day 17, 1983, was in view * over much of orth 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 L1 and 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 bservation 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)

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. ne 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. n 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 umerous 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. n 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. n 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 nternational 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 LADSAT 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 ovember 1985 and was also presented at the Fourth nternational 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. ifeng [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 study for 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 nternational 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 3 PRCEDURE Two approaches were examined, one using range observations and the other using phase observations. While the basic problem to be solved is the same, there are many peculiarities to programming the phase observation equations, so they will be treated separately. n addition to the two reduction programs, there are two data processors, 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.3 will 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 GPS Table 3.1 rbital Parameters Satellite 4, Day 17, 1983 Parameter Semi-major Axis yglge Eccentricity.003187 26,561.983 km. nclination 630 13' 45.46" Argument of Perigee -1520 39' 39.68" Right Ascension of 1720 25' 18.99" the Ascending ode Mean Anomaly 1550 50' 47.56"

14 ' i 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 orth 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. The station at wens 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 ron 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 Z A. - ' 22 sb Xl l V 26 4/ _, _ g ÜCL fr Ö 0 LJ _ >.; { M * es- " l 25 J M E U 1 g 8 uz "" :::..1 V _v& E5 ~ BS' ' ä j Ä ß. azxäl " J dä 1 / 5 EE 2 2 ~ Z gd.. ESZB ~ \ = r.,. E'* Z '.R x ; r am. :J ~ = * 8 E 8 8 *3 8-3Uf't.L.LB

16 Table 3.2 Ground Stations 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 wens 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 orth 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 preprocessor called BULD, two least squares processors called RGE and PHASE, and a post processor called PSDAT. 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 3.2.1 DTL BULD is a pre-processor which takes the ground station positions and satellite positions, simulates and then reformats 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. error was placed on the range observations, consistent with what is generally obtained in practice. An error of about onehalf of a pulse, or 10 cm., was placed on the phase observations, 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. n 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 cesium clock 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 BULD, and like all of the routines, was written in the FRTRA 77 version FRTVS2, which is resident on the BM 360/370 mainframe at Virginia Polytechnic nstitute and State University. The driver calls the subroutines GAUSS and RADM, which are general subroutines, accessed by several routines, and the subroutine BSBLD, which is specific to BULD. GAUSS is designed to generate random errors with a gaussian distribution and RADM is a random number generator. BSBLD is the heart of the pre-processor. ts 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, BSBLD will compute a mean and standard deviation of the different errors, and of the total errors, and print the results. BSBLD calls the subroutines LSTBLD, REF, and GAUSS. t 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. n 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 aval Surface Warfare Center (SWC) on a CDC computer and converted for use by BULD on the BM. REF generates atmospheric refraction using the Hopfield refraction method, which is discussed more fully in

21 Anderle [1974]. t 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 MAV, MAMULT, and FLCKE, all of which were adapted from existing programs. MAV and MAMULT are modified programs for matrix manipulation, which are used often in the programs. MAV computes the inverse of a matrix. MAMULT computes the product of two matrices. Like REF, FLCKE was developed at the SWC and adapted for use by BULD on the BM. t generates clock noise using an Allan variance. FLCKE 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. BULD

22 assumes that the first ground station is the master clock, and calls FLCKE 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. FLCKE 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 last calibration of the clocks, and a flag which says whether the satellite clock is a cesium or rubidium clock. n output are two arrays, one containing the flicker noise for each observation, and the other, the range error. FLCKE calls a package of subroutines, including STM, MATSM, CVMAT, with its entry point CVSET, PACK, MAMSG, and RADM, which has already been described. With the exception of RADM and MAMSG, all of these were created for FLCKE at the SWC, and will not be described further. A good description of the subroutines can be found in Cadzow [1970]. MAMSG is a single precision version of MAMULT. 3.2.2 ggg; RGE 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

r 23 g also, upon request, solve for a clock bias and drift. The weights for those variables are taken as input. RGE can either accept satellite position estimates, or by performing a smaller least squares adjustment, can generate initial estimates for the satellite positions. The observation 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. t 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 prevents inversion 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 RGE. t calls the subroutines RGETDT, CSTR, RPARTL, TLDA, MATE, and LEAST. RGETDT collects the input data for RGE. 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. t 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. f instructed to solve for the clock parameters, RGETDT will read the sigmas for the clock bias and drift. ext 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. f 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 PSTS, 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 PSTS 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 PSTS calls MAV 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. CSTR is called by RGE to add the ground station constraints to the normal equations. f solving for a clock bias and drift, those weights will also be added by CSTR. The subroutine calls MATE, and it calls RMAL, with its entry points TAL and FLL. t receives as input, the number of ground stations, and satellite positions, the number of variables per ground station, and the bias and drift weights. t returns -dot, T dot, and -tilda, the matrices for the normal equations. MATE location to another. is called to move matrices from one array t receives as input, the two arrays, the starting row and column for the matrix within each

Se.-----...;...-.-.---- 26 array, the row dimension of each array, and the row and column order of the matrix. RMAL 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. t receives the normal matrices, the observation partials and the weights, and the locations within the matrices of the non zero elements. ormal returns the updated normal equations. TAL is an entry point of RMAL. ts purpose is to clear the normal matrices before processing begins. t receives the matrices to be cleared and their rank, and returns the cleared matrices. FLL is the other entry point for RMAL. ts 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 RGE. t 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 RMAL along with TAL and FLL. Most of the work is performed in temporary locations, th and transferred to the universal arrays using MATE. l ' m u

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 associated observations. 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. TLDA is employed to build the -tilda and T tilda matrices. t is called for each satellite position, immediately after RPARTL. The subroutine calls MATE, as well as MAV 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. t outputs the tilda matrices of Section 3.3. The other workhorse of RGE 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 MSLVE, and for the satellites, in SATSLV. LEAST also calls RESD 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 is obtained through common blocks. The output data includes the updated positions and delta matrices, and the weighted variance of the solution. MSLVE was created to solve the equation: * A = U (3.1) for A. t is employed by RGE to solve for the ground station variables, due to the partitioning used by the two reduction programs. MSLVE calls MAV and MAMULT. The input data consists of the rank of the matrix, and the 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, and solves for the satellite position unknowns. The subroutine calls MATE and MAMULT. The inverse of the 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. RESD is the last subroutine called by LEAST. t is used to compute the observation residuals and the weighted variance of the solution, and upon request will compute the satellite position covariances. t calls MATE, MAMULT, MAV, and HDG. RESD receives the number of ground variables, satellite positions, ground stations, and variables per ground station. t also receives the observation weights, a flag 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 matrices. The subroutine returns the weighted variance, and prints out the residuals and the covariances. 3.2.3 gggg Work on the phase reduction program was halted at a relatively early stage, when it became apparent that the

30 approach was flawed. Consequently, the data file created by BULD 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. t calls GETDAT, CMPUT, CSTR, PARTL, TLDA, and LEAST. The processing performed by CSTR, TLDA, and LEAST is explained in Section 3.2.2. GETDAT performs much the same function for PHASE as RGETDT does for RGE. The observations are phase observations, which should not exceed 2, and a number of

31 { 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. CMPUT 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. CMPUT receives the frequency and time between observations, along with the observed number of waves, and the ground and satellite positional information. t returns the computed ranges, and the computed pulse deltas, which are defined in Section 3.3.2.1 and by Equation 3.28. PARTL 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. PARTL calls RMAL and its entry points TAL and FLL, which are discussed in Section 3.2.2. t also calls MAMULT, which is first addressed in Section 3.2.1, and MATE, which is first described in Section 3.2.2. The input for the routine includes the positional information, the information calculated by CMPUT, the observed phases, the observation weights, and the wavelength. PARTL 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 PSDAT The post processor for RGE is called PSDAT. ts purpose is to take the satellite positions generated by RGE and compare them to truth values. f 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-x)(x-xl)... (x-x5) PSDAT takes the computed values from RGE and computes a root mean square (RMS) of the x, y, and z component differences from the truth values. t also computes an RMS for the differences between the interpolated positions and the truth values. The driver is called PSDAT. 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 bservation Eggations Section 3.3 contains a discussion of the observation equations which can be employed to perform orbit determination for the GPS. n addition to the basic

34 observations, the partial derivatives will be examined, and the rank deficiencies for the equations actually used by RGE 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) n 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 bservations The range observation is the simplest form of all of the observations. n some manner, each of the other observation equations will contain the range equation. The basic form, without error sources considered, is Rij = :<xj - xi>2 + <Yj - yi>2 + <zj zi>21l/2 (3-5) where Rij is the distance between the ith ground station and the jth satellite position, Xj, Yj, and Zj are the rectangular 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 where Bfii Bf;. Bfi. Bfi. _ Y1; ay. AY1 + az. M1 ' ax. AX; 1 1 1 ; 8f.. Bf,. (3.6) BY. ; BZ. ; =-11..+s.. 1; 01; J J 0 + *- lay.+-$ Az. 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 using the latest estimates of Xj, Yj, Zj, xi, yi, and zi. Zj, xi, yi, and zi, are as in Equation 3.5. The zero Xj, Yj, subscript on the parentheses in Equation 3.6 implies that the partial derivatives are evaluated using the latest estimates of the unknowns. follows: n Equation 3.6, the partial derivatives are defined as Bfi. X. xi Bx. = r., (3 8) 1 13 Bfi. Y. yi lay = ];* i ij - = - - Bfi. Z. - zi Bz. 1 r,. 1J Bf,. (X. - x.) (3.9) (3.10)..&l =...;L...l. BX. r,. (3.11) J 1J Bf,. - Y.-. BYj 1; = (; Y1) (3.12) rij

37 asi. az. J -(zi - zi) 1~.. (3-33) 1J where ij = 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 number of 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 four ground 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 bservations 3.3.2.1 Undifferenced Phase bservations. 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 the station at a discrete time. Assuming that the transmitter is at zero at the time of the measurement, the equation for the observation is

40 Öij = 21T/Ä(Rij Aij) (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 ij 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, ij, 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, cbs, which measures the number of whole pulses received since the first observation. At any given time tl, the number of waves transmitted, t, by the satellite, since the initial time to, is defined by

41 t = fat (3.25) where f is the frequency of the transmission and At = tl - to (3.26) The difference, Aij, between the number transmitted and number received can be added to the wave count for that ground station, from the first satellite position, yielding ij = il + Aij (3.27) and the observation equation becomes = 2TT/Ä[Rij ' Ä(il + (3.28) n this way, Aij 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: v.. - lax. öfi. öfi. Ef,. Bf,. + lay. + laz. + i l./ax. 1J 3x. 1 1 Sy. 1 1 öz. 1 1 BX. J J öfi. öfi. öfi. 1 61. MJ az. MJ + 611. Ai1 = 'R1;5 J' foij (3*32) J J 11 o where = 2TT/Ä[Rij Ä(il + (3.33)

i 43 and fij is the value of fij using the initial values of xi, yi, zi, Xj, Yj, Zj, and il. 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. n Equation 3.32, the partial derivatives are defined as follows: Sfii -2n SR1. Gx. 3x.1 = T 1 öfia -2n SR1. --tl.. - öyi A öyi TM Sfi. -2w SR_. = T TM. Sfi. 1 1-2n 3Rii (3.36) @36) SX. = T V. <3 37> J J S51. -2n SR1. S1'. T SY. (3 38) J J Sfi. -2n SRi. SZ. =T az. <3 3 >> J J Sfi. g$j'= ZV (3.40) 11 The partials of Rij are as outlined in Equations 3.8 through 3.14, with SL1bStit1t d f fij. There is a peculiarity which makes this system difficult to solve. ne of the unknowns, il, is an integer value, so there is a problem in assuring that the final optimum solution contains integer values for il.

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 bservations. 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 i1 2 Aik (ZV/)~)Rij + 2TTi1 + 2TTAij (3.41) or Aöijk = (2'TT/Ä) (Rik 2TT(Aik Aij) (3.42)

45 l The integer unknown is now removed, and the observation becomes a range difference equation, rather than a range observation. is n this case, the equation which defines the B matrix y.. - L Ax. Sfi.k Sfi.k Sfi.k Sfi.k + % L Ay. + -)-112. + --1-Ax. 1J SX. 1 Sy. 1 Sz. 1 SX. 3 ( 1 1 l J where SY. J SZ. 3 SX k S1 K :1 1 k k + - + f azk "k " ' 1311 oijk (3-43) fijk = -2TF/Ä(Rik - + 2TT(Aik " Ai.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. n Equation 3.43 the partials are represented as follows: 61*.. -2y 612. 612. Sx. _.112 _..1 A Sx. Sx. (3-45) 6s.. -2n 612. 612. 1 1 1). _..112 _.1.1 ay. 1 ay. ay. (3.).6) 1 1 1)