Analysis of Orbital Relay Stations for Orbital Energy Accumulation Author: Juan José García Ortiz Tutor: Mario Merino Martínez University Carlos III Madrid

NANOSTAR consortium

1 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc

Abstract Space activities and attainability are constrained nowadays due to the high cost of rocketry employed put payloads in . This study aims to design, analyze and optimize a network of orbital relay stations that can act as orbital energy accumulators to support other space missions. The sustainability of such network lies in a balance between payloads being orbited and deorbited. To test the viability of the proposed network, simulated missions are implemented in a programming environment in a way that can reproduce numerically the behaviour of the network in missions of increasing complexity. The design optimization of such missions is then performed assisted with a built-in genetic algorithm. The results gathered prove that the energetic balance can be achieved providing an operation with minimal degradation. Proper mission design and station orbit spacing are key in defining suitable design conditions that yield the best case performance and the genetic algorithm is applicable to reduce the losses in off-design operating conditions.

1 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Contents

1 Introduction 3 1.1 Proposed study and design objectives ...... 4

2 State of the art 5

3 Model and numerical implementation 7 3.1 Mathematical model and assumptions ...... 7 3.2 Problem variables ...... 7 3.3 Cowell orbital propagator ...... 8 3.4 Targeting method: Lambert algorithm ...... 9 3.5 Payload-station operations: Attachment and ejection ...... 11

4 Single Payload Missions 12 4.1 Direct Mission definition ...... 12 4.1.1 Objective ...... 13 4.1.2 Code structure and algorithm design ...... 13 4.1.3 Output and post-process ...... 15 4.1.4 Remarks on mission design ...... 17 4.1.5 Sensitivity analysis from non-Hohmann scenarios ...... 18 4.1.6 Limitations on station operation ...... 21 4.2 Wait and flight time estimator ...... 23 4.2.1 Objective ...... 23 4.2.2 Code structure and algorithm design ...... 23 4.2.3 Output and post-process ...... 24 4.2.4 Station spacing ...... 26 4.2.5 Multi-payload coupling ...... 28

5 Multi-payload Mission Design 29 5.1 Objective ...... 29 5.2 Code structure and algorithm design ...... 29 5.3 Output and post-process ...... 32

6 Mission analysis and optimization 38 6.1 Introduction to genetic algorithms ...... 38 6.2 Problem definition ...... 39 6.3 Problem bounding ...... 39 6.4 Optimized cases ...... 41

7 Conclusion 50

Appendices 51

2 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

1 Introduction

Means of transport on Earth are frequently, if not always, supported by ground infrastructure (roads, highways, airports, sea ports and railways among others). Space transport is popularly known to be expensive and challenging in many ways. In a similar way to air and ground transportation, space infrastructure may help overcome many of these challenges and hopefully cheapen the operations at least in the vicinity of planet Earth.

The present study is devoted to the analysis and optimization of a network of space stations so that they may serve as orbital energy accumulators. Such energy will be employed to perform orbit transfers of payloads without the use of propellant. The stations, which may serve other purposes besides payload transferring, are reduced to black boxes that receive, store and eject payloads on demand. These operations will of course have an impact on the station orbit itself. One of the objectives of this project is to assess that impact as well as study how to reduce it.

The proposed layout is complex and has many details to consider, the following points fall under the scope of this study:

• The implementation in a programming environment of the relay station network with trajectory propagation capabilities.

• Complete this programming model with payload transfer missions of one or more payload exchanges with increasing complexity.

• Asses the impact of the payload operation on the station orbit and normal trajectory.

• Study how different parameters affect this impact and determine possible ways to minimize it.

Other considerations regarding station design, station orbit correction, station and payload orbital insertion or economical analysis of the network cost and maintenance are beyond the scope of the present study.

If accomplished, this network would allow the transmission of any kind of material between different of our planet. The payloads may serve as supplies for the operation of the stations, to place smaller scale objects into orbit and, in general, to enable motion between orbits of items that lack a proper propulsion system in an economical way. It constitutes a fairly complex optimization problem that motivates this report.

Interesting particular applications include the orbital placement of nanosatellites, which are meant themselves to be inexpensive devices, have difficulties implementing propulsion systems in their constrained allowable weight. This network of relay stations would reduce the propulsive requirements to just a launch into a low altitude parking orbit. The orbit raising propulsion would be replaced with a set of transfers between the stations of the network.

Additionally, since the operation of this network is restricted to the Earth gravity influence only, the generalization to a Earth-moon system would also have interesting application. Such generalization would require the introduction of three body problem considerations that are beyond the scope of this study. If accomplished, the generalized network would grant access to a cheap and reliable way of supply transfer between Earth and moon stations as well as grant easy access to the L2 .

All in all, the socioeconomic impact this system would have if performed would imply a cheapening and simplification of the access to all layers of orbits within the cislunar regime. This would broaden the impact of space activities in life on Earth and open new possibilities in regards of scientific research and attainability of the space around Earth.

3 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

1.1 Proposed study and design objectives The objective is to implement in a programming environment a system of stations that are able to perform payloads transactions among themselves without the use of propellant. The stations will use part of their mechanical orbital energy to launch payload towards another station. Such an operation will cause the station lose part of its energy and change its linear momentum. Assess the impact of this transactions on the orbit of the stations is one of the main concerns of this study. A succession of several payload transactions may be defined, constituting a mission. Missions may include one or more payloads and aim to make them visit several stations in a predetermined sequence. Along this report, missions of increasing complexity will be considered with different implementation in code. To implement the specific algorithms for each mission, several tools are at our disposal and will be detailed in section 3. In general, some assumptions regarding the modelling of the missions are considered: • Both stations and payloads follow an ideal two body problem motion around the Earth (orbital parameter µ = 3.986 × 105km3s−2) • Payload exchanges are impulsive instantaneous manoeuvres in which linear momentum of the payload + station system is preserved. • The station network is defined by initial conditions (in terms of their Classical ) and they are assumed to be in orbit already. • Payloads start attached to a certain station at t = 0. • Payload and station mass is assumed constant and defined as an input. Each payload operation is defined by: • Initial station • Target station • Waiting time in initial station • Time of flight after ejection until arrival at target station. • Payload number (if more than one payload is being considered). One or more of this parameters may be not directly an input but instead product of an estimation that attempts to optimize the operation of the network (for example, adjusting the time of flight to make close-to-Hohmann transfers [1]). In the following chapters we will go through the state of the art of space infrastructure and payload transfer systems (section 2), the theoretical basis and the preliminary tools to model it in a programming environment (section 3). Section 4 is devoted to the missions that can only process one payload at a time and chapter 5 to the more complete versions with multiple payloads and varied mission profiles. To conclude, the performance of the more advanced missions will be optimized in section 6. The code employed and developed for this project is published in GitHub repository at: https://github.com/JuanJoseGarciaOrtiz/Analysis-of-Orbital-Relay-Stations

4 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

2 State of the art

Space transportation has since its beginning been approached using engineering. The lack of material medium in space requires a self-contained propulsion system. In this way, store both fuel and oxidizer and achieve a high velocity jet exhaust to propel a spacecraft. The mixture of fuel and oxidizer is called propellant and corresponds to a large fraction of the mass at launch of modern spacecraft. This technology was first proposed for space applications by Konstantin E. Tsiolkovsky. Tsiolkovsky also developed the famous rocket equation, first published in his work Exploration of the Universe with Reaction Machines [2], that relates the ∆V and the propellant mass fraction required with the specific impulse Isp (see equation 1).

    mfull mpropellant ∆V = Isp log = Isp log 1 + (1) mempty mempty

Some refinements have cheapened the propellant cost through the years. Improvements in nozzle and combustion technology provide a higher Isp granting more ∆V for the same mass fraction. Staging of rocket launchers also allows important mass reductions and nozzle selection for appropriate altitudes. Even with the technological advances of recent decades, it still costed about $10,000 to launch a pound of payload in year 2008 according to NASA (Advanced Space Transportation Program: Paving the Highway to Space [3]). Launching a payload in orbit is also cheaper at low Earth orbit (LEO) than at higher or more energetic orbits like geostationary (GTO) [4]. The network of payload transferring stations discussed on this project can reduce the cost of launches to orbits higher than LEO. This project studies a means of space infrastructure which, like terrestrial infrastructure, is aimed towards supporting other activities. Much has been developed in terms of space systems focused towards terrestrial use. Satellite networks for telecommunications, navigation, positioning or research are largely used nowadays. Research and application on space infrastructure to support other space related activities is not as frequent. Space infrastructure for orbital transfers has been proposed in several ways, the most notable cases are the space elevator [5] and skyhooks [6]. The first one, space elevator, has long been a topic of interest in science and science fiction. It consists on a tether (or ribbon), an anchor to bind it to the Earth, a counterweight at high orbit and a climber that moves the cargo along the tether (Space elevator systems architecture [7]). However, the many challenges are well known and many shortcomings have to be tackled in order for it to be viable. This challenges include structural, operational and economic considerations. Skyhooks on the contrary can prove feasible and applications meant for payload transfers have been proposed such as the mentioned article by Joseph A. Carroll [6] (Tether applications in space transportation). The skyhook would exchange part of its momentum with an arriving spacecraft to propel it. Compared to space elevators, tethers can launch spacecraft into higher orbits with lower material requirements and investment. A few research papers have discussed the idea of propellant-less payload transfer. Published by Robert P. Hoyt and Chauncey Uphoff, an article discussing a Cislunar Tether Transport System [8] showed some similarities with our current project. The article proposed a system of two tethers to exchange payloads with minimal use of propellant, also supporting the viability of this on energy arguments. The idea is similar, but it has strong three body problem implications and properties in comparison to our current project as well as much more technical considerations on the tethers themselves while ours is a design and optimisation problem of the network regardless of particular station technology.

