Introduction

Besides positioning and navigation, global navigation satellite systems (GNSSs) provide a reliable and easily accessible time and frequency reference. Permanent synchronization of the respective GNSS time scales to Coordinated Universal Time (UTC) at the nanosecond level guarantees users excellent long-term time and frequency stability (Defraigne 2017). However, the short-term stability provided by GNSS signals in common time transfer applications is limited by both the broadcast ephemeris accuracy and pseudorange measurements errors. To cope with this limitation, oscillators with a sufficient short-term stability can be combined with the long-term stability of GNSS time to create a GNSS-disciplined oscillator (Lombardi 2008, 2016).

Over the last years, chip-scale atomic clocks (CSACs) have emerged as small and low-power oscillators (Lutwak et al. 2007; Lutwak 2011). The short-term stability of common CSACs ranks between oven-controlled oscillator (OCXOs) and comparably low-performance temperature-controlled oscillators (TCXOs) used in many mass-market devices. Previous studies have assessed various aspects and use cases when employing a CSACs as external frequency reference for a GNSS receiver. Several benefits on the navigation solution can be observed, such as better vertical stability and the possibility to calculate a position even in unreliable environments with only three satellites in view (Fernández et al. 2017; Bruggemann et al. 2006). A clock ensemble consisting of CSACs and an Evacuated Miniature Crystal Oscillator (EMXO) was presented by Van Buren et al. (2019). The authors describe an approach to combine the CSAC’s short-term stability, the mid-term stability of the EMXO and the long-term stability provided by GNSS to create a stable time reference for small satellites. Littleton-Strand et al. (2021) investigated disciplining and phase measurement of a CSAC via a pulse per second (PPS) with a multi-band GNSS receiver, and compared the timing performance to a rubidium clock. While the CSAC was limited by the 1PPS resolution of the internal phase meter, it showed a time prediction and hold-over performance comparable to the rubidium clock when using a linear prediction model. Cassel et al. (2022) investigated pseudorange and Doppler positioning for LEO signals of opportunity when using a CSAC as frequency reference for the receiver. The authors concluded that the short-term frequency stability of the local oscillator only marginally affects pseudorange positioning, but has a significant impact on Doppler positioning performance.

Besides the hardware specifications and limitations of both clock and GNSS receiver, the precision of the real-time clock determination is a limiting factor for the timing performance. It has been demonstrated on the example of the Sentinel-6A spacecraft that nanosecond-level precision is possible using GNSS code and carrier phase measurements in combination with broadcast ephemerides (Kunzi and Montenbruck 2022). Using precise point positioning (PPP; Malys and Jensen 1990; Zumberge et al. 1997; Kouba et al. 2017) techniques in combination with broadcast ephemerides, Carlin et al. (2022) demonstrated real-time Coordinated Universal Time (UTC) and GNSS time access, with accuracies of 1.8 ns for GPS and 2.5 ns for Galileo when working with calibrated receivers.

This study presents a setup for a GNSS-disciplined CSAC using carrier phase measurements and characterizes the performance of this system as a time and frequency reference. In detail, a Microsemi SA.45 s CSAC and a Septentrio Mosaic-T multi-constellation, multi-frequency GNSS receiver are used to digitally steer the CSAC’s frequency with respect to GNSS broadcast time. In the subsequent section, the employed methodology is described with focus on the hardware setup, the frequency control algorithm, and the navigation process. Thereafter, results of selected test cases are described and discussed, before presenting a summary and conclusions.

Methodology

For the clock steering experiment, the CSAC’s 10 MHz output serves as a frequency reference for the GNSS receiver, replacing the receiver’s internal oscillator. In contrast to previous studies, which use code-based navigation solutions obtained directly from the GNSS receiver, the pseudorange and carrier phase measurements are forwarded to a separate navigation filter. By performing PPP with broadcast ephemerides, the filter is able to calculate real-time decimeter-level navigation solutions. The estimated clock offset and drift then serve as input signal for a software controller, which calculates steering commands to drive the CSAC’s phase and frequency offsets towards zero. The overall experiment setup forms a closed-loop system as depicted in Fig. 1. In this architecture, the estimation and control problem are separated and solved by independent algorithms, known as the separation principle (Koppang and Leland 1999; Sehr and Bitmead 2019). The experiment is performed in real time and evaluated in post-processing against a precise solution.

