Fuel-Optimal Thrust-Allocation Algorithm Using Penalty Optimization Programing for Dynamic-Positioning-Controlled Offshore Platforms

This research, a new thrust-allocation algorithm based on penalty programming is developed to minimize the fuel consumption of offshore vessels/platforms with dynamic positioning system. The role of thrust allocation is to produce thruster commands satisfying required forces and moments for position-keeping, while fulfilling mechanical constraints of the control system. The developed thrust-allocation algorithm is mathematically formulated as an optimization problem for the given objects and constraints of a dynamic positioning system. Penalty programming can solve the optimization problems that have nonlinear object functions and constraints. The developed penalty-programming thrust-allocation method is implemented in the fully-coupled vessel–riser–mooring time-domain simulation code with dynamic positioning control. Its position-keeping and fuel-saving performance is evaluated by comparing with other conventional methods, such as pseudo-inverse, quadratic-programming, and genetic-algorithm methods. In this regard, the fully-coupled time-domain simulation method is applied to a turret-moored dynamic positioning assisted FPSO (floating production storage offloading). The optimal performance of the penalty programming in minimizing fuel consumption in both 100-year and 1-year storm conditions is demonstrated compared to pseudo-inverse and quadratic-programming methods.


Introduction
The dynamic positioning system (DPS) is the unit that automatically keeps the position of offshore platforms by controlling actuators to encounter environmental forces.Currently, dynamic positioning systems are installed on many vessels that are used in offshore operations, such as drilling, production, and exploration.They directly manage operational safety by keeping positions and preventing unexpected drift.Dynamic positioning systems involve safety related units, such as sensors, power management system, generator, and control actuators.DP units are usually the heaviest fuel consumer and second most expensive unit in the offshore-platform CAPEX (capital expenditure) [1].According to the offshore-industry statistics, the fuel consumption occupies 62% of the total expenditure and dynamic positioning system consumes the largest amount of fuel, which results in the largest gas pollution, equal to 48%, among various offshore operations [2].Thus, for the reduction of offshore platform's fuel consumption and gas emission, the development of an efficient DP system and control is crucial.Even 5% fuel consumption improvement in a dynamic positioning system can save about 9 million dollars in 20 years, including carbon dioxide handling cost.This economic merit can be Generally, the Kalman filter (or the extended Kalman filter (EKF)) is applied to the estimation module that estimates states from weighted mathematical estimations and sensor measurements.The estimation module produces state estimations that are generally the position, velocity, and acceleration of offshore platform.Also, the estimation module filters out high-frequency motions because they are hard to control and cause the wear-and-tear problems of actuators.The control module of dynamic positioning controller calculates required forces and moments to keep a position counteracting the environmental forces.Conventional DPS adopts the Proportional-Integral-Derivative (PID) controllers that set the relationship between control forces and state errors by applying appropriate gain control to state error.By design, the PID controller sets the gain matrix K as in Equation (1): where error matrix , u is thruster-command matrix, x is a state estimation matrix, and x is a target state matrix.
The role of thrust allocation is to distribute required forces and moments to control actuators, such as tunnel thrusters, azimuth thrusters, propellers, and rudders.Basically, the control actuator system is an over-actuated system, for which the number of control actuators is larger than the number of degrees of freedom for control.Therefore, the thruster-allocation problem can be modeled as an optimization problem.The thruster-allocation problem can be expressed by Equation (2).
where B is the thruster configuration matrix, τ is the 3 degrees of freedom control force in horizontal plane, and u is the input control matrix of the actuator.
Typically, the pseudo-inverse method finds a local optimum for minimizing the total thrust input square based on the Lagrange multiplier optimization theory as explained in Johansen [3].The pseudo-inverse matrix is calculated by the pseudo-inversed thruster configuration matrix, as in Equation (3): 1 ( ) Generally, the Kalman filter (or the extended Kalman filter (EKF)) is applied to the estimation module that estimates states from weighted mathematical estimations and sensor measurements.The estimation module produces state estimations that are generally the position, velocity, and acceleration of offshore platform.Also, the estimation module filters out high-frequency motions because they are hard to control and cause the wear-and-tear problems of actuators.The control module of dynamic positioning controller calculates required forces and moments to keep a position counteracting the environmental forces.Conventional DPS adopts the Proportional-Integral-Derivative (PID) controllers that set the relationship between control forces and state errors by applying appropriate gain control to state error.By design, the PID controller sets the gain matrix K as in Equation ( 1): where error matrix e = x − x target , u is thruster-command matrix, x is a state estimation matrix, and x target is a target state matrix.The role of thrust allocation is to distribute required forces and moments to control actuators, such as tunnel thrusters, azimuth thrusters, propellers, and rudders.Basically, the control actuator system is an over-actuated system, for which the number of control actuators is larger than the number of degrees of freedom for control.Therefore, the thruster-allocation problem can be modeled as an optimization problem.The thruster-allocation problem can be expressed by Equation (2).
where B is the thruster configuration matrix, τ is the 3 degrees of freedom control force in horizontal plane, and u is the input control matrix of the actuator.Typically, the pseudo-inverse method finds a local optimum for minimizing the total thrust input square based on the Lagrange multiplier optimization theory as explained in Johansen [3].
The pseudo-inverse matrix is calculated by the pseudo-inversed thruster configuration matrix, as in Equation ( 3): where B is the thruster-configuration matrix and C is the pseudo-inverse matrix of the configuration matrix.Then, the thrust matrix u can be solved as in Equation (4).
The pseudo-inverse matrix method has the advantages of simplicity and practicality.If the thruster configuration matrix does not have any singularity, then it can be calculated by the direct simple matrix calculation.Thus, the computational burden of the pseudo-inverse method is light.This is the reason why the pseudo-inverse method has been used widely in industrial DP controllers with real-time control.However, the pseudo-inverse method has two serious disadvantages.The first one is that it cannot produce an elaborate solution when environmental forces are higher than thruster capacity.The second problem is that it cannot consider the constraints of the thruster, so its performance is degraded [3].The pseudo-inverse method is employed here as a representative conventional DP thrust-allocation method for comparison with the newly-developed thrust-allocation algorithm called penalty method.For compensating the pseudo-inverse method's disadvantage, the quadratic programming was proposed as an alternative thruster-allocation optimization method by Wit [6] and Rindaroy [7].Quadratic programming is appropriate when solving the quadratic-form objective and linear-constrained optimization.

