Skip to content

ptgrogan/ofspy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

101 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ofspy: Orbital Federates Simulation - Python

Introduction

This project develops an integrated simulation for Orbital Federates, a simplified model of Federated Satellite Systems (FSS). It demonstrates a multi-actor system value model by mapping input design decisions to initial cost and total value measured by revenue accumulated over a system lifecycle.

Installation

This package requires two dependencies: Gurobi and Tkinter. The easiest way to use ofspy is via Anaconda, a Python distribution which bundles many of the most useful packages including Tkinter and makes it easy to install Gurobi.

Gurobi is a commercial optimization library with bindings for Python with a free license available for academic use. Download and install the Anaconda distribution for Python 2.7 for your machine. Follow the instructions above to install Gurobi into Anaconda and install a Gurobi license.

Once the dependencies are set, you can configure the path variables by running (from a command or terminal window) at the root of the project:

pip install -e .

Usage

The main OFS executable ofs.py runs one Orbital Federates simulation. Its basic syntax is:

python ofs.py <DESIGN...> [OPTION...]

where DESIGN specifies one or more space system elements and OPTION sets zero or more options.

Standard outputs return a list of initial cost-final value pairs (: delimiter) for each player separated by newlines, e.g.

1150.0:1500.0
1100.0:1700.0

for a two-player game specified with designs 1.GroundSta@SUR1,pSGL 1.SmallSat@MEO6,pSGL,VIS 2.GroundSta@SUR2,pSGL 2.SmallSat@MEO1,pSGL,SAR and seed 0.

Each design is specified with the following syntax: P.SysType@LOC,SubType,... with

  • P = player number {1, 2, ...}
  • SysType = system type:
    • GroundSta: Ground station with capacity for 3 subsystem modules. Costs 500 to design and 0 to commission on the surface.
    • SmallSat: Satellite with capacity for 2 subsystem modules. Costs 200 to design and 0 commission in LEO, 100 to commission in MEO, and 200 to commission in GEO.
    • MediumSat: Satellite with capacity for 4 subsystem modules. Costs 300 to design and 0 commission in LEO, 150 to commission in MEO, and 300 to commission in GEO.
    • LargeSat: Satellite with capacity for 6 subsystem modules. Costs 400 to design and 0 commission in LEO, 200 to commission in MEO, and 400 to commission in GEO.
  • LOC = location:
    • SUR1-SUR6: Surface locations in sectors 1--6.
    • LEO1-LEO6: Low-Earth orbital locations above sectors 1--6. Spacecraft propagate 2 sectors per turn.
    • MEO1-MEO6: Medium-Earth orbital locations above sectors 1--6. Spacecraft propagate 1 sector per turn.
    • GEO1-GEO6: Geostationary Earth orbital locations above sectors 1--6. Spacecraft propagate 0 sectors per turn.
  • SubType = subsystem type:
    • pSGL: Proprietary space-to-ground link. Can transmit 1 bit of data between spacecraft and ground stations (same owner) per turn. Takes up 1 module and costs 50.
    • oSGL: Open space-to-ground link. Can transmit 1 bit of data between spacecraft and ground stations (any owner) per turn. Takes up 1 module and costs 100.
    • pISL: Proprietary inter-satellite link. Can transmit 1 bit of data between spacecraft (same owner) per turn. Takes up 1 module and costs 50.
    • oISL: Open inter-satellite link. Can transmit 1 bit of data between spacecraft (any owner) per turn. Takes up 1 module and costs 100.
    • VIS: Visual light sensor. Can sense and store 1 bit of visual light data per turn. Takes up 1 module and costs 250.
    • SAR: Synthetic aperture radar. Can sense and store 1 bit of radar data per turn. Takes up 1 module and costs 250.
    • DAT: Data storage unit. Can store 1 bit of data per turn. Takes up 1 module and costs 50.
    • DEF: Debris defense. Protects a spacecraft from debris events. Takes up 1 module and costs 100.

Options include the following flags (view with python ofs.py --help):

  • -d or --numTurns: sets the simulation duration (number of turns), defaults to 24
  • -p or --numPlayers: sets the number of players, defaults to None to interpret from designs
  • -i or --initialCash: sets the initial cash amount, defaults to None to adapt to initial designs
  • -s or --seed: sets the RNG seed, defaults to 0
  • -o or --ops: sets the federate operational strategy from {n,d} for none (n) or centralized (d), defaults to d6
  • Additional centralized options set dH or dH,s,i where:
    • H is the planning horizon (default 6)
    • s is the storage opportunity cost (default 100; a estimates based on expected demand), and
    • i is the ISL opportunity cost (default 10)
    • Defaults to d6,100,10
  • -f or --fops: sets the federation operational strategy from {n,d,x} for none (n), centralized (d), or opportunistic fixed-cost federated (x), defaults to n
  • Additional centralized options set dH or dH,s,i where:
    • H is the planning horizon (default 6),
    • s is the storage opportunity cost (default 100; a estimates based on expected demand), and
    • i is the ISL opportunity cost (default 10)
    • Defaults to d6,100,10 if selected
  • Additional federated options set xG,I or xG,I,H,s,i or xH,s,i where:
    • G is the fixed SGL service cost (default 50),
    • I is the fixed ISL service cost (default 20),
    • H is the planning horizon (default 6),
    • s is the storage opportunity cost (default 100; a estimates based on expected demand), and
    • i is the ISL opportunity cost (default 10)
    • Defaults to x50,20,6,100,10 if selected
  • -l or --logging sets the logging level among {debug, info, warning, error}, defaults to error
  • -g or --gui launches the graphical user interface where the spacebar advances time and escape resets the simulation

Acknowledgement

This project was funded in part by a MIT-Skoltech Faculty Development Plan (FDP) grant on Federated Satellite Systems (FSS) with Massachusetts Institute of Technology. Source code is Copyright (c) 2015-2019 Paul T. Grogan.

For more information on the FSS project, please see the following publications:

  • Grogan, P.T., K. Ho, A. Golkar, and O.L. de Weck, 2016. "Multi-actor Value Modeling for Federated Systems," IEEE Systems Journal, vol. 12, no. 2, pp. 1193-1202.
  • Grogan, P.T., K. Ho, A. Golkar, and O.L. de Weck, 2015. "Bounding the Value of Collaboration in Federated Systems," IEEE Systems Conference, Orlando, FL.
  • Grogan, P.T. and O.L. de Weck, 2015. "Interactive Simulation Games to Assess Federated Satellite System Concepts", 2015 IEEE Aerospace Conference, Big Sky, Montana.
  • Grogan, P.T., S. Shirasaka, A. Golkar, and O.L. de Weck, 2014. "Multi-stakeholder Interactive Simulation for Federated Satellite Systems", 2014 IEEE Aerospace Conference, Big Sky, Montana.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages