1 INTRODUCTION

The topical problem of optimizing trajectories of a spacecraft equipped with an electro-jet propulsion system (EJPS) is considered [1]. Such an engine provides high exhaust velocities (tens of kilometers per second), and, therefore, it is, generally, more efficient than a chemical one. The task is to find the control of motion of a spacecraft that commits a transfer, for a fixed time, using an EJPS with a perfectly controlled thrust, in a central gravitational field, from one specified position, characterized by a spacecraft’s coordinates and velocities, into another specified position. In this case, it is necessary to maximize the value of the spacecraft’s final mass. It should be noted that, for practical calculations, spacecraft mathematical models are often applied, in which EJPS thrust is limited in magnitude and changes stepwise. However, the results, obtained within the framework of a perfectly controlled thrust model, are also very important since they depend on the trajectory rather than on a spacecraft’s mass parameters, and, therefore, they can be used at early stages of design when technical spacecraft characteristics are still in the refinement stage.

The analysis of numerous studies, devoted to the problem of optimizing transfers with a perfectly controlled thrust [110], allows us to conclude that this problem is multi-extreme in its nature. At the same time, finding optimal solutions using mathematical methods [1114], which do not take into account specific features of a particular task is possible [7], but is associated with significant calculation expenses and requires additional investigations. Another approach to the problem is based on constructing a series of extreme trajectories that differ from each other by an integer number of revolutions around the gravitational center and in a subsequent analysis of the results [8].

In this study, optimal control is found within the framework of the second approach. In this case, the following method is proposed for constructing extreme trajectories with a specified angular range. At the first stage of calculations, the zero approximation (the composite transporting trajectory) is determined, which represents the solution of an auxiliary optimization problem in impulse formulation. To construct this solution, one uses a method based on the Bellman optimality principle [15]. Then, a “plausible” assumption is made that the solution of the original continuous problem, at a specified angular range, lies in the vicinity of a composite transporting trajectory. To find this solution, at subsequent calculation stages, one uses the method of local variations (the problem is solved in linear formulation) [16] and the local descent method (the nonlinear boundary value problem of Pontryagin’s maximum principle is solved in the accurate formulation) [17].

The mentioned scheme was proposed by N.N. Moiseev [18] for finding the extremum of a non-convex additive function. In [46], a set of optimal trajectories of spacecraft transfer from Earth to Apophis was obtained for a wide range of boundary conditions based on this scheme. At the same time, in the course of the calculations, some shortcomings were identified that are inherent in the computational procedures described in [4–6] (low accuracy of determining the base path, high computational costs), as well as limitations of the search scheme itself (impossibility to find several different solutions for the same boundary conditions). The method proposed in this paper is free from the aforementioned disadvantages.

Some features of practical application of the mentioned method are illustrated by the example of solving one particular problem of optimizing spacecraft transfer to Apophis while approaching Earth.

2 PROBLEM FORMULATION AND DISCUSSION

Consider the motion of a spacecraft with a perfectly controlled EJPS in a central gravitational field. Let some rectangular inertial coordinate system OXYZ and the mathematical model of spacecraft motion be specified:

$$\frac{{d{\mathbf{v}}}}{{dt}} = {\mathbf{f}}\left( {\mathbf{r}} \right) + {\boldsymbol{\mathbf{\alpha} }},\,\,\,\,\frac{{d{\mathbf{r}}}}{{dt}} = {\mathbf{v}},$$
(1)

where \({\mathbf{r}} = {{\left[ {x,y,z} \right]}^{{\text{T}}}}\) and \({\mathbf{v}} = {{\left[ {{{v}_{x}},{{v}_{y}},{{v}_{z}}} \right]}^{{\text{T}}}}\) is the radius vector and velocity vector of a spacecraft in OXYZ;\({\mathbf{f}}\left( {\mathbf{r}} \right) = - {\mu }\frac{{\mathbf{r}}}{{{{r}^{3}}}}\) is the gravitational force acceleration; \(r = \left| {\mathbf{r}} \right|\); \({\mu }\) is the gravitational parameter; \({\boldsymbol{\mathbf{\alpha }}}\) is the vector of controlling acceleration of a spacecraft; and \(t\) is the current time. It is assumed that transfer start time \({\tau }\), transfer termination time \(\vartheta \), initial conditions

$${{{\mathbf{r}}}_{{\tau }}} = {\mathbf{r}}\left( {\tau } \right),\,\,\,\,{{{\mathbf{v}}}_{{\tau }}} = {\mathbf{v}}\left( {\tau } \right),$$
(2)

and the final conditions of spacecraft trajectory

$${{{\mathbf{r}}}_{\vartheta }} = {\mathbf{r}}\left( \vartheta \right),\,\,\,\,{{{\mathbf{v}}}_{\vartheta }} = {\mathbf{v}}\left( \vartheta \right)$$
(3)

are known, and there are no restrictions on vector \({\boldsymbol{\mathbf{\alpha} }}\). In accordance with [3], the mass of a spacecraft with an ion engine at moment \(\vartheta \) is determined by the formula:

$${{m}_{{SC}}}\left( \vartheta \right) = \frac{{2{{N}_{{SC}}}}}{{2{{N}_{{SC}}} + {{m}_{{SC}}}\left( {\tau } \right)J}}{{m}_{{SC}}}\left( {\tau } \right),$$

where \({{m}_{{SC}}}\left( {\tau } \right)\) is the spacecraft’s initial mass; \({{N}_{{SC}}}\) is the time-constant power of an ion engine; and \(J\) is the functional of form:

$$J = \int\limits_{\tau }^\vartheta {{{{\left| {\boldsymbol{\mathbf{\alpha }}} \right|}}^{2}}dt} .$$
(4)

It is obvious that, all other things being equal, the smaller the value of functional (4), the greater the quantity \({{m}_{{SC}}}\left( \vartheta \right)\).

The minimum of (4), apparently, can be found only numerically. Here, the most accurate numerical results in this area were obtained using Pontryagin’s maximum principle [19]. Applying the maximum principle to (1)–(4), we write the conjugate system of differential equations:

$$\frac{{d{{{\boldsymbol{\mathbf{\psi }}}}_{v}}}}{{dt}} = - {{{\boldsymbol{\mathbf{\psi} }}}_{r}},\,\,\,\,\frac{{d{{{\boldsymbol{\mathbf{\psi }}}}_{r}}}}{{dt}} = - {{\left( {\frac{{\partial {\mathbf{f}}\left( {\mathbf{r}} \right)}}{{\partial {\mathbf{r}}}}} \right)}^{{\text{T}}}}{{{\boldsymbol{\mathbf{\psi }}}}_{v}},$$
(5)

where \({{{\boldsymbol{\mathbf{\psi} }}}_{r}}\) and \({{{\boldsymbol{\mathbf{\psi }}}}_{v}}\) are vectors of conjugate variables, as well as the formula for determining \(\boldsymbol{{\mathbf{\alpha }}}\left( t \right)\):

$$\boldsymbol{{\mathbf{\alpha} }} = {{{{{\boldsymbol{\mathbf{\psi} }}}_{v}}} \mathord{\left/ {\vphantom {{{{{\boldsymbol{\mathbf{\psi} }}}_{v}}} 2}} \right. \kern-0em} 2}.$$
(6)

We introduce into consideration: \({\boldsymbol{\mathbf{\psi} }}\left( t \right)\,\,\, = \)\({{\left[ {{{{\boldsymbol{\mathbf{\psi }}}}_{v}}{{{\left( t \right)}}^{{\text{T}}}},{{{\boldsymbol{\mathbf{\psi }}}}_{r}}{{{\left( t \right)}}^{{\text{T}}}}} \right]}^{{\text{T}}}}.\) Then, the minimization of functional (4) is reduced to selecting a certain vector of initial conditions \({{{\boldsymbol{\mathbf{\psi} }}}^{e}} = {\boldsymbol{\mathbf{\psi} }}\left( {\tau } \right)\), which represents the solution of a two-point boundary value problem, i.e., it translates (1), (5) from (2) to (3).

Unfortunately, for the models described by nonlinear systems of differential equations of type (1), (5), Pontryagin’s maximum principle is a necessary but not sufficient optimality condition [19]. In practice, this means that, from a number of possible solutions \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\) of boundary value problem (1)–(3), (5), (6), only a few actually impart a minimum to functional (4) [7]. In addition, it should be borne in mind that the optimum of (4) can be achieved on several various trajectories of system (1)–(3), (5), (6) [3, 7] simultaneously. Thus, in the general case, the problem of determining the global minimum of (4) for (1)–(3) is currently unsolvable. Nevertheless, there exist various approaches that allow obtaining some results that are of great practical importance. One of these approaches is based on using the multi-extreme optimization methods [1114]. These include: (1) the multi-start methods, deterministic or stochastic; (2) the metaheuristic methods, namely, genetic algorithms, the algorithms of particles in a flock, etc.; (3) the methods of transition from one local minimum into another, such as the heavy ball algorithm; the Branin method, etc. For (1)–(3), (5), (6), all of these methods will be reduced to generating a series of initial (zero) approximations \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\) of conjugate variables \({\boldsymbol{\mathbf{\psi} }}\left( {\tau } \right)\) and their subsequent updating one way or another. It should be noted, however, that it is very difficult to specify the permissible ranges of changing \({\boldsymbol{\mathbf{\psi }}}\left( {\tau } \right)\). In addition, the nonlinear boundary value problem of the maximum principle for (1)–(3), (5), (6) is extremely sensitive to the selection of \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\), especially when the resulting trajectory passes in a relative proximity to the gravitational center. Thus, the direct application of known multi-extreme optimization algorithms to the problem under study can be associated with significant calculation expenses.

By this reason, another approach to solving the problem was accepted [8]. This approach is based on the fact that, under specified boundary conditions and transfer time, the optimum of (4) is often achieved on trajectories (1)–(3), (5), (6), which differ from each other by integer number \(\Omega \) of revolutions around the attracting center. Therefore, for various values of angular range of transfer \(\delta \varphi \left( {\omega } \right)\), where \({\omega } = {\text{0}},...,\Omega \), one can construct corresponding extremes (1)–(3), (5), (6) and compare the obtained values of functional (4) between each other, or, in other words, to solve the following optimization problem.

Problem 1. It is required to find vectors \({{{\mathbf{\psi }}}^{e}}\left( {\omega } \right)\) that provide the specified value of angular range \(\delta \varphi \left( {\omega } \right)\), when (1), (5), (6) move from (2) to (3), and form manifold

$${{{\mathbf{\Psi }}}_{{opt}}} = \left\{ {{{{\boldsymbol{\mathbf{\psi} }}}_{{opt}}}} \right\},$$
(7)

the elements of which represent various \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\left( {\omega } \right)\), on which functional (4) reaches its minimum, quantity \({{J}_{{opt}}}\), which is also subject to determination.

In this paper, the algorithm for constructing extreme trajectories with a specified angular range is proposed to solve Problem 1. This algorithm implements the searching strategy, formulated by N.N. Moiseev in [18], and consists of three main stages. At the first stage, the zero approximation (the composite transporting trajectory) is composed of the sections of Keplerian orbits connecting reference points \({{P}_{i}}\)\(\left( {i = 0,..,N} \right)\) the position of which is determined in the process of solving the auxiliary problem in the impulse formulation by the dynamic programming method (DPM). It should be noted that the DPM is subject to the “curse of dimension,” and, in practice, its modification is widely applied, namely, the differential dynamic programming method (DDPM). The latter one is based on expanding the Bellman recurrent relation into the Taylor series with respect to some reference trajectory [2022]. However, in our case, the solution of an auxiliary problem (more correctly, its finite-dimensional approximation) is constructed with using the classical DPM, which allows one to find the global extremum of an additive function on the corresponding calculation grid, even if this function is not unimodal in the calculation domain [18]. It is possible to obtain such a solution without significant calculation resources by accepting certain assumptions that allow mitigating the curse of dimension. In our case, the optimal spacecraft transfer trajectories are assumed to be close to the OXY plane (for example, to the ecliptic plane), and \(\delta \varphi \left( {{\omega }{\text{,}}t} \right)\) monotonously grows (i.e., the change of the motion direction is impossible). Usually, in practice, the transversal component of the spacecraft velocity vector is, as a rule, very large, and the maneuver, during which this component would change its sign, is rarely optimal. However, such a situation is possible (especially if a significant change of the plane of motion is necessary) [23]. As a result, the mentioned assumptions certainly restrict the field of application of this technique.

