GPS / GNSS

GNSS fundamentals, pseudorange, carrier phase, Doppler, receiver clocks, satellite geometry, DOP, spaceborne antenna modelling, GNSS/INS integration, differential GNSS, carrier-phase relative navigation, spacecraft RPO, error modelling, integrity, Simulink implementation, and mission selection.

4.1.6 GPS / GNSS

In spacecraft applications, GNSS performance is determined by more than the receiver's advertised standalone position accuracy. The complete navigation chain includes the navigation constellation, signal propagation, antenna orientation and phase centre, RF front end, acquisition and tracking, satellite geometry, receiver clock states, navigation estimation, timing, measurement covariance, and the spacecraft GNC architecture that consumes the resulting measurements.

For rendezvous and proximity operations, the distinction between absolute GNSS, differential GNSS, and carrier-phase relative navigation is particularly important. Two independent position solutions can be differenced, but precision cooperative relative navigation requires careful treatment of common satellites, synchronized measurement epochs, correlated errors, raw observables, integer ambiguities, and the transition to close-range sensors.

Introduction

A Global Navigation Satellite System (GNSS) is a satellite-based radio-navigation system that allows a receiver to estimate its position, velocity, and time by processing signals transmitted by multiple navigation satellites.

For spacecraft GNC, GNSS can provide an absolute navigation reference rather than merely a raw sensor quantity such as angular rate or specific force.

A typical GNSS navigation solution is

\[ \boxed{ \mathbf x_{GNSS} = \begin{bmatrix} \mathbf r\\ \mathbf v\\ \delta t_r\\ \dot{\delta t}_r \end{bmatrix} } \]

where

\[ \mathbf r= \begin{bmatrix} x\\y\\z \end{bmatrix}, \qquad \mathbf v= \begin{bmatrix} v_x\\v_y\\v_z \end{bmatrix} \]

are receiver position and velocity, while

\[ \delta t_r \]

is receiver clock bias and

\[ \dot{\delta t}_r \]

is receiver clock drift.

However, the receiver does not fundamentally “measure position.”

It measures radio-signal observables such as:

\[ \boxed{ \text{Pseudorange} } \] \[ \boxed{ \text{Carrier Phase} } \] \[ \boxed{ \text{Doppler / Range Rate} } \]

and estimates position, velocity, time, and potentially additional states from those measurements.

The complete concept is therefore

\[ \boxed{ \text{GNSS Satellites} \rightarrow \text{RF Signals} \rightarrow \text{Antenna} \rightarrow \text{Receiver} \rightarrow \text{Observables} \rightarrow \text{Navigation Filter} \rightarrow \mathbf r,\mathbf v,t } \]

4.1.6.1 GNSS and GPS — What Is the Difference?

GNSS is the general term for satellite navigation constellations.

Examples include:

System Operator / Region
GPS United States
Galileo European Union
GLONASS Russia
BeiDou China
NavIC India
QZSS Japan, regional augmentation/navigation

Therefore,

\[ \boxed{ GPS \subset GNSS } \]

A GPS receiver uses GPS satellites.

A multi-GNSS receiver may simultaneously use signals from several constellations.

For spacecraft applications this can increase:

4.1.6.2 Role of GNSS in Spacecraft GNC

GNSS can provide measurements or navigation solutions for:

A simplified GNC architecture is

\[ \boxed{ \text{GNSS} \rightarrow \mathbf r_m,\mathbf v_m \rightarrow \text{Navigation Filter} \rightarrow \hat{\mathbf r},\hat{\mathbf v} \rightarrow \text{Guidance} \rightarrow \text{Control} } \]

For an RPO mission, GNSS may additionally support

\[ \boxed{ \text{Chaser GNSS} + \text{Target GNSS} \rightarrow \text{Relative Position / Velocity} } \]

during mission phases where both vehicles have suitable GNSS visibility and communications.

4.1.6.3 What Does a GNSS Receiver Actually Measure?

It is important to distinguish raw observables from the navigation solution.

A GNSS receiver can generate raw measurements such as:

Code pseudorange

\[ \boxed{\rho_i} \]

Carrier phase

\[ \boxed{\Phi_i} \]

Doppler

\[ \boxed{D_i} \]

Carrier-to-noise-density ratio

\[ \boxed{C/N_0} \]

The receiver then uses these observables to estimate quantities such as

\[ \boxed{ \mathbf r,\quad \mathbf v,\quad \delta t_r,\quad \dot{\delta t}_r } \]

Therefore:

\[ \boxed{ \text{GNSS does not fundamentally measure position directly.} } \]

Instead:

\[ \boxed{ \text{Radio Measurements} \rightarrow \text{Navigation Estimation} \rightarrow \text{Position / Velocity / Time} } \]

This distinction becomes extremely important when developing a high-fidelity sensor model.

4.1.6.4 Basic Principle of GNSS Positioning

Assume satellite \(i\) is at position

\[ \mathbf r_i \]

and the receiver is at

\[ \mathbf r_r. \]

The geometric range is

\[ \boxed{ R_i = \left\| \mathbf r_i-\mathbf r_r \right\|. } \]

If the signal propagation time were measured perfectly,

\[ R_i=c\Delta t_i \]

where \(c\) is the speed of light.

However, the receiver clock is not perfectly synchronized with GNSS system time.

Therefore the measured code range is a pseudorange, not a perfect geometric range.

4.1.6.5 Why Is It Called Pseudorange?

The ideal geometric distance is

\[ R_i = \|\mathbf r_i-\mathbf r_r\|. \]

But the measured quantity contains clock and other errors.

A simplified pseudorange model is

\[ \boxed{ \rho_i = R_i + c(\delta t_r-\delta t_i) + \epsilon_i } \]

where

Thus

\[ \boxed{ \rho_i\neq R_i } \]

in general.

That is why the measurement is called pseudo-range.

4.1.6.6 Complete Pseudorange Measurement Model

A more realistic model can be written as

\[ \boxed{ \rho_i = R_i + c(\delta t_r-\delta t_i) + I_i + T_i + \Delta\rho_{rel,i} + \Delta\rho_{orb,i} + \Delta\rho_{mp,i} + b_{\rho,i} + \epsilon_{\rho,i} } \]

where:

For a spacecraft above most or all of the neutral atmosphere, the relevance of atmospheric terms differs significantly from that for a terrestrial receiver. The actual signal path and spacecraft altitude must therefore be considered rather than blindly applying a ground-receiver error model.

4.1.6.7 Why Four Satellites Are Normally Required

The receiver has four basic unknowns:

\[ x,\quad y,\quad z,\quad \delta t_r. \]

Each satellite provides one pseudorange equation:

\[ \rho_i = \sqrt{ (x_i-x)^2+ (y_i-y)^2+ (z_i-z)^2 } + c\delta t_r +\cdots \]

Ignoring already corrected satellite-clock terms for the moment, four independent equations are required for the four unknowns.

Therefore:

\[ \boxed{ N_{sat}\ge4 } \]

is normally required for a standalone 3-D position and receiver-clock solution.

More satellites provide an overdetermined system:

\[ \boxed{ N_{sat}>4 \rightarrow \text{Redundancy + Better Geometry + Integrity Checks} } \]

4.1.6.8 GNSS Trilateration

GNSS positioning is fundamentally based on trilateration, not triangulation.

Each pseudorange defines approximately a sphere around the corresponding satellite.

For satellite \(i\):

\[ \boxed{ \|\mathbf r_r-\mathbf r_i\| \approx \rho_i-c\delta t_r. } \]

Multiple satellite measurements constrain the receiver position.

Conceptually:

\[ \boxed{ \text{Satellite 1 Range} + \text{Satellite 2 Range} + \text{Satellite 3 Range} + \text{Satellite 4 Range} \rightarrow \text{3-D Position + Clock Bias} } \]

4.1.6.9 Nonlinear Position Solution

Define the measurement function

\[ h_i(\mathbf x) = \|\mathbf r_r-\mathbf r_i\| + c\delta t_r. \]

The measurement residual is

\[ \boxed{ \Delta\rho_i = \rho_i-h_i(\hat{\mathbf x}). } \]

Because range depends nonlinearly on receiver position, the equations are commonly linearized about the current estimate.

Let

\[ \mathbf x = \begin{bmatrix} x&y&z&c\delta t_r \end{bmatrix}^T. \]

Then

\[ \boxed{ \Delta\boldsymbol{\rho} \approx H\Delta\mathbf x + \boldsymbol{\epsilon}. } \]

4.1.6.10 GNSS Geometry Matrix

For satellite \(i\), define the line-of-sight unit vector from receiver to satellite:

\[ \boxed{ \mathbf u_i = \frac{\mathbf r_i-\mathbf r_r} {\|\mathbf r_i-\mathbf r_r\|}. } \]

For one common state definition, a linearized pseudorange row can be represented as

\[ \boxed{ H_i = \begin{bmatrix} -\mathbf u_i^T & 1 \end{bmatrix} } \]

when the fourth state is expressed as \(c\delta t_r\).

Stacking the observations gives

\[ H= \begin{bmatrix} -\mathbf u_1^T&1\\ -\mathbf u_2^T&1\\ \vdots&\vdots\\ -\mathbf u_N^T&1 \end{bmatrix}. \]

The exact signs depend on how the line-of-sight vector and residual are defined, so a software implementation must use one consistent convention.

4.1.6.11 Least-Squares Navigation Solution

For

\[ \Delta\boldsymbol{\rho} = H\Delta\mathbf x + \boldsymbol{\epsilon}, \]

an ordinary least-squares correction is

\[ \boxed{ \Delta\hat{\mathbf x} = (H^TH)^{-1} H^T \Delta\boldsymbol{\rho}. } \]

With unequal measurement uncertainty, weighted least squares gives

\[ \boxed{ \Delta\hat{\mathbf x} = (H^TWH)^{-1} H^TW \Delta\boldsymbol{\rho}. } \]

The state estimate is updated:

\[ \boxed{ \hat{\mathbf x}^{+} = \hat{\mathbf x}^{-} + \Delta\hat{\mathbf x}. } \]

In implementation, QR, Cholesky, or SVD-based numerical methods are generally preferable to explicitly computing a matrix inverse.

4.1.6.12 Satellite Geometry

GNSS accuracy depends strongly on satellite geometry.

Consider two cases.

Good geometry

Satellites are distributed over widely separated viewing directions.

Poor geometry

Satellites appear clustered in similar directions.

Even if every pseudorange has the same measurement accuracy:

\[ \boxed{ \text{Good Geometry} \rightarrow \text{Better Navigation Accuracy} } \]

and

\[ \boxed{ \text{Poor Geometry} \rightarrow \text{Larger Position Uncertainty}. } \]

Thus satellite count alone does not determine navigation quality.

4.1.6.13 Dilution of Precision — DOP

Satellite geometry is commonly summarized using dilution-of-precision metrics.

If measurement errors have equal variance, the geometry contribution is related to

\[ \boxed{ Q=(H^TH)^{-1}. } \]

From the diagonal terms, various DOP quantities can be formed.

Common metrics include:

Conceptually,

\[ \boxed{ \sigma_{position} \sim PDOP \times \sigma_{\rho}. } \]

Therefore a very precise pseudorange receiver can still have poor position accuracy under poor satellite geometry.

4.1.6.14 Carrier-Phase Measurement

GNSS carrier phase provides a much more precise ranging observable than code phase, but it contains an unknown integer number of complete carrier cycles.

A representative carrier-phase equation expressed in metres is

\[ \boxed{ L_i = R_i + c(\delta t_r-\delta t_i) - I_i + T_i + \lambda N_i + b_{\phi,i} + \epsilon_{\phi,i}. } \]

