Closed jorgepiloto closed 3 years ago
I have been thinking how to approach this issue during the last days... Since Orekit
expects the deltaVs
to be passed as arguments, we are forced to replicate the logic behind how maneuvers compute those particular values.
From my point of view, previous fact is not the think we are looking to test, but if the maneuvers are properly executed at apses locations. I will try to open a draft pull request and we could better discuss there :memo:
Closing this! Lambert impulsive maneuver's do not require to be tested as there is enough bibliography and resources in the original poliastro's repository :+1:
This issue originates due to the one in https://github.com/poliastro/poliastro/issues/905.
Orekit provides a collection of maneuvers, among which impulsive ones are available. However,
poliastro
andorekit
logics apply in a different way when dealing with maneuvers.The poliastro's approach: only impulsive maneuvers are available at the moment:
hohmann
,bielliptic
andlambert
. Those provide the necessary three-dimensionaldV
at particular instants of time. Because previously cited maneuvers are constrained in the sense of their geometry, points at which the impulses occur, etc..., computation of times for the impulses is done internally as they take place in well known orbit places (usually apses lines).The orekit's approach: a general model for impulse maneuver is created an event, initial orbit, desired
dV
and theIsp
of the spacecraft. This last parameter is used for the calculation of the new mass after the impulse has been performed, see this orekit line. Notice that an event instance is required. Orekit provides lots of event detectors, among whichApsideDetector
is included. Once the maneuver has been created, it can be added to internal orbit propagator, which will consider it when propagating the orbit.My idea is to build a
orekit_maneuvers.py
module holding previous impulsive maneuvers, defined by using the necessary event detectors. Those maneuvers can be then applied to customOrekitOrbit
instances introducing a new methodapply_maneuver
, similarly to poliastro. Although this API approach is the same that the one in poliastro, computations are done by the Orekit software and thus, validation between both is possible.