Namespace NominalSystems.Classes
Classes
- Antenna
The antenna is able to handle a connection between two objects, which could be a combination of spacecraft and ground station. Antenna use data and can be connected to power sources. They implement telemetry interfaces and can communicate via packets.
- AntennaFrequencyDriftModel
This implements the Frequency Drift error model on an Antenna that will adjust its frequency over time. This frequency is constant and when turned on will continue to drift.
- AttitudeAnomalyDetectorSensor
Defines a detector that detects anomalies within its attitude-determining sensors by comparing the sensors with the gyro sensor other.
- AttitudeReferenceCorrectionSoftware
This module reads in the attitude reference R and applies a fixed rotation to give a corrected reference Rc. This can be used to modify the reference directly, or to allow a general body-fixed frame Bc to align with the reference R.
In the latter case, assume a body frame B, and a corrected body frame Bc which we want to align with frame R. To do this, frame B is aligned with a corrected reference frame Rc. This module produces the corrected reference frame Rc such that when B aligns with Rc, Bc aligns with R.
- AttitudeTrackingErrorSoftware
This module is intended to be the last module in the guidance module chain. It’s input is the reference orientation message generated by a prior module, and the body orientation. It’s output is a guidance attitude to align the body frame with the reference. This module allows for a corrected reference frame, or a equivalent corrected reference frame to account for a corrected body frame. In the output AttGuidMessage, the B frame is the (uncorrected) body frame, the R frame is the corrected reference frame (if applicable). See AttitudeReferenceCorrectionSoftware for details.
- BoreSightInterface
Defines a support class that can be added to a sensor to perform a range of boresight calculations.
- CSSConstellation
Defines a constellation of Coarse Sun Sensors
- CSSEstimationUKFSoftware
This module provides a state estimation routine for a coarse sun sensor constellation using an Unscented Kalman Filter. Algorithm from http://hanspeterschaub.info/Papers/grads/SteveOKeefe.pdf
- Camera
Payload model for the camera that can interface with Unreal and produce images.
- CoarseSunSensor
Defines a sensor that is able to detect the orientation of the Sun in reference to the body that implements such a sensor.
- Computer
The default computer class is able to connect up software automatically and create functionality for the spacecraft.
- DataConstants
Stores a list of constants useful for the data subsystem
- DataStorageManager
The Data Storage Manager can be connected to a partitioned data storage unit and is able to configure the writing and reading of messages within the system. The manager handles the process of updating messages, connecting to the storage sources and ensurig that messages can be exported as a CSV.
- DataSubsystem
The data subsystem handles the interactions between transmitters and receivers by creating the link blocks between each of the antenna nodes. This ensures that the appropriate links are created and altered if the bandwidths or frequency ranges change.
- DipoleMappingSoftware
Defines the dipole mapping software. This module takes a desired torque to control the spacecraft, and maps it to a magnetic torque bar.
- DragEffector
A drag effector is a component that adds a force to the spacecraft due to atmospheric drag.
- EarthHorizonSensor
[Nominal Systems] Calculates "roll" and "pitch" error to earth horizon from it's field of view
- ElectromagneticSensor
[Nominal Systems] Detects any electromagnetic signatures in the simulation
- EphemerisNavigationConverterSoftware
This software simply converts a planet state message into an Ephemeris message that can be used for navigation systems.
- ExternalForceTorque
Allows the user to apply an external torque and/or force to a body
- ExternalPowerSource
The external power source provides a constant power without changing at a particular wattage.
- FuelSource
[Nominal] Base class for 'FuelSource' types. This component is a container for fuel and applies energy momentum contributions to the spacecraft. It also calculates the mass flow between components.
- GPSConstants
A class that stores all of the GPS constants that may be required for the GPS system.
- GPSConstellation
This class creates a wrapper for initialising, storing and linking with a GPS constellation.
- GPSSensor
Simulates the GPS Sensor onboard a satelite
- GPSTransmitter
[NominalSystems] The GPS transmitter
- GeodeticEphemerisConverterSoftware
This software converts a latitude, longitude, altitude value (geodetic) coordinate about a planet to an acceptable ephemeris message.
- Gimbal
The Gimbal class provides a single 1-axial gimbal that allows for a component attached to be rotated about a fixed axis. The gimbal will rotate about its local Up-vector, which is a yaw rotation. The gimbal does not move horizontally and does not perform any physical calculations. This means that it will not contribute to the changes in the mass properties of the spacecraft or any torques applied to the spacecraft’s overall orientation. Objects attached to the gimbal will be rotated at the pivot point (the local origin) and gimbals can be stacked for multi-dimensional rotations. Physics-based estimates, such as forces and moment of inertia calculations are not calculated. As such, the gimbal should be used as a proof of concept design before moving to a more advanced and accurate system, such as the Hinged Rigid Body (HRB) component.
- GravityGradientEffector
This module implements a first order gravity gradient torque acting on a spacecraft. It is written in a general manner such that one or more gravitational objects are considered. This allows a continued simulation to apply gravity gradients torque near the Earth, the moon and onwards to Mars.
- GroundLocationPointingSoftware
This module is used to generate the attitude reference message in order to have a spacecraft point at a location on the ground
- GroundStationAccessSoftware
A class that is used for calculating ground station access to a body.
- GroundStationEphemerisConverterSoftware
This software converts a Ground Station's ground state message to an ephemeris message.
- GuidanceComputer
The guidance computer is a specific computer class that is able to contain a series of attitude guidance chains, each which can provide different pointing modes. Depending on the required mode, the guidance computer will set up the software and connect the messages automatically. This only works for the spacecraft.
- HingedRigidBody
This components models hinged rigid body that is a physical component attached to a spacecraft body. Other physical components maybe added to this component to inherit its state properties. It may be contributed by a motor object..
- HingedRigidBodyMotorSoftware
Calculates a motor torque to drive a hinged panel to a reference angle state. A sensed and reference hinged rigid body angle drives a simple PD control law.
- IMUSensor
Class for the inertial measurement unit sensor that is able to detect the orientation of the spacecraft.
- InertialHoldSoftware
This attitude guidance module computes an inertially fixed reference frame with an optional fixed attitude rotation.
- Instrument
An instrument is a source of data and can output data from a particular sensor or some form of output. The data can be read from but cannot store data. As such, only the most recent data is visible from the system.
- InstrumentManager
This module evaluates whether a pointing task has been achieved within a specified tolerance and enables a connected device if true.
- LVLHPointingSoftware
This attitude guidance module computes the orbital Hill reference frame states. The orbit can be any type of Keplerian motion, including circular, elliptical or hyperbolic. This is also known as Hill Pointing software. The LVLH coordiante system is defined by the unit vectors {i_r, i_theta, i_h}, with radial vector i_r, angular momentum vector i_h = r^ x v^, and azimuthal vector i_theta to complete the triad.
- MRPFeedbackSoftware
This module provides a general MRP feedback control law. This 3-axis control can asymptotically track a general reference attitude trajectory. The module is setup to work with or without N reaction wheels with general orientation. If the reaction wheel states are fed into this module, then the resulting RW gyroscopic terms are compensated for. If the wheel information is not present, then these terms are ignored.
- MTBFeedforwardSoftware
This module calculates the torque produced by an array of magnetic torque bars and applies it to the current body torque command as a feedforward term.
- MagneticTorqueBar
[Nominal] This component models a singular magnetic torque bar. These magnetic torque bars can be added as children of Magnetic Torque Bar arrays.
- MagneticTorqueBarArray
Holds the functionality for a Magnetic Torque Rod that can interact with the magnetic field.
- MagneticTorqueBarHysteresisModel
The hysteresis error model creates a timed history error on the magnetic torque bar.
- Magnetometer
Class for the Three Axis Magnetometer (TAM) sensor that is able to detect the magnetic field of the craft
- MomentumManagementBasicSoftware
This module calculates a body frame torque required to dump momentum stored in a reaction wheel array. Recommend future implimentations use this approach https://arc.aiaa.org/doi/10.2514/1.G000812
- MotorPowerModel
[Nominal] This model creates a map between motor voltage commands and the resulting load on the parent's electrical sub-system. It is a component model that can attach to a reaction wheel to provide the power draw from a system.
- MotorVoltageDeviceInterface
This module translates incoming voltage commands into torques commands.
- OperationComputer
The operation computer is a high level computer that can communicate with all of the systems onboard a spacecraft. It is able to interface with the EPS, TT&C and Attitude systems and produce commands that the Guidance Computer can used.
- PartitionedDataStorage
This class can store multiple data storage nodes and is able to store larger clusters of data that can be read from and written to. This provides a virtual storage system.
- PartitionedDataStorageBitFlippingModel
The 'BitFlipping' model for the 'PartitionedDataStorage' component
- PartitionedDataStorageDataLossModel
The 'DataLoss' model for the 'PartitionedDataStorage' component
- PartitionedDataStorageLockupModel
The 'Lockup' model for the 'PartitionedDataStorage' component
- PowerBus
The Power Bus is a component that can be attached to a object that controls the power system on-board the entity. It allows for power to flow from a power storage unit, such as a battery, into a series of nodes. All components that are power related must attach to this component.
- PowerComponent
A component that can be attached to the power system and is able to have a created power model.
- PowerCurrentLimiter
A power fuse is able to flick a switch, disabling a circuit when a current exceeds a threshold.
- PowerFuse
A power fuse is able to flick a switch, disabling a circuit when a current exceeds a threshold.
- PowerManager
The power manager is able to manipulate a connected EPS bus based on some inputs from a message. This can be connected to a software or user interface to adjust manual properties of the circuit.
- PowerMonitor
A power monitor is able to produce metrics from the power system and allow for enabling and disabling of particular component powers.
- PowerSource
A power source is a component that can be added to the power bus system and is able to provide power that can charge up a storage unit, such as a battery.
- PowerSourceUnsteadyModel
The 'Unsteady' model for the 'PowerSource' component that will flicker the model to be valid and invalid.
- PowerStorage
A power storage unit can be attached to a power circuit on an entity and is able to store power that can be both charged and discharged out of the system.
- PowerStorageLeakageModel
[NominalSystems] A implementable 'Component' model
- PowerSwitch
A power switch is able to control the circuit it is connected to based on user input.
- ReactionWheel
[Nominal] This component models a singular reaction wheel. These reaction wheels can be added as children of Reaction Wheel Arrays.
- ReactionWheelArray
[Nominal] This components models a reaction wheel array connected to a rigid body. Reaction wheel arrays may be constructed from three different model: balanced wheels, simple jitter, and fully-coupled imbalanced wheels.
- ReactionWheelEncoder
This module encodes RW telementry into TM packets.
- ReactionWheelMotorTorqueSoftware
Defines the software for the reaction wheel motor torque. This module maps a desired torque to control the spacecraft, and maps it to the available wheels using a minimum norm inverse fit.
- ReactionWheelMotorVoltageSoftware
This module assumes a set of voltages are sent to the RW motors to control their speed. It includes a simple voltage deadband.
- ReactionWheelNullSpaceSoftware
TODO: Chris - Add in a description for the class here
- Receiver
This class handles the receiving of data from a LinkBlock and can read the data and submit it to some kind of data storage. The receiver can decode messages stored and return them as values ready for use.
- ReceiverInterferenceModel
This implements an interference model that adjusts the number of packets that are corrupted due to interference.
- ReceiverStorageModel
This implements a model on the receiver that can be connected to a partitioned storage system and pulls data from the buffer and attempts to receive the messages.
- RelativePointingSoftware
This method takes the vector that points from the spacecraft to target object and calculates the orientation, angular velocity and angular acceleration of this vector with respect to the inertial reference frame in inertial reference frame components and passes them to the attitude tracking error module, where that attitude error can be calculated.
- Sensor
A base class for creating sensors on the spacecraft
- SimpleNavigator
Simple navigation model used to provide error-ed truth (or truth). This class is used to perturb the truth state away using a gauss-markov error model. It is designed to look like a random walk process put on top of the nominal position, velocity, attitude, and attitude rate. This is meant to be used in place of the nominal navigation system output.
- Software
A base class for creating software for the spacecraft
- SolarPanel
[Nominal] A solar panel is able to produce power from receiving sunlight from the sun and other sources (such as Albedo).
- SolarPanelDegradationModel
The 'Degradation' model for the 'SolarPanel' component that adjusts the efficiency over time.
- SolarRadiationPressure
Solar radiation pressure model
- SpacecraftEphemerisConverterSoftware
This software converts a Spacecraft's body state message to an ephemeris message.
- StarTracker
A star tracker sensor
- SunSafePointingSoftware
This module provides the attitude guidance output for a sun pointing mode. This could be used for safe mode, or a power generation mode. The input is the sun direction vector which does not have to be normalized, as well as the body rate information. The output is the standard attitude reference state message. The sun direction measurement is cross with the desired body axis that is to point at the sun to create a principle rotation vector. The dot product between these two vectors is used to extract the principal rotation angle. With these a tracking error MRP state is computer. The body rate tracking errors relative to the reference frame are set equal to the measured body rates to bring the vehicle to rest when pointing at the sun. Thus, the reference angular rate and acceleration vectors relative to the inertial frame are nominally set to zero. If the sun vector is not available, then the reference rate is set to a body-fixed value while the attitude tracking error is set to zero.
- SunlineEKFSoftware
This module provides a state estimation routine for a coarse sun sensor constellation using an Extended Kalman Filter.
- SunlineUKFSoftware
This module provides a state estimation routine for a coarse sun sensor constellation using an Unscented Kalman Filter.
- TAMEncoderSoftware
Defines the software that maps between torque commands to dipoles.
- Thruster
[Nominal] A thruster implementation
- ThrusterArrayInterface
Defines the thruster mapping software. This module takes a desired torque to control the spacecraft, and maps it to an array of thrusters.
- ThrusterFiringRemainderCommandSoftware
Defines the thruster mapping software. This module takes a desired torque to control the spacecraft, and maps it to an array of thrusters.
- ThrusterFiringSchmittCommandSoftware
Defines the thruster mapping software. This module takes a desired torque to control the spacecraft, and maps it to an array of thrusters.
- ThrusterMappingSoftware
Defines the thruster mapping software. This module takes a desired torque to control the spacecraft, and maps it to an array of thrusters.
- ThrusterRamp
[Nominal] Evaluate thrust's ON/OFF curves
- TorqueToDipoleSoftware
Defines the software that maps between torque commands to dipoles.
- Transmitter
This class handles the transmitting of data from some data source and can send out the data to a LinkedBlock that can communicate it over the ether. This requires a connection to some form of receiver.
- TransmitterPacketCorruptionModel
This implements a data loss model which adjusts the fraction that the transmitter looses data. This will corrupt data produced by the transmitter.
- TransmitterPowerModel
[Nominal] This model creates a mapping between the transmitter producing some transmission with a decibel level and the power system. This enables the drawing of power.
- TransmitterStorageModel
This implements a model on the transmitter that can be connected to a partitioned storage system and pulls data from the buffer and attempts to transmit the messages whenever in access.
- VSCMG
This components models a variable speed control moment gyroscope (VSCMG) connected to a rigid body. VSCMG may be constructed from three different model: balanced wheels, simple jitter, and fully-coupled imbalanced wheel.
- VelocityAccumulationSoftware
This software simply converts a planet state message into an Ephemeris message that can be used for navigation systems.
- VelocityPointingSoftware
This attitude guidance module computes the velocity pointing reference frame state. The orbit can be any type of Keplerian motion, including circular, elliptical or hyperbolic. The velocity coordiante system is defined by the unit vectors {i_n, i_v, i_h}, with velocity vector i_v, angular momentum vector i_h = r^ x v^, and normal vector i_n to complete the triad.
Structs
- DataPointer
This structure defines a simulated pointer for a partition of data. This includes the partition the data is located in, the pointer to within that data and also the number of bytes this data includes.
Interfaces
- IPowerAttachment
Any class that inherits from this interface is able to attach to a power bus and be used for various power utilities. Without this attachment, the power cannot be used.
Enums
- CSSFaultState
Enumeration used to define the output definition for component availability
- FuelSourceModelType
Enum for Fuel Source Models