Description

The purpose of this module is to act as an interface for an array of MagneticTorqueBar components. It provides a number of support functions and utilities to reduce repeat calculations across each attached MTB. These include:

  • It provides functions and methods to manage the creation of MagneticTorqueBar components from configuration messages, or input parameters.
  • It acts as the interface for ADCS software chains, where it may receive an array of dipole commands and map these to MagneticTorqueBar components assuming the index of each MTB command corresponds to the index of the MTB in the array.
  • It connects to the MagneticFieldModel simulation system to compute the local “true” magnetic field based on the spacecraft’s inertial position and transform the provided magnetic field from the inertial frame to body frame.

During the OnUpdate step, this module is responsible for triggering child components to compute their contributions to the net external torque applied to the spacecraft based on the input dipole commands.

It also implements an interface for error models, and adjusts net torques as required. Available models include:

  • Magnetic Hysteresis

Example Use Cases

  • Add MTB to ADCS: This module is the primary interface required to add an array of MTBs to a ADCS.
  • Add error models to MTB actuators: As the common interface between MTBs and ADCS, this module can be used to implement error models that perturb input commands and output torques. The magnetic hysteresis model is an example of this.

Module Implementation

Error Model - Magnetic Hysteresis

When enabled, this module implements a time windowed history error model where the applied torque is adjusted based on the weighted average of record of past torque commands i.e.

Where and are weighting factors.


Assumptions/Limitations