Keywords

1 Introduction

The state-space model of satellite attitude determination is seriously nonlinear model in which the Extended Kalman Filter algorithm is commonly used in all mature data processing methods (Lefferts 1982). However, EKF transforms the nonlinear problem into a linear problem through series expansion which introduces the model error because of ignoring the high order terms. While the initial is not accurate, the filter is divergent easily. So UKF is used in satellite attitude determination (Vandyke 2004; Crassidis 2003). Compared with EKF, UKF can achieve more than second-order accuracy. However, they are built on the basis of Gaussian white noise. In the practical problems of attitude determination, the measurement error and kinetic model error usually do not belong to Gaussian white noise, but to colored noise which characteristics are unusual or time-space related. The presence of colored noise seriously influences the accuracy and reliability of UKF filter. A few filter methods of controlling colored noise have been proposed to handle colored observation noise. The classical approach is to use the group difference of the adjacent observations to transform the observation equations which can transfer the observed colored noise into white noise. Then the EKF is used to solve it (Yang 2006; Xiong 2007).

Unlike the traditional approach, colored noise may be modeled by ARMA or AR model, and be treated as a virtual white noise, which is expanded into series expression by the polynomial long division and get its variance. Then the filter is built by modern time series analysis method (Huang 2008). The simulation results show that the filtering method can effectively control the impact of the colored noise on the results of UKF filtering and improve filtering accuracy and reliability to some extent.

2 Mathematical Model of Satellite Attitude

2.1 Quaternion in Satellite Attitude

Since 1980s, the quaternion becomes the most widely used attitude parameter because of its simple kinematical equation and conversion with the attitude angles. Quaternion is a four-dimensional vector, defined as

$$ q=\left[\begin{array}{c}\hfill {q}_{13}\hfill \\ {}\hfill {q}_4\hfill \end{array}\right]=\left[\begin{array}{c}\hfill n \sin \left(\theta /2\right)\hfill \\ {}\hfill \cos \left(\theta /2\right)\hfill \end{array}\right] $$
(1)

Where \( {q}_{13}={\left[\begin{array}{ccc}\hfill {q}_1\hfill & \hfill {q}_2\hfill & \hfill {q}_3\hfill \end{array}\right]}^T \) is the vector part of quaternion, n, θ is the rotation axis and rotation angle respectively. It can be found from the above expression that its four elements meet the normalized constraints.

And the quaternion attitude matrix is:

$$ A(q)=\left({q}_4^2-\left|{q}_{13}\right|{}^2\right){I}_3-2{q}_4\left[{q}_{13}\times \right]+2{q}_{13}{q_{13}}^T $$
(2)

The kinematical equation of satellite based on the quaternion (Crassidis 2007) is:

$$ \dot{q}=\frac{1}{2}\Omega \left(\omega \right)q=\frac{1}{2}\Xi (q)\omega $$
(3)

Where \( \omega ={\left[\begin{array}{ccc}\hfill {\omega}_1\hfill & \hfill {\omega}_2\hfill & \hfill {\omega}_3\hfill \end{array}\right]}^T \) is the satellite attitude angular velocity.

$$ \Omega \left(\omega \right)=\left[\begin{array}{cc}\hfill -\left[\omega \times \right]\hfill & \hfill \omega \hfill \\ {}\hfill -{\omega}^T\hfill & \hfill 0\hfill \end{array}\right] $$
$$ \Xi (q)=\left[\begin{array}{c}\hfill {q}_4{I}_{3\times 3}+\left[{q}_{13}\times \right]\hfill \\ {}\hfill -{q}_{13}^T\hfill \end{array}\right] $$
$$ \left[\omega \times \right]=\left[\begin{array}{ccc}\hfill 0\hfill & \hfill -{\omega}_3\hfill & \hfill {\omega}_2\hfill \\ {}\hfill {\omega}_3\hfill & \hfill 0\hfill & \hfill -{\omega}_1\hfill \\ {}\hfill -{\omega}_2\hfill & \hfill {\omega}_1\hfill & \hfill 0\hfill \end{array}\right] $$
(4)

