{ "cells": [ { "cell_type": "markdown", "id": "eef5d8cd", "metadata": {}, "source": [ "# Hodographic-shaping MGA transfer optimization with PyGMO" ] }, { "cell_type": "markdown", "id": "ea323ff5", "metadata": {}, "source": [ "Copyright (c) 2010-2022, Delft University of Technology. All rights reserved. This file is part of the Tudat. Redistribution and use in source and binary forms, with or without modification, are permitted exclusively under the terms of the Modified BSD license. You should have received a copy of the license with this file. If not, please or visit: http://tudat.tudelft.nl/LICENSE." ] }, { "cell_type": "markdown", "id": "8fc5e938", "metadata": { "tags": [] }, "source": [ "## Objectives \n", "\n", "This example illustrates the usage of PyGMO to optimize a low-thrust interplanetary transfer trajectory simulated using the multiple gravity assist (MGA) module of Tudat. The low-thrust legs are simulated using hodographic shaping. The spacecraft is considered to depart from the edge of the sphere of influence (SOI) of the Earth, execute swingbys at the Mars and Earth, and arrive at the edge of Jupiter's SOI. Thus, the transfer includes 3 legs and 2 swingbys.\n", "\n", "The velocity directions of each hodographic-shaping leg are modeled using the recommended shaping functions and two additional shaping functions, resulting in 2 velocity-shaping free coefficients per direction per leg (i.e. 6 per leg). Some simplifications are considered when defining the departure/arrival velocity at each transfer node: the angles defining the orientation of the arrival/departure velocity and the angles defining the orbital plane of a swingby are all assumed to take the value 0. Additionally, no impulsive $\\Delta V$ is considered to be applied during the swingbys.\n", "\n", "The optimized parameters vector is constituted by the following variables:\n", "\n", "* Departure date (1 variable)\n", "* Magnitude of the departure excess velocity from Earth (1 variable)\n", "* Magnitude of the arrival excess velocity at Jupiter (1 variable)\n", "* Time of flight of each transfer leg (1 per leg, for a total of 3 variables)\n", "* Magnitude of the arrival excess velocity at each swingby planet (1 per swingby, for a total of 2 variables)\n", "* Altitude of the periapsis at each swingby (1 per swingby, for a total of 2 variables)\n", "* Leg free coefficients per leg (6 per leg, for a total of 18 variables)\n", "* Number of revolutions per leg (1 per leg, for a total of 3 variables)\n", "\n", "Thus, a total of 31 variables is optimized.\n", "\n", "The only objective function is the $\\Delta V$, which is minimized.\n", "\n", "PyGMO is used in this example. It is assumed that the reader of this tutorial is already familiar with the content of [this basic PyGMO tutorial](https://docs.tudat.space/en/latest/_src_advanced_topics/optimization_pygmo.html#about-pygmo)." ] }, { "cell_type": "markdown", "id": "5c58fdd3", "metadata": {}, "source": [ "## Import statements\n", "\n", "The required import statements are made here. Some standard modules are first loaded (numpy, matplotlib and typing). The pygmo and multiprocessing libraries are also imported. Then, the different modules of tudatpy that will be used are imported. " ] }, { "cell_type": "code", "execution_count": 1, "id": "19105692224edbb3", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T08:56:48.610644Z", "iopub.status.busy": "2025-09-16T08:56:48.610523Z", "iopub.status.idle": "2025-09-16T08:56:49.256988Z", "shell.execute_reply": "2025-09-16T08:56:49.256445Z" } }, "outputs": [], "source": [ "# General imports\n", "import numpy as np\n", "from typing import List, Tuple\n", "import pygmo as pg\n", "import matplotlib.pyplot as plt\n", "import multiprocessing as mp\n", "\n", "# Tudatpy imports\n", "import tudatpy\n", "from tudatpy.util import result2array\n", "from tudatpy import constants\n", "from tudatpy.dynamics import environment_setup\n", "from tudatpy.trajectory_design import shape_based_thrust, transfer_trajectory" ] }, { "cell_type": "markdown", "id": "5e8479f7", "metadata": {}, "source": [ "## Helpers" ] }, { "cell_type": "markdown", "id": "1ae06952", "metadata": {}, "source": [ "First of all, let us define a helper function to create the MGA transfer object. Given some inputs, this function creates the transfer legs and nodes settings, and then uses them to create the transfer trajectory object. The function creates a transfer constituted by hodographic-shaping legs, selecting the shaping functions such that there are two free shaping coefficients per velocity direction per leg.\n", "\n", "The function takes as inputs the usual parameters necessary for creating an MGA transfer object: the transfer body order, the departure orbit (semi-major axis and eccentricity), the arrival orbit (semi-major axis and eccentricity), the used system of bodies, and the name of the central body. Additionally, the function takes some more arguments used when defining the shaping functions: the time of flight per leg and the number of revolutions per leg.\n", "\n", "The function returns the created transfer trajectory object." ] }, { "cell_type": "code", "execution_count": 2, "id": "ce689221", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T08:56:49.259415Z", "iopub.status.busy": "2025-09-16T08:56:49.259075Z", "iopub.status.idle": "2025-09-16T08:56:49.267043Z", "shell.execute_reply": "2025-09-16T08:56:49.266604Z" } }, "outputs": [], "source": [ "def create_low_thrust_transfer_object(transfer_body_order: list,\n", " times_of_flight: np.ndarray,\n", " departure_semi_major_axis: float,\n", " departure_eccentricity: float,\n", " arrival_semi_major_axis: float,\n", " arrival_eccentricity: float,\n", " bodies: tudatpy.dynamics.environment.SystemOfBodies,\n", " central_body: str,\n", " numbers_of_revolutions: List[int]) -> \\\n", " tudatpy.trajectory_design.transfer_trajectory.TransferTrajectory:\n", "\n", " # Create the list with the velocity shaping functions to use in each leg\n", " radial_velocity_function_components_per_leg = []\n", " normal_velocity_function_components_per_leg = []\n", " axial_velocity_function_components_per_leg = []\n", "\n", " for i in range(len(transfer_body_order)-1):\n", " tof = times_of_flight[i]\n", " frequency = 2.0 * np.pi / tof\n", " scale_factor = 1.0 / tof\n", " exponent = 4.0\n", "\n", " radial_velocity_functions = shape_based_thrust.recommended_radial_hodograph_functions(times_of_flight[i])\n", " radial_velocity_functions.append(shape_based_thrust.hodograph_scaled_power_sine(\n", " exponent=1.0,\n", " frequency=0.5 * frequency,\n", " scale_factor=scale_factor))\n", " radial_velocity_functions.append(shape_based_thrust.hodograph_scaled_power_cosine(\n", " exponent=1.0,\n", " frequency=0.5 * frequency,\n", " scale_factor=scale_factor))\n", " radial_velocity_function_components_per_leg.append(radial_velocity_functions)\n", "\n", " normal_velocity_functions = shape_based_thrust.recommended_normal_hodograph_functions(times_of_flight[i])\n", " normal_velocity_functions.append(shape_based_thrust.hodograph_scaled_power_sine(\n", " exponent=1.0,\n", " frequency=0.5 * frequency,\n", " scale_factor=scale_factor))\n", " normal_velocity_functions.append(shape_based_thrust.hodograph_scaled_power_cosine(\n", " exponent=1.0,\n", " frequency=0.5 * frequency,\n", " scale_factor=scale_factor))\n", " normal_velocity_function_components_per_leg.append(normal_velocity_functions)\n", "\n", " axial_velocity_functions = shape_based_thrust.recommended_axial_hodograph_functions(\n", " times_of_flight[i], numbers_of_revolutions[i])\n", " axial_velocity_functions.append(shape_based_thrust.hodograph_scaled_power_cosine(\n", " exponent=exponent,\n", " frequency=(numbers_of_revolutions[i] + 0.5) * frequency,\n", " scale_factor=scale_factor ** exponent))\n", " axial_velocity_functions.append(shape_based_thrust.hodograph_scaled_power_sine(\n", " exponent=exponent,\n", " frequency=(numbers_of_revolutions[i] + 0.5) * frequency,\n", " scale_factor=scale_factor ** exponent))\n", " axial_velocity_function_components_per_leg.append(axial_velocity_functions)\n", "\n", " # Create the transfer leg and node settings\n", " transfer_leg_settings, transfer_node_settings = transfer_trajectory.mga_settings_hodographic_shaping_legs(\n", " body_order=transfer_body_order,\n", " radial_velocity_function_components_per_leg=radial_velocity_function_components_per_leg,\n", " normal_velocity_function_components_per_leg=normal_velocity_function_components_per_leg,\n", " axial_velocity_function_components_per_leg=axial_velocity_function_components_per_leg,\n", " departure_orbit=(departure_semi_major_axis, departure_eccentricity),\n", " arrival_orbit=(arrival_semi_major_axis, arrival_eccentricity) )\n", "\n", " # Create the transfer trajectory object\n", " transfer_trajectory_object = transfer_trajectory.create_transfer_trajectory(\n", " bodies,\n", " transfer_leg_settings,\n", " transfer_node_settings,\n", " transfer_body_order,\n", " central_body)\n", "\n", " return transfer_trajectory_object" ] }, { "cell_type": "markdown", "id": "c7dfabde", "metadata": {}, "source": [ "## Optimisation problem" ] }, { "cell_type": "markdown", "id": "becba83c", "metadata": {}, "source": [ "The core of the optimization process is realized by PyGMO, which requires the definition of a problem class.\n", "This definition has to be done in a class that is compatible with what the PyGMO library expects from a User Defined Problem (UDP). See [this page](https://esa.github.io/pygmo2/tutorials/coding_udp_simple.html) from the PyGMO's documentation as a reference. In this example, this class is called `MGAHodographicShapingTrajectoryOptimizationProblem`.\n", "\n", "The following methods are implemented:\n", "\n", "* `__init__()`: This is the constructor for the PyGMO problem class. It is used to save all the variables required to setup the creation and evaluation of the transfer trajectory.\n", "* `get_bounds()`: Returns the bounds for each optimized parameter. These are provided as an input to `__init__()`. Their values are defined later in this example.\n", "* `swingby_periapsis_to_optim_parameter()`: When it comes to the swingby periapsis altitude, the parameter that is optimized is the logarithm of the altitude, not the altitude itself. As such, this function converts the altitude to the optimized altitude parameter. This function can be modified to use a different scaling function (i.e. other than the logarithm).\n", "* `optim_parameter_to_swingby_periapsis()`: This function executes the inverse of the transformation done by the `swingby_periapsis_to_optim_parameter` function. That is, it converts the optimized altitude parameter to the periapsis altitude.\n", "* `get_nix()`: Returns the number of design variables which are to be optimized as integers. In this case, the only integer parameters are the number of revolutions per leg. \n", "* `get_transfer_trajectory_object()`: For a given vector of design parameters, the function returns the evaluated transfer trajectory object. This is useful to further analyze the transfer after the optimization, allowing e.g. to retrieve the state history.\n", "* `get_node_times()`: For a given vector of design parameters, the function returns the transfer node times.\n", "* `fitness()`: Returns the cost associated with a vector of design parameters. Here, the fitness is the $\\Delta V$ required to execute the transfer. Each time this function is called, a new transfer trajectory object is created and evaluated using the specified design parameters." ] }, { "cell_type": "code", "execution_count": 3, "id": "dcbb0f1a", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T08:56:49.268972Z", "iopub.status.busy": "2025-09-16T08:56:49.268818Z", "iopub.status.idle": "2025-09-16T08:56:49.290003Z", "shell.execute_reply": "2025-09-16T08:56:49.289310Z" } }, "outputs": [], "source": [ "#######################################################################\n", "# Pygmo problem class\n", "#######################################################################\n", "class MGAHodographicShapingTrajectoryOptimizationProblem:\n", " \"\"\"\n", " Class to initialize, simulate, and optimize an MGA transfer with hodographic-shaping low-thrust legs.\n", " \"\"\"\n", "\n", " def __init__(self,\n", " central_body: str,\n", " transfer_body_order: List[str],\n", " bounds: List[List[float]],\n", " departure_semi_major_axis: float = np.inf,\n", " departure_eccentricity: float = 0.0,\n", " arrival_semi_major_axis: float = np.inf,\n", " arrival_eccentricity: float = 0.0):\n", " \"\"\"\n", " Class constructor.\n", " \"\"\"\n", "\n", " self.transfer_body_order = transfer_body_order\n", " self.central_body = central_body\n", "\n", " self.no_of_swingbys = len(transfer_body_order) - 2\n", " self.no_of_legs = len(transfer_body_order) - 1\n", "\n", " # Number of free hodographic-shaping coefficients per leg, per velocity direction\n", " # Currently the value is 2. Can be modified if the create_low_thrust_transfer_object function is changed in\n", " # order to create hodographic legs with a different number of coefficients\n", " self.no_free_shaping_coefficients_per_velocity_direction = 2\n", " self.total_no_shaping_free_coefficients = self.no_free_shaping_coefficients_per_velocity_direction * 3 * self.no_of_legs\n", "\n", " self.bounds = bounds\n", " # Check if size of provided bounds is correct\n", " if len(self.bounds) != 2 or len(self.bounds[0]) != 8 or len(self.bounds[1]) != 8:\n", " raise RuntimeError(\"Size of provided parameters bounds is invalid.\")\n", "\n", " self.departure_semi_major_axis = departure_semi_major_axis\n", " self.departure_eccentricity = departure_eccentricity\n", " self.arrival_semi_major_axis = arrival_semi_major_axis\n", " self.arrival_eccentricity = arrival_eccentricity\n", "\n", " self.current_transfer_trajectory_object = None\n", " self.current_node_times = None\n", " self.current_design_parameter_vector = None\n", "\n", " # Radius of solar system bodies, used to define the swingby periapsis radius.\n", " #\n", " # The values were retrieved from SPICE, using:\n", " # from tudatpy.interface import spice\n", " # spice.load_standard_kernels()\n", " # bodies_to_create = [\"Sun\", \"Mercury\", \"Venus\", \"Earth\", \"Mars\", \"Jupiter\", \"Saturn\", \"Uranus\", \"Neptune\"]\n", " # planetary_radii = {}\n", " # for i in bodies_to_create:\n", " # planetary_radii[i] = spice.get_average_radius(i)\n", " self.planetary_radii = {\n", " 'Sun': 696000000.0,\n", " 'Mercury': 2439699.9999999995,\n", " 'Venus': 6051800.0,\n", " 'Earth': 6371008.366666666,\n", " 'Mars': 3389526.6666666665,\n", " 'Jupiter': 69946000.0,\n", " 'Saturn': 58300000.0,\n", " 'Uranus': 25363666.666666668,\n", " 'Neptune': 24623000.0 }\n", "\n", " def swingby_periapsis_to_optim_parameter(self, swingby_periapsis) -> float:\n", " \"\"\"\n", " Converts the value of the swingby periapsis altitude to the parameter being optimized. The parameter being optimized\n", " is the log10 of the periapsis.\n", " \"\"\"\n", "\n", " if swingby_periapsis <= 0:\n", " raise RuntimeError(f\"Value for the swingby periapsis altitude should be larger than zero (it is {swingby_periapsis}).\")\n", "\n", " return np.log10(swingby_periapsis)\n", "\n", " def optim_parameter_to_swingby_periapsis(self, optim_parameter) -> float:\n", " \"\"\"\n", " Converts the value of the parameter being optimized to the swingby periapsis altitude. The parameter being optimized\n", " is the log10 of the periapsis.\n", " \"\"\"\n", "\n", " return 10**optim_parameter\n", "\n", " def get_bounds(self) -> Tuple[list, list]:\n", " \"\"\"\n", " Returns the bounds for the optimized parameters. For the integer parameters, the bounds should also be integers.\n", " \"\"\"\n", "\n", " ################################################################################################################\n", " # Extract user-defined bounds\n", "\n", " # Departure date\n", " departure_date_lb = self.bounds[0][0]\n", " departure_date_ub = self.bounds[1][0]\n", "\n", " # Departure velocity (departure from initial node)\n", " departure_velocity_lb = self.bounds[0][1]\n", " departure_velocity_ub = self.bounds[1][1]\n", "\n", " # Arrival velocity (arrival to final node)\n", " arrival_velocity_lb = self.bounds[0][2]\n", " arrival_velocity_ub = self.bounds[1][2]\n", "\n", " # Time of flight per leg\n", " leg_time_of_flight_lb = self.bounds[0][3]\n", " leg_time_of_flight_ub = self.bounds[1][3]\n", "\n", " # Incoming velocity at swingby nodes\n", " swingby_incoming_velocity_lb = self.bounds[0][4]\n", " swingby_incoming_velocity_ub = self.bounds[1][4]\n", "\n", " # Swingby periapsis altitude\n", " swingby_periapsis_altitude_lb = self.swingby_periapsis_to_optim_parameter(self.bounds[0][5])\n", " swingby_periapsis_altitude_ub = self.swingby_periapsis_to_optim_parameter(self.bounds[1][5])\n", "\n", " # Free shaping coefficients of each leg\n", " leg_free_coefficients_lb = self.bounds[0][6]\n", " leg_free_coefficients_ub = self.bounds[1][6]\n", "\n", " # Number of revolutions per leg\n", " leg_number_of_revolutions_lb = self.bounds[0][7]\n", " leg_number_of_revolutions_ub = self.bounds[1][7]\n", "\n", " ################################################################################################################\n", " # Construct array with bounds of design parameter\n", "\n", " # Select lower bounds\n", " lower_bounds = []\n", " lower_bounds.append(departure_date_lb)\n", " lower_bounds.append(departure_velocity_lb)\n", " lower_bounds.append(arrival_velocity_lb)\n", "\n", " for _ in range(self.no_of_legs):\n", " lower_bounds.append(leg_time_of_flight_lb)\n", " for _ in range(self.no_of_swingbys):\n", " lower_bounds.append(swingby_incoming_velocity_lb)\n", " for _ in range(self.no_of_swingbys):\n", " lower_bounds.append(swingby_periapsis_altitude_lb)\n", " for _ in range(self.total_no_shaping_free_coefficients):\n", " lower_bounds.append(leg_free_coefficients_lb)\n", " for _ in range(self.no_of_legs):\n", " lower_bounds.append(leg_number_of_revolutions_lb)\n", "\n", " # Select upper bounds\n", " upper_bounds = []\n", " upper_bounds.append(departure_date_ub)\n", " upper_bounds.append(departure_velocity_ub)\n", " upper_bounds.append(arrival_velocity_ub)\n", "\n", " for _ in range(self.no_of_legs):\n", " upper_bounds.append(leg_time_of_flight_ub)\n", " for _ in range(self.no_of_swingbys):\n", " upper_bounds.append(swingby_incoming_velocity_ub)\n", " for _ in range(self.no_of_swingbys):\n", " upper_bounds.append(swingby_periapsis_altitude_ub)\n", " for _ in range(self.total_no_shaping_free_coefficients):\n", " upper_bounds.append(leg_free_coefficients_ub)\n", " for _ in range(self.no_of_legs):\n", " upper_bounds.append(leg_number_of_revolutions_ub)\n", "\n", " return lower_bounds, upper_bounds\n", "\n", " def get_nix(self):\n", " \"\"\"\n", " Select the number of integer parameters in the problem. The integer parameters are the last elements of the\n", " design parameter vector. Here, only the numbers of revolutions per leg are considered to be integers.\n", " \"\"\"\n", " return self.no_of_legs\n", "\n", " def get_transfer_trajectory_object(self,\n", " design_parameter_vector: np.ndarray) -> \\\n", " tudatpy.trajectory_design.transfer_trajectory.TransferTrajectory:\n", " \"\"\"\n", " Function that creates a transfer trajectory object, evaluates it using the provided design parameter vector and\n", " return the evaluated transfer trajectory object.\n", " \"\"\"\n", "\n", " if not (self.current_design_parameter_vector is not None and np.all(design_parameter_vector == self.current_design_parameter_vector)):\n", " self.fitness(design_parameter_vector, post_processing=True)\n", " return self.current_transfer_trajectory_object\n", "\n", " def get_node_times(self,\n", " design_parameter_vector: np.ndarray) -> \\\n", " tudatpy.trajectory_design.transfer_trajectory.TransferTrajectory:\n", " \"\"\"\n", " Function that creates a transfer trajectory object, evaluates it using the provided design parameter vector and\n", " returns the associated node times.\n", " \"\"\"\n", "\n", " if not (self.current_design_parameter_vector is not None and np.all(design_parameter_vector == self.current_design_parameter_vector)):\n", " self.fitness(design_parameter_vector, post_processing=True)\n", " return self.current_node_times\n", "\n", " def fitness(self,\n", " design_parameter_vector: np.ndarray,\n", " post_processing: bool = False) -> List[float]:\n", " \"\"\"\n", " Function to evaluate the fitness. A single-objective optimization is used, in which the objective is the deltaV\n", " necessary to execute the transfer.\n", " \"\"\"\n", "\n", " # Compute the final index of each type of parameters\n", " time_of_flight_index = 3 + self.no_of_legs\n", " incoming_velocity_index = time_of_flight_index + self.no_of_swingbys\n", " swingby_periapsis_index = incoming_velocity_index + self.no_of_swingbys\n", " shaping_free_coefficient_index = swingby_periapsis_index + self.total_no_shaping_free_coefficients\n", " revolution_index = shaping_free_coefficient_index + self.no_of_legs\n", "\n", " ################################################################################################################\n", " # Extract floating point numbers from parameter vector\n", "\n", " # Departure date\n", " departure_date = design_parameter_vector[0]\n", "\n", " # Departure velocity\n", " departure_velocity = design_parameter_vector[1]\n", "\n", " # Arrival velocity\n", " arrival_velocity = design_parameter_vector[2]\n", "\n", " # Time of flight per leg\n", " times_of_flight = design_parameter_vector[3:time_of_flight_index]\n", "\n", " # Incoming velocities at each swingby node\n", " incoming_velocities = design_parameter_vector[time_of_flight_index:incoming_velocity_index]\n", "\n", " # Swingby periapsis at each swingby node\n", " swingby_periapse_altitudes = \\\n", " [self.optim_parameter_to_swingby_periapsis(x) for x in design_parameter_vector[incoming_velocity_index:swingby_periapsis_index]]\n", "\n", " # hodographic shaping free coefficients\n", " shaping_free_coefficients = design_parameter_vector[swingby_periapsis_index:shaping_free_coefficient_index]\n", "\n", " ################################################################################################################\n", " # Extract integer numbers from parameter vector\n", "\n", " # Number of revolutions\n", " numbers_of_revolutions = \\\n", " [int(x) for x in design_parameter_vector[shaping_free_coefficient_index:revolution_index]]\n", "\n", " ################################################################################################################\n", " # Create and evaluate the transfer trajectory\n", "\n", " # Create the system of bodies\n", " # This is done in the fitness function instead of the constructor so that the class can be pickled\n", " bodies = environment_setup.create_simplified_system_of_bodies()\n", "\n", " # Create the transfer trajectory object\n", " transfer_trajectory_object = create_low_thrust_transfer_object(\n", " self.transfer_body_order,\n", " times_of_flight,\n", " self.departure_semi_major_axis,\n", " self.departure_eccentricity,\n", " self.arrival_semi_major_axis,\n", " self.arrival_eccentricity,\n", " bodies,\n", " self.central_body,\n", " numbers_of_revolutions)\n", "\n", " # Create the node times\n", " node_times = []\n", " node_times.append(departure_date)\n", " for i in range(len(times_of_flight)):\n", " node_times.append(node_times[i] + times_of_flight[i])\n", "\n", " # Create the leg free parameters\n", " leg_free_parameters = []\n", " for i in range(self.no_of_legs):\n", " leg_free_coefficients = np.array(shaping_free_coefficients[\n", " i * self.no_free_shaping_coefficients_per_velocity_direction * 3 :\n", " (i + 1) * self.no_free_shaping_coefficients_per_velocity_direction * 3])\n", " leg_free_parameters.append([numbers_of_revolutions[i]] + leg_free_coefficients.tolist())\n", "\n", " # Create the node free parameters\n", " node_free_parameters = []\n", "\n", " # Departure node parameters\n", " # The excess velocity angles are taken to be 0.0\n", " node_free_parameters.append([departure_velocity, 0.0, 0.0])\n", "\n", " # Swingby nodes parameters\n", " # The excess velocity angles, swingby plane angle, and deltaV are taken to be 0.0\n", " for i in range(self.no_of_swingbys):\n", " swingby_body = self.transfer_body_order[1:-1][i]\n", " swingby_planetary_radius = self.planetary_radii[swingby_body]\n", " swingby_periapse_radius = swingby_planetary_radius + swingby_periapse_altitudes[i]\n", " node_free_parameters.append([incoming_velocities[i], 0.0, 0.0, swingby_periapse_radius, 0.0, 0.0])\n", "\n", " # Arrival node parameters\n", " # The excess velocity angles are taken to be 0.0\n", " node_free_parameters.append([arrival_velocity, 0.0, 0.0])\n", "\n", " # Evaluate the transfer and retrieve the delta V\n", " try:\n", " transfer_trajectory_object.evaluate(node_times, leg_free_parameters, node_free_parameters)\n", " objective = transfer_trajectory_object.delta_v\n", "\n", " # If in post-processing, save transfer trajectory object and node times\n", " if post_processing:\n", " self.current_design_parameter_vector = design_parameter_vector\n", " self.current_transfer_trajectory_object = transfer_trajectory_object\n", " self.current_node_times = node_times\n", " else:\n", " self.current_design_parameter_vector = None\n", " self.current_transfer_trajectory_object = None\n", " self.current_node_times = None\n", " # If an error was thrown while evaluating the transfer, assign a very large value to the objective function\n", " except RuntimeError:\n", " objective = 1e16\n", "\n", " # If in post-processing throw the error\n", " if post_processing:\n", " raise\n", "\n", " # Return the value of the objective function\n", " return [objective]" ] }, { "cell_type": "markdown", "id": "f6174500-ab3d-43cc-ab0a-c1fdfa1030df", "metadata": {}, "source": [ "## Optimization" ] }, { "cell_type": "markdown", "id": "803afd53", "metadata": {}, "source": [ "### Transfer Trajectory Setup " ] }, { "cell_type": "markdown", "id": "de4f38b2", "metadata": {}, "source": [ "Before running the optimisation, it is first necessary to select some of the properties of the transfer trajectory: the central body, the sequence of bodies, the departure orbit, and the arrival orbit. " ] }, { "cell_type": "code", "execution_count": 4, "id": "e3c6fa5e", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T08:56:49.291863Z", "iopub.status.busy": "2025-09-16T08:56:49.291680Z", "iopub.status.idle": "2025-09-16T08:56:49.294568Z", "shell.execute_reply": "2025-09-16T08:56:49.294099Z" } }, "outputs": [], "source": [ "###########################################################################\n", "# Define transfer trajectory settings\n", "###########################################################################\n", "\n", "# Simplified bodies\n", "central_body = 'Sun'\n", "\n", "# Define order of bodies (nodes) for gravity assists\n", "transfer_body_order = ['Earth', 'Mars', 'Earth', \"Jupiter\"]\n", "\n", "# Define departure and insertion orbit\n", "departure_semi_major_axis = np.inf\n", "departure_eccentricity = 0.0\n", "\n", "arrival_semi_major_axis = np.inf\n", "arrival_eccentricity = 0.0" ] }, { "cell_type": "markdown", "id": "5ba8838a", "metadata": { "tags": [] }, "source": [ "### Optimization Setup " ] }, { "cell_type": "markdown", "id": "11ccb5ef-4843-4a97-834b-678fa133f92d", "metadata": {}, "source": [ "Next, the bounds of the optimized parameters are selected. The bounds used here were not tuned, therefore further tuning them might allow better optimization results to be found.\n", "\n", "The lower and upper bounds for the departure and arrival velocities are all taken to have the value 0; as such, these free variables are not optimized." ] }, { "cell_type": "code", "execution_count": 5, "id": "f89b3b58-51dc-4287-9f68-00fc594ac9d4", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T08:56:49.296241Z", "iopub.status.busy": "2025-09-16T08:56:49.296063Z", "iopub.status.idle": "2025-09-16T08:56:49.300069Z", "shell.execute_reply": "2025-09-16T08:56:49.299658Z" } }, "outputs": [], "source": [ "###########################################################################\n", "# Select optimization bounds\n", "###########################################################################\n", "\n", "julian_day = constants.JULIAN_DAY\n", "\n", "# Select bounds\n", "departure_date_lb = 9000 * julian_day # s\n", "departure_date_ub = 9200 * julian_day # s\n", "departure_velocity_lb = 0.0 # m/s\n", "departure_velocity_ub = 0.0 # m/s\n", "arrival_velocity_lb = 0.0 # m/s\n", "arrival_velocity_ub = 0.0 # m/s\n", "leg_tof_lb = 200 * julian_day # s\n", "leg_tof_ub = 1200 * julian_day # s\n", "swingby_incoming_velocity_lb = 0 # m/s\n", "swingby_incoming_velocity_ub = 7000 # m/s\n", "swingby_periapsis_altitude_lb = 2e2 # m\n", "swingby_periapsis_altitude_ub = 2e11 # m\n", "leg_free_coefficient_lb = -1e4 # -\n", "leg_free_coefficient_ub = 1e4 # -\n", "leg_number_of_revolutions_lb = 0 # -\n", "leg_number_of_revolutions_ub = 4 # -\n", "\n", "bounds = [\n", " [departure_date_lb, departure_velocity_lb, arrival_velocity_lb, leg_tof_lb, swingby_incoming_velocity_lb,\n", " swingby_periapsis_altitude_lb, leg_free_coefficient_lb, leg_number_of_revolutions_lb],\n", " [departure_date_ub, departure_velocity_ub, arrival_velocity_ub, leg_tof_ub, swingby_incoming_velocity_ub,\n", " swingby_periapsis_altitude_ub, leg_free_coefficient_ub, leg_number_of_revolutions_ub]]" ] }, { "cell_type": "code", "execution_count": 6, "id": "360eed58", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T08:56:49.301501Z", "iopub.status.busy": "2025-09-16T08:56:49.301347Z", "iopub.status.idle": "2025-09-16T08:57:03.762723Z", "shell.execute_reply": "2025-09-16T08:57:03.761929Z" } }, "outputs": [], "source": [ "###########################################################################\n", "# Setup optimization\n", "###########################################################################\n", "\n", "seed = 42\n", "pop_size = 1000\n", "\n", "# Create Pygmo problem\n", "transfer_optimization_problem = MGAHodographicShapingTrajectoryOptimizationProblem(\n", " central_body, transfer_body_order, bounds, departure_semi_major_axis, departure_eccentricity,\n", " arrival_semi_major_axis, arrival_eccentricity)\n", "problem = pg.problem(transfer_optimization_problem)\n", "\n", "# Create algorithm and define its seed\n", "algorithm = pg.algorithm(pg.sga(gen=1))\n", "algorithm.set_seed(seed)\n", "\n", "# Create island\n", "island = pg.island(algo=algorithm, prob=problem, size=pop_size, seed=seed)" ] }, { "cell_type": "markdown", "id": "03cd6596", "metadata": {}, "source": [ "To setup the optimization, it is first necessary to initialize the optimization problem. This problem, defined through the class `MGAHodographicShapingTrajectoryOptimizationProblem`, is given to PyGMO trough the `pg.problem()` method.\n", "\n", "The optimiser is selected to be the Simple Genetic Algorithm (SGA) algorithm (its documentation can be found [here](https://esa.github.io/pygmo2/algorithms.html#pygmo.sga)), and is created by calling `pg.algorithm()`. A fixed seed is used to ensure that the results are reproducible.\n", "\n", "Since a large population is being optimized (1000 individuals), the `pg.island` class is used instead of `pg.population`. The island serves as a wrapper to the population, allowing the population to be evolved simultaneously in multiple threads, multiple processes, or even multiple machines. Here, as the type os island is not selected explicitly, usually the evolution will occur in multiple processes (though it depends on the operating systems), meaning that multiple CPUs will be used simultaneously. A seed is also specified when creating the island (this seed is used when creating the initial population)." ] }, { "cell_type": "markdown", "id": "28b67fef", "metadata": {}, "source": [ "### Run Optimization " ] }, { "cell_type": "markdown", "id": "0edb9f89", "metadata": {}, "source": [ "Finally, the optimization can be executed by successively evolving the island. To do so, the method `island.evolve()` is called the desired number of times inside a loop. After starting each evolution of the island, the method `island.wait_check()` is called, which makes the program wait for all the evolutions running in parallel to finish. After each evolution is finished, the best fitness and parameters vector are saved." ] }, { "cell_type": "code", "execution_count": 7, "id": "bd566c01", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T08:57:03.771170Z", "iopub.status.busy": "2025-09-16T08:57:03.770853Z", "iopub.status.idle": "2025-09-16T09:13:09.265163Z", "shell.execute_reply": "2025-09-16T09:13:09.264501Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 1 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 2 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 3 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 4 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 5 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 6 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 7 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 8 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 9 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 10 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 11 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 12 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 13 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 14 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 15 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 16 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 17 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 18 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 19 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 20 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 21 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 22 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 23 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 24 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 25 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 26 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 27 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 28 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 29 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 30 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 31 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 32 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 33 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 34 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 35 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 36 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 37 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 38 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 39 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution: 40 / 40\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Evolution finished\n" ] } ], "source": [ "###########################################################################\n", "# Run optimization\n", "###########################################################################\n", "\n", "num_gen = 40\n", "\n", "# Initialize lists with the best individual per generation\n", "list_of_champion_f = [island.get_population().champion_f]\n", "list_of_champion_x = [island.get_population().champion_x]\n", "\n", "# freeze_support needs to be called when using multiprocessing on windows\n", "# If called from other operating systems, freeze_support doesn't have any effect\n", "mp.freeze_support()\n", "\n", "for i in range(num_gen):\n", " print('Evolution: %i / %i' % (i+1, num_gen))\n", "\n", " island.evolve() # Evolve island\n", " island.wait_check() # Wait until all evolution tasks in the island finish\n", "\n", " # Save current champion\n", " list_of_champion_x.append(island.get_population().champion_x)\n", " list_of_champion_f.append(island.get_population().champion_f)\n", "print('Evolution finished')" ] }, { "cell_type": "markdown", "id": "a5090def", "metadata": {}, "source": [ "## Results Analysis" ] }, { "cell_type": "markdown", "id": "a1522bb9", "metadata": {}, "source": [ "Having finished the optimisation, it is now possible to analyse the results. An optimum of 41.7 km/s was found, which is a very significant improvement with respect to the best fitness in the initial population (above 200 km/s). The evolution of the minimum $\\Delta V$ throughout the optimization is plotted." ] }, { "cell_type": "code", "execution_count": 8, "id": "05c3804e", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T09:13:09.266846Z", "iopub.status.busy": "2025-09-16T09:13:09.266659Z", "iopub.status.idle": "2025-09-16T09:13:09.699443Z", "shell.execute_reply": "2025-09-16T09:13:09.698801Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "########### CHAMPION INDIVIDUAL ###########\n", "\n", "Total Delta V [m/s]: 43545.831395288056\n", "Parameters vector [various]: [ 7.80996883e+08 0.00000000e+00 0.00000000e+00 2.58495102e+07\n", " 6.52561545e+07 7.72926114e+07 1.26835559e+02 3.25688083e+03\n", " 1.06044638e+01 9.16093851e+00 -5.27626936e+03 -5.64389499e+02\n", " -9.49687225e+03 2.46759146e+03 -2.12123157e+03 -2.04282663e+02\n", " -8.16012459e+02 9.90566809e+03 -5.90041545e+03 2.72080705e+03\n", " -1.02444844e+03 -6.28446099e+03 -9.86182936e+03 -2.59895327e+03\n", " -9.70955023e+03 -2.14051547e+03 -3.64300937e+03 -2.72263066e+03\n", " 0.00000000e+00 1.00000000e+00 0.00000000e+00]\n" ] }, { "data": { "text/plain": [ "Text(0, 0.5, '$\\\\Delta V$ [km/s]')" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAysAAAGbCAYAAADEAg8AAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjYsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvq6yFwwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAX/FJREFUeJzt3Xd8VGXe/vFrMplMeiEhhRaK9ISuFKVIFaWJrgVZsTzqrhVB3Uf9uYANZK0PirvrKqgsgruKshYEVkAQCyJIERCkQ0IgkkLqJLl/f4QMDAmQMpmZhM/79YrJnLnnzPd8c2Jyce5zjsUYYwQAAAAAPsbP2wUAAAAAQEUIKwAAAAB8EmEFAAAAgE8irAAAAADwSYQVAAAAAD6JsAIAAADAJxFWAAAAAPgkwgoAAAAAn0RYAQAAAOCTCCsAfNbcuXNlsVhcPho2bKgBAwbok08+qbX3zc3N1dSpU7Vy5cpKjd+7d68sFovmzp3r1josFoumTp3qfFzWj71791Z5XQMGDNCAAQPOO662tqW69cD3zJ49u8L9w1P7DoALi7+3CwCA85kzZ47atWsnY4xSU1P16quvauTIkVq8eLFGjhzp9vfLzc3VtGnTJKlSf1AnJCTom2++UatWrdxey+muuuoqffPNN0pISKjya2fPnl0LFeFCNHv2bMXExOiWW25xWe6pnwMAFxbCCgCfl5SUpB49ejgfX3HFFYqKitJ7771XK2Glqux2u3r16lXr79OwYUM1bNiwWq/t0KGDm6u58OTm5io4ONjbZbiVMUb5+fkKCgqq8bo89XMA4MLCNDAAdU5gYKACAgJks9lclhcWFurpp59Wu3btZLfb1bBhQ9166606evSoy7gvv/xSAwYMUHR0tIKCgtSsWTNdc801ys3N1d69e52BYNq0ac7pZ2f+K/LpKpr+MnXqVFksFm3dulU33nijIiIiFBcXp9tuu02ZmZkur8/KytIdd9yh6OhohYaG6oorrtAvv/xS7n3OnAY2ceJEhYSEKCsrq9zY66+/XnFxcXI4HJIqnnZ1+PBhXXfddQoLC1NERISuv/56paamllvX2aZs3XLLLWrevLnLsmnTpqlnz55q0KCBwsPD1a1bN7355psyxlTQufMrKSnRzJkznd/T2NhY3XzzzTp48KBzTFX6IEkLFy5U7969FRISotDQUA0bNkwbNmwot22hoaHavHmzhg4dqrCwMA0aNOictX788cfq1KmT7Ha7WrZsqVdeecW5H5zOGKPZs2erS5cuCgoKUlRUlK699lrt3r3bZdyAAQOUlJSkdevWqW/fvgoODlbLli01Y8YMlZSUuIzNysrSQw89pBYtWiggIECNGzfWxIkTlZOT4zLOYrHo3nvv1V//+le1b99edrtdb7/9tqTKfe+aN2+urVu3atWqVc6fjbJ94GzTwNasWaNBgwYpLCxMwcHB6tOnjz799FOXMWX79ooVK/THP/5RMTExio6O1tixY3X48GGXsef6+QVQ/xBWAPi84uJiFRUVyeFw6ODBg84/wsaNG+ccU1JSotGjR2vGjBkaN26cPv30U82YMUPLli3TgAEDlJeXJ6n0D6qrrrpKAQEBeuutt7RkyRLNmDFDISEhKiwsVEJCgpYsWSJJuv322/XNN9/om2++0RNPPFGt2q+55hq1adNGH3zwgf73f/9X8+fP14MPPuh83hijMWPG6N1339XkyZO1aNEi9erVS8OHDz/vum+77Tbl5ubq/fffd1mekZGhjz/+WOPHjy8X6Mrk5eVp8ODBWrp0qaZPn65//etfio+P1/XXX1+t7Syzd+9e3XXXXXr//ff14YcfauzYsbrvvvv01FNPVWt9f/zjH/WnP/1JQ4YM0eLFi/XUU09pyZIl6tOnj44dOyapan149tlndeONN6pDhw56//339e677yo7O1t9+/bVzz//7PL6wsJCjRo1SgMHDtTHH3/snBpYkSVLlmjs2LGKjo7WwoULNXPmTL333nvOIHC6u+66SxMnTtTgwYP10Ucfafbs2dq6dav69OmjI0eOuIxNTU3VTTfdpPHjx2vx4sUaPny4Hn30Uc2bN885Jjc3V/3799fbb7+t+++/X59//rn+9Kc/ae7cuRo1alS5oPjRRx/p9ddf15///Gd98cUX6tu3r6TKfe8WLVqkli1bqmvXrs6fjUWLFp21L6tWrdLAgQOVmZmpN998U++9957CwsI0cuRILVy4sNz4//mf/5HNZtP8+fM1c+ZMrVy5UuPHj3c+f76fXwD1kAEAHzVnzhwjqdyH3W43s2fPdhn73nvvGUnmgw8+cFm+bt06I8k5/t///reRZDZu3HjW9z169KiRZKZMmVKpOvfs2WMkmTlz5jiXTZkyxUgyM2fOdBl79913m8DAQFNSUmKMMebzzz83kswrr7ziMu6ZZ54pV0NZP/bs2eNc1q1bN9OnTx+X186ePdtIMps3b3Yu69+/v+nfv7/z8euvv24kmY8//tjltXfccUe5bTnztWUmTJhgEhMTK+hIqeLiYuNwOMyTTz5poqOjndt8rnWebtu2bUaSufvuu12Wf/fdd0aSeeyxx5zLKtOH/fv3G39/f3Pfffe5jMvOzjbx8fHmuuuuc9k2Seatt946Z41lLr74YtO0aVNTUFDgst7o6Ghz+q/ab775xkgyL7zwgsvrDxw4YIKCgswjjzziXNa/f38jyXz33XcuYzt06GCGDRvmfDx9+nTj5+dn1q1b5zKubF//7LPPnMskmYiICPPbb7+dc3vO9b3r2LFjhd+7in4OevXqZWJjY012drZzWVFRkUlKSjJNmjRxrrds3z7zez1z5kwjyaSkpLhs07l+fgHULxxZAeDz3nnnHa1bt07r1q3T559/rgkTJuiee+7Rq6++6hzzySefKDIyUiNHjlRRUZHzo0uXLoqPj3de2atLly4KCAjQnXfeqbfffrvc1Bt3GzVqlMvjTp06KT8/X2lpaZKkFStWSJJuuukml3GnHzU6l1tvvVVr167Vjh07nMvmzJmjiy++WElJSWd93YoVKxQWFlauvsq+79l8+eWXGjx4sCIiImS1WmWz2fTnP/9Z6enpzm2urLLenDkF75JLLlH79u313//+17msMn344osvVFRUpJtvvtllHwkMDFT//v0rvPrbNddcc946c3Jy9MMPP2jMmDEKCAhwLg8NDS13TtUnn3wii8Wi8ePHu9QQHx+vzp07l6shPj5el1xyicuyTp06ad++fS7rTEpKUpcuXVzWOWzYMFkslnLrHDhwoKKiospthzu/d2V9+e6773TttdcqNDTUudxqter3v/+9Dh486PL9kir+eZHk3F5P//wC8D7CCgCf1759e/Xo0UM9evTQFVdcob/97W8aOnSoHnnkEWVkZEiSjhw5ooyMDOe5LKd/pKamOqcMtWrVSsuXL1dsbKzuuecetWrVSq1atdIrr7xSK7VHR0e7PLbb7ZLknJaWnp4uf3//cuPi4+Mrtf6bbrpJdrvdeZ7Azz//rHXr1unWW2895+vS09MVFxdXbnll37ci33//vYYOHSpJeuONN/T1119r3bp1evzxxyWd2ubKSk9Pl6QKr37WqFEj5/NS5fpQNsXq4osvLrePLFy40LmPlAkODlZ4ePh56zx+/LiMMRX288xlR44ccY49s4Zvv/22XA1n7hdS6T50ei+PHDmiTZs2lVtfWFiYjDHl1llRP939vZNO9eVs3z9JLt9D6fw/L57++QXgfVwNDECd1KlTJ33xxRf65ZdfdMkllzhPyC073+RMYWFhzq/79u2rvn37qri4WD/88INmzZqliRMnKi4uTjfccIOnNkFS6R9nRUVFSk9Pd/lDraIT3SsSFRWl0aNH65133tHTTz+tOXPmKDAwUDfeeON53/f7778vt7yi9w0MDCx3UQBJ5f4IXrBggWw2mz755BMFBgY6l3/00UeV2paKapSklJQUNWnSxOW5w4cPKyYmxvm4Mn0oG//vf/9biYmJ533/M0+MP5uoqChZLJZy55tI5fsZExMji8Wi1atXO/8QP11Fy84nJiZGQUFBeuutt876/Okq2i53f++k0r74+fkpJSWl3HNlJ82fWVtl+NLPL4Dax5EVAHXSxo0bJcl55a4RI0YoPT1dxcXFzqMwp3+0bdu23DqsVqt69uyp1157TZL0448/Sir/r7m16fLLL5ck/fOf/3RZPn/+/Eqv49Zbb9Xhw4f12Wefad68ebr66qsVGRl53vfNzs7W4sWLz/u+zZs31y+//KKCggLnsvT0dK1du9ZlnMVikb+/v6xWq3NZXl6e3n333Upvy+kGDhwoSS4nk0vSunXrtG3btnJX5zpfH4YNGyZ/f3/9+uuvFe4jp18euypCQkLUo0cPffTRRy4neZ84caLczUtHjBghY4wOHTpU4fsnJydX+f1HjBihX3/9VdHR0RWu88wrtlWkKt+7M4/snE1ISIh69uypDz/80GV8SUmJ5s2bpyZNmqhNmzaV28gKnO3nF0D9wpEVAD5vy5YtKioqklT6R/KHH36oZcuW6eqrr1aLFi0kSTfccIP++c9/6sorr9QDDzygSy65RDabTQcPHtSKFSs0evRoXX311frrX/+qL7/8UldddZWaNWum/Px8579IDx48WFLpUZjExER9/PHHGjRokBo0aKCYmJhK/dFXVUOHDlW/fv30yCOPKCcnRz169NDXX39dpT/whw4dqiZNmujuu+9WamrqeaeASdLNN9+sl156STfffLOeeeYZtW7dWp999pm++OKLcmN///vf629/+5vGjx+vO+64Q+np6Zo5c2a5KVJXXXWVXnzxRY0bN0533nmn0tPT9fzzz1fraIEktW3bVnfeeadmzZolPz8/DR8+XHv37tUTTzyhpk2bulxVrTJ9aN68uZ588kk9/vjj2r17t/N+PUeOHNH333+vkJCQc17x61yefPJJXXXVVRo2bJgeeOABFRcX6y9/+YtCQ0P122+/OcddeumluvPOO3Xrrbfqhx9+UL9+/RQSEqKUlBStWbNGycnJ+uMf/1il9544caI++OAD9evXTw8++KA6deqkkpIS7d+/X0uXLtXkyZPVs2fPc66jKt+75ORkLViwQAsXLlTLli0VGBh41pA1ffp0DRkyRJdffrkeeughBQQEaPbs2dqyZYvee++9Sh+9KlOZn18A9YxXT+8HgHOo6GpgERERpkuXLubFF180+fn5LuMdDod5/vnnTefOnU1gYKAJDQ017dq1M3fddZfZuXOnMab0akxXX321SUxMNHa73URHR5v+/fubxYsXu6xr+fLlpmvXrsZutxtJZsKECWet81xXAzt69GiF23T6Fb0yMjLMbbfdZiIjI01wcLAZMmSI2b59e6WuBlbmscceM5JM06ZNTXFxcbnnK7r61sGDB80111xjQkNDTVhYmLnmmmvM2rVry22LMca8/fbbpn379iYwMNB06NDBLFy4sMKrgb311lumbdu2xm63m5YtW5rp06ebN998s1zdlbkamDGlV6V67rnnTJs2bYzNZjMxMTFm/Pjx5sCBAxWOP18fjDHmo48+MpdffrkJDw83drvdJCYmmmuvvdYsX77cOWbChAkmJCTkvPWdbtGiRSY5OdkEBASYZs2amRkzZpj777/fREVFlRv71ltvmZ49e5qQkBATFBRkWrVqZW6++Wbzww8/OMf079/fdOzYsdxrK+r7iRMnzP/7f//PtG3b1gQEBJiIiAiTnJxsHnzwQZOamuocJ8ncc889FdZf2e/d3r17zdChQ01YWJiR5Kylop8DY4xZvXq1GThwoHNbe/XqZf7zn/+4jCnbt8+8otmKFSuMJLNixQpjTOV/fgHUHxZjqnmnLgAAcFYOh0NdunRR48aNtXTpUm+XAwB1EtPAAABwg9tvv11DhgxRQkKCUlNT9de//lXbtm3jSlUAUAOEFQAA3CA7O1sPPfSQjh49KpvNpm7duumzzz7jXAoAqAGm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L7zwgkt9zZs317PPPqvbbrtNYWFhatasmf7+979X2DcAqCsIKwDgI6xWq5599lnNmjVLBw8erNG6vvzySx0+fFhfffWVXnzxRU2dOlUjRoxQVFSUvvvuO/3hD3/QH/7wBx04cMDldQ8//LAmT56sDRs2qE+fPho1apTS09MlSSkpKerfv7+6dOmiH374QUuWLNGRI0d03XXXuazj7bfflr+/v77++mv97W9/q7C+V155RS+88IKef/55bdq0ScOGDdOoUaO0c+dO53t17NhRkydPVkpKih566KEK1zNp0iR9/fXXWrx4sZYtW6bVq1frxx9/dBlz66236uuvv9aCBQu0adMm/e53v9MVV1zhfC9Jys3N1fPPP693331XX331lfbv3+/ynm+88YYef/xxPfPMM9q2bZueffZZPfHEE3r77bdd3utPf/qT7r//fm3btk3Dhg1Tfn6+unfvrk8++URbtmzRnXfeqd///vf67rvvnH3o3bu37rjjDqWkpCglJUVNmzYtt53r16/XddddpxtuuEGbN2/W1KlT9cQTT2ju3Lku41544QX16NFDGzZs0N13360//vGP2r59e4W9A4A6wQAAvG7ChAlm9OjRxhhjevXqZW677TZjjDGLFi0yp/+vesqUKaZz584ur33ppZdMYmKiy7oSExNNcXGxc1nbtm1N3759nY+LiopMSEiIee+994wxxuzZs8dIMjNmzHCOcTgcpkmTJua5554zxhjzxBNPmKFDh7q894EDB4wks2PHDmOMMf379zddunQ57/Y2atTIPPPMMy7LLr74YnP33Xc7H3fu3NlMmTLlrOvIysoyNpvN/Otf/3Iuy8jIMMHBweaBBx4wxhiza9cuY7FYzKFDh1xeO2jQIPPoo48aY4yZM2eOkWR27drlfP61114zcXFxzsdNmzY18+fPd1nHU089ZXr37m2MOdW/l19++bzbfuWVV5rJkyc7H/fv399Zb5kVK1YYSeb48ePGGGPGjRtnhgwZ4jLm4YcfNh06dHA+TkxMNOPHj3c+LikpMbGxseb1118/b00A4Kv8vRmUAADlPffccxo4cKAmT55c7XV07NhRfn6nDp7HxcUpKSnJ+dhqtSo6OlppaWkur+vdu7fza39/f/Xo0UPbtm2TVPqv+ytWrFBoaGi59/v111/Vpk0bSVKPHj3OWVtWVpYOHz6sSy+91GX5pZdeqp9++qmSWyjt3r1bDodDl1xyiXNZRESE2rZt63z8448/yhjjrK1MQUGBy3kwwcHBatWqlfNxQkKCszdHjx7VgQMHdPvtt+uOO+5wjikqKip3AvyZ215cXKwZM2Zo4cKFOnTokAoKClRQUKCQkJBKb6ckbdu2TaNHj3ZZdumll+rll19WcXGxrFarJKlTp07O5y0Wi+Lj48t9jwGgLiGsAICP6devn4YNG6bHHntMt9xyi8tzfn5+Msa4LKvoRG6bzeby2GKxVLispKTkvPWUneRdUlKikSNH6rnnnis3JiEhwfl1Zf8QP/PkcWNMlU4oL+tDRespU1JSIqvVqvXr1zv/oC9zeuiqqDdl6ynr0RtvvKGePXu6jDtznWdu+wsvvKCXXnpJL7/8spKTkxUSEqKJEydW+cIDFfXmzP3gbNtRme8xAPgqwgoA+KAZM2aoS5cu5Y4INGzYUKmpqS5/vLrz3ijffvut+vXrJ6n0yMH69et17733SpK6deumDz74QM2bN5e/f/V/fYSHh6tRo0Zas2aN870kae3atS5HSc6nVatWstls+v77753neWRlZWnnzp3q37+/JKlr164qLi5WWlqa+vbtW6164+Li1LhxY+3evVs33XRTlV67evVqjR49WuPHj5dUGnx27typ9u3bO8cEBASouLj4nOvp0KGD1qxZ47Js7dq1atOmTbnABAD1CWEFAHxQcnKybrrpJs2aNctl+YABA3T06FHNnDlT1157rZYsWaLPP/9c4eHhbnnf1157Ta1bt1b79u310ksv6fjx47rtttskSffcc4/eeOMN3XjjjXr44YcVExOjXbt2acGCBXrjjTeq9Efzww8/rClTpqhVq1bq0qWL5syZo40bN+qf//xnpdcRFhamCRMmOK9wFhsbqylTpsjPz88Z5Nq0aaObbrpJN998s1544QV17dpVx44d05dffqnk5GRdeeWVlXqvqVOn6v7771d4eLiGDx+ugoIC/fDDDzp+/LgmTZp01tdddNFF+uCDD7R27VpFRUXpxRdfVGpqqktYad68ub777jvt3btXoaGhatCgQbn1TJ48WRdffLGeeuopXX/99frmm2/06quvulyRDADqI64GBgA+6qmnnio31ad9+/aaPXu2XnvtNXXu3Fnff//9Wa+UVR0zZszQc889p86dO2v16tX6+OOPFRMTI0lq1KiRvv76axUXF2vYsGFKSkrSAw88oIiICJfzYyrj/vvv1+TJkzV58mQlJydryZIlWrx4sVq3bl2l9bz44ovq3bu3RowYocGDB+vSSy91Xl64zJw5c3TzzTdr8uTJatu2rUaNGqXvvvuuwqtunc3//M//6B//+Ifmzp2r5ORk9e/fX3PnzlWLFi3O+bonnnhC3bp107BhwzRgwADFx8drzJgxLmMeeughWa1WdejQQQ0bNtT+/fvLradbt256//33tWDBAiUlJenPf/6znnzyyXLTBAGgvrGYiia9AgBQB+Xk5Khx48Z64YUXdPvtt3u7HABADTENDABQZ23YsEHbt2/XJZdcoszMTD355JOSVO7KWQCAuomwAgCo055//nnt2LFDAQEB6t69u1avXu2cugYAqNuYBgYAAADAJ3GCPQAAAACfRFgBAAAA4JMIKwAAAAB8EmEFAAAAgE8irAAAAADwSYQVAAAAAD6JsAIAAADAJxFWAAAAAPik/w8//8EMoG0NtQAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "###########################################################################\n", "# Extract the best individual and plot fitness evolution\n", "###########################################################################\n", "\n", "print('\\n########### CHAMPION INDIVIDUAL ###########\\n')\n", "print('Total Delta V [m/s]: ', island.get_population().champion_f[0])\n", "print(\"Parameters vector [various]: \", island.get_population().champion_x)\n", "\n", "# Plot fitness over generations\n", "fig, ax = plt.subplots(figsize=(8, 4), constrained_layout=True)\n", "ax.plot(np.arange(0, num_gen+1), np.float_(list_of_champion_f) / 1000)\n", "\n", "# Prettify\n", "ax.set_xlim((0, num_gen))\n", "ax.grid('major')\n", "ax.set_title('Best individual over generations')\n", "ax.set_xlabel('Number of generation')\n", "ax.set_ylabel('$\\Delta V$ [km/s]')\n" ] }, { "cell_type": "markdown", "id": "6b6eddd8-d2ed-4433-9425-28384c8c8902", "metadata": {}, "source": [ "### Plot the transfer\n", "\n", "The transfer trajectory object associated with a given design parameter vector can be retrieved from the PyGMO problem class through the `get_transfer_trajectory_object` object. The returned object is already evaluated. Using the transfer trajectory object one can, for example, retrieve the state and thrust acceleration history throughout the transfer and plot them." ] }, { "cell_type": "code", "execution_count": 9, "id": "512d3fee-ddc6-4b93-9cf3-2c7359cf9e44", "metadata": { "execution": { "iopub.execute_input": "2025-09-16T09:13:09.701193Z", "iopub.status.busy": "2025-09-16T09:13:09.701024Z", "iopub.status.idle": "2025-09-16T09:13:10.154617Z", "shell.execute_reply": "2025-09-16T09:13:10.154138Z" }, "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "###########################################################################\n", "# Extract the champion trajectory object and plot trajectory\n", "###########################################################################\n", "\n", "design_parameters = island.get_population().champion_x\n", "champion_transfer_trajectory_object = transfer_optimization_problem.get_transfer_trajectory_object(design_parameters)\n", "champion_node_times = transfer_optimization_problem.get_node_times(design_parameters)\n", "\n", "# Extract the state history\n", "state_history = champion_transfer_trajectory_object.states_along_trajectory(100)\n", "fly_by_states = np.array([state_history[champion_node_times[i]] for i in range(len(champion_node_times))])\n", "state_history = result2array(state_history)\n", "acceleration_history = champion_transfer_trajectory_object.inertial_thrust_accelerations_along_trajectory(100)\n", "acceleration_history = result2array(acceleration_history)\n", "au = 1.5e11\n", "\n", "# Plot the state history\n", "fig, ax = plt.subplots(figsize=(8,5), constrained_layout=True)\n", "ax.plot(state_history[:, 1] / au, state_history[:, 2] / au)\n", "ax.quiver(state_history[:, 1] / au, state_history[:, 2] / au,\n", " acceleration_history[:, 1], acceleration_history[:, 2], label=\"Thrust acceleration\", zorder=10, alpha=0.6)\n", "ax.grid()\n", "ax.scatter(fly_by_states[0, 0] / au, fly_by_states[0, 1] / au, color='blue', label='Earth departure')\n", "ax.scatter(fly_by_states[1, 0] / au, fly_by_states[1, 1] / au, color='green', label='Mars fly-by')\n", "ax.scatter(fly_by_states[2, 0] / au, fly_by_states[2, 1] / au, color='brown', label='Earth fly-by')\n", "ax.scatter(fly_by_states[3, 0] / au, fly_by_states[3, 1] / au, color='red', label='Jupiter arrival')\n", "ax.scatter([0], [0], color='orange', label='Sun')\n", "ax.set_xlabel('x [AU]')\n", "ax.set_ylabel('y [AU]')\n", "ax.set_aspect('equal')\n", "ax.legend(bbox_to_anchor=[1, 1])" ] } ], "metadata": { "kernelspec": { "display_name": "tudat-examples", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.13" } }, "nbformat": 4, "nbformat_minor": 5 }