5 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Robert P. Hoyt is also the co-founder in 1994 (with Robert L. Forward) of Tethers Unlimited, Inc (https://www.tethers.com/) pioneering aerospace company with headquarters in Seattle, US. The company was originally founded to "develop products based upon space tether technologies, including solutions for cleaning up space debris and transporting people and payloads through space" (https://www.tethers.com/about/). In the past decades the company has expanded its cope to other space and aeronautical technologies. Electrodynamic tethers (EDT) have also been subject of research by other investigators like M. Sanjurjo. For instance in the thesis Self Balanced Bare Electrodynamic Tethers. Space Debris Mitigation and other Applications [9], bare EDTs are studied and proposed for a variety of applications like mitigation of space debris, Jovian capture of spacecraft and Tethered Satellite Systems (TSS) at Lagrangian points. Further research in collaboration with other investigators have deepened in the topic of EDTs. Such is the case in Generator Regime of Self-Balanced Electrodynamic Bare Tethers [10] with J. Peláez which studies the balancing of bare EDTs in circular inclined orbits to serve as deorbiter. Another paper by Sanjurjo et al [11] titled On the dynamics of a tethered system near the collinear libration points studies the stabilization of tethered systems in collinear Lagrange points, which are naturally unstable. Another recent investigation thesis released in 2011 by M. Kruijff covers an in-depth study on space tethers (Tethers in Space - a propellantless propulsion in-orbit demonstration [12]). It includes a vast analysis on tether dynamics and many specific applications of tethers in space (access of low orbits where drag limits satellite life, SpaceMail and waste disposal, artificial gravity or space debris removal). A transport network, much like the one being described here, is mentioned as "one of the more futuristic of the proposed mechanical tether applications". Science communication channel Kurzgesagt (https://kurzgesagt.org/) posted a pop-science video on November 2019 about skyhooks. Titled 1,000km Cable to the Stars - The Skyhook [13], the video attempted to divulge knowledge on skyhooks to the public interested in science and space exploration and achieved more than 5 million views (so far). This illustrates that skyhooks do already have a social and cultural interest.

Figure 2.1: Screenshot of the ku rz ge sa gt .o rg video [13], showing an artistic representation of the skyhook.

6 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

3 Model and numerical implementation

This section is devoted to the theoretical background in which the whole study is performed, as well as the elementary coding tools employed to implement it via MATLAB.

3.1 Mathematical model and assumptions For the entirety of this project, the ideal two body problem (2BP) serves as the framework of the study. It is a well-known problem for which analytical formulations of almost every particularity exist [1]. Since it is a classical mechanics approach, Newton laws of motion apply and will be our chosen formulation in this case. The ideal two body problem studies the motion of two bodies (in practical applications assumed to be particles) due to the gravitational force between them exclusively. It is a central force problem that can be further simplified by assuming that one particle is substantially more massive than the other one (m1  m2) which clearly applies to our study in which each station is orbiting the Earth. With this assumption accounted for, the center of mass lies at particle 1 (the Earth) and small mass 2 is either a station or a payload being transferred. We define vector r which goes from the Earth (1) to the object of interest (2) and the gravitational parameter µ = Gm1. The equations of motion are, in vector form: d2r µ = − r (2) dt2 r3

It is not the objective of this thesis to elaborate extensively on the two body problem, which is a well studied topic on its own. The following sections focus on the particular tools that derive from this theory.

3.2 Problem variables In order to integrate equation 2, a state vector with 6 components is needed. This is the same number of parameters required to describe the instantaneous motion of particle 2 around particle 1. There are many possible choices for these 6 parameters. In this project we are using two different sets of variable depending on the particular application we want: • Classical Orbital Elements (COE) [1] The COE provide information about the orientation of the orbital plane, the orbit itself and the actual (instantaneous) position within that orbit explicitly. The direction of the pericenter is provided with respect to an inertial reference frame centered in 1 with 3 Euler angles: the right ascension of the ascending node (RAAN or Ω), the inclination (i) and the argument of pericenter (ω). These three angles correspond to a 3-1-3 rotation sequence, in such a way that the x axis of the rotated frame lies in the direction of the periapsis. The orbit is described by its semimajor axis (a) and eccentricity (e). The instantaneous position is described by the angle that the actual position vector forms with the periapsis i.e. the (θ). This is the only parameter that change in time in an ideal 2BP with no external forces or perturbations. • Position and velocity vectors The vectors r and v with three components each in Cartesian coordinates with respect to an ECI frame are the most general approach possible from the classical mechanics point of view (they are unspecific for this problem). Nate that at any instant, they provide the same information about the orbit and the orbital plane than the COE but in a less straightforward manner. In principle, all of the 6 components can change in time.

7 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Clearly, the COE are more insightful about the motion without any need for further processing of the data. However, they are ill-behaved under certain conditions, which is undesirable from the computational point of view. As they use Euler angles to describe rotations, singularities appear whenever there is a loss of one degree of freedom due to axis alignment. Additionally, the semimajor axis of a parabola goes to infinity, potentially causing numerical issues in limiting scenarios between ellipses and hyperbolas. The rv formulation, on the other hand, is very robust. For this reasons we will work in r and v vectors for the most time when executing algorithms and then change on demand to COE for a better data analysis and post-processing. To change between the two, functions rv2COE and COE2rv are implemented. Both of them require some additional features to circumvent the mentioned singularities of the COE. rv2COE relies on vector operations to obtain one by one the COE using geometrical arguments. On the other hand, COE2rv is a straightforward rotation of the rv vectors from a radial + tangential component on the perifocal reference frame to the ECI frame. It is also not the intention of this thesis to focus on a detailed explanation of these algorithms.

3.3 Cowell orbital propagator There are many scenarios in which we will need time propagation of our network and payload system. Complying with the formulation we have chosen for our problem, we can either use Kepler equations for a time propagation with virtually no errors or use a Cowell propagator with sufficient accuracy to yield reliable results. The first option relies on COE and the second one on rv components. Recall that all the possible operations that do not comply with ideal 2BP will be solely instantaneous events. For all the timestamps in between those events, accounting for its effect on initial conditions, the position of the network elements is found by direct propagation. Both options have advantages, the Kepler equations are the most accurate propagation possible as it is not sensitive to any tolerance or integration error. On the other hand, the rv Cowell propagator makes it very simple and reliable to adjust the initial conditions after an instantaneous event and, most importantly, can easily account for nonideal effects if desired as it consists simply on a numerical integration of the equations of motion (equation 2). The implementation of this propagator in high level programming languages with built-in integrators (such as MATLAB’s ode45 ) is extremely simple. The two functions used are: • [t,q]= OrbitalPropagator(tspan,q0,mu,options) This function receives an initial state vector q0 from any object in 2BP motion in a gravity field of parameter mu and propagates it along a time span tspan. Output parameters are the state vector q at every instant t resulting from integration with ode45. The integration is configured to use an absolute and relative tolerance of tol = 10−8. • dqdt = OrbitDynamics(t,q,mu) Returns the instantaneous state vector rate of change. This is passed to ode45 as a function handle. As the name says, it governs the dynamics of the problem. As with some other functions in this section, unit tests are carried out to check the correct operation of this function. The strategy is fairly simple, we pick an arbitrary case from we which we know for certain the solution after a given time. The easiest way to do this is to define an arbitrary orbit with its COE and propagate for exactly one period. If the propagator works properly, the COE at the last timestamp of the propagation should be the same as the input ones (to tolerance) with a possible close-to-360 shift in some angles at most. Two cases were considered, one in which the orbital plane is singular and there is no motion in the z plane (equatorial ) and a general one. Both of them yielded a precision 10−6 or more in all the COE after one period.

8 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

3.4 Targeting method: Lambert algorithm To perform payload transfer from one station to another, a targeting problem needs to be solved. Given an initial and final position within a gravitational field, there is a family of conics that join both points. Such a family is parametrized with one single variable, if that variable is the time of flight ∆t that it takes to reach the final destination from the initial point then we are dealing with Lambert’s problem [1]. Solving this problem allows to know the required initial velocity that the payload needs to have when it leaves a station in order to successfully reach the target one within a prescribed ∆t. The problem was originally posed in the 18th century by Johann Lambert and since then many different algorithms have been proposed. We can classify them in two groups, the ones that rely on geometrical properties of the problem as in [Avanzini 2008] [14] and the ones that employ a global variable formulation of the problem [Gooding 1990] [15]. All of them reduce to root finding of a nonlinear function for which several numerical methods can be implemented. In general, geometrical algorithms are simpler to understand but do not necessarily show optimal computational behaviour. For example, the one due to Avanzini parametrizes the family using the eccentricity of the orbit exploiting the fact that, when expressed vectorially, one of the components is fixed, which corresponds to the minimum eccentricity ellipse possible. It is a simple algorithm, but the nonlinearities lie under several nested functions, and a final conditional that depends on the kind of conic been assessed in that iteration (Kepler equations). All this considerations make it hard to find a single expression for the root finding algorithm, from which an analytical derivative form can be obtained. Such expression is important to properly implement some of the most efficient numerical methods. Other methods are completely unaffected by this, such as bisection (despite its slow linear convergence). The choice made for the Lambert algorithm to implement in this study is the one due to Nitin Arora and Ryan P. Russel. The algorithm described in [Arora 2013] [16] is a recent fairly complex global variable formulation algorithm that shows several advantages over the others. Firstly, the final expression for root finding has relatively simple first and second derivatives, allowing the use of Halley’s method. Halley’s method is a more refined version of Newton’s method that allows cubic rate of convergence (unless the second derivative is close to zero, in which case it behaves as Newton’s method). Secondly, as all global variable formulations, the solution space is continuous with the global parameter chosen. We are going to briefly discuss the workflow of the algorithm here (see flowchart in figure 3.2), a more detailed explanation can be found in [Arora 2013]. The call to Lambert.m requires as an input the initial and final position vectors, the required time of flight, a choice for short or long arc and the gravitational parameter µ. Then, the angle swept by the trajectory is computed (if a short arc was chosen then ∆θ < π√, ∆θ > π otherwise). An initial guess for the global variable k is required, for elliptic orbits k = − 2/2 is a good choice, although more refined choices can be obtained depending on input parameters. The time of flight associated to that guess is computed and compared to the target time of flight Dt. If they do not match, Halley’s method (equation 3, which corresponds to equation 40 in [Arora 2013] [16]) is used to obtain the next iteration of k.

" #−1 (TOF − Dt)TOF 00 ∆k = −(TOF − Dt) TOF 0 − (3) 2TOF 0

In this equation, Dt is the target time of flight and TOF , TOF 0, TOF 00 the time of flight derivatives with the k of the current iteration. The process is repeated until convergence. The global variable k describes the conic which solves our Lambert problem. It is convenient to convert it into the more widely used Sundman’s global variable x that solves for the semi-latus rectum p and the Lagrange

9 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

˙ multipliers f, g, f, g˙. Finally, the velocities at points r1 and r2 to complete the arc within ∆t are shown in equations 4 and 5 as a function of the Lagrange multipliers. Figure 3.1 shows how the time of flight depends on k, this is the function from which we are root finding.

(r − fr ) v = 1 2 (4) 1 g (g ˙r − r ) v = 2 1 (5) 2 g

Figure 3.1: TOF vs k

Figure 3.2: Arora’s algorithm flowchart

Additionally, a brief description of the functions in figure 3.2 is provided: • DeltaTheta(r_1,r_2,ref) Calculates the argument between vectors r1 and r2 along the reference direction starting from r1. • TimeOfFlight(k,tau,S) Retrieves time of flight and its first and second derivatives for a given k. The function also requires parameters tau and S which depend only geometry.

10 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

• WauxFunction(k) Evaluates auxiliary function W(k) for the specified case, this function serves only as an encapsulation for a lengthy expression within the time of flight function for better readability and debugging. Its only call is within TimeOfFlight.m • k2x(k,r1,r2,Dtheta) Converts global variable k to Sundman’s global variable x, from which it is easy to obtain the semi-latus rectum p and then the Lagrange multipliers. Unit testing is also applied to check the functionality of this algorithm. The strategy now is to choose two points for which we already know the conic joining then in an elapsed time ∆t. We begin by defining the orbit of the conic COE with two values of true anomaly θ. The r and v at each point can be computed using COE2rv, and the time of flight ∆t using Kepler equations. We use this time and the position vectors as an input for Lambert.m and the result must coincide with the velocity vectors already computed (to tolerance). This is again done for two cases, equatorial and general plane. Figure 3.3 shows the arc used in one of this unit tests (equatorial case). Table 1 show the parameters of the conic and other information regarding this test.

104 5 Unswept orbit 4.5 Swept arc a 42164 km 4 e 0.1 3.5 ω 0 3 Ω 0 2.5 i 0 y (km) 2 θ1 0

1.5 θ2 π/4

1 ∆t ≈ 8931s

0.5 Table 1: Parameters of one of the the unit tests 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 of Lambert function x (km) 104

Figure 3.3: Plot of one of the conic arc used for unit testing of Lambert function

3.5 Payload-station operations: Attachment and ejection The modelling of instantaneous payload ejection/attachment manoeuvres is performed applying linear momentum conservation (notice mechanical energy may not be conserved) before and after the event. Equation 6 is applicable to both scenarios (subindex s stands for station and p for payload):

(ms + mp)vs+p = msvs + mpvp (6)

For ejection operations, the initial velocity of the initial station + payload is known, the required payload velocity is retrieved from Lambert’s algorithm and the station final velocity is our unknown. Function PerformEjection(m_station,m_payload,v_i,v_payload) solves for this velocity in the vector equation.

For attachments, both station and payload velocity are known and vs+p is our unknown. Func- tion PerformAttachment(m_station,m_payload,v_station,v_payload) solves for this velocity in equation 6. Since this are impulsive maneuvers, the implementation for an event that occurs at t = t∗ is to propagate until t = t∗, then call either PerformEjection.m or PerformAtttachment.m and overwrite the velocity of the corresponding payload/station for timestamp t = t∗ to continue propagating with the new initial conditions.

11 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

4 Single Payload Missions

First mission prototypes are implemented with additional constrains and assumptions on top of the ones introduced in subsection 1.1. For these preliminary missions we consider a single payload that follows a trajectory from one initial station with identifier iinitial to a final station with identifier ifinal passing through all the stations in between. Stations are meant to be numbered from lowest to highest so this means that stations raise the orbit of the payload as the mission advances. Nothing stops us, however, from defining the stations in a reverse way, but the objective of these preliminary missions is to test the tools from section 3 and obtain insight on station impact from simplified profiles. Later mission algorithms will account for more complex coupling (between several payloads) for an operationally more convenient mission design.

4.1 Direct Mission definition The first mission of this type (codenamed Mission00 in the matlab code) reproduces the mission profile prescribed by the user. None of the parameters is estimated by the algorithm (hence the name direct definition). As in all the missions that we will cover in this report, the inputs are given through a .txt input file. An example of this input file is shown in figure 4.1. The information required for this mission to work is the payload mass (remember so far there is only one payload), the initial station of the payload, the destination station and the parameters for all the operations. The payload is forced in these preliminary missions to go from the initial payload to the final one sequentially one by one (in the example in the figure the payload goes from station 3 to station 4 and then from station 4 to destination station 5). Also, since this is a direct definition mission, all the parameters of the operation have to be prescribed by the user, namely the waiting time and the time of flight. The information in this text file has to be consistent with itself, the number of operations should match the difference between the final and the initial station. It also has to be consistent with the station data, station identifiers must be valid and defined. If this consistency is not kept the code will either raise an error or stop working as intended.

%Input file for Mission00 runs, masses in kg, times in seconds% Payload Mass(kg): 10 Initial Station number: 3 Final Station number: 5 ––––––––––––––-Operation 1––––––––––––––––– Pre operation waiting time: 1000 Operation Time of Flight: 3500 ––––––––––––––-Operation 2––––––––––––––––– Pre operation waiting time: 2000 Operation Time of Flight: 4500

Figure 4.1: Example of the input file for this mission

Function ReadMission00Data.m reads the file in figure 4.1 and stores the information in structure InputData. The user may also choose to import this variable directly (respecting the variable

12 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering identificators in the data) and skip the execution of this function since it is not nested within the main mission routine.

4.1.1 Objective The objective of this mission is to provide a tool to identify the most important parameters affecting our problem and quantify the variation of the performance with them. Since the user is able to tweak any parameter from this mission profile (while keeping the assumptions), the aim is to use the information gathered using this prototype to better design further optimizations of the network. This algorithm is, however, not the best option for mission profile design since it does not optimize the profile given and is not flexible enough to define paths that go beyond its added assumptions.

4.1.2 Code structure and algorithm design Due to its added simplifications, the code of this prototype mission is fit into a single routine Mission00.m that calls the subroutines described in section 3. No additional subroutines are employed, the problem may be further modulated but it was deemed unnecessary:

Mission00_results = Mission00(InputData,Network,n_stations,mu)

Figure 4.2: Function call to Mission00

The call to the function (figure 4.2) requires the following inputs: • InputData The structure array containing the information extracted from the file in figure 4.1. • Network Structure array containing the initial COE of the stations in the network as well as station mass. • mu Gravitational parameter of the main attracting body (Earth, for this study).

13 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

The simulation workflow goes as follows. Prior to the first operation, the information is organized in a structure array Operation with the parameters of each operation, including the current station of the payload at the beginning of such. The execution begins with a for loop from 1 to the number of operations. In each operation, the following tasks are performed sequentially:

1. The network is propagated for the wait- ing time of the current operation. Pay- load does not need to be propagated separately, the position and velocity of the current station is assigned. 2. At t = twait, the targeting problem is solved using the Lambert algorithm im- plemented. The initial position is the current position of the payload. The final position has to be calculated by propagating the orbit of the target sta- tion. Here comes into play the key assumption of this prototype mission, since there is only one payload, it is guaranteed that the motion of the tar- get station will be an unperturbed tra- jectory. The current station, however, will receive an impulsive change in ve- locity upon ejection and thus it cannot be propagated yet. 3. The payload ejection is performed us- ing PayloadEjection.m. Payload ends with the velocity required by Lambert and station suffers the impact com- puted with momentum conservation. 4. The station network is propagated for the time of flight of the current opera- tion. 5. Payload position is also propagated since it is now detached from stations. 6. At t = twait + tTOF , payload is attached to target station using PerformAttachment.m. Figure 4.3: Mission00.m flowchart 7. Station COE after the operation are reg- istered for easier postprocessing. Ref- erence time for next iteration is also switched to t = twait + tTOF .

14 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

4.1.3 Output and post-process A main script (AnalyzeMission00.m in fig- ure 4.4) is used to extract conclusions and post-process results of the simulation. The code reads the input from the text files by default, but the user may request to load from existent data structures before calling the main mission function. We will now cover some particular cases show- ing examples of the information that can be retrieved.

Figure 4.4: AnalyzeMission00.m flowchart

Example case We are going to run the code and post-process the results of the mission described in figure 4.1. The initial station network will consist on an equispaced array of five stations in circular orbits ranging from a1 = 8946.5km to a5 = 44782.5 (note that a4 = 35826km is a geosynchronous orbit). The station mass is 1000 kg for all of them. A first mass case of 10kg is considered for the payload. With the prescribed input, the trajectory followed by payload and stations is displayed in figure 4.5. Dashed lines with the initial orbit of the stations are displayed, Solid black lines correspond to station trajectory and solid blue line corresponds to payload trajectory. From this mass case, impact of the operation on the orbit of the stations is not appreciated visually with ease (even with fairly energetic transfer arcs due to poor mission design). A second mass case with payload mass equal to 100kg is considered. In figure 4.6 we can see that the networks degrades much more significantly and in a pretty visual fashion. Light grey dashed lines display initial network orbits and dark grey dashed lines show final orbits. As it should, only stations 3, 4 and 5 are affected.

104 104 4 4

3 3

2 2

1 1

0 0

y ECI (km) -1 y ECI (km) -1

-2 -2

-3 -3

-4 -4

-4 -2 0 2 4 -4 -3 -2 -1 0 1 2 3 4 x ECI (km) 104 x ECI (km) 104

Figure 4.5: Simulation with mass case 1 Figure 4.6: Simulation with mass case 2

To quantify station impact, the post processor also shows tables containing COE and relative velocity change in transfers, printed directly in the command window. A first table displays COE of stations at each critical timestamp, that is, t=0 and before and after each payload transfer. In figure 4.7 we

15 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

can see the information retrieved from the simulation of the first mass case. It can be appreciated that COE are unaltered (to precision granted by the numerical simulation) for all the timestamps and payloads in which no transfer is taking place. Minor but noticeable changes can be seen for example at t1 for station 3 (since payload is being ejected), or at t2 for station 4 (since payload is being attached). The ∆V at each operation is shown in a second table (limitations in this magnitude may be imposed by station impact, ejection system, payload fragile cargo,etc). In figure 4.8, similar appreciations can be made for mass case 2 but in a more pronounced manner. ∆v from both cases is however very similar, since it is mostly affected by mission design of times of flight and wait (that determine the relative position of stations). The minor changes in this parameter are due to more pronounced station orbit degradation after the first ejection (notice the ejection from the first payload is identical, differences appear as the network degrades).

Figure 4.7: Station impact of simulation with mass case 1

Figure 4.8: Station impact of simulation with mass case 2

16 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

4.1.4 Remarks on mission design As it has been already pointed out, to minimize station impact, Hohmann or close-to-Hohmann transfers are preferred. To illustrate we are first going to define a mission with Hohmann transfers [17] from the same stations (at the same altitudes) than those from the example case we covered in the previous subsection.

Hohmann case To simplify the problem definition, we are going to edit the network initial conditions to match the Hohmann configuration at the first operation and set its waiting time to 0. Since in a single operation, the network should degrade very little, both operations are going to be analyzed in different missions for simplicity. Both missions are then single operation, with waiting time set to zero. Exactly zero flight time is not possible, though, since payload handling at the station cannot be instantaneous. A waiting time of 5 seconds is considered instead for computational convenience. The flight time is calculated assuming a perfect Hohmann arc, that is, half a period of the elliptic transfer orbit (equation 8) [1]: a + a a = i f (7) t 2 s a3 TOF = π t (8) µ

Finally, the initial argument of latitude of the target station, to match the 180o transfer arc at time p 3 of arrival is calculated using the angular rate (which for circular orbits is constant ne = µ/a ):

θt0 = π − neTOF (9)

Table 2 shows the inputs and outputs for these simulations, obtained using the tools described previously (mass case of 10kg for payload is considered).

- Operation 3 → 4 Operation 4 → 5 twait 5 s 5 s TOF 27618 s 40263 s o o θt0 32.672 26.314 Initial station —— —— ∆e 0.0013804 0.0010816 ∆a (abs) -38 km -39 km ∆a (rel) -0.14% -0.11% Ejection ∆v 0.26593 km/s 0.18043km/s Final station —— —— ∆e 0.0014684 0.0011322 ∆a (abs) -53 km -51 km ∆a (rel) -0.15% -0.11% Attachment ∆v 0.24498 km/s 0.16894 km/s

Table 2: Hohmann case results

As we can appreciate, the impact and the cost of the operations are significantly reduced when a Hohmann transfer is performed instead of an arbitrary arc. From more than 300km semimajor axis change in station 4 of figure 4.7 to just 38km and 53km. Variation in eccentricity is less insightful from small scale operations departing from a circular change (since reference situation is 0). The

17 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

most remarkable difference comes in the delta V of the operations, which is reduced to less than 10% of the value of the arbitrary case.

We conclude that an appropriate mission design is desirable whenever we wish to have a robust network that can withstand the operations. Additionally we would also like payloads to be comparatively light, but that will imply limiting the capabilities and scope of the network. On the other hand, optimizing the mission profile is always a possibility.

Additional remarks include also that operations are cheaper at higher altitudes (notice that delta V of the second operation considered from stations 4 to 5 are lower). We were already aware of this (it was the expected result) since those orbits are less energetic. We will have to account for this when we study efficient station spacing.

4.1.5 Sensitivity analysis from non-Hohmann scenarios

In order to study how variations from the optimal behaviour affect the operation of the network (i.e. the station impact and the ∆v), a sensitivity analysis is performed. We are going to consider 3 scenarios for this mission: sensitivity to transfer arc angle, sensitivity to time of flight and sensitivity to changing both accordingly.

Sensitivity to transfer arc angle

We are going to study the variation of the most important station parameters with the transfer arc, while keeping the time of flight associated with the Hohmann transfer. To do this we maintain the initial true anomaly of the target station so that it reaches 180o at t = TOF and change the initial true anomaly of the initial station from -20o to 20o. We are using the same study case as in the rest of the chapter, in particular figures 4.9 to 4.12 cover transfer from station 3 (at 26869.5km) to station 4 (at 35826km).

10-3 -30 -1.15

-1.2 Initial station Final station -35 Average -1.25

Initial station -1.3 -40 Final station Average -1.35

-45 -1.4

-1.45 -50 -1.5

Relative semimajor axis variation -1.55 -55 Absolute semimajor axis variation (km) -1.6

-60 -1.65 160 165 170 175 180 185 190 195 200 160 165 170 175 180 185 190 195 200 Arc angle (º) Arc angle (º)

Figure 4.9: Sensitivity of stations semimajor axis Figure 4.10: Sensitivity of stations relative semima- variation ∆a jor axis variation ∆a/a

18 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

10-3 1.85 Initial station 0.5 1.8 Final station Initial station (ejection) Average Final station (attachment) 1.75 0.45 Average

1.7 0.4 1.65

1.6 0.35 1.55

Eccentricity variation 1.5 0.3 Absolute delta V (km/s) 1.45 0.25 1.4

1.35 160 165 170 175 180 185 190 195 200 0.2 Arc angle (º) 160 165 170 175 180 185 190 195 200 Arc angle (º) Figure 4.11: Sensitivity of stations eccentricity vari- Figure 4.12: Sensitivity of operations ∆V ation ∆e

The most remarkable result out of the ones covered is the evolution of the semimajor axis change. As we can see in figures 4.9 and 4.9, the average variation of the semimajor axis between the two stations is very similar for all cases. This is a consequence of mechanical energy conservation applied to the system of stations and payloads (recall mechanical energy per unit mass of an object in orbit is ξ = −µ/2a). What does change is how the impact is distributed, being the Hohmann (180o arc) transfer the one that better distributes the impact. As we move away from the Hohmann case, The impact is less severe on the initial station and more in the target station (recall that we are covering orbit raising).

In the case of the eccentricity variation (figure 4.11) and velocity delta (figure 4.12) we do find a significant increment in the impact away from the Hohmann case on the average tendency. Remark that shorter transfers appear to be more costly and present a more severe impact for the same arc angle shift. As we already pointed out, ∆v required is larger at lower orbits. On the other hand, it is the higher orbit (target) the one which suffers a greater eccentricity change.

Sensitivity to time of flight

Next we are going to discuss the sensitivity to the time of flight, measuring how errors from the time of flight that constitutes a Hohmann transfer affect the stations parameters. This is done while keeping the 180o arc, so it requires both initial argument of latitude of target station and time of flight to be changed accordingly.

Figures 4.13 to 4.15 show the trends in the interest parameters for this case.

We note that semimajor axis is not so severely affected by time of flight (the curves are flatter). The average change is still closely constant as it is the way it is distributed unlike the previous case.

The trends for eccentricity and ∆V are similar, being less pronounced at time fractions larger than the perfect Hohmann case and much more for low time of flight (very energetic) arcs.

19 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

10-3 -34 -1.32 Initial station Initial station -36 Final station -1.34 Final station Average Average -38 -1.36 -40 -1.38 -42

-44 -1.4

-46 -1.42 -48 -1.44

-50 Relative semimajor axis variation

Absolute semimajor axis variation (km) -1.46 -52

-54 -1.48 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 Time fraction Time fraction

Figure 4.13: Sensitivity of stations semimajor axis Figure 4.14: Sensitivity of stations relative semima- variation ∆a jor axis variation ∆a/a

10-3 9 Initial station 3 Initial station (ejection) 8 Final station Average Final station (attachment) 2.5 Average 7

6 2

5 1.5

4

Eccentricity variation 1

3 Absolute delta V (km/s)

2 0.5

1 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 0 Time fraction 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 Time fraction Figure 4.15: Sensitivity of stations eccentricity vari- Figure 4.16: Sensitivity of operations ∆V ation ∆e

Sensitivity to matched TOF and transfer arc

The third scenario considers that both time of flight and angle of the arc change accordingly. By matched we mean that a transfer of 50% TOF of Hohmann corresponds to an arc of also 50% of a Hohmann arc (that is, 90o).

The reason why this scenario is interesting is because it is the one that more closely describes how an error in the considered station semimajor axis would affect the performance, since the estimation of waiting time and time of flight depends on the semimajor axis. We will see in section 4.2 that in order to achieve close-to-Hohmann transfers we use initial network data. After ongoing operation of the network and its degradation, this information will not exactly resemble the actual network at each independent operation. A change in the station semimajor axis will change both the time of flight of the perfect Hohmann arc and the angular rate of the station itself, resulting in operation at different arc angle and TOF from the optimum.

20 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

10-3 -10 0 Initial station Initial station Final station Final station -20 Average -0.5 Average

-30 -1

-40 -1.5 -50

-2 -60 Relative semimajor axis variation -2.5 Absolute semimajor axis variation (km) -70

-80 -3 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 Arc and time fraction Arc and time fraction

Figure 4.17: Sensitivity of stations semimajor axis Figure 4.18: Sensitivity of stations relative semima- variation ∆a jor axis variation ∆a/a

10-3 3 Initial station 1 2.8 Final station Initial station (ejection) Average 0.9 Final station (attachment) Average 2.6 0.8 2.4

0.7 2.2

2 0.6

1.8 0.5 Eccentricity variation Absolute delta V (km/s) 1.6 0.4

1.4 0.3

1.2 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 0.2 Arc and time fraction 0.5 0.6 0.7 0.8 0.9 1 1.1 1.2 1.3 1.4 1.5 Arc and time fraction Figure 4.19: Sensitivity of stations eccentricity vari- Figure 4.20: Sensitivity of operations ∆V ation ∆e

The semimajor axis variation (figures 4.17 and 4.18) show that the initial station is least affected in the Hohmann case contrary to the target station. Notice that this is the opposite of what we found in the first case (only arc angle change). We also find that here, as long as we stay relatively close to the Hohmann value the curves are "flatter" and closer together, meaning that the impact is more evenly split. The average value is still around -44km, all in all suggesting that the energy loss in the transfer really cannot be optimized significantly and it depends just on the mission definition.

The eccentricity (4.19) and ∆V (4.20) show very similar behaviour as in the previous cases.

4.1.6 Limitations on station operation So far we have been using ∆V to assess the cost of operations. This is useful because it is related with the associated cost the manoeuvre would have if performed using a propulsion system as customary. However, when it comes to accelerating the payload using the station as a fulcrum, the capability of this acceleration system is limited by the relative velocity between payload and station vrel. This subtle difference is shown in the equations below.

21 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

+ − ∆V = vpayload − vpayload (Delta V) + + vrel = vpayload − vstation (Ejection) − − vrel = vstation − vpayload (Attachment)

+ − It is easy to see that if the payload mass is much smaller than the station mass, then vstation ≈ vpayload − + in ejections and vstation ≈ vpayload in attachments since station velocity is not expected to change much on a single operation. This difference, however small, is important from the conceptual point of view. Observe how from an absolute reference frame the acceleration system in the station (independently of the mechanism that it consists of) is accelerating both the payload and the station. The acceleration on the station is of course undesirable, but unavoidable. At any rate, the ∆V plots in the previous subsection are almost identical to a representation of the relative velocity. This limitation will cap the maximum relative velocity that can be provided according to the technological capabilities of the acceleration system. Any operation that requires a higher vrel is impossible to perform. A possibility to accelerate payloads is by forcing them to rotate about the center of mass of the station. If this is the choice mechanism we can relate limits on vrel to station parameters. Consider that the radius of rotation of the payload is R, then the required normal acceleration goes as equation 10.

v2 v (m/s) R(m) for a = 4g R(m) for a = 5g a = rel (10) rel n n n R 1 0.03 0.02 Fn mpan 10 2.55 2.04 σ = = (11) S S 50 63.71 50.97 100 254.84 203.87 500 6371.05 5096.84 1000 25484.20 20387.36

Table 3: Example of required rotation radius for different vrel and acceleration Table 3 shows how different design relative velocity change the required radius of rotation for a limit acceleration of 4g and 5g. Tables like these may be used to chose a limit vrel when designing the network. Additionally, we can relate this acceleration with material resistance. If we are using a cable or tether to rotate the payload, the tether will experience a normal force that grows linearly with the normal acceleration and the payload mass. Using the tether section S we can find a relation with the tensile strength of the tether fibers (equation 11). Linear accelerators can also be used if found suitable. In any case, this discussion is incomplete without station specifics and an in depth study of the acceleration mechanism, which is beyond the scope of this thesis.

22 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

4.2 Wait and flight time estimator From the conclusions extracted in our first prototype mission, a second one is elaborated. The additional feature of the new mission will be an automatic estimation of the waiting time and flight time of the operations so that Hohmann conditions are achieved for all of them (or, at least, close-to-Hohmann conditions). Other than this, the same assumptions for the previous mission apply (only one payload, only orbit raising, etc). Since part of the input is now estimated by the code for a more optimal operation, the information required to the input is reduced to simply initial network configuration, initial and final stations and the payload mass. Function ReadMission01Data.m reads the file in figure 4.21 which is basically just a reduced version of the input file of the previous mission.

%Input file for Mission00 runs, masses in kg, times in seconds% Payload Mass(kg): 10 Initial Station number: 3 Final Station number: 5

Figure 4.21: Example of the input file for this mission

4.2.1 Objective The objective of this mission (codenamed Mission01 in the script) is to add an estimator block to the code of the previous mission, achieving a more optimal behaviour without specific effort from the user. It is less versatile than the previous Mission00 but reproduces better the expected operation of the actual network. It is also more convenient to study the parameters affecting the impact of station network design like station spacing, which we will cover later on.

4.2.2 Code structure and algorithm design This mission call (see figure 4.22), is identical to the one from the previous one. There is a difference, however, in the data contained in structure InputData, which now has only the information from file in figure 4.21.

Mission01_ results = Mission01(InputData,Network,n_stations,mu)

Figure 4.22: Function call to Mission01

This mission contains only two modules: • Estimator01.m Completes structure InputData with waiting time and time of flight information so that transfers are close-to-Hohmann arcs. Some assumptions are required to do this before any simulation is carried out. • Mission00.m With the information from the estimator appended, the problem is fully defined and can proceed in an identical way as described earlier in this chapter. The function Estimator01.m output is strongly dependent on initial network configuration. The phenomenon that prevents us from achieving a perfect Hohmann arc in a single iteration when

23 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

missions contain more than one operation is the self induced network degradation. Unless very heavy cargo is being handled, as we saw in previous chapter we expect degradation to be pronounced after several missions, not just one. In this regard, differences from perfect Hohmann will not be severe but we will still refer to them as close-to-Hohmann. The function also assumes that the initial orbits are circular since it is where Hohmann transfers are defined.

The workflow of Estimator01.m goes as follows (for each operation):

1. Time of flight of the semi-elliptic Hohmann arc is calculated from initial network data. Real network data for departing station will only be identically equal to initial one for the first operation, as commented. To do this, equations 7 and 8 are used as in the example covered before.

o 2. Waiting time is estimated to match a 180 arc between initial station at t = twait and final station at t = twait + tTOF . The true anomaly (or, more properly, argument of latitude) of both stations at the mentioned timestamps is:

θi = θi0 + nitw (12)

θf = θf0 + nf (tw + tf ) (13)

Where ni and nf are the angular rates of the initial and final equations respectively. Subtracting both equations and setting θf − θi = pi, we can solve for the waiting time:

π − θf0 + θi0 − nf tf tw = (14) nf − ni

However, the value of tw obtained from the equation 14 can be negative, reflecting that the configuration happened tw seconds ago. To fix this we use equation 15, which translates simply to adding a synodic period to the previous value:

2π π − θf0 + θi0 − nf tf tw = + (15) |nf − ni| nf − ni

4.2.3 Output and post-process We will run the code with the same initial conditions as in the previous mission (example case in subsection 4.1.3). That is, payload is requested to go from station 3 (a3 = 26869.5km) to station 5 a5 = 44782.5km. The tools employed for post processing are the same as the ones for the previous mission.

Figure 4.23 shows the trajectory of payload (blue) and stations (black) for a payload with mass of 10kg. We can see that the arcs are indeed Hohmann arcs of little energy (∆V ). We can see that both the payload and the stations show solid black lines at their parking orbits, meaning that in the mission time they complete full revolutions around the Earth. In fact, the main drawback of this algorithm is that it puts no constrain on the waiting time of payloads. For this example, the waiting time was 123 700 seconds (more than 34 hours) for the first operation and 88 500 seconds (more than 24 hours) for the second one,

Figure 4.24 considers the same mission for a payload of 100kg (recall stations weight 1000kg). We can see that the trajectory plot is much more messy in this case since orbits perform several periods along various levels of (notice station 4 passes through three states: unperturbed, perturbed on arrival and perturbed on ejection). It is remarkable however that degradation is much less notable than for the very energetic arcs we saw in the previous mission (see figure 4.24 in section 4.1.3).

24 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

104 104

4 4

3 3

2 2

1 1

0 0

y ECI (km) -1 y ECI (km) -1

-2 -2

-3 -3

-4 -4

-4 -2 0 2 4 -4 -2 0 2 4 x ECI (km) 104 x ECI (km) 104

Figure 4.23: Simulation with payload mass of 10 kg Figure 4.24: Simulation with payload mass of 100kg

Figure 4.25 shows a screenshot of the station impact output for the mission with payload mass of 100kg. This output matches closely the Hohmann case we saw in section 4.1.3, In particular, the first operation has a perfect match while the second one is slightly different because on the previous section we considered both operations to happen in separate missions.

Figure 4.25: Station impact output for a payload mass of 10 kg

25 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

4.2.4 Station spacing So far we have considered equispaced stations for our simulations. We made an important remark on section 4.1.3 where we checked that operations at higher altitudes are cheaper. This principle is well known and exploited widely in astrodynamics (such is the case of Bi-elliptic Hohmann transfers [18]).

s   r l µ µ µ ∆vi = 2 − − (16) ri ri + ri+1 ri s   r r µ µ µ ∆vi = 2 − − (17) ri ri + ri−1 ri (18)

Hohmann transfer ∆V for launch and reception is calculated using equations 16 and 17 respectively.

l ∆v1 = C (19) l r ∆vi + ∆vi = C (20) r ∆vf = C (21)

Our intent is to provide an initial and target orbit, with a number of stations and obtain the ∆V and the positions of the intermediate stations. However, the system posed for this problem is overdetermined. Take for example, the case of three stations, we have 3 equations (one for each station) and only two unknowns: r2 and the constant delta V C. Adding more stations increases both the number of equations and the number of unknowns. In addition, the nonlinear equation system is quite complex. A different approach is tested. We are going to place stations equispaced in terms of specific mechanical energy instead of raw position. Recall ξ = −µ/2a. We use this to build a new network ranging from a1 = 8946.5km to a5 = 44783km (so that initial and final orbits are the same that we considered on previous examples). Results are displayed in figure 4.26 and table 4.

-4

-6 Station Semimajor axis (km) ) 2 -8 /s 1 8946.5 2

