1 Introduction

The interest for developing satellite orbit propagators has arisen after the launching of Sputnik 1 in 1957 due to primary requirements of predicting future locations of the satellite. Three different types of orbit propagators have been developed since then, namely: analytical, numerical, and semi-analytical. Figure 1 describes the year-wise development of orbit propagators existing in the literature either developed analytically, numerically or semi-analytically. Currently, the most popular numerical propagator is the High Precision Orbit Propagator (HPOP), the commercial propagator of Systems Tool Kit (STK) developed by Analytic Graphic Inc. (AGI), whereas the common analytical propagator is Simplified General Perturbation version 4 (SGP4) and Simplified Deep Space Perturbation version 4 (SDP4) for the two-body equations of motion. The analytical methods are known as general perturbations methods, whereas numerical methods are known as special perturbations methods. The analytical methods were the first used and applied methods in the orbit propagation [1]. Their main advantage is computational efficiency; however, their accuracy is limited due to truncation. On the other hand, the special perturbations methods are characterized by high accuracy, especially for short-term propagation. However, their drawbacks are the limited accuracy for long-term propagation due to round-off error and high computational requirements. The semi-analytical methods were introduced as a solution to this dilemma between precision and computational cost and between the round-off and truncation errors [2].

Fig. 1
figure 1

Development of orbit propagators [2]

A numerical orbit propagator consists of three main components: differential equations, Environment model, and numerical integrator. The importance of accurate propagation methods is obvious in the satellite operations. There are two approaches for computing orbits numerically: Encke’s and Cowell’s method. In modern days, it is common in astrodynamics to use Cowell’s formulation to set up the equations of motion for numerical integration as it is the simplest and most straightforward of all the perturbation methods. An overwhelming advantage is the fact that the solution contains all secular and periodic variations introduced by the perturbing forces [3, 4].

Perturbations are recognised as deviations from a normal, idealized, or undisturbed motion. The perturbative forces acting on the spacecraft (S/C) are either conservative or non-conservative. The total energy for conservation force (e.g., central-body, third-body gravitational, tides effects, etc.) systems is constant, whereas non-conservative force (e.g., solar radiation pressure, drag, thrust, etc.) systems may lose or gain the energy. The major perturbations that affect the motion of an Earth orbiting satellite (refer Fig. 2) include Earth gravitation, atmospheric drag, lunar and solar gravitation, and solar radiation pressure (SRP). Depending on the orbital altitude and physical size of the satellite, the effect of these perturbations may be more or less important.

Fig. 2
figure 2

Forces acting on an Earth orbiting satellite

The numerical propagation requires several areas such as coordinate systems, time, force models, and integration techniques. The coordinate frame is very relevant in highly accurate programs. In general, numerical techniques use fixed, variable, or regularized methods to move the satellite forward through time. The selection of one over another is generally based on the orbit type, but often on what is available. The fixed step methods are chosen mostly due to their popularity and easy implementations [4, 5].

The very high cost of the commercial propagator of AGI motivated us to develop our own high accurate propagator equivalent to HPOP which not only can handle the two-body problem orbit prediction but also the restricted-three body problem in the near future scope. The rest of the paper is organized as follows; in Sect. 2, the mathematical model is described. The numerical computation of the perturbed equations of motion is depicted in Sect. 3. Section 4 describes the SPOP architecture, while Sect. 5 illustrates results and discussion including the potential applications of the SPOP. A concluding discussion is presented in Sect. 6.

2 Mathematical model

The perturbed two-body equations of motion of the satellite in the inertial reference frame can be expressed as

$$ \ddot{\vec{r}} = - \frac{\mu }{{r^{3} }}\vec{r} + \vec{a}_{p} , $$
(1)

where \(\vec{r}\) is the satellite’s geocentric position vector at an instant \(t\), \(\ddot{\vec{r}}\) is combined acceleration of the satellite, \(r\) is the magnitude of \(\vec{r}\), \(\mu\) is the Earth’s gravitational parameter, and \(\vec{a}_{p}\) is the perturbed acceleration acting on the satellite due to gravitational, \(\vec{a}_{g}\), non-gravitational, \(\vec{a}_{{{\text{ng}}}}\), and empirical forces, \(\vec{a}_{{{\text{emp}}}}\), and can be expressed as [5]

