1 Introduction

Future European Earth Observation (EO) infrastructure will heavily rely on spaceborne missions, for a wide variety of applications ranging from meteorology and climate monitoring, to land and ocean resources mapping, up to emergency services provision and more. To ensure continuous and timely delivery of spaceborne EO data, these missions will be characterized by high temporal resolution, high availability, low latency and enhanced synergies between different observation products. These goals might be achieved only by deploying multiple satellites in constellations.

In order to design robustly the architecture of these EO systems, given a certain set of mission and observational requirements, OHB Systems AG has developed a methodology and the associated numerical tools, to optimize these multi-asset systems, taking into account physical and technical constraints. In most cases, in fact, the instrument swath, defined as the projection of the instrument field of view on ground (c.f. Fig. 1), is limited by these constraints. Therefore, to achieve a certain revisit time over an area of interest, multiple assets might be needed, being the achievable temporal resolution directly related to the swath.

Fig. 1
figure 1

Artistic impression of an Earth observing satellite field of view

The mathematical formulation derived in this paper focuses on Repeating Ground Track (RGT) orbits, which retrace their ground track over a certain time interval. RGT configurations are most useful for Earth observation missions, because the satellite flies periodically over a certain area on the surface of the Earth. Nadoushan and Assadin [1] provide an exhaustive overview of the repeating ground track orbits are their mathematical formulation. Their paper [1] moves from RGT to define a method for obtaining a certain revisit over a given area by tilting the spacecraft in roll direction.

Furthermore, Sun-synchronous orbits (SSO) are considered in the following because they provide many desirable orbital conditions. These Low Earth Orbits (LEO) have the orbital plane almost fixed with respect to the Sun direction, leading to lighting conditions along the sunlit part almost constant throughout the mission, resulting as well in a stable thermal environment and providing the system with a cold face (facing dark space) for thermal control. Since the orbital inclination is nearly polar, they also provide global coverage almost at all latitudes.

Furthermore, SSO can accommodate a wide range of satellite viewing geometries and conditions because an infinite number of discrete altitudes can be selected in the entire LEO region (and above it), such that the ground tracks repeat exactly after a fixed number of days (RGT-SSO), defined repeat cycle of the SSO. Boain [2] describes the key characteristics of SSOs, which will not be repeated in this paper: the reader can refer to it, to find useful insights on how SSOs work and what are the design steps to define an orbital configuration.

This paper moves from the aforementioned ones and introduces a constellation of spacecraft with an additional variable not considered previously, i.e. the phasing or mean angular separation of the different assets within the constellation on the same orbital plane. Therefore, this paper focuses on constellations flying on the same RGT-SSO orbit in nadir looking attitude (no rolling considered) and investigates an optimization methodology to minimize the swath by tuning the in-plane separation, i.e. phasing, of the different assets within the constellation, given a temporal resolution requirement. The generalization of the methodology for constellations including out-of-nadir observations is left for a further development of the work. Both Non Linear Programming (NLP) and Mixed Integer Linear Programming (MILP) are proposed and their formulation derived to solve the optimization problem. Finally, the two formulations are compared and the effectiveness of the implemented tools are demonstrated by test cases and validation examples.

2 EO Constellation Design

2.1 Typical EO Mission Requirement

Given a certain set of observational requirements, the task of mission designers is to find a suitable, whenever possible optimized, orbital configuration that complies with the aforementioned requirements.

Typical specifications are:

  • Coverage or revisit time: as the temporal resolution of the system or, in other words, the maximum time gap between consecutive observation of the same areas. Coverage and revisit are often used interchangeably, however a rigorous definition would see coverage as independent of the viewing angle whereas revisit would be strictly dependent on the observation angle (maximum gap of consecutive observation of the same area under same observation geometry).

  • Viewing angles: as just briefly described, a requirement on observing the areas with the same observation angle. Limiting the view angle to a maximum value might be requested, as well. In the latter case, this limits the altitude vs. swath solutions.

  • Projection distortion: as above a limit on the maximum acceptable edge-of-swath distortion might be specified. This constraint also limit the range of altitude vs. swath solutions.

  • Area of interest: global, water, land, latitudes bands, countries and regions, etc. Without loss of generality, global coverage is taken as input for the following analysis.

  • Sun angles: a constraint on the illumination conditions for observations might also be added. This is usually required for optical payloads.

  • Swath constraints: a minimum swath might be specified to cover a certain scene or phenomenon. A maximum swath is rarely specified but the upper limit is normally identified as function of altitude, giving a viewing geometry constraint.

  • Number of assets constraints: specifying the maximum number of spacecraft that is allowed to be considered in the constellation.

Optimizing a constellation is a complex task and depends on all the specific requirements of the mission, as mentioned above. In addition, from a constellation development and programmatic point of view, it is usually requested that global coverage is achieved even with only one spacecraft in orbit, although the revisit time is longer than required. Progressively launching and deploying the other spacecraft, the revisit time is improved until reaching the requirement, when the full constellation is in-orbit. This constraint is imposed having the swath size that is at least equal to the spatial sampling after one repeat cycle (see Sect. 2.2 for details).

The main parameter to optimize the constellation design is the spacing or phasing of the satellites. In general, three options are possible:

  • Equidistant: this is a regular pattern, frequently used in constellations because it is simple, facilitates the operations concept for formation control and, sometimes, it is itself an optimal configuration;

  • Same ground track: the satellites are phased in order to exactly repeat the same ground tracks. A finite number of admissible positions are available, which is equal to the number of days in the repeat cycle. Consequently, the number of spacecraft in the constellation is upper bounded as well. Nevertheless, this solution is the only one that automatically guarantees the same viewing angle when observing the same areas on ground.

  • Arbitrary: where the phasing is optimized to minimize the required swath size. The identification of this optimal configuration is the goal of this paper.

