Fuel-Optimal Formation Reconfiguration by Means of Unidirectional Low-Thrust Propulsion System

Ahmed Mahfouz 111PhD researcher, [email protected] SnT, University of Luxembourg, 29, Avenue J.F Kennedy, 1855, Luxembourg, Luxembourg Gabriella Gaias 222Assistant Professor, [email protected] Department of Aerospace Science and Technology, Politecnico di Milano. 34, via La Masa, 20156, Milan, MI, Italy Florio Dalla Vedova 333Senior Engineer, [email protected] LuxSpace, 9, Rue Pierre Werner, 6832 Betzdorf, Luxembourg Holger Voos 444Full Professor, [email protected] SnT, University of Luxembourg, 29, Avenue J.F Kennedy, 1855, Luxembourg, Luxembourg,
Faculty of Science, Technology and Medicine, University of Luxembourg, 2, place de l’Université, 4365, Esch-sur-Alzette, Luxembourg

1 Introduction

\lettrine

Low-thrust electric propulsion systems are becoming the preferred design solution for small-class and CubeSat-based satellite platforms [1]. This is motivated by many factors, among which is the fact that they are generally more fuel efficient than their chemical counterparts. Furthermore, electric thrusters are require significantly less propellant mass which leads to lighter launch mass and consequently reduces the costs [2]. To further minimize the complexity of the system design and/or to meet stringent power/mass constraints of small satellite platforms, the propulsion system typically features a single throttleable electric thruster. Examples of such satellites include Triton-X Medium and Heavy [3], the PLATiNO platform [4], and the Gravity Field and Steady-State Ocean Circulation Explorer (GOCE) satellite [5]. Small-size satellites can serve several multi-satellite missions, such as cooperative formation-flying to build disaggregated instruments and rendezvous activities to carry out inspection missions. These demand for the capability to perform formation reconfiguration by means of low-thrust unidirectional propulsion systems. In this note, the term "unidirectional" signifies that a the propulsion system comprises a single un-gimbaled thruster.

So far the relative orbit reconfiguration problem has been widely addressed. Examples include guidance and control schemes for formations that employ impulsive thrusters [6, 7, 8, 9], however, these approaches are not viable for formations that utilize electric thrusters. Other guidance approaches were proposed for the low-thrust case, e.g. for the Formation Flying L-band Aperture Synthesis (FFLAS) mission study in [10], and for collision avoidance maneuver optimization [11]. A core assumption in these guidance schemes is the omnidirectional thrusting capability, which hinders the adaption of these approaches for the unidirectional thrusting case. A unidirectional propulsion system was adopted in the Autonomous Vision Approach Navigation and Target Identification (AVANTI) mission [12] where the developed guidance scheme, which is only suited for impulsive thrust satellites, allowed the re-orientation of the thruster nozzle through planned control windows [7, 13]. Furthermore, Model Predictive Control (MPC) schemes were proposed in [14, 15] to address the problem of formation reconfiguration and formation kee** for satellites which are equipped with single electric thrusters, yet the mission operational constraints, i.e. necessary thruster off-periods, were not considered.

In this note, the problem of autonomous optimal formation reconfiguration is addressed for a formation which comprises two satellites, a chief and a deputy, where only the deputy has orbit maneuvering capabilities through a single throttleable electric thruster. In this setting, an attitude slew maneuver is necessary before each thruster firing so that the nozzle could be aligned with the required thrust direction before the firing takes place. The problem is approached through formulating a trajectory optimization (guidance) problem as a fuel-optimal constrained convex optimization problem with multiple no-thrust windows during which attitude redirection slews takes place. This, in-turn, requires constant alternation between the on and off states of the thruster. One big advantage of this on-off alternation is the ability to accommodate long no-thrust periods which arise form mission constraints, e.g. eclipse, during which electric thrusters are usually turned off since the solar arrays are not generating electricity. The biggest advantage of the proposed guidance scheme is that, by relaxing some of the original constraints, it can be transformed into a Quadratic Programming (QP) problem which can be solved efficiently using any of the standard QP solvers. This makes it a attractive candidate to be implemented onboard of a satellite that uses one of the Commercial-Off-The-Shelf (COTS) onboard computers. The control loop is then closed through an MPC-like scheme where the optimization of the state and input thrust profiles (from the current to the final time) are optimized using the proposed guidance algorithm. It is to be noted that the control logic does not necessitate the guidance algorithm to be run at each MPC step, but rather uses the previous guidance profile if the current state is close, within a predefined threshold, to its value predicted by the previous guidance solution. The main contributions of this note are a) An efficient-to-solve guidance scheme for formation reconfiguration when the controlled satellite is equipped with a single electric thruster; b) The ability of the guidance scheme to accommodate as many long no-thrust periods as the user dictates; c) An MPC-like algorithm to close the control loop which does not require the guidance to be run at each receding horizon. Note that in the remainder of the text, the terms "fuel-optimal" and "ΔVΔ𝑉\Delta Vroman_Δ italic_V-optimal" are used interchangeably. These two terms are identical only in the case of single-directional propulsion systems [16].

This Note presents applications where collision avoidance is not of a concern for the satellite reconfigurations. Nonetheless, if required by a specific application, the proposed methodology is straightforward applicable by adding the collision avoidance constraints through the relaxed formulation generally adopted in the literature [17]. By including such affine constraints, in fact, the overall optimization problem is still cast into the QP formulation, thus featuring all the proposed advantages.

This research comes as part of the AuFoSat toolbox to support the future missions Triton-X; a multi-mission microsatellite platform developed by LuxSpace to accommodate various types of payloads in Low Earth Orbits (LEO). Previous AuFoSat research discussed orbit design [18], relative navigation [19, 20], and absolute orbit kee** for Triton-X [15]. While the developed algorithms in the framework of AuFoSat are meant to primarily be used onboard of Triton-X, the goal is to provide a guidance, navigation, and control toolbox that could be used by any satellite with the same, or similar, specifications as Triton-X.

This article is organized such that the following section of introduces the formulation of the relative orbital dynamics using the Relative Orbital Elements (ROE) formulation. In Section 3, the guidance problem is formulated as a convex programming problem, then it is transformed to a QP problem for it to be solved efficiently. The guidance scheme is validated in Section 4 where it is shown to work efficiently in the presence as well as in the absence of long no-thrust periods. Finally the module execution logic is introduced in Section 5 and the closed loop system is benchmarcked against another controller from the literature which deals with a similar problem.

2 Dynamical model

The reference frames used in this work are; the Earth-Centered-Inertial frame (ECI), denoted as 𝔽isuperscript𝔽𝑖\mathbb{F}^{i}blackboard_F start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT, the Satellite-body-fixed frame, denoted as 𝔽bsuperscript𝔽𝑏\mathbb{F}^{b}blackboard_F start_POSTSUPERSCRIPT italic_b end_POSTSUPERSCRIPT, and the Radial-Transversal-Normal frame (RTN), denoted as 𝔽rsuperscript𝔽𝑟\mathbb{F}^{r}blackboard_F start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT. The reader is advised to refer to [15] for a full definition of these reference frames. 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 orbital motion of a satellite under the gravitational influence of a major body (e.g. the Earth) can be parameterized in a planet-centered inertial frame by the following set of orbital elements,