-10 2 11184

-12 3 14914 4 22376 -14 5 44783 -16

-18 Table 4: Table with resulting spacing

-20 Specific mechanical energy (km -22

-24 0.5 1 1.5 2 2.5 3 3.5 4 4.5 Semimajor axis (km) 104

Figure 4.26: Specific mechanical energy ξ vs semimajor axis Using a network with this spacing, we are going to simulate a payload mission from station 1 to 5 using Mission01.m. The resulting ∆V are shown in table 5.

26 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Station 1 2 3 4 5 Ejection ∆V (km/s) 0.36118 0.4167 0.49648 0.65585 - Attachment ∆V (km/s) - 0.33818 0.38374 0.44244 0.54441 Total ∆V (km/s) 0.36118 0.7549 0.8802 1.0983 0.44244

Table 5: Simulation ∆V output

As we can see, this method overestimates how cheap are operations are higher orbits, yielding a ∆V distribution that increases for higher stations (in both ejection and attachment). Although differences are not dramatic, improvement can still be done. A final approach, in which we renounce to declare the final station orbit, allows to attain the same ejection (or attachment) ∆V by solving for ri+1 in equation ??. The shortcoming is that we cannot tune both ∆V and the final orbit radius. We may either input a design ∆V or iterate until we get the desired final radius. It may be more interesting to simply stick to prescribing a ∆V that ensures a design vrel. The station acceleration capabilities will be limited by a vrel, which will in general not differ much from an operation ∆V . By considering an appropriate safety factor we define a design ∆V , which naturally also imposes a limit in the maximum handling payload mass, and build our network adding stations until we reach the defined orbit.

Consider for example a1 = 8946.5km as before and a design ∆V = 0.5km/s (which is not necessarily a reasonable amount unless we were to study acceleration mechanisms in detail).

104

4 Station Semimajor axis (km) 3 1 8946.5

2 2 12239

1 3 17719 4 27828 0 5 49653

y ECI (km) -1

-2 Table 6: Table with resulting spacing

-3

-4

-4 -2 0 2 4 x ECI (km) 104

Figure 4.27: Example mission with the specified spacing

Figure 4.28: ∆V output

The resulting network semimajor axis are shown in 6. As expected a higher density of stations is obtained inner in the gravity well. We succeeded in guaranteeing a close match between all the

27 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

ejection ∆V (see figure 4.28) and fortunately enough we get also similar figures for the attachment ∆V for this configuration, even though no constrains were imposed for it whatsoever.

4.2.5 Multi-payload coupling As stated on the scope of the project, we are interested on building a framework that can withstand missions with any number of payloads. So far we have seen only missions with one payload and constrained mission profile. We are interested now on lifting these assumptions. The assumption of only orbital raising of payloads requires a modification of the code structure but similar algorithms to the ones seen are still applicable (both for mission analysis and time input estimation). The assumption of single payloads is, however, not so easily reverted. The issue lies in the calculation of the transfer arc when there is interference with other payloads using the target station at the same time (for either ejections or attachments). Consider the following scenario:

Payload A currently in station 1 needs, at t=0, to eject towards station 2 in order to arrive at t = 2. Payload B is currently at station 2 and will initiate ejection at t=1 to arrive at station 1 at t=3. To compute the transfer arc for payload A, the position of station 2 at t=2 is needed, but since an operation will take place at t=1, the trajectory cannot simply be propagated. Operation for payload B needs to be solved first to calculate its ∆v, but this is also a function of the position that station 1 will have at t=3 which depends on the ∆v of the first operation.

This is an example of the coupling that can be found when more than one payload is considered. The error committed is similar to the one of close-to-Hohmann transfers but now it is not just a matter of efficiency loss. An error in the position of the station after the time of flight will result in the impossibility to attach payload to the target station without the use of a propulsion system. The payload may not even be properly equipped to save large errors in targeting with propellant, since we want to avoid using it in the first place. This scenario is the simplest example of payload coupling but note that, as you add more payloads and stations, the coupling may be more subtle. Payloads may concatenate coupling with one another in a way that it is hard for the user or the software to notice. This motivates the development of a new mission algorithm which we will cover in section 5.

Final remarks and conclusion This chapter has elaborated two preliminary missions that allow simple designs. From the analysis we have performed on them with post-processing tools we conclude that: 1. The most effective way of minimizing most station degradation parameters in single manoeuvres is the Hohmann transfer, providing the most convenient distribution of the degradation as well.

2. Limitations on the operation come as vrel requirements that depend on station specific parameters and technology. 3. A station spacing that perfectly distributes the loading of the stations is not possible due to overdetermination of the problem. However, a very effective and simple method was found and shown to behave really well in operation. 4. These simple prototypes do not suffice to explore all the possibilities of mission design.

28 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

5 Multi-payload Mission Design

With all the insight obtained from the previous missions, a final, more versatile mission is developed. The main challenge is to solve the mentioned payload coupling explained at the end of the previous chapter. We are going to drop the additional assumptions that were added in the previous chapter, namely the single payload and constrained mission profile. In this mission, codenamed simply Mission as it is the most complete that we are going to consider for this study, payloads should be allowed to have any trajectory between the stations. Transactions may happen anytime for any payload without any order. An example input file for this mission can be consulted in the Appendix. In contrast to other mission algorithms, information is encapsulated differently as more data is needed. First we need to preallocate the number of payloads. Then, each payload has general information: the mass, the initial station and the number of operations. Later the information for each operation must specify the target station as well as the waiting and flight time. It is important that information is consistent otherwise errors will occur in the execution (some information is used to preallocate memory for the input struct). Function ReadMissionData.m is in charge of reading the information in text file MissionInputFile.txt. Even though we lift most of the hypothesis that constrained our way to define missions, we still work under the two body problem approach, so all the tools described in section 3 will be used as before. What will change substantially is the main routine algorithm.

5.1 Objective The main objective of this mission is to expand the same functionalities of the previous simpler algorithms to more complex missions, and in particular to solve the multi payload coupling. The resulting function must be versatile enough to ensure we can run fairly complex optimization analysis and set the tools for any experimentation we wish to perform on the network.

5.2 Code structure and algorithm design Before covering the actual code workflow, we are going to elaborate on the ideas in which it is based. The problem with multipayload coupling was the lack off precise information to carry the targeting problem. Payload interactions make it impossible to know reliably beforehand the exact position of a station after the time of flight of an operation. However, applying a similar philosophy than with other problems in engineering, if we can get an initial guess an iterative procedure can be used to refine the positional information of target station. Consider the following: 1. We compose a code to solve missions in which the target position for each launching problem is prescribed as an input, rather than computed in its own execution. Information does not need to be accurate, if after the time of flight the payload does not reach the station to precision it is assumed to instantaneously "teleport" to the station and assess its impact with whatever the velocity it carried at the end of the time of flight. 2. We modify the input data to the previous mission with the target positions updated using its own output, that is, read from the ephemeris of the previous iteration. 3. The steps are repeated until the difference between the station position and the payload after the time of flight is small enough to perform the attachment (in practice, to whatever the tolerance requested by the user). This sums up the general idea, now we will cover how this has been implemented in MATLAB code.

29 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Due to its complexity, this mission has an additional layer of modulation. The previous ones had basic modules described in section 3 and just one main routine for the whole simulation. The reason for this is that to solve the payload coupling problem an iteration procedure is needed, we want to encapsulate each iteration in a self contained function. Additionally, the natural way of splitting the time events in the previous missions was just to propagate waiting times and times of flight alternating them. This is not suitable anymore, as payload transfers do not occur simultaneously. The two levels of modulation are: • A main routine, Mission00.m, that encapsulates the whole mission. Includes preprocessing of the data with auxiliary subroutines and as many calls to the mission iterator as necessary for convergence. • The mission iteration function, SimulateMissionIteration.m, that executes the mission with the current information. Internally this is very similar to how Mission00 and Mission01 worked. We will begin by describing the subroutines that are employed in this mission and were not employed before. The mentioned functions are listed below in order of appearance in the execution: • SplitTimeEvents.m Divides simulation time in segments, separated each time any payload performs an ejection or an attachment. Each event carries information regarding the time at which it takes place, the type of event (ejection or attachment), the payload it concerns and the target station. Ejection operations also contain time of flight information, relevant to solve the targeting problem and the current station. Events are later ordered using a bubble sort algorithm, this choice for sorting is just due to its simplicity [19] since performance is negligible for a reasonable number of operations. All this information is stored in Event structure which can be understood as an additional input for the iteration simulations. • PropagateAllStations.m Propagates all stations for the specified time. It is used to generate the initial guess in a compact way only. • SetTarget_r.m Reads the ephemeris of station of a previous iteration (or from the initial guess) and retrieves the position of the target station for each operation. This information is appended or overwritten to the corresponding ejection manoeuvre in the Event struct that was obtained using SplitTimeEvents.m. • SimulateMissionIteration.m Performs a single mission iteration using the data gathered from input and previously mentioned functions. We will elaborate on it later on. • MissionLogger.m This mission also features a code logger that register convergence history of iterations as execution proceeds. It is a debugging support tool for the user. It is called each time information needs to be registered in the log file (MissionLogger.txt by default) We will now describe the workflow of Mission.m

[Output,Event] = Mission(InputData,Network,n_stations)

Figure 5.1: Function call to Mission.m

30 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

1. The function receives as input param- eters the information contained in file MissionInputFile.txt, the network ini- tial configuration and the number of stations. 2. A configuration struct is created, with several parameters that the user can tune like the time step, the convergence tolerance or the maximum number of iterations. 3. Data is pre-processed, calling function SplitTimeEvents.m. Structure Event is generated lacking only target position for ejection operations 4. As a first iteration, instead of running the mission, the stations are propagated as if they were to stay in free flight for the entire duration time. This is equiv- alent to assuming that station impact is zero or negligible. 5. Using the output from the propaga- tion, the station position at each at- tachment timestamp is registered using SetTarget_r.m. 6. A loop is initiated, where subsequent calls to SimulateMissionIteration.m are performed. Upon each run, the code checks with what precision the payloads arrived at the required station. If the precision is not enough to comply with the tolerance and the limit number of iterations is not reached, the code will run another iteration. Notice that if there is no coupling the simulation must end at the second iteration since there will be no difference with the first one. 7. After convergence, the mission function ends and returns the output parameters for post-processing.

Figure 5.2: Mission.m flowchart

31 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Now to conclude the algorithm, let us describe the the workflow of SimulateMissionIteration.m.

Output=SimulateMissionIteration(InputData,Event,Network,n_stations,configuration)

Figure 5.3: Function call to SimulateMissionIteration.m

1. Preallocate instantaneous state vector of stations and payloads. This serves as a dummy variable to later call PropagateAllStations.m as initial conditions for the next time segment. 2. Preallocate memory for station and payload outputs. 3. A loop is initiated to cover all events. 4. For each iteration, the time between loops defines a time span. 5. For the defined time span, all stations and payloads are propagated. Since the total mission time is split for each event that occurs, this time span is a pure free flight. 6. The event takes place. The execution is different whether the event is an ejection or an attachment. If the event is an ejection, the targeting problem is solved using Lambert algorithm using as inputs the current payload position and the target position stored in the Event structure. This last piece of information changes in each iteration, becoming more and more refined. The final station velocity is calculated using PerformEjection.m as done in previous algorithms. If the event is an Attachment, the payload may not reach exactly the station if the code has not yet converged. In this way, not only payload velocity is changed on arrival, but also its position to ensure execution can continue. The final station and payload velocity is calculated using PerformAttachment.m as always. Since it is an attachment in the end both station and payload must end with the same position and velocity. Even if the position change is unrealistic at early iterations, the code will eventually converge. 7. The instantaneous state vector of payloads and stations is updated, so that the next iteration will propagate accounting for the instantaneous event that just took place. 8. The iteration continues until all events take place and mission time is concluded.

5.3 Output and post-process As with previous missions, several examples will be covered including the information that can be extracted from them.

Multi payload case in arbitrary conditions We are going to cover an example to illustrate the robustness with which the code can operate. A mission in which we are guaranteed to find payload coupling with completely arbitrary time inputs. Given that the times considered are intentionally far from Hohmann scenario, the code will have to iterate in the midst of chaos since station trajectories will suffer significantly. The mission profile constitutes 2 payloads of 10kg each (stations are 1000kg). Payload one starts at station one and wants to go 1 → 2 → 3. Payload B starts at station 2 and wants to go 2 → 3 → 4 → 3. The times are adjusted so that payloads present coupling in the first transfers and so the entire mission convergence will depend on whether the code is able to properly determine the target positions for all transfers after the first coupling occurs. The entire mission input is lengthy and not fundamental for the present discussion. It can be consulted in the appendix section at the end of the document.

32 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

In figure 5.4 we can see the station and payload trajectories output for this mission. A very ineffective and costly profile was chosen on purpose to test the robustness of the mission. Payload one is in blue colour and payload B is in orange colour while stations are solid black lines. For this mission it was also chosen that payload launches always choose short arcs allowing retrograde orbits for transfers (this enhances station impact, putting theoretically an additional difficulty for the iterator). We can see that the layout is indeed very chaotic.

Figure 5.4: Station (black) and payload trajectories

The associated code logger output for this mission registered that 4 iterations were needed to achieve convergence. It shows a natural tendency, in which the first operations converged earlier and the latter were solved afterwards. This suggests that, for moderate payload masses, the coupling is solved promptly but each operation after them that has a dependence will slow the convergence. The elapsed time for this mission is already a couple of seconds and will increase in a roughly linear manner as number of iterations increases.

The code log itself is lengthy, but as an example, the first and last iterations are shown in figures 5.5 and 5.6. The entire log can be consulted in the appendix. We can see that in fact the code is capable of solving huge differences in the actual target position, the last operation shows a difference of several thousands of kilometres in the first iteration and none in the last one. The last iteration shows an exact match in the actual and target position, meaning that the code is actually not limited by the precision of the convergence criterion but on the precision with which we are able to propagate (related more with the integration tolerances than anything else).

33 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Attachment of payload 2 to station 3 unsuccessful to precision. r_target = [-13246.998854 -23377.062501 0.000000] r_actual = [-13257.050571 -23371.363634 0.000000] Attachment of payload 1 to station 2 unsuccessful to precision. r_target = [16303.962248 7419.999196 0.000000] r_actual = [16196.854549 7703.853356 0.000000] Attachment of payload 1 to station 3 unsuccessful to precision. r_target = [21129.827672 16598.205365 0.000000] r_actual = [20994.363812 17150.949069 0.000000] Attachment of payload 2 to station 4 unsuccessful to precision. r_target = [17030.615791 -31519.207036 0.000000] r_actual = [17010.070060 -31530.299711 0.000000] Attachment of payload 2 to station 3 unsuccessful to precision. r_target = [17854.720446 -20079.317803 0.000000] r_actual = [20680.026481 -16301.370305 0.000000] -End of iteration 1 with one or more transfers unconverged-

Figure 5.5: Code log for the first iteration

Attachment of payload 2 to station 3 successful to precision. r_target = [-13257.050571 -23371.363634 0.000000] r_actual = [-13257.050571 -23371.363634 0.000000] Attachment of payload 1 to station 2 successful to precision. r_target = [16196.922053 7703.766489 0.000000] r_actual = [16196.922053 7703.766489 0.000000] Attachment of payload 1 to station 3 successful to precision. r_target = [20995.205491 17150.637128 0.000000] r_actual = [20995.205491 17150.637128 0.000000] Attachment of payload 2 to station 4 successful to precision. r_target = [17010.070060 -31530.299711 0.000000] r_actual = [17010.070060 -31530.299711 0.000000] Attachment of payload 2 to station 3 successful to precision. r_target = [20677.264946 -16298.473762 0.000000] r_actual = [20677.264946 -16298.473762 0.000000] -End of iteration 4 with all transfers converged to precision-

Figure 5.6: Code log for the last iteration

Figures 5.7 to 5.10 show eccentricity and (relative) semimajor axis variation for stations. Stations rise in semimajor axis when they gain mechanical energy and vice versa. Whenever they receive or launch a payload from a lower orbit it will typically reduce its semimajor axis. Upon receiving a payload from a higher orbit, however, they will have increased its mechanical energy (in general). An example of this can be seen in station 4 (5.10): At event 8, it receives payload B that came from station 3 at lower orbit; at event 9 it launches the payload towards inner orbits, gaining mechanical energy and increasing its semimajor axis. Eccentricity, however, is hard to tune backwards and increases steadily if we begin with a . Also notice that this parameter is "noisier" and shows more sensitivity to integration error, as we can see some erratic behaviour in station 1 (fig 5.7) when no events are taking place there.

34 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

COE variation of Station 1 COE variation of Station 2

0.05 0.04 0.04 0.03 0.03 0.02 0.02

0.01 0.01

0 0

-0.01 -0.01

-0.02 -0.02 -0.03 -0.03 Semimajor axis relative variation -0.04 -0.04 Eccentricity Semimajor axis relative variation -0.05 Eccentricity

0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 Event number Event number

Figure 5.7: COE (relative) variation stair plot of Figure 5.8: COE (relative) variation stair plot of station 1 station 2

COE variation of Station 3 COE variation of Station 4

0.03 0.02

0.015 0.02

0.01 0.01 0.005

0 0

-0.005 -0.01 -0.01

-0.02 -0.015 Semimajor axis relative variation Semimajor axis relative variation Eccentricity Eccentricity -0.03 -0.02

0 1 2 3 4 5 6 7 8 9 10 0 1 2 3 4 5 6 7 8 9 10 Event number Event number

Figure 5.9: COE (relative) variation stair plot of Figure 5.10: COE (relative) variation stair plot of station 3 station 4

The last piece of information that the post processor provides is a detailed station impact assessment that is printed in the command window. An example for an ejection and an attachment are displayed in figures 5.11 and 5.12 respectively. Information displayed includes event number, the time at which it takes place, the type of event, the payload and station concerned, the station velocity, eccentricity and semimajor axis before and after the event and the relative velocity at which the manoeuvre took place (velocity difference between payload and station).

||Event: 1|| Type: Ejection t = 1800.00 s Payload: 2 –> Station: 2 r = [5497.15,17048.66,0.00] km v_minus = [-4.4896,1.4476,0.0000] km/s v_plus = [-4.4898,1.4342,0.0000] km/s a_minus = 17913.00 a_plus = 17883.58 e_minus = 0.000000 e_plus = 0.003174 v_rel = 0.0134

Figure 5.11: Station impact report for an ejection event

35 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

||Event: 4|| Type: Attachment t = 23800.00 s Payload: 2 –> Station: 3 r = [-13260.40,-23369.46,0.00] km v_minus = [3.3499,-1.9008,0.0000] km/s v_plus = [3.3510,-1.8898,0.0000] km/s a_minus = 26869.50 a_plus = 26807.73 e_minus = 0.000000 e_plus = 0.003499 v_rel = 0.0111

Figure 5.12: Station impact report for an attachment event

36 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Final remarks and conclusions This chapter elaborated on the more complex and definitive mission function, that completes our simulation environment for mission design and optimization. We conclude that: 1. Additional layers of iteration and modulation are required (with an impact on execution time) to solve the missions in the most general case. 2. The iterative procedure introduced is robust and behaves very well (numerically), converging in most scenarios. 3. The results obtained in with this mission are analogous to the ones obtained with the previous prototypes (whenever they are both applicable). 4. This algorithm closes the code and encapsulates it to receive some inputs in which we can find scenarios that optimize certain outputs, which will be our next task.

37 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

6 Mission analysis and optimization

The mission algorithm defined in section 5 serves to analyze any possible payloads trajectory, as well as define a suitable spacing for our initial configuration of stations. To complete the study, a tool to optimize the performance is developed. The objective is minimal station degradation and the free parameter are the input times (twait and TOF ) A preliminary estimator such as the one used in prototype algorithms (section 4.2) can be employed, and will prove very helpful for bounding the problem but there is a particularity of this mission algorithm that can be exploited. We can now rise and lower payloads in orbit. Raising payloads require an increment in its orbital mechanical energy, while descending them reduces it. If we want to establish a two way payload exchange between the high orbits and the low orbits, an optimization algorithm may be used to balance both effects. In this section we are going to attempt this using MATLAB genetic algorithm (ga.m). The genetic algorithm allows to choose a fitness parameter and find the optimum even though we are dealing with a fairly complex problem. It is an unspecific way of finding the minimum of a cost function, a brief introduction to genetic algorithms will be shown in the following subsection. The steps to solve this problem are as follows: 1. Define the problem. The optimizations using genetic algorithm require a more constrained problem to be encapsu- lated in such a way that the only input is a vector of a single data type. 2. Bound the problem The domain in which the solver will try to find the optimum needs to be prescribed. 3. Call the genetic algorithm The previous information together with convergence criteria and limits of execution (maximum number of iterations, maximum execution time) complete the ga.m call 4. Post-process Analyze the results with the tools proposed in previous chapters.

6.1 Introduction to genetic algorithms Genetic algorithms [20] are optimization algorithms that use natural selection mechanics to find the set of parameters that minimizes a cost (or fitness) function. The execution process is divided into generations (that can be considered "iterations"). In each generation, a population of individuals is selected and its cost function evaluated. The cost function allows to discern the individuals that are best fit for this particular generation, we call them the elite. The elite will then participate in a crossover breeding between them, which together with random mutations produce the offspring. The new offspring (and sometimes the elite as well) forms the population for the next generation. The process is repeated until the convergence criteria are fulfilled. The cost function is provided as a function handle to the genetic algorithm. It takes the parameters of a single individual (genes) as an input and returns the evaluation of the cost function. The simulation carried within the function handle is of little relevance to the genetic algorithm so long as it returns a single output and does not run into any errors. This is the main reason why they are attractive for our study, a genetic algorithm requires no analytical information whatsoever about the trends, the derivatives or behaviour of the function handle. It will find these trends on its own by finding the best suited combinations of genes. Individuals can be constrained through hard limits that the crossover procedure should not break. This is necessary in many cases to prevent the algorithm from prompting the cost function with

38 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering parameters that either are not feasible or cause the code to run into degenerated cases. In the case of our problem, the individuals are simply a vector of waiting times and times of flight that complete a mission. A function handle to call Mission.m is required to turn that vector into the input structure that the mission can understand. The handle also evaluates the cost function, which can potentially be many possibilities depending on our priorities on network degradation. Our first choice is the mechanical energy change but others may be proposed. Technical parameters or settings need to be provided as well: • The crossover rule. In this study we employ intermediate or heuristic crossover since it is compatible with linear constrains. • The tolerance. The smallest relative change in the fitness function that is considered significant. • The maximum number of stall generations. A stall generation is one in which the best fit are either the same individuals as in the last generation. After this number of generations pass with a fitness function change in the elite individuals below the tolerance prescribed, the algorithm stops.

6.2 Problem definition We want to solve in an optimum way the following problem:

A network capable of transferring payloads from an initial orbit at ai km to a final orbit in af km with a certain limit in the vrel of transfers has to launch nraise payloads from the lowest orbit to the highest orbit and ndescent payloads in the reverse way.

The tuning parameters are the waiting times and the times of flight of the operations, which need to be provided to the genetic algorithm as a single vector T with 2n elements where n is the number of operations: T = [twait,1 TOF1 twait,2 TOF2 ... twait,n TOFn] (22)

By optimum we mean two main factors:

1. We use the smallest possible amount of stations that can comply with the vrel limitations. This is solved in the spacing problem we saw in section 4.2.4. 2. The station degradation parameter of our choice (semimajor axis, mechanical energy, eccen- tricity,etc). Is as small as possible. Since we want payloads from higher orbits and from lower orbits, the problem we define needs to have at least one of each. The success of the genetic algorithm will depend on whether the station degradation parameter minimum found (if any) is a global minimum or a local minimum and the difference between them. A sensitivity check should be performed using different rng [21] (random number generator) seeding. Using different crossover and mutation rules may help achieve global convergence, but many are incompatible with appropriate problem bounding, which we are going to detail in the next section.

6.3 Problem bounding The problem input may run into scenarios that do not make sense or are degenerated. Scenarios like these include: negative times, ∆θ either too large or too small, excessively short time of flight. This causes the genetic algorithm to encounter an error in the function handle (errors in the logic of the arrays, unconverged Lambert’s algorithm) or yield a vrel exceeding limits due to transfer arcs being too energetic.

39 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

In order to build a domain we need an initial point we know it will most likely not be degenerated in all practical applications. We repeat the procedure employed in section 4.2 to find what would be the Hohmann transfer case for all operations if station degradation was null. The values obtained will then help to decide valid intervals of the time vectors. We now set bounds for the problem times, the genetic algorithm allows for constraints of the following types (let T be the vector of times, A a matrix and b a vector such that A*T and b have the same number of elements): • Linear inequality constrains: A*T < b • Linear equality constrains: A*T = c • Lower and upper bounds: LB <= T <= UB • Nonlinear constrains. We want to avoid excessively energetic arcs, which can be either because the time of flight is too low, or the transfer arc differs too much from 180o. Allowable times of flight come as an interval centered in the value obtained in the estimation. Lower and upper bounds are set according to a tolerance around its central value. Let T0 be the Hohmann estimated TOF and r a number between 0 and 1 (never too close to 1):

LB = (1 − r)T0 (23)

UB = (1 + r)T0 (24)

Allowable arcs impose a condition in both time of flight and waiting time. We want to ensure that the accumulated time up to an event does not vary much, thus resulting in similar station relative positions and arc angles closer to 180o. In order to do this, linear inequality constrains are required because the constrains themselves depend on more than one value of the time vector at the same time. For each waiting time or time of flight element n, we have:

n n−1 2n−1 X X X twait,i + TOFi > T0 − tol (25) i=1 i=1 i=1 n n−1 2n−1 X X X twait,i + TOFi < T0 + tol (26) i=1 i=1 i=1 Where tol is a percentage of the period of one of the stations. The smallest period can be chosen to be conservative or an average one. The scale is not so well defined as in the time of flight bounding, so in principle anything of this order may or may not work as intended. Expressing this linear inequality constrain in matrix form requires converting every inequality in to a less than (<) expression, multiplying by -1 to revert the appropriate inequalities. The left hand side of equations 25 and 26 allow matrix representation as A*T, matrix A then looks like: −1 0 0 0 ··· 0  1 0 0 0 ··· 0   −1 −1 0 0 ··· 0    1 1 0 0 ··· 0   −1 −1 −1 0 ··· 0    1 1 1 0 ··· 0   −1 −1 −1 −1 ··· 0    1 1 1 1 ··· 0    ......   ......  1 1 1 1 ··· 1

40 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

6.4 Optimized cases

Different scenarios are going to be discussed, assessing the effectiveness of the genetic algorithm in said scenarios.

Estimated Hohmann case

Firstly, we are taking as a reference the mission coming only from the preliminary Hohmann estimator with one raising payload and one descending payload. We have set the design vrel = 0.5km/s for a limiting vrel,max = 0.7km/s. That means vrel = 0.5km/s defines our spacing via the method described in section 4.2.4 and vrel,max = 0.7km/s is the value that should not be exceeded in order to validate a result. If the limit is exceeded, the bounding problem described before needs to be revisited with different margins. Similar to other chapters, we are considering a payload mass of 10kg and a station mass of 1000kg. All these values are arbitrary and would depend on the technological implementation of the network.

Event vrel (km) 1 0.5000 2 0.4576 3 0.5035 4 0.4523 5 0.4523 6 0.4375 7 0.4430 8 0.5073 9 0.4992 10 0.4287 11 0.4597 Figure 6.1: Mission trajectories. Blue corresponds to 12 0.5175 ascending payload and red to descending 13 0.4729 payload 14 0.5444 15 0.4706 16 0.5106

Table 7: vrel of the different payload transfers, time ordered

As we can see in table 7, all vrel values are around 0.5 km/s and usually well below 0.7 km/s. The estimator is also working as intended, transfers are close to Hohmann ones (fig 6.1).

Station 1 Station 2 Parameter Initial Final Parameter Initial Final a (km) 8946.50 8946.37 a (km) 12239.00 12238.94 e 0 0.002120 e 0 0.001537 ξ (km2s−2) -22.27687 -22.27719 ξ (km2s−2) -16.28401 -16.28409 rp (km) 8946.50 8927.41 rp (km) 12239.00 12220.13 ra (km) 8946.50 8965.34 ra (km) 12239.00 12257.75

41 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Station 3 Station 4 Parameter Initial Final Parameter Initial Final a (km) 17719.00 17718.43 a (km) 27828.00 27829.61 e 0 0.004937 e 0 0.007427 ξ (km2s−2) -11.24781 -11.24818 ξ (km2s−2) -7.16185 -7.16144 rp (km) 17719.00 17630.95 rp (km) 27828.00 27622.92 ra (km) 17719.00 17805.90 ra (km) 27828.00 28036.29

Station 5 Parameter Initial Final a (km) 49653.00 49657.04 e 0 0.006141 ξ (km2s−2) -4.01386 -4.01353 rp (km) 49653.00 49352.08 ra (km) 49653.00 49962.01

The tables above show the change in a variety of possible station degradation parameters. Further cases studied will be contrasted with these values.

Minimum mechanical energy change The first choice for the cost function is one that represents properly the total (specific) mechanical energy change of the network in stations. The square root of the sum of squares of the mechanical energy change of each station (∆ξi) is proposed as output for out mission function handle: v u n uX 2 f = t ∆ξi (27) i=1

This gives insight in a single parameter of the change in mechanical energy of the overall network. Notice both energy decreases and energy increases contribute positively to the cost function, in this way an irregular distribution of energy between the stations is also reflected. As a reference, the value of this cost function for the estimated base case is f = 7.2202e − 04km2s−2. For enhanced robustness, the genetic algorithm will be called several times with different rng seeding and crossover functions. The crossover functions employed are heuristic (’crossoverheuristic’) [22] and intermediate (’crossoverintermediate’) [22] which are both friendly with linear bounds. From subsequent simulations, the following conclusions are drawn: • The algorithm fails to converge absolutely, it converges locally depending on rng. • Conservativeness in the problem bounding often lead to optimization being limited by con- strains. When assessing A ∗ Topt − b < 0, entries in the left hand side may be zero in one or more entries. • Due to the added randomness in intermediate crossover, it is less vulnerable to the previous shortcoming when compared to the heuristic crossover. It is also less prone to stall in early generations and has more recovery potential from a stall of one or two generations. • Despite the local minimums being different, with noticeable variations in the time vector, the value yielded for the mechanical energy variation is not so severe. This allows additional preferences for the profile selection, if two solutions are similar in cost function, the one with

42 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

the lowest times may be selected or the one that fits better a secondary parameter (like eccentricity).

• The algorithm, in general, does not provide a decrease in the cost function from the base case if the bound margins are too large. For cases of interest, the estimator seems to provide a value very close to the optimum.

• Mission elapsed time is key, the genetic algorithm needs to prompt the handle on the order of hundreds of times (for the current settings).

Out of all the simulations, the lowest cost function found was f = 4.1635e − 04km2s−2. Which is a 42% decrease from the base case.

The tables below compile the overall station degradation report. The stations show little mechanical energy variation up until the fourth decimal place. Recall that total specific mechanical energy of the stations is not necessarily maintained since we are not accounting for the payload energy (which differ in mass, etc) and payload-station events preserve momentum, not energy. It is however not expected to change much. No significant changes in the other parameters are observed from the base case.

Station 1 Station 2 Parameter Initial Final Parameter Initial Final a (km) 8946.50 8946.51 a (km) 12239.00 12239.09 e 0 0.002468 e 0 0.002227 ξ (km2s−2) -22.27687 -22.27684 ξ (km2s−2) -16.28401 -16.28389 rp (km) 8946.50 8924.44 rp (km) 12239.00 12211.83 ra (km) 8946.50 8968.59 ra (km) 12239.00 12266.34

Station 3 Station 4 Parameter Initial Final Parameter Initial Final a (km) 17719.00 17718.96 a (km) 27828.00 27829.21 e 0 0.004594 e 0 0.007413 ξ (km2s−2) -11.24781 -11.24784 ξ (km2s−2) -7.16185 -7.16154 rp (km) 17719.00 17637.56 rp (km) 27828.00 27622.90 ra (km) 17719.00 17800.36 ra (km) 27828.00 28035.52

Station 5 Parameter Initial Final a (km) 49653.00 49656.05 e 0 0.006165 ξ (km2s−2) -4.01386 -4.01361 rp (km) 49653.00 49349.90 ra (km) 49653.00 49962.21

To illustrate how effective this mission design is, figures 6.2 and 6.3 illustrate COE variation for two stations as an example. The semimajor axis is seen to return to almost zero variation in the scale of the problem.

43 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

COE variation of Station 2 COE variation of Station 4

Semimajor axis relative variation Semimajor axis relative variation 0.01 0.01 Eccentricity Eccentricity

0.005 0.005

0 0

-0.005 -0.005

-0.01 -0.01

0 2 4 6 8 10 12 14 16 0 2 4 6 8 10 12 14 16 Event number Event number

Figure 6.2 Figure 6.3

To conclude the comparison, the trajectories (figure 6.4) and relative velocities (table 8). While there are no significant changes in the trajectory profile at first glance, the relative velocities show increases in many entries. This can constrain the validity of this solution over the base case if vrel limitations are given more credit.

Event vrel (km) 1 0.6120 2 0.5066 3 0.6268 4 0.5000 5 0.5887 6 0.4385 7 0.4823 8 0.5358 9 0.5049 10 0.4333 11 0.4600 Figure 6.4: Mission trajectories. Blue corresponds to 12 0.5189 ascending payload and red to descending 13 0.5052 payload 14 0.6299 15 0.4894 16 0.5667

Table 8: vrel of the different payload transfers, time ordered

Minimum eccentricity change

Another possibility, since most simulations so far yield similar semimajor axis and mechanical energy variation, is to choose the smallest possible eccentricity variation (overall). The square root of the sum of squares of the eccentricity change of each station (∆ei) is proposed as output for our mission function handle, the type of cost function is specified with a flag (eg: ’MechanicalEn- ergy’,’Eccentricity’):

44 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

v u n uX 2 f = t ∆ei (28) i=1

For the base case, f = 0.01114 is the value of this cost function. In general, the algorithm failed to obtain any better than this. The best value obtained is f = 0.01111 and it was for a time vector very close to the central value. As it is expected from the sensitivity analysis we performed in section 4.1.5, the Hohmann case is the absolute best for little eccentricity change (all attachments are tangent to each other and with minimum ∆V ). The best case scenario is that the genetic algorithm refines the estimation into a more accurate Hohmann, but when the mission does not have heavy loading, the estimation is already accurate. In later sections we will test the genetic algorithm in scenarios with higher loading. As mentioned, the resulting optimum is very close to the base case, slightly refined. It does not have any significant or substantial change in any parameter be that vrel, mechanical energy variation or trajectory.

Minimum change A more feasible way of determining orbit "roundness" may be the periapsis and apoapsis change, since eccentricity is somewhat ill-behaved when close to 0. Both of them illustrate the same information, let us consider a hybrid variation of both in this section. The cost function is now:

v u n uX 2 2 f = t (∆rp,i + ∆ra.i) (29) i=1

The value of this cost function for the base case is f = 536.85km. This cost function hast the same issues than the eccentricity cost function, the estimator already provides an accurate value and tends to converge to local minimums that are worse than the base case. Nonetheless, it is less prone to stall than the eccentricity cost function. The best performance the algorithm was able to obtain in this case is a cost function value of f = 535.7km.

Cases with higher loading Since the estimator seems to be performing very well in the proposed cases, we are going to increase the loading expecting a less optimum initial scenario hoping that the genetic algorithm can mend these inaccuracies. We have two ways: 1. Increase payload mass. 2. Increase number of payloads, making the mission more costly (and computationally more expensive). Note that we are not changing station spacing, this will lead inevitably to go beyond the previously imposed vrel limitations.

Let us first increase the payload mass to mp = 100kg while keeping station mass at ms = 1000kg. The trajectory plot turns notably convoluted, providing no useful information other than that a more severe degradation is taking place. The cost function values for the base case are now:

Mechanical energy Eccentricity Apses 0.29257 km2s−2 0.12284 6314.35 km

Table 9: Cost function for a base case (estimated only) mission with heavier payloads

45 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

The local convergence problem is still present, however, the algorithm seems to converge more easily towards a solution that yields a better performance in the cost function selected. Still, for all three cost functions there was rng dependence in the results, and several runs where carried out to later select the best fit among the local minimums. Tables show all three cost functions for the best scenarios in each optimization:

Mechanical energy Eccentricity Apses 0.26003 km2s−2 0.1219 6268.65 km

Table 10: Cost functions for the best fitted mechanical energy case

Mechanical energy Eccentricity Apses 0.35884 km2s−2 0.12080 6283.20 km

Table 11: Cost functions for the best fitted eccentricity case

Mechanical energy Eccentricity Apses 0.32199 km2s−2 0.12472 6196.71 km

Table 12: Cost functions for the best fitted apses change case

The improvement from the base case is not dramatic, but an optimization oriented towards the me- chanical energy appears to yield appropriate results for all three parameters. Regarding eccentricity, it proved to be the most difficult parameter to reduce incurring on huge losses on the other two for little improvement on itself. The apses cost function did allow some improvement but at the expense of increasing the mechanical energy cost function. In conclusion, the genetic algorithm seems to be more suited to these scenarios where the estimator lacks accuracy since obtaining an improvement in the cost functions is almost guaranteed. These cases, however, are not so useful in reality (you want to avoid excessive degradation on a single transfer, as well as limiting the vrel). For this reason, a mission with more payloads and moderated masses is proposed. Consider a mission with two ascending payloads and two descending payloads of 10kg each. Notice that we added complexity to the problem and more elements to the time vector. Table 13 includes all cost functions for the base case of this mission.

Mechanical energy Eccentricity Apses 0.00406 km2s−2 0.01413 443.48 km

Table 13: Cost functions for the 4 payload base case

Table 14 below includes the cost function for the best fitted (mechanical energy cost function) individual.

Mechanical energy Eccentricity Apses 0.00358 km2s−2 0.01426 449.91 km

Table 14: Cost functions for the 4 payload optimal mechanical energy case

46 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

First thing to note is that there is a significant increase in ga.m after increasing the time vector with linear bounds (the problem takes longer to initialize). Once again, the code failed to converge consistently on a result that improves the base case performance, allowing for very little improvement.

Lastly, an asymmetric mission profile of two ascending payloads and one descending payload (10kg each) is studied. Table 15 compiles the cost function results for this base case.

Mechanical energy Eccentricity Apses 0.08740 km2s−2 0.01188 532.97 km

Table 15: Cost functions for the asymmetric payloads base case

Notice that with less payloads we have a much higher cost in mechanical energy than in the previous 4 payload case (table 13) because there is an unbalance of mass going up and going down.

Mechanical energy Eccentricity Apses 0.07983 km2s−2 0.01971 634.24 km

Table 16: Cost functions for the asymmetric payloads best fitted mechanical energy

In this case, the genetic algorithm also finds an improved case with ease, converging locally but at a better mechanical energy cost. The allowable improvement is not dramatic but noticeable and consistent. Also, contrary to the other scenarios, a better result is obtained when increasing the margin of the bounds. For tight margins the product A ∗ Topt − b presents entries equal to zero almost always. This is a clear indication that the estimator does not suffice in unbalanced payload mass transfers. Distancing from Hohmann case, however, increases the cost in eccentricity and apses.

It seems that the applicability of the genetic algorithm to this problem is more suited towards off-design cases. In cases under design conditions, even if we increase the loading (more payloads), the estimated base case still outperforms most ga.m results. On the other hand, modifying a design parameter like the payload mass or setting an unbalanced mission does leave room for improvement.

Variations in simultaneous and staggered transfers So far, when issuing more than one payload in the same direction in the previous cases we were using a staggered mission design. Another option we will call simultaneous will be tested now, the difference between both is:

• In the staggered design, after a payload is sent in one sense, the next one in queue for the same direction is held until the first one arrives at the last station of the network. In this way, there are never two payloads going up or going down at the same time.

• In the simultaneous design, payloads are allowed to leave the initial station as soon as the previous one arrived to the second station. In this way there can be more than one payload going in the same direction simultaneously.

The first one is computationally more convenient since there are less payload interactions and so Mission.m will require less iterations per call to converge and is less prone to start on a poor initial guess. The second one however saves a lot of mission time, since the same number of payloads can be sent is less time. If there is no substantial difference in the performance of both options, the simultaneous design would be chosen for final mission definition. Note that the problem is manipulating the same amount of energy in both cases.

47 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Figure 6.5 Figure 6.6

Figures 6.5 and 6.6 show trajectory lines for the base case using staggered and simultaneous designs respectively (4-payload missions). Stations attach and detach at different points, but other than that the arcs are all close to Hohmann. Table 17 compiles all cost functions for both scenarios in the base case.

Mechanical energy Eccentricity Apses Staggered 0.00406 km2s−2 0.01413 443.48 km Simultaneous 0.00438 km2s−2 0.02178 874.20 km

Table 17: Cost functions for the 4 payload base case in both staggered and simultaneous design

Table 18 shows the best fitted mechanical energy cases obtained in both scenarios.

Mechanical energy Eccentricity Apses Staggered 0.00358 km2s−2 0.01426 449.91 km Simultaneous 0.00335 km2s−2 0.02247 884.96 km

Table 18: Cost functions for the 4 payload base case in both staggered and simultaneous design

While there was a significant increase in execution time due to the added complexity, both designs behaved similarly and allow for similar costs in mechanical energy. It does not increase the performance of the genetic algorithm either, ga.m still struggles to find a significantly better fit individual than the estimated. The simultaneous profile did provide a significant improvement in mission time, from 339204s (94.2h) to 249206s (69.22h) , providing more than a 26% decrease that will be more significant as more payloads are added.

48 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Final remarks and conclusions In this chapter we applied a built-in genetic algorithm to find optimum performance of the network in some cases of interest. Out of the analysis we draw the following conclusions: 1. That for peak performance under design conditions an intelligent base case definition and mission profile is fundamental and sufficient. 2. That proper bounding and parametrization is fundamental to run the genetic algorithm. 3. That the nature of this bounding limits the applicability of many specific tools like crossover and mutation functions. 4. That usage of this algorithm in our problem is more suited towards off-design conditions of operation, where the preliminary estimator lacks accuracy. 5. That some improvements on mission time can be done without increasing the degradation by timing payload launches more compactly.

49 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

7 Conclusion

The present study has developed and implemented in a programming environment a network of relay stations that serve as energy accumulators for payload transfers. In that a way, it was proposed that accumulated energy could prevent the need for propellant in such transfers. Supported on energy arguments, a two-way transfer from different levels of potential could be balanced enough to minimize the negative impact or degradation suffered by the network during its operation. Based on a well-studied theoretical background. A model for this network was implemented in order to perform descriptive simulations that help analyze and post-process all the parameters of our problem and quantify said impact on the network. Preliminary analyses helped understand the problem and provide guidelines for network design (station spacing) and mission design while assessing the effect of changing different design parameters proved useful to set limitations and provide insight to later bound the optimization algorithms. Finally, through the design of more complex algorithms, a complete unconstrained (from the point of view of mission definition) mission code was implemented and used to carry out optimisation runs using genetic algorithms. Several conclusions can be drawn from the whole study: Firstly, that a complete model in a high-level programming language is key to run advanced algorithms and run simulations that help understand the problem. Flexibility in the implementation, through appropriate modulation, is required in order to reduce the level of technical debt and expand the code as new functionalities are required. This model has to work in a computationally affordable manner in order to allow execution of optimisation algorithms. A station spacing that distributes perfectly the ∆V cost over all stations is over constrained, but a method to place them with unsubstantial differences exists. This method is also enough to provide uniformity to station degradation, facilitating later the energy balance. We found that the most efficient way of reducing the energy costs and minimize network degradation is appropriate mission design. In particular, a balanced transfer of payload mass from higher orbits to lower orbits and vice-versa in the closest Hohmann arc possible paired with the mentioned station spacing criterion. Finally, further optimization using genetic algorithms proved to have a limited applicability. The algorithm is best suited at refining the network when operating in off-design conditions while for the design case, analytical estimator suffices. The success of the algorithm is constrained by local convergence issues, the nature of the problem requires linear bounds that are incompatible with many crossover and mutation functions that could improve the performance. This project opens the gate for further research on the same topic. Aspects that go beyond the scope of the present study that can expand the research include: technical design of the specific elements (stations launch mechanisms, payload attachment mechanism, etc), application of tethers, definition of new cost functions (introduce constrains in mission time), further optimization with different algorithms, reformulation of the problem to allow different study cases (prescribing vrel), generalization of the theoretical model (include perturbation theory, 3BP considerations and cislunar tests), etc. The topic covered in this thesis is to be proposed for IAC2021 (International Astronautical Congress 2021 : http://www.iafastro.org/events/iac/iac-2021/), and presented there if the abstract is accepted. This project is also part of NANOSTAR, an inter-university aerospace collaborative project in southern Europe. https://nanostarproject.eu/

50 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Appendices

51 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Example of Station network input file

The textbox below contains an example for the input file structure of the station network. This same example is used for the execution of test missions shown in 4 and 5 and corresponds to and equispaced network of circular orbits ranging from a1 = 8946.5km to a5 = 44782.5km. Notice that the file is prepared to account for singular cases of COE.

%Input file with base station network data, all angles in degrees, distances in kilometers, masses in kg% Number of stations: 5 –––––––––––––––––––––––––––––––- Mass of the station (kg): 1000 Orbit type (0 elliptic/1 circular): 1 (Initial) Argument of latitude (only for circular orbits): 45 (only for elliptic orbits): NaN (Initial) True anomaly (only for elliptic orbits): NaN Inclination: 0 of ascending node (only for nonzero inclination): 0 Semi-major axis: 8946.5 Eccentricity: 0 –––––––––––––––––––––––––––––––- Mass of the station (kg): 1000 Orbit type (0 elliptic/1 circular): 1 (Initial) Argument of latitude (only for circular orbits): 45 Argument of periapsis (only for elliptic orbits): NaN (Initial) True anomaly (only for elliptic orbits): NaN Inclination: 0 Azimuth of ascending node (only for nonzero inclination): 0 Semi-major axis: 17913 Eccentricity: 0 –––––––––––––––––––––––––––––––-

52 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Mass of the station (kg): 1000 Orbit type (0 elliptic/1 circular): 1 (Initial) Argument of latitude (only for circular orbits): 45 Argument of periapsis (only for elliptic orbits): NaN (Initial) True anomaly (only for elliptic orbits): NaN Inclination: 0 Azimuth of ascending node (only for nonzero inclination): 0 Semi-major axis: 26869.5 Eccentricity: 0 –––––––––––––––––––––––––––––––- Mass of the station (kg): 1000 Orbit type (0 elliptic/1 circular): 1 (Initial) Argument of latitude (only for circular orbits): 45 Argument of periapsis (only for elliptic orbits): NaN (Initial) True anomaly (only for elliptic orbits): NaN Inclination: 0 Azimuth of ascending node (only for nonzero inclination): 0 Semi-major axis: 35826 Eccentricity: 0 –––––––––––––––––––––––––––––––- Mass of the station (kg): 1000 Orbit type (0 elliptic/1 circular): 1 (Initial) Argument of latitude (only for circular orbits): 60 Argument of periapsis (only for elliptic orbits): NaN (Initial) True anomaly (only for elliptic orbits): NaN Inclination: 0 Azimuth of ascending node (only for nonzero inclination): 0 Semi-major axis: 44782.5 Eccentricity: 53 0 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Mission input file example

Information in the input file used for the example in section 5.3 plotted in figure 5.4.

%Input file for Mission analysis including payload desired transfers. Times in seconds, masses in kg% Number of payloads: 2 –––––––––––––––––––––––––––––––- Mass of the payload(kg): 10 Initial station: 1 Number of operations: 2 %–-Operation 1–-% Waiting Time (s): 2500 Time of Flight (s): 20000 Target Station: 2 %–-Operation 1–-% Waiting Time (s): 3500 Time of Flight (s): 17000 Target Station: 3 –––––––––––––––––––––––––––––––- Mass of the payload(kg): 10 Initial station: 2 Number of operations: 3 %–-Operation 1–-% Waiting Time (s): 1800 Time of Flight (s): 22000 Target Station: 3 %–-Operation 1–-% Waiting Time (s): 2700 Time of Flight (s): 21000 Target Station: 4 %–-Operation 1–-% Waiting Time (s): 3800 Time of Flight (s): 25000 Target Station: 3

54 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Code log

The code log for the execution of the previous mission is displayed in the textboxes below.

Attachment of payload 2 to station 3 unsuccessful to precision. r_target = [-13246.998854 -23377.062501 0.000000] r_actual = [-13257.050571 -23371.363634 0.000000] Attachment of payload 1 to station 2 unsuccessful to precision. r_target = [16303.962248 7419.999196 0.000000] r_actual = [16196.854549 7703.853356 0.000000] Attachment of payload 1 to station 3 unsuccessful to precision. r_target = [21129.827672 16598.205365 0.000000] r_actual = [20994.363812 17150.949069 0.000000] Attachment of payload 2 to station 4 unsuccessful to precision. r_target = [17030.615791 -31519.207036 0.000000] r_actual = [17010.070060 -31530.299711 0.000000] Attachment of payload 2 to station 3 unsuccessful to precision. r_target = [17854.720446 -20079.317803 0.000000] r_actual = [20680.026481 -16301.370305 0.000000] -End of iteration 1 with one or more transfers unconverged- ––––––––––––––––––––––––––––––––– Attachment of payload 2 to station 3 successful to precision. r_target = [-13257.050571 -23371.363634 0.000000] r_actual = [-13257.050571 -23371.363634 0.000000] Attachment of payload 1 to station 2 unsuccessful to precision. r_target = [16196.854549 7703.853356 0.000000] r_actual = [16196.922053 7703.766489 0.000000] Attachment of payload 1 to station 3 unsuccessful to precision. r_target = [20994.363812 17150.949069 0.000000] r_actual = [20995.205491 17150.637128 0.000000] Attachment of payload 2 to station 4 successful to precision. r_target = [17010.070060 -31530.299711 0.000000] r_actual = [17010.070060 -31530.299711 0.000000] Attachment of payload 2 to station 3 unsuccessful to precision. r_target = [20680.026481 -16301.370305 0.000000] r_actual = [20677.293038 -16298.440558 0.000000] -End of iteration 2 with one or more transfers unconverged- –––––––––––––––––––––––––––––––––

55 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Attachment of payload 2 to station 3 successful to precision. r_target = [-13257.050571 -23371.363634 0.000000] r_actual = [-13257.050571 -23371.363634 0.000000] Attachment of payload 1 to station 2 successful to precision. r_target = [16196.922053 7703.766489 0.000000] r_actual = [16196.922053 7703.766489 0.000000] Attachment of payload 1 to station 3 successful to precision. r_target = [20995.205491 17150.637128 0.000000] r_actual = [20995.205491 17150.637128 0.000000] Attachment of payload 2 to station 4 successful to precision. r_target = [17010.070060 -31530.299711 0.000000] r_actual = [17010.070060 -31530.299711 0.000000] Attachment of payload 2 to station 3 unsuccessful to precision. r_target = [20677.293038 -16298.440558 0.000000] r_actual = [20677.264946 -16298.473762 0.000000] -End of iteration 3 with one or more transfers unconverged- ––––––––––––––––––––––––––––––––– Attachment of payload 2 to station 3 successful to precision. r_target = [-13257.050571 -23371.363634 0.000000] r_actual = [-13257.050571 -23371.363634 0.000000] Attachment of payload 1 to station 2 successful to precision. r_target = [16196.922053 7703.766489 0.000000] r_actual = [16196.922053 7703.766489 0.000000] Attachment of payload 1 to station 3 successful to precision. r_target = [20995.205491 17150.637128 0.000000] r_actual = [20995.205491 17150.637128 0.000000] Attachment of payload 2 to station 4 successful to precision. r_target = [17010.070060 -31530.299711 0.000000] r_actual = [17010.070060 -31530.299711 0.000000] Attachment of payload 2 to station 3 successful to precision. r_target = [20677.264946 -16298.473762 0.000000] r_actual = [20677.264946 -16298.473762 0.000000] -End of iteration 4 with all transfers converged to precission-

56 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Trivial single payload case

To check the numerical accuracy of our models, we are going to run the same simulation we did with our first mission prototype with this more advanced code and compare the result. The example we covered in subsection 4.1.3 consisted on a single payload mission with two transfers (3 → 4 → 5). The log for this mission executed is shown in figure .1:

Attachment of payload 1 to station 4 unsuccessful to precision. r_target = [12838.936911 33446.434364 0.000000] r_actual = [12842.050939 33445.238878 0.000000] Attachment of payload 1 to station 5 unsuccessful to precision. r_target = [-9298.437081 43806.522009 0.000000] r_actual = [-9289.681665 43808.379573 0.000000] -End of iteration 1 with one or more transfers unconverged- ––––––––––––––––––––––––––––––––– Attachment of payload 1 to station 4 successful to precision. r_target = [12842.050939 33445.238878 0.000000] r_actual = [12842.050939 33445.238878 0.000000] Attachment of payload 1 to station 5 successful to precision. r_target = [-9289.681665 43808.379573 0.000000] r_actual = [-9289.681665 43808.379573 0.000000] -End of iteration 2 with all transfers converged to precision-

Figure .1: Code log of the simulation

The first thing we note from this example is that the code must converge in just two iterations since there is no coupling. The error of the first iteration is only due to slight discrepancies in the definition of the time spans in the free propagation at the initial guess and in the actual simulations. It must not be bigger than v ∗ tstep, so we find only slight errors of the order of units of km in this case. The second iteration is just for the code to check that indeed there is no difference since there is no coupling, which it cannot know beforehand in the general case.

The payload and station trajectory displayed in figure .2 is identical to the one in 4.5.

Figure .2: Payload trajectory

57 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++++++++++++STATION IMPACT++++++++++++++++++++++++++ ||Event: 1|| Type: Ejection t = 1000.00 s Payload: 1 –> Station: 3 r = [16096.75,21514.29,0.00] km v_minus = [-3.0839,2.3074,0.0000] km/s v_plus = [-3.1101,2.2891,0.0000] km/s a_minus = 26869.50 a_plus = 27011.75 e_minus = 0.000000 e_plus = 0.009462 v_rel = 3.1120 ––––––––––––––––––––––––––––––––– ||Event: 2|| Type: Attachment t = 4500.00 s Payload: 1 –> Station: 4 r = [12845.16,33444.04,0.00] km v_minus = [-3.1138,1.1959,0.0000] km/s v_plus = [-3.0951,1.2118,0.0000] km/s a_minus = 35826.00 a_plus = 35576.56 e_minus = 0.000000 e_plus = 0.009547 v_rel = 2.4825 ––––––––––––––––––––––––––––––––– ||Event: 3|| Type: Ejection t = 6500.00 s Payload: 1 –> Station: 4 r = [6472.34,35276.20,0.00] km v_minus = [-3.2626,0.6160,0.0000] km/s v_plus = [-3.2605,0.5969,0.0000] km/s a_minus = 35576.56 a_plus = 35460.77 e_minus = 0.009610 e_plus = 0.011407 v_rel = 1.8909 ––––––––––––––––––––––––––––––––– ||Event: 4|| Type: Attachment t = 11000.00 s Payload: 1 –> Station: 5 r = [-9286.76,43809.00,0.00] km v_minus = [-2.9186,-0.6187,0.0000] km/s v_plus = [-2.9239,-0.5991,0.0000] km/s a_minus = 44782.50 a_plus = 44818.40 e_minus = 0.000000 e_plus = 0.006841 v_rel = 2.0509 –––––––––––––––––––––––––––––––––

Figure .3: Station impact report of this simulation

Station impact is now disposed in a more convenient way, since only information concerning actual operations is displayed. However we can see that the semimajor axis variations are identical to the ones in 4.7. The eccentricity variation shows some discrepancies in the fourth decimal place but as we know this variable is very sensitive when close to zero value. Finally, the relative velocity vrel is almost equal to ∆V shown in figure 4.7 as it should since we are considering low payload masses but not identical as we have previously discussed.

58 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

Event structure example

The image below shows how Event structure in Mission.m organizes the information to carry simulations. In particular this example is associated with the input file on the previous appendix.

59 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

References

[1] H. D. Curtis, for engineering students. Butterworth-Heinemann, 2013. [2] K. E. Tsiolkovsky, “Exploration of the universe with reaction machines,” The Science Review, vol. 5, 1903. [3] NASA, “Advanced space transportation program: Paving the highway to space.” https://www.nasa.gov/centers/marshall/news/background/facts/astp.html#:~:text =Today%2C%20it%20costs%20%2410%2C000%20to,per%20pound%20within%2040%20years., 2008. [Online; accessed 26-August-2020]. [4] S. T. Costs, “Trends in price per pound to orbit 1990-2000,” Futron Corporation, Bethesda, Maryland, 2002. [5] B. C. Edwards, “Design and deployment of a space elevator,” Acta Astronautica, vol. 47, no. 10, pp. 735–744, 2000. [6] J. A. Carroll, “Tether applications in space transportation,” Acta Astronautica, vol. 13, no. 4, pp. 165–174, 1986. [7] P. A. Swan, P. Swan, and C. W. Swan, Space elevator systems architecture. Lulu. com, 2007. [8] R. P. Hoyt and C. Uphoff, “Cislunar tether transport system,” Journal of Spacecraft and Rockets, vol. 37, no. 2, pp. 177–186, 2000. [9] M. Sanjurjo Rivo, Self Balanced Bare Electrodynamic Tethers. Space Debris Mitigation and other Applications. PhD thesis, Aeronauticos, 2009. [10] J. Peláez and M. Sanjurjo, “Generator regime of self-balanced electrodynamic bare tethers,” Journal of Spacecraft and Rockets, vol. 43, no. 6, pp. 1359–1369, 2006. [11] M. Sanjurjo-Rivo, F. R. Lucas, J. Peláez, C. Bombardelli, E. C. Lorenzini, D. Curreli, D. J. Scheeres, and M. Lara, “On the dynamics of a tethered system near the collinear libration points,” in AIAA/AAS Astrodynamics Specialist Conference, pp. 3218–3242, Curran Associated Red Hook, New York, 2008. [12] M. Kruijff, “Tethers in space: A propellantless propulsion in-orbit demonstration,” 2011. [13] Kurzgesagt, “1,000km cable to the stars - the skyhook.” https://www.youtube.com/watch?v= dqwpQarrDwk, 2019. [Online; accessed 26-August-2020]. [14] G. Avanzini, “A simple lambert algorithm,” Journal of guidance, control, and dynamics, vol. 31, no. 6, pp. 1587–1594, 2008. [15] R. Gooding, “A procedure for the solution of lambert’s orbital boundary-value problem,” Celestial Mechanics and Dynamical Astronomy, vol. 48, no. 2, pp. 145–165, 1990. [16] N. Arora and R. P. Russell, “A fast and robust multiple revolution lambert algorithm using a cosine transformation,” Paper AAS, vol. 13, p. 728, 2013. [17] W. Hohmann, Die Erreichbarkeit der Himmelskörper: Untersuchungen über das Raumfahrt- problem. Oldenbourg, 1994. [18] A. Sternfeld, “Sur les trajectoires permettant d’approcher d’un corps attractifs central à partir d’une orbite keplérienne donnée,” Comptes rendus de l’Académie des Sciences, vol. 198, pp. 711– 713, 1934. [19] O. Astrachan, “Bubble sort: an archaeological algorithmic analysis,” ACM Sigcse Bulletin, vol. 35, no. 1, pp. 1–5, 2003. [20] D. E. Goldenberg, “Genetic algorithms in search, optimization and machine learning,” 1989.

60 Analysis of Orbital Relay Stations for Orbital Energy Accumulation BSc Aerospace Engineering

[21] MATLAB, “Matlab documentation: rng.” https://www.mathworks.com/help/matlab/ref/ rng.html, 2011. [Online; accessed 14-August-2020]. [22] MATLAB, “Matlab documentation: Genetic algorithm options.” https://www.mathworks.co m/help/gads/genetic-algorithm-options.html, 2020. [Online; accessed 17-August-2020].

61