Delta-V-Optimal Centralized Guidance Strategy For Under-actuated N-Satellite Formations

Ahmed Mahfouz Gabriella Gaias Florio Dalla Vedova Holger Voos
Abstract

This paper addresses the computation of Delta-V-optimal, safe, relative orbit reconfigurations for satellite formations in a centralized fashion. The formations under consideration comprise an uncontrolled chief spacecraft flying with an arbitrary number, N𝑁Nitalic_N, of deputy satellites, where each deputy is equipped with a single electric thruster. Indeed, this represents a technological solution that is becoming widely employed by the producers of small-satellite platforms. While adopting a single electric thruster does reduce the required power, weight, and size of the orbit control system, it comes at the cost of rendering the satellite under-actuated. In this setting, the satellite can provide a desired thrust vector only after an attitude maneuver is carried out to redirect the thruster nozzle opposite to the desired thrust direction. In order to further extend the applicability range of such under-actuated platforms, guidance strategies are developed to support different reconfiguration scenarios for N𝑁Nitalic_N-satellite formations. This paper starts from a classical non-convex quadratically constrained trajectory optimization formulation, which passes through multiple simplifications and approximations to arrive to two novel convex formulations, namely a second-order cone programming formulation, and a linear programming one. Out of five guidance formulations proposed in this article, the most promising three were compared through an extensive benchmark analysis that is applied to fifteen of the most widely-used solvers. This benchmark experiment provides information about the key distinctions between the different problem formulations, and under which conditions each one of them can be recommended.

keywords:
Formation flying , Relative Orbital Elements , Eccentricity Vector , Inclination Vector , Trajectory Optimization , Convexification , Convex Optimization , Sequential Convex Programming
journal: Acta Astronautica
\affiliation

[1]organization=SnT, University of Luxembourg,addressline=29, Avenue J.F Kennedy, city=Luxembourg, postcode=1855, country=Luxembourg

\affiliation

[2]organization=Department of Aerospace Science and Technology, Politecnico di Milano,addressline=34, via La Masa, city=Milan, postcode=20156, country=Italy

\affiliation

[3]organization=LuxSpace,addressline=9, Rue Pierre Werner, city=Betzdorf, postcode=6832, country=Luxembourg

\affiliation

[4]organization=Faculty of Science, Technology and Medicine, University of Luxembourg,addressline=2, place de l’Université, city=Esch-sur-Alzette, postcode=4365, country=Luxembourg

1 Introduction

As the world entered the new space era, it has witnessed a shift in the design philosophy of satellites. A modern space mission commonly comprises one or more simpler, smaller, lighter, lower-powered, and cheaper satellites, in contrast to a traditional mission, which typically relied on a single, sophisticated, large, heavy, power demanding, and expensive spacecraft [1]. By deploying multiple small satellites in a coordinated formation, these missions can cover larger areas, provide redundancy, and offer more frequent data updates.

As the satellites gradually became smaller in size, it was no wonder that Electric Propulsion (EP) systems were increasingly used to support their maneuverability in orbit. At the cost of lower thrust levels, electric thrusters typically offer higher specific impulse, and hence better fuel efficiency than their chemical counterparts [2]. The low fuel and propellant storage requirements is mainly what makes EP an attractive option for small satellites [3]. Often motivated by the need to reduce weight, complexity, and hence cost, some satellite manufacturers started opting to incorporate a single electric thruster onboard their spacecraft. Examples of such satellites include the PLATiNO platform [4] and Triton-X [5]. A satellite that employs a single electric thruster is, in nature, under-actuated, since a desired thrust vector is only achievable after an attitude maneuver which redirects the thruster nozzle into the desired direction. This paper focuses on the problem of optimizing the trajectories necessary for a reconfiguration of an arbitrary number of such under-actuated satellites flying together in a formation.

The problem of formation reconfiguration has been a subject of extensive research. While guidance and control strategies have been proposed for formations that leverage impulsive thrusters [6, 7, 8, 9], they are not applicable to formations that employ electric ones. Existing low-thrust guidance schemes assume omnidirectional thrusting [10, 11], rendering them inapplicable to single-thruster satellite formations. Guidance and control policies were developed for the AVANTI mission [12, 7, 13], which incorporates a satellite equipped with one impulsive thruster flying in a formation with a non-cooperative object, yet again, these guidance and control methods are not suitable for low-thrust formations. On a related note, a satellite incorporating a single impulsive thruster cannot be considered under-actuated, unlike a spacecraft with a sole low-thruster. An impulsive thruster is idle for the most part of the maneuver due to the fact that it is able to provide large Delta-V changes, typically in a matter of seconds. A thruster-idle period is ample for an attitude redirection maneuver to take place before the following thruster firing. To address the problem of relative orbit corrections for mono-electric-thruster satellites, Model Predictive Control (MPC) schemes have been proposed in [14, 15], yet operational constraints, such as the necessary thruster-off-periods during ground contact, during payload operations, or during eclipse, were not considered in these works.

In this article, the Delta-V-optimal, collision-free, formation reconfiguration problem is considered for an arbitrary number, N𝑁Nitalic_N, of deputy satellites flying in a formation with an uncontrolled chief. To allow for such reconfiguration to take place, each deputy is equipped with one electric thruster. The proposed trajectory optimization procedures are open-loop control strategies which can be incorporated in the closed feedback loop in many ways; one of which is a shrinking-horizon MPC such as the one presented in [16]. The first attempt to formulate the guidance problem is presented as a non-convex Quadratically Constrained Quadratic Programming (QCQP) problem, which is later relaxed to a convex QCQP that can be solved using Sequential Convex Programming (SCP). Due to the fact that the optimal solutions to the QCQP formulations require unnecessarily large Delta-V changes, the convex QCQP problem is reformulated into a Second-Order Cone Programming (SOCP) problem which makes better use of the available fuel. A final relaxation is applied to the SOCP formulation to transform it into the simplest form of convex programming problems; Linear Programming (LP). The main contributions of this paper are as follows:

  • 1.

    The mathematical formulations of the SOCP and the LP problems, which produce more Delta-V efficient solutions in comparison to the classical QCQP problems, while at the same time being easier to implement and faster to solve by most solvers;

  • 2.

    A benchmark experiment which is carried out on more than a dozen solvers over the convex QCQP, the SOCP, and the LP formulations;

  • 3.

    Guidelines for embedding the guidance algorithms for space-borne applications, drawn considering typical reconfigurations problems tackled in remote sensing applications.

The guidance plans presented in this paper are implemented as part of the AuFoSat toolbox; a Guidance, Navigation and Control library, developed to support the future missions of Triton-X; the multi-mission Low-Earth Orbit (LEO) microsatellite platform developed by LuxSpace. Previous AuFoSat research discussed orbit design [17], relative navigation [18, 19], absolute orbit kee** [15], and relative orbit corrections for two-satellite formations [16].

The article is organized such that Section 2 introduces the mathematical model used in the development of the trajectory optimization formulations, namely, a linearized model of the quasi-non-singular Relative Orbital Elements (ROE) is introduced. In Section 3, the different formulations of the formation reconfiguration problem are presented. Section 4 contains the implications of employing the final LP formulation, and presents the benchmark experiment. It also discusses the limitations of the proposed guidance schemes. Lastly, the paper is concluded in Section 5.

2 Dynamical model

In this section, a dynamical model of the quasi-non-singular Relative Orbital Elements (ROE), which is necessary for the development of the trajectory optimization strategies, is introduced. Multiple reference frames are utilised in the development of the ROE dynamics. The ones used in this work are; an Earth-Centered-Inertial frame (ECI), denoted as 𝔽isuperscript𝔽𝑖\mathbb{F}^{i}blackboard_F start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT. The True of Date (TOD) Earth Equator frame is the one referred to by ECI in this article; a Satellite-body-fixed frame, denoted by 𝔽bsuperscript𝔽𝑏\mathbb{F}^{b}blackboard_F start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT, with axes along the principal axes of inertia of the satellite; and the Radial-Transversal-Normal frame (RTN), denoted as 𝔽rsuperscript𝔽𝑟\mathbb{F}^{r}blackboard_F start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT, with its x-axis along the position vector of the chief pointing away from the Earth, with its z-axis along the normal direction to the chief’s orbital plane, and with its y-axis completing the right-handed triad. Vectors expressed in 𝔽isuperscript𝔽𝑖\mathbb{F}^{i}blackboard_F start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT, 𝔽bsuperscript𝔽𝑏\mathbb{F}^{b}blackboard_F start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT, or 𝔽rsuperscript𝔽𝑟\mathbb{F}^{r}blackboard_F start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT are signified by the superscripts ()isuperscript𝑖\left(\cdot\right)^{i}( ⋅ ) start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT, ()bsuperscript𝑏\left(\cdot\right)^{b}( ⋅ ) start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT, or ()rsuperscript𝑟\left(\cdot\right)^{r}( ⋅ ) start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT respectively.

The following set of orbital elements can be used to describe the orbital motion of a satellite, which is under the gravitational influence of a large celestial body such as the Earth, in a planet centered reference frame,

𝜶[aθexeyiΩ],𝜶superscriptmatrix𝑎𝜃subscript𝑒𝑥subscript𝑒𝑦𝑖Ω\boldsymbol{\alpha}\coloneqq\begin{bmatrix}a&\theta&e_{x}&e_{y}&i&\Omega\end{% bmatrix}^{\intercal},bold_italic_α ≔ [ start_ARG start_ROW start_CELL italic_a end_CELL start_CELL italic_θ end_CELL start_CELL italic_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL start_CELL italic_i end_CELL start_CELL roman_Ω end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT , (1)

where a𝑎aitalic_a is the semi-major axis, θ𝜃\thetaitalic_θ is the mean argument of latitude, 𝒆[exey]=[ecosωesinω]𝒆superscriptmatrixsubscript𝑒𝑥subscript𝑒𝑦superscriptmatrix𝑒𝜔𝑒𝜔\boldsymbol{e}\coloneqq\begin{bmatrix}e_{x}&e_{y}\end{bmatrix}^{\intercal}=% \begin{bmatrix}e\cos{\omega}&e\sin{\omega}\end{bmatrix}^{\intercal}bold_italic_e ≔ [ start_ARG start_ROW start_CELL italic_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL italic_e roman_cos italic_ω end_CELL start_CELL italic_e roman_sin italic_ω end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT, is the eccentricity vector with e𝑒eitalic_e being the eccentricity of the orbit and ω𝜔\omegaitalic_ω being the argument of periapsis. Furthermore, i𝑖iitalic_i is the orbital inclination and ΩΩ\Omegaroman_Ω is the Right Ascension of the Ascending Node (RAAN). A Cartesian state vector, 𝒙i[(𝒓i)(𝒗i)]superscript𝒙𝑖superscriptmatrixsuperscriptsuperscript𝒓𝑖superscriptsuperscript𝒗𝑖\boldsymbol{x}^{i}\coloneqq\begin{bmatrix}\left(\boldsymbol{r}^{i}\right)^{% \intercal}&\left(\boldsymbol{v}^{i}\right)^{\intercal}\end{bmatrix}^{\intercal}bold_italic_x start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ≔ [ start_ARG start_ROW start_CELL ( bold_italic_r start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL start_CELL ( bold_italic_v start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT, can equally represent the motion of the satellite, where 𝒓isuperscript𝒓𝑖\boldsymbol{r}^{i}bold_italic_r start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT and 𝒗isuperscript𝒗𝑖\boldsymbol{v}^{i}bold_italic_v start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT are the absolute position and velocity vectors expressed in 𝔽isuperscript𝔽𝑖\mathbb{F}^{i}blackboard_F start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT. Note that the Cartesian state vector can be mapped through a nonlinear transformation to the classical orbital elements, and vice versa [20]. When this map** is applied to the precise Cartesian state vector of the satellite, the instantaneous osculating orbital elements are produced, which, in the discussions to follow, are denoted by 𝜶~~𝜶\tilde{\boldsymbol{\alpha}}over~ start_ARG bold_italic_α end_ARG. Conversely, the mean orbital elements, denoted in the rest of the paper by 𝜶𝜶\boldsymbol{\alpha}bold_italic_α, are the one-orbit averaged elements, where the short- and long-term oscillations generated by the J2subscript𝐽2J_{2}italic_J start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT harmonic of the Earth gravitational potential are removed. The transformations in [21] are utilized to perform the mean/osculating elements map**.

The motion of the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy satellite with respect to the chief spacecraft is parameterized in this research by the dimensionless quasi-non-singular ROE vector, which is defined, using the orbital elements of both, the deputy and the chief, as follows,

δi𝜶[δiaδiλδiexδieyδiixδiiy]=[Δia/acΔiθ+ΔiΩcosicΔiexΔieyΔiiΔiΩsinic],subscript𝛿𝑖𝜶matrixsubscript𝛿𝑖𝑎subscript𝛿𝑖𝜆subscript𝛿𝑖subscript𝑒𝑥subscript𝛿𝑖subscript𝑒𝑦subscript𝛿𝑖subscript𝑖𝑥subscript𝛿𝑖subscript𝑖𝑦matrixsubscriptΔ𝑖𝑎subscript𝑎𝑐subscriptΔ𝑖𝜃subscriptΔ𝑖Ωsubscript𝑖𝑐subscriptΔ𝑖subscript𝑒𝑥subscriptΔ𝑖subscript𝑒𝑦subscriptΔ𝑖𝑖subscriptΔ𝑖Ωsubscript𝑖𝑐\delta_{i}\boldsymbol{\alpha}\coloneqq\begin{bmatrix}\delta_{i}a\\ \delta_{i}\lambda\\ \delta_{i}e_{x}\\ \delta_{i}e_{y}\\ \delta_{i}i_{x}\\ \delta_{i}i_{y}\end{bmatrix}=\begin{bmatrix}\Delta_{i}a/a_{c}\\ \Delta_{i}\theta+\Delta_{i}\Omega\cos{i_{c}}\\ \Delta_{i}e_{x}\\ \Delta_{i}e_{y}\\ \Delta_{i}i\\ \Delta_{i}\Omega\sin{i_{c}}\end{bmatrix},italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_α ≔ [ start_ARG start_ROW start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_a end_CELL end_ROW start_ROW start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_λ end_CELL end_ROW start_ROW start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] = [ start_ARG start_ROW start_CELL roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_a / italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_θ + roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_Ω roman_cos italic_i start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_i end_CELL end_ROW start_ROW start_CELL roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT roman_Ω roman_sin italic_i start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , (2)

where δi𝜶subscript𝛿𝑖𝜶\delta_{i}\boldsymbol{\alpha}italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_α is the dimensionless ROE vector of the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy, δiasubscript𝛿𝑖𝑎\delta_{i}aitalic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_a is its relative semi-major axis, δiλsubscript𝛿𝑖𝜆\delta_{i}\lambdaitalic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_λ is the relative mean longitude, δi𝒆[δiexδiey]subscript𝛿𝑖𝒆superscriptmatrixsubscript𝛿𝑖subscript𝑒𝑥subscript𝛿𝑖subscript𝑒𝑦\delta_{i}\boldsymbol{e}\coloneqq\begin{bmatrix}\delta_{i}e_{x}&\delta_{i}e_{y% }\end{bmatrix}^{\intercal}italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_e ≔ [ start_ARG start_ROW start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT is the relative eccentricity vector, and δi𝒊[δiixδiiy]subscript𝛿𝑖𝒊superscriptmatrixsubscript𝛿𝑖subscript𝑖𝑥subscript𝛿𝑖subscript𝑖𝑦\delta_{i}\boldsymbol{i}\coloneqq\begin{bmatrix}\delta_{i}i_{x}&\delta_{i}i_{y% }\end{bmatrix}^{\intercal}italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_i ≔ [ start_ARG start_ROW start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_i start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT is the relative inclination vector. It is to be noted that in this paper, the subscript ()ii{1,2,,N}subscript𝑖for-all𝑖12𝑁\left(\cdot\right)_{i}\;\forall i\in\left\{1,2,\ldots,N\right\}( ⋅ ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ∀ italic_i ∈ { 1 , 2 , … , italic_N }, with N𝑁Nitalic_N being the number of deputies, denotes a quantity related to the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy satellite, while the subscript ()csubscript𝑐\left(\cdot\right)_{c}( ⋅ ) start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT is used for chief-related quantities. Furthermore, δi()subscript𝛿𝑖\delta_{i}\left(\cdot\right)italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( ⋅ ) signifies a relative quantity between the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy and the chief, which may or may not be the arithmetic difference between the two quantities, while Δi()subscriptΔ𝑖\Delta_{i}\left(\cdot\right)roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( ⋅ ) signifies the arithmetic difference between ()isubscript𝑖\left(\cdot\right)_{i}( ⋅ ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT and ()csubscript𝑐\left(\cdot\right)_{c}( ⋅ ) start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT, i.e., Δi()()i()csubscriptΔ𝑖subscript𝑖subscript𝑐\Delta_{i}\left(\cdot\right)\coloneqq\left(\cdot\right)_{i}-\left(\cdot\right)% _{c}roman_Δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( ⋅ ) ≔ ( ⋅ ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - ( ⋅ ) start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT. As in the case of absolute orbital elements, the osculating ROE vector is denoted by δi𝜶~subscript𝛿𝑖~𝜶\delta_{i}\tilde{\boldsymbol{\alpha}}italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT over~ start_ARG bold_italic_α end_ARG, whereas the mean ROE vector is referred to as δi𝜶subscript𝛿𝑖𝜶\delta_{i}{\boldsymbol{\alpha}}italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_α. A dimensional ROE vector is obtained by multiplying the dimensionless ROE vector by the semi-major axis of the chief,

𝒚i=acδi𝜶,subscript𝒚𝑖subscript𝑎𝑐subscript𝛿𝑖𝜶\boldsymbol{y}_{i}=a_{c}\delta_{i}\boldsymbol{\alpha},bold_italic_y start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT italic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT bold_italic_α , (3)

where 𝒚isubscript𝒚𝑖\boldsymbol{y}_{i}bold_italic_y start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT is the dimensional mean ROE vector of the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy, with units of length.

Assuming neighbouring orbits of the chief and the deputies, and a near-circular orbit of the chief, the dynamics of the ROE can be linearized to the first order considering the mean effect of the J2subscript𝐽2J_{2}italic_J start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT zonal harmonic. In fact, a closed form solution of the linearized dynamics can be obtained for piece-wise constant input acceleration as discussed in [8]. The system evolution is expressed in the following form,

𝒚i(tk+1)=𝚽(tk,tk+1)𝒚i(tk)+𝚿(tk,tk+1)𝒖¯ir(tk,tk+1),subscript𝒚𝑖subscript𝑡𝑘1𝚽subscript𝑡𝑘subscript𝑡𝑘1subscript𝒚𝑖subscript𝑡𝑘𝚿subscript𝑡𝑘subscript𝑡𝑘1superscriptsubscript¯𝒖𝑖𝑟subscript𝑡𝑘subscript𝑡𝑘1\boldsymbol{y}_{i}\left(t_{k+1}\right)=\mathbf{\Phi}\left(t_{k},t_{k+1}\right)% \boldsymbol{y}_{i}\left(t_{k}\right)+\mathbf{\Psi}\left(t_{k},t_{k+1}\right)% \bar{\boldsymbol{u}}_{i}^{r}\left(t_{k},t_{k+1}\right),bold_italic_y start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) = bold_Φ ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) bold_italic_y start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) + bold_Ψ ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) , (4)

where 𝚽(tk,tk+1)𝚽subscript𝑡𝑘subscript𝑡𝑘1\mathbf{\Phi}\left(t_{k},t_{k+1}\right)bold_Φ ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) is the State Transition Matrix (STM) between the two time instants, tksubscript𝑡𝑘t_{k}italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and tk+1subscript𝑡𝑘1t_{k+1}italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT, 𝚿(tk,tk+1)𝚿subscript𝑡𝑘subscript𝑡𝑘1\mathbf{\Psi}\left(t_{k},t_{k+1}\right)bold_Ψ ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) is the convolution matrix between the same two time instants, and 𝒖¯ir(tk,tk+1)=ac𝒖ir(tk,tk+1)superscriptsubscript¯𝒖𝑖𝑟subscript𝑡𝑘subscript𝑡𝑘1subscript𝑎𝑐superscriptsubscript𝒖𝑖𝑟subscript𝑡𝑘subscript𝑡𝑘1\bar{\boldsymbol{u}}_{i}^{r}\left(t_{k},t_{k+1}\right)=a_{c}\boldsymbol{u}_{i}% ^{r}\left(t_{k},t_{k+1}\right)over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) = italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT bold_italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ), with 𝒖ir(tk,tk+1)=[ui,R(tk,tk+1)ui,T(tk,tk+1)ui,N(tk,tk+1)]superscriptsubscript𝒖𝑖𝑟subscript𝑡𝑘subscript𝑡𝑘1superscriptmatrixsubscript𝑢𝑖𝑅subscript𝑡𝑘subscript𝑡𝑘1subscript𝑢𝑖𝑇subscript𝑡𝑘subscript𝑡𝑘1subscript𝑢𝑖𝑁subscript𝑡𝑘subscript𝑡𝑘1\boldsymbol{u}_{i}^{r}\left(t_{k},t_{k+1}\right)=\begin{bmatrix}u_{i,R}\left(t% _{k},t_{k+1}\right)&u_{i,T}\left(t_{k},t_{k+1}\right)&u_{i,N}\left(t_{k},t_{k+% 1}\right)\end{bmatrix}^{\intercal}bold_italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) = [ start_ARG start_ROW start_CELL italic_u start_POSTSUBSCRIPT italic_i , italic_R end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) end_CELL start_CELL italic_u start_POSTSUBSCRIPT italic_i , italic_T end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) end_CELL start_CELL italic_u start_POSTSUBSCRIPT italic_i , italic_N end_POSTSUBSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT being the input acceleration vector provided by the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy’s thruster, expressed in 𝔽rsuperscript𝔽𝑟\mathbb{F}^{r}blackboard_F start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT, and constant over the period [tk,tk+1)subscript𝑡𝑘subscript𝑡𝑘1\left[t_{k},t_{k+1}\right)[ italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ). In the rest of the text, and in order to simplify the representation of equations, the following notations are used, 𝚽k𝚽(tk,tk+1)subscript𝚽𝑘𝚽subscript𝑡𝑘subscript𝑡𝑘1\mathbf{\Phi}_{k}\equiv\mathbf{\Phi}\left(t_{k},t_{k+1}\right)bold_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ≡ bold_Φ ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ), 𝚿k𝚿(tk,tk+1)subscript𝚿𝑘𝚿subscript𝑡𝑘subscript𝑡𝑘1\mathbf{\Psi}_{k}\equiv\mathbf{\Psi}\left(t_{k},t_{k+1}\right)bold_Ψ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ≡ bold_Ψ ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ), 𝒚k𝒚(tk)subscript𝒚𝑘𝒚subscript𝑡𝑘\boldsymbol{y}_{k}\equiv\boldsymbol{y}\left(t_{k}\right)bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ≡ bold_italic_y ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ), 𝒖¯i,k𝒖¯ir(tk,tk+1)subscript¯𝒖𝑖𝑘superscriptsubscript¯𝒖𝑖𝑟subscript𝑡𝑘subscript𝑡𝑘1\bar{\boldsymbol{u}}_{i,k}\equiv\bar{\boldsymbol{u}}_{i}^{r}\left(t_{k},t_{k+1% }\right)over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≡ over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ), and 𝒖i,k𝒖ir(tk,tk+1)subscript𝒖𝑖𝑘superscriptsubscript𝒖𝑖𝑟subscript𝑡𝑘subscript𝑡𝑘1\boldsymbol{u}_{i,k}\equiv\boldsymbol{u}_{i}^{r}\left(t_{k},t_{k+1}\right)bold_italic_u start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≡ bold_italic_u start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ). Note that 𝚽ksubscript𝚽𝑘\mathbf{\Phi}_{k}bold_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and 𝚿ksubscript𝚿𝑘\mathbf{\Psi}_{k}bold_Ψ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT do not relate to the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy since they only depend on chief-related quantities [8].

3 Guidance

In this section, a guidance scheme is developed for a formation that comprises an arbitrary number, N𝑁Nitalic_N, of deputy satellites together with a chief spacecraft. The ultimate goal of the guidance module is to drive the state of each deputy from its initial values, 𝒚i,0subscript𝒚𝑖0\boldsymbol{y}_{i,0}bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT at the initial time, t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, to the user-defined reference state, 𝒚i,fsubscript𝒚𝑖𝑓\boldsymbol{y}_{i,f}bold_italic_y start_POSTSUBSCRIPT italic_i , italic_f end_POSTSUBSCRIPT at the final time, tfsubscript𝑡𝑓t_{f}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT. The N𝑁Nitalic_N deputies are assumed to be each equipped with a single throttleable electric thruster dedicated for (relative) orbit reconfiguration, while the chief is uncontrolled and is assumed to be the spacecraft onboard of which the guidance calculations take place. In this under-actuated setting, each deputy has to undergo repeating attitude maneuvers in order to redirect its thruster in the desired direction before every thruster firing. The time required for these redirection maneuvers was taken into consideration in the design phase of the guidance procedure, and the thruster of each deputy is thus dictated to operate on an alternating on/off mode, where the slew maneuvers are allocated in the thruster off-periods. On top of the natural relative orbit changes during the thrusters off-periods, further forced ROE corrections are simultaneously induced for all the deputies through m+12𝑚12\dfrac{m+1}{2}divide start_ARG italic_m + 1 end_ARG start_ARG 2 end_ARG finite burns, with m𝑚mitalic_m being an odd number. Figure 1 illustrates the alternation between the on and off states of the electric thruster onboard of one of the deputies which shall drive its state from the initial to the reference value.

Refer to caption
Figure 1: Graphical representation of the low-thrust guidance strategy

It is important to emphasize that the time instances at which the thruster alternates between the on and off states, 𝒕=[t0t1tf]𝒕matrixsubscript𝑡0subscript𝑡1subscript𝑡𝑓\boldsymbol{t}=\begin{bmatrix}t_{0}&t_{1}&\ldots&t_{f}\end{bmatrix}bold_italic_t = [ start_ARG start_ROW start_CELL italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] (see Fig. 1), are assumed to be identical for all the deputies. It is, in fact, a common practice to unify the discretization steps for all the deputies in centralized trajectory optimization schemes [10, 22]. The problem of specifying a separate time vector for each deputy is out of the scope of this paper, and will be the focus of our future research. In fact, the problems of computing and broadcasting this time vector are also out of the scope of this study. The common time vector is left for the mission operator to determine, in order to enhance the mission predictability, which is a very important factor in the operation of real missions. It appears that leaving 𝒕𝒕\boldsymbol{t}bold_italic_t as a user-input not only helps predict the behaviour of the formation ahead of time, but also helps accommodate any operational constraints within the thrusters idle intervals. Operational constraints in our context might include not being able to use the thruster or the attitude control system for relative orbit correction during specific times, e.g., during ground contact, payload operations, or during times when the satellite is in the shadow. The time vector, 𝒕𝒕\boldsymbol{t}bold_italic_t, can be defined either through the time instances at which the thrusters switch between the on and off states, or through defining the initial time, t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, and the periods during which the thrusters are turned on or off. As a result, by letting ={1,2,,(m+1)/2}12𝑚12\mathcal{L}=\left\{1,2,\ldots,\left(m+1\right)/2\right\}caligraphic_L = { 1 , 2 , … , ( italic_m + 1 ) / 2 }, these periods are divided into two categories;

  • 1.

    The forced motion time periods, Tf,lsubscript𝑇𝑓𝑙T_{f,l}italic_T start_POSTSUBSCRIPT italic_f , italic_l end_POSTSUBSCRIPT, l𝑙l\in\mathcal{L}italic_l ∈ caligraphic_L;

  • 2.

    The natural motion periods (coast arcs), Tn,lsubscript𝑇𝑛𝑙T_{n,l}italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT, l𝑙l\in\mathcal{L}italic_l ∈ caligraphic_L.

Since the attitude redirection maneuvers are allocated during the natural motion periods, a lower bound for these coast arcs has to be imposed which is related to the maximum allowable angular speed, i.e., angular velocity’s Euclidean norm, of the deputies, such that,

Tn,lπωmax+Tsafetyl,formulae-sequencesubscript𝑇𝑛𝑙𝜋subscript𝜔𝑚𝑎𝑥subscript𝑇safetyfor-all𝑙T_{n,l}\geq\frac{\pi}{\omega_{max}}+T_{\text{safety}}\quad\forall l\in\mathcal% {L},italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT ≥ divide start_ARG italic_π end_ARG start_ARG italic_ω start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT end_ARG + italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT ∀ italic_l ∈ caligraphic_L , (5)

where ωmax=min(ωi,max)subscript𝜔𝑚𝑎𝑥subscript𝜔𝑖𝑚𝑎𝑥\omega_{max}=\min\left(\omega_{i,max}\right)italic_ω start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT = roman_min ( italic_ω start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT ) is the maximum angular speed of the deputy with slowest angular rate, with ωi,maxsubscript𝜔𝑖𝑚𝑎𝑥\omega_{i,max}italic_ω start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT being the maximum angular speed of the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy, and Tsafety0subscript𝑇safety0T_{\text{safety}}\geq 0italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT ≥ 0 is added to ensure that the coast arc can accommodate the most stringent attitude maneuver.

Letting,