𝜶[auexeyiΩ],𝜶superscriptmatrix𝑎𝑢subscript𝑒𝑥subscript𝑒𝑦𝑖Ω\boldsymbol{\alpha}\coloneqq\begin{bmatrix}a&u&e_{x}&e_{y}&i&\Omega\end{% bmatrix}^{\intercal},bold_italic_α ≔ [ start_ARG start_ROW start_CELL italic_a end_CELL start_CELL italic_u 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, u𝑢uitalic_u 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 orbital eccentricity, i𝑖iitalic_i is the orbital inclination, and ΩΩ\Omegaroman_Ω is the Right Ascension of the Ascending Node (RAAN). It is important to note that the motion of the satellite can also be parameterized by the 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, 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 which can be mapped to/from the orbital elements through a set of nonlinear equations [21]. The exact position and velocity of the spacecraft transform into osculating orbital elements, which in the remainder of this work will be denoted by 𝜶~~𝜶\tilde{\boldsymbol{\alpha}}over~ start_ARG bold_italic_α end_ARG. Mean orbital elements, denoted by 𝜶𝜶\boldsymbol{\alpha}bold_italic_α, are to be intended as 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. Mean/osculating elements’ conversions are performed through the transformations developed in [22].

The relative motion between a deputy and a chief spacecraft can be described by the dimensionless quasi-nonsingular Relative Orbital Elements (ROE) vector which is a nonlinear transformation of the orbital elements vector introduced in Eq. 1,

δ𝜶[δaδλδexδeyδixδiy]=[Δa/acΔu+ΔΩcosicΔexΔeyΔiΔΩsinic],𝛿𝜶superscriptmatrix𝛿𝑎𝛿𝜆𝛿subscript𝑒𝑥𝛿subscript𝑒𝑦𝛿subscript𝑖𝑥𝛿subscript𝑖𝑦superscriptmatrixΔ𝑎subscript𝑎𝑐Δ𝑢ΔΩsubscript𝑖𝑐Δsubscript𝑒𝑥Δsubscript𝑒𝑦Δ𝑖ΔΩsubscript𝑖𝑐\delta\boldsymbol{\alpha}\coloneqq\begin{bmatrix}\delta a&\delta\lambda&\delta e% _{x}&\delta e_{y}&\delta i_{x}&\delta i_{y}\end{bmatrix}^{\intercal}=\begin{% bmatrix}\Delta a/a_{c}&\Delta u+\Delta\Omega\cos{i_{c}}&\Delta e_{x}&\Delta e_% {y}&\Delta i&\Delta\Omega\sin{i_{c}}\end{bmatrix}^{\intercal},italic_δ bold_italic_α ≔ [ start_ARG start_ROW start_CELL italic_δ italic_a end_CELL start_CELL italic_δ italic_λ end_CELL start_CELL italic_δ italic_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_δ italic_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL start_CELL italic_δ italic_i start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_δ italic_i start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT = [ start_ARG start_ROW start_CELL roman_Δ italic_a / italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_CELL start_CELL roman_Δ italic_u + roman_Δ roman_Ω roman_cos italic_i start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_CELL start_CELL roman_Δ italic_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL roman_Δ italic_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL start_CELL roman_Δ italic_i end_CELL start_CELL roman_Δ roman_Ω roman_sin italic_i start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT , (2)

where δ𝜶𝛿𝜶\delta\boldsymbol{\alpha}italic_δ bold_italic_α is the dimensionless ROE vector, δa𝛿𝑎\delta aitalic_δ italic_a is the relative semi-major axis, δλ𝛿𝜆\delta\lambdaitalic_δ italic_λ is the relative mean longitude, δ𝒆[δexδey]𝛿𝒆superscriptmatrix𝛿subscript𝑒𝑥𝛿subscript𝑒𝑦\delta\boldsymbol{e}\coloneqq\begin{bmatrix}\delta e_{x}&\delta e_{y}\end{% bmatrix}^{\intercal}italic_δ bold_italic_e ≔ [ start_ARG start_ROW start_CELL italic_δ italic_e start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_δ italic_e start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT is the relative eccentricity vector, and δ𝒊[δixδiy]𝛿𝒊superscriptmatrix𝛿subscript𝑖𝑥𝛿subscript𝑖𝑦\delta\boldsymbol{i}\coloneqq\begin{bmatrix}\delta i_{x}&\delta i_{y}\end{% bmatrix}^{\intercal}italic_δ bold_italic_i ≔ [ start_ARG start_ROW start_CELL italic_δ italic_i start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT end_CELL start_CELL italic_δ 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 here, and in the coming discussions, the subscript ()dsubscript𝑑\left(\cdot\right)_{d}( ⋅ ) start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT denotes a quantity related to the deputy satellite, while the subscript ()csubscript𝑐\left(\cdot\right)_{c}( ⋅ ) start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT is used for chief-related quantities. Moreover, δ()𝛿\delta\left(\cdot\right)italic_δ ( ⋅ ) signifies a relative quantity between the deputy and the chief which is not necessarily the arithmetic difference between that of the deputy and that of the chief, while Δ()Δ\Delta\left(\cdot\right)roman_Δ ( ⋅ ) signifies the arithmetic difference between ()dsubscript𝑑\left(\cdot\right)_{d}( ⋅ ) start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT and ()csubscript𝑐\left(\cdot\right)_{c}( ⋅ ) start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT, i.e. Δ()()d()cΔsubscript𝑑subscript𝑐\Delta\left(\cdot\right)\coloneqq\left(\cdot\right)_{d}-\left(\cdot\right)_{c}roman_Δ ( ⋅ ) ≔ ( ⋅ ) start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT - ( ⋅ ) start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT. As in the case of absolute orbital elements, the osculating ROE vector is denoted by δ𝜶~𝛿~𝜶\delta\tilde{\boldsymbol{\alpha}}italic_δ over~ start_ARG bold_italic_α end_ARG, whereas the mean ROE vector is referred to as δ𝜶𝛿𝜶\delta{\boldsymbol{\alpha}}italic_δ bold_italic_α. A dimensional ROE vector is obtained by multiplying the dimensionless ROE vector by the semi-major axis of the chief,

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

where 𝒚𝒚\boldsymbol{y}bold_italic_y is the dimensional mean ROE vector with units of length.

Assuming neighbouring orbits of the chief and the deputy, 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,

𝒚(tk+1)=𝚽(tk,tk+1)𝒚(tk)+acM𝚿(tk,tk+1)𝒇r(tk,tk+1),𝒚subscript𝑡𝑘1𝚽subscript𝑡𝑘subscript𝑡𝑘1𝒚subscript𝑡𝑘subscript𝑎𝑐𝑀𝚿subscript𝑡𝑘subscript𝑡𝑘1superscript𝒇𝑟subscript𝑡𝑘subscript𝑡𝑘1\boldsymbol{y}\left(t_{k+1}\right)=\mathbf{\Phi}\left(t_{k},t_{k+1}\right)% \boldsymbol{y}\left(t_{k}\right)+\frac{a_{c}}{M}\mathbf{\Psi}\left(t_{k},t_{k+% 1}\right)\boldsymbol{f}^{r}\left(t_{k},t_{k+1}\right),bold_italic_y ( 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 ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) + divide start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG start_ARG italic_M end_ARG bold_Ψ ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ) bold_italic_f 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, M𝑀Mitalic_M is the deputy’s mass which is assumed constant throughout any maneuver, and 𝒇r(tk,tk+1)=[fRfTfN]superscript𝒇𝑟subscript𝑡𝑘subscript𝑡𝑘1superscriptmatrixsubscript𝑓𝑅subscript𝑓𝑇subscript𝑓𝑁\boldsymbol{f}^{r}\left(t_{k},t_{k+1}\right)=\begin{bmatrix}f_{R}&f_{T}&f_{N}% \end{bmatrix}^{\intercal}bold_italic_f 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_f start_POSTSUBSCRIPT italic_R end_POSTSUBSCRIPT end_CELL start_CELL italic_f start_POSTSUBSCRIPT italic_T end_POSTSUBSCRIPT end_CELL start_CELL italic_f start_POSTSUBSCRIPT italic_N end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT is the input thrust vector in 𝔽rsuperscript𝔽𝑟\mathbb{F}^{r}blackboard_F start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT; 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|k+1𝚽(tk,tk+1)subscript𝚽conditional𝑘𝑘1𝚽subscript𝑡𝑘subscript𝑡𝑘1\mathbf{\Phi}_{k|k+1}\equiv\mathbf{\Phi}\left(t_{k},t_{k+1}\right)bold_Φ start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ≡ bold_Φ ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ), 𝚿k|k+1𝚿(tk,tk+1)subscript𝚿conditional𝑘𝑘1𝚿subscript𝑡𝑘subscript𝑡𝑘1\mathbf{\Psi}_{k|k+1}\equiv\mathbf{\Psi}\left(t_{k},t_{k+1}\right)bold_Ψ start_POSTSUBSCRIPT italic_k | italic_k + 1 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 ), and 𝒇k|k+1r𝒇r(tk,tk+1)subscriptsuperscript𝒇𝑟conditional𝑘𝑘1superscript𝒇𝑟subscript𝑡𝑘subscript𝑡𝑘1\boldsymbol{f}^{r}_{k|k+1}\equiv\boldsymbol{f}^{r}\left(t_{k},t_{k+1}\right)bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ≡ bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT ( italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ).

3 Guidance

In this section, a multiple shooting guidance scheme is developed when large relative orbit maneuvers are required between two satellites, a deputy and a chief, where the chief might be either a physical satellite or a virtual one. The deputy satellite is assumed to be equipped with a single throttleable electric thruster, which not only mandates redirection slew maneuvers before every thruster firing, but also dictates the thruster to operate perpetually since it provides low thrust. It is for these reasons that the guidance scheme is designed from the beginning to operate on an alternating on/off mode where the throttleable thruster is turned off to allow the attitude maneuver to taking place. The trajectory optimization problem is formulated such that the a change in relative orbit is required from 𝒚0subscript𝒚0\boldsymbol{y}_{0}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT at t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT to a reference yfsubscript𝑦𝑓y_{f}italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT at tfsubscript𝑡𝑓t_{f}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT through m+12𝑚12\dfrac{m+1}{2}divide start_ARG italic_m + 1 end_ARG start_ARG 2 end_ARG continuous thruster firings, where m𝑚mitalic_m is an odd number. Figure 1 illustrates the alternation between thrust and attitude maneuvers throughout the allocated maneuver time, from t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT to tfsubscript𝑡𝑓t_{f}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT.

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

In order to enhance the predictability of the mission, the vector of time instants at which the thruster is turned on and off, 𝒕=[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 ], are not treated as optimization variables and are left as a user input. In Fig. 1, l={1, 2,,(m+1)/2}for-all𝑙12𝑚12\forall l\in\mathcal{L}=\left\{1,\;2,\;\ldots,\;\left(m+1\right)/2\right\}∀ italic_l ∈ caligraphic_L = { 1 , 2 , … , ( italic_m + 1 ) / 2 }, Tf,lsubscript𝑇𝑓𝑙T_{f,l}italic_T start_POSTSUBSCRIPT italic_f , italic_l end_POSTSUBSCRIPT are the forced (thrust-powered) time periods, while Tn,lsubscript𝑇𝑛𝑙T_{n,l}italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT are those during which the natural unforced translational dynamics take over (coast arcs).

3.1 problem formulation

Letting,

𝐘=[𝒚0𝒚1𝒚m+1],𝐅=acM[𝒇0|1r𝒇1|2r𝒇m|m+1r],formulae-sequence𝐘matrixsubscript𝒚0subscript𝒚1subscript𝒚𝑚1𝐅subscript𝑎𝑐𝑀matrixsubscriptsuperscript𝒇𝑟conditional01subscriptsuperscript𝒇𝑟conditional12subscriptsuperscript𝒇𝑟conditional𝑚𝑚1\mathbf{Y}=\begin{bmatrix}\boldsymbol{y}_{0}&\boldsymbol{y}_{1}&\ldots&% \boldsymbol{y}_{m+1}\end{bmatrix},\quad\mathbf{F}=\frac{a_{c}}{M}\begin{% bmatrix}\boldsymbol{f}^{r}_{0|1}&\boldsymbol{f}^{r}_{1|2}&\ldots&\boldsymbol{f% }^{r}_{m|m+1}\end{bmatrix},bold_Y = [ start_ARG start_ROW start_CELL bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL bold_italic_y start_POSTSUBSCRIPT italic_m + 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , bold_F = divide start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG start_ARG italic_M end_ARG [ start_ARG start_ROW start_CELL bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 0 | 1 end_POSTSUBSCRIPT end_CELL start_CELL bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT 1 | 2 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_m | italic_m + 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] , (5)

the guidance problem can be formally written as an optimization problem as follows,

Problem 1
min𝐘,𝐅tr(𝐅𝐅)subject to,subscript𝐘𝐅trsuperscript𝐅𝐅subject to,\displaystyle\min_{\mathbf{Y},\mathbf{F}}\quad\textnormal{tr}\left(\mathbf{F}^% {\intercal}\mathbf{F}\right)\qquad\text{subject to,}roman_min start_POSTSUBSCRIPT bold_Y , bold_F end_POSTSUBSCRIPT tr ( bold_F start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_F ) subject to,
𝒚0=𝒚0,𝒚m+1=𝒚f,𝒚k+1=𝚽k|k+1𝒚k+acM𝚿k|k+1𝒇k|k+1rk𝒦,formulae-sequencesubscript𝒚0subscript𝒚0formulae-sequencesubscript𝒚𝑚1subscript𝒚𝑓formulae-sequencesubscript𝒚𝑘1subscript𝚽conditional𝑘𝑘1subscript𝒚𝑘subscript𝑎𝑐𝑀subscript𝚿conditional𝑘𝑘1subscriptsuperscript𝒇𝑟conditional𝑘𝑘1for-all𝑘𝒦\displaystyle\boldsymbol{y}_{0}=\boldsymbol{y}_{0},\qquad\boldsymbol{y}_{m+1}=% \boldsymbol{y}_{f},\qquad\boldsymbol{y}_{k+1}=\mathbf{\Phi}_{k|k+1}\boldsymbol% {y}_{k}+\frac{a_{c}}{M}\mathbf{\Psi}_{k|k+1}\boldsymbol{f}^{r}_{k|k+1}\quad% \forall k\in\mathcal{K},bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_m + 1 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT = bold_Φ start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT + divide start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG start_ARG italic_M end_ARG bold_Ψ start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ∀ italic_k ∈ caligraphic_K , (6)
𝒇k|k+1r=𝟎k𝒦n,formulae-sequencesubscriptsuperscript𝒇𝑟conditional𝑘𝑘10for-all𝑘subscript𝒦𝑛\displaystyle\boldsymbol{f}^{r}_{k|k+1}=\boldsymbol{0}\quad\forall k\in% \mathcal{K}_{n},bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT = bold_0 ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , (7)
𝒇k|k+1rfmaxk𝒦f,formulae-sequencenormsubscriptsuperscript𝒇𝑟conditional𝑘𝑘1subscript𝑓maxfor-all𝑘subscript𝒦𝑓\displaystyle\left\|\boldsymbol{f}^{r}_{k|k+1}\right\|\leq f_{\text{max}}\quad% \forall k\in\mathcal{K}_{f},∥ bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ∥ ≤ italic_f start_POSTSUBSCRIPT max end_POSTSUBSCRIPT ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (8)

where 𝒦=𝒦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 } 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 }, tr()tr\textnormal{tr}\left(\cdot\right)tr ( ⋅ ) is the matrix trace, and fmaxsubscript𝑓maxf_{\text{max}}italic_f start_POSTSUBSCRIPT max end_POSTSUBSCRIPT is the maximum allowable thrust by the onboard thruster. Note that Eq. 7 is a hard constraint to assure there is no input thrust provided during attitude redirection maneuvers. Indeed, Problem 1 stands as a Convex Optimization Problem (COP) since it fulfills all the necessary conditions for a problem to be one [23], which namely are; a) Cost function must be convex (for minimization problems); b) Inequality constraints must be convex; c) Equality constraints must be affine. Being a COP, Problem 1 is guaranteed to have a unique solution, however, it would be much more efficient to solve if it could be put in one of the standard classes of convex optimization problems, e.g. Linear Programming (LP), Quadratic Programming (QP), etc. since dedicated solvers for these classes have matured over the past decades. It is clear that the only thing which prevents Problem 1 from being put in the convex QP canonical form is constraint (8) since it is a quadratic constraint and not an affine one. It can be, nonetheless, transformed into multiple affine constraints using the methodology proposed in [24] which suggests that,