Assuming a sampling interval \( \left[\begin{array}{cc}\hfill {t}_k\hfill & \hfill {t}_k+T\hfill \end{array}\right] \), Eq. (3) closed-form solution can be obtained with fixed ω direction (Zhang 2004):

$$ {\mathrm{q}}_{k+1}=\left( \cos \frac{\left|{\Theta}_k\right|}{2}{I}_{4\times 4}-\frac{ \sin \frac{\Theta_k}{2}}{\left|{\Theta}_k\right|}\left[\begin{array}{cc}\hfill {0}_{3\times 3}\hfill & \hfill {\Theta}_k\hfill \\ {}\hfill {\Theta}_{{}_k}^T\hfill & \hfill 0\hfill \end{array}\right]\right){q}_k $$

Where, \( {\Theta}_k={\displaystyle {\int}_{t_k}^{t_k+T}\omega \left(\tau \right)} d\tau \), |Θ| ≤ π. When ω remains unchanged, Θ k  = ω k T.

It is worth noting that quaternion is redundant for representing the global attitude, because quaternion represents three-dimensional attitude through four parameters. So the four parameters of quaternion must satisfy the normalization constraint, while the commonly used numerical integration algorithm cannot guarantee its normalization constraint.

2.2 Nonlinear Model of the Satellite Attitude

Using quaternion as the attitude parameters, the nonlinear state equation of satellite attitude is:

$$ \dot{x}(t)=\left[\begin{array}{c}\hfill {f}_1\left[q(t),\omega (t)\right]\hfill \\ {}\hfill {f}_2\left[\omega (t)\right]\hfill \end{array}\right]+\left[\begin{array}{c}\hfill {0}_{4\times 3}\hfill \\ {}\hfill {J}^{-1}\hfill \end{array}\right]\omega (t) $$
(5)

Where f 1 and f 2 are kinematical equations and dynamic equations respectively.

$$ {f}_2\left[w(t)\right]={J}^{-1}\left[T-\dot{h}-\left[\omega \times \right]\left( J\omega +h\right)\right] $$

Among them, T is the total external torque (including the control torque, moment of atmospheric drag, solar pressure torque and the other external disturbance torque), h is the total angular momentum, J is the inertia matrix.

Assuming Δt is the sampling period, when the attitude angular velocity ω remains constant during [t k , t k  + T], the discrete attitude quaternion propagation equation is expressed as follows in accordance with Eq. (3) closed-form solution:

$$ \begin{array}{l}{q}_{k+1}=\Omega \left({\omega}_k\right){q}_k\\ {}=\left[\begin{array}{cc}\hfill \cos \left(0.5\left|\right|{\omega}_k\left|\right|\Delta t\right){I}_{3\times 3}\hfill & \hfill {\psi}_k\hfill \\ {}\hfill -{\psi}_{{}_k}^T\hfill & \hfill \cos \left(0.5\left|\right|{\omega}_k\left|\right|\Delta t\right)\hfill \end{array}\right]{q}_k+{w}_k\end{array} $$
(6)

Where, ψ k  = sin(0.5||ω k ||Δt)ω k /||ω k ||, w k is the process noise introduced in the calculation of angular velocity through dynamic equation.

Attitude measurement sensors usually used star sensor because it is not only most accurate in all attitude determination sensors but also can provide the full range attitude information (Zhang 2004). For convenience of calculation, assuming that the star sensor coordinate system coincides with the star coordinate system, the measurement direction vectors of two star sensors are represented as unit reference vectors in the inertial reference coordinate system at the same time. So the measurement equation provided by star sensors is:

$$ {y}_k=h\left({q}_k\right)+{v}_k=\left[\begin{array}{c}\hfill A\left({q}_k\right){r}_1\hfill \\ {}\hfill A\left({q}_k\right){r}_2\hfill \end{array}\right]+{v}_k $$
(7)

Where, A(q) is attitude matrix, v k is Gaussian white noise.

3 UKF Algorithm

