# Joint Timekeeping of Navigation Satellite Constellation with Inter-Satellite Links
## 3 ISLT Timescale Algorithm
### Short-Term Prediction of Clock Deviation  
Both the deterministic and stochastic components are modeled with the state equations of atomic clocks in a Kalman filter. The time deviation, frequency deviation, and frequency drift can be estimated synchronously and used for short-term prediction. In the Kalman filter benchmark, the state space of clocks should be built first. Considering the three clock states above, a three-stage stochastic differential model is:  
\[\left\{ \begin{array}{l}dx(t)=y(t)\cdot dt+\sigma_{1}\cdot dW_{1}(t)\\ dy(t)=z(t)\cdot dt+\sigma_{2}\cdot dW_{2}(t)\\ dz(t)=\sigma_{3}\cdot dW_{3}(t)\end{array} \right. \tag{17}\]  
where \(x(t)\) is the time deviation of a physical clock relative to an ideal timescale, which is a realization of Systeme International d'Unites (SI) second, \(y(t)\) is a component of the frequency deviation with a random walk, and \(z(t)\) is a component of the frequency drift with random walk. \(W_{1}(t)\), \(W_{2}(t)\) and \(W_{3}(t)\) are three independent Wiener processes, which are known as the random walk noise, whose derivatives are white noise, and whose integrals are random run noise [20]. Accordingly, their diffusion coefficients are \(\sigma_{1}\), \(\sigma_{2}\) and \(\sigma_{3}\), respectively, representing the noise intensities of white frequency noise (WFM), random walk frequency noise (RWFM), and random run frequency noise (RRFM). Given initial conditions at the moment \(t_{0}\)  
\[\left\{ \begin{array}{l}x(t_{0})=x_{0}\\ y(t_{0})=y_{0}\\ z(t_{0})=z_{0}\end{array} \right., \tag{18}\]  
a closed-form solution of Equation (10) is reached:  
\[\left\{ \begin{array}{l}x(t)=x_{0}+y_{0}t+1/2\cdot z_{0}\cdot t^{2}+\sigma_{ 1}\cdot W_{1}(t)+\sigma_{2}\cdot\int_{0}^{t}W_{2}(s)ds+\sigma_{3}\cdot\int_{ 0}^{t}\int_{0}^{u}W_{3}(s)dsdu\\ y(t)=y_{0}+z_{0}t+\sigma_{2}\cdot W_{2}(t)+\sigma_{3}\cdot\int_{0}^{t}W_{3}(s) ds\\ z(t)=z_{0}+\sigma_{3}\cdot W_{3}(t)\end{array} \right. \tag{19}\]  
Note the sampling interval as \(\tau\), and the discrete form of Equation (12) is:  
\[\left\{ \begin{array}{l}x(t)=x(t-\tau)+y(t-\tau)\cdot\tau+1/2\cdot z(t-\tau) \cdot\tau^{2}+\gamma_{x}(t)\\ y(t)=y(t-\tau)+z(t-\tau)\cdot\tau+\gamma_{y}(t)\\ z(t)=z(t-\tau)+\gamma_{z}(t)\end{array} \right. \tag{20}\]The noise vector \(\gamma(t)=\left[ \begin{array}{cc}\gamma_{x}(t)&\gamma_{y}(t)&\gamma_{z}(t)\end{array}  \right]^{\rm T}\) obeys a bivariate Gaussian distribution with the mean equal to zero, and the covariance matrix as follows:  
\[q=\left[ \begin{array}{cccc}\sigma_{1}^{2}\tau+\frac{\omega_{2}^{2}\tau^{3}}{3 }+\frac{\omega_{3}^{2}\tau^{5}}{20}&\frac{\omega_{2}^{2}\tau^{2}}{2}+\frac{ \omega_{3}^{2}\tau^{4}}{8}&\frac{\omega_{3}^{2}\tau^{3}}{6}\\ \frac{\omega_{2}^{2}\tau^{2}}{2}+\frac{\omega_{3}^{2}\tau^{4}}{8}&\sigma_{2}^{2 }\tau+\frac{\omega_{3}^{2}\tau^{3}}{3}&\frac{\omega_{3}^{2}\tau^{2}}{2}\\ \frac{\omega_{3}^{2}\tau^{3}}{6}&\frac{\omega_{3}^{2}\tau^{2}}{2}&\sigma_{3}^{2 }\tau\end{array} \right] \tag{21}\]  
The state vector of the Kalman filter consists of the states of \(n\) atomic clocks:  
\[X=\left[ \begin{array}{cccccccc}x_{1}&y_{1}&z_{1}&\ldots&x_{n}&y_{n}&z_{n} \end{array} \right]^{\rm T} \tag{22}\]  
Let \(X_{k}=X(t_{k})\), a state equation of the clock ensemble, be written as:  
\[X_{k}=\Phi_{k}X_{k-1}+Y_{k} \tag{23}\]  
The state transition matrix is  
\[\Phi_{k}=\left[ \begin{array}{cccc}\phi_{1,k}&&\\ &\ddots&\\ &&\phi_{n,k}\end{array} \right] \tag{24}\]  
whose diagonal element \(\phi_{i,k}\) is the state transition matrix of clock \(i\) with:  
\[\phi_{i,k}=\left[ \begin{array}{cccc}1&\tau&\tau^{2}/2\\ 0&1&\tau\\ 0&0&1\end{array} \right], \tag{25}\]  
where the sampling time is \(\tau=t_{k}-t_{k-1}\). The noise vector is:  
\[{\rm Y}=\left[ \begin{array}{cccc}\gamma_{1,x}&\gamma_{1,y}&\gamma_{1,z}& \ldots&\gamma_{n,x}&\gamma_{n,y}&\gamma_{n,z}\end{array} \right]^{\rm T} \tag{26}\]  
whose covariance matrix is:  
\[Q=\left[ \begin{array}{cccc}q_{1}&&\\ &\ddots&\\ &&q_{n}\end{array}