𝒃d,𝒃2can be relaxed by[cos(γj)sin(γj)]𝒃dcos(γmax)j𝒥,formulae-sequencenorm𝒃𝑑formulae-sequence𝒃superscript2can be relaxed byformulae-sequencematrixsubscript𝛾𝑗subscript𝛾𝑗𝒃𝑑subscript𝛾maxfor-all𝑗𝒥\left\|\boldsymbol{b}\right\|\leq d,\quad\boldsymbol{b}\in\mathbb{R}^{2}\qquad% \text{can be relaxed by}\qquad\begin{bmatrix}\cos{\left(\gamma_{j}\right)}&% \sin{\left(\gamma_{j}\right)}\end{bmatrix}\boldsymbol{b}\leq d\cos{\left(% \gamma_{\text{max}}\right)}\quad\forall j\in\mathcal{J},∥ bold_italic_b ∥ ≤ italic_d , bold_italic_b ∈ blackboard_R start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT can be relaxed by [ start_ARG start_ROW start_CELL roman_cos ( italic_γ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) end_CELL start_CELL roman_sin ( italic_γ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] bold_italic_b ≤ italic_d roman_cos ( italic_γ start_POSTSUBSCRIPT max end_POSTSUBSCRIPT ) ∀ italic_j ∈ caligraphic_J , (9)

where 𝒥={1,2,,ndir}𝒥12subscript𝑛dir\mathcal{J}=\left\{1,2,\ldots,n_{\text{dir}}\right\}caligraphic_J = { 1 , 2 , … , italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT }, with ndir3subscript𝑛dir3n_{\text{dir}}\geq 3italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT ≥ 3 being the number of affine inequality constraints that approximate the Euclidean norm constraint, γj=2(j1)πndir+γfirstsubscript𝛾𝑗2𝑗1𝜋subscript𝑛dirsubscript𝛾first\gamma_{j}=\dfrac{2\left(j-1\right)\pi}{n_{\text{dir}}}+\gamma_{\text{first}}italic_γ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = divide start_ARG 2 ( italic_j - 1 ) italic_π end_ARG start_ARG italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT end_ARG + italic_γ start_POSTSUBSCRIPT first end_POSTSUBSCRIPT, with γfirstsubscript𝛾first\gamma_{\text{first}}italic_γ start_POSTSUBSCRIPT first end_POSTSUBSCRIPT being the angle corresponding to the first direction, and γmax=πndirsubscript𝛾max𝜋subscript𝑛dir\gamma_{\text{max}}=\dfrac{\pi}{n_{\text{dir}}}italic_γ start_POSTSUBSCRIPT max end_POSTSUBSCRIPT = divide start_ARG italic_π end_ARG start_ARG italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT end_ARG. It is important to emphasise that the constraint relaxation, Eq. 9, is only applicable to 2-element vectors, while the norm constraint in Problem 1, constraint (8), is imposed on a 3-element vector, 𝒇k|k+1rsubscriptsuperscript𝒇𝑟conditional𝑘𝑘1\boldsymbol{f}^{r}_{k|k+1}bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT. The relaxation is, therefore, applied the projection of the constraining sphere on each plane individually. The ROE dynamics (refer to [8]) possess unique characteristics that necessitates an accurate approximation of the constraining circle lying in the T-N plane, while coarse approximations of the constraints on the two other planes are acceptable. Concretely, the optimal solution to Problem 1 is expected to rarely incorporate radial thrust [7, 14] since it is known to be more expensive, from the Delta-V point of view, than relying solely on transversal thrust, especially when the reconfiguration can afford long maneuver times for large in-plane maneuvers. It is for this reason that the relaxation in Eq. 9 is applied in the T-N plane with a larger number of directions, ndirsubscript𝑛dirn_{\text{dir}}italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT, than the number od directions used in the R-T and the R-N planes. Namely, we introduce n¯dir=4<ndirsubscript¯𝑛dir4subscript𝑛dir\bar{n}_{\text{dir}}=4<n_{\text{dir}}over¯ start_ARG italic_n end_ARG start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT = 4 < italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT as the number of directions that approximate the constraining circles lying in the R-T and the R-N planes, with γ¯j=2(j1)πn¯dir+γ¯firstj𝒥¯={1,,n¯dir}subscript¯𝛾𝑗2𝑗1𝜋subscript¯𝑛dirsubscript¯𝛾firstfor-all𝑗¯𝒥1subscript¯𝑛dir\bar{\gamma}_{j}=\dfrac{2\left(j-1\right)\pi}{\bar{n}_{\text{dir}}}+\bar{% \gamma}_{\text{first}}\;\forall j\in\bar{\mathcal{J}}=\left\{1,\;\ldots,\;\bar% {n}_{\text{dir}}\right\}over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT = divide start_ARG 2 ( italic_j - 1 ) italic_π end_ARG start_ARG over¯ start_ARG italic_n end_ARG start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT end_ARG + over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT first end_POSTSUBSCRIPT ∀ italic_j ∈ over¯ start_ARG caligraphic_J end_ARG = { 1 , … , over¯ start_ARG italic_n end_ARG start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT }, and with γ¯max=γ¯first=π4subscript¯𝛾maxsubscript¯𝛾first𝜋4\bar{\gamma}_{\text{max}}=\bar{\gamma}_{\text{first}}=\frac{\pi}{4}over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT max end_POSTSUBSCRIPT = over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT first end_POSTSUBSCRIPT = divide start_ARG italic_π end_ARG start_ARG 4 end_ARG. In this setting, the constraints in the R-T and the R-N planes are approximated by two rhombuses which cover only around 64%percent6464\%64 % of the original constraining circles.

Having introduced the constraint relaxations which transform the quadratic constraints into multiple affine ones, the reformulation of Problem 1 as a QP problem can be written as,

Problem 2
min𝐘,𝐅tr(𝐅𝐅)subject to,subscript𝐘𝐅trsuperscript𝐅𝐅subject to,\displaystyle\min_{\mathbf{Y},\mathbf{F}}\quad\textnormal{tr}\left(\mathbf{F}^% {\intercal}\mathbf{F}\right)\qquad\text{subject to,}roman_min start_POSTSUBSCRIPT bold_Y , bold_F end_POSTSUBSCRIPT tr ( bold_F start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT bold_F ) subject to,
𝒚0=𝒚0,𝒚m+1=𝒚f,𝒚k+1=𝚽k|k+1𝒚k+acM𝚿k|k+1𝒇k|k+1rk𝒦,formulae-sequencesubscript𝒚0subscript𝒚0formulae-sequencesubscript𝒚𝑚1subscript𝒚𝑓formulae-sequencesubscript𝒚𝑘1subscript𝚽conditional𝑘𝑘1subscript𝒚𝑘subscript𝑎𝑐𝑀subscript𝚿conditional𝑘𝑘1subscriptsuperscript𝒇𝑟conditional𝑘𝑘1for-all𝑘𝒦\displaystyle\boldsymbol{y}_{0}=\boldsymbol{y}_{0},\qquad\boldsymbol{y}_{m+1}=% \boldsymbol{y}_{f},\qquad\boldsymbol{y}_{k+1}=\mathbf{\Phi}_{k|k+1}\boldsymbol% {y}_{k}+\frac{a_{c}}{M}\mathbf{\Psi}_{k|k+1}\boldsymbol{f}^{r}_{k|k+1}\quad% \forall k\in\mathcal{K},bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_m + 1 end_POSTSUBSCRIPT = bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , bold_italic_y start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT = bold_Φ start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT bold_italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT + divide start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG start_ARG italic_M end_ARG bold_Ψ start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ∀ italic_k ∈ caligraphic_K , (10)
𝒇k|k+1r=𝟎k𝒦n,formulae-sequencesubscriptsuperscript𝒇𝑟conditional𝑘𝑘10for-all𝑘subscript𝒦𝑛\displaystyle\boldsymbol{f}^{r}_{k|k+1}=\boldsymbol{0}\quad\forall k\in% \mathcal{K}_{n},bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT = bold_0 ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , (11)
[0cos(γj)sin(γj)]𝒇k|k+1rfmaxcos(γmax),j𝒥&k𝒦f,formulae-sequencematrix0subscript𝛾𝑗subscript𝛾𝑗subscriptsuperscript𝒇𝑟conditional𝑘𝑘1subscript𝑓maxsubscript𝛾maxfor-all𝑗𝒥for-all𝑘subscript𝒦𝑓\displaystyle\begin{bmatrix}0&\cos{\left(\gamma_{j}\right)}&\sin{\left(\gamma_% {j}\right)}\end{bmatrix}\boldsymbol{f}^{r}_{k|k+1}\leq f_{\text{max}}\cos{% \left(\gamma_{\text{max}}\right)},\quad\forall j\in\mathcal{J}\;\&\;\forall k% \in\mathcal{K}_{f},[ start_ARG start_ROW start_CELL 0 end_CELL start_CELL roman_cos ( italic_γ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) end_CELL start_CELL roman_sin ( italic_γ start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ≤ italic_f start_POSTSUBSCRIPT max end_POSTSUBSCRIPT roman_cos ( italic_γ start_POSTSUBSCRIPT max end_POSTSUBSCRIPT ) , ∀ italic_j ∈ caligraphic_J & ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (12)
[cos(γ¯j)sin(γ¯j)0cos(γ¯j)0sin(γ¯j)]𝒇k|k+1rfmaxcos(γ¯max),j𝒥¯&k𝒦f,formulae-sequencematrixsubscript¯𝛾𝑗subscript¯𝛾𝑗0subscript¯𝛾𝑗0subscript¯𝛾𝑗subscriptsuperscript𝒇𝑟conditional𝑘𝑘1subscript𝑓maxsubscript¯𝛾maxfor-all𝑗¯𝒥for-all𝑘subscript𝒦𝑓\displaystyle\begin{bmatrix}\cos{\left(\bar{\gamma}_{j}\right)}&\sin{\left(% \bar{\gamma}_{j}\right)}&0\\ \cos{\left(\bar{\gamma}_{j}\right)}&0&\sin{\left(\bar{\gamma}_{j}\right)}\end{% bmatrix}\boldsymbol{f}^{r}_{k|k+1}\leq f_{\text{max}}\cos{\left(\bar{\gamma}_{% \text{max}}\right)},\quad\forall j\in\bar{\mathcal{J}}\;\&\;\forall k\in% \mathcal{K}_{f},[ start_ARG start_ROW start_CELL roman_cos ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) end_CELL start_CELL roman_sin ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_j 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_j end_POSTSUBSCRIPT ) end_CELL start_CELL 0 end_CELL start_CELL roman_sin ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ] bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ≤ italic_f start_POSTSUBSCRIPT max end_POSTSUBSCRIPT roman_cos ( over¯ start_ARG italic_γ end_ARG start_POSTSUBSCRIPT max end_POSTSUBSCRIPT ) , ∀ italic_j ∈ over¯ start_ARG caligraphic_J end_ARG & ∀ italic_k ∈ caligraphic_K start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , (13)

A graphical representation of the feasibility regions of the control thrust components is given in Fig. 2 for both problems, Problem 1 and Problem 2. In Fig. 2, the constraint relaxation in Eq. 9 is depicted for ndir=10subscript𝑛dir10n_{\text{dir}}=10italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT = 10 and γfirst=0subscript𝛾first0\gamma_{\text{first}}=0italic_γ start_POSTSUBSCRIPT first end_POSTSUBSCRIPT = 0 which covers approximately 94%percent9494\%94 % of the original constraining circle in the T-N plane.

Refer to caption
Figure 2: Feasibility region comparison between the original COP (Problem 1) and the QP problem (Problem 2)

It is important to note that while the relaxed constraint (13) does not explicitly constrain the radial thrust component any better than the original circular constraint, it does affect the choice of the radial-transversal and normal-radial combinations.

3.2 Parameters sensitivity analysis

Investigating the two proposed formulations of the guidance problems, 1 and 2, and their graphical representation Fig. 1, it can be deduced that the parameters that are provided by the user and might need tuning are namely the time instances at which the thruster is switched on and off (or alternatively the time periods Tf,lsubscript𝑇𝑓𝑙T_{f,l}italic_T start_POSTSUBSCRIPT italic_f , italic_l end_POSTSUBSCRIPT and Tn,llsubscript𝑇𝑛𝑙for-all𝑙T_{n,l}\;\forall l\in\mathcal{L}italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT ∀ italic_l ∈ caligraphic_L as well as the allocated maneuver time, tft0subscript𝑡𝑓subscript𝑡0t_{f}-t_{0}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT). The choice of the time periods Tf,lsubscript𝑇𝑓𝑙T_{f,l}italic_T start_POSTSUBSCRIPT italic_f , italic_l end_POSTSUBSCRIPT and Tn,lsubscript𝑇𝑛𝑙T_{n,l}italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT is generally subject to mission time constraints, e.g. not being able to provide thrust during eclipse, during ground contact, or during scientific experiments. If no such mission constraints are present, fixing the time periods Tf,lsubscript𝑇𝑓𝑙T_{f,l}italic_T start_POSTSUBSCRIPT italic_f , italic_l end_POSTSUBSCRIPT and Tn,lsubscript𝑇𝑛𝑙T_{n,l}italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT comes as a natural choice, i.e. Tf,l=Tf,Tn,l=Tnlformulae-sequencesubscript𝑇𝑓𝑙subscript𝑇𝑓subscript𝑇𝑛𝑙subscript𝑇𝑛for-all𝑙T_{f,l}=T_{f},\;T_{n,l}=T_{n}\forall l\in\mathcal{L}italic_T start_POSTSUBSCRIPT italic_f , italic_l end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT = italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∀ italic_l ∈ caligraphic_L. For this specific case, a sensitivity analysis is performed to assess the feasibility of the optimization problem when the values of Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT and Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT change. In this sensitivity analysis, Problem 2 was solved for 100100100100 randomly chosen initial conditions, i.e. 𝒚0subscript𝒚0\boldsymbol{y}_{0}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, for the 91919191 Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT-Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT combination drawn from Tn{60, 90,, 240}ssubscript𝑇𝑛6090240sT_{n}\in\left\{60,\;90,\;\ldots,\;240\right\}\;\text{s}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∈ { 60 , 90 , … , 240 } s and Tf{0.025, 0.05, 0.1,,0.5,0.6,0.7}orbitssubscript𝑇𝑓0.0250.050.10.50.60.7orbitsT_{f}\in\left\{0.025,\;0.05,\;0.1,\ldots,0.5,0.6,0.7\right\}\;\text{orbits}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT ∈ { 0.025 , 0.05 , 0.1 , … , 0.5 , 0.6 , 0.7 } orbits. Furthermore, since the difference between the initial and the final ROE vectors is what characterizes the maneuver, and not the values of the vectors themselves, only the value of 𝒚0subscript𝒚0\boldsymbol{y}_{0}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT is chosen randomly, while the value of 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT is set to zero for the 9100910091009100 experiments. Namely, the entries of the initial dimensional ROE vector, 𝒚0subscript𝒚0\boldsymbol{y}_{0}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, are chosen randomly from the [1 1]kmdelimited-[]11km\left[-1\;1\right]\;\text{km}[ - 1 1 ] km range, except for the initial relative mean argument of longitude, aδλ0𝑎𝛿subscript𝜆0a\delta\lambda_{0}italic_a italic_δ italic_λ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, which is chosen randomly from the [100 100]kmdelimited-[]100100km\left[-100\;100\right]\;\text{km}[ - 100 100 ] km. The allocated time for the maneuver is fixed to 15151515 orbits.

The output of the sensitivity analysis is the success and failure regions in the Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT-Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT plane, where the success region is that in which the optimizer succeeded to find a feasible solution for all the 100100100100 random initial conditions. The success and failure regions of the aforementioned sensitivity study are depicted in Fig. 3(a).

Refer to caption
(a) Optimization success region under varying Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT and Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT
Refer to caption
(b) Fitness within the success region
Figure 3: Sensitivity of the system to Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT and Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT variations

Indeed, not all the points within the success region are the same from the fuel-efficiency point of view, since changing Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT and Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT does, in-turn, change the cost function. A fitness function is introduced to assess the competence of each Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT-Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT combination within the success region. The adopted fitness function is the reciprocal of the average optimal cost over the 100100100100 initial conditions at each Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT-Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT point. The fitness is calculated at each point in the success region and the results are presented in Fig. 3(b). It is clear from Fig. 3(b) that changing the value of Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT barely changes the fitness for a fixed Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT value, while it is obvious that the larger the value of Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, the fitter the Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT-Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT combination. Nevertheless, there comes a point where increasing Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT drives the combination out of the success region (see Fig. 3(a)). It is for this reason that the adopted value of Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT in many of the numerical experiments to follow is set to 0.30.30.30.3, which is a value that guarantees acceptable fitness, and is, at the same time, far away from the failure region.

Although the purpose of the sensitivity analysis is ultimately to help choosing adroit values for Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT and Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, since the time necessary for a slew maneuver heavily depends on the maximum slew rate, ωmaxsubscript𝜔max\omega_{\text{max}}italic_ω start_POSTSUBSCRIPT max end_POSTSUBSCRIPT, for any specific satellite, the value of Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT can be calculated analytically according to the following formula,

Tn=πωmax+Tsafety.subscript𝑇𝑛𝜋subscript𝜔maxsubscript𝑇safetyT_{n}=\dfrac{\pi}{\omega_{\text{max}}}+T_{\text{safety}}.italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = divide start_ARG italic_π end_ARG start_ARG italic_ω start_POSTSUBSCRIPT max end_POSTSUBSCRIPT end_ARG + italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT . (14)

The rationale behind Eq. 14 is that, since the maximum possible slew angle is π𝜋\piitalic_π, the longest time period it takes the satellite to perform any slew, using the maximum angular speed, is πωmax𝜋subscript𝜔max\frac{\pi}{\omega_{\text{max}}}divide start_ARG italic_π end_ARG start_ARG italic_ω start_POSTSUBSCRIPT max end_POSTSUBSCRIPT end_ARG. Indeed, the satellite never uses the maximum angular speed throughout the whole slew, that is why the Tsafetysubscript𝑇safetyT_{\text{safety}}italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT term is added to make sure that the allocated time for the slew maneuver, Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, is always more than enough. The importance of Tsafetysubscript𝑇safetyT_{\text{safety}}italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT is not limited to insuring the coast arc is sufficient for the slew maneuver, it also proves to be useful in closing the loop as will be discussed in Section 5. For Triton-X, the maximum slew rate is 2/ssuperscript2s2^{\circ}/\text{s}2 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT / s, and hence Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is calculated to be 100100100100 s after choosing Tsafety=10subscript𝑇safety10T_{\text{safety}}=10italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT = 10 s.

4 Guidance scheme validation

After comparing the performance of many different convex QP solvers, the free open-source Operator Splitting Quadratic Program (OSQP) [25] stood as the fastest, and was hence chosen to solve Problem 2 in the coming discussions. In order to validate the proposed guidance scheme for the targeted maneuver spectrum, the optimization problem is solved for a variety of maneuvers, large and otherwise, using the parameters chosen based on the sensitivity study, and the results of one of these tests is reported here. In that experiment, the initial and final dimensional ROE vectors are randomly chosen to be, 𝒚0=[55.6 7414.758.7 83.72.3 22.4]msubscript𝒚0superscriptdelimited-[]55.67414.758.783.72.322.4m\boldsymbol{y}_{0}=\left[-55.6\;7414.7\;-58.7\;83.7\;-2.3\;22.4\right]^{% \intercal}\;\text{m}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = [ - 55.6 7414.7 - 58.7 83.7 - 2.3 22.4 ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT m and 𝒚f=𝟎subscript𝒚𝑓0\boldsymbol{y}_{f}=\boldsymbol{0}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = bold_0, while the initial orbit of the chief is defined in terms of the osculating orbital elements such that 𝜶~c,0=[7121km 0 105 0 45 0]subscript~𝜶𝑐0superscriptdelimited-[]7121kmsuperscript 0superscript105superscript045superscript 0\tilde{\boldsymbol{\alpha}}_{c,0}=\left[7121\;\text{km}\;0^{\circ}\;10^{-5}\;0% \;45^{\circ}\;0^{\circ}\right]^{\intercal}over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , 0 end_POSTSUBSCRIPT = [ 7121 km 0 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT 0 45 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT 0 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT. The full parameters list of the reported maneuver is presented in Table 1. Note that choosing 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT to be zeros means that the two satellites are required to rendezvous at the final time.

Table 1: Parameters used in the guidance scheme 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 ] ndir[-]subscript𝑛dirdelimited-[]-n_{\text{dir}}\;[\text{-}]italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT [ - ] γfirst[]\gamma_{\text{first}}\;[^{\circ}]italic_γ start_POSTSUBSCRIPT first end_POSTSUBSCRIPT [ start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT ] M[kg]𝑀delimited-[]kgM\;[\text{kg}]italic_M [ kg ] fmax[mN]subscript𝑓maxdelimited-[]mNf_{\text{max}}\;[\text{mN}]italic_f start_POSTSUBSCRIPT max end_POSTSUBSCRIPT [ mN ] ωmax[/s]\omega_{\text{max}}\;[^{\circ}/\text{s}]italic_ω start_POSTSUBSCRIPT max end_POSTSUBSCRIPT [ start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT / s ]
5555 0.30.30.30.3 100100100100 12121212 00 200200200200 7777 2222

It is to be noted that the satellite mass, the maximum thrust, and the maximum slew rate are extracted from the publicly available Triton-X specifications555The Triton-X brochure can be found at https://luxspace.lu/resources/.. Moreover, ndirsubscript𝑛dirn_{\text{dir}}italic_n start_POSTSUBSCRIPT dir end_POSTSUBSCRIPT is set to 12121212 as this is the least number of directions that approximates the constraining circle by multiple affine constraints while covering at least 95%percent9595\%95 % of the its area.

In Fig. 4, the dimensional ROE profile, optimized by the guidance scheme, is depicted. The plots in Fig. 4 reveal that the main goal of the guidance algorithm, which is to rendezvous with the virtual chief at the final time, is achieved. Moreover, the δλ𝛿𝜆\delta\lambdaitalic_δ italic_λ error is corrected through building δa𝛿𝑎\delta aitalic_δ italic_a momentum instead of firing in the radial direction.

Refer to caption
Figure 4: Optimized dimensional ROE profile

The level of thrust provided by the onboard electric propulsion system is presented in Fig. 5(a). It is clear that the maximum thrust constraint is respected thanks to the relaxations (12) and (13) that approximate the original quadratic constraint (8). Furthermore, the fact that the satellite uses minimal radial thrust, as expected, is evident in Fig. 5(b) which depicts the projection of the thrust into the RTN frame.

Refer to caption
(a) Thrust norm
Refer to caption
(b) Thrust projection into the RTN frame
Figure 5: Optimized thrust profile

To insure that the optimized trajectory is compliant with the maximum slew rate constraint, the mean angular rate is calculated at each time step and is shown in Fig. 7. It is obvious that the mean required angular speed is conceivably less than ωmaxsubscript𝜔max\omega_{\text{max}}italic_ω start_POSTSUBSCRIPT max end_POSTSUBSCRIPT since the allocated time for the attitude maneuver, Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, is always more than the time required for the most extreme attitude maneuver.

Satellite missions usually have constraints on the timing of the orbital maneuvers, which arise from not being able to perform any thruster firing for example during ground contact or during eclipse periods. Unlike impulsive-thrust absolute/relative orbit correction maneuvers, low-thrust maneuvers may require too long to execute, days in some cases. It is for this reason that low-thrust guidance algorithms need to accommodate the no-thrust periods during the orbital maneuver itself. One of the main contributions of this note is the ability of the proposed guidance scheme to adapt to different scenarios where the thruster is required to shut down for known extended periods without the need to change the structure of the problem. The duration of each coast arc, Tn,lsubscript𝑇𝑛𝑙T_{n,l}italic_T start_POSTSUBSCRIPT italic_n , italic_l end_POSTSUBSCRIPT (see Fig. 1), which is a user-input, is the only thing that needs to be adapted according to the operational constraints. To validate the ability of the trajectory optimization routine to accommodate long coast arcs, two different scenarios are introduced where the maneuver duration as well as the initial and final ROE vectors as fixed for both scenarios and only the no-thrust periods are varied. The thruster off-periods are arbitrarily chosen for each of the two scenarios and are reported in Fig. 7. The initial and final dimensional ROE vectors for both scenarios are set to, 𝒚0=[187 945 189 86 79114]msubscript𝒚0superscriptdelimited-[]1879451898679114m\boldsymbol{y}_{0}=\left[187\;945\;189\;86\;79\;-114\right]^{\intercal}\;\text% {m}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = [ 187 945 189 86 79 - 114 ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT m and 𝒚f=[0 412 38996 153198]msubscript𝒚𝑓superscriptdelimited-[]041238996153198m\boldsymbol{y}_{f}=\left[0\;412\;389\;-96\;153\;-198\right]^{\intercal}\;\text% {m}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = [ 0 412 389 - 96 153 - 198 ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT m, and the simulation parameters are identical to those reported in Table 1 except for Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT which is set to 0.10.10.10.1 orbits.

Figure 6: Adopted no-thrust periods for two simulation scenarios
No-thrust periods [orbits]
Scenario 1 {0.5-1, 1.5-2, 2.5-3, 3.5-4, 4.5-5}0.5-11.5-22.5-33.5-44.5-5\left\{0.5\text{-}1,\;1.5\text{-}2,\;2.5\text{-}3,\;3.5\text{-}4,\;4.5\text{-}% 5\right\}{ 0.5 - 1 , 1.5 - 2 , 2.5 - 3 , 3.5 - 4 , 4.5 - 5 }
Scenario 2 {0.25-0.5, 1.25-2.25, 3-3.25, 4.25-4.75}0.25-0.51.25-2.253-3.254.25-4.75\left\{0.25\text{-}0.5,\;1.25\text{-}2.25,\;3\text{-}3.25,\;4.25\text{-}4.75\right\}{ 0.25 - 0.5 , 1.25 - 2.25 , 3 - 3.25 , 4.25 - 4.75 }
Refer to caption
Figure 7: Optimized angular profile

The user-defined thruster no-thrust intervals for the two defined scenarios can be seen graphically in Fig. 8 where the expected behaviour of the thruster is presented.

Refer to caption
Figure 8: Expected behaviour of the thruster in the presence of the thruster off-periods in Fig. 7

It is important to emphasise that while the no-thrust periods are seen to appear with a regular pattern (from the halfway point to the end of each orbit) for scenario 1, this need not to be the case for operational time constraints, which is reflected in scenario 2.

The dimensional ROE profile, predicted by the guidance algorithm, is depicted in Fig. 9 for both scenarios, where the thruster off-periods are also shown. It is obvious that the δλ𝛿𝜆\delta\lambdaitalic_δ italic_λ signal is conceivably evolving even when no thrust is provided, since it can be manipulated not only directly through input thrust, but also indirectly through the non-zero value of δa𝛿𝑎\delta aitalic_δ italic_a. Notably, the total Delta-V is different for each of the scenarios, as it counts to 0.286m/s0.286ms0.286\;\text{m}/\text{s}0.286 m / s in the first scenario and to 0.303m/s0.303ms0.303\;\text{m}/\text{s}0.303 m / s in the second.

Refer to caption
Figure 9: Guidance dimensional ROE profile under operational constraints

5 Closing the loop

The proposed trajectory optimization scheme is an open-loop control system that cannot handle disturbances or model inaccuracies. It is for this reason that the loop has to be closed to react to system changes in real-time. In this section, the feedback control loop is studied, and the exact location of the guidance module within the closed loop is discussed. The simulated module execution logic onboard of the deputy is depicted in Fig. 10, where the solid arrows signify the main signals that are recurrently passed, and the dashed lines are those which are passed only once before the beginning of the maneuver.

Refer to caption
Figure 10: Deputy’s module execution logic used in numerical simulations

In Fig. 10, "Osc2Mean" is the function that transforms osculating orbital elements to mean ones [22], and "RTN2Inertial" is the method that rotates any vector from 𝔽rsuperscript𝔽𝑟\mathbb{F}^{r}blackboard_F start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT to 𝔽isuperscript𝔽𝑖\mathbb{F}^{i}blackboard_F start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT given the position and velocity of the chief (or alternatively its orbital elements) at the time instant in question. Moreover, the breve accent, ()˘˘\breve{\left(\cdot\right)}over˘ start_ARG ( ⋅ ) end_ARG, signifies a quantity which is disturbed by either one or a combination of a) Estimation errors, e.g. 𝜶˘d,ksubscript˘𝜶𝑑𝑘\breve{\boldsymbol{\alpha}}_{d,k}over˘ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_d , italic_k end_POSTSUBSCRIPT; b) ADCS inaccuracies, e.g. 𝒇˘k|k+1isubscriptsuperscript˘𝒇𝑖conditional𝑘𝑘1\breve{\boldsymbol{f}}^{i}_{k|k+1}over˘ start_ARG bold_italic_f end_ARG start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT; or c) Physical constraints of the actuators, e.g. 𝒇˘k|k+1isubscriptsuperscript˘𝒇𝑖conditional𝑘𝑘1\breve{\boldsymbol{f}}^{i}_{k|k+1}over˘ start_ARG bold_italic_f end_ARG start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT. Note that in quantities with double subscripts, the first subscript refers to the spacecraft, either chief or deputy, and the second refers to the time instant at which the quantity is evaluated, e.g. 𝜶˘d,ksubscript˘𝜶𝑑𝑘\breve{\boldsymbol{\alpha}}_{d,k}over˘ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_d , italic_k end_POSTSUBSCRIPT is the perturbed orbital elements vector of the deputy at time tksubscript𝑡𝑘t_{k}italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT.

Since the navigation module is out of the scope of this note, and in order to take the hardware inaccuracies and physical limitations into account within the numerical simulations, surrogate models for estimation inaccuracies as well as for the physical limitations and ADCS errors are introduced.
The physical limitations are only present in the saturation block in Fig. 10, which can be easily implemented in the numerical simulations. In fact, this saturation is taken into account in the guidance implementation as the maximum thrust constraint (see constraints (12) and (13) of Problem 2), nonetheless, it is also implemented in the control loop as a safeguard. The navigation surrogate model uses the input mean orbital elements of the deputy and the chief as ground truth. The following procedure is used on the chief spacecraft,

𝒙c,ki=OE2Cart(𝜶c,k),𝒙˘c,ki=𝒙c,ki+𝒩(𝟎,𝚺𝒙c),𝜶˘c,k=Cart2OE(𝒙˘c,ki),formulae-sequencesuperscriptsubscript𝒙𝑐𝑘𝑖OE2Cartsubscript𝜶𝑐𝑘formulae-sequencesuperscriptsubscript˘𝒙𝑐𝑘𝑖superscriptsubscript𝒙𝑐𝑘𝑖𝒩0subscript𝚺subscript𝒙𝑐subscript˘𝜶𝑐𝑘Cart2OEsuperscriptsubscript˘𝒙𝑐𝑘𝑖\boldsymbol{x}_{c,k}^{i}=\text{OE2Cart}(\boldsymbol{\alpha}_{c,k}),\qquad% \breve{{\boldsymbol{x}}}_{c,k}^{i}={\boldsymbol{x}}_{c,k}^{i}+\mathcal{N}\left% (\boldsymbol{0},\;\mathbf{\Sigma}_{\boldsymbol{x}_{c}}\right),\qquad\breve{% \boldsymbol{\alpha}}_{c,k}=\text{Cart2OE}(\breve{\boldsymbol{x}}_{c,k}^{i}),bold_italic_x start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT = OE2Cart ( bold_italic_α start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT ) , over˘ start_ARG bold_italic_x end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT = bold_italic_x start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT + caligraphic_N ( bold_0 , bold_Σ start_POSTSUBSCRIPT bold_italic_x start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) , over˘ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT = Cart2OE ( over˘ start_ARG bold_italic_x end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT ) , (15)

where the two methods "OE2Cart" and "Cart2OE" are those which transform the Orbital elements vector into Cartesian state vector and vice versa, and 𝒩(μ,σ2)𝒩𝜇superscript𝜎2\mathcal{N}\left(\mu,\;\sigma^{2}\right)caligraphic_N ( italic_μ , italic_σ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) is a normally distributed random variable with μ𝜇\muitalic_μ as its mean and σ2superscript𝜎2\sigma^{2}italic_σ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT as its variance. Hence, 𝚺𝒙csubscript𝚺subscript𝒙𝑐\mathbf{\Sigma}_{{\boldsymbol{x}}_{c}}bold_Σ start_POSTSUBSCRIPT bold_italic_x start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT is the covariance matrix of the random noise affecting the estimation of the Cartesian state of the chief satellite, which is defined as,

𝚺𝒙c=diag(σ𝒓c2,σ𝒓c2,σ𝒓c2,σ𝒗c2,σ𝒗c2,σ𝒗c2)subscript𝚺subscript𝒙𝑐diagsuperscriptsubscript𝜎subscript𝒓𝑐2superscriptsubscript𝜎subscript𝒓𝑐2superscriptsubscript𝜎subscript𝒓𝑐2superscriptsubscript𝜎subscript𝒗𝑐2superscriptsubscript𝜎subscript𝒗𝑐2superscriptsubscript𝜎subscript𝒗𝑐2\mathbf{\Sigma}_{{\boldsymbol{x}}_{c}}=\text{diag}\left(\sigma_{\boldsymbol{r}% _{c}}^{2},\;\sigma_{\boldsymbol{r}_{c}}^{2},\;\sigma_{\boldsymbol{r}_{c}}^{2},% \;\sigma_{\boldsymbol{v}_{c}}^{2},\;\sigma_{\boldsymbol{v}_{c}}^{2},\;\sigma_{% \boldsymbol{v}_{c}}^{2}\right)bold_Σ start_POSTSUBSCRIPT bold_italic_x start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT = diag ( italic_σ start_POSTSUBSCRIPT bold_italic_r start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_r start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_r start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) (16)

where diag(,,)diag\text{diag}\left(\cdot,\cdot,\ldots\right)diag ( ⋅ , ⋅ , … ) is a function that creates a diagonal matrix, with zero off-diagonal elements, from its input arguments, σ𝒓c2superscriptsubscript𝜎subscript𝒓𝑐2\sigma_{\boldsymbol{r}_{c}}^{2}italic_σ start_POSTSUBSCRIPT bold_italic_r start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT and σ𝒗c2superscriptsubscript𝜎subscript𝒗𝑐2\sigma_{\boldsymbol{v}_{c}}^{2}italic_σ start_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT are the variances of the 1-dimensional (in the x, the y or the z directions) position and velocity estimation errors respectively. It is worth mentioning that the mean orbital elements of the deputy can be disturbed using the same model in Eq. 15, however using different variances for the 1-dimensional position and velocity estimation errors, namely, σ𝒓dsubscript𝜎subscript𝒓𝑑\sigma_{\boldsymbol{r}_{d}}italic_σ start_POSTSUBSCRIPT bold_italic_r start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_POSTSUBSCRIPT and σ𝒗dsubscript𝜎subscript𝒗𝑑\sigma_{\boldsymbol{v}_{d}}italic_σ start_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_POSTSUBSCRIPT. Moreover, relative navigation is, in general, more accurate than the absolute one [26, 20]. Hence the surrogate model for the relative navigation needed to be more than just converting the estimated absolute orbital elements of the chief and the target to a ROE vector. The following surrogate model is used instead,

δ𝜶=OE2ROE(𝜶c(t),𝜶d),𝒚˘=acδ𝜶+𝒩(𝟎,𝚺𝒚),formulae-sequence𝛿𝜶OE2ROEsubscript𝜶𝑐𝑡subscript𝜶𝑑˘𝒚subscript𝑎𝑐𝛿𝜶𝒩0subscript𝚺𝒚\delta\boldsymbol{\alpha}=\text{OE2ROE}\left(\boldsymbol{\alpha}_{c}\left(t% \right),\;\boldsymbol{\alpha}_{d}\right),\qquad\breve{\boldsymbol{y}}=a_{c}% \delta\boldsymbol{\alpha}+\mathcal{N}\left(\boldsymbol{0},\;\mathbf{\Sigma}_{% \boldsymbol{y}}\right),italic_δ bold_italic_α = OE2ROE ( bold_italic_α start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_t ) , bold_italic_α start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT ) , over˘ start_ARG bold_italic_y end_ARG = italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT italic_δ bold_italic_α + caligraphic_N ( bold_0 , bold_Σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT ) , (17)

