This is a report I wrote that walks through methods for determining the initial conditions for HALO orbits, and explains the process for differential correction of those initial conditions to a nominal periodic solution. Finally, the nominal orbit is than used in the implementation of a station keeping algorithm.
MATLAB downloads and additional plots and animations can be found below the pdf.
Rotating 3D view of a HALO orbit about L1.
The below animations were made prior to the report, during the testing of station keeping code - the station keeping strategy you see in the animation is not the same implemented in the report. The mass ratio, mu, in these examples is 0.04.
Uncorrected HALO orbit deviation from nominal over time. (Deviations are exaggerated programatically).
Station keeping implemented to a HALO orbit deviation from nominal over time. (Deviations are exaggerated programatically, red x = maneuver burn).
Nominal, Uncorrected, and Station-Kept Trajectories from the above example.
Example of station keeping performed on a long duration L1 orbit - similar to SOHO (again, not the same station keeping as the final report).