Definition of a Walker constellation
[oe, nums] = CL_csl_defWalker(type_oe, oe_ref, T, P, F [[, opts]])
Computes orbital elements for a "Walker" constellation.
A Walker constellation is defined by:
- T (integer) : Total number of satellites,
- P (integer) : Total number of planes,
- F (integer) : Phasing parameter that defines the gap in mean argument of latitude between 2 satellites in two adjacent planes. F must be between 0 and P-1. The gap is then: F * (2*pi/T).
In addition:
- All orbits have the same orbital elements except RAAN and argument of latitude. All constant orbital elements come from oe_ref that defines the orbital elements of the reference satellite (number 1 in plane 1).
- Each plane contains T/P satellites with evenly distributed mean argument of latitudes between 0 and 2*pi.
- The orbits' RAAN are evenly distributed in an interval whose length is defined in opts (raan_span). It is 2*pi by default.
The type of orbital elements can be "kep" or "cir". For "cir" type, only the argument of latitude is affected. For "kep" type, either the argument of periapsis or the mean anomaly is affected. See below for more information (pso_param option).
Some options can be defined in opts, which is a structure (optionally) containing the following fields:
- raan_span: angular span (spread) for the right ascensions of the ascending nodes. Default is 2*pi.
- pso_param: orbit parameter to be modified. It can be "M": mean anomaly, "pom": argument of periapsis, "pso": mean argument of latitude, or "" (default).
The default value ("") means "M" for orbits of type "kep" and "pso" for orbits of type "cir". "M" and "pom" are only available for orbits of type "kep". "pso" is only available for orbits of type "cir".
- numbering: "p" (plane by plane) or "sp" (sat in plane by sat in plane) defined as follows:
Let i be the plane number (between 1 and P) and j the satellite number in each plane (between 1 and T/P). Then:
"p" corresponds to the order: (i=1, j=1), (i=1, j=2), ... (i=1, j=T/P), (i=2, j=1), ...
"sp" corresponds to the order: (i=1, j=1), (i=2, j=1), ... (i=P, j=1), (i=1, j=2), ...
The default ordering is "p" (plane by plane).
Notes:
- Orbits making up a Walker constellation are usually circular.
- The default value for raan_span (2*pi) corresponds to a pattern called "Walker delta pattern". If raan_span's value is equal to pi, the pattern is called "Walker star pattern".
(string) Type of orbital elements: "kep" or "cir"
Reference orbital elements = orbital elements for satellite 1 in plane 1 (6x1)
(integer) Total number of satellites (1x1)
(integer) Total number of planes (1x1)
(integer) Phasing parameter, between 0 and P-1 (1x1)
(struct, optional) Computation options, see above for details
Resulting orbital elements (6xN)
(struct) Structure containing the fields: n = sat. number, p = plane number, sp = sat. number in plane (1xN)
CNES - DCT/SB
// Reference orbital elements ("cir" type) cir0 = [7078.e3; 0; 0; 1.71; 0; 0]; T = 12; // 12 satellites in all P = 3; // 3 planes F = 1; // Gap between 2 sat in 2 adjacent planes = 1 * (2 * pi / 12) // Orbital elements for all satellites [cir, nums] = CL_csl_defWalker("cir", cir0, T, P, F); // Plot function Plot() scf(); plot(CL_rMod(cir(5,:) * 180 / %pi, 0, 360), CL_rMod(cir(6,:) * 180 / %pi, 0, 360), "o"); e = CL_g_select(gce(), "Polyline"); e.mark_background = color("blue"); e.mark_size = 8; a = gca(); a.data_bounds = [-10, -10; 370, 370]; a.tight_limits = "on"; a.x_ticks = CL_g_ticks(0 : 120 : 360); a.y_ticks = CL_g_ticks(0 : 30 : 360); a.sub_ticks = [0,0]; xtitle(msprintf("T=%d, P=%d, F=%d", T, P, F), "RAAN (deg)", "Argument of latitude (deg)"); CL_g_stdaxes(a); endfunction Plot(); | ![]() | ![]() |