where OE2ROE is the method that transforms the orbital elements of the chief and deputy to a ROE vector according to Eq. 2, and 𝚺𝒚subscript𝚺𝒚\mathbf{\Sigma}_{\boldsymbol{y}}bold_Σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT is the covariance matrix of the zero mean normally distributed random disturbance vector, which can be expressed as,

𝚺𝒚=diag(σ𝒚2,σ𝒚2,σ𝒚2,σ𝒚2,σ𝒚2,σ𝒚2).subscript𝚺𝒚diagsuperscriptsubscript𝜎𝒚2superscriptsubscript𝜎𝒚2superscriptsubscript𝜎𝒚2superscriptsubscript𝜎𝒚2superscriptsubscript𝜎𝒚2superscriptsubscript𝜎𝒚2\mathbf{\Sigma}_{\boldsymbol{y}}=\text{diag}\left(\sigma_{\boldsymbol{y}}^{2},% \;\sigma_{\boldsymbol{y}}^{2},\;\sigma_{\boldsymbol{y}}^{2},\;\sigma_{% \boldsymbol{y}}^{2},\;\sigma_{\boldsymbol{y}}^{2},\;\sigma_{\boldsymbol{y}}^{2% }\right).bold_Σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT = diag ( italic_σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) . (18)