Here:

If phase is expressed in cycles,

\[ \boxed{ \Phi_i = \frac{R_i}{\lambda} + \frac{c}{\lambda}(\delta t_r-\delta t_i) - \frac{I_i}{\lambda} + \frac{T_i}{\lambda} + N_i +\cdots } \]

4.1.6.15 Integer Ambiguity

When carrier tracking begins, the receiver can measure fractional carrier phase but does not initially know how many complete wavelengths lie between satellite and receiver.

Therefore,

\[ \boxed{ N_i\in\mathbb Z } \]

is an unknown integer ambiguity.

High-precision carrier-phase navigation requires estimating or resolving these ambiguities.

This is fundamental to:

4.1.6.16 Cycle Slips

A cycle slip occurs when continuous carrier-phase tracking is interrupted and the estimated phase count changes by an integer number of cycles.

Conceptually,

\[ \boxed{ N_i^{+} = N_i^{-} + \Delta N_i } \]

with

\[ \Delta N_i\in\mathbb Z. \]

Possible causes include:

Cycle slips must be detected and repaired or the corresponding ambiguity must be reinitialized.

4.1.6.17 Doppler Measurement

Relative motion between satellite and receiver produces a Doppler shift.

A simplified relationship is

\[ \boxed{ f_D \approx -\frac{\dot R}{\lambda} } \]

where

\[ \dot R \]

is range rate.

The geometric range rate is

\[ \boxed{ \dot R_i = \mathbf u_i^T (\mathbf v_i-\mathbf v_r) } \]

for a consistent receiver-to-satellite LOS definition.

A more complete pseudorange-rate model is

\[ \boxed{ \dot\rho_i = \mathbf u_i^T (\mathbf v_i-\mathbf v_r) + c(\dot{\delta t}_r-\dot{\delta t}_i) + \epsilon_{\dot\rho,i}. } \]

Doppler measurements are therefore extremely useful for velocity estimation.

4.1.6.18 Velocity Solution

A GNSS receiver can estimate velocity from Doppler/range-rate measurements.

Define

\[ \mathbf x_v = \begin{bmatrix} v_x\\ v_y\\ v_z\\ c\dot{\delta t}_r \end{bmatrix}. \]

The linearized model can be written

\[ \boxed{ \dot{\boldsymbol{\rho}} = H_v\mathbf x_v + \mathbf d + \boldsymbol{\epsilon}. } \]

After known satellite-motion terms are included appropriately, least squares or a Kalman filter can estimate receiver velocity and clock drift.

For spacecraft GNC, velocity quality can be as important as position quality because guidance and control often operate directly on relative or absolute velocity errors.

4.1.6.19 Receiver Clock Bias

The receiver clock is not perfectly synchronized with GNSS system time.

Define

\[ \boxed{ b_c=c\delta t_r. } \]

Then the pseudorange equation contains

\[ +b_c. \]

A small time error can correspond to a large apparent range error because

\[ \boxed{ \delta\rho=c\,\delta t. } \]

For example, a clock offset of only

\[ 1\ \mu s \]

corresponds to approximately

\[ 300\text{ m} \]

of light-travel distance.

Hence clock bias must be estimated as part of the navigation problem.

4.1.6.20 Receiver Clock Drift

Receiver clock bias varies with time.

Define

\[ \boxed{ \dot b_c = c\dot{\delta t}_r. } \]

A simple clock-state model can be

\[ \boxed{ \dot b_c=d_c } \] \[ \boxed{ \dot d_c=w_c } \]

where \(d_c\) represents clock drift and \(w_c\) represents clock-frequency process noise in a simplified model.

In discrete time,

\[ \boxed{ \begin{bmatrix} b_{c,k+1}\\ d_{c,k+1} \end{bmatrix} = \begin{bmatrix} 1&T_s\\ 0&1 \end{bmatrix} \begin{bmatrix} b_{c,k}\\ d_{c,k} \end{bmatrix} + \mathbf w_{c,k}. } \]

4.1.6.21 Satellite Clock Error

Navigation satellites use highly stable onboard clocks, but they are not mathematically perfect.

Satellite clock corrections are transmitted as part of the navigation data.

A common polynomial representation is conceptually

\[ \boxed{ \delta t_s = a_{f0} + a_{f1}(t-t_{oc}) + a_{f2}(t-t_{oc})^2 +\text{additional corrections}. } \]

Residual satellite clock error contributes directly to pseudorange error.

4.1.6.22 Broadcast Ephemeris and Satellite Position

The receiver must know where each navigation satellite was when the signal was transmitted.

The navigation message contains orbit information from which the satellite state can be computed.

Conceptually,

\[ \boxed{ \text{Broadcast Ephemeris} + t_{tx} \rightarrow \mathbf r_{sat}(t_{tx}), \mathbf v_{sat}(t_{tx}). } \]

A crucial detail is that the satellite position must correspond to signal transmission time, not simply receiver reception time.

4.1.6.23 Signal Transmission Time

The GNSS signal requires finite time to travel from satellite to receiver.

Approximately,

\[ \boxed{ t_{tx} = t_{rx} - \frac{\rho}{c}. } \]

The satellite state should therefore be evaluated near

\[ t_{tx}. \]

This leads naturally to an iterative calculation because propagation time itself depends on range.

4.1.6.24 Earth Rotation During Signal Transit

While the radio signal propagates, Earth rotates.

When working in Earth-fixed coordinates, this rotation must be accounted for consistently.

The correction is often associated with the Sagnac effect in GNSS processing.

Conceptually,

\[ \boxed{ \text{Satellite Position at Transmission} \rightarrow \text{Earth-Rotation Correction} \rightarrow \text{Consistent Receiver/Satellite Geometry}. } \]

Ignoring this effect can produce non-negligible ranging error in precise navigation.

4.1.6.25 Relativistic Effects

GNSS requires relativistic corrections because satellite clocks and signals are affected by both:

The navigation system design already accounts for major predictable effects, but additional satellite-orbit-dependent corrections remain part of precise measurement modelling.

Thus a high-fidelity model can contain

\[ \boxed{ \Delta\rho_{rel}. } \]

For introductory GNC simulation, this term can often be absorbed into the receiver error budget; for raw-observable precision simulation it should be treated explicitly.

4.1.6.26 Ionospheric Delay

The ionosphere is a dispersive medium.

The first-order ionospheric group delay approximately scales as

\[ \boxed{ I\propto\frac{TEC}{f^2} } \]

where

Because of the \(1/f^2\) dependence, dual-frequency measurements can be combined to remove most first-order ionospheric delay.

For code observations on two frequencies,

\[ P_1,\qquad P_2, \]

an ionosphere-free combination can be constructed in the form

\[ \boxed{ P_{IF} = \frac{ f_1^2P_1-f_2^2P_2 }{ f_1^2-f_2^2 }. } \]

The precise error environment for a spacecraft receiver depends strongly on spacecraft altitude and signal geometry.

4.1.6.27 Tropospheric Delay

For a terrestrial receiver, the neutral atmosphere introduces a tropospheric propagation delay.

A common conceptual decomposition is

\[ \boxed{ T = T_{hydrostatic} + T_{wet}. } \]

For a spacecraft receiver above the neutral atmosphere, the situation differs from that of a ground receiver because many received GNSS signals do not propagate through the lower atmosphere.

Therefore:

\[ \boxed{ \text{Ground GNSS Error Budget} \neq \text{Spacecraft GNSS Error Budget}. } \]

This distinction should be preserved in spacecraft sensor modelling.

4.1.6.28 Multipath

Multipath occurs when the antenna receives both the direct signal and delayed reflected versions.

Conceptually,

\[ \boxed{ s_{received} = s_{direct} + \sum_j a_js_{reflected,j}. } \]

On a spacecraft, reflecting structures may include:

Multipath can degrade:

A simplified measurement model contains

\[ \boxed{ \rho_m = \rho_{ideal} + e_{mp} + \cdots. } \]

4.1.6.29 Receiver Measurement Noise

GNSS measurements contain random tracking noise.

For pseudorange:

\[ \boxed{ \rho_m = \rho_{true} + n_\rho } \]

with

\[ n_\rho\sim\mathcal N(0,\sigma_\rho^2) \]

as a common simplified model.

For Doppler:

\[ \boxed{ \dot\rho_m = \dot\rho_{true} + n_{\dot\rho}. } \]

For carrier phase:

\[ \boxed{ L_m = L_{true} + n_\phi. } \]

The actual error statistics depend on signal strength, receiver architecture, tracking-loop configuration, dynamics, multipath, and other factors.

4.1.6.30 Carrier-to-Noise Density Ratio \(C/N_0\)

Signal quality is commonly characterized using

\[ \boxed{ C/N_0 } \]

usually expressed in

\[ \mathrm{dB\!-\!Hz}. \]

Higher \(C/N_0\) generally indicates a stronger or cleaner tracked signal.

Measurement uncertainty can therefore be made signal dependent:

\[ \boxed{ \sigma_{\rho,i} = f(C/N_{0,i}). } \]

This permits the navigation filter to assign lower weight to weak signals.

4.1.6.31 Elevation Mask and Spacecraft Visibility Mask

Ground receivers often reject low-elevation satellites because atmospheric errors and multipath are larger near the horizon.

For spacecraft, the geometry is different.

Visibility is governed by:

A general visibility flag can be written

\[ \boxed{ V_i = V_{Earth,i} V_{antenna,i} V_{body,i} V_{signal,i}. } \]

Only when

\[ V_i=1 \]

is satellite \(i\) accepted for measurement processing.

4.1.6.32 Earth Occultation

A navigation satellite cannot be directly observed if the Earth blocks the line of sight between spacecraft and GNSS satellite.

Let

\[ \mathbf r_r \]

be receiver position and

\[ \mathbf r_s \]

satellite position.

The line segment joining these points can be checked against the Earth.

Conceptually:

\[ \boxed{ \text{LOS intersects Earth} \rightarrow V_{Earth}=0. } \]

This is essential for realistic spaceborne GNSS visibility simulation.

4.1.6.33 GNSS Antenna Coordinate Frame

The antenna has its own orientation relative to the spacecraft.

Let:

A satellite LOS vector in inertial coordinates can be transformed to the body frame:

\[ \boxed{ \mathbf u_i^B = C_I^B \mathbf u_i^I. } \]

Then to antenna coordinates:

\[ \boxed{ \mathbf u_i^A = C_B^A \mathbf u_i^B. } \]

The antenna gain therefore depends on

\[ \boxed{ G_i = G(\mathbf u_i^A). } \]

This couples spacecraft attitude directly into GNSS measurement availability and quality.

4.1.6.34 Antenna Radiation Pattern

A real GNSS antenna does not receive signals equally from all directions.

The gain can be represented as

\[ \boxed{ G=G(\theta,\phi). } \]

A simplified model may define

\[ G= \begin{cases} G_0,&\theta\le\theta_{FOV}\\ 0,&\theta>\theta_{FOV}. \end{cases} \]

A higher-fidelity model uses the measured antenna gain pattern.

Therefore:

\[ \boxed{ \text{Satellite Geometrically Visible} \not\Rightarrow \text{Satellite Trackable}. } \]

4.1.6.35 Antenna Phase Center

GNSS measurements refer physically to the antenna electrical phase center rather than necessarily the spacecraft centre of mass.

Let

\[ \mathbf l_A^B \]

be the antenna lever arm from the spacecraft reference point to the antenna phase center, expressed in the body frame.

Then