At the second stage of calculations, the “plausible” assumption is made that the solution of the original continuous problem, with a specified angular range, is located near the composite transporting trajectory. By this reason, in its vicinity, the first-approximation trajectories, describing the motion of a linearized system of spacecraft equations, are constructed using the method of local variations and the transporting trajectory method (TTM). And, finally, at the third stage, the initial-approximation trajectories are used, by the local descent method, to accurately solve the nonlinear boundary value problem of the maximum principle (1)–(3), (5), (6). In other words, accurate spatial solution (1)–(3), (5), (6) is found on the basis of using the planar initial approximation. Then, quantities (4), obtained for various \(\delta \varphi \left( {\omega } \right)\) values, are compared with each other to detect \({{J}_{{opt}}}\).

3 FORMATION OF COMPOSITE TRANSPORTING TRAJECTORIES

Assume the spacecraft basically moves in the OXY plane of the OXYZ coordinate system (i.e., the \(z\), \({{v}_{z}}\) components can be ignored at this stage of calculations). We assume the position of some reference point \({{P}_{i}}\) to be completely defined by parameter:

$${{\varphi }_{i}} = \frac{{{{\varphi }_{\vartheta }}\left( {\omega } \right) - {{\varphi }_{{\tau }}}}}{N}i + {{\varphi }_{{\tau }}},$$
(8)

and by vector \({\mathbf{x}}\left( {{{\varphi }_{i}}} \right) = {{\left[ {r\left( {{{\varphi }_{i}}} \right),t\left( {{{\varphi }_{i}}} \right)} \right]}^{{\text{T}}}}\), where

