Abstract-The literature on thrust allocation algorithms that is currently available usually focuses on solving only a few of the many facets of the thrust allocation problem at a time. This paper presents a unified thrust allocation algorithm that solves most of the challenges that are faced by the practitioners in one algorithm. This includes controlling thrusters that can change the direction of the generated thrust slowly and/or reverse the direction of the generated thrust, minimizing the power consumption and wear-and-tear in the thrusters, and handling thruster saturations. When rotable thrusters are present, a functionality to avoid driving the thruster system into singular configurations should normally be included. This functionality requires significant numerical calculations for each iteration of the thrust allocation algorithm. In the presented work those calculations were written in explicit form using a symbolic processor, translated to ANSI C and compiled. This technique was demonstrated to provide acceptable real-time performance. [12]. These developments allow DP operations with better safety, economy, positioning precision and reliability, making it possible for the DP-equipped vessels to perform more complex tasks in deeper waters [13] and on arctic latitudes [14], [15]. DP algorithms are usually divided into several parts, one of which is the thrust allocation (TA) algorithm. The task of the TA algorithm is to receive a command telling it how much force and moment of force (jointly called "generalized force" in this context) the thruster system should produce, and generate commands down to the individual thrusters to
I. INTRODUCTION