ModelSpace
Documentation for ModelSpace models and classes.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages

ModelSpace

Hello, and welcome to ModelSpace! The following documentation details (nearly) everything you need to know about interacting with the software. If you are new to ModelSpace, we highly recommend taking the time to read through the docs before you get started. The high-level understanding they provide will save you a lot of trouble on your journey.

The documentation is organized as follows:

  • Help resources available to ATTX partners
  • Documentation on models and apps available in ModelSpace
  • A list of example scripts provided to ModelSpace users

Helpful Resources

ATTX Assist

The newly retrained ATTX Assist is an instance of ChatGPT trained on ModelSpace code and documentation designed to assist users with scripting questions. It's the best way to get an instantaneous answer.

ATTX Assist

ModelSpace User's Guide

The ModelSpace User's guide provides detailed explanations on how ModelSpace works with long form descriptions on how to handle specific use cases, such as building custom models.

On GitHub at: https://github.com/attx-engineering/modelspace-users-guide/blob/main/ModelSpace%20User's%20Guide.pdf

ATTX YouTube

The ATTX YouTube channel contains tutorials, documentation, and interesting analysis. It's a great resource for newcomers.
Got videos you'd like to see? Email help@.nosp@m.attx.nosp@m..tech and we'll add them to the curriculum! Most GUI tutorials are found here.

ATTX YouTube

ATTX Stack Overflow

The ATTX Stack Overflow is the single most useful resource for receiving help.
Questions asked on the Stack Overflow are routed directly to ATTX engineers' emails, so posting here is as good as emailing us.

If your question has not been answered, please strip proprietary information and post it there.
This helps build a community knowledge base.

ATTX Stack Overflow

The ATTX Stack Overflow is shared among ATTX partners.
Do not post proprietary data or information — remove it before posting.

ATTX Help Email

ATTX provides a direct help email: help@.nosp@m.attx.nosp@m.engin.nosp@m.eeri.nosp@m.ng.co.nosp@m.m You can reach out at any time, and the ATTX team will assist in any way we can.


Models Available in ModelSpace

The following models are provided "out of the box" in ModelSpace. Links are provided to the actual header file text, which is a fantastic guide on model use. See the user's guide for more information on how to interpret models. Don't see something you want? Let us know and we will be happy to add it to the build plan.

Flight Ready Embedded Flight Software / GNC

Model Name Description
DeadReckon.h GNC App for performing the propagation step of an EKF when an IMU is available to report the
GPSUpdate.h GNC App for performing the GPS measurement update step of an EKF when a GPS receiver is
LedBlinker.h LED Blinker example app
MagUpdate.h GNC App for performing the magnetometer measurement update step of an EKF when a 3-axis
PdAttitudeControl.h Simple PD attitude controller
TwoAxisPointingGuidance.h Two-axis constrained pointing guidance method guidance
app_apids.h

actuators

Model Name Description
CR3BPDynamicsModel.h Simplified dynamics model representing motion in the circular restricted 3 body problem
FlatPlateDragModel.h Simplified atmospheric drag model which produces a drag force opposite the wind relative velocity
ImpulseModel.h Impulse Model
ReactionWheelModel.h Reaction Wheel Model
Servo.h Model to simulate a servo's motion
SimpleThrusterModel.h Simple thruster model
TimedImpulsiveBurnModel.h Model which applies a fixed impulse to a vehicle at a set sim or UTC time

assemblies

Model Name Description
CustomPlanet.h Custom planet consisting of inertial and rotating frame which can be configured with custom rotation rate
Spacecraft.h Spacecraft Model
SpicePlanet.h High fidelity planet model using the JPL cspice framework under the hood for ultra accurate states

communications

Model Name Description
CommunicationsDataModel.h Simulated model of spacecraft communications including losses and gains with comm links

environment

Model Name Description
AsphericalGravityModel.h Aspherical gravity model with J2 and J3 effects
CompositeWindModel.h Composite wind model
DipoleMagneticFieldModel.h Simplified magnetic field model which treats Earth as a dipole magnet
GravityGradientModel.h Gravity Gradient Model
MSISAtmosphereModel.h High fidelity atmosphere model utilizing the NRL MSIS implementation
OccultationModel.h Occultation model using spherical representations of objects
PointMassGravityModel.h Point mass gravity model
SimpleDisturbanceWindModel.h Simple disturbance wind model
SimpleMeanWindModel.h Simple mean wind model
SolarRadiationPressureModel.h Solar Radiation Pressure Model
SphericalHarmonicsGravityModel.h Spherical Harmonics Model
TabularAtmosphereModel.h Tabular atmosphere model
WorldMagneticFieldModel.h Spherical Harmonics Model

events

Model Name Description
LogEvent.h Class to execute logging
SimTerminationEvent.h Class to trigger termination in scheduler

monitors

Model Name Description
ProximityMonitor.h
RateMonitor.h Monitor to trigger at a particular rate
TimeTriggerMonitor.h Monitor to trigger at a particular rate

power

Model Name Description
SimpleBatterySystem.h Simplified model of vehicle battery system which estimates battery capacity considering power input, draw
SolarPanelModel.h Solar panel model
SolarPanelPowerModel.h Solar panel power model

sensors