$$ \vec{a}_{p} = \vec{a}_{g} + \vec{a}_{{{\text{ng}}}} + \vec{a}_{{{\text{emp}}}} . $$
(2)

The gravitational force \(\vec{a}_{g}\) is the sum of the gravitational forces acting on the satellite

$$ \vec{a}_{g} = \vec{a}_{{cb{\text{Gravity}}}} + \vec{a}_{{3{\text{rd - bodyGravity}}}} + \vec{a}_{{{\text{relativity}}}} + \vec{a}_{{{\text{solidTides}}}} + \vec{a}_{{{\text{oceanTides}}}} + \vec{a}_{{{\text{rotDeformation}}}} , $$
(3)

where \(\vec{a}_{{cb{\text{Gravity}}}}\), \(\vec{a}_{{3{\text{rd - bodyGravity}}}}\), \(\vec{a}_{{{\text{relativity}}}}\), \(\vec{a}_{{{\text{solidTides}}}}\), \(\vec{a}_{{{\text{oceanTides}}}}\), and \(\vec{a}_{{{\text{rotDeformation}}}}\) represent acceleration forces due to central body (Earth) gravity, third-body gravity, relativity, solid tides, ocean tides, and rotational deformation, respectively.

The non-gravitational force \(\vec{a}_{{{\text{ng}}}}\) is the sum of the non-gravitational forces acting on the surfaces of the satellite:

$$ \vec{a}_{{{\text{ng}}}} = \vec{a}_{{{\text{drag}}}} + \vec{a}_{{{\text{srp}}}} + \vec{a}_{{{\text{erp}}}} + \vec{a}_{{{\text{thermalRadiation}}}} , $$
(4)

where \(\vec{a}_{{{\text{drag}}}}\),\(\vec{a}_{{{\text{srp}}}}\),\(\vec{a}_{{{\text{erp}}}}\), and \(\vec{a}_{{{\text{thermalRadiation}}}}\) represent acceleration forces due to the Earth atmospheric drag, solar radiation pressure, Earth radiation pressure, and thermal radiation, respectively. Since the surface forces depend on the shape and orientation of the satellite, the non-gravitational force models are satellite dependent. The acceleration, \(\vec{a}_{{{\text{emp}}}}\) due to empirical forces are the un-modelled forces which act on the satellite due to either a functionally incorrect or incomplete description of the various forces acting on the satellite or inaccurate values for the constant parameters which appear in the force model [6].

The Earth gravity acceleration, being the conservative force, is computed using the spherical harmonic potential. The general equation for the gravitational attraction at any satellite point, \(P\left( {r,\phi ,\lambda } \right)\) uses a spherical harmonic potential equation of the form [4, 7]

$$ U = \frac{\mu }{r}\sum\limits_{l = 0}^{\infty } {\sum\limits_{m = 0}^{l} {\left( {\frac{{R_{ \oplus } }}{r}} \right)^{l} P_{lm} \left( {\sin \left( \phi \right)} \right)\left[ {C_{lm} \cos \left( {m\lambda } \right) + S_{lm} \sin \left( {m\lambda } \right)} \right]} } , $$
(5)

where \(r\) is geocentric distance of the satellite, \(\phi\) is geocentric latitude, \(\lambda\) is the longitude, \(P_{lm}\) is associated Legendre polynomial of degree \(l\) and order \(m\), \(C_{lm}\), \(S_{lm}\) are the gravitational coefficients for the Earth, and \(R_{ \oplus }\) is the Earth’s radius.

We define

$$ \left. \begin{gathered} V_{lm} = \left( {\frac{{R_{ \oplus } }}{r}} \right)^{l + 1} P_{lm} \left( {\sin \phi } \right)\cos \left( {m\lambda } \right) \hfill \\ W_{lm} = \left( {\frac{{R_{ \oplus } }}{r}} \right)^{l + 1} P_{lm} \left( {\sin \phi } \right)\sin \left( {m\lambda } \right) \hfill \\ \end{gathered} \right\}. $$
(6)

Then the gravity potential Eq. (5) may be written as