Lastly, the "Pointing error" block in Fig. 10 is using the the following surrogate model,

𝔮pe=[cos(ζpe/2)sin(ζpe/2)𝒒^pe],𝒇˘k|k+1r=𝔮pe𝒇k|k+1r𝔮~pe,formulae-sequencesubscript𝔮pesuperscriptmatrixsubscript𝜁pe2subscript𝜁pe2superscriptsubscript^𝒒pesubscriptsuperscript˘𝒇𝑟conditional𝑘𝑘1subscript𝔮pesubscriptsuperscript𝒇𝑟conditional𝑘𝑘1subscript~𝔮pe\mathfrak{q}_{\text{pe}}=\begin{bmatrix}\cos{\left({\zeta_{\text{pe}}}/{2}% \right)}&\sin{\left({\zeta_{\text{pe}}}/{2}\right)}\hat{\boldsymbol{q}}_{\text% {pe}}^{\intercal}\end{bmatrix}^{\intercal},\qquad\breve{\boldsymbol{f}}^{r}_{k% |k+1}=\mathfrak{q}_{\text{pe}}\circ\boldsymbol{f}^{r}_{k|k+1}\circ\tilde{% \mathfrak{q}}_{\text{pe}},fraktur_q start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL roman_cos ( italic_ζ start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT / 2 ) end_CELL start_CELL roman_sin ( italic_ζ start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT / 2 ) over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT , over˘ start_ARG bold_italic_f end_ARG start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT = fraktur_q start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT ∘ bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ∘ over~ start_ARG fraktur_q end_ARG start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT , (19)