Fig.1
figure 1

Experiment schematics showing the closed-loop CSAC steering process

Hardware setup

Three main hardware components are used in the previously described setup: the GNSS receiver chain, the CSAC, and a separate processing unit, which hosts the navigation filter and controller software. For this experiment, a Septentrio Mosaic-T GNSS timing receiver was chosen. It provides multi-frequency GPS and Galileo measurements needed to form ionosphere-free signal combinations. To avoid the need for differential code biases (DCBs), only the respective clock reference signals are used, i.e., GPS L1/L2 P(Y) and Galileo E1/E5a (GPS ICD 2022; Galileo ICD 2021). Note that the Mosaic-T supports GPS L1/L2 P(Y) via semi-codeless tracking. The timing version of the Septentrio Mosaic receiver provides a 10 MHz input, which is required to use an external oscillator as frequency reference. A Leica AR25 choke-ring antenna was used for GNSS signal reception, placed on a roof with an open-sky view down to low elevations.

As the external oscillator, a Microsemi SA.45 s CSAC with a nominal frequency of 10 MHz was chosen. With a power consumption of around 120 mW during operation and radiation tolerance up to a total ionizing dose of 20 krad, this oscillator supports a wide range of different use cases ranging from terrestrial to space applications (Microchip Technology Inc. 2019). The oscillator locks to half the cesium atom frequency at 4.6 GHz. In an internal steering process, this highly accurate frequency reference is used to steer a TXCO, improving its stability by four to five orders of magnitude (Microchip Technology Inc. 2021b). For the resulting 10 MHz frequency output, an Allan deviation (ADEV) of \(3\cdot {10}^{-10}\mathrm{ s}\) at time intervals of 1 s and improving to \(1\cdot {10}^{-11}\mathrm{ s}\) at 1000 s is specified.

To control the clock phase and frequency, the CSAC offers three different interfaces: The phase can be directly controlled via the 1 pulse per second (PPS) input interface with a 100 ns resolution of the internal phase meter. Furthermore, an analog interface is provided, which accepts a voltage input to steer the clock’s frequency. As a third alternative, a digital interface allows to send frequency steering commands via a serial connection. For this study, the digital interface is used to directly control the clock using the phase and frequency information provided by the navigation filter. The internal frequency steering has a resolution of \({10}^{-12}\) for the fractional frequency change, but accepts commands with a resolution of \({10}^{-15}\) and allows to accumulate smaller steering increments. This renders the digital interface the most precise of the three external steering methods for the CSAC. The digital steering range is limited to \(\pm 2\cdot {10}^{-8}\), which corresponds to a maximum frequency offset of 20 ns/s or 6 m/s.

Frequency control

To combine the short-term stability of the CSAC and the long-term stability of GNSS broadcast time, the CSAC frequency is controlled in a closed loop based on the measurements of a GNSS receiver connected to the clock (Fig. 1). Thus, the controller aims to remove the offset of CSAC clock phase based on estimates of the instantaneous clock state obtained from the navigation filter. More specifically, the phase is aligned with the estimated GNSS broadcast time by steering the clock’s frequency.

This study solves the control problem using a time-discrete linear quadratic regulator (LQR), which has been demonstrated to be suitable for clock steering (Koppang and Leland 1999; Gödel and Furthner 2017). The control plant is described in state-space representation with a clock state consisting of the CSAC’s phase and fractional frequency offset. The time-discrete propagation of the clock state \({{\varvec{x}}}^{\mathrm{clk}}\) between two consecutive epochs \(k\) and \(k+1\) under the action of the control input \({\varvec{u}}\) is described by the system model