The implemented tool is generic enough to account for every configuration among the range of possible solutions satisfying input and constraints. In addition, it is possible to select a priori if a specific configuration, i.e. equidistant and/or same ground tracks, is required.

Furthermore, without loss of generality, only one set of passes, either descending or ascending, is considered in the following formulation. This is usually required by optical payloads, which provide imaging during only the sunlit part of the orbit (typically with some requirements on the Sun incidence angle for proper illumination conditions). By considering both passes, as in the case of radar payloads, the maximum revisit time is not remarkably reduced: a gain of only half-day is obtained with respect to the “sun-lit” solution. On the contrary, the average revisit time is instead significantly reduced.

Finally, a constraint on the minimum phasing between the spacecraft can also be included. This might be needed, primarily, for operational reasons such as station keeping or to avoid interference when a downlink is established with same ground station.

2.2 Repeating Pattern Diagram

By definition, the ground tracks of a RGT-SSO repeat exactly after one repeat cycle.Footnote 1 This implies that after a whole number of planet revolutions with respect to the orbit’s node, the spacecraft has completed a whole number of orbits. This statement translates in the following condition:

$$ T_{\text{c}} = \left( {NQ + P} \right)T = QT_{\text{r}}\,({\text{with}} P < Q) $$
(1)

where:

  • \( T_{\text{c}} \) is the duration of the repeat cycle;

  • \( T \) is the mean nodal period, depending on the orbit parameters: semi-major axis, eccentricity and inclination, since the node drifts under the effect of J2.

  • \( T_{\text{r}} \) is the revolution period of the planet with respect to the orbit’s (ascending or descending) node, sometimes also called “orbital day”. Since the orbit has to be synchronized with the Sun, then the orbital day is equal to the mean solar day (86,400 s).

  • \( Q = T_{\text{c}} /T_{\text{r}} \) is the (whole) number of planet revolutions per repeat cycle;

  • \( N + P/Q = T_{\text{r}} /T \) is the number of orbits per planet revolution with respect to the orbit’s (ascending or descending) node;

  • \( NQ + P = T_{\text{c}} /T \) is the (whole) number of orbits per repeat cycle.

The three integers \( N \), \( P \) and \( Q \) define the orbital cycle. Using these three values, the evolution of the ground track of a SSO can be studied using a simple repeating pattern diagram.

Let us consider the illustration in Fig. 2 and let us restrict the problem to only ascending or only descending passes. At the end of a repeat cycle, the spacecraft has passed \( NQ + P \) times over the equator, dividing it in \( NQ + P \) slices of equal width (shown in black). The width at the equator (in km) is usually called spatial sampling, indicated here with the symbol \( \delta \), and can be computed as:

Fig. 2
figure 2

Repeating patter illustration for a SSO with cycle 14 + 3/8. In blue the passes of the first day, in red the first three passes of the second day and in black all the passes in a repeat cycle

$$ \delta = \frac{{2\pi R_{ \oplus } }}{NQ + P} $$
(2)

where \( R_{ \oplus } \) is the Earth equatorial radius of 6378.15 km. To obtain global coverage in a repeat cycle, it is necessary a swath size (in km) of:

$$ {\text{Sw}} = 2R_{ \oplus } \sin^{ - 1} \left( {\sin \frac{\delta }{2}\sin i} \right) $$
(3)

After one orbit, the spacecraft passes at a distance of \( Q\delta \) westwards from the starting point. After one day, the spacecraft passes at \( \left( {Q - P} \right)\delta \) westwards from the starting point.

This pattern repeats every day and, for each day, it repeats \( N \) times. Thanks to this repeating pattern, it is possible to focus only on the slice of the equator from the starting point to the 1st pass of the 1st day. This will include the first passes for every day within the repeat cycle. This equator slice is shown, for the example case of a 14 + 3/8 cycle orbit, in the diagram in Fig. 3.

Fig. 3
figure 3

Repeating pattern diagram for cycle 14 + 3/8, 1 spacecraft and 8 days revisit time

On the x-axis, the distance from the 1st pass of the 1st day is reported. It is given in non-dimensional units where the unit of measure is the spatial sampling \( \delta \). The small dots indicate where the spacecraft passes over the equator on the day indicated by the number given above each dot. Understanding where the spacecraft passes on a specific day is straightforward. By geometry, on the 2nd day the spacecraft passes rightwards at \( P \)\( \delta \)-units from the pass of the 1st day. In the same way, on the 3rd day it passes rightwards again at \( P \)\( \delta \)-units from the pass of the 2nd day. And so on so forth until the last day of the repeat cycle. If the number of units exceed \( Q \), the spacecraft passes at the remaining \( \delta \)-units from the pass of the 1st day. Therefore, on the \( l \) th day, the spacecraft passes on the position \( p_{l} \) given by:

$$ p_{l} = \left( {l - 1} \right)P - Q {\text{floor}}\left( {\frac{{\left( {l - 1} \right)P}}{Q}} \right) $$
(4)