\[ \boxed{ \mathbf r_A^I = \mathbf r_B^I + C_B^I \mathbf l_A^B. } \]

For high-accuracy navigation, this offset must be included.

4.1.6.36 Rotational Lever-Arm Velocity

If the antenna is displaced from the spacecraft centre of mass, spacecraft rotation contributes to antenna velocity.

In the body frame,

\[ \boxed{ \mathbf v_{A/B}^{B} = \boldsymbol{\omega}_{B/I}^{B} \times \mathbf l_A^B. } \]

Thus the inertial antenna velocity contains both translational and rotational contributions.

This can matter in precision Doppler and relative-navigation applications.

4.1.6.37 GNSS Coordinate Frames

Several coordinate systems appear in GNSS processing.

Important frames include:

A GNSS receiver commonly reports an Earth-fixed navigation solution.

Spacecraft GNC may require conversion to an inertial frame.

Conceptually,

\[ \boxed{ \mathbf r^{ECEF} \rightarrow \mathbf r^{ECI}. } \]

4.1.6.38 ECEF and ECI Transformation

A simplified relation is

\[ \boxed{ \mathbf r^{ECI} = C_{ECEF}^{ECI}(t) \mathbf r^{ECEF}. } \]

Velocity requires an additional rotational term.

For a rotating Earth-fixed frame,

\[ \boxed{ \mathbf v^{ECI} = C_{ECEF}^{ECI} \left( \mathbf v^{ECEF} + \boldsymbol{\omega}_E \times \mathbf r^{ECEF} \right). } \]

This is critical.

Simply rotating the ECEF velocity vector without including the Earth-rotation term generally does not give the correct inertial velocity.

4.1.6.39 Geodetic Coordinates

GNSS receiver outputs may include:

\[ \boxed{ \phi,\quad\lambda,\quad h } \]

where

Spacecraft dynamics, however, are often propagated using Cartesian vectors.

Therefore a practical navigation system must maintain clear transformations between

\[ \boxed{ \text{Latitude / Longitude / Height} \leftrightarrow \text{ECEF Cartesian Position}. } \]

4.1.6.40 GNSS Position Measurement Model for GNC

If the receiver internally produces a position solution, a simple sensor-level model is

\[ \boxed{ \mathbf r_m = \mathbf r_{true} + \mathbf b_r + \mathbf n_r. } \]

Similarly,

\[ \boxed{ \mathbf v_m = \mathbf v_{true} + \mathbf b_v + \mathbf n_v. } \]

A combined output model is

\[ \boxed{ \mathbf z_{GNSS} = \begin{bmatrix} \mathbf r_m\\ \mathbf v_m \end{bmatrix} = \begin{bmatrix} \mathbf r\\ \mathbf v \end{bmatrix} + \begin{bmatrix} \mathbf b_r\\ \mathbf b_v \end{bmatrix} + \mathbf n. } \]

This is often sufficient when the objective is to test the spacecraft navigation filter rather than the GNSS receiver itself.

4.1.6.41 Raw-Measurement vs Navigation-Solution Modelling

There are two fundamentally different GNSS simulation approaches.

Solution-Level Model

Generate

\[ \mathbf r_m,\quad\mathbf v_m. \]

Advantages:

Limitations:

Raw-Observable Model

Generate

\[ \rho_i,\quad L_i,\quad D_i,\quad C/N_{0,i}. \]

Advantages:

For serious relative-navigation work, raw-observable simulation can become particularly valuable.

4.1.6.42 GNSS Sampling Rate

Measurements occur at discrete epochs:

\[ \boxed{ t_k=kT_{GNSS}. } \]

The update rate is

\[ \boxed{ f_{GNSS} = \frac{1}{T_{GNSS}}. } \]

The required rate depends on:

4.1.6.43 GNSS Latency

The receiver requires time for:

If a solution corresponds to time \(t_k\) but arrives at the flight computer at

\[ t_k+\tau_{GNSS}, \]

then

\[ \boxed{ \tau_{GNSS} = \text{GNSS measurement latency}. } \]

Using an old measurement as though it were current can introduce substantial navigation error.

Approximately,

\[ \boxed{ \delta\mathbf r_{latency} \approx \mathbf v\,\tau_{GNSS} } \]

for short delays and nearly constant velocity.

For relative navigation,

\[ \boxed{ \delta\mathbf r_{rel} \approx \mathbf v_{rel}\tau. } \]

4.1.6.44 Timestamp Error

Latency and timestamp error are not identical.

A delayed measurement with a correct timestamp can often be compensated.

A measurement with an incorrect timestamp is more problematic.

If

\[ \delta t \]

is the timestamp error,

\[ \boxed{ \delta\mathbf r \approx \mathbf v\,\delta t } \]

to first order.

For high-speed orbital motion, timing discipline is therefore an important part of GNSS integration.

4.1.6.45 GNSS Dropout

GNSS measurements may become unavailable because of:

Define

\[ \boxed{ valid_{GNSS} = \begin{cases} 1,&\text{valid navigation solution}\\ 0,&\text{no valid solution}. \end{cases} } \]

During dropout:

\[ \boxed{ \text{Navigation Filter} \rightarrow \text{Propagation Using Dynamics / IMU / Other Sensors}. } \]

4.1.6.46 GNSS Navigation Status

A realistic interface should not supply only position and velocity.

Useful metadata can include:

\[ \boxed{ \{ \mathbf r, \mathbf v, t, R, N_{sat}, DOP, status, validity \}. } \]

Raw-observable systems can additionally provide:

\[ \boxed{ \{ \rho_i, L_i, D_i, C/N_{0,i}, satellite\ ID, lock\ status \}. } \]

This metadata is valuable for estimator weighting and fault detection.

4.1.6.47 GNSS Measurement Covariance

A navigation solution should ideally include or support an uncertainty model.

For position,

\[ R_r = E [ \delta\mathbf r \delta\mathbf r^T ]. \]

For velocity,

\[ R_v = E [ \delta\mathbf v \delta\mathbf v^T ]. \]

A combined measurement covariance can be represented as

\[ \boxed{ R_{GNSS} = \begin{bmatrix} R_r&R_{rv}\\ R_{vr}&R_v \end{bmatrix}. } \]

Using a constant diagonal covariance is convenient, but a geometry- and signal-dependent covariance is more realistic.

4.1.6.48 GNSS + EKF

Suppose the spacecraft navigation state is

\[ \mathbf x = \begin{bmatrix} \mathbf r\\ \mathbf v\\ \mathbf b_a\\ \mathbf b_g\\ \cdots \end{bmatrix}. \]

If GNSS provides position and velocity,

\[ \boxed{ \mathbf z_{GNSS} = \begin{bmatrix} \mathbf r\\ \mathbf v \end{bmatrix} + \mathbf v_{GNSS}. } \]

The measurement model can be

\[ \mathbf z = h(\mathbf x)+\mathbf v. \]

For a state whose first six components are position and velocity, a representative measurement matrix is

\[ \boxed{ H_{GNSS} = \begin{bmatrix} I_{3\times3}&0&0&\cdots\\ 0&I_{3\times3}&0&\cdots \end{bmatrix}. } \]

The exact matrix depends on the chosen state ordering.

4.1.6.49 GNSS + IMU Integration

GNSS and inertial sensors are highly complementary.

The IMU provides high-rate propagation:

\[ \boxed{ \text{Gyroscope} + \text{Accelerometer} \rightarrow \text{Inertial Navigation Propagation}. } \]

But inertial errors grow with time.

GNSS provides absolute position/velocity updates:

\[ \boxed{ \text{GNSS} \rightarrow \text{Long-Term Drift Correction}. } \]

Therefore,

\[ \boxed{ \text{IMU} + \text{GNSS} \rightarrow \text{Integrated Navigation System}. } \]

4.1.6.50 Loosely Coupled GNSS/INS

In a loosely coupled architecture, the GNSS receiver first computes its own navigation solution:

\[ \boxed{ \text{GNSS Receiver} \rightarrow \mathbf r_{GNSS}, \mathbf v_{GNSS}. } \]

The INS filter then uses those values:

\[ \boxed{ \mathbf r_{GNSS}, \mathbf v_{GNSS} + \text{INS} \rightarrow \text{Navigation Filter}. } \]

Advantages:

A limitation is that a conventional standalone 3-D GNSS solution normally needs enough tracked satellites to solve its internal navigation problem.

4.1.6.51 Tightly Coupled GNSS/INS

In a tightly coupled system, the estimator uses raw or preprocessed GNSS observables directly:

\[ \boxed{ \rho_i,\dot\rho_i + \text{IMU} \rightarrow \text{Integrated Navigation Filter}. } \]

Advantages include:

The state may include

\[ \boxed{ \mathbf x = [ \mathbf r, \mathbf v, \delta\boldsymbol{\theta}, \mathbf b_a, \mathbf b_g, b_c, d_c, \ldots ]^T. } \]

4.1.6.52 Ultra-Tightly Coupled GNSS/INS

In ultra-tight or deep integration, inertial information is fed into GNSS signal tracking itself.

Conceptually,

\[ \boxed{ \text{IMU} \rightarrow \text{Tracking-Loop Aid} \rightarrow \text{GNSS Correlators / Tracking} } \]

rather than only combining completed GNSS measurements in a navigation filter.

This can improve performance under challenging dynamics or weak signals, but substantially increases system complexity.

4.1.6.53 Absolute vs Relative GNSS

For one spacecraft, GNSS provides absolute navigation:

\[ \boxed{ \mathbf r_C,\mathbf v_C. } \]

For two spacecraft:

\[ \mathbf r_C,\mathbf v_C \]

for the chaser and

\[ \mathbf r_T,\mathbf v_T \]

for the target.

The relative inertial position is

\[ \boxed{ \mathbf r_{rel}^{I} = \mathbf r_C^{I} - \mathbf r_T^{I}. } \]

Relative velocity is

\[ \boxed{ \mathbf v_{rel}^{I} = \mathbf v_C^{I} - \mathbf v_T^{I}. } \]

The sign convention must be fixed according to whether the vector is defined as target-to-chaser or chaser-to-target.

4.1.6.54 Why Differencing Two Independent GNSS Solutions Is Not Always Enough

A simple relative-navigation solution is

\[ \hat{\mathbf r}_{rel} = \hat{\mathbf r}_C - \hat{\mathbf r}_T. \]

Its error is

\[ \boxed{ \delta\mathbf r_{rel} = \delta\mathbf r_C - \delta\mathbf r_T. } \]

If the two absolute solutions contain correlated common-mode errors, some errors may cancel.

If their errors are independent, their variances add.

For one axis,

\[ \boxed{ \sigma_{rel}^2 = \sigma_C^2 + \sigma_T^2 - 2\,Cov(e_C,e_T). } \]

Therefore:

\[ \boxed{ \text{Relative accuracy cannot be inferred from absolute accuracy alone.} } \]

This is a major consideration for RPO.

4.1.6.55 Differential GNSS

Differential GNSS exploits measurements from two receivers observing common satellites.

Let receiver \(A\) and receiver \(B\) measure satellite \(i\):

\[ \rho_A^i = R_A^i + c(\delta t_A-\delta t_i) + e_A^i \] \[ \rho_B^i = R_B^i + c(\delta t_B-\delta t_i) + e_B^i. \]

Subtract:

\[ \boxed{ \Delta\rho_{AB}^{i} = \rho_A^i-\rho_B^i. } \]

The satellite clock term cancels:

\[ -c\delta t_i - (-c\delta t_i) = 0. \]

Thus differencing can remove or reduce common errors.

4.1.6.56 Single-Difference Carrier Phase

