Keywords

1 Introduction

A growing interest has been expressed in micro-nano satellites which offer advantages such as low cost, short development period and standard with large quantities. For the attitude control system, orbital parameters are an indispensable input for any attitude determination algorithm. The traditional ground station-based orbit determination is difficult to meet the multi demands as formation flying plays a more important role in space missions. Therefore, autonomous operating system design has received extensive attention for orbit and attitude determination.

Navigation based on GPS/GNSS or star sensor, has been popular among recent research [1,2,3]. Whereas for micro-nano satellites which are equipped with limited sensors, it can be useful explorations on autonomous determination, if no additional sensitive components are added.

Since the magnetometer-based satellite navigation was first proposed by research team at Cornell, studies have been carried out focusing on geomagnetic navigation. The scalar magnitude of the magnetic field was introduced as measurement vector to establish the orbit determination [4]. A state estimator for a low-earth near-polar orbit reached a position accuracy of 2.5–3 km [5]. Further discussions were made by analyzing the basis of the accuracy effects, such as dynamic model, orbit types, measurement calibration, and linearization of measurement model [6].

In order to further improve system accuracy, Psiaki was among the pioneers who added sun sensor data to the geomagnetic navigation system [7], and with the measured magnetic field data of DE-2, MAGSAT, and LACE satellites [8], a batch filter and EKF algorithm reached an position error of 2.19 km, but the integrated system showed low accuracy in eclipse. Compared with EKF, a particle filter was verified and showed similar position accuracy, but better convergence rate [9]. Simplifications were introduced and testified on Jacobian calculations and polynomial model for fast magnetic field calculation [10]. Calibrations on bias and scale factors of the magnetometer were discussed [11]. By introducing a horizon sensor with UKF, a less than 500 m accuracy of position and less than 1 m/s accuracy in velocity are found with 0.1 nT magnetometer and 0.05° horizon/earth sensor [12].

The second approach for magnetometer measurements in dual estimation, on the other hand, choose the three-axis magnetic vector measurements instead of the scalar magnitude to perform the coupled navigation and attitude determination [13,14,15,16]. While the current attitude is needed when measurements are within the coordinate body system, a series–parallel hybrid determination strategy based on both magnitude and vector was proposed, in which the error covariance matrix was utilized as the switch [15].

However, there is lack of consideration fully focused on low-earth-orbit micro-nano satellites, as well as computational burden, to get fully use of the limited equipped sensors while meeting a proper system accuracy.

In this paper, based on the commonly equiped attitude devices: magnetometer, sun sensor and infrared earth sensor, an autonomous navigation-attitude determination system (low power consumption, full orbit, full time) is proposed. The solution excludes the considerations of low-earth perturbation, influence of orbit inclination, sub-system independence, as well as sensor redundancy. Finally, through simulation based on ZDPS-2 satellites, the proposed algorithm and system design is verified.

2 Design Guidelines

