Optimal nonlinear feedback control of spacecraft rendezvous with finite low thrust between libration orbits

Abstract

This paper presents the nonlinear closed-loop feedback control strategy for the spacecraft rendezvous problem with finite low thrust between libration orbits in the Sun–Earth system. The model of spacecraft rendezvous takes the perturbations in initial states, the actuator saturation limits, the measurement errors, and the external disturbance forces into consideration from an engineering point of view. The proposed nonlinear closed-loop feedback control strategy is not analytically explicit; rather, it is implemented by a rapid re-computation of the open-loop optimal control at each update instant. To guarantee the computational efficiency, a novel numerical algorithm for solving the open-loop optimal control is given. With the aid of the quasilinearization method, the open-loop optimal control problem is replaced successfully by a series of sparse symmetrical linear equations coupled with linear complementary problem, and the computational efficiency can be significantly increased. The numerical simulations of spacecraft rendezvous problems in the paper well demonstrate the robustness, high precision, and dominant real-time merits of the proposed closed-loop feedback control strategy.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

References

  1. 1.

    Gómez, G., Lo, M.W., Masdemont, J.J.: Libration Point Orbits and Applications, World Scientific Publishing (2003)

  2. 2.

    Aram, A., Zohoor, H., Sohrabpour, S.: Space station on spatial periodic orbits around the Moon. Sci. Iran. B. 18(3), 393–397 (2011)

    Article  Google Scholar 

  3. 3.

    Raftery, M., Hoffman, J.: International space station as a base camp for exploration beyond low Earth orbit. Acta. Astronaut. 85(4–5), 25–32 (2013)

    Article  Google Scholar 

  4. 4.

    Li, Z., Yang, X.B., Gao, H.J.: Autonomous impulsive rendezvous for spacecraft under orbital uncertainty and thruster faults. J. Frankl. Inst. Eng. Appl. Math. 350(9), 2455–2473 (2012)

    Article  MathSciNet  Google Scholar 

  5. 5.

    Gao, X.Y., Teo, K.L., Duan, G.R.: Robust H\(\infty \) control of spacecraft rendezvous on elliptical orbit. J. Frankl. Inst. Eng. Appl. Math. 349(8), 2515–2529 (2012)

    Article  MathSciNet  Google Scholar 

  6. 6.

    Luo, Y.Z., Zhang, J., Li, H.Y., Tang, G.J.: Interactive optimization approach for optimal impulsive rendezvous using primer vector and evolutionary algorithms. Acta. Astronaut. 67(3–4), 396–405 (2010)

    Article  Google Scholar 

  7. 7.

    Luo, Y.Z., Liang, L.B., Wang, H., Tang, G.J.: Quantitative performance for spacecraft rendezvous trajectory safety. J. Guid. Control Dyn. 34(4), 1264–1269 (2011)

    Article  Google Scholar 

  8. 8.

    Volle, M.: Optimal variable-specific-impulse rendezvous trajectories between Halo orbits. In: 19th International Symposium on Space Flight Dynamics. Japan Society for Aeronautical and Space Sciences and ISTS, Kanazawa, Japan (2006)

  9. 9.

    Marinescu, A., Nicolae, A., Dumitrache, M.: Optimal low-thrust libration points rendezvous in Earth-moon system. In: AIAA Guidance, Navigation, and Control Conference and Exhibit, AIAA-99-4050, Portland, USA, pp. 535–540 (1999)

  10. 10.

    Marinescu, A., Dumitrache, M.: The nonlinear problem of the optimal libration points rendezvous in Earth-moon system. In: AIAA/AAS Astrodynamics Specialist Conference, AIAA-2000-4433, Denver, USA, pp. 564–571 (2000)

  11. 11.

    Peng, H.J., Yang, C.F., Li, Y.P., Zhang, S., Chen, B.S.: Surrogate-based parameter optimization and optimal control for optimal trajectory of Halo orbit rendezvous. Aerosp. Sci. Technol. 26(1), 176–184 (2013)

    Article  Google Scholar 

  12. 12.

    Salmani, M., Büskens, C.: Real-time control of optimal low-thrust transfer to the Sun–Earth L1 halo orbit in the bicircular four-body problem. Acta. Astronaut. 69(9–10), 882–891 (2011)

    Article  Google Scholar 

  13. 13.

    Xin, M., Balakrishnan, S.N., Pernicka, H.J.: Multiple spacecraft formation control with \(\theta \)-D method. IET Control Theory Appl. 1(2), 485–493 (2007)

    Article  Google Scholar 

  14. 14.

    Hu, Q.L.: Robust adaptive sliding mode attitude maneuvering and vibration damping of three-axis-stabilized flexible spacecraft with actuator saturation limits. Nonlinear Dyn. 55(4), 301–321 (2009)

    Google Scholar 

  15. 15.

    Yang, X.B., Cao, X.B., Gao, H.J.: Sampled-data control for relative position holding of spacecraft rendezvous with thrust nonlinearity. IEEE Trans. Ind. Electron. 59(2), 1146–1153 (2012)

    Google Scholar 

  16. 16.

    Lian, Y.J., Meng, Y.H., Tang, G.J., Liu, L.H.: Constant-thrust glideslope guidance algorithm for time-fixed rendezvous in real halo orbit. Acta. Astronaut. 79, 241–252 (2012)

    Article  Google Scholar 

  17. 17.

    Wen, H., Jin, D.P., Hu, H.Y.: Optimal feedback control of the deployment of a tethered subsatellite subject to perturbations. Nonlinear Dyn. 51(4), 501–514 (2008)

    Article  MATH  MathSciNet  Google Scholar 

  18. 18.

    Wen, H., Jin, D.P., Hu, H.Y.: Infinite-horizon control for retrieving a tethered subsatellite via an elastic tether. J. Guid. Control Dyn. 31(4), 899–906 (2008)

    Article  MathSciNet  Google Scholar 

  19. 19.

    Awrejcewicz, J., Tomczak, K., Lamarque, C.-H.: Controlling system with impacts. Int. J. Bifurc. Chaos 9(3), 547–553 (1999)

    Article  MATH  Google Scholar 

  20. 20.

    Betts, J.T.: Survey of numerical methods for trajectory optimization. J. Guid. Control Dyn. 21(2), 193–207 (1998)

    Article  MATH  Google Scholar 

  21. 21.

    Conway, B.A.: A survey of methods available for the numerical optimization of continuous dynamic systems. J. Optim. Theory. Appl. 152(2), 271–306 (2012)

    Article  MATH  MathSciNet  Google Scholar 

  22. 22.

    Williams, P.: Application of pseudospectral methods for receding horizon control. J. Guid. Control Dyn. 27(2), 310–314 (2004)

    Google Scholar 

  23. 23.

    Yan, H., Fahroo, F., Ross, I.M.: Optimal feedback control laws by Legendre pseudospectral approximations. In: Proceedings of the American Control Conference, Arlington, USA, pp. 2388–2393 (2001)

  24. 24.

    Guo, T., Jiang, F.H., Li, J.F.: Homotopic approach and pseudospectral method applied jointly to low thrust trajectory optimization. Acta. Astronaut. 71(2–3), 38–50 (2012)

    Article  Google Scholar 

  25. 25.

    Andrianov, I.V., Awrejcewicz, J.: Solutions in the Fourier series form, Gibbs phenomena and Padé approximants. J. Sound. Vib. 245(4), 753–756 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  26. 26.

    Peng, H.J., Gao, Q., Wu, Z.G., Zhong, W.X.: Efficient sparse approach for solving receding-horizon control problems. J. Guid. Control Dyn. 36(6), 1864–1872 (2013)

    Article  Google Scholar 

  27. 27.

    Arnold, V.I.: Mathematical Methods of Classical Mechanics. Springer, New York (1989)

    Google Scholar 

  28. 28.

    Peng, H.J., Gao, Q., Wu, Z.G., Zhong, W.X.: Symplectic approaches for solving two-point boundary-value problems. J. Guid. Control Dyn. 35(2), 653–658 (2012)

    Article  Google Scholar 

