A digression on Halo orbits

MontBlanc2012

Active member
Joined
Aug 13, 2017
Messages
138
Reaction score
26
Points
28
In this note, I want to talk about the definition of Halo orbits in the context of the previous posts on Lissajous orbits:

Dialing-up arbitrary Lagrange Point orbits

Dialing-up a planar Lyapunov orbit

Dialing-up a vertical Lyapunov orbit

A digression on Lissajous orbits

Sun-Earth General Lissajous Orbit Datasets

Sun-Mars General Lissajous Orbit Datasets

Sun-Vesta General Lissajous Orbit Datasets

In brief, those posts have presented solutions of the equations of motion of a vessel on a centre-manifold of a general Lissajous orbit about the Lagrange points L1 and L2 in the Elliptical Restricted Three Body Problem (ER3BP). Datasets with which to find solutions have been constructed for the Earth-Moon, Sun-Earth, Sun-Mars and Sun-Vesta systems.

Specific cases of Lagrange point orbits - vertical and planar Lyapunov orbits - have been discussed for the Earth-Moon system and particular examples given. However, in the course of all of this, I've deliberately side-stepped discussing possibly the best known kind of Lissajous orbit - a Halo orbit. In large measure, this is because they are the most complicated. It is time now to look at these orbits more closely. But before actually calculating a Halo orbit (or, more specifically, the initial state vectors - position and velocity - of a vessel on a Halo orbit), we need to understand what a Halo orbit is and how it relates to the work on Lissajous orbit presented in earlier posts. Hence this digression.

What is a Halo orbit?
Many readers will know that a Halo orbit in the Earth-Moon system is a Lagrange Point orbit that, when seen from Earth makes it appear that the spacecraft orbits the Moon and never crossing the face of the Moon or disappearing behind the Moon. Orbits of the kind, aside from being simply rather elegant, offer some particular advantages e.g., in terms of ensuring continuous communication with the far side of the Moon.