$$ U = \frac{\mu }{{R_{ \oplus } }}\sum\limits_{l = 0}^{\infty } {\sum\limits_{m = 0}^{l} {\left[ {C_{lm} V_{lm} + S_{lm} W_{lm} } \right]} } . $$
(7)

The terms \(V_{lm}\) and \(W_{lm}\) satisfy the following recurrence relations

$$ \begin{gathered} V_{mm} = \left( {2m - 1} \right)\left[ {\frac{{xR_{ \oplus } }}{{r^{2} }}V_{m - 1,m - 1} - \frac{{yR_{ \oplus } }}{{r^{2} }}W_{m - 1,m - 1} } \right], \hfill \\ W_{mm} = \left( {2m - 1} \right)\left[ {\frac{{xR_{ \oplus } }}{{r^{2} }}W_{m - 1,m - 1} + \frac{{yR_{ \oplus } }}{{r^{2} }}V_{m - 1,m - 1} } \right], \hfill \\ \end{gathered} $$
(8)

and

$$ \begin{gathered} V_{lm} = \left( {\frac{2l - 1}{{l - m}}} \right)\frac{{zR_{ \oplus } }}{{r^{2} }}V_{l - 1,m} - \left( {\frac{l + m - 1}{{l - m}}} \right)\left( {\frac{{R_{ \oplus } }}{r}} \right)^{2} V_{l - 2,m} , \hfill \\ W_{lm} = \left( {\frac{2l - 1}{{l - m}}} \right)\frac{{zR_{ \oplus } }}{{r^{2} }}W_{l - 1,m} - \left( {\frac{l + m - 1}{{l - m}}} \right)\left( {\frac{{R_{ \oplus } }}{r}} \right)^{2} W_{l - 2,m} , \hfill \\ \end{gathered} $$
(9)

where \(\left( {x,y,z} \right)\) are the satellite position components in the Earth body-fixed reference frame. Equation (9) holds for \(l = m + 1\) too, if \(V_{m - 1,m}\) and \(W_{m - 1,m}\) are set to zero. Furthermore,

$$ V_{00} = \frac{{R_{ \oplus } }}{r}{\text{ and }}W_{00} = 0. $$
(10)

To compute all \(V_{lm}\) and \(W_{lm}\) \(\left( {0 \le m \le l \le l_{\max } } \right)\), we first obtain the zonal terms using Eq. (9) with \(m = 0\). The corresponding values \(W_{l0}\) are all identical to zero. Equation (8) gives the first tesseral terms \(V_{11}\) and \(W_{11}\) from \(V_{00}\) which allows all \(V_{l1}\) \(\left( {1 \le l \le l_{\max } } \right)\) to be determined. The recursions described through the Eqs. (8)–(10) are stable [7]. The Earth gravity acceleration,\(a_{{cb{\text{Gravity}}}}\), is obtained by taking the gradient of the potential function \(U\), may be directly computed from the \(V_{lm}\) and \(W_{lm}\) as

$$ a_{{cb{\text{Gravity}}I}} = \sum\limits_{l,m} {\ddot{x}_{lm} } \, , \, a_{{cb{\text{Gravity}}J}} = \sum\limits_{l,m} {\ddot{y}_{lm} } , \, a_{{cb{\text{Gravity}}K}} = \sum\limits_{l,m} {\ddot{z}_{lm} } , $$
(11)

where \(a_{{cb{\text{Gravity}}I}}\), \(a_{{cb{\text{Gravity}}J}}\), and \(a_{{cb{\text{Gravity}}K}}\) are the components of the Earth gravity acceleration in the \(x\), \(y\), and \(z\)-direction, respectively. In Eq. (11), the partial accelerations \(\ddot{x}_{lm}\), \(\ddot{y}_{lm}\), and \(\ddot{z}_{lm}\) are given by

