I have been experimenting with propagation of Moon-orbiting satellites. In particular, of GRAIL-A.
In order to obtain state vectors to use as starting points for my propagation, and to compare the results of it, I used the ephemeris available from JPL Horizons. I have been evaluating my propagation results by calculating the distance at every output time to the ephemerides provided by JPL Horizons at the same times.
However, it has come to my attention that the "accuracy" of my propagation (to be more specific, the distance to the positions returned by JPL Horizons) seems to be very sensitive to the specific epoch from which the state vector is taken, even when comparing results for the same time period.
I focused on the period from 2012-Apr-04 00:29:00 UTC and 2012-Apr-04 10:00:00 UTC, i.e., a period of approximately 10 hours. I did the following experiment:
- Take 30 different state vectors from the ephemerides output by JPL Horizons, at time intervals separated by 1 minute, from 2012-Apr-04 00:00:00 UTC to 2012-Apr-04 00:29:00 UTC.
- Use these 30 different starting points to propagate the trajectory independently in each case until 2012-Apr-04 10:00:00 UTC.
- We therefore obtain 30 different propagated trajectories, some starting earlier than others. To homogenise the compared ranges, I extracted from all of them only the results from 2012-Apr-04 00:29:00 UTC to 2012-Apr-04 10:00:00 UTC. During propagation, I outputted position and velocity every 1 minute.
- For each one, I calculated the distance at each time point to the ephemerides provided by JPL Horizons, and plotted it against time.
The following plot shows the comparison of such distances for the 30 different propagations. The X axis indicates the time in hours from 2012-Apr-04 00:29:00 UTC. The Y axis indicates distance in meters to the corresponding position reported by JPL Horizons. Each line corresponds to a trajectory calculated from a different starting point, whose epochs are listed in the legend.
As it can be seen, the errors differ quite a lot simply by changing the epoch at which the initial state vector for propagation is chosen!
From private discussions, it has been suggested that this could be due to the fact that likely JPL Horizons is storing and providing ephemerides for GRAIL-A and other spaceships in the form of Chebyshev polynomials and doing interpolation for the specific time points requested by users, or some other similar interpolation approach, in a way similar to how celestial bodies ephemerides are provided in JPL DE ephemerides.
Since I am currently interested in exploring the effect of other more subtle forces (such as radiation pressure) in Moon-orbiting spacecraft, this is a bit problematic, since it adds a source of error that overcomes the error due to not modelling such forces.
Therefore, I would like to ask if there is any available source for accurate, interpolation-free state vectors for GRAIL-A? I guess an alternative would be finding out the specific epochs at which the different interpolation intervals begin/end for GRAIL-A in JPL Horizons, since state vectors at those times would be as free as possible of interpolation error, but I have not been able to figure out a way to find out when these would be.