$$\begin{array}{*{20}c} {{\varvec{x}}_{k + 1}^{{{\text{clk}}}} = {\varvec{Ax}}_{k}^{{{\text{clk}}}} + {\varvec{Bu}}_{k} } \\ \end{array}$$
(1)

Here, the clock state vector \({\varvec{x}}_{{}}^{{{\text{clk}}}}\) is defined as

$$\begin{array}{*{20}c} {{\varvec{x}}_{{}}^{{{\text{clk}}}} = \left[ {\begin{array}{*{20}c} {cdt} \\ {cdf} \\ \end{array} } \right]} \\ \end{array}$$
(2)

with the phase \(cdt\) and fractional frequency offset \(cdf\) being represented in units of distance and velocity, respectively. The instantaneous clock state is obtained directly from the navigation filter described in the next sub-section. Assuming a constant frequency between two epochs, the state propagation matrix \({\varvec{A}}\) is given by

$$\begin{array}{*{20}c} {\varvec{A} = \left[ {\begin{array}{*{20}c} 1 & {\tau_{{{\text{ctrl}}}} } \\ 0 & 1 \\ \end{array} } \right]} \\ \end{array}$$
(3)

where \({\tau }_{\mathrm{ctrl}}\) denotes the time interval between the control epochs. As the clock steering via the serial interface of the CSAC only allows for frequency steering commands, the control input vector u becomes a scalar. It represents the required change in frequency to drive the clock phase and fractional frequency offset towards zero with respect to the estimated GNSS broadcast time. The control input matrix \({\varvec{B}}\) describes the impact of the control input vector u on the propagated state vector \({{\varvec{x}}}_{k+1}^{\mathrm{clk}}\) and is given by

$$\begin{array}{*{20}c} {\varvec{B} = \left[ {\begin{array}{*{20}c} {\tau_{{{\text{ctrl}}}} } \\ 1 \\ \end{array} } \right]} \\ \end{array}$$
(4)

For the LQR control problem, the control input u is chosen such as to minimize the quadratic cost function (Levine 2019)

$$\begin{array}{*{20}c} {J = E\left[ {\mathop \sum \limits_{k} {\varvec{x}}_{k}^{{{\text{clk}}^T}} {\varvec{Q}} {\varvec{x}}_{k}^{{{\text{clk}}}} + {\varvec{u}}_{k}^{T} \user2{R u}_{k} } \right]} \\ \end{array}$$
(5)

Here, \({\varvec{Q}}\) and \({\varvec{R}}\) are diagonal weighting matrices that define the respective contributions of the state vector and the control input to the cost function for the control performance. Large values for \({\varvec{Q}}\) compared to \({\varvec{R}}\) result in a faster steering, while for a slower response, \({\varvec{R}}\) must be increased. The control signal is calculated at each epoch using the feedback control law

$$\begin{array}{*{20}c} {{\varvec{u}}_{k} = - \varvec{G} \cdot {\varvec{x}}_{k}^{{{\text{clk}}}} } \\ \end{array}$$
(6)

with the control gain

$$\begin{array}{*{20}c} {\varvec{G} = \left( {{\varvec{R}} + {\varvec{B}}^{T} {\varvec{PB}}} \right)^{ - 1} {\varvec{B}}^{T} \varvec{PA}} \\ \end{array}$$
(7)

To obtain a solution for \({\varvec{G}}\), the discrete-time algebraic Riccati equation

$$\begin{array}{*{20}c} {\varvec{P} = {\varvec{A}}^{T} \left( {\varvec{P} - \varvec{PB}\left( {{\varvec{R}} + {\varvec{B}}^{T} {\varvec{PB}}} \right)^{ - 1} {\varvec{B}}^{T} \varvec{P}} \right)\varvec{A} + \varvec{Q}} \\ \end{array}$$
(8)

needs to be solved for \({\varvec{P}}\).