When multiple spacecraft are considered, the diagram is generalized as follows. Since the mean anomaly separation between the spacecraft is linear with \( \delta \), if at the \( l \)th day, \( p_{k,l} \) and \( p_{1,l} \) are the positions at equator crossing of the \( k \)th and of the 1st spacecraft, respectively, then their mean anomaly separation \( \Delta \theta_{k} \) is:

$$ {{\Delta }}\theta_{k} = \theta_{k} - \theta_{1} = \frac{360}{Q}(p_{k,l} - p_{1,l} ) $$
(5)

in degrees and \( p_{k,l} - p_{1,l} \) expressed in \( \delta \)-units. Thus, Eq. 4 can be generalized for the \( k \)-th spacecraft as:

$$ p_{k,l} = p_{k,1} + \left( {l - 1} \right)P - Q {\text{floor}}\left( {\frac{{p_{k,1} + \left( {l - 1} \right)P}}{Q}} \right) $$
(6)

For instance, in Fig. 4 the repeating pattern diagram up to day 4 is shown for the orbit cycle 14 + 3/8 with 2 spacecraft placed with 180 deg of anomaly separation. From now on, the different colours in the diagram indicate different spacecraft, whereas the numbers, as above, indicate the day when the equator is crossed.

Fig. 4
figure 4

Repeating pattern diagram for cycle 14 + 3/8, 2 spacecraft and 4 days revisit time

This diagram will be used extensively throughout this paper because it allows to compute the minimum swath size to obtain global coverage. Indeed, if this slice of the equator (from the starting point to the 1st pass of the 1st day of the 1st spacecraft) represented in the diagram is fully covered by the spacecraft swath in a certain number of days, then all the other \( N \) repeating slices will be covered as well. But, to cover the diagram, the space between any two adjacent passes, for any day and for any spacecraft, has to be covered by the swath size (half swath from the pass on the left and half swath from the pass on the right). Therefore, the maximum gap between any two adjacent passes in the diagram drives the minimum size of the swath required to obtain global coverage after a certain number of days, as:

$$ Sw = 2R_{ \oplus } \sin^{ - 1} \left( {\sin \frac{\text{MaxGap}}{2}\sin i} \right) $$
(7)

where MaxGap is the maximum gap in the diagram in \( \delta \)-units. In the example in Fig. 4, the MaxGap = 1 and consequently the minimum swath size for the global coverage in 4 days is 345 km, i.e. the spatial sampling of the orbit. In other words, placing 2 spacecraft with 180° anomaly separation on the 14 + 3/8 orbit (at 761 km altitude) and having both a swath size of 345 km, the entire globe (within the quasi-polar latitude boundaries given by the orbit inclination) is fully covered (considering only the ascending or only the descending passes) in 4 days. Let us suppose now to be interested in 3 days (instead of 4) coverage. Then the diagram, for the same orbit (14 + 3/8) and the same number of spacecraft (still at 180 deg separation) is depicted in Fig. 5. It is straightforward to see that now for 3 days coverage, the MaxGap = 2, so the required swath size will be approximately 2 times larger: 689 km precisely.

Fig. 5
figure 5

Repeating pattern diagram for cycle 14 + 3/8, 2 spacecraft with 180° anomaly separation and 3 days revisit time

In Fig. 6, the 2 spacecraft of the examples above are propagated for 4 days with 345 km (Fig. 6a) and for 3 days with 689 km swath size (Fig. 6b). It is proved that the entire globe is covered in the indicated periodFootnote 2 and, in both cases, the indicated swath size is the minimum one for the configuration of 180° separation. Indeed, if decreased, holes would be left in the coverage.

Fig. 6
figure 6

Global coverage for orbit 14 + 3/8 (at 761 km altitude) with 2 spacecraft. In blue the passes of the first spacecraft and in red the passes of the second spacecraft

What has been described so far considers only one set of passes, i.e. either only the ascending or only the descending passes. As explained in Sect. 2, this is the typical requirement for optical payload missions which acquire observations only in sun-light conditions. For radar payloads, instead, all the passes can be used, both ascending and descending. However, when both passes are considered valid, the number of observations increase, so the average revisit time reduces, but the maximum revisit time does not improves significantly. It is only half day shorterFootnote 3 with respect to the maximum revisit time achievable with only one set of passes having the same swath size. For instance, in the example above, 2 spacecraft with 180° anomaly separation on the 14 + 3/8 orbit, with swath of 345 km cover the globe in 4 days when only ascending/descending passes are considered and in 3.5 days when both are considered. Similarly, with a swath of 689 km, they cover the globe in 3 days with only one set of passes and in 2.5 days with both sets of passes. Therefore, the approach described so far is applicable also for radar missions, accounting for this half day discrepancy to assess the compliance with the requirements.

Nevertheless, it is possible to note that the selected anomaly separation of 180 deg is indeed optimal for the 4 days revisit (no other possible configurations exists that allows to reduce the swath size) but it is not optimal for the 3 days revisit. Indeed, if the 2 spacecraft are placed with 67.5 deg of anomaly separation, the associated diagram after 3 days is depicted in Fig. 7. It is clear that now the MaxGap = 1.5 and therefore the required swath is 517 km (Fig. 6c), significantly smaller then 689 km of the 180° case.

Fig. 7
figure 7

Repeating pattern diagram for cycle 14 + 3/8, 2 spacecraft with 67.5° anomaly separation and 3 days revisit time

In general, for a specific orbit cycle and a given number of spacecraft, one (or more) optimal orbital configuration(s) (i.e. anomaly separation on the same orbit) exists that allow(s) to have full coverage in a prescribed number of days and minimize(s) the required swath size.