For the nonlinear model, the extended Kalman filtering (EKF) which ignores high-order terms based on Taylor series expansion can be a good approximation, but it applied only to weakly nonlinear model and may also cause filter divergence when the initial state estimation error is large. The Unscented Kalman Filter (UKF) is proposed based on the idea that it is easier to approximate Gaussian distribution than to approximate nonlinear functions (Pan 2005; Julier 1995; Fredrik 2005). It can achieve more than second order accuracy based on a set of deterministic sampled Sigma points to approximate the nonlinear distribution which can be propagated directly through the nonlinear model and get the mean and variance of the state vector. Compared to EKF algorithm, it can give more higher-order nonlinear system state estimation.

Suppose the state space model of nonlinear system:

$$ {\widehat{X}}_{k+1}=f\left({\widehat{X}}_k\right)+{w}_k $$
(8a)
$$ {L}_k=h\left({\widehat{X}}_k\right)+{v}_k $$
(8b)

Where f(•) and h(•) are nonlinear function, \( {\widehat{X}}_k \) and L k are the state estimation and measurement vector respectively in k moment. w k is the process noise arising from the disturbance and model error. v k is the measurement noise. w(k) and v(k) are zero mean and satisfy the following relations.

$$\begin{array}{rcl} && E\left[w(i){w}^T(j)\right]={\delta}_{\it ij}Q(i),\kern1em E\left[v(i){v}^T(j)\right]={\delta}_{\it ij}R(i),\kern1em\\[2pt] &&E\left[v(i){w}^T(j)\right]=0\end{array} $$

UKF algorithm is calculated as follows:

(1) Initialization: According to the state mean and covariance, the following equations are obtained

$$\begin{array}{cl} {}&\widehat{X}\left({t}_0\right){=}E\left({\widehat{X}}_0\right)\kern0.3em\\[6pt] {}&{\Sigma}_{X_0}{=}E\left\{\left(X\left({t}_0\right){-}{\widehat{X}}_0\right){\left(X\left({t}_0\right){-}{\widehat{X}}_0\right)}^T\right\}\end{array} $$

The Sigma points are sampled by the following equation:

$$ {\chi}_{k-1}=\left[\begin{array}{ccc}\hfill {\widehat{X}}_{k-1}\hfill & \hfill {\widehat{X}}_{k-1}+\gamma \sqrt{\Sigma_{x_{k-1}}}\hfill & \hfill {\widehat{X}}_{k-1}-\gamma \sqrt{\Sigma_{x_{k-1}}}\hfill \end{array}\right] $$
(9)

Where \( \gamma =\sqrt{L+\lambda } \).

(2) State propagation: The Sigma points are spread through the state equation,

$$ {\chi}_{k|k-1}=f\left({\chi}_{k-1}\right) $$
(10)
$$ {\overline{X}}_k={\displaystyle \sum_{i=0}^{2L}{W}_i^m{\chi}_{i,k|k-1}}, $$
$$ {\overline{\Sigma}}_{X_k}={\displaystyle \sum_{i=0}^{2L}{W}_i^c\left({\chi}_{i,k|k-1}-{\overline{X}}_k\right){\left({\chi}_{i,k|k-1}-{\overline{X}}_k\right)}^T} $$
(11)

(3) Measurement update:

$$ {\mathrm{Y}}_{k|k-1}=h\left({\chi}_{k|k-1}\right),\kern1em {\overline{L}}_k={\displaystyle \sum_{i=0}^{2L}{W}_i^m{\mathrm{Y}}_{i,k|k-1}} $$
(12)
$$ {\Sigma}_{L_k{L}_k}={\displaystyle \sum_{i=0}^{2L}{W}_i^c\left({\mathrm{Y}}_{i,k|k-1}-{\overline{L}}_k\right){\left({\mathrm{Y}}_{i,k|k-1}-{\overline{L}}_k\right)}^T}{+}{R}_k $$
(13)
$$ {\Sigma}_{X_k{L}_k}={\displaystyle \sum_{i=0}^{2L}{W}_i^c\left({\chi}_{i,k|k-1}-{\overline{X}}_k\right){\left({\mathrm{Y}}_{i,k|k-1}-{\overline{L}}_k\right)}^T} $$
(14)
$$ {K}_{x_k}={\Sigma}_{X_k{L}_k}{\Sigma}_{L_k{L}_k}^{-1} $$
(15)
$$ {\widehat{X}}_k={\overline{X}}_k+K\left({L}_k-{\overline{L}}_k\right) $$
$$ {\Sigma}_{X_k}={\overline{\Sigma}}_{X_k}-K{\Sigma}_{L_k{L}_k}{K}^T $$
(16)

From the above formula, it can be seen that UKF considers observation noise as Gaussian white noise with variance R. But in the practical problem, the noise from the different time is likely correlated each other, that is the colored noise. When the observation noise is colored noise, it is necessary to consider the colored noise as virtual white noise and obtain the prior distribution information. Then UKF is applied to solve it.

In addition, although the attitude kinematical equation based on quaternion is simple and easy to convert with the attitude angles, the quaternion need to satisfy normalized constraints. In the prediction process, UKF cannot guarantee quaternion normalized constraints in the form of weighting. So this paper uses error quaternion δq k for UKF filter in which the satellite attitude is obtained by the expression (Xiong 2007) \( {\widehat{q}}_{k+1}={\left[\begin{array}{cc}\hfill \delta {{\widehat{q}}_{k+1}}^T\hfill & \hfill \sqrt{1-\delta {{\widehat{q}}_{k+1}}^T\delta {\widehat{q}}_{k+1}}\hfill \end{array}\right]}^T\otimes {\widehat{q}}_k \), which cannot only guarantee the quaternion normalization constraint but also simplify the quaternion propagation in the calculation process.

4 Series Representation of Colored Noise and Its Variance Calculation

It is necessary for any filter to know the noise prior distribution. Usually, measurement noise and process noise are seen as Gaussian white noise which priori statistical properties are known in order to simplify the calculation and not to affect the estimation accuracy. However this approach ignores the correlation of noise between adjacent times which would greatly affect the estimation accuracy. In order to take into account the relevance of the adjacent time, the colored noise model is seen as ARMA or AR model which coefficients will be expanded into a series form by polynomial long division. And then its variance is calculated for approximately virtual white noise.

Assuming that colored measurement noise v k and white noise ξ k with known statistical properties satisfy the following relationship:

$$ C\left({q}^{-1}\right){v}_k=D\left({q}^{-1}\right){\xi}_k $$
(17)

The following equation is obtained by deforming (17):

$$ {v}_k=D\left({q}^{-1}\right)/C\left({q}^{-1}\right){\xi}_k $$
(18)

Where D(q − 1) and C(q − 1) are the polynomial of unit delay operators q − 1

$$ C\left({q}^{-1}\right)=1+{C}_1{q}^{-1}+\cdots +{C}_{n_c}{q}^{-{n}_c} $$
$$ D\left({q}^{-1}\right)=1+{D}_1{q}^{-1}+\cdots +{D}_{n_d}{q}^{-{n}_d} $$

Using polynomial long division to expand the coefficients D(q − 1)/C(q − 1) of Eq. (18) into series form:

$$ D\left({q}^{-1}\right)/C\left({q}^{-1}\right)=1{+}{f}_1{q}^{-1}{+}{f}_2{q}^{-2}{+}\cdots {+}{f}_j{q}^{-j}{+}\cdots $$

Assuming that the expression of C(q − 1), D(q − 1) is known and the order n f is determined. Based on \( {\xi}_k{q}^{-1}={\xi}_{k-1},\cdots, {\xi}_k{q}^{-{n}_f}={\xi}_{k-{n}_f} \), the Eq. (18) can be expressed as follows:

$$ {v}_k={\xi}_k+{f}_1{\xi}_{k-1}+\cdots +{f}_{n_f}{\xi}_{k-{n}_f} $$

The coefficients \( {f}_1,\cdots, {f}_{n_f} \) can be obtained based on the last equation. According to knowledge of mathematical statistics, \( {\xi}_k,{\xi}_{k-1},\dots, {\xi}_{k-{n}_f} \) are independent and identically distributed under n f  < < t. Therefore, the colored noise variance can be obtained by variance propagation law.

