![]()  | 
  
    ModelSpace
    
   Documentation for ModelSpace models and classes. 
   | 
 
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:
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.
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
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@attx.tech and we'll add them to the curriculum! Most GUI tutorials are found here.
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.
The ATTX Stack Overflow is shared among ATTX partners. 
 Do not post proprietary data or information — remove it before posting.
ATTX provides a direct help email: help@attxengineering.com You can reach out at any time, and the ATTX team will assist in any way we can. 
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.
| 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 | 
| 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 | 
| 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 | 
| Model Name | Description | 
|---|---|
| CommunicationsDataModel.h | Simulated model of spacecraft communications including losses and gains with comm links | 
| 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 | 
| Model Name | Description | 
|---|---|
| LogEvent.h | Class to execute logging | 
| SimTerminationEvent.h | Class to trigger termination in scheduler | 
| Model Name | Description | 
|---|---|
| ProximityMonitor.h | |
| RateMonitor.h | Monitor to trigger at a particular rate | 
| TimeTriggerMonitor.h | Monitor to trigger at a particular rate | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
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.reynolds@attx.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  |