Difference between revisions of "Jank Mission Design Tool"

From Stanford SSI Wiki
Jump to navigation Jump to search
m (Fixed typo)
 
(4 intermediate revisions by the same user not shown)
Line 19: Line 19:
 
== Installation on Corn ==
 
== Installation on Corn ==
 
JMDT provides a handy script to install it on Corn, Stanford's shared computing cluster.
 
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).
+
* Install an SSH client. If you're on Linux or Mac, you have one installed already and do not need to do anything. If you're on Windows, Stanford recommends [http://mobaxterm.mobatek.net Mobaxterm].
* SSH into corn: <tt>ssh [your sunet id]@corn.stanford.edu</tt>. Possibly add <tt>-AX</tt> later to get GUI, like this: <tt>ssh -AX [your sunet id]@corn.stanford.edu</tt>
+
* SSH into corn: <tt>ssh -AX [your sunet id]@corn.stanford.edu</tt>. For example, <tt>ssh -AX amaldona@corn.stanford.edu</tt>. You will likely need to use two-factor authentication.
 
* Clone jmdt: <tt>https://github.com/stanford-ssi/jmdt.git</tt>
 
* Clone jmdt: <tt>https://github.com/stanford-ssi/jmdt.git</tt>
 
* <tt>cd jmdt</tt>
 
* <tt>cd jmdt</tt>
Line 28: Line 28:
 
* Run a Python script, like <tt>python diff_drag.py</tt>
 
* Run a Python script, like <tt>python diff_drag.py</tt>
  
To edit files, you can either use God's own editor, <tt>vi</tt> or use <tt>gedit</tt>, a good graphical editor (you'll need to log in with <tt>-AX</tt> for that, and possibly exit and log back in if it stops working). After editing C++, you'll have to recompile: you can do that with <tt>make</tt>. If you edit a Python file, re-running it will do the job.
+
To edit files, you can either use God's own editor, <tt>vi</tt>, or use <tt>gedit</tt>, a good graphical editor. After editing C++, you'll have to recompile: you can do that with <tt>make</tt>. If you edit a Python file, re-running it will do the job.
 +
 
 +
JMDT is hosted through GitHub, and in order for you to collaborate on it, you will need to upload your changes and download others' changes regularly. See [[Git and GitHub]] for details on how to do so.
  
 
[[Category:Satellites]]
 
[[Category:Satellites]]

Latest revision as of 08:45, 16 January 2017

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 have one installed already and do not need to do anything. If you're on Windows, Stanford recommends Mobaxterm.
  • SSH into corn: ssh -AX [your sunet id]@corn.stanford.edu. For example, ssh -AX amaldona@corn.stanford.edu. You will likely need to use two-factor authentication.
  • 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. After editing C++, you'll have to recompile: you can do that with make. If you edit a Python file, re-running it will do the job.

JMDT is hosted through GitHub, and in order for you to collaborate on it, you will need to upload your changes and download others' changes regularly. See Git and GitHub for details on how to do so.