$$ {\Sigma}_v=\left(1+{f}_1^2+\cdots +{f}_{n_f}^2\right){\Sigma}_{\xi } $$

Therefore, for a single epoch, the colored state noise v k can be seen as the virtual white noise with zero mean and Σ v variance.

5 Test Computation and Analysis

The Eqs. (5) and (7) are state equation and observation equation of satellite attitude. In order to analyze the impact of color observation noise on the attitude estimation, we suppose observation noise as colored noise which belongs to AR model. Its expression is:

$$ {v}_k=0.8{v}_{k-1}+{\xi}_k $$

The simulation parameters of satellite attitude estimation are as follows:Two reference vectors: \( {r}_1={\left[\begin{array}{ccc}\hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill \end{array}\right]}^T \), \( {r}_2={\left[\begin{array}{ccc}\hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill \end{array}\right]}^T \)

Initialization of quaternion:

$$ \begin{array}{l}q(0)=\widehat{q}(0)\\ {}={\left[\begin{array}{cccc}\hfill 1/\sqrt{3} \sin \left({5}^{\circ}\right)\hfill & \hfill 1/\sqrt{3} \sin \left({5}^{\circ}\right)\hfill & \hfill 1/\sqrt{3} \sin \left({5}^{\circ}\right)\hfill & \hfill \cos \left({5}^{\circ}\right)\hfill \end{array}\right]}^T\end{array} $$

Initialization of angle velocity:

$$ \omega (0)=\widehat{w}(0)={\left[\begin{array}{ccc}\hfill 0\hfill & \hfill 0\hfill & \hfill 0\hfill \end{array}\right]}^T\left({}^{\circ }/s\right) $$

Initial error covariance:

$$ {P}_0= {\it diag}\left({10}^{-6}\cdot {I}_{3\times 3},{10}^{-12}\cdot {I}_{3\times 3}\right) $$

The inertia matrix is selected according to (Pisiaki 1990):

$$ J=\left[\begin{array}{ccc}\hfill 198918\hfill & \hfill -210\hfill & \hfill -1821\hfill \\ {}\hfill -210\hfill & \hfill 265365\hfill & \hfill 55\hfill \\ {}\hfill -1821\hfill & \hfill 55\hfill & \hfill 67406\hfill \end{array}\right]\circ $$

To analyze the impact of colored measurement noise on satellite attitude estimation and to verify the effectiveness of treatment method of colored noise, the paper uses the following three programs to estimate attitude and compares the results of each program with the true value.

  • Scenario 1: observation noise is white noise with mean 0 and variance R, UKF is used;

  • Scenario 2: observation noise is colored noise, but the paper still consider the observation noise as white noise with mean 0 and variance R, UKF is used;

  • Scenario 3: observation noise is colored noise, the paper considers it as virtual white noise based on AR model which coefficients are known and obtain its variance using polynomial long division. UKF is used.

The results are shown from Figs. 1 to 3. Figure 1 is UKF error figure when the observation noise is white noise. Figure 2 is error figure when the observation noise is colored noise. Figure 3 is UKF error figure when the colored noise is treated.

Fig. 1
figure 1

Scenario 1

Fig. 2
figure 2

Scenario 2

Fig. 3
figure 3

Scenario 3

The following conclusions can be gotten from the above results: when the observation noise contains colored noise, the convergence becomes slow, and the estimation error increases significantly under colored noise due to the presence of colored noise which makes the correlation between states more complex. However, the filtering process has ignored the correlations and affected the filtering accuracy. It can be seen from Fig. 3 that the use of polynomial long division can be good for the suppression of the influence of colored noise.

Concluding Remarks

The colored noise greatly influenced the accuracy of the nonlinear Filtering. However UKF algorithm cannot effectively suppress the impact of colored observation noise on the filter estimation accuracy. Under the conditions of the new technology, the colored noise can be seen as a virtual white noise and its prior information can be obtained by the series expansion method. Next, UKF is used to determinate satellite attitude with colored noise, which can reduce the influence of colored noise to attitude estimation to some extent. It should also be noted that the colored noise is considered as the AR model with known model coefficients. So the further research is that how to establish different models based on the different characteristics of colored noise.