Hey everyone!
I am trying to simulate a Sun-Earth L1 Halo Orbit. As I do not have an initial PV guess, I am making use of the RichardsonExpansion class and I then apply a differentialCorrection(). At a first sight, everything seems fine looking at the final plot.
I am now trying to compare the initial position with the one I get after propagating the initial state of exactly one period. For this, I have used the CR3BPSystem.getRealAPV() method and I get a position delta of about 1 km if calling this method in the rotating frame (i.e., CR3BPSystem.getRotatingFrame()). If instead I try to retrieve the position delta in the ICRF (i.e., calling CR3BPSystem.getRealAPV(final_state.getAbsPVA(), final_date, FramesFactory.getICRF())), then I get a delta of about 90 km.
I also tried to compute the position delta starting directly from the initial and final adimensional states (in the rotating frame), by scalar multiplying the position by Ddim. In this case I get a position delta of 100 m.
Could you please help me understanding which is the correct way to compute such a delta? I would clearly expect a higher delta in the ICRF but now I am only considering the CR3BPForceModel in the propagator. Also why am I getting different results considering the getRealAPV method instead of directly computing the delta with the dimensional position computed from the adimensional propagated state (multiplied by Ddim)?
As my aim is to perform some visibility analysis between different Halo orbits in the Solar System (in different 3-body systems) I think it is reasonable to move to the ICRF..
I attach my code!
HaloExample.py (9.2 KB)
Many thanks and best regards,
Samuele
P.S. I see in the documentation that the getRealAPV method should get the initial date. But if if I put the initial date instead of the final date I get deltas of milions of meters…
.