The objective of this paper is to define the optimization model associated to this problem. This is done in the two sections of chapter 3. The first one proposes to solve it through a Non Linear Programming (NLP) [3,4,5] the second section through a MILP [6, 7]. In both cases, once the model is described, a commercial optimization software can be used to find the optimal solution.

However, before describing the optimization model, some already-optimal solutions are introduced. They are called hereafter Resonant solutions. Whenever the condition of resonance is met by the requirements, the optimal solution is already known and can be computed analytically.

2.3 Resonant Solutions

Whenever the desired revisit time \( R \) times the number of spacecraft \( n \) is a multiple of the orbit repeat cycle \( Q \) and, at the same time, the repeat cycle \( Q \) is a multiple of the revisit time \( R \), the orbital configuration is defined as resonant. In other words, a constellation configuration in a given RGT-SSO orbit is defined resonant when the coefficients \( K_{1} \) and \( K_{2} \) are integer, defined as

$$ K_{1} = n\frac{R}{Q};\quad K_{2} = \frac{Q}{R} $$
(8)

In this case, the optimal solution is analytical and immediate. The satellites are divided in teams. The total number of teams (being an integer for the resonant condition above) are:

$$ N_{\text{Teams}} = \frac{Q}{R} $$
(9)

and their separation is defined computing:

  • the angle between two adjacent spacecraft inside each time \( \theta_{IT} , \) as

    $$ \theta_{IT} = \frac{360}{nR} $$
    (10)
  • the angle between two adjacent teams \( \theta_{\text{BT}} , \), as

    $$ \theta_{\text{BT}} = \frac{360 R}{Q} $$
    (11)

and the swath size is computed through Eq. 7. A representation of the concept is given in Fig. 8 where a resonant configuration with 4 satellites and 2 teams is shown.

Fig. 8
figure 8

Definitions of teams and angles in resonant configurations. Example of 4 satellites and 2 teams

Let us consider the orbit in the examples above, i.e. 14 + 3/8. In case a revisit of 4 days with 4 satellites is sought, the resonant condition is satisfied and the number of teams is 2. The separation of the spacecraft within the teams results in 22.5° while the separation between the teams is 180°. The pattern and the coverage for this solution are drawn in Fig. 9.

Fig. 9
figure 9

Resonant solution for orbit 14 + 3/8 (at 761 km altitude) with 4 spacecraft placed at [0; 22.5; 180; 202.5]deg, 4 days revisit time and 173 km swath size. In blue the passes of the first spacecraft, in red of the second spacecraft, in green of the third spacecraft and in yellow of the fourth spacecraft

A resonant orbit is always the best solution, when possible: it exploits the whole swath for observation with no overlapping between two adjacent passes. However, it might not be possible to find a resonant solution that satisfy all mission and observational requirements. In this case, the optimal configuration can be found solving the formulation described in the following sections.

3 Optimization Techniques

3.1 Non Linear Programming

The formulation as a Non Linear Programming (NLP) is straightforward. Given a prescribed orbit cycle \( N + P/Q \), a requirement of maximum revisit time, \( R \), and a number of satellites, \( n \), the MaxGap has to be minimized for any possible orbital configuration. The orbital configuration, i.e. the anomaly separations between the spacecraft, is selected in an univocal way deciding where the spacecraft pass on the diagram on their 1st day, indicated with \( p_{k,1} \) Anomaly separations and passes on the 1st day are indeed directly related through Eq. 5. Nevertheless, by definition, the position at day 1 of the 1st spacecraft is 0, so the number of variables of the optimization problem is \( n - 1, \) i.e. \( p_{k,1} \) with \( k > 1 \). They can freely and continuously vary from 0 to \( Q. \) The position of the passes for all the other days up to \( R \) is computed for each spacecraft through Eq. 6. Once all the positions are available, the MaxGap can be computed sorting all the positions for any day and for any spacecraft and taking the maximum of their pairwise difference, i.e. the maximum of the gaps between all the adjacent positions. Finally, the MaxGap has to be minimized: it is itself the cost function of the problem. The formulation of the NLP is summarized in Eq. 12.

$$ \begin{array}{*{20}l} { \hbox{min} } & {\text{MaxGap}} \\ {\text{where}} & {} \\ {\forall k; \forall l} & {{\text{MaxGap}} = \hbox{max} ({\text{diff}}({\text{sort}}(\{ p_{k,l} ,Q\} )))} \\ {\forall k;\forall l > 1} & p_{k,l} = p_{k,1} + \left( {l - 1} \right)P - Q {\text{floor}} \left( {\frac{{p_{k,1} + \left( {l - 1} \right)P}}{Q}} \right) \\ & p_{1,1} = 0 \\ {\text{Subjected to}} & {} \\ {\forall k > 1} & 0 < p_{k,1} < Q \\& p_{k,1} \in {\mathbb{R}} \end{array} $$
(12)

The solution of the problem can be performed by means of a suitable commercial software [8, 9]. Several of them exist in literature.

The main issue intrinsic in the NLP formulation is the non-smoothness of the cost function. If a good initial guess is not available, the convergence to the global minimum is slow and the probability that the algorithm get stuck in a local minimum is high.

