RCS Control Allocation
1. Model Overview
The Reaction Control System (RCS) control allocator converts a requested spacecraft control command into firing commands for the individual RCS thrusters configured on the spacecraft.
The allocation problem is distinct from the individual RCS actuator model. The actuator model describes how a selected thruster responds dynamically once commanded, while the control allocator determines which thrusters are compatible with the requested translational or rotational motion.
SDF currently distinguishes between two allocation paths:
- Translational allocation based on the configured thrust-force direction of each thruster.
- Rotational allocation based on the torque direction generated by the thruster geometry relative to the current spacecraft center of mass.
The rotational allocation is intentionally geometry-based. No fixed association such as “engine 7 produces positive roll” is required. Instead, the allocator evaluates the moment that each configured thruster can generate from its mounting position and thrust direction.
2. Physical / Mathematical Foundation
Translational control is governed by the direction of the force generated by an RCS thruster. A thruster with normalized thrust direction produces a force vector
Rotational control additionally depends on the point at which the force acts. A force whose line of action does not pass through the spacecraft center of mass generates a torque according to the moment equation
where the lever-arm vector is defined from the current center of mass to the thruster mounting position:
This relation forms the physical basis for the rotational RCS allocation implemented in SDF.
3. Derivation
Translational Allocation
The translational command is represented by a body-frame command vector
where the sign of each component defines the requested force direction along the spacecraft body-fixed axes. For a binary RCS actuator, thruster is selected when at least one non-zero command component has the same sign as the corresponding component of the thruster direction vector.
Conceptually, the allocation therefore follows
Rotational Allocation
The rotational command is represented by
In the spacecraft body-fixed frame, roll, pitch, and yaw correspond to the x-, y-, and z-components of the requested torque direction.
Because only the direction of the generated torque is required for the current binary allocator, the thrust magnitude can be omitted from the directional test. Using the normalized thrust direction, the generated torque direction is therefore proportional to
Thruster is selected when the sign of an available torque component matches the sign of the requested rotational command component. The allocator therefore evaluates the actual spacecraft geometry rather than relying on engine names or hard-coded roll, pitch, and yaw assignments.
The conceptual chain is
4. Model Variables and Parameters
| Symbol | Description | Unit | Frame |
|---|---|---|---|
| Requested translational RCS command | – | SBF | |
| Requested rotational RCS command | – | SBF | |
| Normalized thrust direction of thruster i | – | SBF | |
| Thruster mounting position relative to the SBF origin | m | SBF | |
| Current spacecraft center-of-mass position | m | SBF | |
| Lever arm from center of mass to thruster i | m | SBF | |
| Thrust force generated by thruster i | N | SBF | |
| Torque generated by thruster i | N·m | SBF | |
| Binary allocation command for thruster i | – | – |
5. Governing Equations
Translational Thruster Compatibility
For the current binary allocator, a translational thruster is enabled when a commanded axis and the corresponding component of its thrust direction have matching signs:
Rotational Thruster Compatibility
Otherwise, and the thruster is not commanded by the allocator.
6. Coordinate Frames and Conventions
All vectors used for the current RCS allocation are expressed in the spacecraft body-fixed frame (SBF). Thruster mounting positions and the spacecraft center of mass therefore share the same reference frame and origin definition before the lever arm is formed.
The current SDF body-axis convention is interpreted consistently by the control input, engine configuration, torque generation, and rigid- body rotational dynamics. Positive rotational commands correspond to positive torque components about the corresponding SBF axes according to the right-hand rule.
Thruster direction describes the direction of the force acting on the spacecraft. It must not be interpreted as the rotational axis of an attitude-control thruster. The rotational effect follows only after evaluating the moment arm cross product.
7. Numerical Solution / Computational Formulation
The current allocator is evaluated algebraically once per control update and does not introduce an additional dynamic state. Each candidate thruster is evaluated independently.
For translational RCS engines, SDF compares the requested command vector with the normalized thrust direction stored in the engine configuration.
For rotational RCS engines, SDF first computes the current lever arm from the configured engine position and current center of mass, then evaluates the corresponding torque direction through the cross product. The result is reduced to a binary firing command.
Once allocated, the command is passed to the individual RCS actuator model, which applies command delay, rise and decay dynamics, thrust generation, and propellant consumption.
8. Assumptions and Simplifications
- RCS allocation is currently binary; no continuous thrust weighting is applied.
- Each thruster is evaluated independently against the requested command.
- The configured engine position and thrust direction are assumed to be valid SBF quantities.
- The current center of mass is available in the same body-fixed coordinate system.
- Thruster availability constraints beyond engine activation are not yet optimized globally.
- No plume-interaction or thermal firing constraints are considered by the allocator.
- No minimum-control-effort or propellant-optimal selection criterion is currently applied.
9. Validity and Limitations
The current formulation provides a geometry-aware and spacecraft- independent way to identify thrusters capable of producing a desired translational force direction or rotational moment direction. It is well suited to the current low-order RCS model and binary control architecture.
It is not yet a complete six-degree-of-freedom wrench allocator. In particular, a translational command is currently allocated from force- direction compatibility alone. The allocator does not simultaneously require the net torque of all selected translation thrusters to vanish. Depending on spacecraft geometry, a nominally translational firing may therefore introduce an additional rotational moment.
Likewise, the current rotational selection criterion identifies thrusters with torque components in the requested direction but does not solve a constrained optimization problem for an exact requested torque vector, minimum propellant usage, actuator redundancy, or simultaneous force cancellation.
A future generalized allocator may formulate the complete actuator problem in terms of the requested six-dimensional spacecraft wrench
and determine a suitable combination of actuator commands subject to physical and operational constraints.
10. Implementation in SDF
The current allocation chain is implemented through:
- RCSControlAllocator – evaluates translational and rotational command compatibility.
- Thrust – orchestrates propulsion models and applies allocated target commands to the selected engine type.
- IThrustModel implementations – provide engine identity, type, mounting position, and SBF thrust direction.
- Basic RCS model – executes the resulting binary actuator command and computes physical thrust and torque.
The rotational allocator uses engine geometry instead of engine-name conventions or explicit roll/pitch/yaw assignment metadata. This keeps control allocation independent of a specific spacecraft layout.
11. Verification
Formal verification cases for the RCS control allocator are not yet published. Planned verification should isolate both allocation paths and compare the selected thrusters, resulting net force, and resulting net torque against analytically derived reference cases.
Representative planned cases include:
- VER-RCS-ALLOC-001 — Positive and negative translational-axis allocation.
- VER-RCS-ALLOC-002 — Positive and negative roll allocation from configured thruster geometry.
- VER-RCS-ALLOC-003 — Positive and negative pitch allocation from configured thruster geometry.
- VER-RCS-ALLOC-004 — Positive and negative yaw allocation from configured thruster geometry.
- VER-RCS-ALLOC-005 — Center-of-mass offset sensitivity.
- VER-RCS-ALLOC-006 — Detection of unintended torque during nominal translation.
12. References
- Wertz, J. R. (Ed.), Spacecraft Attitude Determination and Control, D. Reidel Publishing Company, 1978.
- Wie, B., Space Vehicle Dynamics and Control, 2nd ed., AIAA Education Series, 2008.
- Schaub, H. and Junkins, J. L., Analytical Mechanics of Space Systems, AIAA Education Series.