For the present control problem, the gain \({\varvec{G}}=\left[{{{G}}}_{1},{{{G}}}_{2}\right]\) is a one-by-two column vector, \({\varvec{Q}}\) is a two-by-two diagonal matrix defining the penalty put on the control output due to the instantaneous phase and frequency deviations from zero, and \({\varvec{R}}\) is a scalar penalty for the frequency control effort. Considering \({\varvec{Q}}\) and \({\varvec{R}}\) as constants all matrices in equations (7) and (8) are time-invariant, so that the gain vector can be computed offline. As part of the controller tuning, suitable values for the diagonal elements \({Q}_{1,1}\), \({Q}_{2,2}\), and \({R}_{1,1}\) of the two weighting matrices need to be chosen, which then determine the final control gain. Note that only the ratios between the elements of \({\varvec{Q}}\) and \({\varvec{R}}\) influence the control gain, i.e. multiplying three tuning parameters with an arbitrary factor still yields the same gain. Without loss of generality, we can therefore adopt a fixed value of \(Q_{1,1} = 1\), and describe the weighting matrices

$$\begin{array}{*{20}c} {\varvec{Q} = \left[ {\begin{array}{*{20}c} 1 & 0 \\ 0 & {\alpha \cdot \tau_{{{\text{ctrl}}}}^{2} } \\ \end{array} } \right] {\text{ and }}\, \varvec{R} = \left[ {\beta \cdot {\text{c}}^{2} \cdot \tau_{{{\text{ctrl}}}}^{2} } \right]} \\ \end{array}$$
(9)

in terms of two dimensionless parameters \(\alpha\) and \(\beta\) and the control time step \({\tau }_{\mathrm{ctrl}}\). For our application a value of \(\alpha =1\) is adopted, which implies a balanced contribution of clock phase and frequency errors over the control time step. To enable a fast response of the controller, small values of \(\beta\) are preferred for the CSAC steering. A parametric search was performed to obtain a value for \(\beta\), aiming to reduce the time deviation over a wide range of time scales and avoiding large stability degradations at intermediate sample intervals around the control time step. As a result, \(\beta =0.1\) was selected for the five test cases of \({\tau }_{\mathrm{ctrl}}\) between 1 to 120 s. The respective control gains for the different \({\tau }_{\mathrm{ctrl}}\) obtained with the proposed values are shown in Table 1.

Table 1 Control gains for different control time constants

In practice, the clock steering process is constrained by the limits of the CSAC, more specifically by the maximum steerable frequency offset of ± 20 ns/s. The LQR applied for clock steering is only able to consider constraints when computing the control gain online for each epoch, which increases complexity. However, for this control problem, the desired controller setpoint is always zero, and phase deviations due to noise can be considered small between two consecutive steering commands. Furthermore, the initial clock offset can be explicitly forced to zero in the GNSS receiver, i.e. the receiver tries to align its first measurement epoch with the estimated GNSS time. Therefore, because the controller will not exceed the CSAC’s steering limit in nominal operation about the setpoint, the constraints can be omitted.

Navigation filter

The instantaneous antenna position and receiver clock offset are estimated in a real-time PPP process based on an extended Kalman filter (EKF), which is further described in Carlin et al. (2021) and Carlin et al. (2022). Typically, PPP makes use of precise orbit and satellite clock data provided offline or through real-time correction services. In contrast to this approach, the algorithm for this study is specifically designed for use with a stand-alone GNSS receiver. It uses only broadcast ephemerides and thus remains independent from external information. The filter makes use of a linear combination of dual-frequency code and carrier phase measurements from GPS and Galileo, which eliminates ionospheric path delays to first order. To compensate the lack of precise real-time products, process noise is added to the covariance of the carrier phase ambiguities in the time-update step. The resulting “pseudo”-ambiguities lump the float-valued phase ambiguities with the projected ephemeris errors and avoid the need for dedicated signal-in-space range error states (Montenbruck and Ramos-Bosch 2008, Wang et al. 2015).