Optimization Formulation for Thruster Allocation Based on Penalty Programming
The thrust allocation of a dynamic positioning system is the optimization problem which has nonlinear object function and constraints.Rindaroy [7] linearized the constraints of the thrust allocation and applied quadratic programming, which is an adequate optimization method for nonlinear object function and linear constraint.In this study, penalty programming, which is the suitable method for both linear and nonlinear object functions and constraints, is applied to directly solve the optimal thrust allocation.The representative optimization methods were categorized depending on the forms of object functions and constraints [13], as in Table 1.The procedure of optimization consists of three stages: optimization variable design (object functions and constraints modeling), optimization problem formulation, and numerical approach.It is necessary to design optimization variables so that those variables reflect real-world problems well, which makes the optimization more credible.The optimization formulation is the stage that defines object functions and constraints according to the optimization strategy.The numerical approach is the step that implements the mathematical form into computer program.The following section states which parameters are important in the thruster allocation, and how those can be derived in mathematical forms.

Object-Function Modeling: Fuel Consumption
This research focuses on the design of thrust-allocation optimization that can achieve the minimal fuel consumption.Therefore, the fuel consumption is to be the most important parameter here.It is then essential to model a relationship between the thrust and fuel consumption because the object function should be parameterized by the design variables.The fuel consumption of the marine diesel engine can be expressed by the power series of thrust.According to Rindaroy [7], the power consumption and thrust have the following relationship: where: F : f uel consumption, T : thrust, P : Power, T 0 : maximum thrust, P 0 : maximum power a 0 , a 1 , a 2 : constants f or f uel consumption r : revolution per minute .
The fuel consumption and power relation are based on the marine diesel engine.The fuel consumption could be modeled as Equation ( 6) as a quadratic form.The total thrust of previous time step was used for the modeling of current time step.
where u = (T 1 cos α 1 , T 1 sin α 1 , ..., T n cos α n , T n sin α n ) T and where K is an n by n coefficient matrix which presents the fuel consumption in quadratic form, u is thrust input, n is the number of thrusters, and α is the angle of thruster.

Thruster Mehcanical Constraints
Two physical-constraint groups of thrusters are considered for the fuel-optimal thrust-allocation problem.The first constraint group is the thrust and thruster-angle constraints, as in Equation (7).
where T i is the thrust of i-th thruster (i = 0, . . ., n), α i is the azimuth angle of i-th thruster, T i,max is the maximum thruster capacity of i-th thruster.

of 24
Another constraint group is the thrust-variation rate that can be considered as the movable range of thrust per unit time, as in Equation (8).
where T i is the current time-step thrust of i-th thruster (i = 0, . . .,1), α is the current azimuth angle of i-th thruster, T i , previous is the previous time-step's thrust of i-th thruster (i = 0, . . .,1), α i,previous is the azimuth angle of previous time-step of i-th thruster, .
T i,max is the maximum thrust rate per unit time of i-th thruster, and .α i,max is the maximum thrust rate per unit time of i-th thruster.

Required Force and Moment Constraints
The required forces and moments can be defined by the multiplication of PD gain and error matrix.The required forces and moments are the equality constraints, which should be satisfied by the thrust-allocation optimization problem.The key function of PD-controller design is to define the gain control.PD-controller design assumes offshore platform as linear time-invariant system.The corresponding system of equations of motions follows the form (e.g., Ryu [4]): .
where dot (•) denotes time derivative.Each vector written in bold-type can be described by the following set of definitions: the mass of the floating structure, I is the moment of inertia with respect to z-axis, and a ij (0) are the added masses at zero frequency, and x is the state estimation vector.For calculating PD gains, the linear quadratic regulator (LQR) theory was applied.The LQR is conventionally used for finding an optimal control gain matrix K that can minimize state error and thruster usage together, as Equation (10): where The prior research only analyzed the fuel optimal thrust allocation in the static domain, whereas the time-accumulated fuel consumption, which includes dynamic effects like the present paper, is a more meaningful measure for fuel consumption performance analysis.Moreover, the static-domain approach cannot directly evaluate whether the computational speed of thruster-allocation algorithm is feasible for real-time DP control or not.
The thrust allocation produces thruster commands with required force and moment constraints to keep the position of offshore platform by counteracting against environmental forces.In this research, the target object motion is the motion range in horizontal plane.Therefore, 3DOF force and moment constraints can be formulated, as in Equation (11).In this study, the example FPSO has six azimuth thrusters, so the index "n" becomes six: where, X, Y, N are surge and sway forces, and yaw moment, respectively.T i is the total thrust of i-th thruster, x i , y i are the distances of i-th thrusters from center of gravity.

