Manifolds (divergent and convergent) for Halo and Lissajous orbits
[manifold1, ..., manifoldN] = CL_3b_manifold(env, orb, t_orb, period, epsilon, dtint, pars)
Computes manifolds for Halo or Lissajous orbits.
It can compute all four branches specified by the value of pars:
- pars = "conv": convergent, inward
- pars = "-conv": convergent, outward
- pars = "div": divergent, inward
- pars = "-div": divergent, outward
Manifolds in output are given in the same order as pars.
Notes:
- Before using this function, it is needed to create an "environment" (env) for the chosen libration point and the chosen system (see CL_3b_environment).
- A Halo or Lissajous orbit can be computed using CL_3b_halo or CL_3b_lissajous.
- For the definition of adimensional quantities, see CL_3b_environment.
- In the literature it is said epsilon should be ~1.e-9, but as the method is accurate enough, we recommend 1.e-5.
(struct) Lagrangian point structure
Lissajous or Halo orbit (adimensional position and velocity) (6xN)
Time instants at which the orbit is given (adimensional) (1xN)
Tolerance. Recommended value: 1.e-5
Period used to estimate the monodromy. It corresponds to omegahalo for the halo
Relative (to t_orb) output times (>=0) (1xP) (adimensional)
(string) Type of manifold to be computed: "conv", "-conv", "div", "-div" (1xP)
Generated manifolds (6 x P x N): 6 corresponds to position and velocity, P is the size of each trajectory making up the manifold, N is the number of trajectories)
CNES - DCT/SB
// Example with an Halo orbit: // Build structure for L2 and "Sun-EarthMoon" system: env = CL_3b_environment("S-EM","L2"); // Generate a Halo orbit: Az = 150.e6 / env.D; // => adimensional direction = "pro"; t_orb = linspace(0,180*86400,50) * env.OMEGA; // => adimensional [orb,omega] = CL_3b_halo(env, Az, direction, t_orb); // Compute manifolds: epsilon = 1.e-5; dtint = (0:0.5:200)*86400 * env.OMEGA; // adimensional conv_out = CL_3b_manifold(env, orb, t_orb, omega, epsilon, dtint, "-conv"); // Plot orbit and manifolds scf(); for i = 1 : size(conv_out,3) param3d(conv_out(1,:,i), conv_out(2,:,i), conv_out(3,:,i)); end param3d(orb(1,:), orb(2,:), orb(3,:)); h = CL_g_select(gce()); h.foreground = 5; |