The EKF state vector is defined as

$$\begin{array}{*{20}c} {\varvec{x} = \left[ {{\varvec{r}},cdt,cdf,{\mathbf{ISB}},dT,{\varvec{N}}} \right]^{T} } \\ \end{array}$$
(10)

where \({\varvec{r}}\) is the 3D position vector of the receiver antenna’s phase center in the Earth-fixed reference frame. In analogy with the frequency controller described above, the EKF clock state incorporates the phase offset \(cdt\) in units of distance relative to the broadcast time of a selected reference GNSS and the frequency offset \(cdf\) expressed in units of velocity. For other GNSSs, the inter-system bias vector \({\mathbf{ISB}}\) comprises the differences between the system-specific receiver clock offsets and the clock offset for the reference constellation. These ISBs represent the sum of GNSS-specific receiver biases and the broadcast time difference relative to the reference GNSS. As only GPS and Galileo are used in this study, the ISB state reduces to a scalar

$$\begin{array}{*{20}c} {{\text{ISB}}_{x} = cdt_{x} - cdt} \\ \end{array}$$
(11)

where the subscript x denotes either GPS or Galileo, when choosing Galileo or GPS time as the respective GNSS reference time.

The EKF state \(\mathrm{d}T\) describes the estimated wet zenith delay correction to the a priori troposphere model, which is based on the Global Pressure and Temperature (GPT; Boehm et al. 2007) model and the Global Mapping Function (GMF; Boehm et al. 2006). Finally, the vector \({\varvec{N}}\) represents the float-valued pseudo-ambiguities for all tracked satellites.

In the filter observation model, the pseudorange \(p\) and carrier phase \(\varphi\) for a single satellite are described by

$$\begin{array}{*{20}c} {p = \rho + c\left( {{\text{d}}t_{{{\text{rcv}}}} - {\text{d}}t_{{{\text{sat}}}} } \right) + \left( {T + {\text{d}}T} \right) + e} \\ \end{array}$$
(12)

and

$$\begin{array}{*{20}c} {\varphi = \rho + c\left( {{\text{d}}t_{{{\text{rcv}}}} - {\text{d}}t_{{{\text{sat}}}} } \right) + \left( {T + {\text{d}}T} \right) + A + \lambda \omega + \varepsilon } \\ \end{array}$$
(13)

where \(\rho\) is the geometric range between the phase centers of receiver and satellite antenna, and \({\text{d}}t_{{{\text{rcv}}}}\) and \({\text{d}}t_{{{\text{sat}}}}\) are the receiver and satellite clock offsets, respectively (Hauschild 2017). The term \(\left(T+\mathrm{d}T\right)\) describes the tropospheric zenith delay obtained from the GPT/GMF model combined with the estimated correction term. For the carrier phase, \(\lambda\) denotes the signal’s wavelength, \(A\) is the ionosphere-free float ambiguity and \(\omega\) the carrier-phase wind-up. Errors for noise and multipath are lumped together in the error terms \(e\) and \(\varepsilon\), respectively.

The light-time corrected geometric range is calculated with the difference between receiver and satellite position. The latter one is directly obtained from the latest set of available broadcast ephemerides, together with the respective satellite clock offset. Broadcast ephemerides are obtained from the GNSS receiver once new data has been decoded, and are continuously updated in the filter to the latest data set. At each epoch, the position state is reinitialized with an a priori receiver position obtained from a single point position (SPP) solution and a suitable a priori variance to enable use of the disciplined clock on moving platforms with arbitrary dynamics. The receiver’s clock state is propagated using the same state propagation matrix as the LQR defined in equation (3), though \(\tau\) is replaced with the constant filter update interval of 1 s. Due to the continuous clock steering process, the CSAC’s phase and frequency represented by the clock state are not only affected by noise, but also by the steering commands. Thus, in a filter epoch following a steering command the clock state prediction also incorporates the \({\varvec{B}}{{\varvec{u}}}_{k}\) so that the prediction is equal to the LQR state model given in (1). The ISB between GPS and Galileo is assumed to be constant between two epochs and constrained by a very low process noise that reflects the high stability of both GPS Time (GPST) and Galileo System Time (GST).