For carrier phase, a receiver single difference can be formed:

\[ \boxed{ \Delta L_{AB}^{i} = L_A^i-L_B^i. } \]

This cancels the common satellite clock error.

It retains:

4.1.6.57 Double-Difference Carrier Phase

Now select two receivers \(A,B\) and two satellites \(i,j\).

A double difference can be written

\[ \boxed{ \nabla\Delta L_{AB}^{ij} = (L_A^i-L_B^i) - (L_A^j-L_B^j). } \]

This eliminates both common satellite clock terms and receiver clock difference under the usual simultaneous differencing assumptions.

The remaining observation is strongly related to:

This is fundamental to precise carrier-phase relative navigation.

4.1.6.58 Triple Differences

Differences between double-difference measurements at successive epochs form a triple difference.

Conceptually,

\[ \boxed{ \delta_t \left( \nabla\Delta L \right). } \]

Triple differencing can help detect cycle slips and remove constant ambiguity terms, although it generally increases measurement noise and is not always the preferred final precision observable.

4.1.6.59 Relative Baseline

For two spacecraft,

\[ \boxed{ \mathbf b = \mathbf r_C-\mathbf r_T. } \]

For a common satellite whose distance is much larger than the inter-spacecraft separation, the differential range can be approximated locally by

\[ \boxed{ \Delta R_i \approx -\mathbf u_i^T\mathbf b } \]

for one LOS/baseline convention.

With several satellites,

\[ \boxed{ \Delta\boldsymbol{\rho} \approx H_b\mathbf b + \boldsymbol{\epsilon}. } \]

This provides a direct relative-position estimation problem.

4.1.6.60 Carrier-Phase Relative Navigation

Carrier phase can support substantially better relative precision than code pseudorange when ambiguity resolution and signal tracking are successful.

The simplified double-difference model is

\[ \boxed{ \nabla\Delta L = H_b\mathbf b + \lambda\mathbf N_{DD} + \boldsymbol{\epsilon}. } \]

The unknowns include

\[ \boxed{ \mathbf b } \]

and

\[ \boxed{ \mathbf N_{DD}. } \]

After integer ambiguities are correctly resolved, high-precision relative navigation becomes possible.

4.1.6.61 RTK

Real-Time Kinematic (RTK) navigation uses carrier-phase differential measurements and ambiguity resolution to achieve high relative positioning precision.

Conceptually:

\[ \boxed{ \text{Reference Receiver} + \text{Rover Receiver} + \text{Common Satellites} + \text{Carrier Phase} + \text{Data Link} \rightarrow \text{Precise Relative Position}. } \]

For spacecraft, the terminology and implementation may differ from terrestrial surveying RTK, but the underlying carrier-phase differential-navigation principles are closely related.

4.1.6.62 GNSS for Spacecraft Rendezvous and Proximity Operations

GNSS can be highly useful during the far and intermediate portions of RPO.

A representative sensor progression may be

\[ \boxed{ \text{Far Range} \rightarrow \text{GNSS / Differential GNSS} } \] \[ \boxed{ \text{Intermediate Range} \rightarrow \text{GNSS + Relative Optical / RF Sensors} } \] \[ \boxed{ \text{Close Range} \rightarrow \text{LiDAR / Camera / Relative Navigation Sensors} } \] \[ \boxed{ \text{Final Capture} \rightarrow \text{High-Accuracy Relative Pose Sensing}. } \]

GNSS is therefore not necessarily the sole navigation sensor throughout an RPO trajectory.

4.1.6.63 Relative GNSS Measurement in Hill / LVLH Frame

RPO guidance commonly operates in a local orbital frame rather than ECEF.

Suppose the inertial relative position is

\[ \delta\mathbf r^I = \mathbf r_C^I-\mathbf r_T^I. \]

Then

\[ \boxed{ \delta\mathbf r^H = C_I^H \delta\mathbf r^I } \]

where \(H\) denotes the selected Hill/LVLH frame.

A careful velocity transformation is also required because the Hill frame rotates.

For a rotating frame,

\[ \boxed{ \delta\mathbf v^H = C_I^H \delta\mathbf v^I - \boldsymbol{\omega}_{H/I}^{H} \times \delta\mathbf r^H } \]

for the stated transformation convention.

This term should not be omitted when converting inertial relative velocity into a rotating local orbital frame.

4.1.6.64 GNSS and Clohessy-Wiltshire Navigation

For near-circular target orbits, relative position and velocity can be represented as

\[ \boxed{ \mathbf x_{rel} = \begin{bmatrix} x\\y\\z\\\dot x\\\dot y\\\dot z \end{bmatrix}. } \]

The linearized Clohessy-Wiltshire dynamics are

\[ \ddot x = 3n^2x + 2n\dot y + u_x \] \[ \ddot y = -2n\dot x + u_y \] \[ \ddot z = -n^2z + u_z. \]

GNSS-derived relative measurements can update the relative navigation state:

\[ \boxed{ \mathbf z_{rel} = H_{rel}\mathbf x_{rel} + \mathbf v. } \]

This creates the chain

\[ \boxed{ \text{GNSS} \rightarrow \text{Relative State} \rightarrow \text{CW / Nonlinear RPO Filter} \rightarrow \text{Guidance} \rightarrow \text{Thruster Control}. } \]

4.1.6.65 Common-Mode Error Cancellation

One reason differential GNSS can provide excellent relative navigation is that nearby receivers may experience highly correlated errors.

Suppose

\[ e_C=e_{common}+e_{C,local} \]

and

\[ e_T=e_{common}+e_{T,local}. \]

Then

\[ e_C-e_T = e_{C,local} - e_{T,local}. \]

Thus

\[ \boxed{ e_{common} \rightarrow \text{Cancelled by Differencing}. } \]

Cancellation becomes less perfect as:

4.1.6.66 Time Synchronization Between Two Spacecraft

Relative GNSS requires careful time alignment.

If the chaser measurement is at

\[ t_C \]

and the target measurement is at

\[ t_T, \]

then directly subtracting the two states can create an apparent relative-position error.

For

\[ \Delta t=t_C-t_T, \]

a first-order error is approximately

\[ \boxed{ \delta\mathbf r_{sync} \approx \mathbf v_{rel}\Delta t } \]

for the relative component, while absolute-state differencing can also be sensitive to the large common orbital velocity if the states are not propagated to a common epoch before subtraction.

Thus:

\[ \boxed{ \text{Relative Navigation} \rightarrow \text{Common Time Epoch Is Essential}. } \]

4.1.6.67 Inter-Satellite Communication for Differential GNSS

If two spacecraft cooperate, differential processing requires exchanging information.

Possible data include:

The architecture becomes

\[ \boxed{ \text{Target GNSS} \rightarrow \text{Crosslink} \rightarrow \text{Chaser Relative Navigation Filter}. } \]

Communication latency and packet loss therefore become part of the relative-navigation error budget.

4.1.6.68 GNSS Attitude Determination

GNSS can also contribute to spacecraft attitude determination when multiple antennas are mounted at known baselines.

Suppose antennas \(A\) and \(B\) are separated by body-fixed baseline

\[ \mathbf b^B. \]

GNSS carrier-phase processing can estimate the baseline in a navigation/reference frame:

\[ \mathbf b^N. \]

Then

\[ \boxed{ \mathbf b^N = C_B^N \mathbf b^B. } \]

One baseline constrains attitude but does not generally determine all three rotational degrees of freedom independently.

Multiple non-collinear baselines can provide full attitude information.

4.1.6.69 GNSS Attitude Using Carrier Phase

For satellite \(i\), the carrier-phase difference between two antennas depends approximately on the projection of the antenna baseline onto the satellite LOS.

Conceptually,

\[ \boxed{ \Delta L_i \approx -\mathbf u_i^T\mathbf b + \lambda N_i + \epsilon_i. } \]

With multiple satellites and resolved ambiguities, the baseline vector can be estimated precisely.

Thus:

\[ \boxed{ \text{Multiple GNSS Antennas} \rightarrow \text{Baseline Estimation} \rightarrow \text{Spacecraft Attitude}. } \]

4.1.6.70 GNSS Receiver Dynamic Limits

A spaceborne GNSS receiver must tolerate spacecraft dynamics.

Relevant specifications include:

High dynamics can affect:

A receiver intended primarily for stationary or terrestrial use should therefore not automatically be assumed suitable for spacecraft use.

4.1.6.71 Spaceborne GNSS and Altitude

Spacecraft GNSS differs from terrestrial GNSS.

In LEO, many navigation satellites can often be observed using signals transmitted toward Earth.

At higher altitudes, spacecraft may increasingly depend on:

The resulting environment is often discussed in terms of the Space Service Volume.

Therefore GNSS availability depends strongly on:

\[ \boxed{ \text{Orbit Altitude} + \text{Receiver Sensitivity} + \text{Antenna Pattern} + \text{GNSS Signal Radiation Pattern}. } \]

4.1.6.72 Space Service Volume

The GNSS Space Service Volume extends navigation use beyond ordinary terrestrial and near-Earth service assumptions.

At higher spacecraft altitudes:

For missions approaching or exceeding GNSS constellation altitudes, receiver design becomes much more demanding.

4.1.6.73 Multi-Constellation GNSS

A multi-constellation receiver can use

\[ \boxed{ GPS+Galileo+GLONASS+BeiDou+\cdots. } \]

Potential benefits include:

However, multi-GNSS processing can require additional states or calibrations because different constellations can use different system times and hardware signal paths.

4.1.6.74 Inter-System Time Bias

When measurements from different GNSS constellations are combined, their system times are not necessarily identical.

A measurement model may therefore require inter-system bias states such as

\[ \boxed{ b_{GPS-GAL}, \quad b_{GPS-BDS}, \quad \ldots } \]

depending on receiver implementation.

Thus:

\[ \boxed{ \text{More Constellations} \rightarrow \text{More Measurements} } \]

but potentially also

\[ \boxed{ \text{Additional Bias States}. } \]

4.1.6.75 Multi-Frequency GNSS

Modern GNSS receivers may track multiple frequencies.

Benefits include:

A dual-frequency system can form combinations that reduce first-order ionospheric error.

For precision differential navigation, multi-frequency carrier measurements can be particularly valuable.

4.1.6.76 GNSS Signal Acquisition

Before measurements are available, the receiver must detect a GNSS signal and estimate its approximate:

Conceptually:

\[ \boxed{ \text{RF Samples} \rightarrow \text{Code Search} + \text{Doppler Search} \rightarrow \text{Acquisition}. } \]

After acquisition:

\[ \boxed{ \text{Acquisition} \rightarrow \text{Tracking} \rightarrow \text{Measurements}. } \]

4.1.6.77 Code Tracking

After acquisition, a code-tracking loop maintains alignment with the received spreading code.

A common conceptual implementation uses a delay-lock loop:

\[ \boxed{ \text{Early / Prompt / Late Correlators} \rightarrow \text{Code Tracking Error} \rightarrow \text{DLL}. } \]

Code tracking supports pseudorange measurement.

4.1.6.78 Carrier Tracking

Carrier tracking estimates the received carrier phase/frequency.

Common concepts include:

Carrier tracking supports:

Loss of carrier lock can produce cycle slips.

4.1.6.79 GNSS Navigation Message

The receiver must decode navigation data containing information such as:

Therefore the receiver chain is not merely a ranging system:

\[ \boxed{ \text{Signal Acquisition} \rightarrow \text{Tracking} \rightarrow \text{Navigation Data} \rightarrow \text{Observables} \rightarrow \text{PVT Solution}. } \]