$$\begin{gathered} {{\varphi }_{{\tau }}} = {{\left( {{\text{arctan}}\left( {\frac{{{{y}_{{\tau }}}}}{{{{x}_{{\tau }}}}}} \right)} \right)}_{{0 - 2{\pi }}}}, \\ {{\varphi }_{\vartheta }}\left( {\omega } \right) = \left\{ \begin{gathered} {{\varphi }_{T}} + 2{\pi \omega }{\text{,}}\,\,\,\,{\text{if}}\,\,\,\,{{\varphi }_{T}} > {{\varphi }_{{\tau }}}, \hfill \\ {{\varphi }_{T}} + 2{\pi }\left( {{\omega } + {\text{ 1}}} \right){\text{,}}\,\,\,\,{\text{if}}\,\,\,\,{{\varphi }_{T}} \leqslant {{\varphi }_{{\tau }}}, \hfill \\ \end{gathered} \right. \\ {{\varphi }_{T}} = {{\left( {{\text{arctan}}\left( {\frac{{{{y}_{\vartheta }}}}{{{{x}_{\vartheta }}}}} \right)} \right)}_{{0{\kern 1pt} - {\kern 1pt} 2{\pi }}}},\,\,\,\,i = 0,..,N, \\ \end{gathered} $$

\(N\) is the number of reference points, \(r\left( {{{\varphi }_{i}}} \right)\) and \(t\left( {{{\varphi }_{i}}} \right)\) are quantities \(r\) and \(t\) for \({{\varphi }_{i}}\), symbol \({{\left( {...} \right)}_{{0 - 2{\pi }}}}\) implies that the value of a sought angle must be calculated accounting for the signs of the numerator and denominator of the arctangent argument and must lie in the range from 0 to \(2{\pi }\) radians.

Let also:

C.1. For \(i = 0,...,N - 1\) the following inequality is valid: \(t\left( {{{\varphi }_{{i + 1}}}} \right) > t\left( {{{\varphi }_{i}}} \right).\)

C.2. Point \({{P}_{0}}\) is characterized by parameter \({{\varphi }_{0}} = {{\varphi }_{{\tau }}}\) and vector \({\mathbf{x}}\left( {{{\varphi }_{0}}} \right) = {{\left[ {\sqrt {x_{{\tau }}^{2} + y_{{\tau }}^{2}} ,{\tau }} \right]}^{{\text{T}}}}.\)

C.3. Point \({{P}_{N}}\) is characterized by parameter \({{\varphi }_{N}} = \)\({{\varphi }_{\vartheta }}\left( {\omega } \right)\) and vector \({\mathbf{x}}\left[ {{{\varphi }_{N}}} \right] = {{\left[ {\sqrt {x_{\vartheta }^{2} + y_{\vartheta }^{2}} ,\vartheta } \right]}^{{\text{T}}}}.\)

Relation (8) specifies the trajectories, in which angle \({{\varphi }_{i}}\) increases monotonously from \({{P}_{i}}\) to \({{P}_{{i + 1}}}\). Following [18], we introduce into consideration elementary operation \({{{\mathbf{E}}}_{x}}\left( {{{\varphi }_{i}},{\mathbf{x}}\left( {{{\varphi }_{i}}} \right),{{\varphi }_{{i + 1}}},{\mathbf{x}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right)\), which puts vectors \({\mathbf{u}}\left( {{{\varphi }_{i}}} \right)\), \({\mathbf{w}}\left( {{{\varphi }_{{i + 1}}}} \right)\) of spacecraft velocities at points \({{P}_{i}}\) and \({{P}_{{i + 1}}}\) into correspondence to each pair \(\left\{ {{{P}_{i}},{{P}_{{i + 1}}}} \right\}\). Here, vectors \({\mathbf{u}}\left( {{{\varphi }_{i}}} \right)\) and \({\mathbf{w}}\left( {{{\varphi }_{{i + 1}}}} \right)\) are calculated under the condition that the spacecraft transfers from \({{P}_{i}}\) to \({{P}_{{i + 1}}}\) over a Keplerian orbit. In this paper, \({\mathbf{u}}\left( {{{\varphi }_{i}}} \right)\) and \({\mathbf{w}}\left( {{{\varphi }_{{i + 1}}}} \right)\) vectors are determined on the basis of using the quite efficient and reliable algorithm, described in [24]. At nodal points \({{P}_{0}}\), \({{P}_{1}}\), ..., \({{P}_{N}}\) of a composite transporting trajectory, the spacecraft must acquire the corresponding controlling impulses:

$$\Delta {\mathbf{v}}\left( {{{\varphi }_{i}}} \right) = \left\{ \begin{gathered} {\mathbf{u}}\left( {{{\varphi }_{0}}} \right) - {{\left[ {{{v}_{x}}\left( \tau \right),{{v}_{y}}\left( \tau \right)} \right]}^{{\text{T}}}},\,\,\,\,{\text{if}}\,\,\,i{\text{ }} = 0, \hfill \\ {\mathbf{u}}\left( {{{\varphi }_{i}}} \right) - {\mathbf{w}}\left( {{{\varphi }_{i}}} \right),\,\,\,\,{\text{if}}\,\,\,i{\text{ }} = {\text{ 1}}{\text{,}} \ldots {\text{,}}N - 1, \hfill \\ {{\left[ {{{v}_{x}}\left( \vartheta \right),{{v}_{y}}\left( \vartheta \right)} \right]}^{{\text{T}}}} - {\mathbf{w}}\left( {{{\varphi }_{N}}} \right),\,\,\,{\text{if}}\,\,\,\,i{\text{ }} = N. \hfill \\ \end{gathered} \right.$$
(9)

It is proposed to specify \({\mathbf{x}}\left( {{{\varphi }_{i}}} \right)\) in such a manner, that the sum of magnitudes of impulses (9)

$$\Delta v\left( {{{\varphi }_{0}},{{\varphi }_{N}}} \right) = \sum\limits_{i = 0}^N {\left| {\Delta {\mathbf{v}}\left( {{{\varphi }_{i}}} \right)} \right|} $$
(10)

be minimal. Thus, the construction of a composite transporting trajectory can be reduced to solving the following problem.

Problem 2. It is required to find vectors \({\mathbf{x}}\left( {{{\varphi }_{i}}} \right)\) that satisfy conditions C.1–C.3 and impart a minimum to functional (10) at a specified value of \({\omega }\).

To find \({\mathbf{x}}\left( {{{\varphi }_{i}}} \right)\), we will use the DPM [15, 18]. We perform a two-step, finite-dimensional approximation of Problem 2. At the first stage, we will correspond to each angle \({{\varphi }_{i}}\), \(i = 1, \ldots ,N - 1\), the manifold \({{{\mathbf{X}}}_{i}}\) consisting of \(L \cdot M\) vectors (or nodes, otherwise) \({{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right),\) such that: \({{{\mathbf{X}}}_{i}} = \left\{ {{{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right) = {{{\left[ {{{r}^{{\left( l \right)}}},{{t}^{{\left( m \right)}}}} \right]}}^{{\text{T}}}}:} \right.\)\(l = 1,..,L,\)\(m = 1, \ldots ,M,\)\(\left. {_{{^{{}}}}^{{^{{}}}}j = M\left( {l - 1} \right) + m} \right\}\), where \({{r}^{{\left( l \right)}}}\left( {{{\varphi }_{i}}} \right)\) and \({{t}^{{\left( m \right)}}}\left( {{{\varphi }_{i}}} \right)\) are the known discrete values of quantities \(r\left( {{{\varphi }_{i}}} \right)\) and \(t\left( {{{\varphi }_{i}}} \right)\). In addition, we specify \({{{\mathbf{X}}}_{0}} = \left\{ {{{{\mathbf{x}}}^{{\left( 1 \right)}}}\left( {{{\varphi }_{0}}} \right)} \right\}\) and \({{{\mathbf{X}}}_{N}} = \left\{ {{{{\mathbf{x}}}^{{\left( 1 \right)}}}\left( {{{\varphi }_{N}}} \right)} \right\}\), where \({{{\mathbf{x}}}^{{\left( 1 \right)}}}\left( {{{\varphi }_{0}}} \right)\) coincides with \({\mathbf{x}}\) from C.2, and \({{{\mathbf{x}}}^{{\left( 1 \right)}}}\left( {{{\varphi }_{N}}} \right)\) coincides with \({\mathbf{x}}\) from C. 3. At the second stage, for all allowable pairs \({{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right) \in {{{\mathbf{X}}}_{i}}\) and \({{{\mathbf{x}}}^{{\left( k \right)}}}\left( {{{\varphi }_{{i + 1}}}} \right) \in {{{\mathbf{X}}}_{{i + 1}}}\), where \(i = 1, \ldots ,N - 2\); j = \(1, \ldots ,L \cdot M\); and \(k = 1,..,L \cdot M\), by using elementary operation \({{{\mathbf{E}}}_{x}}\left( {{{\varphi }_{i}},{{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right)} \right.,\)\(\left. {{{\varphi }_{{i + 1}}},{{{\mathbf{x}}}^{{\left( k \right)}}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right)\), we determine velocities \({{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{i}}} \right)\) of spacecraft departure from \({{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right)\), as well as velocities \({{{\mathbf{w}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{{i + 1}}}} \right)\) of a spacecraft approaching \({{{\mathbf{x}}}^{{\left( k \right)}}}\left( {{{\varphi }_{{i + 1}}}} \right)\). And, then, we form manifolds \({{{\mathbf{U}}}_{i}} = \left\{ {{{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{i}}} \right)} \right\},\)\({{{\mathbf{W}}}_{{i + 1}}} = \left\{ {{{{\mathbf{w}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right\},\) consisting of \({{\left( {L \cdot M} \right)}^{2}}\) elements. Here and hereafter the first superscript indicates the initial node and the second superscript indicates the final node of a transfer. Similarly, we construct \({{{\mathbf{U}}}_{0}}\), \({{{\mathbf{W}}}_{1}}\) for \(i = 0\) and \({{{\mathbf{U}}}_{{N - 1}}}\), \({{{\mathbf{W}}}_{N}}\) for \(i = N - 1\), which include \(L \cdot M\) elements.

The step-by-step procedure for constructing the solution of Problem 2, on the basis of \({{{\mathbf{X}}}_{i}}\), \({{{\mathbf{U}}}_{i}}\), and \({{{\mathbf{W}}}_{i}}\), is as follows. Initially, we let \(i = 1\) and, for all indices \(j = 1,..,L \cdot M\) and \(k = 1,..,L \cdot M\), we calculate:

$$\begin{gathered} \Delta {{v}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{1}}} \right) \\ = \left| {{{{\mathbf{u}}}^{{\left( {1,j} \right)}}}\left( {{{\varphi }_{0}}} \right) - {{{\left[ {{{v}_{x}}\left( {\tau } \right),{{v}_{y}}\left( {\tau } \right)} \right]}}^{{\text{T}}}}} \right| \\ + \,\,\left| {{{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{1}}} \right) - {{{\mathbf{w}}}^{{\left( {1,j} \right)}}}\left( {{{\varphi }_{1}}} \right)} \right|, \\ \end{gathered} $$

where \({{{\mathbf{u}}}^{{\left( {1,j} \right)}}}\left( {{{\varphi }_{0}}} \right) \in {{{\mathbf{U}}}_{0}}\), \({{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{1}}} \right) \in {{{\mathbf{U}}}_{1}}\), \({{{\mathbf{w}}}^{{\left( {1,j} \right)}}}\left( {{{\varphi }_{1}}} \right) \in {{{\mathbf{W}}}_{1}}\). Then, we specify initial values \(i = 2,\)\(j = k = 1\), check all allowable nodes from manifold \({{{\mathbf{X}}}_{{i - 1}}}\), and, for each \({{{\mathbf{x}}}^{{\left( n \right)}}}\left( {{{\varphi }_{{i - 1}}}} \right)\), where \(n = 1,..,L \cdot M\), we, on the basis of specified indices \(n\) and \(j\), find vector \({{{\mathbf{w}}}^{{\left( {n,j} \right)}}}\left( {{{\varphi }_{i}}} \right) \in {{{\mathbf{W}}}_{i}}.\) Then, in accordance with the DPM, the optimal value of functional \(\Delta {{v}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{i}}} \right)\) and sought node \({{{\mathbf{x}}}^{{\left( n \right)}}}\left( {{{\varphi }_{{i - 1}}}} \right)\), on which this value is achieved, can be found by means of the following recurrent relations:

$$\Delta {{v}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{i}}} \right) = \left\{ \begin{gathered} \mathop {\min }\limits_{n = 1,L \cdot M} \left[ {\Delta {{v}^{{\left( {n,j} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{{i - 1}}}} \right) + \left| {{{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{i}}} \right) - {{{\mathbf{w}}}^{{\left( {n,j} \right)}}}\left( {{{\varphi }_{i}}} \right)} \right|} \right],\,\,\,\,2 \leqslant i < N, \hfill \\ \mathop {\min }\limits_{n = 1,L \cdot M} \left[ {\Delta {{v}^{{\left( {n,1} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right) + \left| {{{{\left[ {{{v}_{x}}\left( \vartheta \right),{{v}_{y}}\left( \vartheta \right)} \right]}}^{{\text{T}}}} - {{{\mathbf{w}}}^{{\left( {n,1} \right)}}}\left( {{{\varphi }_{N}}} \right)} \right|} \right],\,\,\,\,i = N. \hfill \\ \end{gathered} \right.$$

Looking over all allowable \(j\), \(k\) and, moving successively from \(i = 2\) to \(i = N,\) we determine required trajectory \({{P}_{0}}\),\({{P}_{1}}\),..,\({{P}_{N}}\). Within the framework of a finite-dimensional approximation of Problem 2, such a trajectory imparts a global minimum to functional (10) on calculation grid \(\left\{ {{{\varphi }_{i}},{{{\mathbf{X}}}_{i}}:i = 0,...,N} \right\}\), even if (10) is not unimodal in the calculation domain.

We will show that the mentioned method of finding \({{P}_{0}}\), \({{P}_{1}}\), …,\({{P}_{N}}\) requires lower calculation expenses than the technique described in [46]. Following [18], we introduce into consideration the coordinate grid \(\left\{ {t,{{v}_{x}},{{v}_{y}},x,y} \right\},\) such that the number of points on each scale \({{v}_{x}}\), \({{v}_{y}}\), \(x\), and \(y\) is equal to \(K\). Then, on interval \(\left[ {{\tau } = {{t}_{i}},\vartheta = {{t}_{{i + 1}}}} \right],\) where \({{t}_{i}},{{t}_{{i + 1}}}\) are neighboring points on the time scale, the value of functional (4) is determined by eight varying parameters: \({{v}_{x}}\left( {{{t}_{i}}} \right),\)\({{v}_{y}}\left( {{{t}_{i}}} \right),\)\(x\left( {{{t}_{i}}} \right),\)\(y\left( {{{t}_{i}}} \right),\)\({{v}_{x}}\left( {{{t}_{{i + 1}}}} \right),\)\({{v}_{y}}\left( {{{t}_{{i + 1}}}} \right)\), \(x\left( {{{t}_{{i + 1}}}} \right)\), and \(y\left( {{{t}_{{i + 1}}}} \right)\) and must be calculated \({{K}^{8}}\) times. In this case, within the framework of Problem 2, functional (10) depends on six varying parameters: \(r\left( {{{\varphi }_{i}}} \right),\)\(t\left( {{{\varphi }_{i}}} \right),\)\(r\left( {{{\varphi }_{{i + 1}}}} \right),\)\(t\left( {{{\varphi }_{{i + 1}}}} \right),\)\({{{\mathbf{u}}}_{1}}\left( {{{\varphi }_{{i + 1}}}} \right),\) and \({{{\mathbf{u}}}_{2}}\left( {{{\varphi }_{{i + 1}}}} \right).\) If we assume that the number of calculation points on each scale \(r\), \(t\), \({{{\mathbf{u}}}_{1}}\), and \({{{\mathbf{u}}}_{2}}\) is also equal to K, then, on interval \(\left[ {{{\varphi }_{i}},{{\varphi }_{{i + 1}}}} \right]\), quantity \(\Delta v\) must be calculated \({{K}^{6}}\) times.

The algorithm for solving Problem 2 is described in details below.

Algorithm for Solving Problem 2

Stage 1. Initialization.

1.1. We specify \({\omega }\) (the number of additional revolutions around the gravitational center), store \({{{\mathbf{x}}}^{{\left( 1 \right)}}}\left( {{{\varphi }_{0}}} \right)\) = \({{\left[ {\sqrt {x_{\tau }^{2} + y_{\tau }^{2}} ,{\tau }} \right]}^{{\text{T}}}}\) and \({{{\mathbf{x}}}^{{\left( 1 \right)}}}\left( {{{\varphi }_{N}}} \right)\) = \({{\left[ {\sqrt {x_{\vartheta }^{2} + y_{\vartheta }^{2}} ,\vartheta } \right]}^{{\text{T}}}}.\)

1.2. We let indices \(i = 1\), \(l = m = 1\).

1.3. We calculate \(j = M\left( {l - 1} \right) + m\) and store \({{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right) = {{\left[ {{{r}^{{\left( l \right)}}},{{t}^{{\left( m \right)}}}} \right]}^{{\text{T}}}}.\)

1.4. If \(m = M\), we pass to step 1.5; otherwise, we assume \(m = m + 1\), and pass to step 1.3.

1.5. If \(l = L\), we pass to step 1.6; otherwise, we assume \(l = l + 1\), \(m = 1\), and pass to step 1.3.

1.6. If \(i = N - 1\), we pass to step 1.7; otherwise, we assume \(i = i + 1\), \(l = m = 1\), and pass to step 1.3.

1.7. We let indices \(i = j = k = 1\).

1.8. We extract \({\mathbf{x}}_{2}^{{\left( j \right)}}\left( {{{\varphi }_{i}}} \right)\) and \({\mathbf{x}}_{2}^{{\left( k \right)}}\left( {{{\varphi }_{{i + 1}}}} \right)\). We check that \({\mathbf{x}}_{2}^{{\left( k \right)}}\left( {{{\varphi }_{{i + 1}}}} \right) > {\mathbf{x}}_{2}^{{\left( j \right)}}\left( {{{\varphi }_{i}}} \right)\) (see C.1). If this condition is met, we pass to step 1.9, otherwise, to step 1.11.

1.9. Using elementary operation \({{{\mathbf{E}}}_{x}}\left( {{{\varphi }_{i}},{{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right),} \right.\)\(\left. {{{\varphi }_{{i + 1}}},{{{\mathbf{x}}}^{{\left( k \right)}}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right)\), we calculate and store vectors \({{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{i}}} \right)\) and \({{{\mathbf{w}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{{i + 1}}}} \right).\)

1.10. We initialize the value of \(\Delta {{v}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{i}}} \right)\) by a large positive number.

1.11. If \(k = L \cdot M\) or \(i = N - 1\), we pass to step 1.12; otherwise, we assume \(k = k + 1\) and pass to step 1.8.

1.12. If \(j = L \cdot M\), we pass to step 1.13, otherwise, we assume \(j = j + 1\), \(k = 1\), and pass to step 1.8.

1.13. If \(i = N - 1\), we exit from the cycle, otherwise, we assume \(i = i + 1\),\(j = 1\), \(k = 1\), and pass to step 1.8.

Stage 2. First step.

2.1. We let indices \(j = k = 1\).

2.2. We extract \({\mathbf{x}}_{2}^{{\left( j \right)}}\left( {{{\varphi }_{0}}} \right)\) and \({\mathbf{x}}_{2}^{{\left( k \right)}}\left( {{{\varphi }_{1}}} \right).\) We check that \({\mathbf{x}}_{2}^{{\left( k \right)}}\left( {{{\varphi }_{1}}} \right) > {\mathbf{x}}_{2}^{{\left( j \right)}}\left( {{{\varphi }_{0}}} \right)\) (see C.1). If this condition is met, we pass to step 2.3, otherwise, to step 2.4.

2.3. Using \({{{\mathbf{E}}}_{x}}\left( {{{\varphi }_{0}},{{{\mathbf{x}}}^{{\left( 1 \right)}}}\left( {{{\varphi }_{0}}} \right),{{\varphi }_{1}},{{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{1}}} \right)} \right)\), we find \({{{\mathbf{u}}}^{{\left( {1,j} \right)}}}\left( {{{\varphi }_{0}}} \right),\)\({{{\mathbf{w}}}^{{\left( {1,j} \right)}}}\left( {{{\varphi }_{1}}} \right)\) and store \(\Delta {{v}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{1}}} \right)\) = \(\left| {{{{\mathbf{u}}}^{{\left( {1,j} \right)}}}\left( {{{\varphi }_{0}}} \right) - {{{\left[ {{{v}_{x}}\left( \tau \right),{{v}_{y}}\left( \tau \right)} \right]}}^{{\text{T}}}}} \right|\) + \(\left| {{{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{1}}} \right) - {{{\mathbf{w}}}^{{\left( {1,j} \right)}}}\left( {{{\varphi }_{1}}} \right)} \right|.\)

2.4. If \(k = L \cdot M\), we pass to step 2.5, otherwise, we assume \(k = k + 1\), and pass to step 2.2.

2.5. If \(j = L \cdot M\), we exit from the cycle, otherwise, we assume \(j = j + 1\), \(k = 1\), and pass to step 2.2.

Stage 3. Next steps.

3.1. We let indices \(i = 2\), \(j = k = n = 1\).

3.2. We extract \({\mathbf{x}}_{2}^{{\left( n \right)}}\left( {{{\varphi }_{{i - 1}}}} \right)\) and \({\mathbf{x}}_{2}^{{\left( j \right)}}\left( {{{\varphi }_{i}}} \right).\) We check that \({\mathbf{x}}_{2}^{{\left( j \right)}}\left( {{{\varphi }_{i}}} \right) > {\mathbf{x}}_{2}^{{\left( n \right)}}\left( {{{\varphi }_{{i - 1}}}} \right)\) (see C.1). If this condition is met, we pass to step 3.3, otherwise, to step 3.5.

3.3. We extract \(\Delta {{v}^{{\left( {n,j} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{{i - 1}}}} \right),\)\({{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{i}}} \right),\)\({{{\mathbf{w}}}^{{\left( {n,j} \right)}}}\left( {{{\varphi }_{i}}} \right).\) We calculate \(\Delta v = \Delta {{v}^{{\left( {n,j} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{{i - 1}}}} \right)\) + \(\left| {{{{\mathbf{u}}}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{i}}} \right) - {{{\mathbf{w}}}^{{\left( {n,j} \right)}}}\left( {{{\varphi }_{i}}} \right)} \right|.\)

3.4. If it is found that \(\Delta v < \Delta {{v}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{i}}} \right),\) we store \(\Delta {{v}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{i}}} \right) = \Delta v\) and \({{{\eta }}^{{\left( {j,k} \right)}}}\left( {{{\varphi }_{i}}} \right) = n.\)

3.5. If, \(k = L \cdot M\), or \(i = N - 1\), we pass to step 3.6, otherwise, we assume \(k = k + 1\), and pass to step 3.2.

3.6. If \(n = L \cdot M\), we pass to step 3.7, otherwise, we assume \(n = n + 1\), \(k = 1\), and pass to step 3.2.

3.7. If \(j = L \cdot M,\) we pass to step 3.8; otherwise, we assume \(j = j + 1\), \(n = 1\), \(k = 1\), and pass to step 3.2.

3.8. If \(i = N - 1\), we exit from the cycle, otherwise, we assume \(i = i + 1\),\(j = 1\), \(n = 1\), \(k = 1\), and pass to step 3.2.

Stage 4. Final step.

4.1. We let index \(j = 1\).

4.2. We extract \({\mathbf{x}}_{2}^{{\left( j \right)}}\left( {{{\varphi }_{{N - 1}}}} \right).\) We check that \(\vartheta > {\mathbf{x}}_{2}^{{\left( j \right)}}\left( {{{\varphi }_{{N - 1}}}} \right)\) (see C.1). If this condition is met, we pass to step 4.2, otherwise, to step 4.4.

4.3. We extract \(\Delta {{v}^{{\left( {j,1} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right)\) and \({{{\mathbf{w}}}^{{\left( {j,1} \right)}}}\left( {{{\varphi }_{N}}} \right),\) then we calculate \(\Delta v = \Delta {{v}^{{\left( {j,1} \right)}}}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right)\) + \(\left| {{{{\left[ {{{v}_{x}}\left( \vartheta \right),{{v}_{y}}\left( \vartheta \right)} \right]}}^{{\text{T}}}} - {{{\mathbf{w}}}^{{\left( {j,1} \right)}}}\left( {{{\varphi }_{N}}} \right)} \right|.\)

4.4. If it is found that \(\Delta v < \Delta v\left( {{{\varphi }_{0}},{{\varphi }_{N}}} \right),\) we store \(\Delta v\left( {{{\varphi }_{0}},{{\varphi }_{N}}} \right) = \Delta v\) and \({{{\eta }}_{1}} = j.\)

4.5. If \(j = L \cdot M\), we exit from the cycle, otherwise, we assume \(j = j + 1\), and pass to step 4.2.

Stage 5. Construction of a trajectory.

5.1. We extract \({{{\eta }}_{1}}\). In accordance with C.3, we form point \({{P}_{N}}\).

5.2. We assume \(i = N - 1\), \({{{\eta }}_{2}} = 1.\)

5.3. We extract \({{{\mathbf{x}}}^{{\left( {{{{\eta }}_{1}}} \right)}}}\left( {{{\varphi }_{i}}} \right).\) We form point \({{P}_{i}}\), characterized by parameter \({{\varphi }_{i}}\), as well as by vector \({\mathbf{x}}\left( {{{\varphi }_{i}}} \right) = {{{\mathbf{x}}}^{{\left( {{{{\eta }}_{1}}} \right)}}}\left( {{{\varphi }_{i}}} \right).\)

5.4. We extract \({{{\eta }}^{{\left( {{{{\eta }}_{1}},{{{\eta }}_{2}}} \right)}}}\left( {{{\varphi }_{i}}} \right).\) We calculate \({{{\eta }}_{3}} = {{{\eta }}^{{\left( {{{{\eta }}_{1}},{{{\eta }}_{2}}} \right)}}}\left( {{{\varphi }_{i}}} \right),\)\({{{\eta }}_{2}} = {{{\eta }}_{1}},\)\({{{\eta }}_{1}} = {{{\eta }}_{3}}.\)

5.5. If \(i = 1\), we pass to step 5.6, otherwise, we assume \(i = i - 1\), and pass to step 5.3.

5.6. In accordance with C.2, we form point \({{P}_{0}}\) and exit the algorithm.

The composite transporting trajectory, passing through points \({{P}_{0}}\), \({{P}_{1}}\), …,\({{P}_{N}}\), is characterized by angular range \(\delta \varphi \left( {\omega } \right) = {{\varphi }_{\vartheta }}\left( {\omega } \right) - {{\varphi }_{{\tau }}}\) and is further used to find the first-approximation trajectory with control that is continuous on the interval \(\left[ {{\tau }{\text{,}}\vartheta } \right]\).

4 FORMATION OF THE FIRST-APPROXIMATION TRAJECTORY WITH CONTINUOUS CONTROL

We construct, in the vicinity of a composite transporting trajectory, the approximate trajectory of spacecraft transfer with continuous control over the entire time interval \(\left[ {{\tau }{\text{,}}\vartheta } \right]\). To do this, we generate one more system of reference points \({{Q}_{0}}\), \({{Q}_{1}}\), …, \({{Q}_{N}}\), lying entirely in the OXY plane, such that \({{Q}_{i}}\) are completely defined by angle (8), as well as by vector \({\mathbf{y}}\left( {{{\varphi }_{i}}} \right)\) = \({{\left[ {r\left( {{{\varphi }_{i}}} \right),t\left( {{{\varphi }_{i}}} \right),{{v}_{x}}\left( {{{\varphi }_{i}}} \right),{{v}_{y}}\left( {{{\varphi }_{i}}} \right)} \right]}^{{\text{T}}}}.\) We will initially assume that \({{Q}_{i}}\) are close to \({{P}_{0}}\), \({{P}_{1}}\), …,\({{P}_{N}}\) and are specified by formulas:

$$\begin{gathered} {{{\mathbf{y}}}_{{\lambda }}}\left( {{{\varphi }_{i}}} \right) = {{{\mathbf{x}}}_{{\lambda }}}\left( {{{\varphi }_{i}}} \right), \\ {{{\mathbf{y}}}_{{{\lambda } + 2}}}\left( {{{\varphi }_{i}}} \right) = \left\{ \begin{gathered} {{\left[ {{{v}_{x}}\left( {\tau } \right),{{v}_{y}}\left( {\tau } \right)} \right]}^{{\text{T}}}},\,\,\,\,{\text{if}}\,\,\,\,i{\text{ }} = 0, \hfill \\ \frac{{{{{\mathbf{u}}}_{{\lambda }}}\left( {{{{\left( {{{\varphi }_{i}}} \right)}}_{i}}} \right) + {{{\mathbf{w}}}_{{\lambda }}}\left( {{{{\left( {{{\varphi }_{i}}} \right)}}_{i}}} \right)}}{2},\,\,\,\, \hfill \\ {\text{if}}\,\,i{\text{ }} = {\text{ 1}}{\text{,}} \ldots {\text{,}}N - 1, \hfill \\ {{\left[ {{{v}_{x}}\left( \vartheta \right),{{v}_{y}}\left( \vartheta \right)} \right]}^{{\text{T}}}},\,\,\,\,\,{\text{if}}\,\,\,\,i{\text{ }} = N. \hfill \\ \end{gathered} \right. \\ \end{gathered} $$
(11)

Here, \({\mathbf{x}}\left( {{{\varphi }_{i}}} \right)\) is known (see paragraph 5.3 of the algorithm for solving problem 2), and velocities \({\mathbf{u}}\left( {{{\varphi }_{i}}} \right)\)  and \({\mathbf{w}}\left( {{{\varphi }_{i}}} \right)\) can easily be obtained using \({{{\mathbf{E}}}_{x}}\left( {{{\varphi }_{i}},{\mathbf{x}}\left( {{{\varphi }_{i}}} \right),{{\varphi }_{{i + 1}}},{\mathbf{x}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right)\), \({\lambda } = 1,2.\)

Now we associate \({{Q}_{i}}\) and \({{Q}_{{i + 1}}}\) using elementary operation Exi, [y1i), y2i)]T, \({{\varphi }_{{i + 1}}},\)\(\left. {{{{\left[ {{{{\mathbf{y}}}_{1}}\left( {{{\varphi }_{{i + 1}}}} \right),{{{\mathbf{y}}}_{2}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right]}}^{{\text{T}}}}} \right)\), by Keplerian orbit and calculate corresponding \({\mathbf{u}}\left( {{{\varphi }_{i}}} \right)\) and \({\mathbf{w}}\left( {{{\varphi }_{{i + 1}}}} \right).\) On the i-th time interval \(t \in \left[ {{{{\tau }}_{i}},{{\vartheta }_{i}}} \right],\) where \({{{\tau }}_{i}} = {{{\mathbf{y}}}_{2}}\left( {{{\varphi }_{i}}} \right)\) and \({{\vartheta }_{i}} = {{{\mathbf{y}}}_{2}}\left( {{{\varphi }_{{i + 1}}}} \right),\) we linearize Eqs. (1) with respect to the indicated orbit, taking into account, that the function of changing its radius-vector \({{{\boldsymbol{\mathbf{\rho} }}}^{{\left( i \right)}}}\left( t \right)\) in time \(t \in \left[ {{{{\tau }}_{i}},{{\vartheta }_{i}}} \right]\) is known. Neglecting components \(z\), \({{v}_{z}}\), we get

$$\frac{{d(\delta {{{\mathbf{v}}}^{{\left( i \right)}}})}}{{dt}} = {\mathbf{A}}({{{\boldsymbol{\mathbf{\rho }}}}^{{\left( i \right)}}})\delta {{{\mathbf{r}}}^{{\left( i \right)}}} + {{{\boldsymbol{\mathbf{\alpha} }}}^{{\left( i \right)}}},\,\,\,\,\frac{{d(\delta {{{\mathbf{r}}}^{{\left( i \right)}}})}}{{dt}} = \delta {{{\mathbf{v}}}^{{\left( i \right)}}},$$
(12)

where \(\delta {\mathbf{v}}_{{\lambda }}^{{\left( i \right)}} = {\mathbf{v}}_{{\lambda }}^{{\left( i \right)}} - \frac{{d({\boldsymbol{\mathbf{\rho }}}_{{\lambda }}^{{\left( i \right)}})}}{{dt}},\)\(\delta {\mathbf{r}}_{{\lambda }}^{{\left( i \right)}} = {\mathbf{r}}_{{\lambda }}^{{\left( i \right)}} - {\boldsymbol{\mathbf{\rho} }}_{{\lambda }}^{{\left( i \right)}},\)\({\mathbf{A}}({{{\boldsymbol{\mathbf{\rho} }}}^{{\left( i \right)}}}) = \frac{{\mu }}{{{{{\left| {{{{\boldsymbol{\mathbf{\rho} }}}^{{\left( i \right)}}}} \right|}}^{3}}}}\left( {\frac{{3{{{\boldsymbol{\mathbf{\rho} }}}^{{\left( i \right)}}}{{{({{{\boldsymbol{\mathbf{\rho} }}}^{{\left( i \right)}}})}}^{{\text{T}}}}}}{{{{{\left| {{{{\boldsymbol{\mathbf{\rho} }}}^{{\left( i \right)}}}} \right|}}^{2}}}} - {\mathbf{E}}} \right),\)\({\mathbf{E}}\) is the identity matrix \({\lambda } = 1,2\). We calculate the initial and final conditions for (12) by formulas:

$$\delta {\mathbf{v}}_{{\lambda }}^{{\left( i \right)}}\left( {{{{\tau }}_{i}}} \right) = {{{\mathbf{y}}}_{{{\lambda } + 2}}}\left( {{{\varphi }_{i}}} \right) - {{{\mathbf{u}}}_{{\lambda }}}\left( {{{\varphi }_{i}}} \right),\,\,\,\,\delta {\mathbf{r}}_{{\lambda }}^{{\left( i \right)}}\left( {{{{\tau }}_{i}}} \right) = 0,$$
(13)

and also

$$\delta {\mathbf{v}}_{{\lambda }}^{{\left( i \right)}}\left( {{{\vartheta }_{i}}} \right) = {{{\mathbf{y}}}_{{{\lambda } + 2}}}\left( {{{\varphi }_{{i + 1}}}} \right) - {{{\mathbf{w}}}_{{\lambda }}}\left( {{{\varphi }_{{i + 1}}}} \right),\,\,\,\,\delta {\mathbf{r}}_{{\lambda }}^{{\left( i \right)}}\left( {{{\vartheta }_{i}}} \right) = 0.$$
(14)

Now we find function \({{{\boldsymbol{\mathbf{\alpha} }}}^{{\left( i \right)}}} = {{{\boldsymbol{\mathbf{\alpha} }}}^{{\left( i \right)}}}\left( t \right),\) which imparts a minimum to functional:

$${{J}_{i}} = \int\limits_{{{{\tau }}_{i}}}^{{{\vartheta }_{i}}} {{{{\left| {{{{\boldsymbol{\mathbf{\alpha} }}}^{{\left( i \right)}}}} \right|}}^{2}}dt} ,$$
(15)

subject to conditions (13), (14). Applying Pontryagin’s maximum principle, we obtain system of conjugate equations:

$$\frac{{d\left( {\delta {\boldsymbol{\mathbf{\psi} }}_{v}^{{\left( i \right)}}} \right)}}{{dt}} = - \delta {\boldsymbol{\mathbf{\psi} }}_{r}^{{\left( i \right)}},\,\,\,\,\frac{{d\left( {\delta {\boldsymbol{\mathbf{\psi }}}_{r}^{{\left( i \right)}}} \right)}}{{dt}} = - {\mathbf{A}}{{\left( {{{{\boldsymbol{\mathbf{\rho }}}}^{{\left( i \right)}}}} \right)}^{{\text{T}}}}\delta {\boldsymbol{\mathbf{\psi }}}_{v}^{{\left( i \right)}},$$
(16)

where \(\delta {\boldsymbol{\mathbf{\psi }}}_{r}^{{\left( i \right)}}\) and \(\delta {\boldsymbol{\mathbf{\psi} }}_{v}^{{\left( i \right)}}\) are vectors of conjugate variables, as well as relation:

$${{{\boldsymbol{\mathbf{\alpha }}}}^{{\left( i \right)}}} = {{\delta {\boldsymbol{\mathbf{\psi }}}_{v}^{{\left( i \right)}}} \mathord{\left/ {\vphantom {{\delta {\boldsymbol{\mathbf{\psi} }}_{v}^{{\left( i \right)}}} 2}} \right. \kern-0em} 2}.$$
(17)

Minimization of (15) is reduced to selecting the vector of initial conditions

$$\delta {{{\boldsymbol{\mathbf{\psi} }}}^{{\left( i \right)}}} = {{\left[ {\delta {\boldsymbol{\mathbf{\psi} }}_{v}^{{\left( i \right)}}{{{\left( {{{{\tau }}_{i}}} \right)}}^{{\text{T}}}},\delta {\boldsymbol{\mathbf{\psi} }}_{r}^{{\left( i \right)}}{{{\left( {{{{\tau }}_{i}}} \right)}}^{{\text{T}}}}} \right]}^{{\text{T}}}},$$

which transfers (12), (16), and (17) from (13) into (14). Since systems (12) and (16) are linear, \({{J}_{i}}\) and \(\delta {{{\boldsymbol{\mathbf{\psi} }}}^{{\left( i \right)}}}\) are calculated analytically based on the TTM [9]. Thus, we have introduced into consideration elementary operation \({{{\mathbf{E}}}_{y}}\left( {\varphi ,{\mathbf{y}}\left( {{{\varphi }_{i}}} \right),{{\varphi }_{{i + 1}}},{\mathbf{y}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right),\) which puts the value of functional (15) into correspondence to each pair of points \(\left\{ {{{Q}_{i}},{{Q}_{{i + 1}}}} \right\},\) where \(i = 0,..,N - 1\). Now we formulate the following problem.

Problem 3. It is required to find vectors \({\mathbf{y}}\left( {{{\varphi }_{i}}} \right),\)\(i = 1, \ldots ,N - 1\) that impart minimum:

$${{J}_{\Sigma }}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right) = \sum\limits_{i = 0}^{N - 1} {{{J}_{i}}} ,$$
(18)

provided that \({{J}_{i}}\) are determined using \({{{\mathbf{E}}}_{y}}\left( {{{\varphi }_{i}},{\mathbf{y}}\left( {{{\varphi }_{i}}} \right),{{\varphi }_{{i + 1}}},{\mathbf{y}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right).\)

Problem 3 will be solved numerically, using the method of local variations [16]. In accordance with [16], we will form vector \({\mathbf{h}}\), containing the steps of varying \({\mathbf{y}}\), and denote by symbols \(s\) and \({\lambda }\) the current number of the algorithm iteration, as well as the current index of component \({\mathbf{y}}\). Then, for \(s = 0\), \(i = 1\), \({\lambda } = {\text{1}}\), as well as for vector \({\mathbf{\delta }}\), in which the component with index \({\lambda }\) is equal to unity, and all remaining components are zeroes, we calculate:

$$\begin{gathered} \Phi _{i}^{ + } = {{{\mathbf{E}}}_{y}}\left( {{{\varphi }_{{i - 1}}},{\mathbf{y}}\left( {{{\varphi }_{{i - 1}}}} \right),{{\varphi }_{i}},{\mathbf{y}}\left( {{{\varphi }_{i}}} \right) + {\mathbf{\delta }} \cdot {\mathbf{h}}} \right) \\ + \,\,{{{\mathbf{E}}}_{y}}\left( {{{\varphi }_{i}},{\mathbf{y}}\left( {{{\varphi }_{i}}} \right) + {\mathbf{\delta }} \cdot {\mathbf{h}},{{\varphi }_{{i + 1}}},{\mathbf{y}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right), \\ \Phi _{i}^{0} = {{{\mathbf{E}}}_{y}}\left( {{{\varphi }_{{i - 1}}},{\mathbf{y}}\left( {{{\varphi }_{{i - 1}}}} \right),{{\varphi }_{i}},{\mathbf{y}}\left( {{{\varphi }_{i}}} \right)} \right) \\ + \,\,{{{\mathbf{E}}}_{y}}\left( {{{\varphi }_{i}},{\mathbf{y}}\left( {{{\varphi }_{i}}} \right),{{\varphi }_{{i + 1}}},{\mathbf{y}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right), \\ \Phi _{i}^{ - } = {{{\mathbf{E}}}_{y}}\left( {{{\varphi }_{{i - 1}}},{\mathbf{y}}\left( {{{\varphi }_{{i - 1}}}} \right),{{\varphi }_{i}},{\mathbf{y}}\left( {{{\varphi }_{i}}} \right) - {\mathbf{\delta }} \cdot {\mathbf{h}}} \right) \\ + \,\,{{{\mathbf{E}}}_{y}}\left( {{{\varphi }_{i}},{\mathbf{y}}\left( {{{\varphi }_{i}}} \right) - {\mathbf{\delta }} \cdot {\mathbf{h}},{{\varphi }_{{i + 1}}},{\mathbf{y}}\left( {{{\varphi }_{{i + 1}}}} \right)} \right). \\ \end{gathered} $$

Then:

$${\mathbf{y}}\left( {{{\varphi }_{i}}} \right) = \left\{ \begin{gathered} {\mathbf{y}}\left( {{{\varphi }_{i}}} \right),\,\,\,\,{\text{if}}\,\,\,\,\Phi _{i}^{0} \leqslant \Phi _{i}^{ + },\Phi _{i}^{0} \leqslant \Phi _{i}^{ - }, \hfill \\ {\mathbf{y}}\left( {{{\varphi }_{i}}} \right) + {\mathbf{\delta }} \cdot {\mathbf{h}},\,\,\,{\text{if}}\,\,\,\,\Phi _{i}^{ + } < \Phi _{i}^{0},\Phi _{i}^{ + } \leqslant \Phi _{i}^{ - }, \hfill \\ {\mathbf{y}}\left( {{{\varphi }_{i}}} \right) - {\mathbf{\delta }} \cdot {\mathbf{h}},\,\,\,{\text{if}}\,\,\,\,\Phi _{i}^{ - } < \Phi _{i}^{0},\Phi _{i}^{ - } < \Phi _{i}^{ + }. \hfill \\ \end{gathered} \right.$$
(19)

Sequentially increasing \(i\) up to \(N - 1\), we perform varying (19); initially, for the first component \({\mathbf{y}}\), then, for second one, etc. When all components \({\mathbf{y}}\) are varied and functional (18) has decreased, we let \(i = 1\), \({\lambda } = {\text{1}}\), and then repeat the procedure. In the opposite case, we check the stopping condition: \(s \geqslant S\), where \(S\) is the maximum allowable number of iterations \(s\). If the stopping condition is met, the process of determining the sought first-approximation trajectory can be considered complete. Otherwise, we should decrease the components of vector \({\mathbf{h}}\) by half, let \(s = s + 1\), \(i = 1\), \({\lambda } = {\text{1}}\) and repeat the iteration. The corresponding algorithm for solving Problem 3 is described below.

Algorithm for Solving Problem 3

Stage 1. Initialization.

1.1. We let index \(i = 0\).

1.2. We initialize \({\mathbf{y}}\left( {{{\varphi }_{i}}} \right)\) using formulas (11).

1.3. If \(i = N\), we pass to step 1.4; otherwise, we assume \(i = i + 1\), and pass to step 1.2.

1.4. We calculate \({{J}_{\Sigma }}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right)\) by formula (18). We store \({{J}_{\Sigma }}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right)\) and \({{J}_{\Sigma }} = {{J}_{\Sigma }}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right).\)

Stage 2. Varying.

2.1. We specify \(S\), as well as vector \({\mathbf{h}}\), and let indices \(s = 0\), \(i = 1\), and \({\lambda } = 1\).

2.2. We perform variation by formula (19). If the new value is \(\sum\nolimits_{i = 0}^{N - 1} {{{J}_{i}}} < {{J}_{\Sigma }}\), we store \({\mathbf{y}}\left( {{{\varphi }_{i}}} \right)\), \({{J}_{\Sigma }} = \sum\nolimits_{i = 0}^{N - 1} {{{J}_{i}}} \), as well as vectors \(\delta {{{\boldsymbol{\mathbf{\psi }}}}^{{\left( i \right)}}}\).

2.3. If \(i = N - 1\), we pass to step 2.4; otherwise, we assume \(i = i + 1\), and pass to step 2.2.

2.4. If \({\lambda } = 4\), we pass to step 2.5; otherwise, we assume \(i = 1\), \({\lambda } = {\lambda } + 1\), and pass to step 2.2.

2.5. If \({{J}_{\Sigma }} < {{J}_{\Sigma }}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right)\), we store \({{J}_{\Sigma }}\left( {{{\varphi }_{0}},{{\varphi }_{{N - 1}}}} \right) = {{J}_{\Sigma }}\), assume \(i = 1\), \({\lambda } = 1\), and pass to step 2.2; otherwise, we pass to step 2.6.

2.6. We check condition \(s \geqslant S\). If it is met, we exit the algorithm; otherwise, we assume \(s = s + 1\), \(i = 1\), \({\lambda } = 1\), and pass to step 2.7.

2.7. We assume \(k = 1\).

2.8. We calculate \({{{\mathbf{h}}}_{k}} = {{{{{\mathbf{h}}}_{k}}} \mathord{\left/ {\vphantom {{{{{\mathbf{h}}}_{k}}} 2}} \right. \kern-0em} 2}.\)

2.9. If \(k = 4\), we pass to step 2.2; otherwise, we assume \(k = k + 1\), and pass to step 2.7.

Thus constructed first-approximation trajectory passes through points \({{Q}_{0}}\), \({{Q}_{1}}\), …, \({{Q}_{N}}\) and can be used to find the accurate spatial solution of the nonlinear, boundary value problem of maximum principle (1)–(3), (5), (6).

5 DESCRIPTION OF THE PROCEDURE FOR SOLVING THE BOUNDARY VALUE PROBLEM USING THE LOCAL DESCENT METHOD

We assume that, somehow (for example, using the information obtained in the previous section), we managed to determine vector \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\), quantity \(\vartheta - {\tau }\), as well as the initial (2) and final (3) conditions of spacecraft transfer. We formulate the following auxiliary problem.

Problem 4. It is required to find vector \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\) that transfers (1), (5) from (2) into (3) during time \(\vartheta - {\tau }\), provided that initial approximation \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\) is specified.

Problem 4 will be solved numerically, using the local descent method. In accordance with [17], we specify \({\boldsymbol{\mathbf{\psi} }}\left( {\tau } \right) = {{{\mathbf{p}}}^{{\left( 0 \right)}}}\) and, having integrated equations (1), (5), (6) from \({\tau }\) to \(\vartheta \), we get \({\mathbf{r}}\left( \vartheta \right)\), \({\mathbf{v}}\left( \vartheta \right)\), which, generally speaking, differ from (3). We introduce into consideration the function of discrepancy:

$${\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) = {{\left( {\frac{{\left| {{\mathbf{v}}\left( \vartheta \right) - {{{\mathbf{v}}}_{\vartheta }}} \right|}}{{{{q}_{v}}}}} \right)}^{2}} + {{\left( {\frac{{\left| {{\mathbf{r}}\left( \vartheta \right) - {{{\mathbf{r}}}_{\vartheta }}} \right|}}{{{{q}_{r}}}}} \right)}^{2}},$$
(20)

where \({{q}_{v}}\) and \({{q}_{r}}\) are scaling coefficients, and \(s\) is the index of a current iteration. After performing quadratic approximation of (20), we have:

$$\begin{gathered} {\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}} + {{{\mathbf{l}}}^{{\left( s \right)}}}} \right) \approx {\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) + {{\left( {{\mathbf{g}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)} \right)}^{{\text{T}}}}{{{\mathbf{l}}}^{{\left( s \right)}}} \\ + \,\,\frac{{{{{\left( {{{{\mathbf{l}}}^{{\left( s \right)}}}} \right)}}^{{\text{T}}}}{\mathbf{G}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right){{{\mathbf{l}}}^{{\left( s \right)}}}}}{2}, \\ \end{gathered} $$
(21)

where \({\mathbf{g}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) = \nabla {\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)\) are gradient vectors, \({\mathbf{G}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) = {{\nabla }^{2}}{\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)\) is the Hessian, \(\nabla \) is the nabla-operator, and \({{{\mathbf{l}}}^{{\left( s \right)}}}\) is a non-zero vector called the descent direction. The minimum of (21) is reached, if \({{{\mathbf{l}}}^{{\left( s \right)}}}\) satisfies the equality:

$${{{\mathbf{l}}}^{{\left( s \right)}}} = - {\mathbf{G}}{{\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)}^{{ - 1}}}{\mathbf{g}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right),$$

and the Hessian is positively defined. However, in practice, \({\mathbf{G}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)\) does not always possess this property. So, it is advisable to calculate the descent direction by formula:

$${{{\mathbf{l}}}^{{\left( s \right)}}} = - {\mathbf{H}}{{\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)}^{{ - 1}}}{\mathbf{g}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right),$$
(22)

where, instead of \({\mathbf{G}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)\), positively defined matrix \({\mathbf{H}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)\), associated with \({\mathbf{G}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)\), is used. This matrix has the form: \({\mathbf{H}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)\) = \({\mathbf{G}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) + {{{\mathbf{D}}}^{{\left( s \right)}}},\) and \({{{\mathbf{D}}}^{{\left( s \right)}}}\) is a non-negative, diagonal matrix, the algorithm of constructing which is based on the modified Cholesky factorization and is described in detail in [17].

We also introduce into consideration unit vector \({{{\mathbf{e}}}^{{\left( s \right)}}} = \frac{{{{{\mathbf{l}}}^{{\left( s \right)}}}}}{{\delta }},\)\({\delta } = \left| {{{{\mathbf{l}}}^{{\left( s \right)}}}} \right|\) and the scalar quantity \({{{\delta }}^{{\left( s \right)}}} \in \left[ {0,{\delta }} \right],\) which should provide monotonous decrease of function (20):

$${\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) < {\sigma }\left( {{{{\mathbf{p}}}^{{\left( {s - 1} \right)}}}} \right),$$
(23)

where

$${{{\mathbf{p}}}^{{\left( {s + 1} \right)}}} = {{{\mathbf{p}}}^{{\left( s \right)}}} + {{{\delta }}^{{\left( s \right)}}} \cdot {{{\mathbf{e}}}^{{\left( s \right)}}}.$$
(24)

In this study, sought value \({{{\delta }}^{{\left( s \right)}}}\) is obtained from the solution of an auxiliary, one-dimensional minimization problem:

$${\sigma }\left( {{{{\delta }}^{{\left( s \right)}}}} \right) = \mathop {\min }\limits_{{{{\delta }}^{{\left( s \right)}}} \in \left[ {0,{\delta }} \right]} {\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}} + {{{\delta }}^{{\left( s \right)}}} \cdot {{{\mathbf{e}}}^{{\left( s \right)}}}} \right),$$
(25)