The GNSS measurement model of the EKF uses ionosphere-free combinations calculated from the undifferenced dual-frequency pseudoranges and carrier phase observables. In a pre-measurement update stage, the observables are screened and weighted based on multiple criteria including carrier-to-noise density ratio (C/N0) and local satellite elevation (cf. Table 2).

Table 2 Real-time filter models and parameters

Reference solution and evaluation

For the CSAC characterization and the performance assessment of the steered clock, we made use of an “integer-PPP” (Petit et al. 2015) time and frequency comparison relative to a highly stable atomic clock at a national timing laboratory. It is based on code and carrier phase observations of the GNSS receiver connected to the CSAC, which were continuously logged during stand-alone or steered operations of the clock. Based on precise GNSS orbit/clock products and observable specific biases from the Center of Orbit Determination in Europe (CODE; Dach et al. 2020; Schaer et al. 2021), the static antenna position and epoch-wise receiver clock offsets relative to the inherent system time scale of the CODE products were determined in a least-squares PPP adjustment with single-receiver ambiguity fixing. In the same way, clock offsets of the PTBB GNSS reference stations at the timing laboratory of the Physikalisch-Technische Bundesanstalt (PTB; Bauch et al. 2020) in Braunschweig, Germany, were computed. This station is connected to an active hydrogen maser, which offers a \({10}^{-15}\) to \({10}^{-13}\) stability on sub-daily time scales (Bauch et al. 2012) and is steered to Correlated Universal Time (UTC) with better than 2 ns accuracy through long-term adjustments (BIPM 2022). By differencing the CODE-referenced CSAC and PTB clock offsets, the stability of the free-running or disciplined CSAC relative to UTC(PTB) can, finally, be derived.

For completeness, we note that measurements of the GNSS receiver connected to the CSAC are affected by unknown receiver biases and cable lengths in the roof-top antenna system used for our experiments. However, these errors affect the receiver internal time base and the resulting GNSS observations in an equal manner and remain essentially unobservable in the PPP-based comparison with an external reference clock. As such, we do not aim to provide absolute timing calibrations in pure analysis, but focus on the evaluation of clock stability in terms of Allan deviation (ADEV; Allan 1966) and time interval error (TIE; Riley and Howe 2008).

Results and discussion

This section presents the results obtained from the clock steering experiment. In a first step, the CSAC is characterized when running freely without external control inputs. The results serve as reference for an assessment of the clock steering discussed in the remaining parts of the section. All performance analyses are based on the raw observables from the GNSS receiver, which were logged during the experiment and processed afterwards to obtain the clock error of the steered or unsteered clock relative to a precise reference solution. When testing different controller parameters in the close-loop clock steering, the settings for the real-time navigation filter were identical for all test cases as presented in Table 2.

Clock characterization

The stability of the tested SA.45 s CSAC was evaluated based on 24 h of GNSS measurements at 1 Hz sampling. At each epoch, the clock offset relative to the PTBB reference clock was determined as discussed above and used to compute the Overlapping Allan Deviation (OADEV). Figure 2 shows the OADEV for the free-running clock, together with the specifications given in the official data sheet. The logarithmic representation allows to distinguish between different noise types (Riley and Howe 2008). Up to approximately 2000 s, the predominant noise is white frequency modulation (WFM), appearing with a slope of − 1/2. From sample times between 2000 and 4000 s, the clock’s flicker frequency floor is visible as a constant OADEV. Thereafter, the random walk frequency modulation (RWFM) dominates, causing long-term phase deviations. In comparison with the datasheet specifications, the measured stability exhibits a significant increase in stability and is in accord with the performance of a batch of early production clocks presented by Lutwak (2011). In particular, the stability at sampling times of 1 s improves from the specified \(3\cdot {10}^{-10}\) to approximately \(8\cdot {10}^{-11}\). As the measured and specified curves remain parallel on the log–log plot with a slope of −1/2 up to 2000 s, it can be concluded that the WFM noise is roughly three times lower on the tested device than specified by the manufacturer.

