Code Monkey home page Code Monkey logo

gbees's Introduction

Grid-based, Bayesian Estimation Exploiting Sparsity (GBEES)

The "GBEES" repository contains the codebase accompanying the paper "State Estimation of Chaotic Trajectories: A Higher-Dimensional, Grid-Based, Bayesian Approach to Uncertainty Propagation" presented at the January 2024 AIAA/AAS Space Flight Mechanics Meeting. Below is an in-depth summary explaining the proper usage of all the software included in said repository. In all, the codebase provides the computational framework necessary to:

  1. Efficiently, continuous-time propagate an initially Gaussian distribution governed by the dynamics of a nonlinear system
  2. Perform discrete measurement updates at given epochs via Bayes theorem
  3. Compare the accuracy of said propagation with a Particle Filter (PF)/Monte Carlo (MC) simulation of similar resolution
  4. Compare the efficiency of the GBEES propagation with the PF/MC simulation of high-resolution

The current framework is applicable to 4D systems, and is specifically utilized to propagate orbital uncertainty in the PCR3BP. Users can use any initial conditions, period, and celestial system as long as the data files are placed in the correct locations (more on this later).

General Formulation

There are three provided systems that GBEES is applied to:

  1. 3D Lorenz Chaotic Attractor
  2. 4D Planar Circular Restricted Three Body Problem
  3. 6D Restricted Two-Body (Keplerian) Problem

Each of these systems has their own folder within the GBEES repository. GBEES is propagated via the C++ code main.cpp in the "/GBEES" subfolder within each of these folder. A PF/MC simulation of similar resolution as the GBEES propagation is propagated via the C++ code main.cpp in the "/PF" or "/MC" subfolder.

Here is a breakdown of all of the subrepositories within each of the three examples provided, as well as their functions:

  • '/GBEES/Epochs': This is where the PDFs that are written to .txt files during GBEES are stored. Each PDF is sequestered into its specific simulation number subrepository, '/M#'.The discrete measurement updates are also saved in this file, in the form of a measurement.txt file. Update this .txt file with the measurement vector. Additionally, the size and the number of timesteps taken by the explicit scheme are saved in this folder, in the timing.txt file. This information is used for comparing computational efficiency.

Here is a breakdown of all of the files within the examples provided, as well as their usages:

  • measurements.txt: This .txt file contains the discrete measurement vectors that are fed to the GBEES and MC simulations at the provided epoch, the standard deviation associated with each measurement, the gravitational coefficient of the system, and the period of the orbit (or the time of total propagation). This should be the form of the measurement file (for the PCR3BP):

x (LU) y (LU) vx (LU/TU) vy (LU/TU)
x0 y0 vx0 vy0
dx (LU) dy (LU) dvx (LU/TU) dvy (LU/TU)
$\sigma_x^2$ $\sigma_x\cdot\sigma_y$ $\sigma_x\cdot\sigma_{vx}$ $\sigma_x\cdot\sigma_{vy}$
$\sigma_y\cdot\sigma_x$ $\sigma_y^2$ $\sigma_y\cdot\sigma_{vx}$ $\sigma_y\cdot\sigma_{vy}$
$\sigma_{vx}\cdot\sigma_x$ $\sigma_{vx}\cdot\sigma_y$ $\sigma_{vx}^2$ $\sigma_{vx}\cdot\sigma_{vy}$
$\sigma_{vy}\cdot\sigma_x$ $\sigma_{vy}\cdot\sigma_y$ $\sigma_{vy}\cdot\sigma_{vx}$ $\sigma_{vy}^2$
$\mu$
$\mu_1$
T (TU)
T
  • timing.txt: This .txt file stores the information necessary to compare the runtimes and sizes of the GBEES and PF/MC simulations (more on this later). Now that each of the folders and files within the GBEES repository has been explained, we'll go into the intricacies of each provided example, as they all have slight differences that are implemented.

'/Lorenz3D'

The example uses the 3D Lorenz attractor dynamics, and includes all the modifications made to improve the efficiency, discussed in the associated AIAA/AAS conference paper.

'/R2BP'

This example uses the Restricted Two-Body (Keplerian) dynamics, using an initial condition that results in an elliptical orbit about a main body (either Earth or Europa) and propagate for multiple revolutions without measurement updates until the uncertainty becomes highly non-Gaussian. For this simulation, we compare a UKF (Cartesian and equinoctial) and EnKF (Cartesian and equinoctial) to a high-resolution PF (truth model).

'/PCR3BP'

This example uses the Planar Circular Restricted Three-Body dynamics, using an initial condition that results in a Low-Prograde Orbit about Europa, sourced from the JPL Three-Body Periodic Orbit catalog. For this simulation, we propagate using GBEES until positional uncertainty becomes non-Gaussian, corresponding to about 14 hours, then compare this propagation with a UKF, EnKF, and a high-resolution PF (truth model).



For further information about code usage, please contact [email protected]

gbees's People

Contributors

bhanson10 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.