Optimization Problem Formulation
The thrust allocation can be formulated as the general form of optimization problem that uses optimization design variables as modeled in the previous section.It has a fuel-consumption object function, mechanical constraints, and required force constraints.It can be formulated as follows: * Object Function f (x, u) = uKu T where, u = (T 1 cos α, T 1 sin α, ..T n cos α, T n sin α) T * Inequality Constrai nts The penalty programming replaces a constrained optimization problem by the combination of unconstrained problems whose solution ideally converges to that of the original constrained problem.The advantage of the penalty programming is that there is no limitation as to how to construct the object function and constraint.Therefore, this can be used for the fuel-minimal thrust allocation with nonlinearity.The penalty problem can be formulated as Equation ( 13): * Object Function f (u) = uKu T where u = (T 1 cos α, T 1 sin α, ..T n cos α, T n sin α) T * Penalty Function + max For solving the penalty problem, the penalty programming technique is necessary.At first, the penalty programming is modeled by including the object function and constraints like Equation ( 14): where f (u) is the object function, p(u) is the constraints function, c is penalty parameter.According to the penalty convergence theorem [14], the following is valid: If f (u), p(u) are continuous functions, then let "u" be the solution of the penalty programming.When penalty parameter "c" increases to infinity, the limit value of "u" exists.Then "u" is the optimum solution of penalty programming.
Therefore, when the penalty parameter "c" goes to infinity, the optimum solution will be found, mathematically.The numerical implementation will be stated in the following section.

Numerical Approach: Penalty-Programming Implementation
For the numerical implementation of penalty programming, the optimization simulation code was constructed and included in the thrust-allocation module.Figure 2 summarizes the flow chart of the penalty programming.For finding current-step thruster command, at first, the initial values were found by the pseudo-inverse method.Then, the penalty programming initializes the penalty parameter "C" as one.Then, the numerical approach finds the solution of the penalty program by using Gauss elimination with partial pivoting.Then, make C double the previous step's C.Then, check that the solution is converged.The proposed algorithm converged well, compared to the quadratic programming and genetic algorithm.
Energies 2018, 11, x 8 of 25 If f(u), p(u) are continuous functions, then let "u" be the solution of the penalty programming.When penalty parameter "c" increases to infinity, the limit value of "u" exists.Then "u" is the optimum solution of penalty programming.
Therefore, when the penalty parameter "c" goes to infinity, the optimum solution will be found, mathematically.The numerical implementation will be stated in the following section.

Numerical Approach: Penalty-Programming Implementation
For the numerical implementation of penalty programming, the optimization simulation code was constructed and included in the thrust-allocation module.Figure 2 summarizes the flow chart of the penalty programming.For finding current-step thruster command, at first, the initial values were found by the pseudo-inverse method.Then, the penalty programming initializes the penalty parameter "C" as one.Then, the numerical approach finds the solution of the penalty program by using Gauss elimination with partial pivoting.Then, make C double the previous step's C.Then, check that the solution is converged.The proposed algorithm converged well, compared to the quadratic programming and genetic algorithm.For the given system, the solution's existence and stability are evaluated, which is essential to provide the validity of the penalty programming.

Solution Existence
If the solution has convex area, then the solution of the penalty programming exists.In the case of a given thrust allocation, the area of thruster commands is convex, which is limited by the constraints.Therefore, the solution of penalty programming exists.For the given system, the solution's existence and stability are evaluated, which is essential to provide the validity of the penalty programming.

Solution Existence
If the solution has convex area, then the solution of the penalty programming exists.In the case of a given thrust allocation, the area of thruster commands is convex, which is limited by the constraints.Therefore, the solution of penalty programming exists.

Solution Stability
Numerically, the probability of solution finding depends on the stability of system.The stability of a system could be defined as the condition number of system matrix.If system matrix is positive definite and the condition number defined as Equation ( 15) is converged, the system is stable.
Under the system of linear equation which has "n" number of thrusters, where Then, matrix B is positive definite.The eigenvalues of B matrix are Then, the eigenvalues of matrix A are Then, where, λ is eigen value o f system Energies 2018, 11, 2128 10 of 24

Time-Domain-Coupled Analysis
The above DP algorithms are implemented in the vessel-riser-mooring-coupled dynamic simulation program in time domain.Traditionally, a simplified approach is used in calculating vessel motions without coupling with risers and mooring lines.
As water depth increases, the mass/damping of the mooring lines and risers becomes larger, and their dynamic coupling with vessel should be considered for accurate vessel-motion simulations.Ryu [4] addressed the fact that the time domain coupled analysis is the most adequate for the hull-leg interaction because mooring lines and risers can significantly influence hull responses.The flowcharts of the simplified approach and the fully coupled analysis including DP control are compared in Figures 3 and 4 (e.g., Ryu [4]).
Not to have thruster wear and tear, it is better not to counteract the Wave Frequency (WF) motion.Only the slowly varying motions are filtered for the platform control.For this purpose, a Kalman filter was adopted.The time-domain-coupled analysis is physically reasonable for the numerical simulations of thruster-assisted moored platforms, since the required thrust should be calculated in every time step with other external forces.

Time-Domain-Coupled Analysis
The above DP algorithms are implemented in the vessel-riser-mooring-coupled dynamic simulation program in time domain.Traditionally, a simplified approach is used in calculating vessel motions without coupling with risers and mooring lines.
As water depth increases, the mass/damping of the mooring lines and risers becomes larger, and their dynamic coupling with vessel should be considered for accurate vessel-motion simulations.Ryu [4] addressed the fact that the time domain coupled analysis is the most adequate for the hull-leg interaction because mooring lines and risers can significantly influence hull responses.The flowcharts of the simplified approach and the fully coupled analysis including DP control are compared in Figures 3 and 4 (e.g., Ryu [4]).Not to have thruster wear and tear, it is better not to counteract the Wave Frequency (WF) motion.Only the slowly varying motions are filtered for the platform control.For this purpose, a Kalman filter was adopted.The time-domain-coupled analysis is physically reasonable for the numerical simulations of thruster-assisted moored platforms, since the required thrust should be calculated in every time step with other external forces.

