Jank Mission Design Tool

From Stanford SSI Wiki
Revision as of 23:21, 15 January 2017 by Jcreus (talk | contribs)
Jump to navigation Jump to search

The Jank Mission Design Tool (also known as JMDT) is a piece of software developed by Satellites as part of the development of SSISAT-1. It's available on GitHub

Features

  • C++ code with a Python wrapper for plots and glue. It's very fast: about 800 simulated days in orbit per second using the most simple settings (and a time step of 10 seconds), and a respectable 150 simulated days per second using WGS84, and simulating both solar panels and drag.
  • Takes 3D models of an arbitrary satellite as input, so it can figure out what power the satellite is getting from any orientation, and what the frontal area for drag is. Painfully enough, it even takes into account when parts of the satellite are blocking part of the solar panels. This is computed on the GPU using OpenCL.
  • Three gravity models: point mass, WGS84, EGM96.
  • Three atmospheric models: none, US1976 and NRLMSISE-00.
  • Adams-Bashforth-Moulton integrator.
  • Can simulate two satellites at a time.
  • Change the control "mode": pointing at the other satellite, point radially, point prograde, point at the Sun. This changes the solar output and total drag, which can be useful when designing a mission and evaluating the power requirements and availability.
  • When the time comes, one can *somewhat* trivially perform hardware in the loop with this tool as the physical plant and, before that, debug control algorithms.

Contact

Installation on Corn

JMDT provides a handy script to install it on Corn, Stanford's shared computing cluster.

  • Install an SSH client. If you're on Linux or Mac, you're set. If you're on Windows, Stanford(TM) recommends Mobaxterm(TM).
  • SSH into corn: ssh [your sunet id]@corn.stanford.edu. Possibly add -AX later to get GUI, like this: ssh -AX [your sunet id]@corn.stanford.edu
  • Clone jmdt: https://github.com/stanford-ssi/jmdt.git
  • cd jmdt
  • ./let_there_be_jank
  • source ~/.bashrc
  • Compile jmdt: make
  • Run a Python script, like python diff_drag.py