using the well-known golden cross-section method. If, however, during the calculation process, function \({\sigma }\left( {{{{\delta }}^{{\left( s \right)}}}} \right)\)is suddenly not unimodal, \({{{\delta }}^{{\left( s \right)}}}\) is found on the basis of a simple and reliable, but not so fast, scanning method.

The iterative local descent process should be interrupted in the case, if: (1) the required accuracy of solution is achieved; (2) the acceptable solution has not been found yet, but the rate of progress towards the optimum highly dropped; and (3) the maximum number of iterations is fulfilled. In this case, the stopping conditions have form

$$\begin{gathered} {\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) < {{{\varepsilon }}_{{\sigma }}},\,\,\,\,\left| {{\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) - {\sigma }\left( {{{{\mathbf{p}}}^{{\left( {s - 1} \right)}}}} \right)} \right| < {{{\varepsilon }}_{{\sigma }}}, \\ s \geqslant S, \\ \end{gathered} $$
(26)

where \({{{\varepsilon }}_{{\sigma }}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right) = \left| {1 + {\sigma }\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)} \right|\max \left( {{{{\varepsilon }}_{M}},\frac{{{{{\varepsilon }}_{\sigma }}\left( {{{{\mathbf{p}}}^{{\left( 0 \right)}}}} \right)}}{{\left| {1 + {\sigma }\left( {{{{\mathbf{p}}}^{{\left( 0 \right)}}}} \right)} \right|}}} \right)\) is the absolute error of calculating function (20) and \({{{\varepsilon }}_{M}}\) = 2.2204460492503131 ⋅ 10–16 is the machine accuracy. In this way, we determine vector \({{{\boldsymbol{\mathbf{\psi }}}}^{e}} = {{{\mathbf{p}}}^{{\left( s \right)}}},\)which ensures compliance of (3). The corresponding local descent algorithm, provided that \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\) is known, is described below.