In this section, analyses on orbital perturbation, orbital inclination, measurement form of the magnetic field are given for low-earth-orbit satellites, which provides a design guideline for the navigation estimator and the combined determination system.

  1. (1)

    Atmospheric perturbation cannot be ignored.

    The orbital acceleration due to perturbation such as geopotential and atmospheric drag, the solar radiation pressure, and the sun and moon’s gravity are calculated. The following table shows a calculation based on a 25 kg satellite with a 0.4 m2 windward area.

    As shown in Table 1, the non-spherical perturbation of the Earth has the greatest impact. For low-earth orbit satellites (400–600 km), the impact of atmospheric drag perturbation cannot be ignored. Therefore, the ballistic coefficient of the satellite is required to be estimated [6], which equals to the product of the drag coefficient and the area-to-mass ratio.

    Table 1. Orbital perturbation
  2. (2)

    Orbital description method.

    The estimated state of the autonomous navigation filter can be the satellite Cartesian coordinate position, velocity vector [4, 6], the six Keplerian orbital elements [12], and other parameters forms. In contrast, the Keplerian form is easier for orbit description, and more suitable for calculation of the earth's magnetic field, but it requires a large amount of computing resources. On the other hand, the Cartesian form is more convenient for numerical integration.

  3. (3)

    Different orbital inclinations need to be considered.

    A magnetometer-based orbit determination is based on the principle that the distribution of the geomagnetic field along the orbit has adequate resolution to identify the specific orbit. Therefore, the data range of the geomagnetic field along the orbit should be large enough to allow a precise orbit reconstruction [6]. The range of the measured data is highly dependent on the type of orbit.

    A verification simulation is set on a 500 km orbit (eccentricity = 0), with a 10 nT magnetometer. The filtering estimation result is shown in Fig. 1. When the orbital inclination is 90°, the position estimation accuracy is better than 5 km; while the error increases as the orbital inclination becomes closer to zero, due to the low variation of the equatorial geomagnetic field. As a result, the evaluation of a magnetometer-based navigation system, should be verified at different orbit inclinations.

    Fig. 1.
    figure 1

    Evolution of the position errors for different orbital inclinations

  4. (4)

    Convergence of the coupled determination system.

    When the three-axis magnetic vector measurements (excludes the knowledge of the attitude in the orbit determination) take place of the scalar magnitude, the coupled navigation-attitude system faces higher convergence rates. The larger estimation error of either sub system becomes, the longer it will take to be convergent. Results might be divergence as well [15].

3 System-Level Design

