Files
thesis/prelim_notes/plan.md
rconnorjohnstone 97a5648ca2 Added a makefile
2021-04-03 19:01:19 -06:00

2.5 KiB

Plan After Literature Review

After reading the papers in the Google Drive (see paper_notes.md) I've come up with the following plan:

I think that I'd like to follow an approach similar to what I saw in Englander and Morante. However, I think it makes more sense to follow the Englander approach for the specific optimizers being used in the inner and outer loops. Specifically this means:

  • Set up the problem as a Hybrid Optimal Control Problem (HOCP) with an inner and an outer loop
  • The outer loop will determine the number and identities of the flybys and optimize using a Binary Genetic Algorithm described by Englander
  • The inner loop in Englander uses Sims-Flanagan Transcription optimized using monotonic basin hopping. This seems like a good approach. I'd like to use this approach, but also consider using, as an alternative method for comparison, one of the machine-learning algorithms from the other papers.
  • There are a number of other details including modeling launch C3, power, thrust, and ephemeris. For all of these I'll use either the exact approach from Englander or a similar approach. There exists an option to use alternatives to SPICE for ephemeris, but I think the parallelization problems that SPICE poses can be solved in other ways.
    • Specifically, I'd like to build this program using a micro-service architecture. This could allow for deployment using Kubernetes clusters. This will handle the parallelization (by running multiple inner loop micro-services at once) and allow for simpler use in production environments if that's ever needed, as kubernetes has a robust integration with most web-hosting services. This also allows for flexible scalability if improved speed is ever needed.

Open Questions

  • Are there other inner and outer loop optimization approaches I should consider?
  • I didn't see a ton of information regarding the specific parameters of the orbital flybys outside of the number and the identities of the planets. I need to figure out whether Englander approaches that optimization in the inner or the outer loop
  • I would like to use a fast language for this, and ideally one that I could benefit from learning about (by this I mean, preferably not C++, as I've used that before -- though it does integrate well with tools like SPICE, so it is a good option). Preferably Rust, as it has the fastest server libraries, which I don't expect to have a huge overhead, but is something to consider.