Orbit Transfer Optimizer

Purpose

Find the best way to transfer from one orbit around a body to another orbit around the same body, using two burns (one intermediate orbit).

How To Use

  1. Select the desired planet / moon / star. This has no effect on the geometry of the best transfer orbit; only on the magnitudes of values like km and m/s. (more bodies may be added if users ask nicely)

  2. Enter in the initial orbit of the spacecraft. This can be obtained from Kerbal Engineer Redux, for example. The initial orbit will appear in red.

  3. Enter in the desired final orbit for the spacecraft. The final orbit will appear in blue.

  4. Push 'Calculate Best Orbit'. May take a few seconds to calculate.

  5. See the transfer orbit appear in green on the Orbit view. The black arrows show the location of the inital and final burns (but not their magnitude). (The arrows may not be visible because they are coincident with the other arrows.)

  6. To see information about the two burns required, and of the transfer orbit, click the Elements tab.

  7. Use the ViewBox slider to zoom in and out if needed.

For hyperbolic orbits

For hyperbolic orbits or for a semimajor axis larger than that allowed by the slider, enter the desired value into the box. The slider will turn red but it should still work. Hyperbolic orbits are one place where the ν limit sliders are useful, to prevent the burn from being too far away.

Interpretation of 'Elements' output

Total ΔV
The total velocity change in meters/second to carry out this orbital transfer.
Burn 1
The burn from the initial orbit to the transfer orbit.
Burn 2
The burn from the transfer orbit to the final orbit.
Orbital Speed
Speed immediately before the burn takes place.
Altitude
Altitude (above the surface) when the burn takes place.
KSP Navball
The heading that your navball should read when you execute the burn. The first number is the 0-360° direction (north-east-south-west) and the second number is the -90 to 90 ° (radial in - radial out)
LVLH Heading
The velocity change of the burn in the pre-burn Local Vertical, Local Horizontal frame. Format is {Prograde, Normal, Radial}. This can be used as a sanity check.
Cart. Vel.
The velocity (before the burn) in cartesian coordinates: {X, Y, Z}
Cart. ΔV
The burn velocity change in cartesian coordinates: {X, Y, Z}
Transfer Orbit
The Keplerian elements of the transfer orbit.
a
Semimajor axis
e
eccentricity
i
inclination
Ω
Longitude of Ascending Node
ω
Argument of periapsis
Long. of Peri.
Longitude of periapsis ϖ
Periapsis Radius
radius to the planet's center
Periapsis Radius
radius to the planet's surface. Note that atmosphere and planetary surface are not taken into account during the optimizer calculation.

Theory:

Orbits are made of collections of points (and associated velocities) in space. To find the lowest-delta-V transfer between two orbits, we iterate over points on each of the orbits.

Assuming a massive body (such as planet) at the origin, and two given points in space, there usually* one DOF (Degree Of Freedom) to choose a conic-section orbit that passes through those points. When we associate velocities with each of those points, there is some orbit that passes through the points that requires the lowest amount of delta-V.

*There are 2 DOF for points exactly opposite one another, for example.

Details

Will this always find the lowest-delta-V transfer?

No.

Why use Longitude of Periapsis ϖ rather than Argument of Periapsis ω ?

Kerbal engineer gives Longitude of PE ϖ. To convert from ω remember that ϖ = Ω + ω.

Will this calculate interplanetary transfers?

Not quite. This program only handles one gravitating body, and does not take into account a planet or moon's finite Sphere of Influence. However, if your target is a moon with very small escape velocity (like Gilly) you can use this program to find a good way to transfer from Eve orbit into Gilly's orbit and intersect it.

Will this let me rendezvous with another craft?

Not directly, but if you are not under time constraints, one you have transferred to the other craft's orbit, you can then start a rendezvous procedure.

What's the radius of the sphere?

The sphere corresponds to the height of the atmosphere. The calculator itself does not take into account atmospheres, aerobraking, or the planetary surface(!) ... it is displayed as a visual indicator. To see whether the transfer orbit will intersect the atmosphere, look at the Periapsis Altitude (above the surface) on the Elements tab, or visually check whether the transfer orbit enter the atmosphere.

© 2015 Jacob Schwartz under the FreeCDF license. From the Mathematica package OrbitTransferOptimizer`.

Fork me on GitHub