Thrust Allocation

Dynamic positioning solver

My own Sequential Quadratic Programming solver for the thrust allocation problem: given the wind, waves and current pushing a vessel around, work out what every propulsion unit should do to hold station. It handles any mix of tunnel thrusters, azimuth thrusters and thrusters with rudders.

Thrust Allocation

Highlights

offline built for digital-twin analysis, where accuracy beats the millisecond deadlines a live DP system works to
nonlinear solves the power-to-thrust nonlinearity as a series of quadratic problems rather than inverting the control math and hoping
zones respects forbidden sectors, the angles an azimuth thruster may not traverse for safety
pruning skips the feasible-region combinations that point into the external forces, cutting computation time by over 95%

The problem splits once per forbidden zone, so a drill ship with six azimuth thrusters and three regions each means 36=7293^{6}=729 separate optimisations. That combinatorial blow-up is what the pruning step exists to kill.

Built with

Python for the solver and backend, Vue for the frontend, Firebase Hosting.