Fig. 2
figure 2

Overlapping Allan deviation for free-running SA.45 s CSAC compared to datasheet specifications

Clock steering

In this study, the CSAC’s phase and frequency shall be disciplined with respect to GNSS broadcast time. As the choice of the control step size \({\tau }_{\mathrm{ctrl}}\) might be constrained by load-related limits to the navigation filter update rate, different control constants are assessed to demonstrate their effect on the resulting stability. All test cases were performed from midnight to midnight, covering a full day in GNSS time. In this section, the results for five different \({\tau }_{\mathrm{ctrl}}\) ranging from 1 to 120 s are evaluated with otherwise identical filter settings and conditions.

The impact of \({\tau }_{\mathrm{ctrl}}\) is visible in the post-processed clock offset as seen in Fig. 3 on the example of a data set over one day with 1 s and 120 s control time steps, respectively. With \({\tau }_{\mathrm{ctrl}}=120\ \mathrm{ s}\), the controller is not able to fully compensate the clock offset’s random walk, leading to oscillations with amplitudes at nanosecond-level and periods of several minutes. The long-term clock offset variations, mostly visible for \({\tau }_{\mathrm{ctrl}}=1\, \mathrm{ s}\), are caused by the differences between GNSS broadcast time and UTC(PTB).

Fig. 3
figure 3

Post-processed clock offset over time between the steered CSAC and UTC(PTB) for control step sizes of 1 s and 120 s, respectively, with the corresponding values for mean and standard deviation

The OADEV for the post-processed clock offset describes the CSAC’s frequency stability with respect to UTC(PTB). The results shown in Fig. 4 evidence a decreasing stability around the respective control time constants, which suggests that the applied control gains are not yet fully optimized, and further performance improvements might be achieved by a refined filter and controller tuning. Beyond the control step size, all OADEV curves behave similarly with almost parallel slopes of approximately −1, until for sample times between \({10}^{3}\ \mathrm{ and }\ {10}^{4}\,\mathrm{s}\) they all converge towards a common stability. This amounts to roughly \({10}^{-13}\) at \(\tau ={10}^{4}\, \mathrm{ s}\) and reflects the long-term timing uncertainty offered by the use of GNSS broadcast ephemerides. For the test cases presented here, a reduction of the control time constant results in an increased stability of the clock solution for sample times beyond the control step size. The overall performance of the steered clock is largely enabled by the high precision of the clock offset estimation in the carrier phase-based navigation filter and the overall stability of the broadcast GNSS time scale. As a result, the control errors are dominated by stochastic clock phase variations of the employed CSAC over the control step down to very short update intervals. Best results are obtained for the 1 s controller update interval that is considered as a minimum in view of the 1 Hz navigation filter update rate adopted in our study.

Fig. 4
figure 4

Stability of the steered and unsteered CSAC

The RMS time interval error (TIE) depicted in Fig. 5 represents the average timing error of the steered clock relative to UTC(PTB) over the respective time intervals. At a sample time of 1 s, the TIE lies within 80–90 ps for all test cases. However, for larger time intervals, the error significantly benefits from smaller control time steps. Compared to the free-running clock, the TIE RMS for all test cases stays below 2 ns for sample times up to 104 s. The TIE RMS is complemented by the maximum time interval error (MTIE) in Fig. 6, which less than 10 ns over the evaluated time intervals for all control step sizes.

Fig. 5
figure 5

TIE RMS for different control time constants

Fig. 6
figure 6

MTIE for different control time constants and sample times

