Description

The Thruster Array is a Physical Object that manages a collection of Thruster components. It provides a single interface for commanding multiple thrusters simultaneously and aggregates their configuration data for use by guidance and control software. When connected to control software, the array distributes on-time commands to individual thrusters while respecting minimum fire durations and preventing command conflicts.


Example Use Cases

  • Closed-Loop Attitude Control: Connect the array to an attitude control software chain that outputs thruster firing commands for reaction control.
  • Simplified Configuration: Use a single configuration message containing all thruster positions and thrust directions for control allocation algorithms.

Module Implementation

Configuration Aggregation

When the simulation begins, the thruster array collects configuration data from all child thrusters and stores it in a single output message. For each thruster in the array, the following properties are recorded:

PropertyDescription
Positions[i]Thruster location in the body frame
ThrustDirections[i]Thrust vector direction in the body frame
MaxThrusts[i]Maximum thrust magnitude

This configuration data enables control allocation algorithms to compute the required on-times for achieving a desired force and torque.

Command Distribution

The array accepts a ThrusterArrayOnTimeMessage containing an array of on-time requests. Each element specifies the firing duration for the corresponding thruster. During each update, the array evaluates whether to accept each command based on the following logic:

  1. Active Fire Request: If a thruster has an active fire request from an operator or scenario event, the array does not overwrite it.
  2. Currently Firing: If a thruster is already executing a firing pulse, new commands are ignored until the current pulse completes.
  3. Minimum Duration: Commands with on-time less than the thruster’s MinFireDuration are rejected to prevent valve wear from excessively short pulses.

When a command is accepted, the array sets the thruster’s on-time and increments its fire counter.

Dynamic Registration

Thrusters can be added to or removed from the array during simulation. When a thruster is attached as a child object, the array automatically expands its configuration arrays and registers the thruster. When a thruster is detached, its entry is removed from the configuration.


Assumptions/Limitations

  • Thrusters must be added as children of the thruster array to be managed by it.
  • A thruster already executing a firing pulse will not accept new commands until the pulse completes.
  • Commands below the thruster’s minimum fire duration are rejected.
  • Direct connections to individual thruster fire request messages bypass the array’s command logic.