Let us consider again the example introduced before: 2 spacecraft on the orbit cycle 14 + 3/8 requiring \( R = 3 \). In Fig. 10 it is shown how the MaxGap varies with the anomaly separation between the 2 spacecraft. It is probable (depending on the specific algorithm used) that if the optimization is started with initial guess around 180°, it will get stuck there, which is a local minimum of the cost function, instead of converging to one of the two (equivalent) global minimum at 67.5° or 292.5°. The MILP formulation, being linear, is in general more robust to this type of non-smooth cost functions. The algorithms used to solve a MILP problem are indeed not based on the gradient of the cost function but rather they usually perform some relaxation of the integer formulation and lower and upper bound the optimal solution through, for example, a branch and bound or branch and cut algorithm. In addition, they do not require an initial guess in most cases. These are the reasons why also a MILP formulation is proposed to solve exactly the same problem and despite the larger and more complex formulation.

Fig. 10
figure 10

Variation of the MaxGap with the anomaly separation between 2 spacecraft on the orbit cycle 14 + 3/8, for 3 days revisit time

3.2 Mixed Integer Linear Programming

The most general form of a MILP program can be written as:

$$\begin{array}{*{20}l} { \hbox{min} } & \quad {\varvec{c}_{1}^{T} \varvec{x} + \varvec{c}_{2}^{T} \varvec{y}} \\ {\text{Subjected to}} & \quad {A_{1} \varvec{x} + A_{2} \varvec{y} \le \varvec{b}} \\ {} & \quad {\varvec{x} \in {\mathbb{R}}^{{n_{1} }} ;\varvec{ y} \in {\mathbb{Z}}^{{n_{2} }} } \\ \end{array}$$
(13)

with matrices \( A_{1} \in {\mathbb{Z}}^{{m \times n_{1} }} \) and \( A_{2} \in {\mathbb{Z}}^{{m \times n_{2} }} \), and vectors \( \varvec{c}_{1} \in {\mathbb{Z}}^{{n_{1} }} , \)\( \varvec{c}_{2} \in {\mathbb{Z}}^{{n_{2} }} \) and \( \varvec{b} \in {\mathbb{Z}}^{m} \). The vector \( \varvec{x} \) contains all the continuous variables of the problem and the vector \( \varvec{y} \) includes all the integer variables. Usually most of the integer variables in \( \varvec{y} \) are decision variables, i.e. restricted to be binary variables.

By definition, a MILP formulation can only deal with linear programming. In order to transform the problem from the non-linear form presented before into a linear one, it requires (1) to consider a discrete space and (2) to introduce additional variables and constraints.

The repeating pattern diagram is therefore subdivided in \( S \) discrete points, with \( S \) to be a multiple of the repeat cycle \( Q \): \( S = dQ \) with \( d \in {\mathbb{N}} \). In theory, if \( d \to + \infty \), the discrete space converges to the continuous one. It is however not necessary to increase excessively \( d \) because the optimal solution usually lies in a sub-multiple of \( Q \) not very far away from \( Q \). Rather, if there is the doubt that the discrete space does not include the optimal solution, it is better to use the solution provided by the MILP as initial guess of the NLP. Thus, it converges rapidly to the neighborhood optimal solution, if it is actually different from the one provided by the MILP. As a rough guideline, it is suggested to not increase \( d \) more than the number of spacecraft: \( d \le n. \) Note also that, if \( d \) is set equal to 1, the solution space is restricted to the same ground track solutions (see Sect. 2).

The required variables in the MILP formulation are listed hereafter:

  • \( p_{k,l} \in {\mathbb{Z}} \) being the position of the pass of the \( k \)-th spacecraft on the \( l \)-th day. These are, actually, the same variables introduced in the NLP as well, but with the restriction that here the only admitted positions are those included in the discrete space. They are collected in the vector: \( {\varvec{p}} = \left\{ {p_{1,1} ,p_{1,2} , \ldots ,p_{1,R} , \ldots ,p_{n,1} ,p_{n,2} , \ldots ,p_{n,R} } \right\}^{T} \)

  • \( h_{k,l} \in \left[ {0,1} \right] \) that are decision (i.e. binary) variables to impose that \( p_{k,l} \) is restricted between 0 and \( Q \) for any day and for any spacecraft. They are defined as:

$$ h_{k,l} = \left\{\begin{array}{ll} 1, &{\text{if}} \, p_{k,l - 1} + dP > {dQ} \\ 0, &{\text{otherwise}} \\ \end{array} \right. $$
(14)

Note that the introduction of the \( h_{k,l} \) variables allows to write in a liner way the non-linear floor{} function. The \( h_{k,l} \) variables are collected in the vector:\( \varvec{h} = \left\{ {h_{1,1} ,h_{1,2} , \ldots ,h_{1,R} , \ldots ,h_{n,1} ,h_{n,2} , \ldots ,h_{n,R} } \right\}^{T} \).

  • \( x_{i} \in \left[ {0,1} \right] \) for \( i = 0, \ldots ,S \), which is one if the \( i \)th position of the discrete space is occupied by any of the passes \( p_{k,l} \) and zero otherwise:

$$ x_{i} = \left\{ \begin{array}{ll} 1, & \quad {\text{if}} \, \exists \, p_{k,l} = i \\ 0,& \quad {\text{otherwise}} \\ \end{array} \right. $$
(15)

collected in the vector \( \varvec{x} = \left\{ {x_{0} ,x_{1} , \ldots ,x_{S} } \right\}^{T} . \)

  • \( q_{k,l}^{i} \in \left[ {0,1} \right] \) for \( i = 0, \ldots ,S \), \( k = 0, \ldots ,n \) and \( l = 0, \ldots ,R \) The \( q_{k,l}^{i} \) variables are decision (binary) variables that check and constrain the pass \( p_{k,l} \) to the \( i \)th discrete position, as:

$$q_{k,l}^{i} = \left\{ \begin{array}{ll} 1, & \quad {\text{if}} \, p_{k,l} = i \\ 0, & \quad {\text{otherwise}} \\ \end{array} \right. $$
(16)

For any \( i, \) the vector \( \varvec{q}^{i} \) is defined as: \( \varvec{q}^{i} = \left\{ {q_{1,1}^{i} ,q_{1,2}^{i} , \ldots ,q_{1,R}^{i} , \ldots ,q_{n,1}^{i} ,q_{n,2}^{i} , \ldots ,q_{n,R}^{i} } \right\}^{T} \). All the vectors \( \varvec{q}^{i} \) are finally collected in the overall vector \( \varvec{q} = \left\{ {\varvec{q}^{0} ,\varvec{q}^{1} , \ldots ,\varvec{q}^{S} } \right\}^{T} \).

  • \( z_{i,j} \in \left[ {0,1} \right] \) for \( i = 0, \ldots ,S \) and \( j = 0, \ldots ,S \) with \( j > i \). These variables allows to compute how many empty positions (i.e. \( x_{j} = 0 \)) are present after any occupied position \( i \) (i.e. \( x_{i} = 1 \)) of the discrete space. The number of empty positions plus one is directly the length of the gap between the \( i \)th occupied position and the next one. The \( z_{i,j} \) variables are defined as:

$$\forall j > i : z_{i,j} = \left\{ \begin{array}{ll} 1, & \quad {\text{if}} \mathop \sum \nolimits_{k = i + 1}^{j} x_{k} = 0 \\ 0,& \quad {\text{otherwise}} \end{array} \right.$$
(17)

and are collected in the vector:

$$ \varvec{z} = \left\{ {z_{0,1} , \ldots ,z_{0,S} ,z_{1,2} , \ldots ,z_{1,S} , \ldots ,z_{S - 1,S} } \right\}^{T} . $$
  • \( \Delta_{i} \in {\mathbb{Z}} \) for \( i = 0, \ldots ,S \). These variables give the length of the gap between the \( i \)th occupied position and the next one, i.e. directly the gaps between adjacent passes, that have to be minimized. \( {\Delta }_{i} \) is imposed zero if the \( i \)th position is empty (i.e. \( x_{i} = 0 \)). Hence, they are defined as:

$$ {{\Delta }}_{i} = \left\{ {\begin{array}{ll} 1 + \mathop \sum \nolimits_{j = i + 1}^{S - 1} z_{i,j} , & \quad {\text{if}}\, x_{i} = 1 \\ 0, & \quad {\text{otherwise}} \\ \end{array} } \right.$$
(18)

collected in the vector \( {\varvec{\Delta}} = \left\{ {\Delta_{0} ,\Delta_{1} , \ldots ,\Delta_{S} } \right\}^{T} \).

  • \( {\text{UB}}\in {\mathbb{R}} \) is a single continuous variables used to upper bound all the gaps \( {{\Delta }}_{i} \). Therefore, if \( {\text{UB}} \) is minimized, the maximum gap in the diagram is minimized as well and the best configuration for the constellation is found.

To impose the definition of the variables and their usage, a series of equality and inequality constraints have to be imposed. They are described hereafter in detail:

  • \( p_{k,l} \) definition based on the orbital geometry:

$$ \forall k, \forall l > 1: p_{k,l} = p_{k,l - 1} + dP - dQh_{k,l} $$
(19)
  • \( p_{k,l} \) has to be restricted between 0 and Q:

$$ \forall k, \forall l: 0 \le p_{k,l} \le Q $$
(20)
  • by definition, the 1st pass of the 1st spacecraft is at 0:

$$ p_{1,1} = 0 $$
(21)
  • for any spacecraft \( k \) and for any day \( l \), there must exist at least one \( q_{k,l}^{i} \) different from zero:

$$ \forall k, \forall l: \mathop \sum \limits_{i = 0}^{S} q_{k,l}^{i} \ge 1 $$
(22)
  • among all the \( q_{k,l}^{i} \), if \( p_{k,l} = i \), only the \( i \)th can be different from zero:

$$ \begin{array}{*{20}l} {\forall i = 1,..,S} \\ {\forall k,\forall l } \\ \end{array} : \left\{ {\begin{array}{*{20}c} {p_{k,l} \le i + M(1 - q_{k,l}^{i} )\qquad\qquad\qquad\qquad\,(23) } \\ {i \le p_{k,l} + M(1 - q_{k,l}^{i} )\qquad\qquad\qquad\qquad\,(24)} \\ \end{array} } \right. $$
  • if there is at least one spacecraft that passes on position \( i \), then \( x_{i} \) must be on, otherwise it must be off:

$$ \forall i = 1, \ldots ,S - 1 : \left\{ {\begin{array}{*{20}c} {\mathop \sum \nolimits_{k = 1}^{n} \mathop \sum \nolimits_{l = 1}^{R} q_{k,l}^{i} \le Mx_{i}\qquad\qquad\,\,(25)} \\ {\mathop \sum \nolimits_{k = 1}^{n} \mathop \sum \nolimits_{l = 1}^{R} q_{k,l}^{i} \ge x_{i}\qquad\qquad\quad\,\,\,(26)} \\ \end{array} } \right. $$
  • The definition of \( z_{i,j} \) is imposed as:

    $$ \forall i < S;\forall j > i : \left\{ {\begin{array}{*{20}l} {\mathop \sum \nolimits_{k = i + 1}^{j} x_{k} \ge 1 - Mz_{i,j}\qquad\qquad\quad(27)} \\ {\mathop \sum \nolimits_{k = i + 1}^{j} x_{k} \le M(1 - z_{i,j} )\quad\qquad\quad\,(28)} \\ \end{array} } \right. $$
  • whereas the definition of \( {{\Delta }}_{i} \) as:

    $$ \forall i < S : \left\{ {\begin{array}{*{20}l} {\Delta_{i} \le 1 + \mathop \sum \nolimits_{j = i + 1}^{S - 1} z_{i,j} + M\left( {1 - x_{i} } \right)\quad\qquad\,\,(29)} \\ {1 + \mathop \sum \nolimits_{j = i + 1}^{S - 1} z_{i,j} \le \Delta_{i} + M\left( {1 - x_{i} } \right)\quad\qquad \, \, (30)} \\ {0 \le \Delta_{i} \le Mx_{i}\qquad\qquad\qquad\qquad\qquad\qquad\quad\,\,\,(31)} \\ \end{array} } \right. $$
  • it is also necessary to impose that, by definition:

    $$\begin{aligned} &x_{0} = 1\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\quad\,\,\,\,(32)\\&x_{S} = 1\quad\quad\quad\quad\quad\quad\quad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\,\,\,\,(33)\\& \Delta_{0} = 0\quad\quad\quad\quad\quad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\qquad\,\,(34)\end{aligned} $$
  • Finally, in order to upper bound all the gaps \( {{\Delta }}_{i} , \) it is imposed:

    $$ \forall i < S: {\text{UB}} \ge \Delta_{i} $$
    (35)
  • As optional constraint, it may be required that the global coverage is achieved with only one spacecraft. This can be imposed as:

    $$ \forall i < S: {{\Delta }}_{i} \ge dx_{i} $$
    (36)
  • Even if it is not strictly necessary, the following constraint provides a direct relation among all the \( {{\Delta }}_{i}{:}\)

    $$ \mathop \sum \limits_{i = 0}^{S} \Delta_{i} = dQ $$
    (37)
  • In addition, the formulation is strengthen if it is enforced that the satellites are sorted:

    $$ \forall k = 1,..,n - 1 : p_{k + 1,1} \ge p_{k,1} + \Delta \theta_{ \hbox{min} } \frac{{{\text{d}}Q}}{360} $$
    (38)
    $$ S - p_{n,1} \ge {{\Delta }}\theta_{ \hbox{min} } \frac{{{\text{d}}Q}}{360} $$
    (39)

    where \( \Delta \theta_{ \hbox{min} } \), in degrees, is the minimum admissible mean anomaly separation between the spacecraft. By definition, when \( \Delta \theta_{ \hbox{min} } = \frac{360}{{{\text{d}}Q}} \), then the spacecraft are simply sorted. Sometimes, instead, it is also of interest to specify a larger minimum admissible value to remove all those solutions that set the spacecraft too close to each other on the orbit.

In most of the equations above, a constant value \( M \) is used to make the violation of an inequality constraint invalid, when necessary. It is an arbitrary positive constant number, larger than the characteristic dimension of the problem. At the same time, it shall be not too large to cause numerical instability. This approach of using a large \( M \) value for integer linear programming is common in literature and sometimes referred to as “Big-M method” [10]. It is suggested to use in this problem \( M = S + 1 \).

The MILP formulation can be therefore generalized as:

$$\begin{array}{ll}{ \hbox{min} } & {\text{UB}} \\ {\text{Subjected to}} & {A\varvec{X} \le \varvec{b}} \\ & \varvec{X} = \left\{ {\varvec{p};\varvec{h};\varvec{q};\varvec{x};\varvec{z};{\varvec{\Delta}};{\text{UB}}} \right\}^{T} \hfill \\ & \varvec{p} \in {\mathbb{Z}}^{nR} ;\varvec{h} \in \left[ {0,1} \right]^{nR} \hfill \\ & \varvec{q} \in \left[ {0,1} \right]^{{nR\left( {S + 1} \right)}} ;\varvec{x} \in \left[ {0,1} \right]^{S + 1} \hfill \\ & \varvec{z} \in \left[ {0,1} \right]^{{\frac{{S\left( {S + 1} \right)}}{2}}} ;{\varvec{\Delta}} \in {\mathbb{Z}}^{S + 1} \hfill \\ & {\text{UB}} \in {\mathbb{R}} \hfill \\ \end{array}$$
(40)

The matrix \( A \) and the vector \( \varvec{b} \) include all the constraints for the problem: from Eqs. 19–27. The transformation of the equations into the matrix \( A \) and the vector \( \varvec{b} \) is straightforward and, for conciseness, it is left to the reader. Note that the equality constraints can be expressed equivalently as two inequality constraints as:

$$ ax = b \Leftrightarrow \left\{ {\begin{array}{*{20}l} {ax \le b} \\ {ax \ge b} \\ \end{array} } \right. $$
(41)

The number of columns of \( A \) is equal to the total number of variables:

$$ N_{\text{Vars}} = 2nR + nR\left( {S + 1} \right) + 2\left( {S + 1} \right) + \frac{S(S + 1)}{2} + 1 $$
(42)

whereas the number of rows of \( A \) as well as the length of \( \varvec{b} \) are equal to the number of constraints:

$$ N_{\text{Constrs}} = 2nR\left( {S + 2} \right) + \left( {S + 1} \right)^{2} + 6S + 7 $$
(43)

It is clear that, since \( S = dQ \), the dimensions of the formulation, both in terms of number of variables and number of constraints, rapidly increases (quadratically) with the repeat cycle \( Q \) and the refinement of the discrete space established selecting the parameter \( d \). It also depends on the prescribed number of spacecraft \( n \) and the required revisit time \( R \).

Several algorithms [6, 7] are available in literature to solve MILP problems, implemented in commercially available software [11,12,13]. They are usually designed to face large to very large problems and usually converge in a very short timeframe, order of seconds. However, depending on the solver used, this time is directly related to the dimensions of the problem.

4 Test Cases and Validation

The two formulations described in the previous sections have been tested with different software and on multiple study cases. The validation is done with respect to the resonant solutions. Indeed, as explained in Sect. 2, the resonant solutions have zero overlap in the swath for any pass for any satellite and so they are, by definition, optimal. Therefore, if the solver is tested on a resonant solution and works properly, it has to converge on the resonant solution itself. Let us consider the previous example: orbit cycle 14 + 3/8 at 761 km altitude. Several sub-cycles and resonant solutions can be identified, as done in Table 1. The MILP formulation, tested with the Symphony function [13] on a common laptop PC (@2.60 GHz), converges in all the cases on the resonant solution in maximum few seconds. The model is validated because it respects the resonant solution and their pattern. It can be therefore used for any other possible combination of requirements.

Table 1 Computing time for MILP formulation on some examples of resonant solutions for the orbit cycle 14 + 3/8

Other examples are included Tables 2, 3 and 4, imposing a revisit time of 2, 3 and 4 days, respectively. All the orbits with repeat cycles of 8 and 9 days are studied with constellations from 2 to 5 spacecraft. All the found optimal configurations are collected in the last columns of the tables. Note that, often, the equispaced solution is the optimal solution. In addition, increasing the number of spacecraft sometimes does not add any benefit. For instance, considering again the example of orbit cycle 14 + 3/8 and 2 days as maximum revisit time, when 4 spacecraft are used, the optimal solution is resonant and equispaced. It requires a swath of 342.5 km. Adding a fifth satellite does not improve the situation since the required minimum swath remains the same (see Table 2). It is also clear that the optimal solution is not always the same for any required revisit time. Same example: orbit cycle 14 + 3/8 and 2 spacecraft. The optimal configurations are: [0; 112.5]deg for 2 days revisit with swath of 871.2 km, [0; 67.5]deg for 3 days revisit with swath of 522.7 km; and [0; 180]deg for 4 days revisit with swath of 348.5 km. The optimal configuration changes accordingly to the prescribed requirement of revisit time. Finally, it is possible to note also that for some combinations of orbit cycle and number of spacecraft, just placing in a different way the satellites on the orbit allows to reduce the revisit time. Keeping the same example of orbit cycle 14 + 3/8 and considering 3 spacecraft, if the required revisit is 4 days, the found optimal solution is [0; 157.5; 337.5]deg which requires a swath of 348.5 km. However, with the same swath size, it is possible to improve the revisit to 3 days simply placing the spacecraft as [0; 270; 315]deg.

Table 2 All the orbital solutions with repeat cycle \( Q = 8 \) and \( Q = 9 \), with constellations from 2 to 5 spacecraft and prescribed revisit time of 2 days
Table 3 All the orbital solutions with repeat cycle \( Q = 8 \) and \( Q = 9 \), with constellations from 2 to 5 spacecraft and prescribed revisit time of 3 days
Table 4 All the orbital solutions with repeat cycle \( Q = 8 \) and \( Q = 9 \), with constellations from 2 to 5 spacecraft and prescribed revisit time of 4 days

5 Conclusion

Spaceborne Earth observation infrastructure has become a vital asset for a wide variety of applications ranging from climate monitoring, to land and ocean resources mapping, up to emergency services provision and more.

Given a certain set of mission requirements, as coverage (or revisit) time, area of interest, swath constraints, limits on the number of assets, etc., the task of system designers is to find a suitable, whenever possible optimized, orbital configuration that complies with the abovementioned requirements.

In most cases, EO radar and optical systems fly in repeating ground track and Sun-synchronous orbits (their usefulness being explained above) and their instrument swath (or field of view in angular space) is limited by both physical and technological constraints. Therefore, to achieve a certain revisit time over an area of interest, multiple satellites are sometimes needed to fly in a constellation. This paper is focused on constellations flying in the same orbit and investigates an optimization methodology to minimize the swath by tuning the in-plane separation, i.e. phasing, of the different assets within the constellation. Some analytical optimal solutions, called resonant, are provided. When the set of requirements does not meet the resonance condition, a design methodology is discussed and the mathematical formulation for the mentioned optimization is given by considering two different schemes. A Non Linear Programming, which is rapid and its formulation straightforward but it is prone to get stuck in local minima if a good initial guess is not available. A Mixed Integer Linear Programming, which, being linear, is more robust but requires a more complex and larger formulation (additional variables and constraints). The formulation is validated testing the convergence on the resonant solutions which are, by definition, optimal. Thus, it can be used for any other possible combination of requirements. As examples, all the orbital solutions having a repeat cycle of 8 and 9 days are studied and the optimal configurations are found for revisit time of 2, 3 and 4 days, with constellations from 2 to 5 spacecraft.