Global optimization of a multiple gravity assist trajectory with one deep space manouvre per legΒΆ

../_images/gallery5.png
"Earth-Venus-Earth transfer via impulsive maneuvers"

These plots are produced by the following code:

import pykep as pk
pk.examples.run_example5()

after the self-adaptive differential evolution algorithm concludes its computations.

The example demonstrates the use of the mga_1dsm problem constructor of the interplanetary module. This helper class allows to construct a pygmo global optimization problem (pygmo project) representing a Multiple Gravity Assist Interplanetary Trajectory where only one Deep Space Manouvre is allowed in each leg. The problem is constructed as either a single objective (total DV) or even a multiobjective optimization problem (DV and time of flight). The alpha encoding is used for the time of flights allowing to specify onbly the mission duration and letting the optimizer the task to allocate such a budget among the different legs. The alternative, called tof encoding, would be to specify the time of flight for each single leg. This would result in an easier problem for the optimizer, but it does require added domain knowledge.

In the particular instance constructed in the example, we have an Earth-Venus-Earth transfer with a Venus intermediate fly-by. he selected launch windows is 2016-2017, the launch hyperbolic velocity is 2.5 km/s and the allowed time of flight is in [0.5,3] years.

To solve such a global optimization problem, we use jDE, a self-adaptive version of differential evolution and the generalized migration operator, thus computing the solution in eight paralel threads.

The code for this example can be studied here. Feel free to leave comments.