The influence of diurnal variations of the GNSS broadcast time on the CSAC’s stability was assessed on the example of \({\tau }_{\mathrm{ctrl}}=10\ \mathrm{ s}\), for which the experiment was repeated over a duration of 10 days. The results yield a clock offset mean and standard deviation with respect to UTC(PTB) of 0.05 ± 0.76 ns over the test period. Figure 7 depicts the corresponding results for the OADEV, with sample intervals of up to \({4\cdot 10}^{5}\) s or approximately 11 days. The results show performance comparable to the 24-h tests below \({10}^{4}\) s sample times, and a continuation of the slope of − 1 beyond this point. Furthermore, the TIE RMS and MTIE shown in Fig. 8 show a convergence of the timing error for intervals larger than \({10}^{4}\) s towards a 1 ns RMS error and a maximum error of approximately 9 ns. Overall, the results suggest that the CSAC steering is unsusceptible to any diurnal or other long-term variations.

Fig. 7
figure 7

OADEV results with \({\tau }_{\mathrm{ctrl}}=10\ \mathrm{ s}\) for a dataset of 10 days

Fig. 8
figure 8

TIE RMS and MTIE results with \({\tau }_{\mathrm{ctrl}}=10\ \mathrm{ s}\) for a dataset of 10 days

While the thermal sensitivity of the SA.45 s is considerably lower than for an OCXO, frequency shifts in the order of \({10}^{-10}\) may occur for the employed CSAC over the specified operating temperature of − 10 to 70 °C (Microchip Technology Inc. 2021a). Except for very rapid temperature changes close to the controller step size, such frequency changes can be readily sensed and compensated in the GNSS-disciplined CSAC operation. In the specific tests reported here, the receiver and CSAC were operated at ambient temperatures in a laboratory environment without a dedicated thermal control. Throughout the tests, the CSAC’s internal temperature logged from the telemetry remained at around 22–26 °C at all times, with rates below 1 °C/h. The associated frequency variations result in subtle changes of the incremental CSAC steering commands, but are masked by the stochastic clock variations over the control interval. As such, temperature variations had no discernible impact on the achieved clock stability in our tests.

Compared to previous studies, which assessed disciplining of the SA.45 s CSAC using code-based navigation solutions and the 1PPS control interface (Calero and Fernandez 2015; Littleton-Strand et al. 2021), our results exhibit a roughly ten times improved stability. This can be explained by the processing of carrier phase measurements and the use of Galileo broadcast ephemerides, which enable navigation solutions with decimeter-level position and clock performance. Along with the use of the frequency control interface this performance improvement allows a much finer clock steering with controller updates in the order of seconds, compared to the aforementioned studies, which employ control step sizes in the range of 3000–10,000 s.

Summary and conclusion

Steering of a low-cost and low-power CSAC using GNSS code and carrier phase measurements in combination with broadcast ephemerides has been demonstrated. The decimeter-level position and clock solution obtained from the PPP process yielded clock phase standard deviations of roughly 1 ns with respect to UTC(PTB). With this precision, update rates of up to 1 Hz could be applied to the controller, which marks a significant improvement compared to update intervals in the order of \({10}^{3}\) s for code-based navigation solutions in previous studies. We assessed five test cases with different control time steps between 1 and 120 s and could show that the stability of the CSAC can be improved in all cases for sample times larger than the respective controller step. However, the results also suggest that the CSAC’s short-term stability at the lowest evaluated sample interval of 1 s is worse than the stability of the GNSS broadcast time scale estimated by the navigation filter, rendering the filter’s 1 Hz update rate the limiting performance factor in the present steering process. Consequently, this suggests that even higher update rates for both navigation filter and controller could further improve the CSAC’s stability. As this study made use of an uncalibrated GNSS receiver, it focuses on the clock steering precision and no final conclusion can be made about the clock steering accuracy. An absolute alignment of the CSAC and its 1PPS signal with respect to a UTC laboratory requires a calibrated timing receiver and antenna chain to compensate the respective signal delays and is left to future research. However, the demonstrated system represents a feasible solution for applications with low SWaP requirements to obtain a stable time and frequency base.