4.1.6.80 Position-Velocity-Time Solution

The standard navigation result is often called the PVT solution:

\[ \boxed{ PVT = \text{Position + Velocity + Time}. } \]

For spacecraft applications, useful output may be

\[ \boxed{ \mathbf z_{PVT} = \{ \mathbf r, \mathbf v, t, R, DOP, N_{sat}, status \}. } \]

The covariance and status information are particularly important when feeding the solution into a higher-level GNC estimator.

4.1.6.81 GNSS Integrity

Navigation software should determine not only the estimated state but also whether the solution is trustworthy.

Integrity functions may detect:

A residual for satellite \(i\) is

\[ \boxed{ \nu_i = \rho_i-\hat{\rho}_i. } \]

Measurements with unusually large residuals can be rejected or isolated.

4.1.6.82 RAIM

Receiver Autonomous Integrity Monitoring uses redundant satellite measurements to detect inconsistencies.

Conceptually,

\[ \boxed{ N_{sat}>N_{minimum} \rightarrow \text{Measurement Redundancy} \rightarrow \text{Fault Detection}. } \]

The precise satellite count required depends on the integrity algorithm and whether fault exclusion, external aiding, or additional constellations are available.

For spacecraft GNC, the broader lesson is:

\[ \boxed{ \text{Navigation Solution} \neq \text{Automatically Trusted Solution}. } \]

4.1.6.83 Outlier Rejection

An innovation-based consistency test can use

\[ \boxed{ d^2 = \mathbf y^T S^{-1} \mathbf y. } \]

If

\[ d^2>\gamma, \]

the measurement may be rejected.

Possible causes include:

4.1.6.84 Spoofing and Jamming

GNSS is based on weak radio-frequency signals and is therefore susceptible to interference.

Jamming

Jamming increases interference/noise and can prevent signal acquisition or tracking.

Spoofing

Spoofing introduces counterfeit or manipulated signals intended to cause an incorrect navigation solution.

For spacecraft engineering, protection can include:

The detailed protection architecture depends on mission requirements and receiver capabilities.

4.1.6.85 GNSS Fault Detection Using Dynamics

A spacecraft has predictable orbital dynamics.

Therefore GNSS can be checked against propagated spacecraft motion:

\[ \boxed{ \hat{\mathbf x}_{k|k-1} = f(\hat{\mathbf x}_{k-1}). } \]

Then compare

\[ \boxed{ \mathbf y_k = \mathbf z_{GNSS,k} - h(\hat{\mathbf x}_{k|k-1}). } \]

A sudden GNSS position jump inconsistent with spacecraft dynamics can be rejected.

This is particularly valuable for autonomous spacecraft.

4.1.6.86 GNSS Error Budget

A general pseudorange error budget can be written

\[ \boxed{ \begin{aligned} \delta\rho ={}& \delta\rho_{sat\,orbit} + \delta\rho_{sat\,clock} + \delta\rho_{receiver\,clock} \\ & + \delta\rho_{iono} + \delta\rho_{tropo} + \delta\rho_{multipath} \\ & + \delta\rho_{hardware} + \delta\rho_{thermal} + \delta\rho_{tracking} + \delta\rho_{noise}. \end{aligned} } \]

For spacecraft use, the relative importance of these terms depends strongly on altitude and signal geometry.

Navigation error then depends on both measurement errors and satellite geometry:

\[ \boxed{ \text{Measurement Error} + \text{Geometry} \rightarrow \text{Navigation Error}. } \]

4.1.6.87 User Equivalent Range Error

A useful conceptual range-error measure is User Equivalent Range Error, UERE.

If independent range-error contributions are approximated as uncorrelated,

\[ \boxed{ \sigma_{UERE} = \sqrt{ \sigma_{clock}^2+ \sigma_{orbit}^2+ \sigma_{iono}^2+ \sigma_{tropo}^2+ \sigma_{multipath}^2+ \sigma_{receiver}^2+ \cdots }. } \]

Then, approximately,

\[ \boxed{ \sigma_{position} \sim PDOP \, \sigma_{UERE}. } \]

This clearly separates two major GNSS concepts:

\[ \boxed{ \text{Range Measurement Quality} } \]

and

\[ \boxed{ \text{Satellite Geometry}. } \]

4.1.6.88 Position Error Covariance

For the linearized measurement model

\[ \mathbf y = H\delta\mathbf x + \mathbf v \]

with

\[ Cov(\mathbf v)=R, \]

the weighted least-squares state covariance is approximately

\[ \boxed{ P = (H^TR^{-1}H)^{-1}. } \]

This is more general than a simple DOP relation because individual measurements can have different uncertainties.

4.1.6.89 Correlated GNSS Errors

Not all GNSS errors are independent.

Examples of correlated errors include:

Therefore relative navigation covariance should include correlation.

If

\[ \mathbf r_{rel} = \mathbf r_C-\mathbf r_T, \]

then

\[ \boxed{ P_{rel} = P_C + P_T - P_{CT} - P_{TC}. } \]

Ignoring the cross-covariance terms can produce an incorrect estimate of relative-navigation uncertainty.

4.1.6.90 GNSS Sensor Model for Simulink — Solution Level

For a GNC-level model, the simplest implementation is:

True Spacecraft Position
          |
          v
     Position Bias
          |
          v
     Position Noise
          |
          v
      Quantisation
          |
          v
   Sample and Hold
          |
          v
        Delay
          |
          v
 GNSS Position Measurement


True Spacecraft Velocity
          |
          v
     Velocity Bias
          |
          v
     Velocity Noise
          |
          v
      Quantisation
          |
          v
   Sample and Hold
          |
          v
        Delay
          |
          v
 GNSS Velocity Measurement
  

Then:

\[ \boxed{ \mathbf r_m = \mathbf r+\mathbf b_r+\mathbf n_r } \] \[ \boxed{ \mathbf v_m = \mathbf v+\mathbf b_v+\mathbf n_v. } \]

This is appropriate when the GNSS receiver itself is not the object being designed.

4.1.6.91 GNSS Sensor Model for Simulink — Raw Measurement Level

A higher-fidelity architecture is:

GNSS Constellation States
          |
          v
Satellite Visibility / Earth Occultation
          |
          v
Spacecraft Antenna Geometry
          |
          v
Transmission-Time Calculation
          |
          v
Geometric Range / Range Rate
          |
          +-------------------------+
          |                         |
          v                         v
Satellite Clock               Receiver Clock
          |                         |
          +------------+------------+
                       |
                       v
              Propagation Errors
                       |
                       v
               Multipath / Bias
                       |
                       v
                  Add Noise
                       |
              +--------+--------+
              |        |        |
              v        v        v
         Pseudorange  Doppler  Carrier Phase
              |        |        |
              +--------+--------+
                       |
                       v
               Navigation Filter
                       |
                       v
               Position / Velocity
  

This model permits realistic testing of:

4.1.6.92 GNSS Constellation Simulator

For satellite \(i\), the simulator requires

\[ \boxed{ \mathbf r_i(t), \qquad \mathbf v_i(t). } \]

The spacecraft truth model provides

\[ \boxed{ \mathbf r_r(t), \qquad \mathbf v_r(t). } \]

Then

\[ \boxed{ R_i = \|\mathbf r_i-\mathbf r_r\| } \]

and

\[ \boxed{ \mathbf u_i = \frac{\mathbf r_i-\mathbf r_r} {R_i}. } \]

Range rate is

\[ \boxed{ \dot R_i = \mathbf u_i^T (\mathbf v_i-\mathbf v_r). } \]

These form the geometric basis of the simulated observables.

4.1.6.93 Example Pseudorange Measurement

Suppose the true geometric range is

\[ R=21\,000\,000\text{ m}. \]

Assume:

\[ c\delta t_r=30\text{ m}, \] \[ -c\delta t_s=-2\text{ m}, \] \[ I=4\text{ m}, \] \[ T=2\text{ m}, \]

and combined residual noise/multipath is

\[ 1\text{ m}. \]

Then

\[ \rho = 21\,000\,000 + 30 - 2 + 4 + 2 + 1. \]

Therefore,

\[ \boxed{ \rho = 21\,000\,035\text{ m}. } \]

This example demonstrates why the raw GNSS range is not simply geometric distance.

4.1.6.94 Example Clock Bias

Suppose the receiver clock is ahead by

\[ 100\text{ ns}. \]

Then

\[ \delta t_r = 100\times10^{-9}\text{ s}. \]

The corresponding pseudorange bias is approximately

\[ c\delta t_r = 299\,792\,458 \times 100\times10^{-9}. \]

Hence

\[ \boxed{ c\delta t_r \approx 29.98\text{ m}. } \]

A timing error that appears extremely small can therefore generate tens of metres of range error.

4.1.6.95 Example Doppler / Range Rate

Suppose the relative velocity projected onto the satellite LOS is

\[ \dot R=-1000\text{ m/s}. \]

For carrier wavelength

\[ \lambda=0.19\text{ m}, \]

the simplified Doppler magnitude is

\[ |f_D| = \frac{|\dot R|}{\lambda}. \]

Therefore,

\[ \boxed{ |f_D| \approx 5263\text{ Hz}. } \]

The sign depends on the adopted Doppler convention.

4.1.6.96 Example Relative GNSS Error

Suppose two independent absolute position solutions each have one-axis standard deviation

\[ \sigma_C = \sigma_T = 1\text{ m}. \]

If the errors are independent,

\[ \sigma_{rel} = \sqrt{ \sigma_C^2+\sigma_T^2 }. \]

Therefore,

\[ \boxed{ \sigma_{rel} = \sqrt2 \approx 1.41\text{ m}. } \]

Simply subtracting two metre-level independent position solutions does not produce centimetre-level relative navigation.

If their dominant errors are correlated and cancel, differential performance can be much better.

4.1.6.97 Example GNSS-to-Hill Transformation

Suppose GNSS provides

\[ \mathbf r_C^I,\quad \mathbf v_C^I \]

and

\[ \mathbf r_T^I,\quad \mathbf v_T^I. \]

First calculate

\[ \boxed{ \delta\mathbf r^I = \mathbf r_C^I-\mathbf r_T^I } \]

and

\[ \boxed{ \delta\mathbf v^I = \mathbf v_C^I-\mathbf v_T^I. } \]

Then transform position:

\[ \boxed{ \delta\mathbf r^H = C_I^H \delta\mathbf r^I. } \]

For velocity:

\[ \boxed{ \delta\mathbf v^H = C_I^H\delta\mathbf v^I - \boldsymbol{\omega}_{H/I}^H \times \delta\mathbf r^H. } \]

The resulting state can feed the RPO navigation/guidance system:

\[ \boxed{ \mathbf x_{RPO} = \begin{bmatrix} \delta\mathbf r^H\\ \delta\mathbf v^H \end{bmatrix}. } \]

4.1.6.98 Reading a GNSS Receiver Datasheet

For a spacecraft receiver, inspect at least the following.

Parameter Why It Matters
Supported constellations Satellite availability
Supported frequencies Ionospheric correction and precision
Tracking channels Number of simultaneous signals
Position accuracy Absolute navigation capability
Velocity accuracy Guidance/navigation performance
Timing accuracy Synchronization
Raw pseudorange output Advanced navigation processing
Carrier-phase output Precision relative navigation
Doppler output Velocity/range-rate estimation
\(C/N_0\) output Signal-quality monitoring
Update rate Navigation bandwidth
Latency Filter timing
Time to first fix Acquisition/recovery
Reacquisition time Recovery from blockage
Sensitivity Weak-signal capability
Maximum altitude Space-use compatibility
Maximum velocity Orbital dynamics compatibility
Maximum acceleration High-dynamic compatibility
Antenna interface RF integration
PPS output Timing synchronization
Data interface Avionics compatibility
Supply voltage Power-system compatibility
Power consumption Power budget
Mass Spacecraft mass budget
Dimensions Accommodation
Operating temperature Thermal compatibility
Radiation tolerance Mission radiation compatibility
Vibration/shock Launch qualification
EMC/EMI Spacecraft compatibility
Flight heritage Technology maturity
Export/regulatory constraints Procurement/integration consideration

