An algorithm based on differential dynamic programming for low-thrust trajectories