Download references

Acknowledgments

The authors are grateful for the financial support of the National Science Foundation of China (11102031), Fundamental Research Funds for Central Universities (DUT13LK25), Program Funded by Liaoning Province Education Administration (L2013015), and the National Basic Research Program of China (2010CB832704).

Author information

Affiliations

Authors

Corresponding author

Correspondence to Haijun Peng.

Appendix: The detailed expression of the formulae in some equations

Appendix: The detailed expression of the formulae in some equations

It is easy to verify that the elements \(\mathbf{K}_{u,v}^j \left( u,v=1,2,\right. \left. 3,4 \right) \) and \(\mathbf{f}_i^j \left( {i=1,2,3,4} \right) \) in Eqs. (35)–(38) can be given by

$$\begin{aligned} \mathbf{K}_{11}^j&= \int \limits _{t_{j-1} }^{t_j } {N_1 N_1 \left[ {\mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\left( \tau \right) \mathbf{B}^\mathrm{T}\left( \tau \right) } \right] \hbox {d}\tau }, \end{aligned}$$
(117)
$$\begin{aligned} \mathbf{K}_{12}^j \!&= \!\int \limits _{t_{j-1} }^{t_j } {N_1 \left[ {\left( {{ \dot{\mathbf{M}}}\otimes \mathbf{I}} \right) \!-\!\left( {\mathbf{M}\otimes \mathbf{A}\left( \tau \right) } \right) } \right] \hbox {d}\tau } \!=\!\left( {\mathbf{K}_{21}^j } \right) ^\mathrm{T},\end{aligned}$$
(118)
$$\begin{aligned} \mathbf{K}_{13}^j \!&= \!\int \limits _{t_{j-1} }^{t_j } {N_1 \left[ {\mathbf{{\underline{N}}}\otimes \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\left( \tau \right) \mathbf{B}^\mathrm{T}\left( \tau \right) } \right] \hbox {d}\tau } \!=\!\left( {\mathbf{K}_{31}^j } \right) ^\mathrm{T},\end{aligned}$$
(119)
$$\begin{aligned} \mathbf{K}_{14}^j \!&= \!\int \limits _{t_{j-1} }^{t_j } {N_1 N_n \left[ {\mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\left( \tau \right) \mathbf{B}^\mathrm{T}\left( \tau \right) } \right] \hbox {d}\tau } \!=\!\left( {\mathbf{K}_{41}^j } \right) ^\mathrm{T},\end{aligned}$$
(120)
$$\begin{aligned} \mathbf{f}_1^j&= -\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_1 \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } -\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_1 \mathbf{w}\left( \tau \right) \hbox {d}\tau }\nonumber \\&-\left( \; {\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_1 \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^{T}\hbox {d}\tau } } \right) \left( {{\varvec{\underline{\upbeta }}}^{j}\hbox {-}{\bar{\varvec{\upbeta }}}^{j}} \right) ,\end{aligned}$$
(121)
$$\begin{aligned} \mathbf{K}_{22}^j&= \int \limits _{t_{j-1} }^{t_j } {\left[ {\mathbf{M}^\mathrm{T}\mathbf{M}\otimes \mathbf{Q}\left( \tau \right) } \right] \hbox {d}\tau },\end{aligned}$$
(122)
$$\begin{aligned} \mathbf{K}_{23}^j \!&= \!\int \limits _{t_{j-1} }^{t_j } {\left[ {\left( {{\mathbf{{\underline{N}}}\dot{\mathbf{M}}}^\mathrm{T}\otimes \mathbf{I}} \right) -\left( \mathbf{{\underline{N}M}^\mathrm{T}\otimes \mathbf{A}^\mathrm{T}\left( \tau \right) } \right) } \right] \hbox {d}\tau } \!=\!\left( {\mathbf{K}_{32}^j } \right) ^\mathrm{T},\end{aligned}$$
(123)
$$\begin{aligned} \mathbf{K}_{24}^j \!&= \!\int \limits _{t_{j-1} }^{t_j } {N_n \left[ {\left( {{\dot{\mathbf{M}}}^\mathrm{T}\otimes \mathbf{I}} \right) -\left( {\mathbf{M}^\mathrm{T}\otimes \mathbf{A}^\mathrm{T}\left( \tau \right) } \right) } \right] \hbox {d}\tau } \!=\!\left( {\mathbf{K}_{42}^j } \right) ^\mathrm{T},\end{aligned}$$
(124)
$$\begin{aligned} \mathbf{f}_2^j&= \int \limits _{t_{j-1} }^{t_j } {\left( {\mathbf{M}\otimes \mathbf{I}} \right) ^\mathrm{T}\mathbf{Q}\left( \tau \right) \mathbf{x}_\mathrm{d} \hbox {d}\tau },\end{aligned}$$
(125)
$$\begin{aligned} \mathbf{K}_{33}^j&= \int \limits _{t_{j-1} }^{t_j } {\left[ \mathbf{{\underline{N}}^\mathrm{T}\mathbf{{\underline{N}}}\otimes \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\left( \tau \right) \mathbf{B}^\mathrm{T}\left( \tau \right) } \right] \hbox {d}\tau },\end{aligned}$$
(126)
$$\begin{aligned} \mathbf{K}_{34}^j&= \int \limits _{t_{j-1} }^{t_j } N_n \left[ \left( \mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\left( \tau \right) \mathbf{B}^\mathrm{T}\left( \tau \right) \right) \right] \hbox {d}\tau =\left( {\mathbf{K}_{43}^j } \right) ^\mathrm{T},\end{aligned}$$
(127)
$$\begin{aligned} \mathbf{f}_3^j&= -\int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } -\int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{w}\left( \tau \right) \hbox {d}\tau }\nonumber \\&-\left( \; {\int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^{T}\hbox {d}\tau } } \right) \left( {{\varvec{\underline{\upbeta }}}^{j}\hbox {-}{\varvec{\bar{\upbeta }}}^{j}} \right) ,\end{aligned}$$
(128)
$$\begin{aligned} \mathbf{K}_{44}^j&= \int \limits _{t_{j-1} }^{t_j } {N_n N_n \left[ {\mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\left( \tau \right) \mathbf{B}^\mathrm{T}\left( \tau \right) } \right] \hbox {d}\tau },\end{aligned}$$
(129)
$$\begin{aligned} \mathbf{f}_4^j&= -\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_n \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } -\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_n \mathbf{w}\left( \tau \right) \hbox {d}\tau }\nonumber \\&-\left( \; {\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_n \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^{T}\hbox {d}\tau } } \right) \left( {{\varvec{\underline{\upbeta }}}^{j}\hbox {-}{\varvec{\bar{\upbeta }}}^{j}} \right) . \end{aligned}$$
(130)