4.1.6.99 GNSS Antenna Datasheet Parameters

The receiver alone is not enough. The antenna is part of the navigation sensor system.

Important parameters include:

Therefore:

\[ \boxed{ \text{GNSS Performance} = \text{Receiver} + \text{Antenna} + \text{RF Chain} + \text{Installation}. } \]

4.1.6.100 Antenna Placement

A GNSS antenna should have a clear view of the useful navigation-satellite directions.

Placement must consider:

For RPO spacecraft, additional complications can arise from the nearby target spacecraft.

4.1.6.101 RF Front-End Effects

Between antenna and digital navigation processor, the RF chain may contain:

These components can introduce:

Precision GNSS modelling may therefore include

\[ \boxed{ b_{RF} } \]

as part of the hardware error model.

4.1.6.102 GNSS Calibration

Calibration can include:

A generic calibrated observation is

\[ \boxed{ z_{cal} = f_{cal}(z_{raw},\mathbf p_{cal}). } \]

4.1.6.103 GNSS Timing and PPS

GNSS receivers can provide a precise timing output such as a pulse-per-second signal.

Conceptually,

\[ \boxed{ \text{GNSS Time} \rightarrow \text{PPS} \rightarrow \text{Spacecraft Clock Synchronization}. } \]

This can support:

4.1.6.104 GNSS Time Systems

GNSS constellations maintain their own system times.

The spacecraft software must carefully distinguish among quantities such as:

Time offsets and leap-second handling must be managed correctly when required by the interface.

This is especially important when measurements from multiple sensors and spacecraft are fused.

4.1.6.105 Quantisation

Receiver outputs are represented with finite digital resolution.

For a position component,

\[ \boxed{ x_q = \Delta x \operatorname{round} \left( \frac{x}{\Delta x} \right). } \]

For velocity,

\[ \boxed{ v_q = \Delta v \operatorname{round} \left( \frac{v}{\Delta v} \right). } \]

Quantisation is often small relative to other GNSS errors, but it should be checked against the required navigation accuracy.

4.1.6.106 Saturation and Interface Limits

Receiver output fields and internal tracking loops have finite ranges.

Possible limits include:

A complete model should ensure that simulated conditions remain within the hardware operating envelope.

4.1.6.107 Temperature Effects

Temperature can affect:

A simple receiver bias model is

\[ \boxed{ b(T) = b_0 + k_T(T-T_0). } \]

Clock behaviour can be particularly temperature sensitive depending on oscillator type.

4.1.6.108 Radiation Effects

Spaceborne GNSS receivers must survive the mission radiation environment.

Potential effects include:

The required tolerance depends on:

4.1.6.109 GNSS Receiver Reset and Reacquisition

A receiver reset may temporarily remove navigation measurements.

The sequence can be

\[ \boxed{ \text{Receiver Reset} \rightarrow \text{Signal Acquisition} \rightarrow \text{Tracking} \rightarrow \text{Navigation Data} \rightarrow \text{PVT Recovery}. } \]

The navigation filter must therefore survive a finite GNSS outage.

4.1.6.110 Cold, Warm and Hot Start

Receiver startup performance depends on what information remains available.

Conceptually:

Cold start

Little useful prior navigation information.

Warm start

Some timing/orbit information remains available.

Hot start

Good recent time, position, and satellite information is available.

The exact definitions are receiver-specific, but the general principle is:

\[ \boxed{ \text{Better Prior Knowledge} \rightarrow \text{Faster Acquisition}. } \]

4.1.6.111 Time to First Fix

TTFF is the time required after startup to obtain a valid navigation solution.

It depends on:

For autonomous spacecraft recovery, TTFF can be an important system-level requirement.

4.1.6.112 GNSS Measurement Validity Logic

A navigation measurement can be accepted only if relevant checks pass.

Conceptually,

\[ \boxed{ valid_{GNSS} = f ( N_{sat}, DOP, C/N_0, residuals, receiver\ status, age, integrity ). } \]

Possible rejection conditions include:

4.1.6.113 Innovation-Based GNSS Gating

Given predicted measurement

\[ \hat{\mathbf z} = h(\hat{\mathbf x}^{-}), \]

innovation

\[ \boxed{ \mathbf y = \mathbf z_{GNSS} - \hat{\mathbf z} } \]

and innovation covariance

\[ \boxed{ S = HP^-H^T+R, } \]

the normalized innovation squared is

\[ \boxed{ NIS = \mathbf y^TS^{-1}\mathbf y. } \]

If

\[ NIS>\gamma, \]

the measurement can be rejected or down-weighted.

4.1.6.114 GNSS Redundancy

Redundancy can exist at several levels:

Constellation redundancy

\[ GPS+Galileo+\cdots \]

Frequency redundancy

\[ f_1+f_2+\cdots \]

Antenna redundancy

\[ Antenna\ A+Antenna\ B \]

Receiver redundancy

\[ Receiver\ 1+Receiver\ 2. \]

A fault-tolerant spacecraft may use combinations of these depending on mission criticality.

4.1.6.115 Dual GNSS Receivers

Two independent receivers can provide redundancy.

A simple consistency residual is

\[ \boxed{ \Delta\mathbf r = \mathbf r_1-\mathbf r_2 } \]

and

\[ \boxed{ \Delta\mathbf v = \mathbf v_1-\mathbf v_2. } \]

If

\[ \|\Delta\mathbf r\|>\gamma_r \]

or

\[ \|\Delta\mathbf v\|>\gamma_v, \]

a fault may be declared.

However, common-mode GNSS errors can affect both receivers, so redundancy alone does not guarantee independent error detection.

4.1.6.116 GNSS Monte Carlo Model

A GNSS Monte Carlo simulation can randomize:

For run \(j\),

\[ \boxed{ \mathbf p_{GNSS}^{(j)} = \{ \sigma_\rho, \sigma_{\dot\rho}, b_c, d_c, b_{RF}, \tau, \delta t, \ldots \}^{(j)}. } \]

Outputs can include:

4.1.6.117 GNSS Failure Modes

Important failure modes include:

A GNC simulation should distinguish between

\[ \boxed{ \text{Measurement Unavailable} } \]

and

\[ \boxed{ \text{Measurement Available but Wrong}. } \]

The latter can be substantially more dangerous.

4.1.6.118 GNSS FDIR

A practical GNSS fault-detection chain can use:

\[ \boxed{ \text{Receiver Health} } \] \[ \downarrow \] \[ \boxed{ \text{Satellite Count} } \] \[ \downarrow \] \[ \boxed{ \text{DOP Check} } \] \[ \downarrow \] \[ \boxed{ C/N_0\text{ Check} } \] \[ \downarrow \] \[ \boxed{ \text{Timestamp / Age Check} } \] \[ \downarrow \] \[ \boxed{ \text{Measurement Residual Check} } \] \[ \downarrow \] \[ \boxed{ \text{Dynamics Consistency} } \] \[ \downarrow \] \[ \boxed{ \text{Accept / Reject GNSS}. } \]

4.1.6.119 GNSS for Orbit Determination

GNSS position and velocity measurements can be combined with orbital dynamics to estimate spacecraft orbit.

A continuous dynamics model is

\[ \boxed{ \dot{\mathbf r} = \mathbf v } \] \[ \boxed{ \dot{\mathbf v} = -\frac{\mu}{r^3}\mathbf r + \mathbf a_{pert} + \mathbf a_{control}. } \]

GNSS provides measurement updates:

\[ \boxed{ \mathbf z_k = h(\mathbf x_k) + \mathbf v_k. } \]

This creates an onboard orbit-determination filter.

4.1.6.120 GNSS and Autonomous Navigation

GNSS can reduce dependence on ground-based orbit determination.

Conceptually,

\[ \boxed{ \text{GNSS} + \text{Onboard Dynamics Model} \rightarrow \text{Autonomous Orbit Determination}. } \]

This can support:

4.1.6.121 GNSS During Thruster Maneuvers

During a spacecraft maneuver,

\[ \boxed{ \mathbf a_{control} \neq0. } \]

GNSS can measure the resulting change in spacecraft trajectory and velocity.

A navigation filter that assumes purely unforced orbital dynamics while a thruster is firing may show large innovations.

Therefore the estimator should know commanded or estimated maneuver acceleration when appropriate:

\[ \boxed{ \dot{\mathbf v} = \mathbf a_{gravity} + \mathbf a_{pert} + \mathbf a_{thruster}. } \]

4.1.6.122 GNSS and Maneuver Reconstruction

GNSS velocity observations can help estimate achieved \(\Delta v\).

Approximately,

\[ \boxed{ \Delta\mathbf v = \mathbf v_{after} - \mathbf v_{before} } \]

after accounting for natural orbital dynamics over the interval.

This can support:

4.1.6.123 GNSS and Formation Flying

For two or more spacecraft,

\[ \boxed{ \text{GNSS} \rightarrow \text{Absolute Orbit} } \]

and differential processing can provide

\[ \boxed{ \text{Differential GNSS} \rightarrow \text{Relative Orbit}. } \]

This supports:

4.1.6.124 GNSS vs LiDAR for RPO

GNSS and LiDAR solve different parts of the navigation problem.

Property GNSS LiDAR
Reference Navigation satellites Target spacecraft
Absolute position Excellent role Usually no
Direct target-relative range No, unless derived cooperatively Yes
Long-range usefulness High Sensor dependent
Close-range precision Limited by GNSS architecture Potentially very high
Target cooperation For differential GNSS, generally useful/required Depends on LiDAR architecture
Lighting dependence Low Active sensor
Line of sight to target Not required for absolute GNSS Required
GNSS visibility Required Not required
Relative pose Generally not direct Can support with suitable processing

For RPO:

\[ \boxed{ \text{GNSS} + \text{LiDAR} } \]

can be complementary.

4.1.6.125 GNSS vs Camera for RPO

A camera can provide direct line-of-sight and target-feature information.

GNSS provides absolute or cooperative relative navigation.

A possible transition is

\[ \boxed{ \text{Far Range: GNSS} \rightarrow \text{Mid Range: GNSS + Camera} \rightarrow \text{Close Range: Camera / LiDAR} \rightarrow \text{Docking Sensors}. } \]

The exact transition distances depend on mission and hardware.

4.1.6.126 GNSS vs IMU

GNSS:

\[ \boxed{ \text{Absolute Position / Velocity / Time} } \]

IMU:

\[ \boxed{ \text{Angular Rate + Specific Force}. } \]

GNSS advantages:

GNSS limitations:

IMU advantages:

IMU limitation:

\[ \boxed{ \text{Bias Integration} \rightarrow \text{Growing Navigation Error}. } \]

Therefore,

\[ \boxed{ GNSS+IMU } \]

is a powerful combination.

4.1.6.127 GNSS vs Ground-Based Tracking

Ground tracking can provide high-quality orbit determination but depends on external infrastructure and communication opportunities.

GNSS enables onboard autonomous navigation.

Conceptually:

\[ \boxed{ \text{Ground Tracking} \rightarrow \text{Externally Supported Navigation} } \]

while