Comparison with Reproduced Quadratic-Programming-Based Thrust Allocation
For the validation of the developed thrust-allocation method, reference cases in Rindaroy [7] were simulated using the quadratic-programming method for the cases of power minimization and fuel consumption minimization.Those problems are to distribute required surge and sway forces (Surge Force: 100 KN, Sway Force: 200 KN) to the forward tunnel thruster, the forward azimuth thruster, the aft port azimuth thruster, and the aft starboard azimuth thruster.The offshore support vessel bourbon UT 745E was used for the target vessel.The principal dimension of the bourbon UT745E is presented in Figure 5 and Table 2.Not to have thruster wear and tear, it is better not to counteract the Wave Frequency (WF) motion.Only the slowly varying motions are filtered for the platform control.For this purpose, a Kalman filter was adopted.The time-domain-coupled analysis is physically reasonable for the numerical simulations of thruster-assisted moored platforms, since the required thrust should be calculated in every time step with other external forces.

Comparison with Reproduced Quadratic-Programming-Based Thrust Allocation
For the validation of the developed thrust-allocation method, reference cases in Rindaroy [7] were simulated using the quadratic-programming method for the cases of power minimization and fuel consumption minimization.Those problems are to distribute required surge and sway forces (Surge Force: 100 KN, Sway Force: 200 KN) to the forward tunnel thruster, the forward azimuth thruster, the aft port azimuth thruster, and the aft starboard azimuth thruster.The offshore support vessel bourbon UT 745E was used for the target vessel.The principal dimension of the bourbon UT745E is presented in Figure 5 and Table 2.  Figures 6 and 7 represent thrust-allocation validation results.Figure 6 shows the bar chart of the reference [7] and the present validation case for the thruster usage (%) according to forward and aft thrusters.The present thrust-allocation results based on the quadratic programing for thruster minimization and fuel optimization agree well with those of Rindaroy [7]. Figure 7 similarly compares the results of fuel consumption depending on different optimization object functions.Consistently, the fuel consumption results of the present validation cases show very close coherence with the reference cases.Analyzing those two figures, although the thruster usage was larger in the fuel-minimization case than the thrust-minimization case, the fuel consumption was smaller in the fuel-optimal case than that of the thrust optimal case.This discrepancy was caused by different object functions.In all cases, the present and Rindaroy's results [7] have very good agreement, within 1% error.In the following section, three different thrust-allocation methods for minimal fuel consumption, pseudo-inverse, quadratic programming, and penalty methods, will be systematically compared for a turret-moored, DP-assisted FPSO for several different scenarios through dynamic simulations.
fuel-optimal case than that of the thrust optimal case.This discrepancy was caused by different object functions.In all cases, the present and Rindaroy's results [7] have very good agreement, within 1% error.In the following section, three different thrust-allocation methods for minimal fuel consumption, pseudo-inverse, quadratic programming, and penalty methods, will be systematically compared for a turret-moored, DP-assisted FPSO for several different scenarios through dynamic simulations.fuel-optimal case than that of the thrust optimal case.This discrepancy was caused by different object functions.In all cases, the present and Rindaroy's results [7] have very good agreement, within 1% error.In the following section, three different thrust-allocation methods for minimal fuel consumption, pseudo-inverse, quadratic programming, and penalty methods, will be systematically compared for a turret-moored, DP-assisted FPSO for several different scenarios through dynamic simulations.

Results and Discussions
In the previous sections, the procedure for the optimal thrust allocation for the vessels with multiple azimuth thrusters was presented.In this section, as an example of another real-world problem, a DP-assisted FPSO with six azimuth thrusters was selected to prove the superior performance of the proposed thrust allocation.The fully dynamically-coupled time-domain computer simulations were conducted to compare the performance of the newly developed penalty method and conventional thrust-allocation algorithms (quadratic-programming and pseudo-inverse method).The capacity of thrusters and their locations were considered as the constraints.The object function of the thrust-allocation optimization was set to minimize the fuel consumption.6DOF hull-mooring-riser-coupled dynamic simulations with DP in time domain were conducted to evaluate the fuel consumption by using fuel-optimal thrust-allocation algorithms.Those thrust-allocation algorithms are optimized by the pseudo-inverse method, quadratic programming, and penalty programming.Accordingly, dynamics of ship, environmental forces, and DP control frame are simultaneously implemented in the simulation program.