Algorithm for Solving Problem 4

(1) We specify quantities \({{{\varepsilon }}_{{\sigma }}}\), \(S\), \(\sigma \left( {{{{\mathbf{p}}}^{{\left( { - 1} \right)}}}} \right) = 0.\) We assume \(s = 0,\)\({\boldsymbol{\mathbf{\psi} }}\left( {\tau } \right) = {{{\mathbf{p}}}^{{\left( s \right)}}}\).

(2) We integrate equations (1), (5), (6) from \({\tau }\) to \(\vartheta \) and calculate function (20).

(3) We check conditions (26). If at least one of them is fulfilled, we assume \({{{\boldsymbol{\mathbf{\psi }}}}^{e}} = {{{\mathbf{p}}}^{{\left( s \right)}}}\) and exit from the algorithm; otherwise, we pass to step 4.

(4) If \(s = 0\), we pass to step 6; otherwise, we pass to step 5.

(5) We check condition (23). If it is not fulfilled, we exit the algorithm with an indication of emergency response.

(6) We calculate \({\mathbf{g}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right),\)\({\mathbf{H}}\left( {{{{\mathbf{p}}}^{{\left( s \right)}}}} \right)\) and use formula (22) to determine \({{{\mathbf{l}}}^{{\left( s \right)}}}\).