\[ \boxed{ \text{GNSS} \rightarrow \text{Onboard Autonomous Navigation}. } \]

Many missions can use both.

4.1.6.128 GNSS Performance Metrics

Useful performance metrics include:

Position accuracy

\[ \sigma_r \]

Velocity accuracy

\[ \sigma_v \]

Timing accuracy

\[ \sigma_t \]

Relative position accuracy

\[ \sigma_{r,rel} \]

Relative velocity accuracy

\[ \sigma_{v,rel} \]

Availability

\[ \boxed{ A = \frac{T_{valid}}{T_{total}}. } \]

Continuity

Ability to maintain service without interruption over the required operation.

Integrity

Ability to detect when navigation information should not be trusted.

TTFF

Time to first valid fix.

Update rate

\[ f_{GNSS}. \]

Latency

\[ \tau_{GNSS}. \]

These should be treated separately rather than collapsing GNSS performance into one “accuracy” number.

4.1.6.129 GNSS Requirements for Spacecraft GNC

A GNSS requirement set can contain:

\[ \boxed{ \sigma_r \le \sigma_{r,req} } \] \[ \boxed{ \sigma_v \le \sigma_{v,req} } \] \[ \boxed{ f_{update} \ge f_{req} } \] \[ \boxed{ \tau \le \tau_{max} } \] \[ \boxed{ A \ge A_{req}. } \]

For RPO, also include:

\[ \boxed{ \sigma_{r,rel} \le \sigma_{r,rel,req} } \] \[ \boxed{ \sigma_{v,rel} \le \sigma_{v,rel,req}. } \]

These requirements should be derived from guidance, control, safety, and mission-phase needs.

4.1.6.130 Selecting GNSS for an RPO Mission

For a rendezvous spacecraft, important questions include:

  1. What is the absolute position requirement?
  2. What is the absolute velocity requirement?
  3. What relative position accuracy is required?
  4. What relative velocity accuracy is required?
  5. At what separation is GNSS expected to be used?
  6. Will both spacecraft carry GNSS receivers?
  7. Can they exchange raw GNSS measurements?
  8. Is differential code navigation sufficient?
  9. Is carrier-phase relative navigation required?
  10. Are raw pseudorange measurements available?
  11. Are raw carrier-phase measurements available?
  12. Is Doppler available?
  13. Are measurement timestamps sufficiently precise?
  14. Can both receivers observe enough common satellites?
  15. Are the receivers synchronized?
  16. What are the expected data-link latency and packet-loss rates?
  17. What happens when ambiguity resolution is lost?
  18. When does the system transition to camera or LiDAR?
  19. What is the navigation architecture during GNSS outage?
  20. Is GNSS safety-critical or only aiding?

This is much more meaningful than selecting a receiver solely from its advertised standalone position accuracy.

4.1.6.131 GNSS Error Allocation for RPO

For an RPO navigation system, the total relative-state uncertainty can be conceptually decomposed as

\[ \boxed{ P_{RPO} = P_{GNSS} + P_{timing} + P_{frame} + P_{crosslink} + P_{dynamics} + P_{processing} +\cdots } \]

with correlations treated explicitly where necessary.

Possible contributors include:

Thus receiver datasheet accuracy alone is not the full RPO navigation error.

4.1.6.132 Measurement Handover in RPO

A robust RPO navigation architecture may change sensors with range.

Conceptually:

\[ \boxed{ \text{Far RPO} \rightarrow \text{GNSS} } \] \[ \boxed{ \text{Mid RPO} \rightarrow \text{GNSS + Relative Vision} } \] \[ \boxed{ \text{Final Approach} \rightarrow \text{LiDAR / Camera} } \] \[ \boxed{ \text{Capture} \rightarrow \text{Precision Relative Pose}. } \]

During transition, the navigation filter can overlap sensors rather than switching instantaneously:

\[ \boxed{ \text{Old Sensor + New Sensor} \rightarrow \text{Cross-Validation} \rightarrow \text{Handover}. } \]

4.1.6.133 GNSS Covariance During Sensor Handover

The navigation filter should not treat GNSS and close-range sensors as having identical uncertainty.

For GNSS,

\[ R_{GNSS}. \]

For LiDAR,

\[ R_{LiDAR}. \]

For vision,

\[ R_{vision}. \]

The filter weights measurements through their covariance.

Conceptually:

\[ \boxed{ R_{sensor} \downarrow \Rightarrow \text{Higher Measurement Weight} } \]

provided the covariance model is credible.

4.1.6.134 GNSS Measurement Age

The measurement age at the time it is used is

\[ \boxed{ t_{age} = t_{current} - t_{measurement}. } \]

A validity rule may require

\[ \boxed{ t_{age} < t_{age,max}. } \]

This is especially important when receiving target GNSS data through an inter-spacecraft link.

4.1.6.135 Target-State Propagation for Delayed Relative GNSS

Suppose target state information arrives with delay \(\tau\).

Instead of directly using the stale target state, propagate it to the current epoch:

\[ \boxed{ \hat{\mathbf x}_T(t) = \Phi(t,t-\tau) \hat{\mathbf x}_T(t-\tau) } \]

for a suitable state-transition model.

Then form

\[ \boxed{ \mathbf r_{rel}(t) = \mathbf r_C(t) - \hat{\mathbf r}_T(t). } \]

This is preferable to subtracting asynchronous state vectors without correction.

4.1.6.136 GNSS + Relative Navigation Filter

A representative RPO state can be

\[ \boxed{ \mathbf x = \begin{bmatrix} \delta\mathbf r\\ \delta\mathbf v\\ \mathbf b \end{bmatrix}. } \]

GNSS can provide

\[ \boxed{ \mathbf z_G = \begin{bmatrix} \delta\mathbf r_G\\ \delta\mathbf v_G \end{bmatrix}. } \]

A LiDAR may provide

\[ \boxed{ z_L = \rho_{rel}. } \]

A camera may provide

\[ \boxed{ \mathbf z_C = \begin{bmatrix} azimuth\\ elevation \end{bmatrix}. } \]

Then:

\[ \boxed{ \text{GNSS} + \text{LiDAR} + \text{Camera} \rightarrow \text{Relative Navigation EKF} \rightarrow \delta\hat{\mathbf r}, \delta\hat{\mathbf v}. } \]

4.1.6.137 GNSS Measurement Correlation in Sensor Fusion

A subtle but important issue arises if a receiver's position and velocity outputs come from the same internal GNSS filter.

Their errors may be correlated.

Therefore,

\[ \boxed{ R_{GNSS} \neq \operatorname{diag} ( \sigma_x^2, \sigma_y^2, \sigma_z^2, \sigma_{v_x}^2, \sigma_{v_y}^2, \sigma_{v_z}^2 ) } \]

in general.

If the receiver supplies a covariance matrix, using it can provide a more faithful measurement model.

4.1.6.138 GNSS Error in Different Frames

Suppose GNSS covariance is available in ECEF:

\[ P^{ECEF}. \]

To express it in another frame,

\[ \boxed{ P^{H} = C_{ECEF}^{H} P^{ECEF} (C_{ECEF}^{H})^T. } \]

This is essential when comparing navigation accuracy against RPO requirements specified as radial, along-track, and cross-track components.

4.1.6.139 Radial, Along-Track and Cross-Track Errors

For spacecraft operations, position error is often more meaningful in a local orbital frame.

Define

\[ \boxed{ \delta\mathbf r^H = \begin{bmatrix} \delta r_R\\ \delta r_T\\ \delta r_N \end{bmatrix} } \]

where the exact axis labels depend on the adopted Hill/LVLH convention.

Then the navigation requirement can be expressed separately along each axis:

\[ \boxed{ \sigma_R,\quad \sigma_T,\quad \sigma_N. } \]

This is often more useful than quoting a single 3-D RMS number.

4.1.6.140 GNSS Availability Analysis

A mission-level GNSS simulation should propagate:

  1. spacecraft orbit,
  2. GNSS constellation,
  3. Earth occultation,
  4. antenna orientation,
  5. antenna pattern,
  6. signal threshold.

At each time step:

\[ \boxed{ N_{visible}(t) = \sum_iV_i(t). } \]

Then evaluate:

\[ \boxed{ N_{visible}(t)\ge N_{required}. } \]

From this, compute:

4.1.6.141 Common Satellite Availability for RPO

Differential GNSS requires common tracked satellites.

Define

\[ S_C \]

as the set tracked by the chaser and

\[ S_T \]

as the set tracked by the target.

Then

\[ \boxed{ S_{common} = S_C\cap S_T. } \]

The number of common satellites is

\[ \boxed{ N_{common} = |S_C\cap S_T|. } \]

For precision relative navigation, this can be more important than the total number of satellites tracked by either spacecraft independently.

4.1.6.142 Common-Satellite Geometry

Having many common satellites is not sufficient if their geometry is poor.

For relative navigation, construct a differential geometry matrix

\[ H_{rel}. \]

The relative-state covariance depends approximately on

\[ \boxed{ P_{rel} \propto (H_{rel}^T R^{-1} H_{rel})^{-1}. } \]

Thus:

\[ \boxed{ \text{Common Satellite Count} + \text{Common Satellite Geometry} \rightarrow \text{Relative GNSS Performance}. } \]

4.1.6.143 Integer Ambiguity State in Relative Navigation Filter

For carrier-phase differential navigation, ambiguities may be included in the state:

\[ \boxed{ \mathbf x = \begin{bmatrix} \mathbf b\\ \dot{\mathbf b}\\ \mathbf N \end{bmatrix}. } \]

The filter may first obtain a float solution, where ambiguity estimates are real valued.

Then an integer ambiguity-resolution algorithm attempts to determine the integer vector.

Conceptually:

\[ \boxed{ \text{Float Ambiguities} \rightarrow \text{Integer Search} \rightarrow \text{Fixed Solution}. } \]

4.1.6.144 Float vs Fixed Carrier-Phase Solution

Float solution

\[ \boxed{ N_i\in\mathbb R } \]

during estimation.

Fixed solution

\[ \boxed{ N_i\in\mathbb Z } \]

after successful integer resolution.

A fixed solution can provide much higher relative precision, but an incorrect ambiguity fix can cause a serious navigation error.

Therefore ambiguity validation is essential.

4.1.6.145 Loss of Ambiguity Fix

During:

the system may lose fixed ambiguities.

Navigation may transition:

\[ \boxed{ \text{Fixed} \rightarrow \text{Float} \rightarrow \text{Code-Based / Other Sensor Aiding}. } \]

A robust RPO architecture must define how guidance and safety functions behave during such degradation.

4.1.6.146 GNSS and Collision Safety

For RPO, navigation uncertainty directly affects collision risk.

If the relative estimate is

\[ \hat{\mathbf r}_{rel} \]

with covariance

\[ P_r, \]

the guidance system should not treat the estimated range alone as perfect truth.

Instead:

\[ \boxed{ \text{Relative State} + \text{Navigation Covariance} \rightarrow \text{Safety Logic}. } \]

This can affect:

4.1.6.147 GNSS and Hold-Point Logic

Suppose an RPO hold point requires

\[ \|\mathbf r_{rel}-\mathbf r_{hold}\| < r_{tol} \]

and

\[ \|\mathbf v_{rel}\| < v_{tol}. \]

Using noisy GNSS measurements directly can cause repeated threshold crossings.

Therefore practical logic may use:

For example,

\[ \boxed{ \text{Hold Valid} = (position\ condition) \land (velocity\ condition) \land (covariance\ condition) \land (dwell\ condition). } \]

4.1.6.148 GNSS and Sensor Handover Readiness