where 𝔮pesubscript𝔮pe\mathfrak{q}_{\text{pe}}fraktur_q start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT is the thruster misalignment unit quaternion, with 𝔮~pesubscript~𝔮pe\tilde{\mathfrak{q}}_{\text{pe}}over~ start_ARG fraktur_q end_ARG start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT being its quaternion conjugate, ζpesubscript𝜁pe\zeta_{\text{pe}}italic_ζ start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT is the pointing error angle, which can be extracted from Triton-X brochure, 𝒒^pesubscript^𝒒pe\hat{\boldsymbol{q}}_{\text{pe}}over^ start_ARG bold_italic_q end_ARG start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT is a random 3-element unit vector, and \circ is the quaternion multiplication operator.

The "Controller" block collection in Fig. 10 works much like a Model Predictive Control (MPC) where the prediction horizon spans from the current time to the user-defined maneuver end time, and the control and prediction horizons are identical. In this setting, the control profile optimization as well as the state prediction from the current time to the maneuver final time is done recurrently by the trajectory optimization scheme (Problem 2), and the function of the "Arbiter" block is only to choose the proper input thrust from the provided guidance profile, namely the first or the second thrust vector from the guidance control profile depending on whether the current time lies within a forced or a natural translational motion period. The logic of the closed loop which is used in the validation simulations is elaborated upon in Algorithm 1. In this algorithm, 𝒕𝒕\boldsymbol{t}bold_italic_t is the user-defined time vector for the guidance (see Fig. 1), 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT is the required final dimensional ROE vector, and ϵitalic-ϵ\epsilonitalic_ϵ is a tunable threshold.

Input: 𝒕,𝒚f,ϵ,𝜶~c,0,𝜶~d,0𝒕subscript𝒚𝑓italic-ϵsubscript~𝜶𝑐0subscript~𝜶𝑑0\boldsymbol{t},\;\boldsymbol{y}_{f},\;\epsilon,\;\tilde{\boldsymbol{\alpha}}_{% c,0},\;\tilde{\boldsymbol{\alpha}}_{d,0}bold_italic_t , bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT , italic_ϵ , over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , 0 end_POSTSUBSCRIPT , over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_d , 0 end_POSTSUBSCRIPT
for k=0m𝑘0𝑚k=0\to mitalic_k = 0 → italic_m do
       tk,tk+1subscript𝑡𝑘subscript𝑡𝑘1absentt_{k},\;t_{k+1}\leftarrowitalic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT ← Elements with indices k(k+1)𝑘𝑘1k\to\left(k+1\right)italic_k → ( italic_k + 1 ) in 𝒕𝒕\boldsymbol{t}bold_italic_t;
       NoUpdateFlagfalseNoUpdateFlagfalse\text{NoUpdateFlag}\leftarrow\text{false}NoUpdateFlag ← false;
       if k=0𝑘0k=0italic_k = 0 then
             GuidanceFlagtrue;𝒕k𝒕;𝒚predformulae-sequenceGuidanceFlagtrueformulae-sequencesubscript𝒕𝑘𝒕subscript𝒚pred\text{GuidanceFlag}\leftarrow\text{true};\hfill\boldsymbol{t}_{k}\leftarrow% \boldsymbol{t};\hfill\boldsymbol{y}_{\text{pred}}\leftarrow\boldsymbol{\infty}GuidanceFlag ← true ; bold_italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← bold_italic_t ; bold_italic_y start_POSTSUBSCRIPT pred end_POSTSUBSCRIPT ← bold_∞;
            
      else
             tk1subscript𝑡𝑘1absentt_{k-1}\leftarrowitalic_t start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT ← Element with index (k1)𝑘1\left(k-1\right)( italic_k - 1 ) in 𝒕𝒕\boldsymbol{t}bold_italic_t;
             𝒙~c,k,𝜶~c,ksubscript~𝒙𝑐𝑘subscript~𝜶𝑐𝑘absent\tilde{\boldsymbol{x}}_{c,k},\;\tilde{\boldsymbol{\alpha}}_{c,k}\leftarrowover~ start_ARG bold_italic_x end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT , over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT ← Propagate chief’s orbit tk1tksubscript𝑡𝑘1subscript𝑡𝑘t_{k-1}\to t_{k}italic_t start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT → italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT;
             if k𝑘kitalic_k is even then
                   GuidanceFlagtrueGuidanceFlagtrue\text{GuidanceFlag}\leftarrow\text{true}GuidanceFlag ← true;
                   𝒕ksubscript𝒕𝑘absent\boldsymbol{t}_{k}\leftarrowbold_italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← Elements (k+2)last𝑘2last\left(k+2\right)\to\textbf{last}( italic_k + 2 ) → last in 𝒕𝒕\boldsymbol{t}bold_italic_t;
                   𝒚predsubscript𝒚predabsent\boldsymbol{y}_{\text{pred}}\leftarrowbold_italic_y start_POSTSUBSCRIPT pred end_POSTSUBSCRIPT ← Column 2222 in 𝐘ksubscript𝐘𝑘\mathbf{Y}_{k}bold_Y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT;
                   𝒙~d,k,𝜶~d,ksubscript~𝒙𝑑𝑘subscript~𝜶𝑑𝑘absent\tilde{\boldsymbol{x}}_{d,k},\;\tilde{\boldsymbol{\alpha}}_{d,k}\leftarrowover~ start_ARG bold_italic_x end_ARG start_POSTSUBSCRIPT italic_d , italic_k end_POSTSUBSCRIPT , over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_d , italic_k end_POSTSUBSCRIPT ← Propagate deputy tk1tksubscript𝑡𝑘1subscript𝑡𝑘t_{k-1}\to t_{k}italic_t start_POSTSUBSCRIPT italic_k - 1 end_POSTSUBSCRIPT → italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT;
                  
            else
                   GuidanceFlagfalseGuidanceFlagfalse\text{GuidanceFlag}\leftarrow\text{false}GuidanceFlag ← false;
                  
            
      𝜶c,kOsc2Mean(𝜶~c,k)subscript𝜶𝑐𝑘Osc2Meansubscript~𝜶𝑐𝑘\boldsymbol{\alpha}_{c,k}\leftarrow\text{Osc2Mean}\left(\tilde{\boldsymbol{% \alpha}}_{c,k}\right)bold_italic_α start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT ← Osc2Mean ( over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT );
      
      if GuidanceFlag then
             𝜶d,kOsc2Mean(𝜶~d,k)subscript𝜶𝑑𝑘Osc2Meansubscript~𝜶𝑑𝑘\boldsymbol{\alpha}_{d,k}\leftarrow\text{Osc2Mean}\left(\tilde{\boldsymbol{% \alpha}}_{d,k}\right)bold_italic_α start_POSTSUBSCRIPT italic_d , italic_k end_POSTSUBSCRIPT ← Osc2Mean ( over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_d , italic_k end_POSTSUBSCRIPT );
             𝒙˘c,k,𝜶˘c,ksubscript˘𝒙𝑐𝑘subscript˘𝜶𝑐𝑘absent\breve{\boldsymbol{x}}_{c,k},\;\breve{\boldsymbol{\alpha}}_{c,k}\leftarrowover˘ start_ARG bold_italic_x end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT , over˘ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT ← Apply Eq. 15 on 𝜶c,ksubscript𝜶𝑐𝑘{\boldsymbol{\alpha}}_{c,k}bold_italic_α start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT;
             𝒚˘ksubscript˘𝒚𝑘absent\breve{\boldsymbol{y}}_{k}\leftarrowover˘ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← Apply Eq. 17 on 𝜶c,ksubscript𝜶𝑐𝑘{\boldsymbol{\alpha}}_{c,k}bold_italic_α start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT and 𝜶d,ksubscript𝜶𝑑𝑘{\boldsymbol{\alpha}}_{d,k}bold_italic_α start_POSTSUBSCRIPT italic_d , italic_k end_POSTSUBSCRIPT;
             if 𝐲˘k𝐲predϵnormsubscript˘𝐲𝑘subscript𝐲preditalic-ϵ\left\|\breve{\boldsymbol{y}}_{k}-\boldsymbol{y}_{\text{pred}}\right\|\geq\epsilon∥ over˘ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT - bold_italic_y start_POSTSUBSCRIPT pred end_POSTSUBSCRIPT ∥ ≥ italic_ϵ then
                   𝐘k,𝐅ksubscript𝐘𝑘subscript𝐅𝑘absent\mathbf{Y}_{k},\;\mathbf{F}_{k}\leftarrowbold_Y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , bold_F start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← Solve Problem 2 using 𝒕ksubscript𝒕𝑘\boldsymbol{t}_{k}bold_italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, 𝒚˘ksubscript˘𝒚𝑘\breve{\boldsymbol{y}}_{k}over˘ start_ARG bold_italic_y end_ARG start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT;
                   if Solver did not succeed then
                         if k=0𝑘0k=0italic_k = 0 then
                               /* Problem is infeasible for the given 𝒕𝒕\boldsymbol{t}bold_italic_t vector */
                               break;
                        NoUpdateFlagtrueNoUpdateFlagtrue\text{NoUpdateFlag}\leftarrow\text{true}NoUpdateFlag ← true;
                  
            else
                   NoUpdateFlagtrueNoUpdateFlagtrue\text{NoUpdateFlag}\leftarrow\text{true}NoUpdateFlag ← true;
                  
            if NoUpdateFlag then
                   /* Sticking to the previous guidance profile */
                   𝐘ksubscript𝐘𝑘absent\mathbf{Y}_{k}\leftarrowbold_Y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← Columns 22absent2\to2 → last in 𝐘k2subscript𝐘𝑘2\mathbf{Y}_{k-2}bold_Y start_POSTSUBSCRIPT italic_k - 2 end_POSTSUBSCRIPT;
                   𝐅ksubscript𝐅𝑘absent\mathbf{F}_{k}\leftarrowbold_F start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ← Columns 22absent2\to2 → last in 𝐅k2subscript𝐅𝑘2\mathbf{F}_{k-2}bold_F start_POSTSUBSCRIPT italic_k - 2 end_POSTSUBSCRIPT;
                  
            𝒇k|k+1rsubscriptsuperscript𝒇𝑟conditional𝑘𝑘1absent\boldsymbol{f}^{r}_{k|k+1}\leftarrowbold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ← Column 00 in 𝐅ksubscript𝐅𝑘\mathbf{F}_{k}bold_F start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, divided by acMsubscript𝑎𝑐𝑀\frac{a_{c}}{M}divide start_ARG italic_a start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_ARG start_ARG italic_M end_ARG;
            
      else
             𝒇k|k+1rsubscriptsuperscript𝒇𝑟conditional𝑘𝑘1absent\boldsymbol{f}^{r}_{k|k+1}\leftarrowbold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ← 0 ;
            
      𝒇˘k|k+1rsubscriptsuperscript˘𝒇𝑟conditional𝑘𝑘1absent\breve{\boldsymbol{f}}^{r}_{k|k+1}\leftarrowover˘ start_ARG bold_italic_f end_ARG start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ← Apply Eq. 19 and saturation on 𝒇k|k+1rsubscriptsuperscript𝒇𝑟conditional𝑘𝑘1{\boldsymbol{f}}^{r}_{k|k+1}bold_italic_f start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT;
       𝒇˘k|k+1isubscriptsuperscript˘𝒇𝑖conditional𝑘𝑘1absent\breve{\boldsymbol{f}}^{i}_{k|k+1}\leftarrowover˘ start_ARG bold_italic_f end_ARG start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT ← Rotate 𝒇˘k|k+1rsubscriptsuperscript˘𝒇𝑟conditional𝑘𝑘1\breve{\boldsymbol{f}}^{r}_{k|k+1}over˘ start_ARG bold_italic_f end_ARG start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT from 𝔽rsuperscript𝔽𝑟\mathbb{F}^{r}blackboard_F start_POSTSUPERSCRIPT italic_r end_POSTSUPERSCRIPT to 𝔽isuperscript𝔽𝑖\mathbb{F}^{i}blackboard_F start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT using 𝒙˘c,ksubscript˘𝒙𝑐𝑘\breve{\boldsymbol{x}}_{c,k}over˘ start_ARG bold_italic_x end_ARG start_POSTSUBSCRIPT italic_c , italic_k end_POSTSUBSCRIPT;
       𝒙~d,k+1,𝜶~d,k+1subscript~𝒙𝑑𝑘1subscript~𝜶𝑑𝑘1absent\tilde{\boldsymbol{x}}_{d,k+1},\;\tilde{\boldsymbol{\alpha}}_{d,k+1}\leftarrowover~ start_ARG bold_italic_x end_ARG start_POSTSUBSCRIPT italic_d , italic_k + 1 end_POSTSUBSCRIPT , over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_d , italic_k + 1 end_POSTSUBSCRIPT ← Propagate deputy tktk+1subscript𝑡𝑘subscript𝑡𝑘1t_{k}\to t_{k+1}italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT → italic_t start_POSTSUBSCRIPT italic_k + 1 end_POSTSUBSCRIPT with constant thrust 𝒇˘k|k+1isubscriptsuperscript˘𝒇𝑖conditional𝑘𝑘1\breve{\boldsymbol{f}}^{i}_{k|k+1}over˘ start_ARG bold_italic_f end_ARG start_POSTSUPERSCRIPT italic_i end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_k | italic_k + 1 end_POSTSUBSCRIPT;
      