𝐘=[𝒚1,0𝒚2,0𝒚N,0𝒚1,1𝒚2,1𝒚N,1𝒚1,m+1𝒚2,m+1𝒚N,m+1],𝐘matrixsubscript𝒚10subscript𝒚20subscript𝒚𝑁0subscript𝒚11subscript𝒚21subscript𝒚𝑁1subscript𝒚1𝑚1subscript𝒚2𝑚1subscript𝒚𝑁𝑚1\mathbf{Y}=\begin{bmatrix}\boldsymbol{y}_{1,0}&\boldsymbol{y}_{2,0}&\ldots&% \boldsymbol{y}_{N,0}\\ \boldsymbol{y}_{1,1}&\boldsymbol{y}_{2,1}&\ldots&\boldsymbol{y}_{N,1}\\ \vdots&\vdots&\ddots&\vdots\\ \boldsymbol{y}_{1,m+1}&\boldsymbol{y}_{2,m+1}&\ldots&\boldsymbol{y}_{N,m+1}% \end{bmatrix},bold_Y = [ start_ARG start_ROW start_CELL bold_italic_y start_POSTSUBSCRIPT 1 , 0 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_y start_POSTSUBSCRIPT 2 , 0 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL bold_italic_y start_POSTSUBSCRIPT italic_N , 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL bold_italic_y start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_y start_POSTSUBSCRIPT 2 , 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL bold_italic_y start_POSTSUBSCRIPT italic_N , 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL bold_italic_y start_POSTSUBSCRIPT 1 , italic_m + 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_y start_POSTSUBSCRIPT 2 , italic_m + 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL bold_italic_y start_POSTSUBSCRIPT italic_N , italic_m + 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , (6)
𝐔¯=[𝒖¯1,0𝒖¯2,0𝒖¯N,0𝒖¯1,1𝒖¯2,1𝒖¯N,1𝒖¯1,m𝒖¯2,m𝒖¯N,m],¯𝐔matrixsubscript¯𝒖10subscript¯𝒖20subscript¯𝒖𝑁0subscript¯𝒖11subscript¯𝒖21subscript¯𝒖𝑁1subscript¯𝒖1𝑚subscript¯𝒖2𝑚subscript¯𝒖𝑁𝑚\bar{\mathbf{U}}=\begin{bmatrix}\bar{\boldsymbol{u}}_{1,0}&\bar{\boldsymbol{u}% }_{2,0}&\ldots&\bar{\boldsymbol{u}}_{N,0}\\ \bar{\boldsymbol{u}}_{1,1}&\bar{\boldsymbol{u}}_{2,1}&\ldots&\bar{\boldsymbol{% u}}_{N,1}\\ \vdots&\vdots&\ddots&\vdots\\ \bar{\boldsymbol{u}}_{1,m}&\bar{\boldsymbol{u}}_{2,m}&\ldots&\bar{\boldsymbol{% u}}_{N,m}\end{bmatrix},over¯ start_ARG bold_U end_ARG = [ start_ARG start_ROW start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT 1 , 0 end_POSTSUBSCRIPT end_CELL start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT 2 , 0 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_N , 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT end_CELL start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT 2 , 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_N , 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT 1 , italic_m end_POSTSUBSCRIPT end_CELL start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT 2 , italic_m end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_N , italic_m end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , (7)

the guidance problem can be formally written as an optimization problem with a quadratic objective function, as is classically done [23], as follows,

Problem 1 (Non-convex formulation)
min𝐘,𝐔¯1ac2ik𝒦f(Δtk2𝒖¯i,k𝒖¯i,k)subscript𝐘¯𝐔1superscriptsubscript𝑎𝑐2subscript𝑖subscript𝑘subscript𝒦𝑓Δsuperscriptsubscript𝑡𝑘2superscriptsubscript¯𝒖𝑖𝑘subscript¯𝒖𝑖𝑘\displaystyle\min_{\mathbf{Y},\bar{\mathbf{U}}}\quad\frac{1}{a_{c}^{2}}\sum_{i% \in\mathcal{I}}\sum_{k\in\mathcal{K}_{f}}{\left(\Delta t_{k}^{2}\bar{% \boldsymbol{u}}_{i,k}^{\intercal}\bar{\boldsymbol{u}}_{i,k}\right)}roman_min start_POSTSUBSCRIPT bold_Y , over¯ start_ARG bold_U end_ARG end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG ∑ start_POSTSUBSCRIPT italic_i ∈ caligraphic_I end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( roman_Δ italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT )
subject to,
𝒚i,0=𝒚i,0,𝒚i,m+1=𝒚i,fi,formulae-sequencesubscript𝒚𝑖0subscript𝒚𝑖0formulae-sequencesubscript𝒚𝑖𝑚1subscript𝒚𝑖𝑓for-all𝑖\displaystyle\boldsymbol{y}_{i,0}=\boldsymbol{y}_{i,0},\qquad\boldsymbol{y}_{i% ,m+1}=\boldsymbol{y}_{i,f}\quad\forall i\in\mathcal{I},bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_i , italic_m + 1 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , italic_f end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , (8)
𝒚i,k+1=𝚽k𝒚i,k+𝚿k𝒖¯i,ki,k𝒦,formulae-sequencesubscript𝒚𝑖𝑘1subscript𝚽𝑘subscript𝒚𝑖𝑘subscript𝚿𝑘subscript¯𝒖𝑖𝑘formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\boldsymbol{y}_{i,k+1}=\mathbf{\Phi}_{k}\boldsymbol{y}_{i,k}+% \mathbf{\Psi}_{k}\bar{\boldsymbol{u}}_{i,k}\quad\forall i\in\mathcal{I},\;% \forall k\in\mathcal{K},bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k + 1 end_POSTSUBSCRIPT = bold_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT + bold_Ψ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (9)
𝒖¯i,k=𝟎i,k𝒦n,formulae-sequencesubscript¯𝒖𝑖𝑘0formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑛\displaystyle\bar{\boldsymbol{u}}_{i,k}=\boldsymbol{0}\quad\forall i\in% \mathcal{I},\;\forall k\in\mathcal{K}_{n},over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = bold_0 ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , (10)
𝒖¯i,k𝒖¯i,kac2ui,max2i,k𝒦f,formulae-sequencesubscriptsuperscript¯𝒖𝑖𝑘subscript¯𝒖𝑖𝑘superscriptsubscript𝑎𝑐2subscriptsuperscript𝑢2𝑖𝑚𝑎𝑥formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\bar{\boldsymbol{u}}^{\intercal}_{i,k}\bar{\boldsymbol{u}}_{i,k}% \leq a_{c}^{2}u^{2}_{i,max}\quad\forall i\in\mathcal{I},\;\forall k\in\mathcal% {K}_{f},over¯ start_ARG bold_italic_u end_ARG start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (11)
(𝒚i,k𝒚j,k)𝐓k𝐓k(𝒚i,k𝒚j,k)RCA2i,j,ij,k𝒦,formulae-sequencesuperscriptsubscript𝒚𝑖𝑘subscript𝒚𝑗𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘subscript𝒚𝑗𝑘superscriptsubscript𝑅CA2for-all𝑖formulae-sequence𝑗formulae-sequence𝑖𝑗for-all𝑘𝒦\displaystyle\begin{multlined}\left(\boldsymbol{y}_{i,k}-\boldsymbol{y}_{j,k}% \right)^{\intercal}\mathbf{T}_{k}^{\intercal}\mathbf{T}_{k}\left(\boldsymbol{y% }_{i,k}-\boldsymbol{y}_{j,k}\right)\geq R_{\text{CA}}^{2}\\ \hfill\forall i,j\in\mathcal{I},\;i\neq j,\;\forall k\in\mathcal{K},\end{% multlined}\left(\boldsymbol{y}_{i,k}-\boldsymbol{y}_{j,k}\right)^{\intercal}% \mathbf{T}_{k}^{\intercal}\mathbf{T}_{k}\left(\boldsymbol{y}_{i,k}-\boldsymbol% {y}_{j,k}\right)\geq R_{\text{CA}}^{2}\\ \hfill\forall i,j\in\mathcal{I},\;i\neq j,\;\forall k\in\mathcal{K},start_ROW start_CELL ( bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL ∀ italic_i , italic_j ∈ caligraphic_I , italic_i ≠ italic_j , ∀ italic_k ∈ caligraphic_K , end_CELL end_ROW (14)
𝒚¯i,k𝐓k𝐓k𝒚i,kRCA2i,k𝒦,formulae-sequencesuperscriptsubscript¯𝒚𝑖𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘superscriptsubscript𝑅CA2formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\bar{\boldsymbol{y}}_{i,k}^{\intercal}\mathbf{T}_{k}^{\intercal}% \mathbf{T}_{k}\boldsymbol{y}_{i,k}\geq R_{\text{CA}}^{2}\quad\forall i\in% \mathcal{I},\;\forall k\in\mathcal{K},over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (15)

where Δtk=tk+1tkΔsubscript𝑡𝑘subscript𝑡𝑘1subscript𝑡𝑘\Delta t_{k}=t_{k+1}-t_{k}roman_Δ italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT = italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, 𝟎0\boldsymbol{0}bold_0 is a vector of zeros, ={1,2,,N}12𝑁\mathcal{I}=\left\{1,2,\ldots,N\right\}caligraphic_I = { 1 , 2 , … , italic_N } is the set of deputies’ indices, 𝒦=𝒦f𝒦n𝒦subscript𝒦𝑓subscript𝒦𝑛\mathcal{K}=\mathcal{K}_{f}\cup\mathcal{K}_{n}caligraphic_K = caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∪ caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, with 𝒦f={0,2,4,,m1}subscript𝒦𝑓024𝑚1\mathcal{K}_{f}=\left\{0,2,4,\ldots,m-1\right\}caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = { 0 , 2 , 4 , … , italic_m - 1 } being the set of time indices where the thruster of each deputy is turned on, i.e., forced motion periods, and 𝒦n={1,3,5,m}subscript𝒦𝑛135𝑚\mathcal{K}_{n}=\left\{1,3,5\ldots,m\right\}caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = { 1 , 3 , 5 … , italic_m } being the set of time indices where the thruster of each deputy is turned off, i.e., natural motion periods, ui,maxsubscript𝑢𝑖𝑚𝑎𝑥u_{i,max}italic_u start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT is the maximum allowable acceleration by the onboard thruster of the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy. Generally, it is the maximum allowable thrust that is provided in the data sheets of electric thrusters, and not the maximum acceleration. However, the latter can be calculated from the former according to: ui,max=fi,max/Misubscript𝑢𝑖𝑚𝑎𝑥subscript𝑓𝑖𝑚𝑎𝑥subscript𝑀𝑖u_{i,max}=f_{i,max}/M_{i}italic_u start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT = italic_f start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT / italic_M start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT, with fi,maxsubscript𝑓𝑖𝑚𝑎𝑥f_{i,max}italic_f start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT being the maximum thrust of the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy, and Misubscript𝑀𝑖M_{i}italic_M start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT being its mass, which is assumed constant throughout the maneuver, and is set to the mass of the satellite at t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. Furthermore, in Problem 1, RCA0subscript𝑅CA0R_{\text{CA}}\geq 0italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT ≥ 0 is the radius of the collision avoidance sphere, and 𝐓k3×6subscript𝐓𝑘superscript36\mathbf{T}_{k}\in\mathbb{R}^{3\times 6}bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 3 × 6 end_POSTSUPERSCRIPT is the matrix that transforms a dimensional ROE vector into its corresponding position vector in the RTN frame. An explicit expression for this matrix can be found in [24]. It is important to note that 𝒖¯i,ksubscript¯𝒖𝑖𝑘\bar{\boldsymbol{u}}_{i,k}over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT are chosen to be included as optimization variables instead of 𝒖i,ksubscript𝒖𝑖𝑘\boldsymbol{u}_{i,k}bold_italic_u start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT in order to ensure that all the decision variables, i.e., 𝐘𝐘\mathbf{Y}bold_Y and 𝐔¯¯𝐔\bar{\mathbf{U}}over¯ start_ARG bold_U end_ARG, are of comparable orders of magnitude, which makes it less probable that a solver will run into numerical issues. Poorly-scaled problems typically require longer times to solve, if a solution can be found in the first place.

The constraints imposed on Problem 1 are summarized as follows,

  • 1.

    Equation (8) represents the boundary constraints which dictates the guidance profile to have the final state exactly equal to the set points defined by the user, while respecting the initial state of each deputy;

  • 2.

    The relative orbital dynamics are imposed on the trajectory optimizer through Eq. 9;

  • 3.

    The acceleration constraints are forced through equations (10) and (11). Note that Eq. 10 is a hard constraint to ensure that the input acceleration onboard of each deputy provided during attitude redirection maneuvers is exactly zero;

  • 4.

    Inter-deputy collision is avoided by imposing Eq. 14, which guarantees that no deputy enters the collision sphere of another, while deputy-chief collision is prohibited at each time step through Eq. 15. Since the time steps of our application are relatively small when considering how slow the relative orbital dynamics can be, inter-step collision avoidance is ignored in this study.

It is clear that the cost function of Problem 1 is the sum of the squared second Lebesgue (L2) norms of all the control Delta-V across all deputies and across all time instances during the reconfiguration maneuver. Minimizing this cost function not only results in a Delta-V-optimal solution, but also produces a fuel-optimal solution. Indeed, the terms ”Delta-V-optimal” and ”fuel-optimal” can be used interchangeably in our case, since they really do refer to the same thing when the controlled spacecraft are each equipped with a single thruster [25].

Problem 1 is a non-convex optimization problem which requires a series of elaborate processes in order to find its globally optimal solution. The non-convexity of Problem 1 arises solely from the non-convexity of the two last constraints. In fact, if it were not for constraints (14) and (15), Problem 1 would have been a convex optimization problem that is guaranteed to have a globally optimal solution. One way to convexify the problem is to approximate the non-convex constraints by affine ones, then solving the problem through Sequential Convex Programming (SCP). Using the relaxation proposed in [22] for the collision avoidance constraints, Problem 1 can be rewritten in its relaxed convex Quadratically Constrained Quadratic Programming (convex QCQP) form as follows,

Problem 2 (Convex QCQP formulation)
min𝐘,𝐔¯1ac2ik𝒦f(Δtk2𝒖¯i,k𝒖¯i,k)subscript𝐘¯𝐔1superscriptsubscript𝑎𝑐2subscript𝑖subscript𝑘subscript𝒦𝑓Δsuperscriptsubscript𝑡𝑘2superscriptsubscript¯𝒖𝑖𝑘subscript¯𝒖𝑖𝑘\displaystyle\min_{\mathbf{Y},\bar{\mathbf{U}}}\quad\frac{1}{a_{c}^{2}}\sum_{i% \in\mathcal{I}}\sum_{k\in\mathcal{K}_{f}}{\left(\Delta t_{k}^{2}\bar{% \boldsymbol{u}}_{i,k}^{\intercal}\bar{\boldsymbol{u}}_{i,k}\right)}roman_min start_POSTSUBSCRIPT bold_Y , over¯ start_ARG bold_U end_ARG end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG ∑ start_POSTSUBSCRIPT italic_i ∈ caligraphic_I end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( roman_Δ italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT )
subject to,
𝒚i,0=𝒚i,0,𝒚i,m+1=𝒚i,fi,formulae-sequencesubscript𝒚𝑖0subscript𝒚𝑖0formulae-sequencesubscript𝒚𝑖𝑚1subscript𝒚𝑖𝑓for-all𝑖\displaystyle\boldsymbol{y}_{i,0}=\boldsymbol{y}_{i,0},\qquad\boldsymbol{y}_{i% ,m+1}=\boldsymbol{y}_{i,f}\quad\forall i\in\mathcal{I},bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_i , italic_m + 1 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , italic_f end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , (16)
𝒚i,k+1=𝚽k𝒚i,k+𝚿k𝒖¯i,ki,k𝒦,formulae-sequencesubscript𝒚𝑖𝑘1subscript𝚽𝑘subscript𝒚𝑖𝑘subscript𝚿𝑘subscript¯𝒖𝑖𝑘formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\boldsymbol{y}_{i,k+1}=\mathbf{\Phi}_{k}\boldsymbol{y}_{i,k}+% \mathbf{\Psi}_{k}\bar{\boldsymbol{u}}_{i,k}\quad\forall i\in\mathcal{I},\;% \forall k\in\mathcal{K},bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k + 1 end_POSTSUBSCRIPT = bold_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT + bold_Ψ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (17)
𝒖¯i,k=𝟎i,k𝒦n,formulae-sequencesubscript¯𝒖𝑖𝑘0formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑛\displaystyle\bar{\boldsymbol{u}}_{i,k}=\boldsymbol{0}\quad\forall i\in% \mathcal{I},\;\forall k\in\mathcal{K}_{n},over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = bold_0 ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , (18)
𝒖¯i,k𝒖¯i,kac2ui,max2i,k𝒦f,formulae-sequencesubscriptsuperscript¯𝒖𝑖𝑘subscript¯𝒖𝑖𝑘superscriptsubscript𝑎𝑐2subscriptsuperscript𝑢2𝑖𝑚𝑎𝑥formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\bar{\boldsymbol{u}}^{\intercal}_{i,k}\bar{\boldsymbol{u}}_{i,k}% \leq a_{c}^{2}u^{2}_{i,max}\quad\forall i\in\mathcal{I},\;\forall k\in\mathcal% {K}_{f},over¯ start_ARG bold_italic_u end_ARG start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_u start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (19)
(𝒚¯i,k𝒚¯j,k)𝐓k𝐓k(𝒚i,k𝒚j,k)RCA𝒚¯i,k𝒚¯j,k2i,j,ij,k𝒦,formulae-sequencesuperscriptsubscript¯𝒚𝑖𝑘subscript¯𝒚𝑗𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘subscript𝒚𝑗𝑘subscript𝑅CAsubscriptdelimited-∥∥subscript¯𝒚𝑖𝑘subscript¯𝒚𝑗𝑘2for-all𝑖formulae-sequence𝑗formulae-sequence𝑖𝑗for-all𝑘𝒦\displaystyle\begin{multlined}\left(\bar{\boldsymbol{y}}_{i,k}-\bar{% \boldsymbol{y}}_{j,k}\right)^{\intercal}\mathbf{T}_{k}^{\intercal}\mathbf{T}_{% k}\left(\boldsymbol{y}_{i,k}-\boldsymbol{y}_{j,k}\right)\geq R_{\text{CA}}% \left\|\bar{\boldsymbol{y}}_{i,k}-\bar{\boldsymbol{y}}_{j,k}\right\|_{2}\\ \hfill\forall i,j\in\mathcal{I},\;i\neq j,\;\forall k\in\mathcal{K},\end{% multlined}\left(\bar{\boldsymbol{y}}_{i,k}-\bar{\boldsymbol{y}}_{j,k}\right)^{% \intercal}\mathbf{T}_{k}^{\intercal}\mathbf{T}_{k}\left(\boldsymbol{y}_{i,k}-% \boldsymbol{y}_{j,k}\right)\geq R_{\text{CA}}\left\|\bar{\boldsymbol{y}}_{i,k}% -\bar{\boldsymbol{y}}_{j,k}\right\|_{2}\\ \hfill\forall i,j\in\mathcal{I},\;i\neq j,\;\forall k\in\mathcal{K},start_ROW start_CELL ( over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT ∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ∀ italic_i , italic_j ∈ caligraphic_I , italic_i ≠ italic_j , ∀ italic_k ∈ caligraphic_K , end_CELL end_ROW (22)
𝒚¯i,k𝐓k𝐓k𝒚i,kRCA𝒚¯i,k2i,k𝒦,formulae-sequencesuperscriptsubscript¯𝒚𝑖𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘subscript𝑅CAsubscriptnormsubscript¯𝒚𝑖𝑘2formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\bar{\boldsymbol{y}}_{i,k}^{\intercal}\mathbf{T}_{k}^{\intercal}% \mathbf{T}_{k}\boldsymbol{y}_{i,k}\geq R_{\text{CA}}\left\|\bar{\boldsymbol{y}% }_{i,k}\right\|_{2}\quad\forall i\in\mathcal{I},\;\forall k\in\mathcal{K},over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT ∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (23)

where 𝒚¯i,ksubscript¯𝒚𝑖𝑘\bar{\boldsymbol{y}}_{i,k}over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT is a predicted value for the dimensional ROE vector of the ithsuperscript𝑖thi^{\text{th}}italic_i start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT deputy at time tksubscript𝑡𝑘t_{k}italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT and 2\left\|\cdot\right\|_{2}∥ ⋅ ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is the second norm of a vector. The solution to Problem 2 can be obtained sequentially through Sequential Convex Programming (SCP), where 𝒚¯i,ksubscript¯𝒚𝑖𝑘\bar{\boldsymbol{y}}_{i,k}over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT for the current iteration is set to 𝒚i,ksubscript𝒚𝑖𝑘\boldsymbol{y}_{i,k}bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT from the previous iteration. For the first iteration, 𝒚¯i,ksubscript¯𝒚𝑖𝑘\bar{\boldsymbol{y}}_{i,k}over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT can be obtained in a variety ways, e.g., imposing the dynamics solution, Eq. 4, from the initial to the final times with no control inputs, or alternatively solving the problem without the collision avoidance constraints first and extracting 𝒚i,ksubscript𝒚𝑖𝑘{\boldsymbol{y}}_{i,k}bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT from the solution, then setting 𝒚¯i,k=𝒚i,ksubscript¯𝒚𝑖𝑘subscript𝒚𝑖𝑘\bar{\boldsymbol{y}}_{i,k}={\boldsymbol{y}}_{i,k}over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT. The SCP scheme is set to terminate when one of the following criteria is satisfied,

  • 1.

    𝒚¯i,k𝒚i,k2ϵsubscriptnormsubscript¯𝒚𝑖𝑘subscript𝒚𝑖𝑘2italic-ϵ\left\|\bar{\boldsymbol{y}}_{i,k}-\boldsymbol{y}_{i,k}\right\|_{2}\leq\epsilon∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≤ italic_ϵ at the current iteration, with ϵ>0italic-ϵ0\epsilon>0italic_ϵ > 0 being a user-defined threshold;

  • 2.

    The guidance profile of the current iteration is collision free;

  • 3.

    The user-defined maximum number of iteration is reached, in which case, the solution trajectory is not guaranteed to be collision-free.

Since the objective function of Problem 2, and that of Problem 1 for that matter, aggregates the squared L2 norms of the Delta-V vectors, across deputies and across time instances, it comes as no surprise that the solver gives a stronger emphasis on larger values of Delta-V. While a quadratic objective function suppresses the control peaks, and hence enhances the smoothness of the optimal state trajectory [26], it makes Problems 1 and 2 close to being minimization problems for the maximum Delta-V instance. An alternative approach is to set the cost function to the sum of the second-norms of the Delta-V vectors, rather than the sum of the squared norms. Adopting this approach, then transforming the problem into its separable epigraph form [27], which is a very close form to the epigraph problem form [28], the new problem can be written as a second-order cone orogramming problem as follows:

Problem 3 (SOCP formulation)
min𝐘,𝐔¯,𝚪1acik𝒦f(ΔtkΓi,k)subscript𝐘¯𝐔𝚪1subscript𝑎𝑐subscript𝑖subscript𝑘subscript𝒦𝑓Δsubscript𝑡𝑘subscriptΓ𝑖𝑘\displaystyle\min_{\mathbf{Y},\bar{\mathbf{U}},\mathbf{\Gamma}}\quad\frac{1}{a% _{c}}\sum_{i\in\mathcal{I}}\sum_{k\in\mathcal{K}_{f}}{\left(\Delta t_{k}\Gamma% _{i,k}\right)}roman_min start_POSTSUBSCRIPT bold_Y , over¯ start_ARG bold_U end_ARG , bold_Γ end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG ∑ start_POSTSUBSCRIPT italic_i ∈ caligraphic_I end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( roman_Δ italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT )
subject to,
𝒚i,0=𝒚i,0,𝒚i,m+1=𝒚i,fi,formulae-sequencesubscript𝒚𝑖0subscript𝒚𝑖0formulae-sequencesubscript𝒚𝑖𝑚1subscript𝒚𝑖𝑓for-all𝑖\displaystyle\boldsymbol{y}_{i,0}=\boldsymbol{y}_{i,0},\qquad\boldsymbol{y}_{i% ,m+1}=\boldsymbol{y}_{i,f}\quad\forall i\in\mathcal{I},bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_i , italic_m + 1 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , italic_f end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , (24)
𝒚i,k+1=𝚽k𝒚i,k+𝚿k𝒖¯i,ki,k𝒦,formulae-sequencesubscript𝒚𝑖𝑘1subscript𝚽𝑘subscript𝒚𝑖𝑘subscript𝚿𝑘subscript¯𝒖𝑖𝑘formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\boldsymbol{y}_{i,k+1}=\mathbf{\Phi}_{k}\boldsymbol{y}_{i,k}+% \mathbf{\Psi}_{k}\bar{\boldsymbol{u}}_{i,k}\quad\forall i\in\mathcal{I},\;% \forall k\in\mathcal{K},bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k + 1 end_POSTSUBSCRIPT = bold_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT + bold_Ψ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (25)
𝒖¯i,k=𝟎i,k𝒦n,formulae-sequencesubscript¯𝒖𝑖𝑘0formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑛\displaystyle\bar{\boldsymbol{u}}_{i,k}=\boldsymbol{0}\quad\forall i\in% \mathcal{I},\;\forall k\in\mathcal{K}_{n},over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = bold_0 ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , (26)
𝒖¯i,k2Γi,k,i,k𝒦f,formulae-sequencesubscriptnormsubscript¯𝒖𝑖𝑘2subscriptΓ𝑖𝑘formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\left\|\bar{\boldsymbol{u}}_{i,k}\right\|_{2}\leq\Gamma_{i,k},% \quad\forall i\in\mathcal{I},\;\forall k\in\mathcal{K}_{f},∥ over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≤ roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT , ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (27)
Γi,kacui,maxi,k𝒦f,formulae-sequencesubscriptΓ𝑖𝑘subscript𝑎𝑐subscript𝑢𝑖𝑚𝑎𝑥formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\Gamma_{i,k}\leq a_{c}u_{i,max}\quad\forall i\in\mathcal{I},\;% \forall k\in\mathcal{K}_{f},roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (28)
(𝒚¯i,k𝒚¯j,k)𝐓k𝐓k(𝒚i,k𝒚j,k)RCA𝒚¯i,k𝒚¯j,k2i,j,ij,k𝒦,formulae-sequencesuperscriptsubscript¯𝒚𝑖𝑘subscript¯𝒚𝑗𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘subscript𝒚𝑗𝑘subscript𝑅CAsubscriptdelimited-∥∥subscript¯𝒚𝑖𝑘subscript¯𝒚𝑗𝑘2for-all𝑖formulae-sequence𝑗formulae-sequence𝑖𝑗for-all𝑘𝒦\displaystyle\begin{multlined}\left(\bar{\boldsymbol{y}}_{i,k}-\bar{% \boldsymbol{y}}_{j,k}\right)^{\intercal}\mathbf{T}_{k}^{\intercal}\mathbf{T}_{% k}\left(\boldsymbol{y}_{i,k}-\boldsymbol{y}_{j,k}\right)\geq R_{\text{CA}}% \left\|\bar{\boldsymbol{y}}_{i,k}-\bar{\boldsymbol{y}}_{j,k}\right\|_{2}\\ \hfill\forall i,j\in\mathcal{I},\;i\neq j,\;\forall k\in\mathcal{K},\end{% multlined}\left(\bar{\boldsymbol{y}}_{i,k}-\bar{\boldsymbol{y}}_{j,k}\right)^{% \intercal}\mathbf{T}_{k}^{\intercal}\mathbf{T}_{k}\left(\boldsymbol{y}_{i,k}-% \boldsymbol{y}_{j,k}\right)\geq R_{\text{CA}}\left\|\bar{\boldsymbol{y}}_{i,k}% -\bar{\boldsymbol{y}}_{j,k}\right\|_{2}\\ \hfill\forall i,j\in\mathcal{I},\;i\neq j,\;\forall k\in\mathcal{K},start_ROW start_CELL ( over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT ∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ∀ italic_i , italic_j ∈ caligraphic_I , italic_i ≠ italic_j , ∀ italic_k ∈ caligraphic_K , end_CELL end_ROW (31)
𝒚¯i,k𝐓k𝐓k𝒚i,kRCA𝒚¯i,k2i,k𝒦,formulae-sequencesuperscriptsubscript¯𝒚𝑖𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘subscript𝑅CAsubscriptnormsubscript¯𝒚𝑖𝑘2formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\bar{\boldsymbol{y}}_{i,k}^{\intercal}\mathbf{T}_{k}^{\intercal}% \mathbf{T}_{k}\boldsymbol{y}_{i,k}\geq R_{\text{CA}}\left\|\bar{\boldsymbol{y}% }_{i,k}\right\|_{2}\quad\forall i\in\mathcal{I},\;\forall k\in\mathcal{K},over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT ∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (32)

where 𝚪𝚪\mathbf{\Gamma}bold_Γ is a matrix which collates all the auxiliary variables that had to be introduced in order to put the problem into the separable epigraph form. Formally,

𝚪=[Γ1,0Γ2,0ΓN,0Γ1,2Γ2,2ΓN,2Γ1,m1Γ2,m1ΓN,m1].𝚪matrixsubscriptΓ10subscriptΓ20subscriptΓ𝑁0subscriptΓ12subscriptΓ22subscriptΓ𝑁2subscriptΓ1𝑚1subscriptΓ2𝑚1subscriptΓ𝑁𝑚1\mathbf{\Gamma}=\begin{bmatrix}\Gamma_{1,0}&\Gamma_{2,0}&\ldots&\Gamma_{N,0}\\ \Gamma_{1,2}&\Gamma_{2,2}&\ldots&\Gamma_{N,2}\\ \vdots&\vdots&\ddots&\vdots\\ \Gamma_{1,m-1}&\Gamma_{2,m-1}&\ldots&\Gamma_{N,m-1}\\ \end{bmatrix}.bold_Γ = [ start_ARG start_ROW start_CELL roman_Γ start_POSTSUBSCRIPT 1 , 0 end_POSTSUBSCRIPT end_CELL start_CELL roman_Γ start_POSTSUBSCRIPT 2 , 0 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL roman_Γ start_POSTSUBSCRIPT italic_N , 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL roman_Γ start_POSTSUBSCRIPT 1 , 2 end_POSTSUBSCRIPT end_CELL start_CELL roman_Γ start_POSTSUBSCRIPT 2 , 2 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL roman_Γ start_POSTSUBSCRIPT italic_N , 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL roman_Γ start_POSTSUBSCRIPT 1 , italic_m - 1 end_POSTSUBSCRIPT end_CELL start_CELL roman_Γ start_POSTSUBSCRIPT 2 , italic_m - 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL roman_Γ start_POSTSUBSCRIPT italic_N , italic_m - 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] . (33)

It is important to note that SOCP problems can be handled in their native form, i.e., without having to transform the SOC constraints into quadratic ones, only by a handful of solvers, e.g., SCS, ECOS, and MOSEK. Many of the solvers require the SOC constraints to be transformed into quadratic ones, which, if applied to constraint (27), renders it non-convex, unless an additional linear constraint is added, namely, Γi,k0i,k𝒦fformulae-sequencesubscriptΓ𝑖𝑘0for-all𝑖for-all𝑘subscript𝒦𝑓\Gamma_{i,k}\geq 0\;\forall i\in\mathcal{I},\;\forall k\in\mathcal{K}_{f}roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≥ 0 ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT. By adding this additional constraint, many solvers, e.g., Gurobi and Knitro, recognize the transformed quadratic constraint as a second order cone, and treat it as such.

Tracking the behaviour of the Second-Order Cone (SOC) constraint, Eq. 27, is quite interesting since it behaves such that,

𝒖¯i,k2=Γi,k,i,k𝒦f,formulae-sequencesubscriptnormsubscriptsuperscript¯𝒖𝑖𝑘2subscriptsuperscriptΓ𝑖𝑘formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\left\|\bar{\boldsymbol{u}}^{*}_{i,k}\right\|_{2}=\Gamma^{*}_{i,k},\quad% \forall i\in\mathcal{I},\;\forall k\in\mathcal{K}_{f},∥ over¯ start_ARG bold_italic_u end_ARG start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = roman_Γ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT , ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (34)

with ()superscript\left(\cdot\right)^{*}( ⋅ ) start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT being the optimal solution to the problem, due to the fact that Problem 3 is pushing Γi,ksubscriptΓ𝑖𝑘\Gamma_{i,k}roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT to be as low as possible (refer to the cost function of the problem), and since the lowest possible value for Γi,ksubscriptΓ𝑖𝑘\Gamma_{i,k}roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT is 𝒖¯i,k2subscriptnormsubscript¯𝒖𝑖𝑘2\left\|\bar{\boldsymbol{u}}_{i,k}\right\|_{2}∥ over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT according to constraint (27).

Problem 3 can be taken a step further and be formulated as a Linear Programming (LP) problem, which makes it possible for the new formulation to be solved by the vast majority of the numerical optimization solvers. This transformation can be applied through implementing a piece-wise linearization to the Euclidean norm function in Eq. 27. Transforming Problem 3 into an LP one not only enables the possibility to use many solvers that cannot handle the SOCP form, but may also require less time to solve than that of the SOCP formulation, although not necessarily. A less solve time can be anticipated for the LP formulation due to the fact that LP is presumably the simplest form of a convex optimization problem, and also due to the existence of dedicated LP algorithms, e.g., primal and dual simplex, which have matured over the last few decades. However, transforming the SOCP formulation into an LP one, comes at the cost of adding new constraints to the problem.

As previously mentioned, Problem 3 can be approximated to an LP form through relaxing the maximum acceleration SOCP constraint (sphere), Eq. 27, using multiple piece-wise affine constraints (polyhedron) as proposed in [16]. In [16], the piece-wise approximation was applied to the sphere such that its projections (circles) on each of the three planes, the Transversal-Normal (T-N), the Radial-Normal(R-N), and the Transversal-Radial(T-R), are each treated separately. Indeed, the optimal solution of Problem 3 is expected to have minor acceleration components in the radial direction [7, 14], which is why a stronger emphasis is put on the acceleration components lying on the T-N plane by employing a finer grid than that which is applied in the R-N and the T-R planes. This is explained graphically in Fig. 2, where the feasibility volumes are projected on the T-R, the T-N, and the R-N planes.

Refer to caption
Figure 2: Comparison between the control input feasibility region of the SOCP formulation against that of the LP one

Having introduced the concept behind the transformation of Problem 3 into its LP approximation, this reformulation can be written as follows,

Problem 4 (LP formulation)
min𝐘,𝐔¯,𝚪1acik𝒦f(ΔtkΓi,k)subscript𝐘¯𝐔𝚪1subscript𝑎𝑐subscript𝑖subscript𝑘subscript𝒦𝑓Δsubscript𝑡𝑘subscriptΓ𝑖𝑘\displaystyle\min_{\mathbf{Y},\bar{\mathbf{U}},\mathbf{\Gamma}}\quad\frac{1}{a% _{c}}\sum_{i\in\mathcal{I}}\sum_{k\in\mathcal{K}_{f}}{\left(\Delta t_{k}\Gamma% _{i,k}\right)}roman_min start_POSTSUBSCRIPT bold_Y , over¯ start_ARG bold_U end_ARG , bold_Γ end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG ∑ start_POSTSUBSCRIPT italic_i ∈ caligraphic_I end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( roman_Δ italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT )
subject to,
𝒚i,0=𝒚i,0,𝒚i,m+1=𝒚i,fi,formulae-sequencesubscript𝒚𝑖0subscript𝒚𝑖0formulae-sequencesubscript𝒚𝑖𝑚1subscript𝒚𝑖𝑓for-all𝑖\displaystyle\boldsymbol{y}_{i,0}=\boldsymbol{y}_{i,0},\qquad\boldsymbol{y}_{i% ,m+1}=\boldsymbol{y}_{i,f}\quad\forall i\in\mathcal{I},bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_i , italic_m + 1 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , italic_f end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , (35)
𝒚i,k+1=𝚽k𝒚i,k+𝚿k𝒖¯i,ki,k𝒦,formulae-sequencesubscript𝒚𝑖𝑘1subscript𝚽𝑘subscript𝒚𝑖𝑘subscript𝚿𝑘subscript¯𝒖𝑖𝑘formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\boldsymbol{y}_{i,k+1}=\mathbf{\Phi}_{k}\boldsymbol{y}_{i,k}+% \mathbf{\Psi}_{k}\bar{\boldsymbol{u}}_{i,k}\quad\forall i\in\mathcal{I},\;% \forall k\in\mathcal{K},bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k + 1 end_POSTSUBSCRIPT = bold_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT + bold_Ψ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (36)
𝒖¯i,k=𝟎i,k𝒦n,formulae-sequencesubscript¯𝒖𝑖𝑘0formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑛\displaystyle\bar{\boldsymbol{u}}_{i,k}=\boldsymbol{0}\quad\forall i\in% \mathcal{I},\;\forall k\in\mathcal{K}_{n},over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = bold_0 ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , (37)
[0cos(γd)sin(γd)]𝒖¯i,kΓi,kcos(γmax)d𝒟,i,k𝒦f,formulae-sequencematrix0subscript𝛾𝑑subscript𝛾𝑑subscript¯𝒖𝑖𝑘subscriptΓ𝑖𝑘subscript𝛾𝑚𝑎𝑥for-all𝑑𝒟formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\begin{multlined}\begin{bmatrix}0&\cos{\left(\gamma_{d}\right)}&% \sin{\left(\gamma_{d}\right)}\end{bmatrix}\bar{\boldsymbol{u}}_{i,k}\leq\Gamma% _{i,k}\cos{\left(\gamma_{max}\right)}\\ \forall d\in\mathcal{D},\;\forall i\in\mathcal{I},\;\forall k\in\mathcal{K}_{f% },\end{multlined}\begin{bmatrix}0&\cos{\left(\gamma_{d}\right)}&\sin{\left(% \gamma_{d}\right)}\end{bmatrix}\bar{\boldsymbol{u}}_{i,k}\leq\Gamma_{i,k}\cos{% \left(\gamma_{max}\right)}\\ \forall d\in\mathcal{D},\;\forall i\in\mathcal{I},\;\forall k\in\mathcal{K}_{f},start_ROW start_CELL [ start_ARG start_ROW start_CELL 0 end_CELL start_CELL roman_cos ( italic_γ start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL start_CELL roman_sin ( italic_γ start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT roman_cos ( italic_γ start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL ∀ italic_d ∈ caligraphic_D , ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , end_CELL end_ROW (40)
[cos(γ¯d)sin(γ¯d)0cos(γ¯d)0sin(γ¯d)]𝒖¯i,kΓi,kcos(γ¯max)d𝒟¯,i,k𝒦f,formulae-sequencematrixsubscript¯𝛾𝑑subscript¯𝛾𝑑0subscript¯𝛾𝑑0subscript¯𝛾𝑑subscript¯𝒖𝑖𝑘subscriptΓ𝑖𝑘subscript¯𝛾𝑚𝑎𝑥for-all𝑑¯𝒟formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\begin{multlined}\begin{bmatrix}\cos{\left(\bar{\gamma}_{d}\right% )}&\sin{\left(\bar{\gamma}_{d}\right)}&0\\ \cos{\left(\bar{\gamma}_{d}\right)}&0&\sin{\left(\bar{\gamma}_{d}\right)}\end{% bmatrix}\bar{\boldsymbol{u}}_{i,k}\leq\Gamma_{i,k}\cos{\left(\bar{\gamma}_{max% }\right)}\\ \forall d\in\bar{\mathcal{D}},\;\forall i\in\mathcal{I},\;\forall k\in\mathcal% {K}_{f},\end{multlined}\begin{bmatrix}\cos{\left(\bar{\gamma}_{d}\right)}&\sin% {\left(\bar{\gamma}_{d}\right)}&0\\ \cos{\left(\bar{\gamma}_{d}\right)}&0&\sin{\left(\bar{\gamma}_{d}\right)}\end{% bmatrix}\bar{\boldsymbol{u}}_{i,k}\leq\Gamma_{i,k}\cos{\left(\bar{\gamma}_{max% }\right)}\\ \forall d\in\bar{\mathcal{D}},\;\forall i\in\mathcal{I},\;\forall k\in\mathcal% {K}_{f},start_ROW start_CELL [ start_ARG start_ROW start_CELL roman_cos ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL start_CELL roman_sin ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL roman_cos ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL start_CELL 0 end_CELL start_CELL roman_sin ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT roman_cos ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL ∀ italic_d ∈ over¯ start_ARG caligraphic_D end_ARG , ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , end_CELL end_ROW (43)
Γi,kacui,maxi,k𝒦f,formulae-sequencesubscriptΓ𝑖𝑘subscript𝑎𝑐subscript𝑢𝑖𝑚𝑎𝑥formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\Gamma_{i,k}\leq a_{c}u_{i,max}\quad\forall i\in\mathcal{I},\;% \forall k\in\mathcal{K}_{f},roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (44)
𝒚¯i,k𝐓k𝐓k𝒚i,kRCA𝒚¯i,k2i,k𝒦.formulae-sequencesuperscriptsubscript¯𝒚𝑖𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘subscript𝑅CAsubscriptnormsubscript¯𝒚𝑖𝑘2formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\bar{\boldsymbol{y}}_{i,k}^{\intercal}\mathbf{T}_{k}^{\intercal}% \mathbf{T}_{k}\boldsymbol{y}_{i,k}\geq R_{\text{CA}}\left\|\bar{\boldsymbol{y}% }_{i,k}\right\|_{2}\quad\forall i\in\mathcal{I},\;\forall k\in\mathcal{K}.over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT ∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K . (45)

where 𝒟={1,2,,ndir}𝒟12subscript𝑛dir\mathcal{D}=\left\{1,2,\ldots,n_{\text{dir}}\right\}caligraphic_D = { 1 , 2 , … , italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT }, with ndir>4subscript𝑛dir4n_{\text{dir}}>4italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT > 4 being the desired number of affine inequality constraints that approximate the projection of the SOC constraint, Eq. 27, on the Transversal-Normal plane, γd=(2d1)πndird𝒟subscript𝛾𝑑2𝑑1𝜋subscript𝑛dirfor-all𝑑𝒟\gamma_{d}=\dfrac{\left(2d-1\right)\pi}{n_{\text{dir}}}\;\forall d\in\mathcal{D}italic_γ start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = divide start_ARG ( 2 italic_d - 1 ) italic_π end_ARG start_ARG italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT end_ARG ∀ italic_d ∈ caligraphic_D, and γmax=πndirsubscript𝛾𝑚𝑎𝑥𝜋subscript𝑛dir\gamma_{max}=\dfrac{\pi}{n_{\text{dir}}}italic_γ start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT = divide start_ARG italic_π end_ARG start_ARG italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT end_ARG. Moreover, 𝒟¯={1,2,3,4}¯𝒟1234\bar{\mathcal{D}}=\left\{1,2,3,4\right\}over¯ start_ARG caligraphic_D end_ARG = { 1 , 2 , 3 , 4 }, γ¯d=(2d1)π4d𝒟¯subscript¯𝛾𝑑2𝑑1𝜋4for-all𝑑¯𝒟\bar{\gamma}_{d}=\dfrac{\left(2d-1\right)\pi}{4}\;\forall d\in\bar{\mathcal{D}}over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT = divide start_ARG ( 2 italic_d - 1 ) italic_π end_ARG start_ARG 4 end_ARG ∀ italic_d ∈ over¯ start_ARG caligraphic_D end_ARG, and γ¯max=π4subscript¯𝛾𝑚𝑎𝑥𝜋4\bar{\gamma}_{max}=\dfrac{\pi}{4}over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT = divide start_ARG italic_π end_ARG start_ARG 4 end_ARG. In Fig. 2, the constraint relaxations in Eq. 40 is depicted for ndir=12subscript𝑛dir12n_{\text{dir}}=12italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT = 12 which covers approximately 95.5%percent95.595.5\%95.5 % of the original constraining circle in the T-N plane.

Similar to Problem 3, the optimal solution of Problem 4 lies at the boundaries of constraints (40) and (43). This implies that the second norm of the scaled input acceleration, 𝒖¯i,k2subscriptnormsubscript¯𝒖𝑖𝑘2\left\|\bar{\boldsymbol{u}}_{i,k}\right\|_{2}∥ over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, lies on the surface of the polyhedron (depicted in Fig. 2 for Γi,k=acu¯i,maxsubscriptΓ𝑖𝑘subscript𝑎𝑐subscript¯𝑢𝑖𝑚𝑎𝑥\Gamma_{i,k}=a_{c}\bar{u}_{i,max}roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT over¯ start_ARG italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT) which relaxes the original feasibility sphere defined in Eq. 27.

It is to be emphasized that while the polyhedron that relaxes the acceleration norm constraint has projections on the T-N, the R-T, and the R-N planes that lie well inside the original feasibility sphere as seen in Fig. 2, some vertices of the polyhedron can be seen to slightly protrude from this sphere when visualized from different angles in the 3-dimensional space for the case of ndir=12subscript𝑛dir12n_{\text{dir}}=12italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT = 12, which can be seen clearly in Fig. 3. Although the relaxing polyhedron of Problem 4 can change in size depending on the value of Γi,ksubscriptΓ𝑖𝑘\Gamma_{i,k}roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT, and hence lie with its entirety within the original constraining sphere, the fact that it can extend beyond the limits of the sphere when Γi,k=acu¯i,maxsubscriptΓ𝑖𝑘subscript𝑎𝑐subscript¯𝑢𝑖𝑚𝑎𝑥\Gamma_{i,k}=a_{c}\bar{u}_{i,max}roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT over¯ start_ARG italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT can be problematic. As the solution of Problem 4 may include points where Γi,k=acu¯i,maxsubscriptΓ𝑖𝑘subscript𝑎𝑐subscript¯𝑢𝑖𝑚𝑎𝑥\Gamma_{i,k}=a_{c}\bar{u}_{i,max}roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT over¯ start_ARG italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT, the event of 𝒖i,k2subscriptnormsubscript𝒖𝑖𝑘2\left\|\boldsymbol{u}_{i,k}\right\|_{2}∥ bold_italic_u start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT getting slightly larger than ui,maxsubscript𝑢𝑖𝑚𝑎𝑥u_{i,max}italic_u start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT becomes a real possibility, since the solution has to lie on the boundaries of constraints (40) and (43) as discussed earlier.

Refer to caption
Figure 3: Control input feasibility regions of Problem 3 and Problem 4

While the effect of this slight violation of the original constraints can be tolerated for short maneuvers, relative orbit correction maneuvers which require extended periods of time can deviate from their set points by tens or even hundreds of meters in the dimensional ROE space as will be discussed in Section 4. It is for this reason that constraints (40) and (43) are modified such that the approximating polyhedron is uniformly scaled down so that it can be contained entirely by the original sphere regardless of the value of Γi,ksubscriptΓ𝑖𝑘\Gamma_{i,k}roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT. The resulting problem after this scaling can be written as,

Problem 5 (LP formulation with scaled feas. region)
min𝐘,𝐔¯,𝚪1acik𝒦f(ΔtkΓi,k)subscript𝐘¯𝐔𝚪1subscript𝑎𝑐subscript𝑖subscript𝑘subscript𝒦𝑓Δsubscript𝑡𝑘subscriptΓ𝑖𝑘\displaystyle\min_{\mathbf{Y},\bar{\mathbf{U}},\mathbf{\Gamma}}\quad\frac{1}{a% _{c}}\sum_{i\in\mathcal{I}}\sum_{k\in\mathcal{K}_{f}}{\left(\Delta t_{k}\Gamma% _{i,k}\right)}roman_min start_POSTSUBSCRIPT bold_Y , over¯ start_ARG bold_U end_ARG , bold_Γ end_POSTSUBSCRIPT divide start_ARG 1 end_ARG start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG ∑ start_POSTSUBSCRIPT italic_i ∈ caligraphic_I end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUBSCRIPT ( roman_Δ italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT )
subject to,
𝒚i,0=𝒚i,0,𝒚i,m+1=𝒚i,fi,formulae-sequencesubscript𝒚𝑖0subscript𝒚𝑖0formulae-sequencesubscript𝒚𝑖𝑚1subscript𝒚𝑖𝑓for-all𝑖\displaystyle\boldsymbol{y}_{i,0}=\boldsymbol{y}_{i,0},\qquad\boldsymbol{y}_{i% ,m+1}=\boldsymbol{y}_{i,f}\quad\forall i\in\mathcal{I},bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , 0 end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_i , italic_m + 1 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_i , italic_f end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , (46)
𝒚i,k+1=𝚽k𝒚i,k+𝚿k𝒖¯i,ki,k𝒦,formulae-sequencesubscript𝒚𝑖𝑘1subscript𝚽𝑘subscript𝒚𝑖𝑘subscript𝚿𝑘subscript¯𝒖𝑖𝑘formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\boldsymbol{y}_{i,k+1}=\mathbf{\Phi}_{k}\boldsymbol{y}_{i,k}+% \mathbf{\Psi}_{k}\bar{\boldsymbol{u}}_{i,k}\quad\forall i\in\mathcal{I},\;% \forall k\in\mathcal{K},bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k + 1 end_POSTSUBSCRIPT = bold_Φ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT + bold_Ψ start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (47)
𝒖¯i,k=𝟎i,k𝒦n,formulae-sequencesubscript¯𝒖𝑖𝑘0formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑛\displaystyle\bar{\boldsymbol{u}}_{i,k}=\boldsymbol{0}\quad\forall i\in% \mathcal{I},\;\forall k\in\mathcal{K}_{n},over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = bold_0 ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , (48)
[0cos(γd)sin(γd)]c𝒖¯i,kΓi,kcos(γmax)d𝒟,i,k𝒦f,formulae-sequencematrix0subscript𝛾𝑑subscript𝛾𝑑𝑐subscript¯𝒖𝑖𝑘subscriptΓ𝑖𝑘subscript𝛾𝑚𝑎𝑥for-all𝑑𝒟formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\begin{multlined}\begin{bmatrix}0&\cos{\left(\gamma_{d}\right)}&% \sin{\left(\gamma_{d}\right)}\end{bmatrix}c\bar{\boldsymbol{u}}_{i,k}\leq% \Gamma_{i,k}\cos{\left(\gamma_{max}\right)}\\ \forall d\in\mathcal{D},\;\forall i\in\mathcal{I},\;\forall k\in\mathcal{K}_{f% },\end{multlined}\begin{bmatrix}0&\cos{\left(\gamma_{d}\right)}&\sin{\left(% \gamma_{d}\right)}\end{bmatrix}c\bar{\boldsymbol{u}}_{i,k}\leq\Gamma_{i,k}\cos% {\left(\gamma_{max}\right)}\\ \forall d\in\mathcal{D},\;\forall i\in\mathcal{I},\;\forall k\in\mathcal{K}_{f},start_ROW start_CELL [ start_ARG start_ROW start_CELL 0 end_CELL start_CELL roman_cos ( italic_γ start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL start_CELL roman_sin ( italic_γ start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] italic_c over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT roman_cos ( italic_γ start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL ∀ italic_d ∈ caligraphic_D , ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , end_CELL end_ROW (51)
[cos(γ¯d)sin(γ¯d)0cos(γ¯d)0sin(γ¯d)]c𝒖¯i,kΓi,kcos(γ¯max)d𝒟¯,i,k𝒦f,formulae-sequencematrixsubscript¯𝛾𝑑subscript¯𝛾𝑑0subscript¯𝛾𝑑0subscript¯𝛾𝑑𝑐subscript¯𝒖𝑖𝑘subscriptΓ𝑖𝑘subscript¯𝛾𝑚𝑎𝑥for-all𝑑¯𝒟formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\begin{multlined}\begin{bmatrix}\cos{\left(\bar{\gamma}_{d}\right% )}&\sin{\left(\bar{\gamma}_{d}\right)}&0\\ \cos{\left(\bar{\gamma}_{d}\right)}&0&\sin{\left(\bar{\gamma}_{d}\right)}\end{% bmatrix}c\bar{\boldsymbol{u}}_{i,k}\leq\Gamma_{i,k}\cos{\left(\bar{\gamma}_{% max}\right)}\\ \forall d\in\bar{\mathcal{D}},\;\forall i\in\mathcal{I},\;\forall k\in\mathcal% {K}_{f},\end{multlined}\begin{bmatrix}\cos{\left(\bar{\gamma}_{d}\right)}&\sin% {\left(\bar{\gamma}_{d}\right)}&0\\ \cos{\left(\bar{\gamma}_{d}\right)}&0&\sin{\left(\bar{\gamma}_{d}\right)}\end{% bmatrix}c\bar{\boldsymbol{u}}_{i,k}\leq\Gamma_{i,k}\cos{\left(\bar{\gamma}_{% max}\right)}\\ \forall d\in\bar{\mathcal{D}},\;\forall i\in\mathcal{I},\;\forall k\in\mathcal% {K}_{f},start_ROW start_CELL [ start_ARG start_ROW start_CELL roman_cos ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL start_CELL roman_sin ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL roman_cos ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL start_CELL 0 end_CELL start_CELL roman_sin ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] italic_c over¯ start_ARG bold_italic_u end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT roman_cos ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL ∀ italic_d ∈ over¯ start_ARG caligraphic_D end_ARG , ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , end_CELL end_ROW (54)
Γi,kacui,maxi,k𝒦f,formulae-sequencesubscriptΓ𝑖𝑘subscript𝑎𝑐subscript𝑢𝑖𝑚𝑎𝑥formulae-sequencefor-all𝑖for-all𝑘subscript𝒦𝑓\displaystyle\Gamma_{i,k}\leq a_{c}u_{i,max}\quad\forall i\in\mathcal{I},\;% \forall k\in\mathcal{K}_{f},roman_Γ start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≤ italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT italic_u start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (55)
(𝒚¯i,k𝒚¯j,k)𝐓k𝐓k(𝒚i,k𝒚j,k)RCA𝒚¯i,k𝒚¯j,k2i,j,ij,k𝒦,formulae-sequencesuperscriptsubscript¯𝒚𝑖𝑘subscript¯𝒚𝑗𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘subscript𝒚𝑗𝑘subscript𝑅CAsubscriptdelimited-∥∥subscript¯𝒚𝑖𝑘subscript¯𝒚𝑗𝑘2for-all𝑖formulae-sequence𝑗formulae-sequence𝑖𝑗for-all𝑘𝒦\displaystyle\begin{multlined}\left(\bar{\boldsymbol{y}}_{i,k}-\bar{% \boldsymbol{y}}_{j,k}\right)^{\intercal}\mathbf{T}_{k}^{\intercal}\mathbf{T}_{% k}\left(\boldsymbol{y}_{i,k}-\boldsymbol{y}_{j,k}\right)\geq R_{\text{CA}}% \left\|\bar{\boldsymbol{y}}_{i,k}-\bar{\boldsymbol{y}}_{j,k}\right\|_{2}\\ \forall i,j\in\mathcal{I},\;i\neq j,\;\forall k\in\mathcal{K},\end{multlined}% \left(\bar{\boldsymbol{y}}_{i,k}-\bar{\boldsymbol{y}}_{j,k}\right)^{\intercal}% \mathbf{T}_{k}^{\intercal}\mathbf{T}_{k}\left(\boldsymbol{y}_{i,k}-\boldsymbol% {y}_{j,k}\right)\geq R_{\text{CA}}\left\|\bar{\boldsymbol{y}}_{i,k}-\bar{% \boldsymbol{y}}_{j,k}\right\|_{2}\\ \forall i,j\in\mathcal{I},\;i\neq j,\;\forall k\in\mathcal{K},start_ROW start_CELL ( over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ( bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ) ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT ∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_j , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL ∀ italic_i , italic_j ∈ caligraphic_I , italic_i ≠ italic_j , ∀ italic_k ∈ caligraphic_K , end_CELL end_ROW (58)
𝒚¯i,k𝐓k𝐓k𝒚i,kRCA𝒚¯i,k2i,k𝒦,formulae-sequencesuperscriptsubscript¯𝒚𝑖𝑘superscriptsubscript𝐓𝑘subscript𝐓𝑘subscript𝒚𝑖𝑘subscript𝑅CAsubscriptnormsubscript¯𝒚𝑖𝑘2formulae-sequencefor-all𝑖for-all𝑘𝒦\displaystyle\bar{\boldsymbol{y}}_{i,k}^{\intercal}\mathbf{T}_{k}^{\intercal}% \mathbf{T}_{k}\boldsymbol{y}_{i,k}\geq R_{\text{CA}}\left\|\bar{\boldsymbol{y}% }_{i,k}\right\|_{2}\quad\forall i\in\mathcal{I},\;\forall k\in\mathcal{K},over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_T start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≥ italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT ∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∀ italic_i ∈ caligraphic_I , ∀ italic_k ∈ caligraphic_K , (59)

where c𝑐citalic_c is a constant scaling factor that guarantees that the polyhedron of Fig. 3 is situated entirely within the sphere. The protrusion of the polyhedron beyond the constraining sphere is truly minimal, and could be quantified with the help of a 3D modelling software. In fact, the distance from the center of the polyhedron to the furthest vertex is measured to be approximately 1.7%percent1.71.7\%1.7 % larger than the radius of the original sphere (for ndir=12subscript𝑛dir12n_{\text{dir}}=12italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT = 12). In the following discussions, the value of ndirsubscript𝑛dirn_{\text{dir}}italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT is set to 12121212 while the constant c𝑐citalic_c is fixed to 1.0171.0171.0171.017.

It is important to note that while mission operators usually favor closed-form solutions over numerical optimization-based ones due to the risk of running into an infeasible situation, infeasibility is never a problem in our context. A feasible solution can always be obtained when the maneuver is allowed enough time regardless of how hard the reconfiguration is, as long as the initial and final states are collision-free. Indeed, the maneuver duration is a user-input that can be planned and controlled by the ground operators.

4 Results and discussion

In this section, the proposed LP guidance scheme is validated through a case-study and the results of this case-study are analysed. The LP scheme offers more inherent details, such as the scaling factor, for discussion. Moreover, a brief comparison between the convex QCQP, the SOCP, and the relaxed LP formulations is carried out, through a benchmark study of multiple solvers.

4.1 Case-study

To test the effectiveness of the guidance schemes, they were run over multiple simulation scenarios. As an example, the details of one of these scenarios are presented here. Considering 4 identical satellites, Sat. A, Sat. B, Sat. C, and Sat. D, that are flying in a close formation with a chief. The four deputies are assumed to be initially equidistant from each other along the transversal direction (trailing/coplanar configuration) with the chief at the center of the formation, and are required to perform a formation reconfiguration such that they are distributed along a Projected Circular Orbit (PCO) at the final time. The details of parameterizing the coplanar as well as the PCO configurations in terms of mean ROE is discussed in [10], and the initial as well as the final (set-point) states of each of the deputies are summarized in Table 1. The numbers in Table 1 indicate that the initial distance between each two consecutive satellites in the trailing formation is 200200200200 m, while the radius of the final PCO is 300300300300 m. Moreover, the orbit of the chief is characterized by 𝜶~c,0=[6771km1039800180]subscript~𝜶𝑐0superscriptmatrix6771kmsuperscript103superscript98superscript0superscript0superscript180\tilde{\boldsymbol{\alpha}}_{c,0}=\begin{bmatrix}6771\;\text{km}&10^{-3}&98^{% \circ}&0^{\circ}&0^{\circ}&180^{\circ}\end{bmatrix}^{\intercal}over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , 0 end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL 6771 km end_CELL start_CELL 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT end_CELL start_CELL 98 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT end_CELL start_CELL 0 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT end_CELL start_CELL 0 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT end_CELL start_CELL 180 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT at t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT.

Table 1: Initial and final (required) states for each of the deputies
Satellite 𝒚0[m]subscript𝒚0delimited-[]m\boldsymbol{y}_{0}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT [ m ] 𝒚f[m]subscript𝒚𝑓delimited-[]m\boldsymbol{y}_{f}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT [ m ]
Sat. A [04000000]superscriptmatrix04000000\begin{bmatrix}0&-400&0&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 400 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0001503000]superscriptmatrix0001503000\begin{bmatrix}0&0&0&-150&300&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 150 end_CELL start_CELL 300 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. B [02000000]superscriptmatrix02000000\begin{bmatrix}0&-200&0&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 200 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0015000300]superscriptmatrix0015000300\begin{bmatrix}0&0&-150&0&0&-300\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 150 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 300 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. C [02000000]superscriptmatrix02000000\begin{bmatrix}0&200&0&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 200 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0001503000]superscriptmatrix0001503000\begin{bmatrix}0&0&0&150&-300&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 150 end_CELL start_CELL - 300 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. D [04000000]superscriptmatrix04000000\begin{bmatrix}0&400&0&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 400 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0015000300]superscriptmatrix0015000300\begin{bmatrix}0&0&150&0&0&300\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 150 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 300 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT

Since the 4 deputies are identical, ui,maxsubscript𝑢𝑖𝑚𝑎𝑥u_{i,max}italic_u start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT are set to umaxsubscript𝑢𝑚𝑎𝑥u_{max}italic_u start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT and ωi,maxsubscript𝜔𝑖𝑚𝑎𝑥\omega_{i,max}italic_ω start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT are set to ωmaxsubscript𝜔𝑚𝑎𝑥\omega_{max}italic_ω start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT for all i𝑖i\in\mathcal{I}italic_i ∈ caligraphic_I. Furthermore, the simulation is set up such that there are no operational time constraints, and the durations of the coast arcs are thus set to be all equal, i.e., Tn,l=Tnlsubscript𝑇𝑛𝑙subscript𝑇𝑛for-all𝑙T_{n,l}=T_{n}\;\forall l\in\mathcal{L}italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∀ italic_l ∈ caligraphic_L, where Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is calculated according to the equality option in Eq. 5 for ωmax=2/ssubscript𝜔𝑚𝑎𝑥superscript2s\omega_{max}=2\;^{\circ}/\text{s}italic_ω start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT = 2 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT / s and Tsafety=10subscript𝑇safety10T_{\text{safety}}=10italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT = 10 s. The forced motion periods are also fixed to a constant value, i.e., Tf,l=Tflsubscript𝑇𝑓𝑙subscript𝑇𝑓for-all𝑙T_{f,l}=T_{f}\;\forall l\in\mathcal{L}italic_T start_POSTSUBSCRIPT italic_f , italic_l end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∀ italic_l ∈ caligraphic_L, which was tuned around the results of the sensitivity analysis presented in [16]. A full list of the parameters used in the simulation is given in Table 2. These parameters correspond to that of Triton-X heavy, designed and manufactured by Luxspace.

Table 2: Parameters used in Problem 5 validation simulation
tft0subscript𝑡𝑓subscript𝑡0t_{f}-t_{0}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT   [orbits] Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT  [orbits] Tn[s]subscript𝑇𝑛delimited-[]sT_{n}\;[\text{s}]italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT [ s ] umax[μm/s2]subscript𝑢𝑚𝑎𝑥delimited-[]𝜇msuperscripts2u_{max}\;[\mu\text{m}/\text{s}^{2}]italic_u start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT [ italic_μ m / s start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ] RCA[m]subscript𝑅CAdelimited-[]mR_{\text{CA}}\;[\text{m}]italic_R start_POSTSUBSCRIPT CA end_POSTSUBSCRIPT [ m ] ndir[-]subscript𝑛dirdelimited-[]-n_{\text{dir}}\;[\text{-}]italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT [ - ] c[-]𝑐delimited-[]-c\;[\text{-}]italic_c [ - ]
5555 0.20.20.20.2 100100100100 35353535 100100100100 12121212 1.0171.0171.0171.017

Running the LP guidance scheme, Problem 5, over the described reconfiguration setting, profiles for the state vector, the control input vector, and the slack variables are obtained for each deputy at every step of the defined time vector. The trajectory followed by each of the deputies is depicted in Fig. 4, where the final relative orbit for all the deputies is seen to indeed resemble a PCO with a 300300300300 m radius. Note that Fig. 4 contains legends only for Sat. A to explain the line and marker shapes’ convention in use. Legends for other satellites would have had the same shapes as those of Sat. A, yet with their respective colors.

Refer to caption
Figure 4: Trajectories followed by each of the deputies throughout the coplanar-to-PCO maneuver

Note that Fig. 4 shows the 2-dimensional view of the trajectory’s projection onto the T-N plane. In fact, Table 1 suggests that the maneuver is a general one, which requires both, in-plane and out-of-plane corrections. This could be verified by looking either at the 3-dimensional visualization of the trajectories, or at the ROE profile of the maneuver. The ROE profile of the reconfiguration maneuver is depicted in Fig. 5, which not only shows corrections of the in-plane variables as well as the out-of-plane ones, but also demonstrates how each of the relative orbital elements of all the deputies matches its set-point at the final time of the maneuver.

Refer to caption
Figure 5: ROE profile over the coplanar-to-PCO maneuver

The optimality of the results were investigated through exploring the acceleration profiles of the maneuver. The radial, the transversal, and the normal components of the acceleration provided by each deputy are shown in Fig. 6.

Refer to caption
Figure 6: Control acceleration vector profile over the coplanar-to-PCO maneuver

One interesting aspect which can be seen in Fig. 6 is that the radial acceleration component is barely used even though it was not explicitly restricted in the formulation of Problem 5, simply because optimality dictates not exploiting it. Leveraging mostly the transversal and normal components does indeed coincide with our initial expectations, which formed a foundation for approximating the projections of the maximum acceleration constraint on the R-T and the R-N planes with only 4 affine constraints for each plane, unlike the 12 constraints which approximate the projection of the same constraint on the T-N plane [16]. Moreover, the fact that the radial acceleration component is minimally utilized suggests that δiλsubscript𝛿𝑖𝜆\delta_{i}\lambdaitalic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_λ corrections are not performed directly through thrust, but rather through varying the value of δiasubscript𝛿𝑖𝑎\delta_{i}aitalic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_a which, in-turn, changes δiλsubscript𝛿𝑖𝜆\delta_{i}\lambdaitalic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_λ according to the natural dynamics [7]. The small corrections of the relative eccentricity vector are conceivably done using the transversal acceleration component since it is half as expensive as using the radial one from the Delta-V point of view [7]. Although the in-plane corrections are larger in magnitude, they are mostly done by exploiting the natural dynamics as discussed earlier. Thus, it comes as no surprise that the normal acceleration component, which is responsible only for out-of-plane corrections, is the most component that has been utilized. In Fig. 6, the dashed teal vertical lines represent the Delta-V-optimal locations to provide impulsive acceleration in the normal direction to achieve the required out-of-plane corrections [7]. That said, the obtained solution, once again, matches the expectations for an optimal control profile as the normal acceleration component is seen in Fig. 6 to act as a bang-bang controller around the optimal locations, while being zero away from them.

The difference between the two problems, 4 and 5, is only the scaling factor, c𝑐citalic_c, which scales down the feasibility region of the maximum acceleration constraint. The effect of this scaling coefficient can be clearly seen by looking into the acceleration (norm) profiles throughout the maneuver, which are depicted in Figures 7 and 8 for Problems 4 and 5, respectively.

Refer to caption
Figure 7: Control acceleration vector and slack variables over the coplanar-to-PCO maneuver, Problem 4 (LP formulation)
Refer to caption
Figure 8: Control acceleration vector and slack variables over the coplanar-to-PCO maneuver, Problem 5 (LP formulation), c=1.017𝑐1.017c=1.017italic_c = 1.017

When c𝑐citalic_c is set to unity, which is the case in Problem 4, the acceleration is prone surpass the maximum level as seen in Fig. 7. Conversely, in Fig. 8, our claim that setting c𝑐citalic_c to 1.0171.0171.0171.017 (for ndir=12subscript𝑛dir12n_{\text{dir}}=12italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT = 12) guarantees that the L2 norm of the acceleration never exceeds the maximum acceleration level is verified (see the blue line). It is important to note that in the former case, the acceleration will never surpass the maximum acceleration by more than 1.7%percent1.71.7\%1.7 % (for ndir=12subscript𝑛dir12n_{\text{dir}}=12italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT = 12). Despite being minimal, this violation may lead to large errors over time in the ROE space which cannot be simply ignored when thrusters saturation is imposed, especially when the δiasubscript𝛿𝑖𝑎\delta_{i}aitalic_δ start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT italic_a variations are used to drive the in-plane variables to their set points. Figures 8 and 7 also depict a scaled profile of the slack variable, ΓΓ\Gammaroman_Γ, throughout the reconfiguration maneuver (red lines), which verifies that constraint (55) never gets violated. Note that Γi,kac𝒖i,k2subscriptsuperscriptΓ𝑖𝑘subscript𝑎𝑐subscriptnormsubscriptsuperscript𝒖𝑖𝑘2\Gamma^{*}_{i,k}\neq a_{c}\left\|\boldsymbol{u}^{*}_{i,k}\right\|_{2}roman_Γ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ≠ italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ∥ bold_italic_u start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT in the two LP formulations of the problem, however Γi,k=𝒖i,k2subscriptsuperscriptΓ𝑖𝑘subscriptnormsubscriptsuperscript𝒖𝑖𝑘2\Gamma^{*}_{i,k}=\left\|\boldsymbol{u}^{*}_{i,k}\right\|_{2}roman_Γ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT = ∥ bold_italic_u start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT in the SOCP formulation, as stated by Eq. 34. This can be verified by inspecting the profiles of the L2 norm of the control acceleration vector when Problem 3 is solved. These profiles are depicted for the case-study reconfiguration scenario in Fig. 9, which shows that, for all the forced-motion periods, the optimal ΓΓ\Gammaroman_Γ is indeed equal to the acceleration level provided by each deputy.

Refer to caption
Figure 9: Control acceleration vector and slack variables over the coplanar-to-PCO maneuver, Problem 3 (SOCP formulation)

A very important aspect of the modified guidance schemes, Problems 2 through 5, is that they all rely on sequential convex programming, which may require the problem to be solved multiple times before an optimal solution could be obtained. The approach we adopted for solving Problems 2 through 5 is to solve the problem first without the collision avoidance constraints, inequalities (58) and (59) for Problem 5, to obtain estimates for 𝒚¯i,ksubscript¯𝒚𝑖𝑘\bar{\boldsymbol{y}}_{i,k}over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT. The problem is subsequently solved iteratively and the values of 𝒚¯i,ksubscript¯𝒚𝑖𝑘\bar{\boldsymbol{y}}_{i,k}over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT are updated at each iteration until any of the stop** criteria is met. The termination criteria were introduced in Section 3, but they are mentioned here once again to allow for a more elaborate discussion. The SCP termination criteria are a) 𝒚¯i,k𝒚i,k2ϵsubscriptnormsubscript¯𝒚𝑖𝑘subscript𝒚𝑖𝑘2italic-ϵ\left\|\bar{\boldsymbol{y}}_{i,k}-\boldsymbol{y}_{i,k}\right\|_{2}\leq\epsilon∥ over¯ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT italic_i , italic_k end_POSTSUBSCRIPT ∥ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≤ italic_ϵ at the current iteration; b) The guidance profile of the current iteration is collision free; c) The user-defined maximum number of iteration is reached. Indeed, adopting only the first criterion is guaranteed to result in an optimal guidance profile, if the problem is feasible to begin with, yet at the cost of computational time, since a large number of iterations might be required if ϵitalic-ϵ\epsilonitalic_ϵ is chosen to be very small. Implementing the second criterion may lead to a sub-optimal solution, however, it considerably reduces the number of iterations required to solve the problem. The third criterion is nothing but a safeguard to ensure that the solver is not stuck in an infinite loop. In the context of our case-study, two simulations were run (using the formulation of Problem 5) where the first adopted the two stop** criteria, a) and c), while the second adopted all of the three. The former required 7 iterations to solve the problem (using ϵ=1mitalic-ϵ1m\epsilon=1\;\text{m}italic_ϵ = 1 m), resulting in a solution which requires a total Delta-V of 1.8m/s1.8ms1.8\;\text{m}/\text{s}1.8 m / s, while the latter needed only 1 iteration, providing a guidance profile which requires 1.82m/s1.82ms1.82\;\text{m}/\text{s}1.82 m / s, which calls for only 1%percent11\%1 % increase in the required Delta-V. One thing which is worth noting is that, throughout our test simulations, adopting the second criterion almost always required a single iteration after the zeroth iteration in which the problem is solved without the collision avoidance constraints. This behaviour is especially expected in cases where the solution of the zeroth iteration is almost collision-free. The intersatellite distances for our case-study are depicted in Fig. 10 for the zeroth SCP iteration and in Fig. 11 for the first SCP iteration, where the asterisks signify a location where collision avoidance is violated.

Refer to caption
Figure 10: Intersatellite distances over the coplanar-to-PCO maneuver, zeroth iteration
Refer to caption
Figure 11: Intersatellite distances over the coplanar-to-PCO maneuver, first iteration

4.2 Solvers benchmark

The total Delta-V cost of the SOCP formulation, Problem 3, is expected to be less than what results from solving the convex QCQP problem, Problem 2. It is for this obvious reason that the QCQP scheme had to be modified into the SOCP formulation. Approximating the SOCP problem by an LP formulation, Problem 5, could be justified by many motives, among which is the fact that this relaxation puts the problem in the simplest form of convex programming, which is the easiest to implement. Moreover, the LP formulation is expected to require less solve time, especially for lower dimensional reconfiguration scenarios, i.e., those scenarios that involve a low number of sampling instances, and consequently involve a low number of constraints. The LP formulation is not expected to be very fast for higher dimensional reconfiguration scenarios, since one SOCP constraint is approximated by 20 linear constraints; 12 in the T-N plane, 4 in the R-N plane, and 4 in the T-R plane. One other advantage of transforming an SOCP problem into an approximated linear program is to use dedicated solvers for linear programming that could not be possibly used in an SOCP context. This opens the door to many open-source non-commercial solvers that can handle only linear constraints such as GLPK, HiGHS, OSQP, and many others. Furthermore, some solvers which can handle SOCP problems still use dedicated algorithms for linear and quadratic programs that are not suitable for solving SOCP problems. Examples of such solvers include CPLEX, Gurobi, and Xpress, which usually favor simplex methods for linear programs, while using interior-point algorithms for QCQP and SOCP problems.

To get a clearer insight of the key differences between Problems 2, 3, and 5, four different reconfiguration scenarios were identified, and were used for the purpose of benchmarking different solvers when run over each of these formulations. The four scenarios were carefully selected to reflect wide ranges of formation and problem sizes, i.e., intersatellite distances, and number of variables and constraints, while being relevant from the applications point of view. The first reconfiguration requires the formation to go from a pendulum configuration into a PCO, the second reshapes the formation from a PCO into a cartwheel configuration, the third requests a cartwheel to helix reconfiguration, and the fourth starts from a helix configuration and ends up in a pendulum one. The reader is referred to A for the full details of the reconfiguration scenarios. It is to be emphasized that the assumed configuration geometries, i.e., PCO, pendulum, cartwheel, and helix, are all of a great interest for remote sensing applications [29, 30], and the identified reconfigurations may resemble a formation geometry change within a multi-static Synthetic Aperture Radar (SAR) mission. In the benchmark test, 15 of the most commonly used solvers for the types of problems in hand, according to the Mittelmann’s benchmark111This benchmark used to act a decision tree for optimization software. It can be accessed through: https://plato.asu.edu/bench.html and according to the statistics of NEOS server222The statistics of NEOS server can be accessed through: https://neos-server.org/neos/report.html, were compared. An overview of the adopted 15 solvers is demonstrated in Table 3, where the problem types that could be handled by a solver are presented, together with information on whether the solver can be freely used in a commercial setting, or a software license needs to be purchased (on the date of writing this study, in June 2024). Note that every QCQP problem can be formulated as an SOCP one [27], nonetheless, the solvers that cannot handle QCQPs in their native form but can handle SOCP problems, e.g., SCS and ECOS, are marked with an ✗  mark in the QCQP column. The opposite is not true, however. Solvers which do not accept SOC constraints in their native form but rather need a reformulation of these constraints into the quadratic form are still marked with a ✓  mark in the SOCP column, since they still recognize the SOC nature of the reformulated constraints and treat them as such.

Table 3: Solvers overview
Solver Free QCQP SOCP LP
GLPK [31]
CLP [32]
OSQP [33]
OOQP [34]
SCS [35]
ECOS [36]
IPOPT [37]
SCIP [38]
MOSEK [39] 333Offers a free academic license
Gurobi [40] 3
CPLEX [41] 3
COPT [42] 3
Knitro [43] 444Offers a free academic licenses for the professor and the students during the time of the course
Xpress [44] 555Offers a community license which is limited to a maximum of 5000 variables and constraints
Matlab [45]

Using their default parameters, each solver was run 10 times over each reconfiguration scenario using the three problem formulations developed in this paper, i.e., the QCQP formulation, Problem 2, the SOCP formulation, Problem 3, and the LP formulation, Problem 5. The average time it took a solver to complete each of the 10 iterations was then recorded. The benchmark was conducted on a Windows-PC which comprises an Intel Core i9-10885H CPU with 16 cores and a clock speed of 2.4 GHz. The language that was used formulate the problems is Matlab, and the problems were passed to each solver either through its native Matlab Application Programming Interface (API). e.g., OSQP and SCS, or through a third-party Matlab interface, e.g., GLPK and CLP. Some interesting details on the 15 adopted solvers and on how they were interfaced with Matlab are presented in B. It is of utmost importance to declare that the purpose of this benchmark is not to compare the performance of the selected solvers. After all, tweaking the parameters of a solver may very probably result in a different performance. The purpose is rather to draw some recommendations as to which formulation is better used under which conditions, and also to showcase that using the different proposed formulations for the guidance problem has a major affect on both, the solve time of the problem, and the total Delta-V required for the maneuver. The results of the benchmark are presented in Table 4. The table also conveys some of the problem properties which are solver-independent. Namely the following properties are reported; the number of decision variables, the number of constraints excluding decision variables’ bounds, the total Delta-V, and the number of required SCP iterations after the zeroth iterations in order to arrive to a collision-free reconfiguration. The log files for the benchmark experiment are available as supplementary materials to this article.

Table 4: Benchmark results
Reconfiguration 1 Reconfiguration 2 Reconfiguration 3 Reconfiguration 4
QCQP SOCP LP QCQP SOCP LP QCQP SOCP LP QCQP SOCP LP
N. variables 1248 1316 1316 2412 2544 2544 960 1012 1012 3816 4026 4026
N. constraints 1234 1234 2526 2661 2661 5169 676 676 1664 4221 4221 8211
Total ΔVΔ𝑉\Delta Vroman_Δ italic_V [m/s] 1.18 1.03 1.05 3.04 2.66 2.76 1.32 1.25 1.31 4.77 4.30 4.50
N. SCP iter. 1 1 1 1 1 1 0 0 0 1 1 1
Solver Solve time [s]
GLPK - - 0.18 - - 0.75 - - 0.03 - - 1.52
CLP - - 0.29 - - 1.77 - - 0.01 - - I.L.00footnotemark: 0
OSQP - - 0.50 - - 1.18 - - 0.16 - - 2.12
OOQP - - 0.21 - - 0.46 - - 0.05 - - 0.86
SCS - 0.12 0.41 - 0.14 1.07 - 0.02 0.13 - 0.32 4.76
ECOS - 0.03 0.05 - 0.08 0.12 - 0.01 0.01 - 0.17 0.19
IPOPT 13.39 60.24 0.85 3.80 60.26 1.93 7.19 30.11 0.26 36.13 60.32 2.88
SCIP T.L.00footnotemark: 0 24.47 0.26 T.L.00footnotemark: 0 T.L.00footnotemark: 0 1.00 T.L.00footnotemark: 0 6.20 0.09 T.L.00footnotemark: 0 T.L.00footnotemark: 0 2.34
MOSEK 0.06 0.05 0.07 0.14 0.11 0.18 0.01 0.01 0.01 0.17 0.18 0.28
Gurobi 0.59 0.14 0.13 0.68 0.18 0.31 0.52 0.12 0.07 1.06 0.27 0.34
CPLEX 0.31 N.I.00footnotemark: 0 0.30 0.40 N.I.00footnotemark: 0 0.34 0.12 N.I.00footnotemark: 0 0.11 0.58 N.I.00footnotemark: 0 0.46
COPT 0.09 0.06 0.11 0.17 0.09 0.18 0.03 0.02 0.05 0.24 0.13 0.24
Knitro 0.05 0.15 0.10 0.08 0.26 0.19 0.01 0.03 0.03 0.16 0.47 0.34
Xpress 0.17 0.16 0.15 L.L.00footnotemark: 0 L.L.00footnotemark: 0 L.L.00footnotemark: 0 0.07 0.07 0.04 L.L.00footnotemark: 0 L.L.00footnotemark: 0 L.L.00footnotemark: 0
Matlab 2.95 0.16 0.09 7.46 0.54 0.54 0.89 0.04 0.01 23.60 1.63 1.04
footnotetext: The solver reached the Iteration Limit (I.L.) before finding a feasible solutionfootnotetext: The solver reached the Time Limit (T.L.) (30 seconds) before finding a feasible solutionfootnotetext: The solver is Not Interfaced (N.I.) for the type of problem in question. Refer to B for the reasonfootnotetext: The solver did not solve the problem because of License Limitations (L.L.). The community license of Xpress is limited to a maximum of 5000 variables and constraints

Table 4 presents, in a quantitative manner, how much of the total Delta-V can be saved simply by adopting the SOCP or the LP formulations. It comes as no surprise that the SOCP formulation is requiring less total Delta-V than the LP formulation, since the SOCP problem is exploring a much larger action space than the LP is (refer to Figures 2 and 3). It is also clear from Table 4 how the number of variables is identical for the SOCP and the LP formulations, since they both consider all the entries of the 𝚪𝚪\mathbf{\Gamma}bold_Γ matrix as decision variables. The number of constraints for the LP formulation is always much higher than the identical number of constraints for the QCQP and the SOCP formulations. The reason for this is that each instance of Eq. 27 is approximated by 20 linear constraints, Equations (51) and (54), in the LP formulation. The effect of adopting the various problem formulations on the number of required SCP iterations is unclear, mainly due to the fact that SCP is set to terminate once a collision-free reconfiguration is obtained, which is a sub-optimal approach that turns out to be much faster, as has been pointed out earlier.

To get a better idea of how fast the different solvers return the optimal solution to the problem in hand, the solve time data, reported in Table 4, were averaged across the four reconfiguration scenarios, and the mean is depicted for each solver in Fig. 12.

Refer to caption
Figure 12: Benchmark summary

At a first glance on Fig. 12, it becomes very clear that, among all the solvers, those which are not dedicated to convex optimization, i.e., IPOPT, SCIP, and Matlab in the QCQP case, are the slowest, although IPOPT and SCIP perform competitively in the LP case due to the simplicity of the problem. It is to be noted that many of the benchmarked solvers can still handle Non-Linear Programming (NLP) problems, e.g., CPLEX and Gurobi, however, they do recognize convex optimization problems, and hence, use dedicated algorithms that work best for the convex cases. The LP-only free solvers, i.e., GLPK, CPL, OSQP, and OOQP, present themselves as plausible candidates, although the commercial ones appear to generally perform better for the same problem formulation, with an exception to Matlab’s LP solver. Moreover, it is hardly surprising that dedicated conic solvers, namely SCS and ECOS, perform generally faster for the conic case, i.e., SOCP, than for the LP case. In fact, ECOS seems to be performing exceptionally well for a free solver for two problem formulations it supports, i.e., SOCP and LP. There is little to no conclusion that can be drawn based on the results of the commercial solvers. For instance, some solvers perform the best for the QCQP formulation, some are favored for the SOCP case, and some are faster when handling the LP problems. The main recommendation from Table 4 as well as Fig. 12 is to avoid the QCQP formulation since it is the most Delta-V intensive, while being generally slower to solve than either of the two other formulations, despite involving the least number of variables and constraints. One other takeaway which can be observed by looking into the details of Table 4 is that the performance of the solvers over the LP problems is better when the number of constraints of the original SOCP problem is small, e.g., Reconfiguration 3. This claim is supported by the results of ECOS, MOSEK, and specifically Gurobi. Conversely, for larger problem sizes, the SOCP problems are generally solved faster. It is for this reason that the LP formulation could only be recommended for small problem sizes, while the SOCP formulation is recommended for larger problems, although being harder to implement.

4.3 Limitations of the proposed schemes

The proposed guidance strategy can be, theoretically, used for an arbitrary number of deputies. However, employing the proposed guidance schemes in a constellation setting, i.e., with a very large number of satellites, might not be practical from the solve time point of view. To test the limitations of the centralized guidance plan, a last experiment was performed where the number of deputies is allowed to vary from 1 to 20 deputies, while the formation is requested to, once again, perform a Coplanar-to-PCO maneuver. The distance between every two consecutive deputies is set to 200m200m200\;\text{m}200 m for the initial configuration, while the radius of the final PCO is set 500m500m500\;\text{m}500 m, and, for a fair comparison, each of the 20202020 reconfigurations are allowed 10101010 orbits to complete. Since it has been established that the SOCP formulation is generally recommended, and since ECOS appears to be the fastest solver that handles the SOCP problem in our context, ECOS was run over the 20202020 reconfiguration scenarios and the solve time is depicted against the number of deputies in Fig. 13.

Refer to caption
Figure 13: Solve time as the number of deputies increase

It is obvious, and also quite conceivable, that the solve time is increasing exponentially with the number of deputies. It is for this reason that the proposed guidance schemes are only recommended for formations with small numbers of deputies. It might be worthwhile, however, to investigate distributed approaches for formations with large numbers of satellites.

5 Conclusion

This article proposed centralized guidance schemes for the purpose of reconfiguring the relative orbits of multiple deputies around a chief satellite. One main characteristic of the considered formation reconfiguration is that each deputy is equipped with a single electric thruster, while the chief is uncontrolled, and is treated as the central processing unit for the formation trajectory optimization. In the development of the guidance strategies, the inter-deputy and the deputy-chief collision avoidance is considered, together with the fact that each deputy is under-actuated. The article proposed five different numerical optimization formulations for the guidance problem, where each formulation is a modified/relaxed version of the preceding one. The second (QCQP), the third (SOCP), and the fifth (LP) formulations were identified as the most promising ones, and were involved in an experiment where fifteen solvers were benchmarked accross four different reconfiguration scenarios. It was concluded from the results of the benchmark that the QCQP could never be recommended, as it requires the most total Delta-V change for a maneuver. Moreover, the SOCP formulation is generally recommended, for being fast to solve by many of the benchmarked solvers and also for requiring the least total Delta-V for the maneuver in question. The LP Formulation could only be recommended for small-scale problems, for being very efficient to solve, while being supported by the almost every numerical optimization solver there is.

Acknowledgments

This research was funded in whole, or in part, by the Luxembourg National Research Fund (FNR), grant reference BRIDGES/19/MS/14302465. For the purpose of open access, and in fulfilment of the obligations arising from the grant agreement, the author has applied a Creative Commons Attribution 4.0 International (CC BY 4.0) license to any Author Accepted Manuscript version arising from this submission.

Appendix A Reconfiguration scenarios used in the benchmark experiment

Four reconfiguration scenarios have been identified for the benchmark experiments. The initial orbit of the chief is assumed to be a sun-synchronous orbit which is shared in all of the four reconfigurations. The chief’s orbit is parameterized by 𝜶~c,0=[6978km10397.870090]subscript~𝜶𝑐0superscriptmatrix6978kmsuperscript103superscript97.87superscript0superscript0superscript90\tilde{\boldsymbol{\alpha}}_{c,0}=\begin{bmatrix}6978\;\text{km}&10^{-3}&97.87% ^{\circ}&0^{\circ}&0^{\circ}&90^{\circ}\end{bmatrix}^{\intercal}over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , 0 end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL 6978 km end_CELL start_CELL 10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT end_CELL start_CELL 97.87 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT end_CELL start_CELL 0 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT end_CELL start_CELL 0 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT end_CELL start_CELL 90 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT at t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. Furthermore, the deputies are assumed identical in all the scenarios, and consequently, ui,maxsubscript𝑢𝑖𝑚𝑎𝑥u_{i,max}italic_u start_POSTSUBSCRIPT italic_i , italic_m italic_a italic_x end_POSTSUBSCRIPT are set to umaxsubscript𝑢𝑚𝑎𝑥u_{max}italic_u start_POSTSUBSCRIPT italic_m italic_a italic_x end_POSTSUBSCRIPT for all i{1,2,,N}𝑖12𝑁i\in\left\{1,2,\ldots,N\right\}italic_i ∈ { 1 , 2 , … , italic_N } with N𝑁Nitalic_N being the number of deputies. Furthermore, the durations of the coast arcs are assumed to be all equal, i.e., Tn,l=Tnlsubscript𝑇𝑛𝑙subscript𝑇𝑛for-all𝑙T_{n,l}=T_{n}\;\forall l\in\mathcal{L}italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∀ italic_l ∈ caligraphic_L. The forced motion periods are also fixed to a constant value, i.e., Tf,l=Tflsubscript𝑇𝑓𝑙subscript𝑇𝑓for-all𝑙T_{f,l}=T_{f}\;\forall l\in\mathcal{L}italic_T start_POSTSUBSCRIPT italic_f , italic_l end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∀ italic_l ∈ caligraphic_L. The simulation parameters that are used in the benchmark experiment are the same as those in Table 2 and are shared in the four reconfigurations, except for the maneuver duration, which is defined separately for each reconfiguration scenario.

A.1 Reconfiguration 1 - Pendulum to PCO

In this reconfiguration scenario, 4 deputy satellites are assumed to be in a pendulum configuration at t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and are required to be reconfigured into a Projected Circular Orbit (PCO) at tfsubscript𝑡𝑓t_{f}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, where tft0=4orbitssubscript𝑡𝑓subscript𝑡04orbitst_{f}-t_{0}=4\;\text{orbits}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 4 orbits. Table 1 summarizes the initial and final dimensional ROE vectors, 𝒚0subscript𝒚0\boldsymbol{y}_{0}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, in meters for all the deputies.

Table 1: Initial and final (required) states for each of the deputies in Reconfiguration 1
Satellite 𝒚0[m]subscript𝒚0delimited-[]m\boldsymbol{y}_{0}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT [ m ] 𝒚f[m]subscript𝒚𝑓delimited-[]m\boldsymbol{y}_{f}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT [ m ]
Sat. A [0250000250]superscriptmatrix0250000250\begin{bmatrix}0&-250&0&0&0&-250\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 250 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 250 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0001002000]superscriptmatrix0001002000\begin{bmatrix}0&0&0&-100&200&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 100 end_CELL start_CELL 200 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. B [0125000125]superscriptmatrix0125000125\begin{bmatrix}0&-125&0&0&0&-125\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 125 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 125 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0010000200]superscriptmatrix0010000200\begin{bmatrix}0&0&-100&0&0&-200\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 100 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 200 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. C [0125000125]superscriptmatrix0125000125\begin{bmatrix}0&125&0&0&0&125\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 125 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 125 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0001002000]superscriptmatrix0001002000\begin{bmatrix}0&0&0&100&-200&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 100 end_CELL start_CELL - 200 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. D [0250000250]matrix0250000250\begin{bmatrix}0&250&0&0&0&250\end{bmatrix}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 250 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 250 end_CELL end_ROW end_ARG ] [0010000200]superscriptmatrix0010000200\begin{bmatrix}0&0&100&0&0&200\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 100 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 200 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT

The shape of the initial and final relative orbits of Reconfiguration 1 is depicted in Fig. 1

Refer to caption
Figure 1: Initial and final orbits of Reconfiguration 1

A.2 Reconfiguration 2 - PCO to Cartwheel

In this reconfiguration scenario, 6 deputy satellites are assumed to be in a PCO configuration at t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and are required to be reconfigured into a cartwheel configuration at tfsubscript𝑡𝑓t_{f}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, where tft0=5orbitssubscript𝑡𝑓subscript𝑡05orbitst_{f}-t_{0}=5\;\text{orbits}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 5 orbits. Table 2 summarizes the initial and final dimensional ROE vectors, 𝒚0subscript𝒚0\boldsymbol{y}_{0}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, in meters for all the deputies.

Table 2: Initial and final (required) states for each of the deputies in Reconfiguration 2
Satellite 𝒚0[m]subscript𝒚0delimited-[]m\boldsymbol{y}_{0}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT [ m ] 𝒚f[m]subscript𝒚𝑓delimited-[]m\boldsymbol{y}_{f}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT [ m ]
Sat. A [0001503000]superscriptmatrix0001503000\begin{bmatrix}0&0&0&-150&300&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 150 end_CELL start_CELL 300 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [00500000]superscriptmatrix00500000\begin{bmatrix}0&0&-500&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 500 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. B [035.91129.9075150259.81]superscriptmatrix035.91129.9075150259.81\begin{bmatrix}0&-35.91&-129.90&-75&150&-259.81\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 35.91 end_CELL start_CELL - 129.90 end_CELL start_CELL - 75 end_CELL start_CELL 150 end_CELL start_CELL - 259.81 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [00333.33000]superscriptmatrix00333.33000\begin{bmatrix}0&0&-333.33&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 333.33 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. C [035.91129.9075150259.81]superscriptmatrix035.91129.9075150259.81\begin{bmatrix}0&-35.91&-129.90&75&-150&-259.81\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 35.91 end_CELL start_CELL - 129.90 end_CELL start_CELL 75 end_CELL start_CELL - 150 end_CELL start_CELL - 259.81 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [00166.67000]superscriptmatrix00166.67000\begin{bmatrix}0&0&-166.67&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 166.67 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. D [0001503000]superscriptmatrix0001503000\begin{bmatrix}0&0&0&150&-300&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 150 end_CELL start_CELL - 300 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [00166.67000]superscriptmatrix00166.67000\begin{bmatrix}0&0&166.67&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 166.67 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. E [035.91129.9075150259.81]superscriptmatrix035.91129.9075150259.81\begin{bmatrix}0&35.91&129.90&75&-150&259.81\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 35.91 end_CELL start_CELL 129.90 end_CELL start_CELL 75 end_CELL start_CELL - 150 end_CELL start_CELL 259.81 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [00333.33000]superscriptmatrix00333.33000\begin{bmatrix}0&0&333.33&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 333.33 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. F [035.91129.9075150259.81]superscriptmatrix035.91129.9075150259.81\begin{bmatrix}0&35.91&129.90&-75&150&259.81\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 35.91 end_CELL start_CELL 129.90 end_CELL start_CELL - 75 end_CELL start_CELL 150 end_CELL start_CELL 259.81 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [00500000]superscriptmatrix00500000\begin{bmatrix}0&0&500&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 500 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT

The shape of the initial and final relative orbits of Reconfiguration 2 is depicted in Fig. 2

Refer to caption
Figure 2: Initial and final orbits of Reconfiguration 2

A.3 Reconfiguration 3 - Cartwheel to Helix

In this reconfiguration scenario, 4 deputy satellites are assumed to be in a cartwheel configuration at t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and are required to be reconfigured into a helix configuration at tfsubscript𝑡𝑓t_{f}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, where tft0=5orbitssubscript𝑡𝑓subscript𝑡05orbitst_{f}-t_{0}=5\;\text{orbits}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 5 orbits. Table 3 summarizes the initial and final dimensional ROE vectors, 𝒚0subscript𝒚0\boldsymbol{y}_{0}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, in meters for all the deputies.

Table 3: Initial and final (required) states for each of the deputies in Reconfiguration 3
Satellite 𝒚0[m]subscript𝒚0delimited-[]m\boldsymbol{y}_{0}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT [ m ] 𝒚f[m]subscript𝒚𝑓delimited-[]m\boldsymbol{y}_{f}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT [ m ]
Sat. A [00500000]superscriptmatrix00500000\begin{bmatrix}0&0&-500&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 500 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [034.5625000250]superscriptmatrix034.5625000250\begin{bmatrix}0&34.56&-250&0&0&-250\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 34.56 end_CELL start_CELL - 250 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 250 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. B [00250000]superscriptmatrix00250000\begin{bmatrix}0&0&-250&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 250 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [017.2812500125]superscriptmatrix017.2812500125\begin{bmatrix}0&17.28&-125&0&0&-125\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 17.28 end_CELL start_CELL - 125 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 125 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. C [00250000]superscriptmatrix00250000\begin{bmatrix}0&0&250&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 250 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [017.2812500125]superscriptmatrix017.2812500125\begin{bmatrix}0&-17.28&125&0&0&125\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 17.28 end_CELL start_CELL 125 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 125 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. D [00500000]superscriptmatrix00500000\begin{bmatrix}0&0&500&0&0&0\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 500 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [034.5625000250]superscriptmatrix034.5625000250\begin{bmatrix}0&-34.56&250&0&0&250\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 34.56 end_CELL start_CELL 250 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 250 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT

The shape of the initial and final relative orbits of Reconfiguration 3 is depicted in Fig. 3

Refer to caption
Figure 3: Initial and final orbits of Reconfiguration 3

A.4 Reconfiguration 4 - Helix to Pendulum

In this reconfiguration scenario, 6 deputy satellites are assumed to be in a helix configuration at t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and are required to be reconfigured into a pendulum configuration at tfsubscript𝑡𝑓t_{f}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, where tft0=8orbitssubscript𝑡𝑓subscript𝑡08orbitst_{f}-t_{0}=8\;\text{orbits}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = 8 orbits. Table 4 summarizes the initial and final dimensional ROE vectors, 𝒚0subscript𝒚0\boldsymbol{y}_{0}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, in meters for all the deputies.

Table 4: Initial and final (required) states for each of the deputies in Reconfiguration 4
Satellite 𝒚0[m]subscript𝒚0delimited-[]m\boldsymbol{y}_{0}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT [ m ] 𝒚f[m]subscript𝒚𝑓delimited-[]m\boldsymbol{y}_{f}\;[\text{m}]bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT [ m ]
Sat. A [034.5625000250]superscriptmatrix034.5625000250\begin{bmatrix}0&34.56&-250&0&0&-250\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 34.56 end_CELL start_CELL - 250 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 250 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [010000001000]superscriptmatrix010000001000\begin{bmatrix}0&-1000&0&0&0&-1000\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 1000 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 1000 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. B [023.04166.6700166.67]superscriptmatrix023.04166.6700166.67\begin{bmatrix}0&23.04&-166.67&0&0&-166.67\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 23.04 end_CELL start_CELL - 166.67 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 166.67 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0666.67000666.67]superscriptmatrix0666.67000666.67\begin{bmatrix}0&-666.67&0&0&0&-666.67\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 666.67 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 666.67 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. C [011.5283.330083.33]superscriptmatrix011.5283.330083.33\begin{bmatrix}0&11.52&-83.33&0&0&-83.33\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 11.52 end_CELL start_CELL - 83.33 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 83.33 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0333.33000333.33]superscriptmatrix0333.33000333.33\begin{bmatrix}0&-333.33&0&0&0&-333.33\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 333.33 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL - 333.33 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. D [011.5283.330083.33]superscriptmatrix011.5283.330083.33\begin{bmatrix}0&-11.52&83.33&0&0&83.33\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 11.52 end_CELL start_CELL 83.33 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 83.33 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0333.33000333.33]superscriptmatrix0333.33000333.33\begin{bmatrix}0&333.33&0&0&0&333.33\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 333.33 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 333.33 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. E [023.04166.6700166.67]superscriptmatrix023.04166.6700166.67\begin{bmatrix}0&-23.04&166.67&0&0&166.67\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 23.04 end_CELL start_CELL 166.67 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 166.67 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [0666.67000666.67]superscriptmatrix0666.67000666.67\begin{bmatrix}0&666.67&0&0&0&666.67\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 666.67 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 666.67 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT
Sat. F [034.56250.0000250.00]superscriptmatrix034.56250.0000250.00\begin{bmatrix}0&-34.56&250.00&0&0&250.00\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 34.56 end_CELL start_CELL 250.00 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 250.00 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT [01000.000001000.00]superscriptmatrix01000.000001000.00\begin{bmatrix}0&1000.00&0&0&0&1000.00\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL 1000.00 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL 1000.00 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT

The shape of the initial and final relative orbits of Reconfiguration 4 is depicted in Fig. 4

Refer to caption
Figure 4: Initial and final orbits of Reconfiguration 4

Appendix B Solvers details

Fifteen solvers were chosen for the benchmark using the four reconfiguration scenarios defined in A. These solvers were chosen from the list of the most commonly used solvers on NEOS server in the category of LP and SOCP problems, and also from the solvers involved in the Mittelmann’s benchmark. Since NEOS server does not have a distinct category for QCQP, the solvers which are used for the SOCP problems are considered, since SOCP is the closest form of a convex programming formulation to the QCQP, and since any QCQP problem can be eventually formulated as an SOCP one. On top of the common solvers for each category, IPOPT was added for being one of the most commonly used free solvers for a variety of problem classes. Moreover, the solvers of the Matlab Optimization Toolbox were added to the list of solvers that are involved in our benchmark experiment under the name ”Matlab”. A brief overview of the 15 solvers is presented in the following bullet points:

  • 1.

    GLPK (GNU Linear Programming Kit): GLPK is intended for solving large-scale linear programming, mixed integer programming (MIP), and other related problems.

  • 2.

    CLP (COIN-OR Linear Program solver): CLP is part of the COIN-OR project and is a solver meant for linear programming problems.

  • 3.

    OSQP (Operator Splitting Quadratic Program solver): OSQP is a numerical optimization package for solving convex quadratic programs. Linear programs, as a subset of quadratic programming problems, can be handled by the solver.

  • 4.

    OOQP (Object-Oriented software for Quadratic Programs): OOQP is an object-oriented software package for solving convex quadratic programming problems.

  • 5.

    SCS (Splitting Conic Solver): SCS is primarily meant for large-scale convex quadratic cone problems.

  • 6.

    ECOS (Embedded Conic Solver): ECOS is a numerical software for solving convex second-order cone programs.

  • 7.

    IPOPT (Interior Point OPTimizer): IPOPT is vastly used for large scale nonlinear optimization of continuous systems.

  • 8.

    SCIP (Solving Constraint Integer Programs): SCIP is one of the fastest non-commercial solvers for mixed integer programming and mixed integer nonlinear programming (MINLP). SCIP uses the SoPlex solver internally to solve linear programming problems.

  • 9.

    MOSEK: MOSEK is a commercial solver with an emphasis on solving large-scale sparse problems. It supports a wide range of problem types, including linear, quadratic, and convex nonlinear programs (NLP).

  • 10.

    Gurobi: Gurobi is a commercial solver that performs very well in large-scale optimization settings. It can solve various types of optimization problems, including linear as well as nonlinear programming problems.

  • 11.

    IBM ILOG CPLEX Optimization Studio (CPLEX): CPLEX is high-performance optimization solver for linear, mixed-integer and quadratic programming. It was named the for the simplex method implemented in the C programming language, although, at the moment, it supports other types of mathematical optimization and offers interfaces other than C.

  • 12.

    COPT (Cardinal optimizer): COPT is a mathematical optimization solver for large-scale problems. It supports many problem types including LP, SOCP, and Convex QCQP.

  • 13.

    Knitro: Knitro is a commercial software package for solving large scale nonlinear mathematical optimization problems. It supports a wide range of problem types, including linear and nonlinear programs, including non-convex NLPs.

  • 14.

    Xpress: Xpress is a mathematical optimization solver designed to solve linear programming, mixed integer programming, and other types of optimization problems.

  • 15.

    Matlab: Matlab is a high-level language and interactive environment that is used to perform computationally intensive tasks. In our context ”Matlab” refers to the solvers offered by the Matlab Optimization Toolbox, which includes a dedicated linear programming solver, linprog , a dedicated conic programming function, coneprog , a general purpose NLP solver, fmincon , and many other solvers and capabilities.

