(Space Calc Logo)
Space Calc
Doing the math, so you don't have to.

Hohmann Waiting Time

In a typical round trip, you start at a planet (say, Earth), then execute a Hohmann transfer to another planet (say, Mars). However, you cannot return immediately, since Earth and Mars are then not in the right places. You must wait a certain amount of time before taking another Hohmann transfer back.

How long will that be?

Working out the problem turns out to be relatively straightforward. (For maintaining intuition, I'll continue with the example of visiting Mars, but note that the analysis remains generally applicable.)

First, we define four times:

  • \(t_0\): the time of departure from Earth.
  • \(t_1\): the time of arrival at Mars.
  • \(t_2\): the time of departure from Mars.
  • \(t_3\): the time of arrival at Earth.

Next, we define the (heliocentric) angular position of these planets at given times. As time progresses over the planet's orbital period, these angles sweep out \(2 \pi\) radians of passage over a single planetary year (a period of time \(P_E\) and \(P_M\) for Earth and Mars, respectively). We are only interested in their values at the four points above, though. E.g. \(\theta_{M,2}\) is the angle of Mars at time \(t_2\).

We need to define how these angles relate to each other. Let's call \(t_H := t_1-t_0\) the duration of the Hohmann transfer; notice that it is the same going out as coming back. For the time period \(t_0\) to \(t_1\), the spacecraft is on a Hohmann transfer from Earth to Mars. The angles relate as:

\begin{align*} \theta_{E,0} + (2\pi)(t_H/P_E) &= \theta_{E,1}\\ \theta_{M,0} + (2\pi)(t_H/P_M) &= \theta_{M,1} \end{align*}

In English, this just says that the (angular) positions of both Earth and Mars advance over the time of the outgoing transfer.

At Mars, we'll wait for some unknown time \(t_W\) (waiting time). Again, the planets' angular positions advance:

\begin{align*} \theta_{E,1} + (2\pi)(t_W/P_E) &= \theta_{E,2}\\ \theta_{M,1} + (2\pi)(t_W/P_M) &= \theta_{M,2} \end{align*}

Finally, coming back, we do another Hohmann:

\begin{align*} \theta_{E,2} + (2\pi)(t_H/P_E) &= \theta_{E,3}\\ \theta_{M,2} + (2\pi)(t_H/P_M) &= \theta_{M,3} \end{align*}

We still need some more information to solve this problem, though. The first two pieces are that a Hohmann transfer always takes you an angle \(\pi\) around the center:

\begin{align*} \theta_{E,0} + \pi &= \theta_{M,1}\\ \theta_{M,2} + \pi &= \theta_{E,3} \end{align*}

The first equation says that the spacecraft departing Earth must arrive at Mars after going halfway around the orbit, while the second says that the spacecraft leaving Mars must arrive back at Earth, again after a half-orbit. We need to be more-careful, though. Although the angles for the Earth and Mars can be taken to increase monotonically, one of them might do a full orbit while the other has not. We therefore need to be able to add/subtract multiples of \(2\pi\) of the angles to get them to agree:

\begin{align*} \theta_{E,0} + \pi + 2\pi k_0 &= \theta_{M,1}\text{, where }k_0 \in \mathbb{Z}\\ \theta_{M,2} + \pi + 2\pi k_1 &= \theta_{E,3}\text{, where }k_1 \in \mathbb{Z} \end{align*}

We need just one more equation. The entire problem can be shifted by a constant amount around the Sun. To constrain it, without loss of generality we can simply set:

\[ \theta_{E,0} = 0\\ k_0 = 0 \]

(I'll also rename the remaining \(k_1\) to just \(k\).)

We can rewrite this huge mess of equations as a matrix equation to impose some semblance of sanity on the complexity:

\[ \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & -1 & 0 & 0 & 0 \\ 0 & 0 & 0 & -1 & 0 & 0 & 1 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & -1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 1 & -1 & 0 & 0 & 0 \\ 0 & 1 & -1 & 0 & 0 & 0 & 0 & 0 & 2\pi/P_E \\ 0 & 0 & 0 & 0 & 0 & 1 & -1 & 0 & 2\pi/P_M \\ 0 & 0 & 1 & -1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & -1 & 0 \end{bmatrix} \begin{bmatrix} \theta_{E,0} \\ \theta_{E,1} \\ \theta_{E,2} \\ \theta_{E,3} \\ \theta_{M,0} \\ \theta_{M,1} \\ \theta_{M,2} \\ \theta_{M,3} \\ t_W \end{bmatrix} = \begin{bmatrix} -\pi \\ -\pi + (2 \pi) k \\ 0 \\ (-2 \pi) (t_H/P_E) \\ (-2 \pi) (t_H/P_M) \\ 0 \\ 0 \\ (-2 \pi) (t_H/P_E) \\ (-2 \pi) (t_H/P_M) \end{bmatrix} \]

Solving this is not too difficult (I did it by hand first before checking my result with sympy). The only part of it we care about is the value for \(t_W\), which works out to be:

\[ t_W = \frac{ P_M~(P_E~(k-1) + 2~t_H) }{ P_E - P_M } \]

Because \(k\) is just some integer, we can remove that \(-1\). Generalizing the notation a little, so that the home planet has period \(P_0\) and the visited planet has period \(P_1\), we get:

\[\boxed{ t_W = \frac{ P_1~(P_0~k + 2~t_H) }{ P_0 - P_1 } }\]

For \(k\), any value can be chosen so long as the resulting \(t_W\) is nonnegative.


This was the result I gave here (the Google+ question which nerd-sniped me into doing this whole thing). I'm fairly convinced it's correct, but, it's still a little unsatisfactory. Choosing \(k\) from the integers is obnoxious. It would be nice to choose it from the natural numbers (i.e., \(\mathbb{N} := \{1,2,3,\cdots\}\)), and thereby get an increasing sequence of possible departure dates, starting from a value that is the earliest.

Requiring that \(t_W \geq 0\), some algebra shows that, if \(P_0>P_1\), then we must have \(k \geq (-2~t_H)/(P_0)\). Similarly, if \(P_0<P_1\), then \(k \leq (-2~t_H)/(P_0)\). And, of course, if \(P_0=P_1\), then the planets are co-orbital and you cannot travel between them with Hohmann transfers (so we shall assume this is not the case forthwith).

We now want to generate a sequence of \(k\) values from natural-valued \(n\) values that produces the correct result either way:

\begin{align*} k(n) &= \left\lceil (-2~t_H)/(P_0) \right\rceil - 1 + n\text{, when }P_0 > P_1\\ k(n) &= \left\lfloor (-2~t_H)/(P_0) \right\rfloor + 1 - n\text{, when }P_1 > P_0 \end{align*}

Some ad-hoc finagling with the intersection of these lines in the middle produces:

\[ k(n) = \left\lfloor \frac{-2~t_H}{P_0} \right\rfloor + \frac{1}{2} + \left(\frac{| P_0 - P_1 |}{ P_0 - P_1 }\right)\left(n-\frac{1}{2}\right) \]

By substituting back into our answer, we can get an equation that tells you every possible waiting time, starting from the first, indexed by \(n \in \mathbb{N} = \{1,2,3,\cdots\}\):

\[\boxed{ t_W = \frac{ P_1~\left(P_0~\left( \left\lfloor \frac{-2~t_H}{P_0} \right\rfloor + \frac{1}{2} + \left(\frac{| P_0 - P_1 |}{ P_0 - P_1 }\right)\left(n-\frac{1}{2}\right) \right) + 2~t_H\right) }{ P_0 - P_1 } }\]

I'm less-confident of this result than the previous but, as we'll see below, it seems to work—at-least for the \(P_0<P_1\) case I tested.


Let's check and demonstrate our work by returning to the Earth/Mars example we started with.

The actual values are (note sidereal value for \(P_i\) whereas Gregorian calendar used to convert from months):

\begin{align*} P_0 &= 365.256363004\\ P_1 &= 686.980\\ t_H &=\text{ }\unicode{x201C}\text{8.5 months}\unicode{x201D}\text{ } \approx 259\text{ days}\\ t_W &=\text{ }\unicode{x201C}\text{14.9 months}\unicode{x201D}\text{ } \approx 454\text{ days} \end{align*}

According to our first formula, we get:

\(k\)\(t_W\)
\(-3\)\(\approx 1235\text{ days}\)
\(-2\)\(\approx 455\text{ days}\)
\(-1\)\(\approx -325\text{ days}\)
\( 0\)\(\approx -1105\text{ days}\)
\( 1\)\(\approx -1885\text{ days}\)
\( 2\)\(\approx -2665\text{ days}\)
\( 3\)\(\approx -3445\text{ days}\)

Therefore, \(k\) must be \(-2\) or less. Notice also the separation between the possible waiting times. They should come in multiples of the transfer window times (because if you miss your departure date for the aligned planets, you'll have to wait until the next transfer window). For Earth/Mars, this is \(\unicode{x201C}\text{26 months}\unicode{x201D}\text{ } \approx 791\text{ days}\). Indeed, we see that successive launch times differ by roughly this many days. The agreement is to within \(1.5\%\) or so, which is pretty good given the imprecision of \(t_H\) and the expected \(t_W\), as well as the astronomical fact that the orbits are imperfect.

For our second formula, we have:

\(n\)\(t_W\)
\(1\)\(\approx 455\text{ days}\)
\(2\)\(\approx 1235\text{ days}\)
\(3\)\(\approx 2015\text{ days}\)

This confirms that the formula works when \(P_0<P_1\), but the case for \(P_0>P_1\) remains untested.