$$ \ddot{x}_{lm} = \left\{ \begin{gathered} - \frac{\mu }{{R_{ \oplus }^{2} }}C_{l0} V_{l - 1,1} , \, m = 0 \hfill \\ \frac{\mu }{{2R_{ \oplus }^{2} }}\left[ {\left( { - C_{lm} V_{l + 1,m + 1} - S_{lm} W_{l + 1,m + 1} } \right) + \frac{{\left( {l - m + 2} \right)!}}{{\left( {l - m} \right)!}}\left( {C_{lm} V_{l + 1,m - 1} + S_{lm} W_{l + 1,m - 1} } \right)} \right], \, m > 0 \hfill \\ \end{gathered} \right. $$
(12)
$$ \ddot{y}_{lm} = \left\{ \begin{gathered} - \frac{\mu }{{R_{ \oplus }^{2} }}C_{l0} W_{l + 1,1} , \, m = 0 \hfill \\ \frac{\mu }{{2R_{ \oplus }^{2} }}\left[ {\left( { - C_{lm} W_{l + 1,m + 1} + S_{lm} V_{l + 1,m + 1} } \right) + \frac{{\left( {l - m + 2} \right)!}}{{\left( {l - m} \right)!}}\left( { - C_{lm} W_{l + 1,m - 1} + S_{lm} V_{l + 1,m - 1} } \right)} \right], \, m > 0 \hfill \\ \end{gathered} \right. $$
(13)
$$ \ddot{z}_{lm} = \frac{\mu }{{R_{ \oplus }^{2} }}\left\{ {\left( {l - m + 1} \right)\left( { - C_{lm} V_{l + 1,m} - S_{lm} W_{l + 1,m} } \right)} \right\}. $$
(14)

The determination of gravitational coefficients is obtained experimentally by reduction and data analysis of artificial satellites and also from gravimetric methods. In this paper, gravitational coefficients values are taken from the Earth Gravity model 1996 (EGM-96).

The satellite acceleration due to drag is the drag force divided by the satellite mass, and is given by [6]

$$ \vec{a}_{{{\text{drag}}}} = - \frac{1}{2}\rho \frac{{C_{d} A}}{m}v_{{{\text{rel}}}}^{2} \frac{{\vec{v}_{{{\text{rel}}}} }}{{|\vec{v}_{{{\text{rel}}}} |}}, $$
(15)

where \(\rho\) is the density of the atmosphere which usually depends on the atmospheric density model,\(C_{d}\) is the drag coefficient (\(C_{d} \in \left[ {1.5, \, 3.0} \right]\)),\(A\) is the satellite’s cross-sectional area,\(m\) is the satellite, and \(\vec{v}_{{{\text{rel}}}}\) is the velocity relative to the rotating atmosphere and is expressed as

$$ \vec{v}_{{{\text{rel}}}} = \vec{v}_{{{\text{ECI}}}} - \vec{\omega }_{ \oplus } \times \vec{r}_{{{\text{ECI}}}} . $$
(16)

In Eq. (16), \(\vec{v}_{{{\text{ECI}}}}\) is the satellite’s inertial velocity in Earth Centred Inertial (ECI) frame,\(\vec{r}_{{{\text{ECI}}}}\) is satellite’s position vector in ECI frame, and \(\vec{\omega }_{ \oplus }\) is the angular velocity of the Earth. The atmospheric density model can be classified into two categories: static and dynamic (time varying) models (refer Fig. 3). The static models rely mainly on the altitude above the surface of the Earth to estimate the atmospheric density. Nevertheless, other factors such as the solar activity are considered in dynamical models. Among different models, variations of Jacchia and MSIS models are widely used.

Fig. 3
figure 3

The Earth atmospheric density models

The acceleration of a satellite by a point mass \(M\) is given by [7]

$$ \vec{a}_{{3{\text{rd - BodyGravity}}}} = \mu_{M} \left( {\frac{{\vec{s} - \vec{r}}}{{|\vec{s} - \vec{r}|^{3} }}} \right), $$
(17)

where \(\mu_{M}\) is the gravitational parameter of the point mass \(M\), and \(\vec{s}\) is the geocentric position vector of the point mass. The value of \(\vec{a}_{{3{\text{rd - BodyGravity}}}}\) refers to an inertial or Newtonian coordinate system in which the Earth is not at rest, but is itself subject to an acceleration

$$ \vec{a}_{{3{\text{rd - bodyGravity}}}} = \mu_{M} \left( {\frac{{\vec{s}}}{{|\vec{s}|^{3} }}} \right), $$
(18)

due to point mass \(M\). Equation (17) and Eq. (18) have to be subtracted to get the second derivative

$$ \vec{a}_{{3{\text{rd - bodyGravity}}}} = \mu_{M} \left( {\frac{{\vec{s} - \vec{r}}}{{|\vec{s} - \vec{r}|^{3} }} - \frac{{\vec{s}}}{{|\vec{s}|^{3} }}} \right), $$
(19)

of the satellite’s geocentric position vector. For the Earth orbiting spacecraft, the dominating third-body gravity forces are the Sun and Moon.

The satellite acceleration due to SRP is the solar radiation pressure force divided by the satellite mass and is computed as [7]

$$ \vec{a}_{{{\text{srp}}}} = - \xi p_{{{\text{SR}}}} \left( {\frac{{C_{r} A_{{{\text{sun}}}} }}{m}} \right)\frac{{\vec{r}_{{{\text{sat}} - {\text{sun}}}} }}{{|\vec{r}_{{{\text{sat}} - {\text{sun}}}} |}}. $$
(20)

In Eq. (20) \(\vec{r}_{{{\text{sat}} - {\text{sun}}}}\) represents the position vector between S/C and the Sun, \(C_{r}\) denotes reflectivity coefficient (\(C_{r} \in \left[ {0, \, 2} \right]\)), \(A_{{{\text{sun}}}}\) represents the exposed S/C area to the Sun, \(p_{{{\text{SR}}}}\) is the SRP at one astronomical unit, and \(\xi\) is the shadow function which is defined as

$$ \left\{ \begin{gathered} \xi = 0 \to {\text{S/C in Full Shadow}} \hfill \\ \xi \in \left( {0, \, 1} \right) \to {\text{S/C in Partial Shadow}} \hfill \\ \xi = 1 \to {\text{S/C in Sunlit}} \hfill \\ \end{gathered} \right.. $$
(21)

In SRP modelling, the shadow factor can be computed using either Earth’s cylindrical shadow or the conical shadow model. The conical shadow model is further described using either spherical or oblate shape of the Earth [8,9,10,11].

In addition to the direct SRP, the radiation emitted by the Earth leads to a small pressure on the satellite. Solar radiation that reflects off the Earth back onto a satellite is known as an albedo. The amount of reflected radiation is about 30% of the incoming solar radiation. Its effect on some satellites can be measurable. Unlike SRP, the albedo is usually separated into specific wavelengths. Acceleration due to central body radiation pressure due to its albedo is computed as

$$ \vec{a}_{{e{\text{rp}}}} = - p\left( {\frac{{C_{r} A_{{{\text{sun}}}} }}{m}} \right)\frac{{\vec{r}_{{{\text{sun}} - {\text{earth}}}} }}{{|\vec{r}_{{{\text{sun}} - {\text{earth}}}} |}}, $$
(22)

where

$$ \begin{gathered} p = p_{e} C_{e} \left( {\frac{{R_{ \oplus } }}{{|\vec{r}_{{{\text{sat}}}} |}}} \right)^{2} \hfill \\ p_{e} = \frac{{L_{s} }}{{4\pi c|\vec{r}_{{{\text{sun}} - {\text{earth}}}} |}}, \, L_{s} = 3.823e^{26} {\text{ Watt,}} \hfill \\ \end{gathered} $$
(23)

and \(C_{e}\) is the reflection coefficient for the Earth’s albedo.

The general relativistic perturbation on the near-Earth satellite can be modelled as [7]

$$ \begin{gathered} \vec{a}_{{{\text{rel}}}} = \frac{\mu }{{cr^{3} }}\left\{ {\left[ {\left( {2\beta + 2\gamma } \right)\frac{\mu }{r} - \gamma \left( {\vec{v} \cdot \vec{v}} \right)} \right]\vec{r} + \left( {2 + 2\gamma } \right)\left( {\vec{r} \cdot \vec{v}} \right)\vec{v}} \right\} + 2\left( {\vec{\Omega } \times \vec{v}} \right) \hfill \\ \, + L\left( {1 + \gamma } \right)\frac{\mu }{{c^{2} r^{3} }}\left[ {\frac{3}{{r^{2} }}\left( {\vec{r} \times \vec{v}} \right)\left( {\vec{r} \cdot \vec{J}} \right) + \left( {\vec{v} \times \vec{J}} \right)} \right], \hfill \\ \end{gathered} $$
(24)

where

$$ \vec{\Omega } \approx \left( {\frac{1 + \gamma }{2}} \right)\dot{\vec{R}}_{{{\text{ES}}}} \times \left[ {\frac{{ - \mu_{ \odot } }}{{c^{2} R^{3}_{{{\text{ES}}}} }}} \right]\vec{R}_{{{\text{ES}}}} . $$
(25)

In Eqs. (24) and (25), \(\vec{r}\) and \(\vec{v}\) are the geocentric position and velocity vectors of S/C, \(r\) is the distance of S/C, \(c\) is the speed of light, \(\mu_{ \odot }\) is the gravitational parameter of the Sun, \(\vec{R}_{{{\text{ES}}}}\) and \(\dot{\vec{R}}_{{{\text{ES}}}}\) are the position and velocity vectors of the Earth with respect to the Sun, \(\vec{J}\) is the Earth angular momentum per unit mass, \(L\) is the Lense-Thirring parameter, \(\beta\) and \(\gamma\) are the parameterized post-Newtonian parameters.

3 Numerical computation

The governing equations of motion (1) are solved using Cowell’s method and single step explicit RK class integrators. In Cowell’s formulation, the second-order differential Eq. (1) of perturbed two-body motion is re-written as a first-order Ordinary Differential Equation (ODE) system

$$ \left. \begin{gathered} \vec{y} = \left[ \begin{gathered} {\vec{r}} \hfill \\ {\dot{\vec{r}}} \hfill \\ \end{gathered} \right] \hfill \\ {\text{and}} \hfill \\ \dot{\vec{y}} = \left[ \begin{gathered} {\dot{\vec{r}}} \hfill \\ - \frac{\mu }{{r^{3} }}\vec{r} + \vec{a}_{p} \hfill \\ \end{gathered} \right] \hfill \\ \end{gathered} \right\}. $$
(26)

To solve the coupled systems of first-order differential Eq. (26), the following Cowell’s algorithm is used.

Cowell’s algorithm: Cowell’s algorithm can be illustrated as:

  1. i.

    Let \(\vec{r} = \vec{r}_{0} ,\vec{v} = \vec{v}_{0}\) at \( \, t = t_{0}\).

  2. ii.

    Compute the time step size \(\Delta t\) by dividing final time \(t_{f}\) by \(n\) steps, \(n_{{{\text{steps}}}} .\)

  3. iii.

    Integrate the velocity and acceleration vectors from 0 to \(n_{{{\text{steps}}}}\) to get \(\vec{r}\) and \(\vec{v}\) by incrementing time \(t\) via \(t = t + \Delta t.\)

  4. iv.

    Get final position and velocity vectors,\(\vec{r}_{f} ,\vec{v}_{f}\), at the final time \(t_{f}\).

The numerical integrators for solving the Eq. (26) can be categorized as either single-step methods or multi-step methods. For single-step methods, the state at a specific time \(\vec{x}\left( {t_{k} } \right)\) is used to compute the state at some future time \(\vec{x}\left( {t_{k} + h} \right)\) through a linear combination of weighted evaluations of the ordinary differential equation at intermediate times \(t_{k} \le t \le t_{k} + h\). Multi-step methods differ in that the state at some future time is estimated using the current state value as well as state values at several previous times. Implicit methods have also been considered for solution of the perturbed two-body problem. The family of explicit RK methods is generally further classified by considering two parameters. The first is the number of “stages”, which refers to the number of function evaluations required at each time step, and the second is the order \(p\), which refers to the local truncation error at each step \(h\) and matches a local Taylor series expansion with an error of \(O\left( h \right)^{p + 1}\). Butcher developed a classification of RK methods, known as the Butcher Tableau, where the methods were arranged based on the number of stages and their order. In a generalized form, an s-stage RK method may be written as [12]

$$ \left. \begin{gathered} k_{i} = f\left( {t_{n} + hc_{i} ,\vec{y}_{n} + h\sum\limits_{j = 1}^{s} {a_{ij} k_{j} } } \right){, }j = 1,...,s \hfill \\ \vec{y}_{n + 1} = \vec{y}_{n} + h\sum\limits_{j = 1}^{s} {b_{j} k_{j} } \hfill \\ \end{gathered} \right\}, $$
(27)

where the integration state vector \(\vec{y}_{n}\) at time \(t_{n}\) is of length \(q\), \(f\left( {t,\vec{y}} \right)\) is the ODE describing the dynamic model and returns a \(q\)-vector, \(h\) is the step size, and the \(a_{ij}\), \(c_{i}\), and \(b_{j}\) coefficients are specific to a given RK scheme. The coefficients are expressed in terms of the Butcher table as shown in Table 1.

Table 1 Butcher table for explicit RK methods [12]

When \(a_{ij} = 0, \, for \, j \ge i\), this yields an explicit RK method in which each of the \(k_{i}\) terms may be determined sequentially. When this is not the case, i.e. the RK scheme is implicit, a nonlinear solver must be used to generate \(k_{i}\). The most common methods of RK-based orbit propagation use explicit schemes, which are easier to implement and benefit from decades of development [5].

4 SPOP architecture

SPOP provides high precision orbit prediction and subsequently orbit products generation for the Earth Orbiting satellite (EOS). Figure 4 shows the schematic computational process diagram of SPOP for the EOS. SPOP has features to handle the satellite initial input parameter given either in terms of state vector (SV) in True-Of-Date (TOD), Earth’s Mean Equator and Mean Equinox of 2000 (EME2000), International Celestial Reference Frame (ICRF), True Equator and Mean Equinox (TEME), Earth Centre Earth Fixed (ECEF) reference frames, or the orbital elements given in terms of Osculating orbital elements, Mixed Spherical, Spherical, Delaunay or Equinoctial orbital elements. The SPOP predicts satellite ephemeris (state vector) in TOD, EME2000, ICRF, TEME, and ECEF frames as well as the osculating elements in TOD, EME2000, ICRF, and TEME frames.

Fig. 4
figure 4

SPOP computational schematic procedure for the EOS

In the SPOP, the transformation from Earth centre inertial to the Earth centre Earth fixed (ECEF) and vice-versa is based on Fifth Fundamental Catalog (FK5) theory, i.e., IAU76/80 precession-nutation theory [3, 4]. Various atmospheric density models such as Exponential, Harris-Priester (HP), Jachiaa class (Jacchia-Roberts JR71, Jacchia 1977 J77), and MSIS class (MSIS-86, MSIS-90, NRLMSIS-00) models are incorporated to compute the Earth’s atmospheric density. The users can select various types of RK class of integrators with the fixed time step size which includes fourth-order classical RK method (RK4), fourth-order RK Gill method, RK-Fehlberg methods: RKF-5(4) with 6 stages, RKF-5(6) with 8 stages, RKF-7(8) with 13 stages, RKF-8(9) with 17 stages; Dormand-Prince methods: DP-5(4) with 6 stages, and DP-7(8) with 13 stages [7]. The Sun and Moon state vectors are computed using either low-precision analytical formula [3, 7] or high precision computation through JPL Developmental Ephemerides (DE) using Chebyshev polynomials [4, 7, 12] or directly using JPL SPICE NAIF Toolkit [13].

In astrodynamics, the orbit products generation can be achieved either dealing separately once the satellite ephemeris is generated through the selected numerical integrator module or can be embedded inside the integrator module. In the SPOP, orbital products generation modules are embedded inside RK class integrator module as depicted in Fig. 5.

Fig. 5
figure 5

Orbit products generation flowchart in the SPOP

5 Results and discussion

The outputs generated by the SPOP are verified with the commercial package HPOP/STK of AGI by considering two Indian Remote Sensing (IRS) LEO satellites: MICROSAT-1 (~ 350 km altitude), and RESOURCESAT-2 (~ 800 km altitude). The same input parameters, force models, and orbit integrator were chosen in both SPOP and HPOP/STK. The position and velocity comparisons for both spacecraft are depicted in Figs. 6 and 7, respectively. From Figs. 6 and 7, it can be seen that the obtained results from SPOP for both satellites closely match with HPOP/STK. There is 180 m in position difference and 21.4 cm/s in velocity difference for MICROSAT-2 after 1 day of propagation whereas the position difference of 2.7 m and 0.3 cm/s in velocity difference after 1 day of propagation for RESOURCESAT-2 with respect to HPOP/STK.

Fig. 6
figure 6

SPOP and HPOP/STK position difference for MICROSAT-1 and RESOURCESAT-2 for 1 day using 70 × 70 gravity model coefficients of EGM-96, SRP, and MSIS-90 density model and RKF-7(8) integrator with fixed step size considering their declared Orbit Determination (OD) of 26/Feb/2020

Fig. 7
figure 7

SPOP and HPOP/STK velocity difference for MICROSAT-1 and RESOURCESAT-2 for 1 day using 70 × 70 gravity model coefficients of EGM-96, SRP, MSIS-90 density model, and RKF-7(8) integrator considering their declared OD of 26/Feb/2020

The SPOP is currently being used in the ISRO operational activities such as solar eclipse predictions for the IRS satellites, ground station (G/S) precise look angles generation for IRS satellites tracking, ephemeris generation for Antenna angles calibration package of ISRO Launch Vehicle supporting G/S, program angles generation for PSLV Stage 4 (PS4) second orbit tracking G/S to confirm passivation effects during the ISRO launches, The Sun and Moon Look angles prediction for a G/S to measure its antenna pointing accuracy and gain to system temperature ratio (G/T). The first two applications of the SPOP are discussed here.

  1. I.

    The solar eclipse event occurred on 21/June/2020 for all active IRS LEO satellites was predicted using the SPOP and event for all satellites matched closely with HPOP/STK having a maximum difference not more than 30 s in solar eclipse entry and exit time. Table 2 depicts the solar eclipse entry, exit, peak time and solar intensity computed for MICROSAT-1 and RESOURCESAT-2 satellites using the SPOP. Solar intensity variations due to the Moon shadow for MICROSAT-1 (M01) and RESOURCESAT-2 (RS2) are given in Figs. 8 and 9, respectively.

  2. II.

    Precise X-band program angles (azimuth and elevation angles) were generated every day using the SPOP for a week during Oct 2019 over Bangalore-4 (BL4) ground station (G/S) for ASTROSAT-1 (AS1), and AS1 was tracked in X-band (for the payload dump) by BL4, and number of samples were compared with BL4 G/S collected data and it had good match of less than 0.5%. The number of samples received by BL4 G/S in the program mode was same as in the Main Auto mode. Figure 10 shows accuracy comparison for BL4 G/S Main Auto Angle and Program Angle. From the figure, it is observed that IRS satellite can be tracked smoothly in X-band without losing data based on the SPOP program angles.

Table 2 Solar eclipse entry and exit times for MICROSAT-1 and RESOURCESAT-2 on 21/June/2020 using the SPOP
Fig. 8
figure 8

MICROSAT-1 solar intensity variations on 21/June/2020 during the solar eclipse

Fig. 9
figure 9

RESOURCESAT-2 solar intensity variations on 21/June/2020 during the solar eclipse

Fig. 10
figure 10

BL4 G/S Auto Angle and Program Angle Difference, Azimuth < 0.04° and Elevation < 0.03° on 16/Oct/2019

6 Conclusions

In this article, the Satellite Precise Orbit Propagator is illustrated to predict the orbit for the Earth orbiting satellites. The accuracy of the SPOP is demonstrated by choosing two Earth’s orbiting satellites having altitudes of 350 km and 800 km, respectively. A very satisfactory result is found with respect to the commercial package HPOP/STK of AGI. The potential applications and operational uses of the SPOP are also described. In future, it will be further enhanced by considering latest IAU 2010 convention for nutation and precession computation, and accounting other perturbation forces such as Earth tides, Ocean tides, and thrust force. Furthermore, the SPOP will be extended to predict ephemeris and orbital products for the interplanetary missions like Chandrayaan-2, Mars Orbiter Mission, and other planets bound missions.