Matlab has been used as a modelling language, and the problems were passed to each solver through an interface, either provided by the solver developer, by Matlab, or by a third party. Table 1 contains the information about the version of each solver used in the benchmark, the interface that has been used between Matlab and the solver.

Table 1: Benchmark solvers information
Solver Version Interface with Matlab
GLPK v4.62 GLPKmex101010The details of the interface as well as its source files are available on:https://github.com/blegat/glpkmex
CLP v1.16.11 OPTI111111The details of the interface as well as its source files are available on:https://github.com/jonathancurrie/OPTI
OSQP v0.6.2 Developer’s API
OOQP v0.99.22 OPTI11
SCS v3.2.3 SCS-Matlab121212The details of the interface as well as its source files are available on:https://github.com/bodono/scs-matlab
ECOS v2.0.10 Developer’s API
IPOPT v3.14.4 mexIPOPT131313The details of the interface as well as its source files are available on:https://github.com/ebertolazzi/mexIPOPT
SCIP v5.0.1 OPTI11
MOSEK v10.1.15 Developer’s API
Gurobi v11.0.2 Developer’s API
CPLEX v12.10.0.0 OPTI11
COPT v7.1.3 COPT-MATLAB141414The details of the interface as well as its source files are available on:https://github.com/leavesgrp/COPT-MATLAB
Knitro v14.0.0 Developer’s API
Xpress v9.4.0 Developer’s API
Matlab v9.2 (R2021b) No interface needed

The most interesting interfacing case is that of CPLEX, which is interfaced through the OPTI Matlab toolbox [46]. Although International Business Machines Corporation (IBM) used to provide a Matlab API for their CPLEX solver, this interface was discontinued, and the latest compatible Matlab version with that API was R2019b. Since the OPTI Matlab toolbox provides an interface that works flawlessly with newer Matlab versions, and since the authors used a newer Matlab version to model the problems, with no guarantee that the same code can be used in Matlab2019b to produce the parameters of each problem, it was decided to interface CPLEX with Matlab through OPTI, instead of moving to an older version of Matlab. It is to be noted, however, that SOCP problems are not handled by OPTI. Another thing to note is that most solvers have multiple internal methods that the user can choose from according to the problem in hand. Many solvers offer the possibility to choose the most suitable algorithm for the problem in hand, according to the pre-solve results. In the benchmark experiment, the algorithm was set to the default, which in most cases means that the solve method is automatically chosen by the solver. The specific algorithms used in the benchmark experiment are reported, by most solvers, in the benchmark log files, which are available as supplementary materials to this article.

References