Algorithm 1 Simulated control loop

The first guidance profile is conceivably calculated before the maneuver starting time, t0subscript𝑡0t_{0}italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. As suggested by Algorithm 1, the trajectory might need to be optimized during the execution of the maneuver, and this is exactly when the importance of including Tsafetysubscript𝑇safetyT_{\text{safety}}italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT within Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT becomes apparent. While Tsafetysubscript𝑇safetyT_{\text{safety}}italic_T start_POSTSUBSCRIPT safety end_POSTSUBSCRIPT guarantees that Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is sufficient for the most stringent attitude redirection maneuver as Eq. 14 suggests, it is also used to optimize the next guidance profile if one needs to be optimized, for example before t2subscript𝑡2t_{2}italic_t start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT or t4subscript𝑡4t_{4}italic_t start_POSTSUBSCRIPT 4 end_POSTSUBSCRIPT (see Fig. 1), which is very valuable from the practical point of view.

To test the performance of the closed loop system using the proposed guidance scheme, it has been benchmarked against the MPC proposed in [14]. The Out-Of-Plane (OOP) maneuver in [14] is chosen for the benchmark because such maneuvers can give a clear insight about the fuel-optimality (ΔVabsentΔ𝑉\equiv\;\Delta V≡ roman_Δ italic_V-optimality for uni-directional propulsion systems) of the control algorithm since only thrust in the normal direction is required. In fact, the exact locations (in terms of ucsubscript𝑢𝑐u_{c}italic_u start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT) in which impulsive thrust should be provided for a ΔVΔ𝑉\Delta Vroman_Δ italic_V-optimal OOP maneuver can be calculated analytically [7], which makes it easy for a human eye to recognise ΔVΔ𝑉\Delta Vroman_Δ italic_V-optimal thrust profiles. For the low-thrust case, the thrust in the normal direction is expected to be distributed evenly around these locations for the control profile to be close to ΔVΔ𝑉\Delta Vroman_Δ italic_V-optimality, while the thrust components in the radial and transversal directions are expected to be around zero. The initial and final dimensional ROE vectors for benchmark maneuver as well as the chief’s initial orbit are drawn from [14] to be 𝒚0=[0 0 273 0 10 70]msubscript𝒚0superscriptdelimited-[]0027301070m\boldsymbol{y}_{0}=\left[0\;0\;273\;0\;10\;70\right]^{\intercal}\;\text{m}bold_italic_y start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = [ 0 0 273 0 10 70 ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT m, 𝒚f=[0 0 273 0 400 120]msubscript𝒚𝑓superscriptdelimited-[]002730400120m\boldsymbol{y}_{f}=\left[0\;0\;273\;0\;400\;120\right]^{\intercal}\;\text{m}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = [ 0 0 273 0 400 120 ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT m, and 𝜶~c,0=[6828km 0 105 0 78 0]subscript~𝜶𝑐0superscriptdelimited-[]6828kmsuperscript 0superscript105superscript078superscript 0\tilde{\boldsymbol{\alpha}}_{c,0}=\left[6828\;\text{km}\;0^{\circ}\;10^{-5}\;0% \;78^{\circ}\;0^{\circ}\right]^{\intercal}over~ start_ARG bold_italic_α end_ARG start_POSTSUBSCRIPT italic_c , 0 end_POSTSUBSCRIPT = [ 6828 km 0 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT 10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT 0 78 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT 0 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT. A summary of the parameters used in the benchmarck maneuver is provided in Table 2. All the parameters that are not reported are identical to the ones in Table 1 except for the length of the forced translational motion periods, which is set to Tf=0.3orbitssubscript𝑇𝑓0.3orbitsT_{f}=0.3\;\text{orbits}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = 0.3 orbits for the first 6666 orbits of the maneuver and to Tf=0.1orbitssubscript𝑇𝑓0.1orbitsT_{f}=0.1\;\text{orbits}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = 0.1 orbits for the final orbit to allow for a more precise approach to the target relative orbit.

Table 2: Benchmark simulation parameters
tft0subscript𝑡𝑓subscript𝑡0t_{f}-t_{0}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT   [orbits] σ𝒓dσ𝒓c[m]subscript𝜎subscript𝒓𝑑subscript𝜎subscript𝒓𝑐delimited-[]m\sigma_{\boldsymbol{r}_{d}}\equiv\sigma_{\boldsymbol{r}_{c}}\;[\text{m}]italic_σ start_POSTSUBSCRIPT bold_italic_r start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_POSTSUBSCRIPT ≡ italic_σ start_POSTSUBSCRIPT bold_italic_r start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT [ m ] σ𝒗dσ𝒗c[m/s]subscript𝜎subscript𝒗𝑑subscript𝜎subscript𝒗𝑐delimited-[]ms\sigma_{\boldsymbol{v}_{d}}\equiv\sigma_{\boldsymbol{v}_{c}}\;[\text{m}/\text{% s}]italic_σ start_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_POSTSUBSCRIPT ≡ italic_σ start_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT end_POSTSUBSCRIPT [ m / s ] σ𝒚[m/s]subscript𝜎𝒚delimited-[]ms\sigma_{\boldsymbol{y}}\;[\text{m}/\text{s}]italic_σ start_POSTSUBSCRIPT bold_italic_y end_POSTSUBSCRIPT [ m / s ] ζpe[arcs]subscript𝜁pedelimited-[]arcs\zeta_{\text{pe}}\;[\text{arcs}]italic_ζ start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT [ arcs ] ϵ[m]italic-ϵdelimited-[]m\epsilon\;[\text{m}]italic_ϵ [ m ]
7777 10101010 0.50.50.50.5 1111 25252525 5555

It is important to note that while tft0subscript𝑡𝑓subscript𝑡0t_{f}-t_{0}italic_t start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT - italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, Tfsubscript𝑇𝑓T_{f}italic_T start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, Tnsubscript𝑇𝑛T_{n}italic_T start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT, and ϵitalic-ϵ\epsilonitalic_ϵ are tunable parameters, the values of σ𝒓dsubscript𝜎subscript𝒓𝑑\sigma_{\boldsymbol{r}_{d}}italic_σ start_POSTSUBSCRIPT bold_italic_r start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_POSTSUBSCRIPT, σ𝒗dsubscript𝜎subscript𝒗𝑑\sigma_{\boldsymbol{v}_{d}}italic_σ start_POSTSUBSCRIPT bold_italic_v start_POSTSUBSCRIPT italic_d end_POSTSUBSCRIPT end_POSTSUBSCRIPT and ζpesubscript𝜁pe\zeta_{\text{pe}}italic_ζ start_POSTSUBSCRIPT pe end_POSTSUBSCRIPT are extracted from the specification sheets of Triton-X even if the benchmark maneuver is assuming a different satellite.

The dimensional ROE profile generated by the proposed closed loop system as well as that which is generated by the reference control scheme (the one proposed in [14]) are depicted in Fig. 11. It is clear that the two control algorithms could achieve the final required dimensional ROE vector, 𝒚fsubscript𝒚𝑓\boldsymbol{y}_{f}bold_italic_y start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, at the end of the maneuver at approximately the same time.

Refer to caption
Figure 11: Closed-loop dimensional ROE profile

A comparison of the thrust profiles, projected to the RTN frame, between the proposed and the reference controllers is presented in Fig. 12. Since the maneuver is an OOP one, only thrust in the normal direction is expected to be exerted, however, one can notice that the reference control algorithm does occasionally fire in the transversal direction. The proposed as well as the reference controllers can be seen to provide almost no thrust in the radial direction. While this happens in the reference controller because a hard constraint is imposed on the radial thrust to be exactly zero, the proposed approach does not use radial thrust simply because it is optimal to not use it, as expected for this type of simulation scenarios. Furthermore, in Fig. 12 the two controllers are shown to distribute the available thrust around the ΔVΔ𝑉\Delta Vroman_Δ italic_V-optimal locations since they are both ΔVΔ𝑉\Delta Vroman_Δ italic_V-optimal algorithms.

Refer to caption
Figure 12: Closed-loop thrust profile in the RTN frame

Two key performance metrics are compared for both controllers, the proposed and the reference, in Section 5. The tables suggests that although the proposed algorithm uses more total ΔVΔ𝑉\Delta Vroman_Δ italic_V, ΔVtotΔsubscript𝑉tot\Delta V_{\text{tot}}roman_Δ italic_V start_POSTSUBSCRIPT tot end_POSTSUBSCRIPT, than the reference one, the terminal error of the proposed controller is much less than that of the reference.

Table 3: Comparison between the proposed and the reference MPCs
Terminal 𝒚𝒚\boldsymbol{y}bold_italic_y error [m]delimited-[]m[\text{m}][ m ] ΔVtot[m/s]Δsubscript𝑉totdelimited-[]ms\Delta V_{\text{tot}}\;[\text{m}/\text{s}]roman_Δ italic_V start_POSTSUBSCRIPT tot end_POSTSUBSCRIPT [ m / s ]
Proposed [0.60.10.71.10.30.3]superscriptmatrix0.60.10.71.10.30.3\begin{bmatrix}-0.6&-0.1&0.7&1.1&-0.3&0.3\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL - 0.6 end_CELL start_CELL - 0.1 end_CELL start_CELL 0.7 end_CELL start_CELL 1.1 end_CELL start_CELL - 0.3 end_CELL start_CELL 0.3 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT 0.650.650.650.65
Reference [3.69.21.42.02.91.6]superscriptmatrix3.69.21.42.02.91.6\begin{bmatrix}3.6&-9.2&1.4&-2.0&2.9&-1.6\end{bmatrix}^{\intercal}[ start_ARG start_ROW start_CELL 3.6 end_CELL start_CELL - 9.2 end_CELL start_CELL 1.4 end_CELL start_CELL - 2.0 end_CELL start_CELL 2.9 end_CELL start_CELL - 1.6 end_CELL end_ROW end_ARG ] start_POSTSUPERSCRIPT ⊺ end_POSTSUPERSCRIPT 0.50.50.50.5
Refer to caption
Figure 13: Elapsed time to solve problem 2

Since the proposed control scheme is working much like an MPC, state prediction over the prediction horizon needs to be done recurrently through the guidance function, however, the guidance does not need to be run at each optimization step (see Fig. 10). It is evident in Algorithm 1 that the guidance is run only when the distance (in the dimensional ROE space) between current state and its prediction by the previous guidance profile is more than the threshold, ϵitalic-ϵ\epsilonitalic_ϵ. To show how often the guidance problem needs to be solved over the benchmark simulation, the elapsed time for every guidance run is depicted in Fig. 13, where an elapsed time of exactly zero means that the guidance is skipped and the previous guidance profile is used. It is important to note that the elapsed time in Fig. 13 correspond to the time it takes to construct and solve the problem using the OSQP solver [25] interfaced with Matlab and run on an 8-core Intel Core i9-10885H processor. It is clear from Fig. 13 that the elapsed time for every guidance run is getting smaller as the simulation advances since the size of the problem is getting smaller as the guidance problem is always solved from the current to the final time.

6 Conclusion

This note proposes a novel approach for guidance of an underactuated spacecraft to perform relative orbit corrections with respect to a reference satellite. The guidance scheme not only considers the typical constraints of the main spacecraft while performing the maneuver, but it also considers the dynamical constraint which arises from the satellite being equipped with a single electric thruster. Thanks to parameterizing the relative dynamics between the two spacecraft using the quasi non-singular relative orbital elements, the guidance problem was formulated as a quadratic programming problem, which, if feasible, is guaranteed to have exactly one solution that can be found using high-performance standard quadratic programming solvers. The proposed guidance scheme shows numerous inherent merits which include fuel-optimality and the ability to support long no-thrust periods arising from operational constraints. The paper also proposes a model-predictive-control-like scheme to close the control loop which does not require the guidance optimization to run at the beginning of each prediction horizon. This closed loop system has been validated via high fidelity numerical simulations in which navigation and actuators’ errors and constraints are emulated, and its performance is benchmarcked against that of a reference controller from the literature. The proposed guidance and control algorithms have shown superior performance over the reference controller for the benchmark simulation in terms of terminal tracking errors.

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.

References

  • Miller et al. [2021] Miller, S., Walker, M. L. R., Agolli, J., and Dankanich, J., “Survey and Performance Evaluation of Small-Satellite Propulsion Technologies,” Journal of Spacecraft and Rockets, Vol. 58, No. 1, 2021, pp. 222–231. 10.2514/1.A34774.
  • Krejci and Lozano [2018] Krejci, D., and Lozano, P., “Space Propulsion Technology for Small Spacecraft,” Proceedings of the IEEE, Vol. 106, No. 3, 2018, pp. 362–378. 10.1109/JPROC.2017.2778747.
  • Helmeid et al. [2022] Helmeid, E., Buursink, J., Poppe, M., Ries, P., and Gales, M., “The Integrated Avionics Unit - performance, innovation and application,” Poster presentation at The 4S Symposium, 2022. Vilamoura, Portugal, 2022.
  • Stanzione and Sabbatinelli [2018] Stanzione, V., and Sabbatinelli, B., “PLATiNO Project: a new Italian multi-application small satellite platform for highly competitive missions.” 69th International Astronautical Congress (IAC), International Astronautical Federation, Bremen, Germany, 2018.
  • Floberghagen et al. [2011] Floberghagen, R., Fehringer, M., Lamarre, D., Muzi, D., Frommknecht, B., Steiger, C., Piñeiro, J., and Da Costa, A., “Mission design, operation and exploitation of the gravity field and steady-state ocean circulation explorer mission,” Journal of Geodesy, Vol. 85, 2011, pp. 749–758.
  • Larsson et al. [2011] Larsson, R., Noteborn, R., Bodin, P., Simone, D., Karlsson, T., and Carlsson, A., “Autonomous Formation Flying in LEO - Seven months of routine formation flying with frequent reconfigurations,” 4th International Conference on Spacecraft Formation Flying Missions & Technologies, 2011. URL https://elib.dlr.de/74364/.
  • Gaias and D’Amico [2015] Gaias, G., and D’Amico, S., “Impulsive Maneuvers for Formation Reconfiguration Using Relative Orbital Elements,” Journal of Guidance, Control, and Dynamics, Vol. 38, No. 6, 2015, pp. 1036–1049. 10.2514/1.G000189.
  • Di Mauro et al. [2018] Di Mauro, G., Bevilacqua, R., Spiller, D., Sullivan, J., and D’Amico, S., “Continuous maneuvers for spacecraft formation flying reconfiguration using relative orbit elements,” Acta Astronautica, Vol. 153, 2018, pp. 311–326.
  • Chernick and D’Amico [2018] Chernick, M., and D’Amico, S., “New Closed-Form Solutions for Optimal Impulsive Control of Spacecraft Relative Motion,” Journal of Guidance, Control, and Dynamics, Vol. 41, No. 2, 2018, pp. 301–319. 10.2514/1.G002848.
  • Scala et al. [2021] Scala, F., Gaias, G., Colombo, C., and Martín-Neira, M., “Design of optimal low-thrust manoeuvres for remote sensing multi-satellite formation flying in low Earth orbit,” Advances in Space Research, Vol. 68, No. 11, 2021, pp. 4359–4378.
  • De Vittori et al. [2022] De Vittori, A., Palermo, M. F., Lizia, P. D., and Armellin, R., “Low-Thrust Collision Avoidance Maneuver Optimization,” Journal of Guidance, Control, and Dynamics, Vol. 45, No. 10, 2022, pp. 1815–1829. 10.2514/1.G006630.
  • Gaias and Ardaens [2018] Gaias, G., and Ardaens, J.-S., “Flight Demonstration of Autonomous Noncooperative Rendezvous in Low Earth Orbit,” Journal of Guidance, Control, and Dynamics, Vol. 41, No. 6, 2018, pp. 1337–1354. 10.2514/1.G003239.
  • Gaias et al. [2015] Gaias, G., D’Amico, S., and Ardaens, J.-S., “Generalised multi-impulsive manoeuvres for optimum spacecraft rendezvous in near-circular orbit,” International Journal of Space Science and Engineering, Vol. 3, No. 1, 2015, pp. 68–88. 10.1504/IJSPACESE.2015.069361.
  • Belloni et al. [2023] Belloni, E., Silvestrini, S., Prinetto, J., and Lavagna, M., “Relative and absolute on-board optimal formation acquisition and kee** for scientific activities in high-drag low-orbit environment,” Advances in Space Research, 2023. https://doi.org/10.1016/j.asr.2023.07.051.
  • Mahfouz et al. [2023a] Mahfouz, A., Gaias, G., Venkateswara, D. M. K. K., and Voos, H., “Autonomous Optimal Absolute Orbit Kee** Through Formation-Flying Techniques,” Preprints, 2023a. 10.20944/preprints202310.1189.v1.
  • Ross [2006] Ross, I. M., “Space Trajectory Optimization and L1-Optimal Control Problems,” Modern Astrodynamics, Elsevier Astrodynamics Series, Vol. 1, edited by P. Gurfil, Butterworth-Heinemann, 2006, Chap. 6, pp. 155–VIII. https://doi.org/10.1016/S1874-9305(07)80008-2.
  • Morgan et al. [2014] Morgan, D., Chung, S.-J., and Hadaegh, F. Y., “Model Predictive Control of Swarms of Spacecraft Using Sequential Convex Programming,” Journal of Guidance, Control, and Dynamics, Vol. 37, No. 6, 2014, pp. 1725–1740. 10.2514/1.G000218.
  • Menzio et al. [2022] Menzio, D., Mahfouz, A., Vedova, D., et al., “Formation design of an inter-satellite link demonstration mission,” Proceedings of the 11th International Workshop on Satellite Constellations & Formation Flying, Milan, IT, 2022.
  • Mahfouz et al. [2022] Mahfouz, A., Mezio, D., Dalla-Vedova, F., and Voos, H., “Relative State Estimation for LEO Formations with Large Inter-satellite Distances Using Single-Frequency GNSS Receivers,” Proceedings of the 11th International Workshop on Satellite Constellations & Formation Flying, Milan, IT, 2022.
  • Mahfouz et al. [2023b] Mahfouz, A., Mezio, D., Dalla-Vedova, F., and Voos, H., “GNSS-based baseline vector determination for widely separated cooperative satellites using L1-only receivers,” Advances in Space Research, 2023b. https://doi.org/10.1016/j.asr.2023.06.037.
  • Vallado [2001] Vallado, D. A., Fundamentals of astrodynamics and applications, Vol. 12, Springer Science & Business Media, 2001.
  • Gaias et al. [2020] Gaias, G., Colombo, C., and Lara, M., “Analytical Framework for Precise Relative Motion in Low Earth Orbits,” Journal of Guidance, Control, and Dynamics, Vol. 43, No. 5, 2020, pp. 915–927. 10.2514/1.G004716.
  • Boyd and Vandenberghe [2004] Boyd, S. P., and Vandenberghe, L., Convex optimization, Cambridge university press, 2004, Chap. 4, pp. 136–137.
  • Camino et al. [2019] Camino, J.-T., Artigues, C., Houssin, L., and Mourgues, S., “Linearization of Euclidean norm dependent inequalities applied to multibeam satellites design,” Computational Optimization and Applications, Vol. 73, 2019, pp. 679–705. 10.1007/s10589-019-00083-z.
  • Stellato et al. [2020] Stellato, B., Banjac, G., Goulart, P., Bemporad, A., and Boyd, S., “OSQP: an operator splitting solver for quadratic programs,” Mathematical Programming Computation, Vol. 12, No. 4, 2020, pp. 637–672. 10.1007/s12532-020-00179-2.
  • D’Amico et al. [2009] D’Amico, S., Ardaens, J.-S., and Montenbruck, O., “Navigation of formation flying spacecraft using GPS: the PRISMA technology demonstration,” Proceedings of the 22nd International Technical Meeting of the Satellite Division of The Institute of Navigation (ION GNSS 2009), 2009, pp. 1427–1441.