(7) Using the golden cross-section method or the scanning method, we solve auxiliary sub-problem (25) and determine \({{{\delta }}^{{\left( s \right)}}}\).

(8) We calculate vector (24), assume \(s = s + 1\), and pass to step 2.

It should be noted that the local descent method from [17] possesses a high convergence rate, does not require essential calculation resources, and is easy to implement.

6 SOLUTION OF A MULTI-EXTREME OPTIMIZATION PROBLEM

Now we directly transfer to solving Problem 1. Let the maximum number of spacecraft revolutions around gravitational center \(\Omega \) be specified (see section 3). Then, for each value of angular range \(\delta \varphi \left( {\omega } \right)\), we, with using the algorithm for solving Problems 2 and 3, will construct the composite transporting trajectory, the first-approximation trajectory, as well as the sequence \(\left\{ {\delta {{{\boldsymbol{\mathbf{\psi} }}}^{{\left( i \right)}}}:i = 0, \ldots ,N - 1} \right\}\) (see the algorithm for solving Problem 3, paragraph 2.2). Then, on the basis of \(\left\{ {\delta {{{\boldsymbol{\mathbf{\psi }}}}^{{\left( i \right)}}}} \right\}\), we form vector \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\). It may seem that the most obvious candidate for this role is:

$${{{\mathbf{p}}}^{{\left( 0 \right)}}} = {{\left[ {\delta {\boldsymbol{\mathbf{\psi} }}_{1}^{{\left( 0 \right)}},\delta {\boldsymbol{\mathbf{\psi} }}_{2}^{{\left( 0 \right)}},0,\delta {\boldsymbol{\mathbf{\psi }}}_{3}^{{\left( 0 \right)}},\delta {\boldsymbol{\mathbf{\psi }}}_{4}^{{\left( 0 \right)}},0} \right]}^{{\text{T}}}}.$$
(27)

However, practice has shown that trajectory (1), (2), (5), (6) is extremely sensitive to the choice of \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\), especially if it involves additional revolutions around the gravitational center. By this reason, we accepted in this paper the following approach to solving the problem.

Initially, the motion of system (1), (2), (5), (6) is considered on a relatively short time interval \(\left[ {{\tau },{{{\mathbf{y}}}_{2}}\left( {{{\varphi }_{1}}} \right)} \right]\) only, where \({{\varphi }_{1}}\) and \({\mathbf{y}}\left( {{{\varphi }_{1}}} \right)\) characterize the position of point \({{Q}_{1}}\). Here, \({{{\mathbf{r}}}_{\vartheta }} = {{\left[ {{{{\mathbf{y}}}_{1}}\left( {{{\varphi }_{1}}} \right)\cos \left( {{{\varphi }_{1}}} \right),{{{\mathbf{y}}}_{1}}\left( {{{\varphi }_{1}}} \right)\sin \left( {{{\varphi }_{1}}} \right),0} \right]}^{{\text{T}}}}\), \({{{\mathbf{v}}}_{\vartheta }} = \)\({{\left[ {{{{\mathbf{y}}}_{3}}\left( {{{\varphi }_{1}}} \right),{{{\mathbf{y}}}_{4}}\left( {{{\varphi }_{1}}} \right),0} \right]}^{{\text{T}}}}\). Specifying \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\) by formula (27), we solve the corresponding nonlinear boundary value problem using the local descent method (the algorithm of solving Problem 4) and obtain vector \({{{\boldsymbol{\mathbf{\psi }}}}^{e}}\). Then, the motion of system (1), (2), (5), (6) is considered on a longer time interval \(\left[ {{\tau },{{{\mathbf{y}}}_{2}}\left( {{{\varphi }_{2}}} \right)} \right]\). Here, \({{{\mathbf{r}}}_{\vartheta }}\,\,\, = \,\,\,{{\left[ {{{{\mathbf{y}}}_{1}}\left( {{{\varphi }_{2}}} \right)\cos \left( {{{\varphi }_{2}}} \right),{{{\mathbf{y}}}_{1}}\left( {{{\varphi }_{2}}} \right)\sin \left( {{{\varphi }_{2}}} \right),0} \right]}^{{\text{T}}}}\), \({{{\mathbf{v}}}_{\vartheta }}\,\,\, = \)\({{\left[ {{{{\mathbf{y}}}_{3}}\left( {{{\varphi }_{2}}} \right),{{{\mathbf{y}}}_{4}}\left( {{{\varphi }_{2}}} \right),0} \right]}^{{\text{T}}}}\). Letting \({{{\mathbf{p}}}^{{\left( 0 \right)}}} = {{{\boldsymbol{\mathbf{\psi} }}}^{e}}\), we apply the local descent method to the mentioned problem and obtain new vector \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\). Operating in this manner, we successively increase the time interval \(\left[ {{\tau },{{{\mathbf{y}}}_{2}}\left( {{{\varphi }_{i}}} \right)} \right]\) and, having brought it up to \(\left[ {\tau ,\vartheta } \right]\), we find \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\left( {\omega } \right)\); the solution to the original boundary value problem (1)–(3), (5), (6).

Finally, comparing the values of \(J\left( {\omega } \right)\) of functional (4), obtained for \({\omega } = {\text{0}},...,\Omega \), we determine \({{J}_{{opt}}}\), and also form manifold (7), on the elements of which \({{J}_{{opt}}}\) is implemented. Here, we assume that \(J\left( {\omega } \right) = {{J}_{1}}\) and \(J\left( {\omega } \right) = {{J}_{2}}\) differ from each other, if the condition \(\left| {{{J}_{{\text{1}}}} - {{J}_{{\text{2}}}}} \right| > {{{\varepsilon }}_{J}}\) is met, where \({{{\varepsilon }}_{J}}\) is some fixed threshold value. Thus, the complete algorithm for solving Problem 1 has the following form.