Time-Domain Simulation Conditions
Before applying the newly developed thrust-allocation algorithms to the dynamic positioning control system, the conventional pseudo-inverse method-based thrust allocation and PID controller were modeled and checked with the results of Ryu [4].Kalman filter and PID controller were implemented in the DP controller.Frequency-domain analysis was performed using WAMIT for hydrodynamic coefficients and wave forces.Subsequently, the time-domain 6DOF motion analysis was performed using CHARM3D (Ryu [4]; Yang [15]; Yang [16]; Bae [17]; Li [18]; Kim et al. [19]).The DP FPSO vessel is a 200,000 ton tanker moored in 1829 m water depth.The bow turret is located 63.55 m from the Fore Perpendicular.The principal dimension of the DP FPSO is presented in Table 3. Figure 8 represent the mesh model for the motion analysis.
hydrodynamic coefficients and wave forces.Subsequently, the time-domain 6DOF motion analysis was performed using CHARM3D (Ryu [4]; Yang [15]; Yang [16]; Bae [17]; Li [18]; Kim et al. [19]).The DP FPSO vessel is a 200,000 ton tanker moored in 1829 m water depth.The bow turret is located 63.55 m from the Fore Perpendicular.The principal dimension of the DP FPSO is presented in Table 3. Figure 8 represent the mesh model for the motion analysis.The coordinate system and environmental direction are presented in Figure 9.The coordinate system and environmental direction are presented in Figure 9.The 1-year and 100-year Gulf of Mexico (GOM) hurricanes were used as the environmental conditions in the simulation.A JONSWAP (Joint North Sea Wave Project) spectrum was used for the input sea, which is summarized in Table 4.The 1-year and 100-year Gulf of Mexico (GOM) hurricanes were used as the environmental conditions in the simulation.A JONSWAP (Joint North Sea Wave Project) spectrum was used for the input sea, which is summarized in Table 4.The Oil Companies International Marine Forum wind-and current-force coefficient data for a cylindrical bow tanker with a full loading condition were utilized for the simulation.The storm induced current flows from 30 degrees clockwise of the incoming wave direction.The current velocity is assumed to be 0.33 or 1.07 m/s at the water surface.Regarding the wind spectrum, the API (America Petroleum Institute) wind spectrum was used to generate the dynamic wind forces.The applied wind speed was 14.4 or 41.1 m/s at 10 m height, and its direction is 30 degrees counterclockwise of the incoming wave direction.The corresponding wind spectrum is shown in Figure 10.The Oil Companies International Marine Forum wind-and current-force coefficient data for a cylindrical bow tanker with a full loading condition were utilized for the simulation.The storm induced current flows from 30 degrees clockwise of the incoming wave direction.The current velocity is assumed to be 0.33 or 1.07 m/s at the water surface.Regarding the wind spectrum, the API (America Petroleum Institute) wind spectrum was used to generate the dynamic wind forces.The applied wind speed was 14.4 or 41.1 m/s at 10 m height, and its direction is 30 degrees counterclockwise of the incoming wave direction.The corresponding wind spectrum is shown in Figure 10.The FPSO equips twelve chain-polyester-chain mooring lines and thirteen steel catenary risers, as shown in Figures 11 and 12.The particulars of mooring lines and risers are summarized in Tables 5 and 6.The FPSO equips twelve chain-polyester-chain mooring lines and thirteen steel catenary risers, as shown in Figures 11 and 12.The particulars of mooring lines and risers are summarized in Tables 5 and 6.The FPSO equips twelve chain-polyester-chain mooring lines and thirteen steel catenary risers, as shown in Figures 11 and 12.The particulars of mooring lines and risers are summarized in Tables 5 and 6.The DP FPSO equipped with six azimuth thrusters, was simulated for evaluating the performance of fuel-consumption reduction.6 DOF coupled time-domain simulations were carried out under the Gulf of Mexico (GOM) 100-year storm conditions.The thruster configuration and constraints are presented in Figure 13, Tables 7 and 8.The DP FPSO equipped with six azimuth thrusters, was simulated for evaluating the performance of fuel-consumption reduction.6 DOF coupled time-domain simulations were carried out under the Gulf of Mexico (GOM) 100-year storm conditions.The thruster configuration and constraints are presented in Figure 13, Tables 7 and 8.     Trajectories depending on different thrust-allocation methods are presented in Figure 14.The left graph shows the of the penalty-method-based thrust-allocation algorithm.The right one presents trajectories of the pseudo-inverse method and the quadratic programming.The penalty programming shows slightly better position-keeping performance in the surge motion, but there is no appreciable improvement in sway and yaw motions.The maximum of mooring top tension of the penalty programming and other methods are almost the same, as can be seen in Table 9. Trajectories depending on different thrust-allocation methods are presented in Figure 14.The left graph shows the trajectory of the penalty-method-based thrust-allocation algorithm.The right one presents trajectories of the pseudo-inverse method and the quadratic programming.The penalty programming shows slightly better position-keeping performance in the surge motion, but there is no appreciable improvement in sway and yaw motions.The maximum of mooring top tension of the penalty programming and other methods are almost the same, as can be seen in Table 9.  Figure 15 shows the 6 DOF motion-simulation results when the penalty programming is used as thrust-allocation method.Figure 15 shows the 6 DOF motion-simulation results when the penalty programming is used as thrust-allocation method.Figure 16 shows the fuel-consumption time histories by three different thrust-allocation methods.The red line is the pseudo-inverse method, and the green and black ones are the quadratic programming and penalty programming.According to the graph, the pseudo-inverse method consumes the largest amount of fuel compared to other thrust-allocation methods.Peaks of the pseudo-inverse method occur when environmental forces reach the thruster-allocation capacity.The peak of the penalty programming is lower than those of the pseudo-inverse method and quadratic programming by 32% and 26%, respectively.In the case of the accumulated fuel consumption amount, the penalty programming saves 6% and 5%, respectively, compared to the pseudo-inverse method and quadratic programming.From this comparison, it can be concluded that the penalty programing performs better than pseudo-inverse and quadratic-programming methods in keeping positions and saving fuel consumption during the severe storm.Figure 16 shows the fuel-consumption time histories by three different thrust-allocation methods.The red line is the pseudo-inverse method, and the green and black ones are the quadratic programming and penalty programming.According to the graph, the pseudo-inverse method consumes the largest amount of fuel compared to other thrust-allocation methods.Peaks of the pseudo-inverse method occur when environmental forces reach the thruster-allocation capacity.The peak of the penalty programming is lower than those of the pseudo-inverse method and quadratic programming by 32% and 26%, respectively.In the case of the accumulated fuel consumption amount, the penalty programming saves 6% and 5%, respectively, compared to the pseudo-inverse method and quadratic programming.From this comparison, it can be concluded that the penalty programing performs better than pseudo-inverse and quadratic-programming methods in keeping positions and saving fuel consumption during the severe storm.Figure 16 shows the fuel-consumption time histories by three different thrust-allocation methods.The red line is the pseudo-inverse method, and the green and black ones are the quadratic programming and penalty programming.According to the graph, the pseudo-inverse method consumes the largest amount of fuel compared to other thrust-allocation methods.Peaks of the pseudo-inverse method occur when environmental forces reach the thruster-allocation capacity.The peak of the penalty programming is lower than those of the pseudo-inverse method and quadratic programming by 32% and 26%, respectively.In the case of the accumulated fuel consumption amount, the penalty programming saves 6% and 5%, respectively, compared to the pseudo-inverse method and quadratic programming.From this comparison, it can be concluded that the penalty programing performs better than pseudo-inverse and quadratic-programming methods in keeping positions and saving fuel consumption during the severe storm.Figure 17 additionally shows the fuel-consumption history when the genetic algorithm is used.The genetic algorithm further reduced the fuel consumption by 2% compared to the penalty programming.Although genetic algorithm shows the best fuel-reduction performance, the genetic algorithm is not feasible for real-time DP controller because it takes a much longer time compared to other methods.In the case of the genetic algorithm, it generally takes more than one minute per one thrust-allocation step to optimize.Meanwhile, the penalty programming, pseudo-inverse, and quadratic-programming methods use under 1 s for thrust allocation.
Energies 2018, 11, x 20 of 25 algorithm is not feasible for real-time DP controller because it takes a much longer time compared to other methods.In the case of the genetic algorithm, it generally takes more than one minute per one thrust-allocation step to optimize.Meanwhile, the penalty programming, pseudo-inverse, and quadratic-programming methods use under 1 s for thrust allocation.