Before switching from GNSS-dominated navigation to close-range sensing, the spacecraft can require:

\[ \boxed{ valid_{GNSS}=1 } \] \[ \boxed{ valid_{relative\ sensor}=1 } \] \[ \boxed{ \|\mathbf r_{GNSS}-\mathbf r_{relative}\| < r_{consistency} } \]

and possibly

\[ \boxed{ \|\mathbf v_{GNSS}-\mathbf v_{relative}\| < v_{consistency}. } \]

This creates a controlled sensor handover rather than an abrupt mode switch.

4.1.6.149 Recommended GNSS Simulation Fidelity for GNC

For an educational GNC website, it is useful to distinguish three levels.

Level 1 — Navigation-Solution Sensor Model

Use:

\[ \boxed{ \mathbf r_m = \mathbf r+\mathbf n_r } \] \[ \boxed{ \mathbf v_m = \mathbf v+\mathbf n_v. } \]

Add:

Best for initial GNC simulations.

Level 2 — Geometry-Aware GNSS Model

Add:

Generate pseudorange and Doppler.

Best for realistic spacecraft navigation studies.

Level 3 — Precision Raw-Observable Model

Add:

Best for:

\[ \boxed{ \text{Precision Formation Flying / RPO / Differential GNSS}. } \]

4.1.6.150 Recommended Simulink Architecture for Spacecraft GNSS

A complete simulation can follow:

                    GNSS CONSTELLATION
                           |
                           v
                 Satellite r_i, v_i, clock
                           |
                           v
SPACECRAFT TRUTH ---> Visibility Geometry
 r, v, attitude             |
                           v
                    Earth Occultation
                           |
                           v
                    Antenna Pattern
                           |
                           v
                 Transmission-Time Solver
                           |
                           v
                Geometric Range / Doppler
                           |
          +----------------+----------------+
          |                |                |
          v                v                v
   Satellite Clock   Receiver Clock   Propagation Effects
          |                |                |
          +----------------+----------------+
                           |
                           v
                    Hardware Biases
                           |
                           v
                      Multipath
                           |
                           v
                    Measurement Noise
                           |
             +-------------+-------------+
             |             |             |
             v             v             v
        Pseudorange      Doppler     Carrier Phase
             |             |             |
             +-------------+-------------+
                           |
                           v
                    GNSS Navigation
                           |
                           v
                  Position / Velocity
                           |
                           v
                     EKF / MEKF
                           |
                           v
                Spacecraft Navigation
                           |
                           v
                       Guidance
                           |
                           v
                       Control
  

For RPO:

Chaser GNSS -----------------------+
                                   |
                                   v
                              Time Alignment
                                   |
Target GNSS ---> Crosslink --------+
                                   |
                                   v
                         Differential Processing
                                   |
                                   v
                       Relative Position / Velocity
                                   |
                                   v
                       Hill / LVLH Transformation
                                   |
                                   v
                        Relative Navigation EKF
                              ^          ^
                              |          |
                           Camera      LiDAR
                              |          |
                              +----+-----+
                                   |
                                   v
                             RPO Guidance
                                   |
                                   v
                          Thruster Controller
  

4.1.6.151 Complete Spacecraft GNSS Measurement Model

A compact raw pseudorange model is

\[ \boxed{ \begin{aligned} \rho_i ={}& \| \mathbf r_i(t_{tx}) - \mathbf r_A(t_{rx}) \| \\ & + c [ \delta t_r(t_{rx}) - \delta t_i(t_{tx}) ] \\ & + I_i + T_i + \Delta\rho_{rel,i} + \Delta\rho_{orbit,i} \\ & + \Delta\rho_{mp,i} + b_{RF,i} + n_{\rho,i}. \end{aligned} } \]

A carrier-phase model in metres is

\[ \boxed{ \begin{aligned} L_i ={}& R_i + c(\delta t_r-\delta t_i) - I_i + T_i \\ & + \lambda_iN_i + b_{\phi,i} + n_{\phi,i}. \end{aligned} } \]

A range-rate model is

\[ \boxed{ \dot\rho_i = \mathbf u_i^T (\mathbf v_i-\mathbf v_A) + c(\dot{\delta t}_r-\dot{\delta t}_i) + b_{\dot\rho,i} + n_{\dot\rho,i}. } \]

Together:

\[ \boxed{ \mathbf z_i = \begin{bmatrix} \rho_i\\ L_i\\ \dot\rho_i \end{bmatrix}. } \]

4.1.6.152 Complete Solution-Level GNSS Model

When receiver internals are outside the simulation scope:

\[ \boxed{ \mathbf r_m = \mathbf r_{true} + \mathbf b_r + \mathbf n_r } \] \[ \boxed{ \mathbf v_m = \mathbf v_{true} + \mathbf b_v + \mathbf n_v } \]

followed by:

\[ \boxed{ \text{Quantisation} \rightarrow \text{Sampling} \rightarrow \text{Latency} \rightarrow \text{Validity Logic}. } \]

A practical measurement packet is

\[ \boxed{ \mathcal Z_{GNSS} = \{ \mathbf r_m, \mathbf v_m, t_m, R_{GNSS}, N_{sat}, DOP, valid \}. } \]

4.1.6.153 Complete GNSS-to-GNC Chain

The full spacecraft chain is:

\[ \boxed{ \text{GNSS Constellations} } \] \[ \downarrow \] \[ \boxed{ \text{Navigation RF Signals} } \] \[ \downarrow \] \[ \boxed{ \text{Spacecraft GNSS Antenna} } \] \[ \downarrow \] \[ \boxed{ \text{RF Front End} } \] \[ \downarrow \] \[ \boxed{ \text{Acquisition + Tracking} } \] \[ \downarrow \] \[ \boxed{ \text{Pseudorange + Doppler + Carrier Phase} } \] \[ \downarrow \] \[ \boxed{ \text{PVT / Raw Measurement Navigation Filter} } \] \[ \downarrow \] \[ \boxed{ \mathbf r,\mathbf v,t,R } \] \[ \downarrow \] \[ \boxed{ \text{Spacecraft Navigation Filter} } \] \[ \downarrow \] \[ \boxed{ \hat{\mathbf r}, \hat{\mathbf v} } \] \[ \downarrow \] \[ \boxed{ \text{Guidance} } \] \[ \downarrow \] \[ \boxed{ \text{Control} } \] \[ \downarrow \] \[ \boxed{ \text{Actuators} } \] \[ \downarrow \] \[ \boxed{ \text{Spacecraft Motion}. } \]

For cooperative RPO:

\[ \boxed{ \text{Chaser GNSS} + \text{Target GNSS} + \text{Crosslink} } \] \[ \downarrow \] \[ \boxed{ \text{Differential GNSS} } \] \[ \downarrow \] \[ \boxed{ \delta\mathbf r,\delta\mathbf v } \] \[ \downarrow \] \[ \boxed{ \text{Relative Navigation Filter} } \] \[ \downarrow \] \[ \boxed{ \text{RPO Guidance + Collision Safety} } \] \[ \downarrow \] \[ \boxed{ \text{Thruster Commands}. } \]

4.1.6.154 Key Equations

Geometric range

\[ \boxed{ R_i = \|\mathbf r_i-\mathbf r_r\| } \]

LOS unit vector

\[ \boxed{ \mathbf u_i = \frac{\mathbf r_i-\mathbf r_r} {\|\mathbf r_i-\mathbf r_r\|} } \]

Pseudorange

\[ \boxed{ \rho_i = R_i + c(\delta t_r-\delta t_i) + I_i + T_i + \cdots } \]

Carrier phase

\[ \boxed{ L_i = R_i + c(\delta t_r-\delta t_i) - I_i + T_i + \lambda N_i + \cdots } \]

Range rate

\[ \boxed{ \dot R_i = \mathbf u_i^T (\mathbf v_i-\mathbf v_r) } \]

Doppler

\[ \boxed{ f_D \approx -\frac{\dot R}{\lambda} } \]

Linearized measurement

\[ \boxed{ \Delta\boldsymbol{\rho} = H\Delta\mathbf x + \boldsymbol{\epsilon} } \]

Weighted least squares

\[ \boxed{ \Delta\hat{\mathbf x} = (H^TWH)^{-1} H^TW \Delta\boldsymbol{\rho} } \]

Covariance

\[ \boxed{ P = (H^TR^{-1}H)^{-1} } \]

Relative position

\[ \boxed{ \mathbf r_{rel} = \mathbf r_C-\mathbf r_T } \]

Relative covariance

\[ \boxed{ P_{rel} = P_C+P_T-P_{CT}-P_{TC} } \]

Single difference

\[ \boxed{ \Delta\rho_{AB}^{i} = \rho_A^i-\rho_B^i } \]

Double difference

\[ \boxed{ \nabla\Delta L_{AB}^{ij} = (L_A^i-L_B^i) - (L_A^j-L_B^j) } \]

Hill-frame relative position

\[ \boxed{ \delta\mathbf r^H = C_I^H \delta\mathbf r^I } \]

Hill-frame relative velocity

\[ \boxed{ \delta\mathbf v^H = C_I^H\delta\mathbf v^I - \boldsymbol{\omega}_{H/I}^H \times \delta\mathbf r^H } \]

GNSS/INS fusion

\[ \boxed{ \text{IMU Propagation} + \text{GNSS Absolute Update} \rightarrow \text{Navigation Estimate} } \]

Differential GNSS for RPO

\[ \boxed{ \text{Chaser Raw GNSS} + \text{Target Raw GNSS} \rightarrow \text{Common-Satellite Differencing} \rightarrow \delta\mathbf r,\delta\mathbf v } \]

4.1.6.155 Final Engineering Perspective

The most important conceptual point is:

\[ \boxed{ \text{GNSS Receiver} \neq \text{Position Sensor Only}. } \]

The fundamental measurements are radio-navigation observables:

\[ \boxed{ \rho,\quad L,\quad D } \]

from which the receiver estimates

\[ \boxed{ \mathbf r,\quad \mathbf v,\quad t. } \]

The accuracy of this solution depends on

\[ \boxed{ \text{Signal Quality} + \text{Satellite Geometry} + \text{Clock Errors} + \text{Orbit Errors} + \text{Propagation} + \text{Antenna} + \text{Receiver Processing}. } \]

For spacecraft:

\[ \boxed{ \text{Spacecraft Attitude} \rightarrow \text{Antenna Visibility} \rightarrow \text{Tracked Satellites} \rightarrow \text{Geometry} \rightarrow \text{GNSS Performance}. } \]

For RPO, an even more important distinction is:

\[ \boxed{ \text{Two Independent GNSS PVT Solutions} \neq \text{Precision Differential GNSS}. } \]

Precision cooperative relative navigation can exploit:

\[ \boxed{ \text{Common Satellites} + \text{Raw Measurements} + \text{Accurate Timing} + \text{Carrier Phase} + \text{Error Correlation} + \text{Integer Ambiguity Resolution}. } \]

And the practical RPO navigation architecture becomes:

\[ \boxed{ \text{GNSS / Differential GNSS} \rightarrow \text{Far-Range Relative Navigation} } \] \[ \downarrow \] \[ \boxed{ \text{GNSS + Camera / LiDAR} \rightarrow \text{Mid-Range Sensor Fusion} } \] \[ \downarrow \] \[ \boxed{ \text{Precision Relative Sensors} \rightarrow \text{Final Approach / Capture}. } \]

This makes GNSS not merely a position source, but a fundamental part of the spacecraft's navigation, timing, orbit determination, relative navigation, sensor-fusion, autonomy, and RPO architecture.