Algorithm for Solving Problem 1

(1) We specify quantities \(\Omega \) and \({{{\varepsilon }}_{J}}\). We initialize quantity \({{J}_{{opt}}}\) by a large positive number.

(2) We let \({\omega } = {\text{0}}\).

(3) Using the algorithm for solving Problem 2, we obtain points \({{P}_{0}}\), \({{P}_{1}}\), .., \({{P}_{N}}\).

(4) For points \({{P}_{0}}\), \({{P}_{1}}\), ..., \({{P}_{N}}\), using the algorithm for solving Problem 3, we obtain \({{Q}_{0}}\), \({{Q}_{1}}\), ..., \({{Q}_{N}}\) and also \(\delta {{{\boldsymbol{\mathbf{\psi }}}}^{{\left( 0 \right)}}}\), \(\delta {{{\boldsymbol{\mathbf{\psi} }}}^{{\left( 1 \right)}}}\), …, \(\delta {{{\boldsymbol{\mathbf{\psi} }}}^{{\left( {N - 1} \right)}}}\).

(5) We specify \(i = 1\) and determine vector \({{{\mathbf{p}}}^{{\left( 0 \right)}}}\) by formula (27).

(6) We calculate \({{{\mathbf{r}}}_{\vartheta }}\) = [y1i)cos(φi), y1i)sin(φi),0]T and \({{{\mathbf{v}}}_{\vartheta }} = {{\left[ {{{{\mathbf{y}}}_{3}}\left( {{{\varphi }_{i}}} \right),{{{\mathbf{y}}}_{4}}\left( {{{\varphi }_{i}}} \right),0} \right]}^{{\text{T}}}}.\)

(7) For initial conditions (2) and final conditions from paragraph 6, we perform the algorithm for solving Problem 4 on the time interval \(\left[ {{\tau },{{{\mathbf{y}}}_{2}}\left( {{{\varphi }_{i}}} \right)} \right]\) and obtain \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\).

(8) If \(i < N - 1\), we assume \(i = i + 1,\)\({{{\mathbf{p}}}^{{\left( 0 \right)}}} = {{{\boldsymbol{\mathbf{\psi} }}}^{e}}\) and pass to step 6. Otherwise, we assume \({{{\mathbf{p}}}^{{\left( 0 \right)}}} = {{{\boldsymbol{\mathbf{\psi} }}}^{e}}\) and pass to step 9.

(9) For initial conditions (2) and final conditions (3), we perform the algorithm for solving Problem 4 on the time interval \(\left[ {{\tau },\vartheta } \right]\), obtain vector \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\left( {\omega } \right)\), and, using formula (4), calculate functional \(J\).

(10) If \(\left| {{{J}_{{opt}}} - J} \right| < {{{\varepsilon }}_{J}},\) we include \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\left( {\omega } \right)\) into \({{{\mathbf{\Psi }}}_{{opt}}}\); otherwise, if \({{J}_{{opt}}} < J,\) we delete all elements of manifold \({{{\mathbf{\Psi }}}_{{opt}}}\), assume \(J = {{J}_{{opt}}}\) and include \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\left( {\omega } \right)\) into \({{{\mathbf{\Psi }}}_{{opt}}}\). Then, we pass to step 11.

(11) If \({\omega } < \Omega \), we assume \({\omega } = {\omega } + {\text{1}}\) and pass to step 3; otherwise, we exit from the algorithm.

In conclusion, we note that Problem 1 can also be solved by the method of continuation over the gravitational parameter [8]. This method makes it possible to find the extremal of the nonlinear boundary value problem of the maximum principle using homotopy. Here, gravitational constant μ acts as a continuation parameter, and the initial-approximation trajectory occurs to be some fictitious orbit that satisfies condition (2) and is constructed for constant \({\mu } = {{{\mu }}_{{\text{0}}}}\), the value of which is selected in such a way, that the specified angular distance of transfer be provided.

In our case, the zero approximation, which satisfies not only the initial (2) but also the final (3) boundary value conditions, is constructed in the simplest and most natural manner and represents a composite transporting trajectory, on which the sum of controlling impulses (10) is minimal. Therefore, there is a reason to believe that the sought continuous control trajectory, which imparts a local minimum to functional (4), will be located in the vicinity of an impulse zero approximation, and its finding will not require essential calculation resources.

In addition, the composite transporting trajectory provides important information about the nature and parameters of a sought extremal and can be successfully used within the framework of various optimization methods (quasi-linearization, composite firing method, etc.), which differ from those described in sections 4 and 5. Thus, the developer keeps relative freedom in choosing the final optimization method (4), which allows him to take into account the specifics of a particular task in the best way.

Finally, a by-product of operation of the algorithm for solving Problem 2 (provided that it was performed from end to beginning) are the optimal trajectories, obtained as a result of the synthesis procedure, which associate each node of the calculation grid \(\left\{ {{{\varphi }_{i}},{{{\mathbf{X}}}_{i}}:i = 0,...,N - 1} \right\}\) and the final node. They can also be applied at subsequent stages of research, for example, in the process of studying the disturbed motion of a spacecraft.

7 NUMERICAL EXAMPLE

To illustrate the method described above, we consider the problem of optimizing the trajectories of spacecraft transfer from Earth to Apophis. We choose as OXYZ the heliocentric, elliptical, rectangular coordinate system, the OX axis of which is directed to the vernal equinox point, the OZ axis points to the north pole of the ecliptics, and the OY axis supplements the system to the right-hand one. Following the flight pattern from [7], we will assume that a spacecraft with mass \({{m}_{{\text{0}}}}\), which is located in a circular near-Earth orbit with radius \({{R}_{{\text{0}}}}\), is accelerated by a high-thrust engine up to a parabolic velocity, as a result of which it leaves Earth’s sphere of action. Thus, at the specified moment of heliocentric motion beginning at \({\tau }\) = September 2, 2018 (JD = 2458364.34), the spacecraft mass \({{m}_{{SC}}}\left( {\tau } \right)\) can be estimated by formula:

$${{m}_{{SC}}}\left( {\tau } \right) = {{m}_{{\text{0}}}}\exp \left( {\frac{{ - \Delta V}}{W}} \right) - {{m}_{B}},$$

and conditions (2) will take the form: \({{{\mathbf{r}}}_{{\tau }}} = {{{\mathbf{r}}}_{{\text{E}}}},\)\({{{\mathbf{v}}}_{{\tau }}} = {{{\mathbf{v}}}_{{\text{E}}}},\) where \(\Delta V = \sqrt {\frac{{2{{{\mu }}_{{\text{E}}}}}}{{{{R}_{{\text{0}}}}}}} - \sqrt {\frac{{{{{\mu }}_{{\text{E}}}}}}{{{{R}_{{\text{0}}}}}}} \), \({{{\mu }}_{{\text{E}}}}\) is the gravitational parameter of Earth, \(W\) is the exhaust velocity of particles in the jet stream for a high-thrust chemical engine, \({{m}_{B}}\) is the mass of separated upper stage, \({{{\mathbf{r}}}_{{\text{E}}}}\) and \({{{\mathbf{v}}}_{{\text{E}}}}\) are the radius-vector and Earth’s velocity vector. In projections on the OXYZ axes, we, respectively, obtain: \(x\left( {\tau } \right)\) = 141 837 938.1 km, \(y\left( {\tau } \right)\) = –51 586 562.08 km, \(z\left( {\tau } \right)\) = 0.0 km, \({{v}_{x}}\left( {\tau } \right)\) = 9.696559723 km/s, \({{v}_{y}}\left( {\tau } \right)\) = 27.88321627 km/s, \({{v}_{z}}\left( {\tau } \right)\) = 0.0 km/s. It is required that, 185 days later, the spacecraft, having performed a heliocentric transfer using an EJPS, should be located at the point with coordinates \({{{\mathbf{r}}}_{\vartheta }} = {{{\mathbf{r}}}_{A}}\), while having velocity \({{{\mathbf{v}}}_{\vartheta }} = {{{\mathbf{v}}}_{A}}\), where \({{{\mathbf{r}}}_{A}}\) and \({{{\mathbf{v}}}_{A}}\) are the radius vector and Apophis velocity vector. At the same time, we note that the launch date and the spacecraft transfer duration are not optimal; they were borrowed from [7] and have to demonstrate the presence of two extremals with the same value in Problem (4).

In projections on the OXYZ axis, we, respectively, obtain: \(x\left( \vartheta \right)\) = –16 866 036.34 km, \(y\left( \vartheta \right)\) = 148 415 503.4 km, \(z\left( \vartheta \right)\) = –8 273 116.384 km, \({{v}_{x}}\left( \vartheta \right)\) = –28.44266644 km/s, \({{v}_{y}}\left( \vartheta \right)\) = 1.669202204 km/s, and \({{v}_{z}}\left( \vartheta \right)\) = –0.7733438831 km/s. Meeting the asteroid there, the spacecraft, also using an EJPS, will perform braking and transition into the orbit of its artificial satellite. Since the energy expenses required for spacecraft transition into an asteroid-centric orbit, are low in this case [6], then:

$${{m}_{A}} \approx {{m}_{{SC}}}\left( \vartheta \right),$$
(28)

where \({{m}_{A}}\) is the final spacecraft mass in the orbit of Apophis. It is necessary to find the spacecraft transfer trajectories and corresponding value \({{J}_{{opt}}}\), for which quantity \({{m}_{A}}\), or, as follows from (28), quantity \({{m}_{{SC}}}\left( \vartheta \right)\), would reach a maximum.