Model Name Description
Accelerometer.h Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values
EarthObservationModel.h Simple Earth Observation Model
GPS.h Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values
GroundStationSensor.h Wrapper for ground station model which perturbs range and range rate for navigation purposes
Gyroscope.h Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values
IMU.h Model of IMU on vehicle which accounts for noise, bias, and drift
Magnetometer.h Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values
PressureSensor.h Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values
SimpleCamera.h Simple Camera Model
StarTracker.h Model of spacecraft star tracker
SunSensor.h Sensor output struct for latency model, its members are the same as the model outputs. Its default constructor populates members with defualt output values

states

Model Name Description
AerodynamicsStateModel.h Aerodynamics State Model
FrameStateSensorModel.h Model for sensing the relative state between two frames in ModelSpace
GroundStationModel.h Simple ground station model
LlaDeticStateInit.h Model to produce position/velocity vector from a set of detic latitude, longitude, altitude coordinates
LvcStateSensorModel.h LVC State Sensor Model
OrbitalElementsSensorModel.h Model for sensing the instantaneous orbital elements of a vehicle given its position and velocity
OrbitalElementsStateInit.h Model to produce position/velocity vector from orbital elements
PlanetRelativeStatesModel.h Model for determining the latitude, longitude, altitude state of a vehicle relative to an oblate planet
RangeAzElSensorModel.h Model to calculate range, range rate, azimuth, and elevation given a frame state output

support

Model Name Description
BiasNoiseModel.h Bias and noise model
DirectionalAdaptiveGuidance.h Weighted Directional Adaptive Guidance for Low Thrust Maneuvering
EffectiveSolarAreaModel.h Effective Solar Area model
LvlhFrameManagerModel.h LVLV Frame Manager Model
MarkovUncertaintyModel.h Markov Uncertainty Model
PidTranslationalControl.h Simple PID controller header file
SixDOFDynamicsModel.h Function to recursively loop through frames and set
TabularThrustModel.h Tabular thrust model

Example Scripts

The following examples are provided as base cases which can be adapted for your organization's use. The actual python scripts are linked, and text can be copied and run in your development environment without modification.

Example Name Description
script.py Spacecraft Constellation Tutorial
------------------------------—
This example shows how to create a constellation of spacecraft in ModelSpace and visualize them using the visuals model.

Author: Alex Reynolds
script.py Simple Point Mass Gravity Tutorial
-------------------------------—
This script illustrates a simple example with a spacecraft orbiting under the influence of point mass gravity. The script illustrates how models and frames function together in ModelSpace and are created, connected, and run. It does not make use of any wrapper models (such as the Spacecraft or Planet) to fully illustrate how each component of the simulation works together. It is not the "recommended" way to build simulation scripts because of its complexity, however, it is a very good example case for folks looking to build their own simulation from the ground up. An equivalent example is provided in C++ at: cpp/scripts/examples/earth_orbit_no_spacecraft_model/script.cpp This script can be used effectively as a means of translating between the C++ and Python versions of how to build things.

Author: Alex Reynolds alex..nosp@m.reyn.nosp@m.olds@.nosp@m.attx.nosp@m..tech
script.py Electric Propulsion Transfer GTO-->GEO
-----------------------------------—
This script demonstrates a simple analysis with spacecraft transfer from GTO to GEO.
script.py Electric Propulsion Transfer GTO-->GEO
-----------------------------------—
This script demonstrates a simple analysis with spacecraft transfer from LEO to GEO using the ModelSpace Lambert solver to achieve the transfer.
script.py Monte Carlo Tutorial
-----------------—
This script illustrates a simple example with a single spacecraft orbiting the Earth with dispersed orbit values

Author: Alex Reynolds
script.py Simple LivePlot tutorial
----------------------—
This is an example code that uses the Spacecraft construct and propagates a spacecraft orbit for 100 seconds. It liveplots the spacecraft orbit in 2D.

Author: Alex Reynolds
script.py Advanced Space Trajectory Planning
-------------------------------—
This script serves as a baseline for planning an Earth-Moon Halo orbit for the Advanced Space Capstone mission.

Author: Alex Reynolds
script.py Rendezvous Tutorial
----------------—
This script illustrates a simple example with two spacecraft in a rendezvous scenario.

Author: Alex Reynolds
script.py Simple Comms Study
--------------------—
This script demonstrates how to set up a simple data transfer simulation. It initializes a spacecraft, two ground stations, and simulates data transfer between the spacecraft and the ground stations over a specified time period.

Author: Daniel Krobath
script.py Simple Point Mass Gravity Spacecraft Tutorial
-------------------------------—
This is an example code that uses the Spacecraft construct and propagates a spacecraft orbit for 5400 seconds. It also logs the simulation time, spacecraft position, and spacecraft velocity to a csv file.

Author: Alex Jackson
script.py Simple LivePlot tutorial
----------------------—
This is an example code that uses the Spacecraft construct and propagates a spacecraft orbit for 100 seconds. It liveplots the spacecraft orbit in 2D.

Author: Alex Reynolds
script.py Simple LivePlot tutorial
----------------------—
This is an example code that uses the Spacecraft construct and propagates a spacecraft orbit for 100 seconds. It liveplots the spacecraft orbit in 2D.

Author: Alex Reynolds
script.py Simple Visuals Tutorial
--------------------—
This script demonstrates using the built-in high quality simulation visuals model. It builds a standard simulation with a single spacecraft and ground station, adds them to visuals, and runs the simulation.

Author: Alex Reynolds