GNSSReceiver Setup

Top  Previous  Next

A GNSSReceiver is a subsystem object that can be attached to a Spacecraft to represent a receiver that is part of a Global Navigation Satellite System (GNSS) constellation such as GPS or Galileo. You can configure the Orbit Determination Properties for a GNSSReceiver through FreeFlyer script or the Object Browser. There are two ways to navigate to the "Estimation Properties" page of the GNSSReceiver object editor:

 

1.Open the desired GNSSReceiver's editor

2.Highlight the desired GNSSReceiver on the "Objects to Process" page of a Kalman Filter, Square Root Information Filter, Unscented Kalman Filter, or Batch Least Squares object editor and click the "Modify GNSSReceiver Estimation Options" button

 

From this page, you can configure any of these options:

 

The GNSSReceiver properties that you want to ignore, estimate, or consider

oIgnore: Leave the property out of the estimated state.

oEstimate: Include the property in the estimated state and allow the estimator to update its value.

oConsider: Include the property in the estimated state, but do NOT allow the estimator to update its value. This means that the property gets included in the covariance, but is not directly estimated.

The A Priori Bias, Sigma, and Process Noise for each of the properties

 

GNSS receivers can be used for simulating and processing Point Solution observations (GPS only) or general GNSS Pseudorange observations. Different GNSS receiver properties can be estimated depending on which type of measurement you are processing.

 

GNSS Receiver OD Properties

GNSS Receiver OD Properties

 

To define the GNSSReceiver properties that you want to estimate or consider via FreeForm script, you will access the GNSSReceiver's OD properties, as shown in the example below:

 

Alias receiver = Spacecraft1.GNSSReceivers[0]; // This alias is used to shorten the script examples below

 

// Point Solution Observation Receiver Properties

receiver.OD.PointSolutionObservation.TimeTagBias.ProcessAction  = 0;

receiver.OD.PointSolutionObservation.X.Bias.ProcessAction   = 0;

receiver.OD.PointSolutionObservation.Y.Bias.ProcessAction   = 0;

receiver.OD.PointSolutionObservation.Z.Bias.ProcessAction   = 0;

receiver.OD.PointSolutionObservation.VX.Bias.ProcessAction  = 0;

receiver.OD.PointSolutionObservation.VY.Bias.ProcessAction  = 0;

receiver.OD.PointSolutionObservation.VZ.Bias.ProcessAction  = 0;

 

// GNSS Observation Receiver Properties

// Properties to Estimate

receiver.OD.GNSSObservation.ClockBias.ProcessAction = 1;

receiver.OD.GNSSObservation.ClockDrift.ProcessAction = 1;

 

// Properties to Ignore

receiver.OD.GNSSObservation.GalileoInterSystemBias.ProcessAction = 0;

 

Once the GNSS Receiver has been configured, it can be used as an observing object or object being observed when simulating tracking data or including tracking data in an estimation process.

 

 

GNSS Receiver Measurement Model


When the observer is a GNSS Receiver, you can configure the measurement model (including the noise, maximum, and minimum values) for Point Solution or GNSS Pseudorange measurement types. Point Solution measurements are as follows:

 

Point Solution

oX

oY

oZ

oVX

oVY

oVZ

 

GNSS Pseudorange measurements are denoted by Rinex Measurement Codes. The three-character codes are used to indicate the following:

 

Measurement Type

oC - Code phase

oL - Carrier phase

oD - Doppler

oS - Signal strength

Frequency Band

o1-9

Channel or Code

oC, S, L, X, Y, M, etc.

 

The measurement codes currently supported in FreeFlyer are noted below:

 

GPS Pseudorange Measurements (Rinex Measurement Codes)

oC1C

oC1S

oC1L

oC1X

oC1P

oC1W

oC1Y

oC1M

oC2C

oC2D

oC2S

oC2L

oC2X

oC2P

oC2W

oC2Y

oC2M

oC5I

oC5Q

oC5X

Galileo Pseudorange Measurements (Rinex Measurement Codes)

oC1A

oC1B

oC1C

oC1X

oC1Z

oC5I

oC5Q

oC5X

oC7I

oC7Q

oC7X

oC8I

oC8Q

oC8X

oC6A

oC6B

oC6C

oC6X

oC6Z

 

You can configure these values through the Object Browser by double-clicking on the desired Spacecraft and navigating to the "Receivers" page under the Orbit Determination section, highlighting the desired Receiver and selecting "Edit Receiver", then navigating to the desired Measurements page. The panel for Point Solution Measurements is shown in the image below:

 

The GNSS Receiver Point Solution Measurement Model Editor

The GNSS Receiver Point Solution Measurement Model Editor

 

You can also configure these options through FreeFlyer script, by accessing various properties of the GNSS Receiver object:

 

Alias receiver = Spacecraft1.GNSSReceivers[0]; // This alias is used to shorten the script examples below

 

// Point Solution Measurement Model

receiver.OD.PointSolutionObservation.X.Noise   = 0.03;

receiver.OD.PointSolutionObservation.Y.Noise   = 0.03;

receiver.OD.PointSolutionObservation.Z.Noise   = 0.03;

receiver.OD.PointSolutionObservation.VX.Noise  = 5E-005;

receiver.OD.PointSolutionObservation.VY.Noise  = 5E-005;

receiver.OD.PointSolutionObservation.VZ.Noise  = 5E-005;

 

The panels for GNSS constellation pseudorange measurements are all essentially the same, in that users add desired measurements to the model and select a Measurement Code for each. An example containing three GPS measurements is shown below:

 

The GNSS Receiver GPS Pseudorange Measurement Model Editor

The GNSS Receiver GPS Pseudorange Measurement Model Editor

 

You can also configure these options through FreeFlyer script, by accessing various properties and methods of the GNSS Receiver object:

 

Alias receiver = Spacecraft1.GNSSReceivers[0]; // This alias is used to shorten the script examples below

 

// GNSSObservation Measurement Model

receiver.OD.GNSSObservation.GPS.AddMeasurement('C1C', 0.001); // Add a single measurement and associated noise based on Rinex3 code for the GPS constellation

receiver.OD.GNSSObservation.Galileo.AddMeasurement({'C1C''C1X''C1Z'}, {0.001, 0.001, 0.001}); // Add multiple measurements/noise values based on Rinex3 codes for the Galileo constellation

 

 

Attached Sensors


The Attached Sensors page of the GNSS Receiver object editor allows you to indicate any Sensors on the Spacecraft that will be attached to the receiver for simulating or processing OD tracking data. The Sensor's X, Y, and Z position properties will be used to model an offset from the origin of the Spacecraft body coordinate system (BCS) when modeling measurements.

 

Spacecraft Sensor attached to GNSS Receiver

Spacecraft Sensor attached to GNSS Receiver

 

You can also specify the Sensors to attach or detach via FreeFlyer script:

 

receiver.Attach(Spacecraft1.Sensors[0]);

 

receiver.Detach(Spacecraft1.Sensors[0]);

 

 

See Also


GNSSReceiver Properties and Methods

GNSSReceiverODProperties Properties and Methods