Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace Hohmann Transfer with Bi-Impulsive Transfers #1057

Merged
merged 4 commits into from Oct 15, 2018

Conversation

lamont-granquist
Copy link
Collaborator

The existing Hohmann Transfer planner only does circular-to-circular
coplanar transfer planning.

The new functionality does full Bi-Impulsive Transfer planning with
non-coplanar, non-elliptical orbits, including hyperbolic source
and target orbits.

It does this with a first pass through a simulated annealing algorithm
that does global optimization to try to find the lowest basin. It then
hands that off to Levenburg-Marquardt to find the local minimum.

Since the simulated annealing algorithm uses a random search, it may
not find exactly the same answer every single time. The answers it finds
should be nearby and nearly the same dV but typically off by a few
orbital periods of either the source or destination or both (when the
search space has many possible orbits -- it should pick one of the
better ones, but not necessarily the absolute best).

Signed-off-by: Lamont Granquist lamont@scriptkiddie.org

The existing Hohmann Transfer planner only does circular-to-circular
coplanar transfer planning.

The new functionality does full Bi-Impulsive Transfer planning with
non-coplanar, non-elliptical orbits, including hyperbolic source
and target orbits.

It does this with a first pass through a simulated annealing algorithm
that does global optimization to try to find the lowest basin.  It then
hands that off to Levenburg-Marquardt to find the local minimum.

Since the simulated annealing algorithm uses a random search, it may
not find exactly the same answer every single time. The answers it finds
should be nearby and nearly the same dV but typically off by a few
orbital periods of either the source or destination or both (when the
search space has many possible orbits -- it should pick one of the
better ones, but not necessarily the absolute best).

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
@lamont-granquist
Copy link
Collaborator Author

lamont-granquist commented Oct 14, 2018

NOTE: Bi-Impulsive transfers (two-burn) are not Bi-Elliptic transfers. Bi-Elliptic transfers are actually Tri-Impulsive (three burn).

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
this also rolls back to the old LambertSolver, the GoodingSolver
is clearly buggy.

Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
@lamont-granquist
Copy link
Collaborator Author

screen shot 2018-10-14 at 8 38 09 pm

This is what the new "Hohmann" transfer planner window now looks like.

The drop down allows for scheduling the burn at a specific user-selected time using the familiar widget. Otherwise the time of the burn is optimized.

The "intercept only" button is really the "mono-impulsive" option for doing flybys, impactors, launching nuclear missiles at things, where the second burn is of no consequence so is not included in the cost.

About all I can think of that is missing is a way to specify a transfer window period to search (minimum time in the future and/or maximum time in the future) and/or the maximum transfer time period to search -- plus a bit of code cleanup in #1058. I think my UX brain threw an exception though and it is time to ship and playtest.

@lamont-granquist lamont-granquist merged commit 3cd01ca into dev Oct 15, 2018
@lamont-granquist lamont-granquist deleted the lcg/bi-impulsive-transfers branch October 15, 2018 03:45
@Gordon-Dry
Copy link

What does "fractional target period offset" mean?
(Using dev 808)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants