I am working on maneuver detection and I could use your help.
Here is my work : I have a known maneuver at a time t and two SP vectors, one before the date of the maneuver and one after. I have to detect this maneuver and to have the Delta_V and the duration Delta_t. So what I am doing is that I propagate forward the state before the maneuver and the state after backward. I assume constant acceleration a=+/-Delta_V/2Delta_t. I would like to find the Delta_V and Delta_t that minimize the distance d=f(Delta_t, Delta_V) between the states. First question, am I in the good way ?
To minimize this, what I was thinking is to initiate a maneuver into the propagator using the class ConstantThrustManeuver and to iterate with different values of Delta_t and Delta_V until the distance reaches a minimum.
You could use orbit determination, by using two position-velocity measurements (one corresponding
to your state before and one corresponding to your state after), not estimating orbit itself (i.e. changing the orbital parameter drivers to not selected), and estimate the maneuvers parameters. This corresponds in fact to maneuver calibration.
I looked more precisely at the available parameters in the Maneuver, PropulsionModel and ManeuverTriggers. Unfortunately, this does not map preperly to you needs, in particular there is currently no way to set up a ParameterDriver with the maneuver duration.
So you should probably ignore my suggest and go back to your initial solution. Sorry for the noise.
Hi,
Indeed maneuver duration is not something we are able to determine with the current state of Orekit.
It would be a good addition though.
Is it worth opening an issue or shall we discuss the feasibility of doing it first?
It is certainly feasible.
The maneuver induces an acceleration a_man = dV/dt ⇒ ΔV = a_man Δt.
So if we change start/stop time, this means we add or subtract a small ΔV during the small Δt interval.
Hence from a spacecraft state Jacobian point of view, we have the partial derivatives: ∂V/∂Δt = a_man,
so the partials are really straightforward to compute.
I think it is worth opening an issue for that, and that we should have both start and stop time that could be estimated, or start time and duration. Start/stop are easier that start/duration because they correspond to naturally independent variable.