Based on the discussed design guidelines:

  1. (1)

    In this paper, only the scalar magnitude of the geomagnetic is selected, to asure an attitude-independent orbit determination. System convergence, especially attitude determination, plays a very important role at early stage of the mission.

  2. (2)

    An infrared earth imaging sensor was introduced as measurement to further enhance the observability of the commonly used magnetic/sun sensor combination; when the sun sensor becomes unavailable in eclipse, there are still continuous observations for information fusion.

    The infrared earth sensor introduced in this article is shown in Fig. 2. The earth is projected onto the image plane and through image processing, the roll and pitch angle can be calculated by the following formula, with which the three-dimensional earth vector is obtained.

    $$ \begin{gathered} \alpha = \left\{ {\begin{array}{*{20}c} {\arctan \Bigg( \frac{{Y_{1} - Y_{0} }}{{X_{1} - X_{0} }} \Bigg) } & {(Y_{1} - Y_{0} ) \le 0} \\ {360 - \arctan \Bigg(\frac{{Y_{1} - Y_{0} }}{{X_{1} - X_{0} }}\Bigg)} & {(Y_{1} - Y_{0} ) > 0} \\ \end{array} } \right. \hfill \\ \beta = \arctan \Bigg(\frac{{\sqrt {(X_{1} - X_{0} )^{2} + (Y_{1} - Y_{0} )^{2} } }}{f}\Bigg) \hfill \\ \end{gathered} $$
    (1)
    Fig. 2.
    figure 2

    Schematic principle of the static infrared earth sensor

  3. (3)

    System design is shown in Fig. 3, where the fusion selector is to verify working status of the equipped sensors, they either face unavailable environment such as eclipse to sun sensor, or disabled due to self failure or under ground instructions. The status help select the latter fusion combination and algorithm.

    Fig. 3.
    figure 3

    System design of the autonomous navigation and attitude system

    In addition, processing of the magnetometer measurement is shown in Fig. 4, where the magnitude, and sun/earth vector angle are inputs of the navigation filter; the three-dimensional vectors are for the attitude estimator.

    Fig. 4.
    figure 4

    Magnetometer measurement processing

4 Navigation Estimator Design

The Cartesian form of coordinates is chosen for its conveniency for numerical integration. The navigation state vector is defined as follows

$$ {\boldsymbol{x}} = \left[ {\begin{array}{*{20}c} {{\boldsymbol{r}}^{{\text{T}}} } & {{\boldsymbol{v}}^{{\text{T}}} } & {B^{*} } \\ \end{array} } \right] $$
(2)

where r and v are the position and velocity vectors in inertial frame, and B* is the inverse value of satellite’s ballistic coefficient, which is the multiplication of the drag coefficient and the area-to-mass ratio.

4.1 Orbital Dynamic Model

The satellite, defined by multiplication of the drag coefficient and the area-to-mass ratio, and is modeled as a random walk, in which the state vector can be expressed as

$$ \begin{gathered} {\dot{\boldsymbol{r}}} = {\boldsymbol{v}} \hfill \\ {\dot{\boldsymbol{v}}} = {\boldsymbol{a}}_{{\text{g}}} + {\boldsymbol{a}}_{{\text{d}}} + {\boldsymbol{w}}_{1} \hfill \\ \dot{B}^{*} = w_{{2}} \hfill \\ \end{gathered} $$
(3)

where \({\boldsymbol{a}}_{{\text{g}}}\) denotes the geopotential acceleration, \({\boldsymbol{a}}_{{\text{d}}}\) denotes the acceleration due to atmospheric drag. \({\boldsymbol{w}}_{1}\) an \({\boldsymbol{w}}_{2}\) are system process errors, which can be approximated as zero-mean Gaussian noise. For state propagation, can also be written as:

$$ {\dot{\boldsymbol{x}}} = f\left( {\boldsymbol{x}} \right) + {\boldsymbol{w}} $$
(4)

where \({\boldsymbol{w}}\) denotes a combination of \({\boldsymbol{w}}_{1}\) and \({\boldsymbol{w}}_{2}\). \(Q\) is the system noise covariance matrix.

$$ E\left( {{\boldsymbol{ww}}^{T} } \right) = {\boldsymbol{Q}} $$
(5)

The Jacobian calculation of Eq. (5) can be written as

$$ F\left( {\boldsymbol{x}} \right) = \frac{{\partial f\left( {\boldsymbol{x}} \right)}}{{\partial {\boldsymbol{x}}}} = \left[ {\begin{array}{*{20}c} {{\boldsymbol{0}}_{3 \times 3} } & {{\boldsymbol{I}}_{3 \times 3} } & {{\boldsymbol{0}}_{3 \times 1} } \\ {{\boldsymbol{G}}_{{\text{r}}} + {\boldsymbol{D}}_{{\text{r}}} } & {{\boldsymbol{D}}_{{\text{v}}} } & {{\boldsymbol{D}}_{{\text{B}}} } \\ {{\boldsymbol{0}}_{1 \times 3} } & {{\boldsymbol{0}}_{1 \times 3} } & {{\boldsymbol{0}}_{1 \times 1} } \\ \end{array} } \right] $$
(6)

where \(G_{r}\) denotes the derivative of \({\boldsymbol{a}}_{{\text{g}}}\), \(D_{r} ,D_{v} ,D_{B}\) denote derivatives of \({\boldsymbol{a}}_{{\text{d}}}\). Drags and J4 perturbations have been included for the orbital simulation, as well as the J2 perturbation, to obtain higher estimation accuracy with limited computational burden.

4.2 Measurement Function

Measurement model of the scalar magnitude of the geomagnetic can be written as

$$ y_{{1}} = \sqrt {{\boldsymbol{B}}_{{{\text{mes}}}}^{{\text{T}}} {\boldsymbol{B}}_{{{\text{mes}}}} } \approx \sqrt {{\boldsymbol{B}}_{{{\text{act}}}}^{{\text{T}}} {\boldsymbol{B}}_{{{\text{act}}}} } + n_{{{\text{y1}}}} $$
(7)

the statistics of ny1 are as follows:

$$ E\left( {n_{{{\text{y1}}}} } \right) = 0,E\left( {n_{{{\text{y1}}}} n_{{{\text{y1}}}}^{{\text{T}}} } \right) = \sigma_{{\text{m}}}^{{2}} $$
(8)

the measured dot product of the magnetic field vector and the sun direction vector y2, and with earth direction vector y3, can be shown as

$$ \begin{gathered} y_{{2}} = {\boldsymbol{B}}_{{{\text{mes}}}}^{{\text{T}}} {\boldsymbol{S}}_{{{\text{mes}}}} \approx {\boldsymbol{B}}_{{{\text{act}}}}^{{\text{T}}} {\boldsymbol{S}}_{{{\text{act}}}} + n_{{{\text{y2}}}} \hfill \\ y_{{3}} = {\boldsymbol{B}}_{{{\text{mes}}}}^{{\text{T}}} {\boldsymbol{E}}_{{{\text{mes}}}} \approx {\boldsymbol{B}}_{{{\text{act}}}}^{{\text{T}}} {\boldsymbol{E}}_{{{\text{act}}}} + n_{{{\text{y3}}}} \hfill \\ \end{gathered} $$
(9)

the statistics of ny2 and ny2 are as follows:

$$ \begin{gathered} E\left( {n_{{{\text{y2}}}} } \right) = E\left( {n_{{{\text{y3}}}} } \right) = 0, \hfill \\ E\left( {n_{{{\text{y2}}}} n_{{{\text{y2}}}}^{{\text{T}}} } \right) = \sigma_{{\text{B}}}^{{2}} + {\boldsymbol{B}}_{{{\text{mes}}}}^{{\text{T}}} \left( {{\boldsymbol{I}} - {\boldsymbol{S}}_{{{\text{mes}}}} {\boldsymbol{S}}_{{{\text{mes}}}}^{{\text{T}}} } \right){\boldsymbol{B}}_{{{\text{mes}}}} \sigma_{{\text{S}}}^{{2}} \hfill \\ E\left( {n_{{{\text{y3}}}} n_{{{\text{y3}}}}^{{\text{T}}} } \right) = \sigma_{{\text{B}}}^{{2}} + {\boldsymbol{B}}_{{{\text{mes}}}}^{{\text{T}}} \left( {{\boldsymbol{I}} - {\boldsymbol{E}}_{{{\text{mes}}}} {\boldsymbol{E}}_{{{\text{mes}}}}^{{\text{T}}} } \right){\boldsymbol{E}}_{{{\text{mes}}}} \sigma_{{\text{E}}}^{{2}} \hfill \\ \end{gathered} $$
(10)

The measurement function combined can be written as

$$ \begin{gathered} {\boldsymbol{y}} = h\left( {\boldsymbol{x}} \right) + {\boldsymbol{n}}_{{\text{y}}} \hfill \\ E\left( {{\boldsymbol{n}}_{{\text{y}}} {\boldsymbol{n}}_{{\text{y}}}^{{\text{T}}} } \right) = {\boldsymbol{R}} \hfill \\ \end{gathered} $$
(11)

where ny is a combination of ny1, ny2 and ny3. R is the measurement error covariance matrix. The Jacobian calculation of Eq. (11) can be written as

$$ H\left( {\boldsymbol{x}} \right) = \frac{{\partial h\left( {\boldsymbol{x}} \right)}}{{\partial {\boldsymbol{x}}}} = \left[ \begin{gathered} \begin{array}{*{20}c} {\frac{{\partial y_{{1}} }}{{\partial {\boldsymbol{B}}_{{{\text{act}}}} }}\frac{{\partial {\boldsymbol{B}}_{{{\text{act}}}} }}{{\partial {\boldsymbol{r}}_{{\text{e}}} }}\frac{{\partial {\boldsymbol{r}}_{{\text{e}}} }}{{\partial {\boldsymbol{r}}}}} & {{\mathbf{0}}_{1 \times 4} } \\ {\left( {\frac{{\partial {\boldsymbol{B}}_{{{\text{act}}}} }}{{\partial {\boldsymbol{r}}_{{\text{e}}} }}\frac{{\partial {\boldsymbol{r}}_{{\text{e}}} }}{{\partial {\boldsymbol{r}}}}{\boldsymbol{S}}_{{{\text{act}}}} } \right)^{{\text{T}}} } & {{\mathbf{0}}_{1 \times 4} } \\ \end{array} \hfill \\ \begin{array}{*{20}c} {\left( {\frac{{\partial {\boldsymbol{B}}_{{{\text{act}}}} }}{{\partial {\boldsymbol{r}}_{{\text{e}}} }}\frac{{\partial {\boldsymbol{r}}_{{\text{e}}} }}{{\partial {\boldsymbol{r}}}}{\boldsymbol{E}}_{{{\text{act}}}} } \right)^{{\text{T}}} } & {{\mathbf{0}}_{1 \times 4} } \\ \end{array} \hfill \\ \end{gathered} \right]_{3 \times 7} $$
(12)

where re is the position vector in geocentric coordinates.

4.3 EKF Procedure

The dynamics of orbit can be represented as follows

$$ \begin{gathered} \Delta \dot{\user2{x}}\left( t \right) = {\varvec{F}}\left( t \right)\Delta {\varvec{x}}\left( t \right) + {\varvec{G}}\left( t \right){\varvec{W}} \hfill \\ \Delta {\varvec{y}}\left( t \right) = {\varvec{H}}\left( t \right)\Delta {\varvec{x}}\left( t \right) + {\varvec{V}} \hfill \\ \end{gathered} $$
(13)
  1. (1)

    Equation of the extrapolation value can be shown as

    $$ \begin{gathered} \Delta \hat{\user2{x}}_{k + 1|k} = {{\varvec{\Phi}}}_{k} \Delta \hat{\user2{x}}_{k|k} \hfill \\ {{\varvec{\Phi}}}_{k} = {\mathbf{I}}_{9 \times 9} + {\varvec{F}}\left( t \right)T \hfill \\ \end{gathered} $$
    (14)

    where the state transition matrix F propagates the state vector in each time step T. H is known as the observation matrix, and G maps the process noise into the state vector. xk and xk-1 denote the current and previous state vectors.

  2. (2)

    The covariance matrix of the extrapolation error is formulated as

    $$ {\varvec{P}}_{k + 1|k} = {{\varvec{\Phi}}}_{k} {\varvec{P}}_{k|k} {{\varvec{\Phi}}}_{k}^{\text{T}} + {\varvec{G}}_{k} {\varvec{Q}}_{k} {\varvec{G}}_{k}^{\text{T}} $$
    (15)

    where \({\varvec{Q}}_{k} = \left[ {\begin{array}{*{20}c} {\sigma_{{\text{r}}}^{2} {\mathbf{I}}_{3 \times 3} } & {{\mathbf{0}}_{3 \times 3} } & {{\mathbf{0}}_{3 \times 1} } \\ {{\mathbf{0}}_{3 \times 3} } & {\sigma_{{\text{v}}}^{2} {\mathbf{I}}_{3 \times 3} } & {{\mathbf{0}}_{3 \times 1} } \\ {\mathbf{0}} & {\mathbf{0}} & {\sigma_{{\text{B*}}}^{2} {\mathbf{I}}_{1 \times 1} } \\ \end{array} } \right]_{7 \times 7}\) is the covariance matrix of system noise W.

  3. (3)

    Filter-gain of EKF can be shown as

    $$ {\varvec{K}}_{k + 1} = {\varvec{P}}_{k + 1|k} {\varvec{H}}_{k + 1}^{T} \left( {{\varvec{H}}_{k + 1} {\varvec{P}}_{k + 1|k} {\varvec{H}}_{k + 1}^{T} + {\varvec{R}}_{k + 1} } \right)^{ - 1} $$
    (16)

    where \({\varvec{R}}_{k + 1} = \left[ {\begin{array}{*{20}c} {\sigma_{b}^{2} {\mathbf{I}}_{3 \times 3} } & {{\mathbf{0}}_{3 \times 3} } \\ {{\mathbf{0}}_{3 \times 3} } & {\sigma_{{\text{s}}}^{2} {\mathbf{I}}_{3 \times 3} } \\ \end{array} } \right]_{6 \times 6}\) is the covariance matrix of measurement noise V, which has diagonal elements built of the variances of magnetometer and earth sensor measurement noises \({\sigma }_{b}\), \({\sigma }_{s}\)

    $$ \Delta \hat{\user2{x}}_{k + 1|k + 1} \, = {{\varvec{\Phi}}}_{k} \Delta \hat{\user2{x}}_{k} + {\varvec{K}}_{k + 1} [\Delta {\varvec{y}}_{k + 1} - {\varvec{H}}_{k + 1} {{\varvec{\Phi}}}_{k} \Delta \hat{\user2{x}}_{k|k} ] $$
    (17)
    $$ {\varvec{P}}_{k + 1|k + 1} = \left( {{\mathbf{I}} - {\varvec{K}}_{k + 1} {\varvec{H}}_{k + 1} } \right){\varvec{P}}_{k + 1|k} $$
    (18)

    With the update of the estimation and the covariance matrix of the filtering error shown in (17) and (18), the equations given above represent the Extended Kalman Filter (EKF), which fulfils the recursive estimation.

5 Simulation

Performance of the algorithm and system design was verified based on the ZDPS-2 satellites, which were launched in September 2015. Simulations are based on the equipped and limited ADCS sensors, shown in Table 2.

Table 2. ZDPS-2 ADCS sensors

The following combination types, listed in Table 3, are the simulations to be taken into consideration.

Table 3. Combination and navigation-attitude mode

5.1 Navigation Simulation

Based on the original orbit of ZDPS-2 satellites, the navigation accuracy of each sensitive combination is analyzed and compared. The orbit altitude is 524 km (with eccentricity of 0.00125), and the inclination is 97.389°. As shown in Figs. 5, 6, 7 and Table 4, when the satellite area-to-mass ratio is integrated as B* and brought into the filter state equation, the estimation accuracy is improved by 12.6%, thus the perturbation caused by atmospheric drag is effectively considered for the low-orbit satellite. The full-sensitive combination (mag/sun/earth) proposed in this paper has improved estimation accuracy by 23.0% compared with the mag/sun combination, reaching 1.08 km, 1.16 m/s (RMS); due to the addition of new independent measurement, the improved observability shortens the filter convergence rate from 3.1 h to 1.4 h. Compared to the mag/earth combination, the full-sensitive combination has limited accuracy improvement, but has stronger fault tolerance and anti-interference ability.

Fig. 5.
figure 5

Comparison with state vector B* at 97° inclination

Fig. 6.
figure 6

Position estimation accuracy at 97° inclination

Fig. 7.
figure 7

Velocity estimation accuracy at 97° inclination

Table 4. Position and Velocity estimation accuracy of the navigation system

The comparison simulation group carried out at the orbital inclination of 0°, as shown in Fig. 8 and Table 5. The position accuracy of the mag/sun combination becomes 10.45 km (RMS), due to the 1/3 eclipse period; however the fully-sensitive combination proposed in this paper remains 1.11 km (RMS).

Fig. 8.
figure 8

Position estimation accuracy at 0° inclination

Table 5. Navigation accuracy at 0° orbit inclination

5.2 System Simulation

After the convergence of the navigation sub-system, the full-sensitive attitude filter are calculated with the prior information of the orbit estimation. System estimation error are summarized in Fig. 9 and Table 6. The accuracy of the attitude determination is improved within the full orbit range to 0.347° (RMS). The results show that the navigation and attitude determination system proposed in this paper are full orbit autonomous, with the navigation accuracy of 1.08 km and 1.16 m/s, while the three-axis pointing accuracy meets the basic mission requirements of micro-nano satellites.

Fig. 9.
figure 9

Autonomous system attitude pointing accuracy

Table 6. Summary of improved filter estimation accuracy for the combined navigation and attitude system

6 Conclusion

A full-sensive autonomous navigation and attitude determination system is proposed. With the low-earth-orbit navigation considerations, and without the ground staion support or any other high-precision sensitive components added, the proposed algorithm and system meets the basic platform requirements, and can be a useful exploration for the integration, improvement and practical design of the Micro-nano satellites navigation attitude system.