scenarioDragSensitivity

Overview

This script executes a parametric analysis of the control law examined in scenarioDragRendezvous, considering the performance of that control law across both increasing initial displacements and variations in atmospheric density.

This script is found in the folder src/examples and executed by using:

python3 scenarioDragSensitivity.py

The simulation layout is identical to that used in scenarioDragRendezvous. The simulator used in that scenario is run using a grid of true anomaly offsets and atmospheric densities using Python’s multiprocessing library, and a set of surface plots reflecting the controls’ terminal performance and trajectories are produced.

Illustration of Simulation Results

In this scenario, the differential drag scenario used in scenarioDragRendezvous is examined across a range of initial along-track orbit offsets and atmospheric densities. The resulting Hill-frame trajectories corresponding to every fifth simulation run are shown in the following image.

../_images/scenarioDragSensitivity_hillTrajectories.svg

To visualize the sensitivity of terminal position and velocity errors to both increasing baseline and variations in density, the following surface plots - which show the scale of terminal errors as a function of atmospheric density and maneuver baseline - are shown below:

../_images/scenarioDragSensitivity_positionSensitivity.svg ../_images/scenarioDragSensitivity_velocitySensitivity.svg
scenarioDragSensitivity.results_to_ranges_and_plot(results_list)[source]

Converts a results dict from scenarioDragRendezvous to a set of initial and final distance and speed errors, and returns a plot of all of the Hill-frame trajectories.

scenarioDragSensitivity.sim_wrapper(arg)[source]

Because multiprocessing.map only considers single-input functions as targets for maps, this function maps args and kwargs from the dicts provided by multiprocessing to the inputs demanded by drag_simulator.