For formation flying, rendezvous and docking, and proximity operations with small bodies of the solar system, spacecraft require simultaneous translational and rotational agility. The necessary agility is generally provided by combinations of multiple small thrusters and torque-only actuators. To use these actuators, an onboard control system first calculates desired forces and torques that cause a spacecraft to follow a desired trajectory. Then the commanded forces and torques are turned into individual commands to specific actuators such that the combined action of all the actuators realizes as closely as possible the commanded forces and torques. This problem is referred to as actuator (or control) allocation.

Actuator allocation is fundamentally a constrained optimization problem: given the actuator configuration, find individual actuator commands that minimize the difference between the desired force and torque, and the total force and torque resulting from the individual actuator commands. Mission constraints and in-flight failures limit the configuration of actuators on a spacecraft, in turn limiting the ability to achieve the commanded forces and torques. Further, off-nominal situations can result in commands that require more agility than the actuators can provide. When a desired maneuver exceeds the capabilities of the actuators, it is often more important to maintain pointing — that is, prioritize torques — so translational engines stay pointed in the correct direction and appendages do not strike other bodies.

Prioritized allocation is achieved by solving three or more successive optimization problems instead of the standard two. This approach extends Bodson’s framework, where the principal novelty is to explicitly prioritize — rather than weight the force and torque components — by introducing additional, successive optimization problems. The new approach consists of solving each level of prioritization with a constraint that ensures the performance of the preceding optimizations is maintained. For example, first match the commanded torque as closely as possible. Then a second optimization problem is solved that minimizes the error between desired and allocated force with an additional constraint that maintains the optimal torque-matching performance from the first optimization problem. In this way, torque is prioritized over force. Finally, the overall actuator command vector is minimized as in the standard approach. In all optimizations, the maximum impulse constraint is also enforced.

The explicit prioritization developed here is different than weighting. Weighting will not give best torque followed by best force, but rather, 99% best torque and conceivably very poor force matching since it is de-weighted. Further, the approach is generalizable to any prioritization of the six degrees of freedom; for example, when near the surface of a small body matching tip/tilt torque, then axial force, then twist torque, and finally lateral forces.

The main application is attitude and position control of spacecraft. A prioritized thrust allocator is directly applicable and could improve the safety and autonomy of the proposed Asteroid Redirect and Return Mission (ARRM), asteroid/comet sample return missions, autonomous and piloted rendezvous and docking, and precision formation flying missions concepts such as Exo-S, where it is critical to match torque first to minimize disturbances to spacecraft pointing.

This work was done by Daniel P. Scharf, Milan Mandic, and Jordi Casoliva of Caltech for NASA’s Jet Propulsion Laboratory. This software is available for license through the Jet Propulsion Laboratory, and you may request a license at: https://download.jpl.nasa.gov/ops/request/request_introduction.cfm . NPO-49675