Single Alignment
Next, to find out whether the previous conclusion depends on a specific thruster arrangement, a different thruster configuration was examined.In this case, the same six azimuth thrusters were arranged by single alignment, as shown in Figure 18.The 6 DOF-coupled time-domain simulations were carried out under the same Gulf of Mexico (GOM) 100-year storm conditions.The thruster constraints are the same as Tables 7 and 8. Single-Alignment thruster configuration (T2 (260 m, 0 m), T3 (220 m, 0 m), T4 (90 m, 0), T5 (50 m, 0) are changed compared to Table 7.The corresponding horizontal trajectories by three different thrust-allocation methods are given in Figure 19.The corresponding key statistics are given in Table 10.The position-keeping differences among the different thruster-allocation methods are bigger than the previous case because the single alignment has a smaller moment arm, so it reaches the thruster constraint more frequently.In this case, the penalty and pseudo-inverse methods show similar performance in the position-keeping performance, and they are better than the quadratic-programing method.Yaw-wise, the penalty method is the best.The maximum mooring top tensions of the three methods are almost the same.

Single Alignment
Next, to find out whether the previous conclusion depends on a specific thruster arrangement, a different thruster configuration was examined.In this case, the same six azimuth thrusters were arranged by single alignment, as shown in Figure 18.The 6 DOF-coupled time-domain simulations were carried out under the same Gulf of Mexico (GOM) 100-year storm conditions.The thruster constraints are the same as Tables 7 and 8. Single-Alignment thruster configuration (T2 (260 m, 0 m), T3 (220 m, 0 m), T4 (90 m, 0), T5 (50 m, 0) are changed compared to Table 7.
Energies 2018, 11, x 20 of 25 algorithm is not feasible for real-time DP controller because it takes a much longer time compared to other methods.In the case of the genetic algorithm, it generally takes more than one minute per one thrust-allocation step to optimize.Meanwhile, the penalty programming, pseudo-inverse, and quadratic-programming methods use under 1 s for thrust allocation.

Single Alignment
Next, to find out whether the previous conclusion depends on a specific thruster arrangement, a different thruster configuration was examined.In this case, the same six azimuth thrusters were arranged by single alignment, as shown in Figure 18.The 6 DOF-coupled time-domain simulations were carried out under the same Gulf of Mexico (GOM) 100-year storm conditions.The thruster constraints are the same as Tables 7 and 8. Single-Alignment thruster configuration (T2 (260 m, 0 m), T3 (220 m, 0 m), T4 (90 m, 0), T5 (50 m, 0) are changed compared to Table 7.The corresponding horizontal trajectories by three different thrust-allocation methods are given in Figure 19.The corresponding key statistics are given in Table 10.The position-keeping differences among the different thruster-allocation methods are bigger than the previous case because the single alignment has a smaller moment arm, so it reaches the thruster constraint more frequently.In this case, the penalty and pseudo-inverse methods show similar performance in the position-keeping performance, and they are better than the quadratic-programing method.Yaw-wise, the penalty method is the best.The maximum mooring top tensions of the three methods are almost the same.The corresponding horizontal trajectories by three different thrust-allocation methods are given in Figure 19.The corresponding key statistics are given in Table 10.The position-keeping differences among the different thruster-allocation methods are bigger than the previous case because the single alignment has a smaller moment arm, so it reaches the thruster constraint more frequently.In this case, the penalty and pseudo-inverse methods show similar performance in the position-keeping  In Figure 20, 6DOF motions of the DP-controlled FPSO with the penalty programming and single-line arrangements are plotted.When compared to the previous DP arrangement, the efficiency of sway and yaw modes is slightly diminished.Figure 21 presents the fuel-consumption index by 3 different thruster-allocation methods in the single-alignment case.The total accumulated fuel consumption was increased by 1% when compared to the case of group thruster configuration.This difference comes from the thrust-allocation efficiency depending on thruster configuration.The peak of penalty programming is lower than those of pseudo-inverse method and quadratic programming by a maximum of 36% and 30%, respectively.In Figure 20, 6DOF motions of the DP-controlled FPSO with the penalty programming and single-line arrangements are plotted.When compared to the previous DP arrangement, the efficiency of sway and yaw modes is slightly diminished.In Figure 20, 6DOF motions of the DP-controlled FPSO with the penalty programming and single-line arrangements are plotted.When compared to the previous DP arrangement, the efficiency of sway and yaw modes is slightly diminished.Figure 21 presents the fuel-consumption index by 3 different thruster-allocation methods in the single-alignment case.The total accumulated fuel consumption was increased by 1% when compared to the case of group thruster configuration.This difference comes from the thrust-allocation efficiency depending on thruster configuration.The peak of penalty programming is lower than those of pseudo-inverse method and quadratic programming by a maximum of 36% and 30%, respectively.Figure 21 presents the fuel-consumption index by 3 different thruster-allocation methods in the single-alignment case.The total accumulated fuel consumption was increased by 1% when compared to the case of group thruster configuration.This difference comes from the thrust-allocation efficiency depending on thruster configuration.The peak of penalty programming is lower than those of pseudo-inverse method and quadratic programming by a maximum of 36% and 30%, respectively.In the case of accumulated fuel consumption, the penalty programming saves 7% and 6% in total fuel consumption, compared to the pseudo-inverse and quadratic-programming method.
Energies 2018, 11, x 22 of 25 In the case of accumulated fuel consumption, the penalty programming saves 7% and 6% in total fuel consumption, compared to the pseudo-inverse and quadratic-programming method.

Results for GOM 1-YEAR Storm Condition
Next, let us investigate whether the previous conclusion is affected by different storm conditions.In this regard, the simulation under the Gulf of Mexico (GOM) 1-year storm condition was conducted to analyze the change due to milder environmental conditions.The same DP FPSO with group configuration of six azimuth thrusters, as in Figure 13, was simulated.The thruster configuration and constraints are the same as the previous GOM 100-year group-configuration case.
The horizontal-plane trajectories by three different allocation methods are presented in Figure 22.The watch circle is under 3 m because the environmental force is much smaller compared to the GOM 100-year condition.The corresponding statistics are summarized in Table 11.In this milder environment, there is no appreciable difference in station-keeping performance among the three different methods.

Results for GOM 1-YEAR Storm Condition
Next, let us investigate whether the previous conclusion is affected by different storm conditions.In this regard, the simulation under the Gulf of Mexico (GOM) 1-year storm condition was conducted to analyze the change due to milder environmental conditions.The same DP FPSO with group configuration of six azimuth thrusters, as in Figure 13, was simulated.The thruster configuration and constraints are the same as the previous GOM 100-year group-configuration case.
The horizontal-plane trajectories by three different allocation methods are presented in Figure 22.The watch circle is under 3 m because the environmental force is much smaller compared to the GOM 100-year condition.The corresponding statistics are summarized in Table 11.In this milder environment, there is no appreciable difference in station-keeping performance among the three different methods.In the case of accumulated fuel consumption, the penalty programming saves 7% and 6% in total fuel consumption, compared to the pseudo-inverse and quadratic-programming method.

Results for GOM 1-YEAR Storm Condition
Next, let us investigate whether the previous conclusion is affected by different storm conditions.In this regard, the simulation under the Gulf of Mexico (GOM) 1-year storm condition was conducted to analyze the change due to milder environmental conditions.The same DP FPSO with group configuration of six azimuth thrusters, as in Figure 13, was simulated.The thruster configuration and constraints are the same as the previous GOM 100-year group-configuration case.
The horizontal-plane trajectories by three different allocation methods are presented in Figure 22.The watch circle is under 3 m because the environmental force is much smaller compared to the GOM 100-year condition.The corresponding statistics are summarized in Table 11.In this milder environment, there is no appreciable difference in station-keeping performance among the three different methods.Figure 23 shows 6DOF motion results of DP-controlled FPSO with the penalty programming.In general, motion amplitudes are much smaller than those of the 100-yr storm case.Figure 24 shows the corresponding fuel consumption based on the pseudo-inverse, penalty, and quadratic-programming methods.The peak of penalty programming is lower than that of pseudoinverse and quadratic methods by a maximum of 13% and 9%, respectively.In the case of the accumulated fuel-consumption amount, the penalty programming saves 3% and 2% in total accumulated fuel consumption, compared to the pseudo-inverse and quadratic-programming methods.

Conclusions
In this research, a new thrust-allocation algorithm, penalty programming, is proposed for optimal DP operation, with minimal fuel consumption while maintaining good performance in vessel Figure 24 shows the corresponding fuel consumption based on the pseudo-inverse, penalty, and quadratic-programming methods.The peak of penalty programming is lower than that of pseudo-inverse and quadratic methods by a maximum of 13% and 9%, respectively.In the case of the accumulated fuel-consumption amount, the penalty programming saves 3% and 2% in total accumulated fuel consumption, compared to the pseudo-inverse and quadratic-programming methods.Figure 23 shows 6DOF motion results of DP-controlled FPSO with the penalty programming.In general, motion amplitudes are much smaller than those of the 100-yr storm case.Figure 24 shows the corresponding fuel consumption based on the pseudo-inverse, penalty, and quadratic-programming methods.The peak of penalty programming is lower than that of pseudoinverse and quadratic methods by a maximum of 13% and 9%, respectively.In the case of the accumulated fuel-consumption amount, the penalty programming saves 3% and 2% in total accumulated fuel consumption, compared to the pseudo-inverse and quadratic-programming methods.

Conclusions
In this research, a new thrust-allocation algorithm, penalty programming, is proposed for optimal DP operation, with minimal fuel consumption while maintaining good performance in vessel

Conclusions
In this research, a new thrust-allocation algorithm, penalty programming, is proposed for optimal DP operation, with minimal fuel consumption while maintaining good performance in vessel position-keeping.Its performance was compared with other existing thruster-allocation methods, such as pseudo-inverse or quadratic-programming methods.To demonstrate the performance of the respective thruster-allocation methods, a DP-controlled turret-moored FPSO was considered.The thrust-allocation methods were implemented in the time-domain hull-mooring-riser-coupled simulation program with DP control.The time-domain simulation tool was validated by comparison with reference cases.
By the time-domain simulations, the effects of environmental conditions and thruster arrangements for the respective methods were analyzed.The developed penalty programming shows the best performance in the fuel-consumption reduction compared to the conventional pseudo-inverse or quadratic-programming methods in all the cases considered.In the case of genetic algorithm, despite high performance in saving fuel, it is not feasible to apply to real-time DP controller because computation time per thrust is typically longer than one minute, while other methods can be done within one second.In the case of thruster arrangement, the configuration shows better performance compared to the single-alignment configuration.
The penalty-programming-based thrust allocation can save about 7% (or 6%) accumulated fuel consumption compared to the pseudo-inverse (or quadratic-programming) method in GOM 100-year storm condition.The penalty programming can similarly reduce the accumulated fuel consumption when compared to pseudo-inverse (or quadratic-programming) method for GOM 1-year storm condition.Moreover, this improvement of thrust allocation based on the penalty programming is valid in both single alignment and group configuration of thrusters.Moreover, the fuel saving directly contributes to less gas emissions.The developed technology can generally be applied to other offshore vessels and platforms with DP system.

Figure 2 .
Figure 2. Flow Chart of Penalty Program.

Figure 2 .
Figure 2. Flow Chart of Penalty Program.

Figure 8 .
Figure 8. Mesh Generation of the DP FPSO.

Figure 8 .
Figure 8. Mesh Generation of the DP FPSO.

Figure 9 .
Figure 9. Coordinate System and Environmental Forces.

Figure 9 .
Figure 9. Coordinate System and Environmental Forces.

Figure 11 .
Figure 11.Arrangement and Numbering of the FPSO Mooring Lines.Figure 11.Arrangement and Numbering of the FPSO Mooring Lines.

Figure 11 .
Figure 11.Arrangement and Numbering of the FPSO Mooring Lines.Figure 11.Arrangement and Numbering of the FPSO Mooring Lines.

Figure 12 .
Figure 12.Arrangement and Numbering of the FPSO Risers.Figure 12. Arrangement and Numbering of the FPSO Risers.

Figure 12 .
Figure 12.Arrangement and Numbering of the FPSO Risers.Figure 12. Arrangement and Numbering of the FPSO Risers.

Figure 14 .
Figure 14.Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.

Figure 14 .
Figure 14.Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.

Figure 15 .
Figure 15.DP FPSO-Controlled Motion using the Penalty Programming.

Figure 16 .
Figure 16.Fuel-Consumption Time Histories Compared to Maximum Capacity by Three Different Thrust-Allocation Algorithms.

Figure 17
Figure 17 additionally shows the fuel-consumption history when the genetic algorithm is used.The genetic algorithm further reduced the fuel consumption by 2% compared to the penalty programming.Although genetic algorithm shows the best fuel-reduction performance, the genetic

Figure 15 .
Figure 15.DP FPSO-Controlled Motion using the Penalty Programming.

Figure 15 .
Figure 15.DP FPSO-Controlled Motion using the Penalty Programming.

Figure 16 .
Figure 16.Fuel-Consumption Time Histories Compared to Maximum Capacity by Three Different Thrust-Allocation Algorithms.

Figure 17
Figure 17 additionally shows the fuel-consumption history when the genetic algorithm is used.The genetic algorithm further reduced the fuel consumption by 2% compared to the penalty programming.Although genetic algorithm shows the best fuel-reduction performance, the genetic

Figure 16 .
Figure 16.Fuel-Consumption Time Histories Compared to Maximum Capacity by Three Different Thrust-Allocation Algorithms.

Figure 17 .
Figure 17.Fuel Consumption Time Histories Compared to Maximum Capacity by Penalty Programming and Genetic Algorithm.

Figure 17 .
Figure 17.Fuel Consumption Time Histories Compared to Maximum Capacity by Penalty Programming and Genetic Algorithm.

Figure 17 .
Figure 17.Fuel Consumption Time Histories Compared to Maximum Capacity by Penalty Programming and Genetic Algorithm.

Figure 19 .
Figure 19.Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.

Figure 19 .
Figure 19.Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.

Figure 19 .
Figure 19.Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.

Figure 21 .
Figure 21.Fuel Consumption Time History Compared to Maximum Capacity by Three Different Thrust-Allocation Algorithms.

Figure 22 .
Figure 22.Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.

Figure 21 .
Figure 21.Fuel Consumption Time History Compared to Maximum Capacity by Three Different Thrust-Allocation Algorithms.

Figure 21 .
Figure 21.Fuel Consumption Time History Compared to Maximum Capacity by Three Different Thrust-Allocation Algorithms.

Figure 22 .
Figure 22.Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.Figure 22. Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.

Figure 22 .
Figure 22.Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.Figure 22. Surge and Sway Trajectories by Three Different Thrust-Allocation Algorithms.

Figure 23
Figure23shows 6DOF motion results of DP-controlled FPSO with the penalty programming.In general, motion amplitudes are much smaller than those of the 100-yr storm case.

Figure 24 .
Figure 24.Fuel Consumption Index Time History by Three Different Thrust-Allocation Algorithms.

Figure 24 .
Figure 24.Fuel Consumption Index Time History by Three Different Thrust-Allocation Algorithms.

Figure 24 .
Figure 24.Fuel Consumption Index Time History by Three Different Thrust-Allocation Algorithms.

Table 1 .
The Optimization Scheme Categorization.

Table 2 .
Principal Dimension of Simulation Vessel.

Table 3 .
Principal Dimension of Simulation Vessel.

Table 3 .
Principal Dimension of Simulation Vessel.

Table 9 .
Mean Value and Standard Deviation by Three Different Thrust-Allocation Algorithms.

Table 9 .
Mean Value and Standard Deviation by Three Different Thrust-Allocation Algorithms.

Table 10 .
Mean Value and Standard Deviation by Three Different Thrust-Allocation Algorithms.

Table 10 .
Mean Value and Standard Deviation by Three Different Thrust-Allocation Algorithms.

Table 10 .
Mean Value and Standard Deviation by Three Different Thrust-Allocation Algorithms.

Table 11 .
Mean Value and Standard Deviation by Three Different Thrust-Allocation Algorithms.

Table 11 .
Mean Value and Standard Deviation by Three Different Thrust-Allocation Algorithms.

Table 11 .
Mean Value and Standard Deviation by Three Different Thrust-Allocation Algorithms.