Jank Mission Design Tool

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

This is a guide

Welcome! This article is intended to guide you through an SSI process. While its authors have made efforts to make it useful, if you have questions, please ask the authors on Slack. They will be able to both help you and improve this resource for future SSI-ers.

This article was written by Joan Creus-Costa SlackLogo.png@{{{display-name}}} .

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

  • Joan Creus-Costa <jcreus@stanford.edu>
  • Sasha Maldonado <amaldona@stanford.edu>

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

To edit files, you can either use God's own editor, vi or use gedit, a good graphical editor (you'll need to log in with -AX for that, and possibly exit and log back in if it stops working).