Similarly, it is easy to verify that the elements \(\mathbf{\zeta }_{pq}^j \left( {p,q=1,2} \right) \) in Eqs. (58)–(59) can be given by

$$\begin{aligned} \mathbf{\zeta }_{11}^j&= -\left( {\mathbf{E}_u^\mathrm{T} +\mathbf{K}_{12}^j } \right) \left( {\mathbf{K}_{22}^j } \right) ^{-1}\nonumber \\&\times \left( {\mathbf{K}_{23}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\mathbf{K}_{32}^j \left( {\mathbf{K}_{22}^j } \right) ^{-1}\mathbf{f}_2^j -\mathbf{f}_2^j } \right) \nonumber \\&+\left( {\mathbf{E}_u^\mathrm{T} +\mathbf{K}_{12}^j } \right) \left( {\mathbf{K}_{22}^j } \right) ^{-1}\mathbf{K}_{23}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\nonumber \\&\times \left( \;{\int \limits _{t_{j-1} }^{t_j }\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } +\int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{w}\left( \tau \right) \hbox {d}\tau } \right) \nonumber \\&-\,\mathbf{K}_{13}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\mathbf{K}_{32}^j \left( {\mathbf{K}_{22}^j } \right) ^{-1}\mathbf{f}_2^j +\mathbf{K}_{13}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\nonumber \\&\times \left( \; {\int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } +\int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{w}\left( \tau \right) \hbox {d}\tau } } \right) \nonumber \\&-\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_1 \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } -\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_1 \mathbf{w}\left( \tau \right) \hbox {d}\tau },\end{aligned}$$
(131)
$$\begin{aligned} \mathbf{\zeta }_{12}^j&= -\left( {\mathbf{E}_u^\mathrm{T} +\mathbf{K}_{12}^j } \right) \left( {\mathbf{K}_{22}^j } \right) ^{-1}\mathbf{K}_{23}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\nonumber \\&\times \int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^\mathrm{T}\hbox {d}\tau } \nonumber \\&-\mathbf{K}_{43}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^\mathrm{T}\hbox {d}\tau }\nonumber \\&+\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_1 \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^\mathrm{T}\hbox {d}\tau },\end{aligned}$$
(132)
$$\begin{aligned} \mathbf{\zeta }_{21}^j&= -\left( {\mathbf{K}_{42}^j -\mathbf{E}_\mathrm{d}^\mathrm{T} } \right) \left( {\mathbf{K}_{22}^j } \right) ^{-1}\nonumber \\&\times \left( {\mathbf{K}_{23}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\mathbf{K}_{32}^j \left( {\mathbf{K}_{22}^j } \right) ^{-1}\mathbf{f}_2^j -\mathbf{f}_2^j } \right) \nonumber \\&+\left( {\mathbf{K}_{42}^j -\mathbf{E}_\mathrm{d}^\mathrm{T} } \right) \left( {\mathbf{K}_{22}^j } \right) ^{-1}\mathbf{K}_{23}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\nonumber \\&\times \left( \; {\int \limits _{t_{j-1} }^{t_j } \mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } +\int \limits _{t_{j-1} }^{t_j } \mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{w}\left( \tau \right) \hbox {d}\tau \right) \nonumber \\&-\mathbf{K}_{43}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\mathbf{K}_{32}^j \left( {\mathbf{K}_{22}^j } \right) ^{-1}\mathbf{f}_2^j +\mathbf{K}_{43}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\nonumber \\&\times \left( {\int \limits _{t_{j-1} }^{t_j } \mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } +\int \limits _{t_{j-1} }^{t_j } \mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{w}\left( \tau \right) \hbox {d}\tau \right) \nonumber \\&-\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_n \mathbf{B}\left( \tau \right) \mathbf{u}_\mathrm{d} \hbox {d}\tau } -\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_n \mathbf{w}\left( \tau \right) \hbox {d}\tau } \end{aligned}$$
(133)
$$\begin{aligned} \mathbf{\zeta }_{22}^j&= -\left( {\mathbf{K}_{42}^j -\mathbf{E}_\mathrm{d}^\mathrm{T} } \right) \left( {\mathbf{K}_{22}^j } \right) ^{-1}\mathbf{K}_{23}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\nonumber \\&\times \int \limits _{t_{j-1} }^{t_j } {\mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^\mathrm{T}\hbox {d}\tau } \nonumber \\&-\mathbf{K}_{43}^j \left( {\mathbf{K}_{aa}^j } \right) ^{-1}\int \limits _{t_{j-1} }^{t_j } \mathbf{{\underline{N}}}^\mathrm{T}\otimes \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^\mathrm{T}\hbox {d}\tau \nonumber \\&+\int \limits _{t_{j-1} }^{t_j } {\mathbf{N}_n \mathbf{B}\left( \tau \right) \mathbf{R}^{-1}\mathbf{C}^\mathrm{T}\hbox {d}\tau }. \end{aligned}$$
(134)

Rights and permissions

Reprints and Permissions

About this article

Cite this article

Peng, H., Jiang, X. & Chen, B. Optimal nonlinear feedback control of spacecraft rendezvous with finite low thrust between libration orbits. Nonlinear Dyn 76, 1611–1632 (2014). https://doi.org/10.1007/s11071-013-1233-9

Download citation

Keywords

  • Spacecraft rendezvous
  • Circular restricted three-body problem
  • Optimal feedback control
  • Finite low thrust
  • Libration point orbits