So, how does this concept of a Halo orbit relate to earlier posts? Well, a Halo orbit is just a very specific kind of general Lissajous orbit. As a quick recipe: Lissajous orbits are so named because their shape is driven by two fundamental frequencies: one fundamental frequency, [MATH]\omega[/MATH], in the 'in-plane' direction (relative to the Moon's orbital plane around the Earth) and one fundamental frequency, [MATH]\lambda[/MATH], in the 'out-of-plane' direction (again relative the Moon's orbital plane around the Earth. A Halo orbit, then, is a general Lissajous orbit for which the following condition holds:

[math]\omega = \lambda[/math]
If this condition is satisfied, then the complicated pattern of a general Lissajous orbit collapses into one where the orbit forms a closed loop - one that just happens to enclose the Moon - hence, executing a 'halo' orbit around the Moon.

[N.B. For operational reasons, one may wish to impose other conditions on Halo orbits - e.g., that they must be of sufficient amplitude to ensure direct line-of-sight with the primary - but in this note, I'll ignore these operational constraints.]

In general, this condition of equal frequencies is not satisfied for Lissajous orbits. To construct a Halo orbit, we have to choose Lissajous orbit parameters that ensure that it is satisfied. Now, as it turns out, the [math]\omega[/math] and [math]\lambda[/math] are functions of the Moon's orbital eccentricity, [math]e[/math]; a scale parameter for the 'in-plane' direction, [math]d\alpha_1[/math]; and a second scale parameter for the 'out-of-plane' direction [math]d\alpha_2[/math]. Although we don't have analytical expressions for the two fundamental frequencies in terms of these parameters, we do have high-order series expansions for them in terms of these quantities. The coefficients of these expansions are given in the general Lissajous orbit datasets accompanying earlier posts. In other words, we have expansions:

[math]\omega(e,d\alpha_1,d\alpha_2) = \sum_p \sum_k \sum_q c^\omega_{p,k,q} \,e^p \,d\alpha_1^k \,d\alpha_2^q[/math]
and

[math]\lambda(e,d\alpha_1,d\alpha_2) = \sum_p \sum_k \sum_q c^\lambda_{p,k,q} \,e^p \,d\alpha_1^k \,d\alpha_2^q[/math]
such that [math]p+k+q \le 9[/math] and where [math]c^\omega_{p,k,q}[/math] and [math]c^\lambda_{p,k,q}[/math] are coefficients extracted fro the relevant dataset .xlsx spreadsheet.

For example, using the EM L1 dataset (see Dialing-up arbitrary Lagrange Point orbits), we have (for the first few terms):

[math]\omega(e,d\alpha_1,d\alpha_2) = 2.33443 + 0.356740\,e^2 -179.207\,d\alpha_1^2 -3.61596\,d\alpha_2^2 + \dots[/math]
and

[math]\lambda(e,d\alpha_1,d\alpha_2) = 2.26887 + 0.418175197\,e^2 -40.1458\,d\alpha_1^2-14.4268\,d\alpha_2^2 + \dots[/math]
Now, the orbital eccentricity, [math]e[/math], is a known quantity which we can calculate from the known orbit of the Moon around the Earth. Although this will vary a little, a typical value will be around 0.055. But we still have to determine [math]d\alpha_1[/math] and [math]d\alpha_2[/math]. We do this by imposing the condition that:

[math]\omega(e,d\alpha_1,d\alpha_2) = \lambda(e,d\alpha_1,d\alpha_2)[/math]
and then solving for [math]d\alpha_1[/math] given a particular [math]d\alpha_2[/math] for some known value of [math]e[/math]. In general, we can't solve this problem analytically so we have to resort to numerical methods. We could use a general root-finding algorithm (e.g. Newton-Raphson) but, there is an easier way which is to write the solution as a power series expansion. So, let's suppose that we know [math]e[/math] and specify a particular [math]d\alpha_2[/math]. What we want is a series expansion that gives the required solution for [math]d\alpha_1[/math] that satisfies [math]\omega = \lambda[/math], i.e.,

[math]d\alpha_1^* = \sum_p \sum_q \gamma^\omega_{p,q} \,e^p \,d\alpha_2^q[/math]
As an illustration, if in our EM L1 example we solve this to second order, we find that:

[math]d\alpha_1^* = 0.0175218 -0.0104409\,e^2 + 5.02606\,d\alpha_2^2 + \dots[/math]
A couple of things to not about this:

1. To save the reader of having to calculate these expansions for themselves, I've pre-calculated the expansions for L1 and L2 of the Earth-Moon, Sun-Earth, Sun-Mars and Sun-Vesta systems for which general Lissajous datasets have already been calculated. These expansions can be found in the attached .xlsx spreadsheet together with a small utility to enumerate the expansions. (I'll give some illustrations later in this post.)

2. [math]\omega[/math], [math]\lambda[/math], [math]d\alpha_1[/math] and [math]d\alpha_2[/math] relate to the normalised units of the ER3BP theory such that time is measured in radians and distance is also dimensionless such that a distance of one init corresponds to the distance between the primary and secondary gravitating bodies (e.g., between the Earth and the Moon, or between the Sun and the Earth). To convert to a regular coordinate system, one has to use the conversion routines shown in [insert link]. However, as a rough guide, for the Earth-Moon system if we choose a scale parameter of [math]d\alpha_1 = 0.01[/math], that corresponds to a scale parameter of roughly 0.01*385000 km = 3,850 km.

3. You may note from the expansion that [math]d\alpha_1[/math[ (the scale parameter in the 'in-plane' direction) has a minimum value of [math]0.0175218 -0.0104409\,e^2[/math] which for [math]e=0.055[/math] is about 0.0174902 (corresponding to ~6,740 km). This means that Halo orbits have a minimum size. Very roughly, the 'in-plane' end-to-end distance of this minimal Halo orbit is about six times the scale parameter, or around 40,000 km. In other words, the smallest possible Halo orbit about L1 is not small. In fact, Halo orbits generally come in just two sizes: 'big' and 'even bigger'. There is no such thing as a 'small' Halo orbit.

4. For the smallest size Halo orbit ([math]d\alpha_1 = 0.0174902[/math]), you will note that [math]d\alpha_2[/math] is zero - i.e., the orbit has no 'out-of-plane' component. So, the smallest possible Halo orbit is just a planar Lyapunov orbit. As the [math]d\alpha_2[/math] scale parameter increases, the Halo orbit begins to stand more and more upright. Examples of this will be given later.

As an example, let's calculate the [math]d\alpha_1[/math] parameter of an EM L1 Halo orbit for which [math]d\alpha_2 = 0.0175[/math] (and [math]e = 0.055[/math]). Using the series expansion coefficients and calculation widget included in the attached .xlsx spreadsheet, we calculate that [math]d\alpha_1 = 0.0191536[/math]. From this, we calculate the values of the 'in-plane' and 'out-of-plane' angular frequencies using the series expansions given in the .xlsx spreadsheet attached to Dialing-up arbitrary Lagrange Point orbits:

[math]\omega = 2.27663[/math]
and

[math]\lambda = 2.27663[/math]
In other words, our condition [math]\omega = \lambda[/math] is satisfied (to at least six digits).

Yay!

We now have all that we need to calculate Halo orbits for the EM L1 when [math]d\alpha_2 = 0.0175[/math] But we could choose another value of [math]d\alpha_2[/math] (0.01, say) and go through the same exercise. Here, we calculate that:

[math]d\alpha_1 = 0.0180048[/math]
and

[math]\omega = \lambda = 2.280752[/math]
OK, so we now know how to calculate parameters for Halo orbits. But what does [math]\omega = \lambda = 2.280752[/math] mean? Well, basically, these angular frequencies say that for every one orbit that the Moon completes around the Earth, a vessel in the EM L1 Halo orbit (with [math]d\alpha_2 = 0.01[/math]) will complete 2.28 laps around the Halo orbit. In other words, the orbital period of the Halo orbit is roughly 27.3 / 2.28 = 12.0 days. For the Sun-Earth system the same angular frequency would mean that for every one orbit of the Earth around the Sun (i.e, a year), a vessel would complete 2.28 Halo orbits. In that particular case, in a SE L2 mission lasting, say, 10 years, the vessel would complete just 22.8 laps around the Halo orbit. And for the minor body, Vesta, which has an orbital period of about 3.6 years, a vessel parked in a Halo orbit at Vesta will take about one and a half years to complete one Lap. Spacecraft do not exactly race around Halo orbits.

The halo orbit spreadsheet widget
The attached .xlsx spreadsheet sets out the series expansion solutions of [math]d\alpha_1[/math] in terms of orbital eccentricity $e$ and the 'out-of-plane' scale parameter [math]d\alpha_2[/math]. The spreadsheet consists of eight sheets - one for each of L1 and L2 of the Earth-Moon, Sun-Earth, Sun-Mars and Sun-Vesta. All parameters and coefficients refer to the somewhat abstract normalised ER3BP theory. To convert back to a 'real' coordinate system, one has to use the Python tools set out in Dialing-up arbitrary Lagrange Point orbits.

As an example, for L1 of the EM L1 model, the sheet looks like this. The first block of numbers contains the coefficients of the series expansion of the expression for [math]d\alpha_1[/math]; and the second block allows one to input the orbital eccentricity [math]e[/math] and scale parameter [math]d\alpha_2[/math] (yellow input cells) and the spreadsheet will return the corresponding Halo orbit value for [math]d\alpha_1[/math] (blue cell).

Screenshot-2018-10-30-at-3-11-17-PM.png


[N.B. You should note that because a series expansion is being used, all of these Lissajous and Halo orbit tools will not work if you use too large a value for the scale parameters. Generally, Halo orbits are large scale structures and they sit close to the edge of where the series expansions break down. So, when set scale parameters, you should take some care in understanding the physical meaning of the numbers that you are entering. In short, use with caution.]
 

Attachments

  • halo.xlsx.zip
    19.3 KB · Views: 7

Notebook

Addon Developer
Addon Developer
News Reporter
Donator
Joined
Nov 20, 2007
Messages
11,815
Reaction score
640
Points
188
Fascinating, I only understood up to
If this condition is satisfied, then the complicated pattern of a general Lissajous orbit collapses into one where the orbit forms a closed loop - one that just happens to enclose the Moon - hence, executing a 'halo' orbit around the Moon.
, but I'll keep practising!



N.
 

MontBlanc2012

Active member
Joined
Aug 13, 2017
Messages
138
Reaction score
26
Points
28
Fascinating, I only understood up to
Quote:
If this condition is satisfied, then the complicated pattern of a general Lissajous orbit collapses into one where the orbit forms a closed loop - one that just happens to enclose the Moon - hence, executing a 'halo' orbit around the Moon.
, but I'll keep practising!

I'm going to work through a number of examples and attach them to the relevant posts - so, even though the arcane maths may not be entirely clear, the mechanics of constructing the state vectors of a Halo orbit should be.

After that, I'm going to show how to 'lock' a vessel onto a Halo orbit, starting from the initial state vectors calculated using this approach. This will serve as a proxy for active station keeping and provide Halo orbit targets for Orbinauts to rendezvous with, etc.

Ultimately, all of this can be automated and be wrapped in some form of MFD, I daresay.
 
Top