The analysis of parameters \(z\left( {\tau } \right),\)\({{v}_{z}}\left( {\tau } \right),\)\(z\left( \vartheta \right)\), and \({{v}_{z}}\left( \vartheta \right)\) allows us to conclude that the spacecraft transfer from Earth to the asteroid will be accomplished near the ecliptic plane. By this reason, to solve the stated problem, we will use the algorithm for solving Problem 1. We specify parameters \({{{\varepsilon }}_{J}} = 2.0 \cdot {{10}^{{ - 3}}}\) m2/s3 and \(\Omega = 1\) (step 1). Thus, the optimum of (4) will be found on the direct transfer trajectories, as well as on the trajectories with one additional revolution. Consider the case \({\omega } = {\text{0}}\) (step 2, the direct transfer trajectories). Using formulas (8), we get \({{\varphi }_{{\tau }}}\) = 340.0136362° and \({{\varphi }_{\vartheta }}\left( 0 \right) - {{\varphi }_{{\tau }}}\) = 116.4696808°. We assume \(N = 2\), as a result of which, the spacecraft transfer angle on one section of a composite transporting trajectory will not exceed 60°. We specify nodes \({{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right)\), such that:

$$\begin{gathered} {{r}^{{\left( l \right)}}}\left( {{{\varphi }_{i}}} \right) = \frac{{{{r}_{{\max }}} - {{r}_{{\min }}}}}{L}l + {{r}_{{\min }}}, \\ {{t}^{{\left( m \right)}}}\left( {{{\varphi }_{i}}} \right) = \frac{{{{t}_{{\max }}}\left( {{{\varphi }_{i}}} \right) - {{t}_{{\min }}}\left( {{{\varphi }_{i}}} \right)}}{M}m + {{t}_{{\min }}}\left( {{{\varphi }_{i}}} \right), \\ \end{gathered} $$
(29)

where \({{t}_{{\min }}}\left( {{{\varphi }_{i}}} \right) = t\left( {{{\varphi }_{i}}} \right) - {{{\delta }}_{t}},\)\({{t}_{{\max }}}\left( {{{\varphi }_{i}}} \right) = t\left( {{{\varphi }_{i}}} \right) + {{{\delta }}_{t}},\)\(t\left( {{{\varphi }_{i}}} \right) = \frac{{\vartheta - {\tau }}}{N}i + {\tau }{\text{,}}\)\({{r}_{{\min }}} = {\text{140}}{\text{.0}} \cdot {\text{1}}{{{\text{0}}}^{{\text{6}}}}\) km, rmax = \({\text{240}}{\text{.0}} \cdot {\text{1}}{{{\text{0}}}^{{\text{6}}}}\) km, \({{{\delta }}_{t}}\) = 50 days, \(L\) = 31, and \(M\) = 61. Having performed step 3 of the algorithm for solving Problem 1, we obtain quantity (10) equal to 27.18911743 km/s. Here, the single intermediate point \({{P}_{1}}\) is characterized by the following parameters: \({{\varphi }_{1}}\)\({{\varphi }_{\tau }}\) = 58.23484039°, \(r\left( {{{\varphi }_{1}}} \right)\) = 193.(3) · 106 km, and \(t\left( {{{\varphi }_{1}}} \right)\)\({\tau }\) = 92.5 days. The composite transporting trajectory of the spacecraft transfer from (2) to (3) is designated in Fig. 1 by symbol \({\mathbf{T}}_{0}^{'}\). It should be noted that, in this case, \({\mathbf{T}}_{0}^{'}\) actually coincides with a Keplerian orbit associating (2) and (3). Next, we construct the first-approximation trajectory (step 4). To do this, using formulas (11), we will form \({\mathbf{y}}\left( {{{\varphi }_{i}}} \right)\), specify \(S = 20\) and vector \({\mathbf{h}}\), such that \({{{\mathbf{h}}}_{1}} = 2.5 \cdot {{10}^{6}}\) km, \({{{\mathbf{h}}}_{2}} = 1.0\) days, and \({{{\mathbf{h}}}_{3}} = {{{\mathbf{h}}}_{4}} = 2.0\) km/s. Having applied the algorithm for solving Problem 3, we obtain quantity (18) equal to 168.5265666 m2/s3. The single intermediate point \({{Q}_{1}}\) is characterized by the following parameters: \({{\varphi }_{1}}\)\({{\varphi }_{\tau }}\) = 58.23484039°, \(r\left( {{{\varphi }_{1}}} \right)\) = 183014710.7 km, \(t\left( {{{\varphi }_{1}}} \right)\)\({\tau }\) = 99.42506027 days, \({{v}_{x}}\left( {{{\varphi }_{1}}} \right)\) = –10.99439222 km/s, and \({{v}_{y}}\left( {{{\varphi }_{1}}} \right)\) = 9.775907364 km/s. Using formula (27), we have: \({\mathbf{p}}_{1}^{{\left( 0 \right)}}\) = 93.8106916025 · 10–7, \({\mathbf{p}}_{2}^{{\left( 0 \right)}}\) = –54.6452421284 · 10–7, \({\mathbf{p}}_{4}^{{\left( 0 \right)}}\) = 239.664827357 · 10–14, \({\mathbf{p}}_{5}^{{\left( 0 \right)}}\) = –64.2359106942 · 10–14, and \({\mathbf{p}}_{3}^{{\left( 0 \right)}}\) = \({\mathbf{p}}_{6}^{{\left( 0 \right)}}\) = 0. The corresponding first-approximation trajectory is designated in Fig. 1 by symbol T0. Then, having specified \({{{\varepsilon }}_{{\sigma }}}\left( {{{{\mathbf{p}}}^{{\left( 0 \right)}}}} \right)\) = 1.0 · 10–12, \(S\) = 100, \({{q}_{v}}\) = \({{10}^{{ - 7}}}\) km/s, and \({{q}_{r}}\)= \({{10}^{{ - 14}}}\)km, we perform the steps from 5 to 9 of the algorithm for solving Problem 1 and calculate vector \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\), which represents the first element of manifold \({{{\mathbf{\Psi }}}_{{opt}}}\) (step 10): \({\boldsymbol{\mathbf{\psi }}}_{1}^{e}\) = 94.66532165 · 10–7, \({\boldsymbol{\mathbf{\psi} }}_{2}^{e}\) = –51.42365888 · 10–7, \({\boldsymbol{\mathbf{\psi }}}_{3}^{e}\) = 0.3813270949 · 10–7, \({\boldsymbol{\mathbf{\psi} }}_{4}^{e}\) = 251.0494271 · 10–14, \({\boldsymbol{\mathbf{\psi} }}_{5}^{e}\) = –48.40369378 · 10–14, and \({\boldsymbol{\mathbf{\psi} }}_{6}^{e}\) = 5.344841215 · 10–14. In this case, quantity (4) is equal to 168.5541035 m2/s3, and the corresponding trajectory of spacecraft transfer from (2) to (3) visually coincides, in the figure, with first-approximation trajectory T0.

Fig.1.
figure 1

Composite transporting (\(T_{0}^{'},\)\(T_{1}^{'}\)) trajectories, as well as first-approximation trajectories and optimal (T0, T1) trajectories of spacecraft transfer from Earth to Apophis.

Since \({\omega } = {\text{ 0}} < \Omega \), we assume \({\omega } = {\text{1}}\) and proceed to considering the trajectories with one additional revolution around the Sun (step 3). Using formulas (8), we obtain \({{\varphi }_{\vartheta }}\left( 1 \right) - {{\varphi }_{{\tau }}}\) = 476.4696808°. We assume \(N = 8\), as a result of which, the angle of spacecraft transfer on one section of the composite transporting trajectory will be close to 60°. We assume that, when calculating \({{{\mathbf{x}}}^{{\left( j \right)}}}\left( {{{\varphi }_{i}}} \right)\) by formulas (29), \({{r}_{{\min }}} = {\text{20}}{\text{.0}} \cdot {\text{1}}{{{\text{0}}}^{{\text{6}}}}\) km, \({{r}_{{\max }}} = {\text{150}}{\text{.0}} \cdot {\text{1}}{{{\text{0}}}^{{\text{6}}}}\) km, \({{{\delta }}_{t}}\) = 50 days, \(L\) = 31, and \(M\) = 61. Having performed step 3 of the algorithm for solving Problem 1, we obtain quantity (10) equal to 43.80742264 km/s. Here, the parameters that characterize intermediate points \({{P}_{i}}\), are given in Table 1. The composite transporting trajectory of spacecraft transfer from (2) to (3) is designated in Fig. 1 by symbol \({\mathbf{T}}_{1}^{'}\). Next, we construct the first-approximation trajectory (step 4). To do this, we form \({\mathbf{y}}\left( {{{\varphi }_{i}}} \right)\) by formulas (11), specify \(S = 20\) and vector \({\mathbf{h}}\), such that \({{{\mathbf{h}}}_{1}} = 2.5 \cdot {{10}^{6}}\) km, \({{{\mathbf{h}}}_{2}} = 1.0\) day, and \({{{\mathbf{h}}}_{3}} = {{{\mathbf{h}}}_{4}} = 2.0\) km/s. Having applied the algorithm for solving Problem 3, we obtain quantity (18) equal to 167.6679442 m2/s3. The information, characterizing intermediate points \({{Q}_{i}}\), is given in Table 2. In accordance with (27), we have \({\mathbf{p}}_{1}^{{\left( 0 \right)}}\)= –102.281590402 · 10–7, \({\mathbf{p}}_{2}^{{\left( 0 \right)}}\) = –30.7907152907 · 10–7, \({\mathbf{p}}_{4}^{{\left( 0 \right)}}\) = ‒387.113857394 · 10–14, \({\mathbf{p}}_{5}^{{\left( 0 \right)}}\) = 64.2118702125 · 10–14, and \({\mathbf{p}}_{3}^{{\left( 0 \right)}}\) = \({\mathbf{p}}_{6}^{{\left( 0 \right)}}\) = 0. The corresponding first-approximation trajectory is designated in the Fig. 1 by symbol T1. Having performed steps 5 to 9 of the algorithm for solving Problem 1, we calculate sought vector \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\) with components: \({\boldsymbol{\mathbf{\psi }}}_{1}^{e}\) = –101.890974187 · 10–7, \({\boldsymbol{\mathbf{\psi }}}_{2}^{e}\) = ‒31.2262700771 · 10–7, \({\boldsymbol{\mathbf{\psi} }}_{3}^{e}\) = –4.03357164751 ⋅ 10–7, \({\boldsymbol{\mathbf{\psi} }}_{4}^{e}\) = –386.554657820 · 10–14, \({\boldsymbol{\mathbf{\psi} }}_{5}^{e}\) = –58.0257795804 · 10–14, and \({\boldsymbol{\mathbf{\psi} }}_{6}^{e}\) = –0.17249478303 · 10–14 and quantity (4) equal to 168.5525918 m2/s3. The corresponding trajectory of spacecraft transfer from (2) to (3) visually coincides, in Fig. 1, with first-approximation trajectory T1. Since |168.5541035 – 168.5525918| \( < 2.0 \cdot {{10}^{{ - 3}}}\), the indicated \({{{\boldsymbol{\mathbf{\psi} }}}^{e}}\) acts as the second element of manifold \({{{\mathbf{\Psi }}}_{{opt}}}\) (step 10). Thus, for \({\tau }\) = September 2, 2018 (JD = 2458364.34) and \(\vartheta - {\tau }\) = 185 days, \({{J}_{{opt}}} = \) 168.55 m2/s3 with the specified accuracy \({{{\varepsilon }}_{J}}\) is achieved on two different trajectories of spacecraft transfer to Apophis, designated in the figure as T0 and T1.

Table 1.   Points \({{P}_{i}}\) of a composite transporting trajectory with a revolution for \({\tau }\) = September 2, 2018 and \(\vartheta - {\tau }\) = 185 days, \(i = 1,...,7\)
Table 2.   Points \({{Q}_{i}}\) of a composite transporting trajectory with a revolution for \({\tau }\) = September 2, 2018 and \(\vartheta - {\tau }\) = 185 days, \(i = 1,...,7\)

It should be noted that the results can also be used as an initial approximation for solving the problems with a non-zero, hyperbolic excess of the spacecraft’s velocity near Earth, when the velocity impulse of a high-thrust engine on the circular near-Earth orbit is estimated by formula:

$$\Delta V = \sqrt {\frac{{2{{{\mu }}_{{\text{E}}}}}}{{{{R}_{{\text{0}}}}}} + {{{\left| {{{{\mathbf{v}}}_{\infty }}} \right|}}^{2}}} - \sqrt {\frac{{{{{\mu }}_{{\text{E}}}}}}{{{{R}_{{\text{0}}}}}}} ,$$

where \({{{\mathbf{v}}}_{\infty }}\) is the hyperbolic velocity excess vector, the optimal value and direction of which are subject to determination.

The total time of solving stated problem \({{T}_{{calc}}}\), on a single processor core with a frequency of 2.4 GHz, was 478 seconds. At the same time, the construction of a composite transporting trajectory has spent \(0.6 \cdot {{T}_{{calc}}}\), the formation of the first-approximation trajectory required \(0.35 \cdot {{T}_{{calc}}}\), and the accurate solution of the boundary value problem by the local descent method was performed for \(0.05 \cdot {{T}_{{calc}}}\). It is obvious that the above estimates of calculation expenses are only indicative, and quantity \({{T}_{{calc}}}\) can be essentially reduced by optimizing the corresponding program code in the operation speed. It is also advisable to make use of the dynamic programming method capabilities and parallelize the calculations of the algorithm for solving Problem 2 between several processor cores.

CONCLUSIONS

In this study, we proposed the regular method for numerical optimization of transfer trajectories for a spacecraft with perfectly controlled EJPS thrust. The main features of the method are as follows:

(1) The method allows one to find extreme trajectories with a specified angular range, which differ from each other in the number of revolutions around the attracting center.

(2) The procedure for solving the stated problem is regular and is performed in three stages: (1) generation of a series of composite transporting trajectories in the impulse formulation, (2) construction of first-approximation trajectories in the linear formulation, and (3) accurate solution of nonlinear boundary value problems with subsequent analysis of the results.

(3) The algorithm for constructing pulsed composite transporting trajectories is based on an optimization method that allows finding the optimum of an additive function on the corresponding computational grid, even if this function is not unimodal in the computational domain.

(4) The procedure of finding accurate solutions of a nonlinear boundary value problem, in the zero approximation vicinity, is quite reliable, since it is developed while accounting for a high sensitivity of these solutions to the quality of an initial approximation.

(5) All the a priori information, involved in the working process, has an obvious physical interpretation (so, for example, the user does not need to specify the initial ranges of change of conjugate variables).

(6) All used algorithms do not require significant calculation resources.

The disadvantages of this technique include the limitations that it imposes on the nature of optimal spacecraft transfer trajectories; it is believed that such trajectories, although they are spatial in the nature, cannot deviate far from a certain plane (for example, the ecliptic plane).