Dynamic Positioning during Heavy Lift Operations - TU Delft ...

102
Dynamic Positioning during Heavy Lift Operations Using fuzzy control techniques, Nonlinear Observer and H-Infinity Method Separately to Obtain Stable DP Systems for Heavy Lift Operations J. Ye

Transcript of Dynamic Positioning during Heavy Lift Operations - TU Delft ...

Dynamic Positioning during Heavy Lift Operations

Using fuzzy control techniques, Nonlinear Observer and H-Infinity

Method Separately to Obtain Stable DP Systems for Heavy Lift

Operations

J. Ye

Thesis for the degree of MSc in Marine Technology in the specialization of DPO – Marine Engineering

Dynamic Positioning during Heavy Lift Operations

By

Jun Ye

Performed at

RH Marine

This thesis (SDPO.16.007.m.) is classified as confidential in accordance with the general conditions for projects performed by the TUDelft.

31.03.2016

Company supervisor Responsible supervisor: E. El Amam

Daily Supervisor(s): E. El Amam E-mail: [email protected]

Thesis exam committee

Chair/Responsible Professor: Prof. ir. J.J. Hopman Staff Member: Dr M. Godjevac

Staff Member: Dr. R.R. Negenborn Company Member: E. El Amam

Author Details

Studynumber: 4274830 Author contact e-mail: [email protected]

i

Summary

Dynamic positioning has been developed for over half a century and is now widely used on board.

However, the existing dynamic positioning system is not specially made with heavy lift vessels. This

report is to solve the dynamic positioning problem during heavy lift operations. To fulfill this goal, the

robustness and stability of the solutions are also considered.

The solutions mentioned in this report are based on the RH Marine vessel model and the RH Marine

dynamic positioning system. First the crane vessel model is reviewed and checked. Then the solutions

are chosen and applied. At last the results are presented and analyzed. The stability of each solution is

approached and the robustness of each solution is tested in Simulink.

There are three solutions in this thesis. Fuzzy controller, nonlinear passive observer and H-infinity

controller are implemented to the original system separately. For first two solutions, there’s no

theoretical proof that they are robust. For H-infinity controller, it is proven to be robust. All three

solutions showed good robustness under tests.

This report, as a master thesis, is to present the dynamic positioning problem to the reader and to provide

possible solutions to the heavy lift dynamic positioning problem.

ii

Table of Content Summary .................................................................................................................................................. i

1 Introduction ..................................................................................................................................... 1

Crane Vessels ....................................................................................................................... 1

Offshore Heavy Lifting ........................................................................................................ 2

Dynamic Positioning ............................................................................................................ 4

Structure of the Thesis ......................................................................................................... 6

2 Problem of Dynamic Positioning during Heavy Lift Operations and Current Solutions ................ 6

Problem of Dynamic Positioning during Heavy Lift Operations......................................... 7

Current Solutions ............................................................................................................... 10

2.2.1 Current Solutions in Practice .................................................................................. 10

2.2.2 Current Solution in Theory ..................................................................................... 12

Conclusion ......................................................................................................................... 12

3 Modelling of the Vessel and Simulation of the Problem .............................................................. 13

Simulation Model .............................................................................................................. 13

3.1.1 Reference Frames ................................................................................................... 13

3.1.2 Low Frequency Vessel Model ................................................................................ 14

Simulation of the Heavy Lift Mooring Problem ................................................................ 15

3.2.1 Under Seastate 0 ..................................................................................................... 16

3.2.2 Under Seastate 3 ..................................................................................................... 18

3.2.3 With Setpoint Changed ........................................................................................... 19

Conclusion ......................................................................................................................... 21

4 Possible Solutions and Candidate Solutions ................................................................................. 21

Possible Solutions .............................................................................................................. 21

4.1.1 Improve the Observer ............................................................................................. 22

4.1.2 Improve the controller ............................................................................................ 27

4.1.3 Other Solutions ....................................................................................................... 30

Candidate Solutions ........................................................................................................... 32

4.2.1 Load estimator with a fuzzy controller ................................................................... 32

4.2.2 Nonlinear passive observer ..................................................................................... 33

4.2.3 H-infinity controller ................................................................................................ 33

iii

4.2.4 Auxiliary solution: AGC ........................................................................................ 33

Conclusion ......................................................................................................................... 33

5 Implementation of Candidate Solutions ........................................................................................ 34

Fuzzy PID Controller ......................................................................................................... 34

5.1.1 Calculations of mooring stiffness ........................................................................... 34

5.1.2 Load estimator ........................................................................................................ 37

5.1.3 The fuzzy logic ....................................................................................................... 39

5.1.4 Pole Placement Design ........................................................................................... 41

5.1.5 Fuzzy logic ............................................................................................................. 43

Nonlinear Passive Observer ............................................................................................... 45

5.2.1 Observer Model ...................................................................................................... 45

5.2.2 The Tuning of the Nonlinear Passive Observer ...................................................... 46

H-infinity Control Method ................................................................................................. 48

5.3.1 H-infinity Control Method ..................................................................................... 48

5.3.2 H-infinity for crane vessels..................................................................................... 49

5.3.3 Implementation of H-infinity controller ................................................................. 50

6 Results of Implemented Candidate Solutions ............................................................................... 50

Results of the Fuzzy PID Controller .................................................................................. 51

6.1.1 Under Seastate 0 ..................................................................................................... 51

6.1.2 Under Seastate 3 ..................................................................................................... 54

6.1.3 Analyze of the results ............................................................................................. 56

Performance of the Observer ............................................................................................. 56

6.2.1 Performance of Nonlinear Passive Observer in Simulation ................................... 56

6.2.2 Comparing Experiment .......................................................................................... 63

6.2.3 Conclusion of Nonlinear Passive Observer ............................................................ 71

Performance of H-infinity Controller ................................................................................ 71

6.3.1 Under Seastate 0 ..................................................................................................... 71

6.3.2 Under Seastate 3 ..................................................................................................... 73

6.3.3 Analyze of H-infinity Controller ............................................................................ 74

Comparison of Different Algorithms under high seastate ................................................. 75

iv

6.4.1 Comparison of Vessel Trace Plots.......................................................................... 75

6.4.2 Comparison of Surge Position Plots ....................................................................... 77

Comparison of the Robustness of Different Algorithm ..................................................... 78

6.5.1 Robustness under different Crane Force ................................................................ 79

6.5.2 Robustness under Different Environmental Load .................................................. 79

6.5.3 Robustness for Different Vessel Weight ................................................................ 82

Discussion and Conclusion ................................................................................................ 82

7 Conclusions and Recommendations ............................................................................................. 82

Reference .............................................................................................................................................. 85

Appendix I Fuzzy Logic in .fis ............................................................................................................. 86

Appendix II Observer Setting ............................................................................................................... 90

Appendix III Matlab Codes for H-infinity Controller........................................................................... 92

Appendix IV Instructions for the Matlab files ......................................................... 错误!未定义书签。

1

1 Introduction Dynamic positioning has been used commercially on offshore vessels since 1960s. After the

development of over half century, nowadays dynamic positioning systems are available on

board of many offshore platforms, yachts, offshore construction vessels etc. As the

improvement of offshore engineering and the demand for offshore resources, more and more

offshore platforms and offshore construction vessels are under requirement. Dynamic

positioning systems are then a necessity to guarantee accurate positioning and easy operating.

Recently, there were reports from offshore constructor companies showing that the dynamic

heavy lift vessels were not always working safely during offshore heavy lift operations under

the DP modes. This report will focus on dynamic positioning and heavy lift operations to find

out why performance is not satisfied under DP mode during heavy lift operation and to find a

solution to this problem.

The first part of the report focus on the background and problem definition (Chapter 1 to

Chapter 3). The second part of the report focus on the problem solving (Chapter 4 to Chapter

5). The last part of the report is analyzing the results (Chapter 6 and Chapter 7).

In this chapter, the background of the problem is revealed. The first part of this chapter is about

the history and actuality of crane vessels. The second part is about offshore heavy lift. The third

part is about dynamic positioning.

Crane Vessels The development of modern heavy lift vessels started from the beginning of the 20th century.

At the beginning, the crane vessels were built for military use by the US and Russia. In 1949,

the American crane vessel Derrick Barge Four was built for commercial use by J. Ray

McDermott. It was a barge with a 150 tonnes revolving crane. As the world’s first commercial

crane vessel, it changed the way that offshore platforms were built from being constructed in

smaller parts to being built onshore as modules. [1]

In the early 1960s, the industry shifted its focus to the exploration and production of oil and gas

fields in the North Sea and started to build crane vessels. In 1963, Heerema built the first ship-

shaped crane vessel in the offshore industry, the Sunnaas. The Sunnaas was built to work under

harsh sea conditions. Soon after that, crane vessels with more capacity were made. The crane

vessels were improved rapidly. In 1978, two semi-submersible crane vessels were built each

with one 2000 ton crane and one 3000 ton crane. Both then were upgraded to a higher capacity.

This new type of crane vessels was more stable.[2]

Nowadays, the demand for energy is growing. The offshore oil fields and wind farms are

detected and developed, thus more and more offshore platforms are built. The scale and

capacity of crane vessels are developing rapidly to fulfill the construction need of offshore

platforms and offshore wind farms. The largest crane vessel in the world now is the semi-

submersible crane vessel Thialf operated by Heerema Marine Contractors. It has two cranes

with a combined maximum lifting capacity of 14200 metric tons at the height of 31.2 meters.[3]

2

Figure 1-1 SSCV (Semi-Submersible Crane Vessel) Thialf in a Norwegian fjord with Fulmar SALM (Single Anchor Leg Mooring) buoy.[4]

Offshore Heavy Lifting The development of offshore heavy lifting results in the development of offshore heavy lift

vessels and offshore industry such as offshore wind farms and offshore oil platforms.

The world’s thirst for energy has never stopped. When the energy onshore can no longer satisfy

the needs, people began to search for energy offshore. Nowadays, more and more offshore

platforms are built to fulfill the need of offshore oil development.

As a leader in offshore wind energy, Europe has wind farms installed since 1991 and an

operating capacity of 2,396 MW as of June 2010, with 39 offshore wind farms in water of

Belgium, Denmark, Finland, Germany, Ireland, the Netherlands, Norway, Sweden and the UK.

The wind farms have water depth ranged from 0.8 meter to 220 meters. [5]

3

Figure 1-2 Image courtesy National Renewable Energy Lab[5]

Offshore platforms have a history of over 100 years. The first submerged platforms were built

in fresh water in Ohio, the US in the year 1891. Around 1896, the first offshore platforms were

built in California.[6]

Figure 1-3 Types of Offshore Oil and Gas Platforms: 1, 2) conventional fixed platforms; 3) compliant tower; 4, 5) vertically moored tension leg and mini-tension leg platform; 6) spar; 7,8)

semi-submersibles; 9) floating production, storage, and offloading facility; 10) sub-sea completion and tie-back to [7]

4

Most wind farms and the offshore platforms are constructed with heavy lift vessels nowadays.

During a general offshore platform heavy lift operation, the load is firstly lifted from the dock

by a separate crane or the crane on the vessel and then moved to the top of the platform. During

the time that the heavy lift load is being transferred in the ocean, the vessel could suffer from

an oscillation in roll and pitch due to the sway of the load. When the load is above the platform,

the offloading begins. Considering the momentum to the platform and the limit speed of

ballasting, the offloading process cannot be finished too fast.

Thus the whole process of the offloading operation takes around 30 minutes. During this period

of time, the load is released slowly. When the load is fully on top of the platform and the crane

wires are slack, the wires are then disconnected from the platform. The offloading operation

then ends.

Figure 1-4 A general offshore platform heavy lift operation

Dynamic Positioning Dynamic positioning is a computer-controlled system which automatically maintain a vessel’s

position and heading by using its own propellers and thrusters. Examples of DP vessel types

include, but are not limited to, ships and semi-submersible mobile offshore drilling units

(MODU), oceanographic research vessels and cruise ships.[8]

Definition 1: A DP vessel is by the class societies e.g. Det Norske Veritas (DNV), American

Bureau of Shipping (ABS) and Lloyd’s Register (LRS or Lloyd’s), defined as a vessel that

maintains its position and heading (fixed location or pre-determined track) exclusively by

means of active thrusters. This is obtained either by installing tunnel thrusters in addition to

the main screw(s), or by using azimuthing thrusters, which can produce thrust in different

directions.[9] See figure 1-5.

5

Figure 1-5 Vessel in Ocean[8]

Dynamic positioning was first brought to the world in the 1960s with a single-input single-

output PID control algorithm in combination with low-pass and notch filter. In the 1970s, more

advanced control methods based on multivariable optimal control and Kalman filter came out.

Nonlinear control is also applied in nowadays DP systems. However, most DP systems applied

today are still linear systems. [10]

A dynamic positioning system consists of: Environmental sensors, Reference system, Control

system, Power and propulsion system. Because the purpose of this project is to find a solution

without changing the structure of the vessels, the scope of the future work of the author is

focused on the control system, which includes the observer and the controller.

6

Figure 1-6 Dynamic positioning system

Structure of the Thesis The thesis first focus on the background and the problem defining. Then modeling and

simulations with original dynamic positioning system from the industry are taken out. Possible

solutions and candidate solutions are given in Chapter 4. The solutions are then implemented

and the robustness of each solution is tested under different simulation environment.

Conclusions and recommendations are given in the last chapter.

2 Problem of Dynamic Positioning during Heavy Lift Operations

and Current Solutions This chapter is to define the main problem the dynamic positioning system is facing during

heavy lift operations. The second part of this chapter provides the main solutions available now

to this problem.

7

Problem of Dynamic Positioning during Heavy Lift Operations Reports from the industry show that accidents may occur when heavy lift operations were under

Dynamic Positioning. One reported incident from the Heerema Marine Conductor shows the

oscillation of the vessel in surge position during offshore heavy lift operation:

Figure 2-1 Surge Position and Hook Load During an Installation of a Topside on a Jacket (HMC, 2002)

In figure 2-1, the blue curve stands for the tension in the crane wires; the yellow curve stands

for the position of the heavy lifting vessel. The crane of the vessel was enduring a load of

approximately 4400 ton during around thirty minutes. Furthermore, it takes about 15 minutes

for the crane and the vessel to transfer the load to the jacket. The vessel begins to oscillate at

time 23:25 with increasing amplitude in a low frequency. At the time of 23:37 the heavy lift

vessel has a surge position of approximately -5 meters. Normally during heavy lift operations,

the vessel and the platform have a small clearance and 5 meters could cause collision. However

in this case, no collision occurred but the load was putting to the platform quickly to avoid the

collision, which could cause damage to the load and the platform.

Consider the installation of a topside on a jacket. As described in [11], the whole operation

procedure can be divided into three phases: hoisting DP operation stage, moored DP operation

stage and free floating DP operation stage. In this thesis, the main focus would be on the moored

DP operation stage because it is the stage with core importance and the stage within which the

most DP incidents happen.

8

Figure 2-2 Sketches of operational stages of a topside installation on a jacket heavy lift operation[11]

Ideally, during moored DP operation stage, the vessel position is usually chosen where the

heavy lift vessel’s crane tip is right above the jacket and the connecting wires between the load

and the crane are vertical. When the crane tip is right above the load, the horizontal component

of the wire force is 0. Yet with the influence of the environmental load, it is impractical for the

vessel to stay in position during the whole operation. When the vessel responds to the

environmental load, the position of the crane tip will also move due to the movements of the

vessel itself. The crane wires could not keep vertical anymore and thus produces horizontal

force, which is shown in figure 2-3. This horizontal force can have an influence on the longitude

and latitude movements of the vessel and could thus lead to a collision between the vessel and

the platform if it’s not controlled well. As during this operation, the vessel can be seen as

moored to the platform, the whole heavy lifting vessel can thus be seen as a mooring system.

Figure 2-3 Horizontal force during heavy lift operations

Although the system can be seen as a mooring system, the problem is different from normal

PM or DP problems. We can define it as a heavy lift mooring problem. The heavy lift mooring

system without DP system can be seen as a mass-spring-damping system.

During moored DP stage, the mass-spring-damping system can be sketched as figure 2-4.

9

Figure 2-4 DP mooring system

In figure 2-4, R refers to the restoring stiffness provided by the crane wires. G refers to the

value of DP restoring. One observance in [12] shows that the instability occurs when the

additional restoring from mooring lines exceed the DP restoring.

The features of the heavy lift mooring system are:

- The vessel can be seen as moored to the platform with a changing mooring force.

Once after the heavy load is put on to the platform, the load and the platform can be seen as a

whole and the vessel can be seen as moored to the load which is on top of a platform. The

‘mooring force’ is changing due to two reasons: Firstly, the load is translating to the platform

so the vertical components of forces in the wires are decreasing. Secondly, the oscillation of

the vessel makes the horizontal components of forces changing rapidly. The decreasing of the

load is of no big problem. However, the changing of the forces is the source of the oscillation.

- The environmental load gives offset to the vessel.

During heavy lift operation, it is not possible to make the vessel stay absolutely stable in the

current and wave and wind. With the moving of the vessel’s crane tip, the crane force would

change.

- The external force from the wires of the crane is not modeled in the dynamic positioning

control system.

During heavy lift operation, the external force in the wires is not modeled because the DP

control system is not made for such system with mooring forces. Furthermore, the mooring

force is not only changing during time, but also changing with the vessel’s offset to the setpoint

position which makes the force difficult to be modeled.

One question that must be considered is that: Why is there a possibility that a heavy lift vessel

with a PID controller can be unstable during offloading?

The reason for that could be found by looking into the control system:

- The poor performance of the observer

Simulations show that the Kalman filter has a slight phase lag during heavy lift moored stage.

Even though the position estimation is quite accurate, the velocity estimator is only

approximately 1/5 of the true velocity with a phase lag of 13 degrees.[11] The reason for this

is that the current Kalman filter is made with linear model of the original vessel which is not

suitable for the vessel model during heavy lift operation. The model of the crane force is not

included in the Kalman filter.

10

It has also been proven that the improvement of the Kalman filter makes the whole DP system

more stable during heavy lift operations.[11]

- The controller is made for normal vessel systems

The currently widely used DP controller is a model-based PID controller. This controller is also

a linear controller which is made for normal DP phase. During heavy lift operation, the heavy

lift mooring system is not considered in this model. Thus the PID controller is also not working

well in DP operations.

In a word, the heavy lift vessel model for heavy lift operation is a model with crane force which

is of profound difference from the linear control plant model widely used in dynamic

positioning control systems in maritime industry nowadays.

The model now contains damping and mass produced by the crane load. Furthermore, the

transition between the vessel-fixed body frame and the load-fixed body frame makes the kinetic

formula different from a nominal vessel model. Thus, new challenges and faults may emerge

during heavy lifting operation when using Kalman filter and PID controller which are only

designed for vessels’ daily normal operation. With a small disturbance, the position of the

vessel might begin to oscillate and become unstable under the effect of superposition of DP

force and crane force.

Current Solutions In this section, current solutions to the problem are shown to the reader. The solutions are

divided into two aspects: industry solutions and theoretical solutions. First the solutions in

industry are shown. After that, the solutions in theory are described.

2.2.1 Current Solutions in Practice

There are mainly two current solutions in practice, ZGA (Zero Gain Area) and hiring DPOs

with more experience on heavy lift operations.

One of the dynamic positioning companies designed a special mode for heavy lift. The heavy

lift mode is divided into two parts, Zero Gain Area and additional damping.

The principle behind the Zero Gain Area is that during heavy lift operations, the vessel is

moored to a platform and the position of the heavy lift vessel is therefore determined by the

crane other than the DP system. During the last part of the set-down phase of the lift, the crane

boom is boomed down, thus the vessel is always boomed out of the platform, which is shown

in figure 2-5. That is to say, the clearance between the vessel and the platform will increase

because of the booming down of the crane boom.

11

Figure 2-5Boom down of the crane

If the vessel is using the normal DP mode during the heavy lift operation, the DP system would

perform incorrectly due to the incorrect model it has. Eventually, it may cause a collision

between the vessel and the platform. In order to prevent this from happening, Zero Gain Area

makes it possible for the DP system to accept the vessel’s position as it was and to move the

vessel back to the set point only when the zero gain mode is switched off, or when the vessel

moves outside of the zero gain area.

Inside the Zero Gain Area, The proportional part of the PID controller is automatically set to

zero so that the DP controller will not compensate for position deviations. But the integration

part is frozen and derivative part of the controller is still working. The whole controller now

instead of trying to keep the vessel in the same position, it is trying to keep the vessel with a

velocity of zero within the ZGA. In this case, the proportional part of the controller will not add

the force the same direction as the force in the crane wire and this will prevent the vessel from

oscillating.

In addition to the Zero Gain Area, additional damping can be activated during the heavy lift

operation with a purpose to reduce the vessel motion and help the vessel to stay still in a shorter

time. Furthermore, the current estimation of the controller and observer is frozen during the

heavy lift operation mode.

This solution of industry is helpful in many situations but it also has drawbacks:

- The additional damping can cause large oscillation because of the probable phase delay.

During the heavy lift operations, the estimated velocity of the vessel can be delayed. The

additional damping can reduce the damping of the crane vessel other than add to it

12

depending on the phase lag.

- The additional damping can be ‘unfriendly’ with the propulsion system. To add to the

damping, the propellers have to work ‘violently’ to keep the vessel in position. This may

cause wear and tear of the propulsion systems.

- Zero Gain Area is defined by the DPO and there is possibility that the vessel sails out of

the area. Once this happens, the normal DP system will start working and provide big forces

trying to position the vessel. One of the DP companies gives out a solution to this problem,

which is to stretch the Zero Gain Area or to change the position setpoint to the current

location of the vessel.

- Once the environment changes rapidly, it would be dangerous to use Zero Gain Area

because the estimated current and wind would be different from the actual current and wind

because the current and I-action are frozen when the DP heavy lift mode is on. The DP-

current build up is slow, and that the weather conditions might change within the 30 minutes’

operations, time for building up might not be sufficient, as the vessel is still close to the

platform after finishing the load decrease.

There are also some DPOs who manually change the settings of the DP system instead of using

the heavy lift mode.

Train the operators to operate differently from normal DP operation is also a solution:

- Do not attempt to dampen oscillations unless it is necessary to do so.

- If it is necessary to dampen the oscillations, apply the thrust away from the aim position at

the peak of an oscillation or reduce the P value.

- To change the mean position of the vessel, adjust the joystick position to apply a different

thrust and leave it constant. [13]

After all, what we want from a DP system is to keep position of the vessel rather than let it be.

We want more certainty and less manual work to gain safety during the heavy lift operations.

2.2.2 Current Solution in Theory

One of the solutions proposed by is to directly use force feedforward in the controller. The

solution turned out to be good both in simulation and in tank. However, it is not applicable in a

real heavy lift vessel because of two reasons. First, the thrusters are not fast enough to keep

pace with the control output. Second, in reality, it is difficult to estimate the accurately

feedforward forces.

A Kalman filter solution was proposed by F. Bakker. In this solution, the crane force was

directly fed to the Kalman filter. The outcome of the solution is quite good. However, there’s a

major drawback in this solution. The crane model used in the simulation model is exactly the

same as the crane model used to estimate the crane force. In this solution, no theoretical

robustness was taken into account and no changes were made to the models of the observer and

the controller.[11]

All current solutions mentioned are based on the original Kalman filter and the original PID

controller. A more robust system would be preferred to be designed to ‘solve’ the problem other

than work around it.

Conclusion The dynamic positioning system is not made for heavy lift vessels during heavy lift operations.

When the vessel is doing heavy lift operation, the vessel model is different from the free floating

vessel. For most dynamic positioning systems, only free floating vessel model is considered for

13

designing the system. However, this is not enough for a heavy lift vessel. In the next chapter,

the problem will be simulated in Matlab and Simulink.

3 Modelling of the Vessel and Simulation of the Problem In this chapter, the simulation model is presented to the reader. Then simulations with original

DP system is made to reproduce the problem.

Simulation Model There are two models of the vessel used in the simulation. A control plant model is used in the

controller and the observer. A process plant model is used to simulate the vessel itself. Here in

this report only control plant model is present. The model of the vessel is provided by RH

Marine and is a gray box to the author.

It is assumed that the model of the vessel is a perfect model. An extra force was added to the

models which represents the crane force and moments.

3.1.1 Reference Frames

There are two kinds of reference frames in the dynamic positioning system. Global frame and

body-fixed frame. Here in this thesis only three reference frames are used.

Figure 3-1 Reference Frames 1. NED

The origin of the North-East-Down coordinate system is defined relative to the reference

ellipsoid of the earth. The NED system has its x axis point to the true north and the y axis point

to the true east. The coordinates of the vessel in the NED system are calculated using latitude

and longitude.

2. Body-fixed Reference Frame

14

Figure 3-2 Body-Fixed Reference

The body-fixed reference system has its origin fixed on the vessel (Normally the center of

gravity). The x, y, z axis point towards bow, starboard and down.

3. Geographic coordinate system

A geographic coordinate system is a coordinate system that enables every location on the Earth

to be specified by a set of numbers or letters, or symbols. The coordinates are often chosen such

that one of the numbers represents vertical position, and two or three of the numbers represent

horizontal position. A common choice of coordinates is latitude, longitude and elevation.

3.1.2 Low Frequency Vessel Model

For a vessel with DP it is common to consider only surge, sway and yaw motion.[9] Denote the

control forces and moments in surge sway and yaw by 𝝉, the nonlinear low speed vessel model

can be written:

𝐌�̇� + 𝑫𝒗 = 𝝉 + 𝑱𝑻(𝜓)𝒃 1

�̇� = 𝑱(𝜓)𝒗 2

𝐌 is the speed dependent inertia matrix, 𝑫 is the damping matrix, 𝝉 is the control forces and

moments in surge sway and yaw directions. 𝒃 is the slowly-varying bias term due to wind,

current and wave drift forces. 𝑱(𝜓) is the rotation matrix. 𝒗 is the velocity of the vessel in

body-fixed frame.

15

The details of the vessel model and the crane model used in this report are described in Bakker’s

thesis.[11]

Simulation of the Heavy Lift Mooring Problem In this section, simulations are performed under seastate 0 and seastate 3. There’s

environmental load coming from 330 degrees. In the rest of this thesis, the environmental load

is always coming from that direction if there’s no special statement. Each stage of the

simulation is shown in table 3-1:

Table 3-1 Stages of Simulation Phase 1 2 3 4 5

Time 0 - 330s 330s - 825s 825s - 2310s 2310s - 2706s 2706s - 3300s

Vessel Status The vessel is

attached to

the load.

There will be

hoist forces if

the cranetip

moves and

the crane

wires stretch.

Loading. Loading

almost

finished.

There is force

in the crane

and the load

is still

attached to

the platform.

Offloading. The vessel is

disconnected

from the load.

It’s free

floating. The

crane wires

are slack.

The simulation condition is shown in table 3-2:

Table 3-2 Simulation Condition for Different Seastate

Seastate Wind Speed (m/s) Significant Wave

Height (m)

Peak Wave Period

(s)

0 0 0.0 1.0

3 13 0.9 7.5

6 27 4.1 10.6

The result with the original DP system is shown below in 3.2.1 and 3.2.2:

16

3.2.1 Under Seastate 0

Figure 3-3 Trace Plot inder Seastate 0 Original DP System

Figure 3-4 Surge Position under Seastate 0 Original System

17

Figure 3-5 Sway Position under Seastate 0 Original System

Figures 3-3 to 3-5 show the position of the vessel controlled by the original DP control system

(with no solution). The green line is the position when the vessel hit the platform. From the

figures above, one can say that in the first two phase, the vessel is stable. However due to the

pitch angle produced by the crane load, the vessel is moving to the bow in the second phase

and is oscillating in the third and forth phase. Then in the last phase, there is a sudden offset

and the vessel hit the platform.

The sway position, however, is quite stable under seastate 0.

To find out the influence by the environmental load, another simulation is taken out under

seastate 3, which is shown in part 3.2.2.

18

3.2.2 Under Seastate 3

Figure 3-6 Position of the Vessel in NED without Solution under Seastate 3

Figure 3-7 Surge Position under Seastate 3 Original System

19

Figure 3-8 Sway Position under Seastate 3 Original System

The surge movement under seastate 3 is similar to the surge movement under seastate 0. Except

for that in phase 2 and 3, the vessel in seastate 3 has slightly bigger amplitude than in seastate0.

At the end of phase four and the beginning of phase five, the vessel moves to the opposite

direction from the desired position due to the wrong estimation of the velocity. The error

increased to approx. five meters within about 20 seconds. This caused collision in this case.

The result is clear that the DP system in the surge, sway and yaw directions is having a sudden

offset when the wires are disconnecting from the load. In sway and yaw directions, this could

be just some offset. But in surge direction, this mean collision could happen. This is why surge

direction is so important in this case. However for vessels with cranes on the starboard or

portside, the case is different.

The surge error, which is up to five meters, is the biggest hazard found from this simulation.

Normally when a heavy lift vessel is doing its operation on the sea, the clearance between the

vessel and the platform is about 5 meters. During this case, the vessel has its crane on the aft.

An error of -5 meters in the surge will cause the collision between the vessel and the platform.

In the rest of the thesis, the writer will focus on the surge direction to solve the problem in the

surge direction. However, in practice, this could be different. For example, movement in the

sway direction is of the most important to a vessel with crane on the starboard. With this certain

vessel model, crane is chosen at the aft because the vessel has a slim shape and crane on the aft

is of most stable.

3.2.3 With Setpoint Changed

Another simulation is made with adapted setpoint. In the figure 3-3 to figure 3-8, the vessel has

a constant error is the 3rd phase. This is because of the pitch angle caused by the crane load. The

reference point is then chosen at the cranetip and the setpoint is recalculated. The result of the

vessel movement in surge direction is shown in figure 3-9 and 3-10.

20

Figure 3-9 Under Seastae 0 with Setpoint Change

Figure 3-10 Under Seastate 3 with Setpoint Changed Figure 3-9 has a better performance than figure 3-10. The changed setpoint has improved the

performance of the DP controller but still the vessel is oscillating in the surge direction in the

3rd simulation phase. This oscillation is growing during time and is getting bigger with heavier

21

environmental load. This oscillation should also be reduced because it is difficult to observe

(due to the low frequency). Even though in this case there is no accident happened, when there’s

complicated operations on the sea, the operation time is longer, accidents could happen.

One good solution should be able to maintain the vessel’s stability during these five phases and

to solve the surge problem in the third, fourth and the fifth phase. It should also be robust

enough so that it can be adapted to a poorly modeled vessel easily.

Conclusion The simulation shows that the vessel has a bad performance during heavy lift operations. This

happened both in the 3rd 4th and 5th stage of the simulation. Instability is cause by the crane load

as well as the environmental load. Surge is the most dangerous direction during heavy lift

operation in the simulation because the vessel has a crane at the aft. Solutions should be

searched to fix the instability. Also a robust solution is to be searched to adapt to an inaccurate

model because the vessel is not easy to be accurately modeled in real life considering the aging

of the crane wires. In the next chapter, solutions will be settled.

4 Possible Solutions and Candidate Solutions While there were several good attempts to solve this problem, none of them actually solved it.

They rather have mitigated the problem.

One good solution should be able to solve the problem as well as be robust and stable both in

theory and in practice. The solutions are proposed in the scope of the DP control system to

fulfill the existing crane vessels by only adapting new DP control system other than change the

structure of the vessel, which makes the solutions adaptive.

This chapter provides several solutions that might solve the heavy lift DP problem. The

solutions are first described then the pros and cons are stated. In the second section, the selected

solutions are presented with reasons why they are selected.

Possible Solutions In figure 6-1, a simplified illustration was shown for a DP system. To find solutions to current

vessels without changing the structures of the heavy lift vessels themselves, the author will

focus on solving the problem in a software point of view, which is the light blue block ‘DP

control system’ in figure 6-1. According to the problem definitions in the third chapter, the

solutions should be able to change the system in such ways:

22

Figure 4-1 DP system

- Improve the observer

Minimum the phase lag and increase the accuracy of the observer to make sure that the

estimated states of the PID controller are close enough to the real states.

- Improve the controller

Improve the robustness of the controller so that the controller can work stable even in case of

inaccurate estimated states. Or one could enclose the crane model in the controller to make it

work better.

- Other solutions

Apart from improving the observer or the controller, the problem can also be solved by

improving the thrust allocator, or change the DP position setpoint. These solutions are classified

to ‘other solutions’ because they do not directly change the observer or the controller.

4.1.1 Improve the Observer

The DP system can be simplified as figure 4-2:

23

Figure 4-2 Improve the Observer

A state observer is a system that provides an estimate of the states of a given real system based

upon the dynamics of the system. In a DP system, an observer has mainly two purposes:

1. Filter out unwanted signals and frequencies, and provide the estimated states.

2. Predict the states when the sensors are not available.

Observers are important in a DP system because the controller needs to know the true states of

the vessel that it needs to react upon, which are provided by the observer.

In this part, an attempt is made to find a solution to the problem by changing/improving the

observer in the DP system by enclosing of the crane model.

The original observer used by RH Marine is a Kalman Filter. Kalman filter, also known as the

linear quadratic estimation (LQE), is an algorithm that uses a series of measurements observed

over time, containing noise (random variations) and other inaccuracies, and produces estimates

of unknown variables that tend to be more precise than those based on a single measurement

alone.

The Kalman filter is a linear observer which is based upon the linearized model of the vessel.

During the heavy lift operation, the vessel is nonlinear with a high frequency big crane force,

24

which is difficult to linearize. Thus using a nonlinear observer such as Extended Kalman Filter

(EKF) or nonlinear passive observer would be better for the system to estimate the nonlinear

model states. Next we’re going to discuss the two different types of observers:

The first possible solution is to make an extended Kalman filter. Extended Kalman Filter is the

nonlinear version of the Kalman filter. When designing the EKF it is convenient to write the

DP observer model as a nonlinear model:

�̇� = 𝒇(𝒙) + 𝑩𝒖 + 𝑬𝒘 3

𝐲 = 𝐇𝐱 + 𝐯 4

Where x is the state vector, u is the control vector; w is the process white noise vector.

Furthermore,

𝐟(𝐱) =

[

𝐀𝐰𝛏

𝐑(𝜓)𝐯𝟎𝟑×𝟏

𝐌−𝟏(−𝐃𝐯 + 𝐑T(𝜓)𝐛)] , 𝐁 = [

𝟎6×3

𝟎3×3

𝟎3×3

𝐌−1

] 5

𝐇 = [𝐂w 𝐈3×3 𝟎3×3 𝟎3×3], 𝐄 = [

𝐄w

𝟎3×3

𝐈3×3

𝐌−1

] 6

The EKF gives an approximation of the estimate.

The non-linearities of the systems’ dynamics are approximated by a linearized version of the

non-linear system model around the last state estimate.

Figure 4-3 Extended Kalman filter dynamic concept

Unlike Kalman filter, the EKF in general is not an optimal estimator; neither is it proven to be

global asymptotic stability when the system is linearized.

If the initial estimate of the states is wrong, or if the process is modeled incorrectly, the filter

may quickly diverge. Another problem with the extended Kalman filter is that the estimated

covariance matrix tends to underestimate the true covariance matrix and therefore risks

becoming inconsistent in the statistical sense without the addition of ‘stabilizing noise’. [14]

25

Given the statement of extended Kalman filter above, it is clear that even though the EKF is for

nonlinear systems, the global stability is not proven and the model required for EKF is of high

quality. Furthermore, tuning the EKF can be difficult. [14] To solute all the mentioned questions,

a nonlinear passive observer can be designed to replace the EKF.

Pros: The extended Kalman filter can provide more accurate estimated states than the present

Kalman filter.

Cons: A large number of parameters has to be tuned. There’s no proof of global exponential

stability.

Another way to improve the observer is to make a nonlinear passive observer. Global

exponential stable of an observer-controller system requires the existence of nonlinear

separation principle and a nonlinear globally stable observer.

In Fossen’s paper, a nonlinear passive observer is proposed with wave filtering properties, bias

state estimation, and reconstruction of the LF motion components and noise-free estimates of

the non-measured vessel velocities. The observer is proven to be passive and globally

exponentially stable. The tuning parameters of the observer are significantly reduced and the

wave filter parameters are directly coupled to the dominating wave frequency.[15]

The equations for the nonlinear passive observer are:

�̇̂� = 𝐀𝑤�̂� + 𝐊1(ω0)�̃� 7

�̇̂� = 𝐑(y3)�̃� + 𝐊2�̃� 8

�̇̂� = −𝐓−1�̂� + 𝐊3�̃� 9

𝐌�̇̂� = −𝐃�̂� + 𝐑𝑇(y3)�̂� + 𝛕 + 𝐑𝑇(y3)𝐊4�̃� 10

�̂� = �̂� + 𝐂𝑤�̂� 11

The first equation stands for the wave model. The second equation is the kinematics equation.

The third one is the bias equation. The forth is the dynamics equation. The last one stands for

the measurement of vessel position and vessel velocity. The gains in the equations should be

chosen such that the error dynamics is passive and GES.[15]

Pros: The parameters to be tuned are much less than an EKF.

Cons: The performance of nonlinear passive observer is not as good as an EKF as proven in

lab.

Both EKF and nonlinear passive filter are made for nonlinear models and can produce better

performance than nominal Kalman filter with the state estimating and filtering. The differences

in the modelling of the two observers also make them two quite different observers.

Firstly, the EKF is not global exponential stable but the nonlinear passive filter is. Secondly,

it’s difficult and time-consuming to tune the EKF (stochastic system with 15 states and 120

covariance equations). The main reason for this is that the tuning parameters may be difficult

26

to relate to physical quantities. The number of tuning for passive nonlinear observer is

minimized by using passivity theory.[15]

A load estimator can be made additional to the Kalman filter to estimate the crane load. The

crane load is an important part in the modeling of the heavy lift mooring problem. However,

no estimators for crane load are made now. In current solutions, crane forces are either

neglected or used directly as a feedforward force. With a crane load estimator, the undesired

changing of the crane load can be filtered out to improve the DP system.

One way of making the load estimator is to use Neural network in combination with

backstepping are already proven to be useful to estimate unknown parameters or functions.[16]

In this solution, the crane load will be estimated and then the forces caused by the load to the

vessel will be calculated and added to the original Kalman filter, which is similar to Kalman

solution in Fabian’s thesis.

In Fabian’s thesis, a feedforward force vector is fed to the Kalman filter and it turns out to be a

solution with a good outcome. However, this solution of F. Bakker has a significant drawback:

the calculation of the crane force that fed to the Kalman filter is exactly the same as the crane

model made by him.

This indicates an assumption that the forces are known perfectly, which in practice, is never

true. However, it would be difficult to calculate the forces as the dynamics of the crane is

complicated and that the more precise the calculation is, the more lag the observer may produce

due to the longer calculation time.

The main idea of this solution is to use neural network with backstepping to estimate the

changing heavy load online. The outcome of the Kalman filter with a backstepping feed might

not be exactly the same as the true states values, but would be a lot better than the original

Kalman filter.[16]

The acquired theory for this solution includes: neural network, backstepping, Lyapunov

stability.

Pros: Self-study neural network can be adaptive to changing models.

Cons: It takes time to adapt. It also would be delayed in a real time system. The result strongly

depends upon the number of neurons used in the neural network.

Kalman filter can also be used as a crane load estimator. Kalman filter is the optimal observer.

When all noise is Gaussian, the Kalman filter minimizes the mean square error of the estimated

parameters. It is the best linear estimator which is widely used in industry. Comparing to neural

network, Kalman filter gives out estimated states which are more accurate.

Kalman filter can be used to estimate the force in the crane. In one of the final solutions, Kalman

filter is used to make a load estimator.

Pros: Good performance and widely accepted by industries.

27

4.1.2 Improve the controller

The controller plays an important role in the DP system. It ‘calculates’ the desired forces and

moments the vessel needs to stay in position and to hold the heading. The current PID controller

is not robust enough to work under heavy lift moored stage. One direction of solving the

problem could be improving the robustness of the controller. Next, two examples of possible

controllers are presented and described.

Figure 4-4 Improve the Controller

The first possible solution for the controller is to make an H-infinity robust controller. Robust

control makes it possible for the system to work stable even if the estimated states are not

exactly the same as the true states or with a bad control plant model. There are many approaches

to robust control. A robust controller can be achieved by using optimal approach, Kharitonov

approach and H2/H-infinity approach. [17]

By using the optimal approach, one can turn a robust control problem into an optimal control

problem. The reason why the optimal approach is not used in this thesis is because the

uncertainty of the system is partly unknown to the designer. Kharitonov theorem is a very useful

tool for robust stability analysis. However, it is not a convenient tool for robust control system

design. To design a robust control system with Kharitonov approach, one should not only know

the transfer function of the system, but also the uncertainty of each parameter.

By using H-infinity approach, the model to be controlled is divided into two parts, a nominal

model and a modelling uncertainty.

28

Figure 4-5 H-infinity control theory (http://scilab.ninja/h-infinity-synthesis-with-scilab-part-i-problem-setup/)

The plant has two inputs, the exogenous input w, that includes reference signal and disturbances,

and the manipulated variables u. There are two outputs, the error signals z that need to be

minimized and the measured variables v.

It has been proven that the H-infinity method can be used on DP systems with a good

outcome.[18] Furthermore, it is easy to obtain an H-infinity robust controller by software such

as Matlab.[17]

In the case of heavy lift vessel, two applications can be approached by using the method of H-

infinity. Firstly, the dynamics that provided by crane wires can be seen as the disturbances.

Secondly, the dynamics that provided by crane wires can be modeled and the estimated errors

will be seen as the disturbances.

There are two ways to approach an H-infinity controller:

A Youla-Kucera parametrization of the closed loop often leads to very high-order controller.

Riccati-based approaches solve 2 Riccati equations to find the controller, but require several

simplifying assumptions.An optimization-based reformulation of the Riccati equation uses

linear matrix inequalities and requires fewer assumptions.

Pros: H-infinity method is robust and it is already studied as a method on board. It is also giving

quantification to the robustness and stability for the defined uncertainties.

Cons: There is no guarantee that the H-infinity approach is able to cover all possible uncertainty.

In other words, the H-infinity approach cannot guarantee the robustness of the resulting

controller. However, the H-infinity approach will do its best to make the resulting controller

robust. Whether this is robust enough or not depends on the nature of the uncertainty.[17]

Another possible solution is to make a fuzzy PID controller. Although PID controller has not

been proven to be robust in mathematics, it has proven itself to be robust enough in practice.

For decades, the PID controllers are used in industries and are working stably and robustly.

29

Industry’s ZGA solution has already shown that reducing the P value and increasing the

damping are two applicable solutions for this problem. However, by doing it manually, more

risk could occur. One way to reduce such risk is to make the PID controller self-tuned.

Fuzzy control solution is then proposed to tune the PID controller automatically during the

mooring stage of the heavy lift operation.

The main idea for fuzzy control is to reduce the proportional value of the PID when the vessel

is moored to the platform by the crane wires. First the P value is significantly reduced and

would act inversely proportional to the force of the crane. As soon as the load is completely put

to the platform, the P value would become the normal value. The tuning of I value and D value

is under consideration.

The fuzzy control solution must work together with a stiffness estimator so that the tuning could

be done with the change of the estimated mooring stiffness.

Pros: There are no significant changes to the original system. All that should be done is to add

a self-tuning system with fuzzy control method.

Cons: The resulting performance depends on the load estimator and there’s no proof of

robustness.

Smart feedforward is also an option. The feedforward solution by Marin turns out to be good

in theory. However, when it comes to the practical use, the problem occurs. The fast fluctuating

crane forces have a higher frequency than the highest frequency that the thrusters could reach.

Even though the feedforward works well in a tank with a ship model which has thrusters in

good situation, the solution could not work well on a normal heavy lift vessel. For a normal

heavy lift vessel, it takes about 20 seconds to reach the biggest power from 0. Direct

feedforward for fluctuating forces therefore is not applicable in industry.

However, this does not mean that feedforward is completely not applicable. If one can find a

way that makes the feedforward force less fluctuating which could work perfectly with the

thrusters and could produce the same amount of energy needed to stop the oscillation, then the

feedforward would be seen as applicable.

The energy conservation law could be used to calculate the feedforward forces.

Pros: Little changes to the original system. Can be fast applied and response to the changing of

crane forces fast.

Cons: Feedforward (except for wind feedforward) is not widely accepted in industry. If the

forces cannot be react fast enough, it could lead to more serious oscillation.

As an auxiliary solution, AGC can be used. AGC stands for Automatic gain control. In

Amerongen, van der Klugt and van Nauta Lemke’s paper, an AGC approach is used to reduce

the phase lag of the rudder during automatic control of the rudder. [19] In the figure below, u

is the controller output and δ𝑔 is the actuator input. A maximum detector is used in this

approach to determine the input of the actuator. The procedure of this method is simple: detect

if the changing of the controller output is bigger than the maximum response speed of the

actuator. If the actuator can follow the controller output, then no changes should be made. If

30

the actuator cannot follow the controller output, then reduce the input to the actuator by

multiplying a constant smaller than one to make sure the phase lag of the actuator is minimized.

Figure 4-6 an automatic gain controller

During heavy lift operation, one of the main problems is that the thrusters fail to follow the

controller. By applying AGC, the controller would still not be able to follow the controller but

the phase lag produced by the controller will be reduced. Thus the AGC would be a good

assistant solution to the problem.

Pros: Reduce the phase lag efficiently.

Cons: After the phase lag is reduced, the desired output also would be reduced. Thus the forces

and moments provided by the thrusters would be less than needed.

4.1.3 Other Solutions

In this part, three solutions are presented. None of these solutions mean to change the current

DP controller or observer.

Thruster allocators are used in DP systems in series with the controllers to compute desired

force each thruster must produce. The schematic overview for thruster allocation is shown in

figure 6-7:

Figure 4-7 Control Allocation

31

The controller has an output of required surge, sway and yaw forces/moment, the thruster

allocator is to allocate the forces and moment to each thrusters as shown in figure 6-8.

Figure 4-8 Thrust Allocator

Where τ is the vector of forces and moments calculated by the controller; u is the actuator

demands for each thruster; v is the velocity of the vessel; η is the position of the vessel.

Currently, most thruster allocation algorithms are calculated to minimize the thrust used or to

maximize the effect. However, in heavy lift operations, the biggest problem is neither the

economic nor the effect of the thrusters. In heavy lift operation, the external forces are changing

rapidly. To make the thrusters cooperate with the fluctuating forces, a new time-optimal thruster

allocation algorithm could be designed for the thrusters with a minimum reaction time.

Pros: With a new thrust allocation algorithm, the thrust allocator can react to the fluctuating

input to make sure the phase lag is small.

Cons: The thrust allocation solution can be not economical friendly and acquire more fuel than

the normal allocation algorithm. This method can be effective when there are enough thrusters.

Furthermore, with a wrong input, the thrust allocator can not give out a correct output.

The control of the crane has always been an interesting subject. However, not all types of cranes

are controllable.

One thing that must be in mind is that the load is partly on the platform and any changes of the

crane might lead to a large change in the load of the crane wires, which makes it more difficult

to control the crane. Another drawback is that the crane wires can never be absolutely vertical.

The horizontal force, therefore, cannot be diminished completely.

Pros: The original DP system can be kept.

32

Cons: There is not enough existing power on board to control the crane.

Normally, during heavy lift operation, when the vessel is at the setpoint, its crane tip is right

above the hook on the load, which is also the equilibrium position if the crane wires are seen as

springs.

The idea is to move the setpoint a little further from the original setpoint, thus away from the

equilibrium position. Therefore the vessel will always have a force from the wires at the setpoint

and will move away from the setpoint. Eventually the vessel would stop at another equilibrium

position where the force from the DP system and the force of crane are counterweighed.

By adapting another DP position setpoint, one can reduce the probablility of the collision

between the vessel and the platform. Even though the problem is not fully solved, the

probability of accidents is reduced.

Pros: Can be adapted simply on board without any other changes to the original system or the

vessel.

Cons: The vessel would drift during the mooring operation process because the load is

decreasing. The setpoint should be chosen wisely otherwise the performance of the system

might become even worse with larger oscillation. Furthermore, the fuel consumption will be

higher during the heavy lift operation as the thrusters are always working to counterweight the

crane force.

Candidate Solutions First, comparisons are made in this chapter to find out the best solutions for further study. After

analyzing and comparing, three solutions stand out and will be studied in the following phase

of the DP heavy lift project.

From the work that has been done and the feedback from the industry, it is clear that crane force

is difficult to measure precisely. In addition, a feedforward solution might be difficult to fit the

propulsion system because the forces are fluctuating and the thrusters are usually not fast

enough. Thus feedforward is no longer considered. Furthermore, EKF has been proven to be

worse than nonlinear passive filter both in tuning and in stability. The control of crane requires

a lot of extra force, which would change the layout of the engine room and cause extra cost.

The setpoint solution is mitigating the problem rather than really solving it. The effect of the

time-optimal thrust allocation algorithm solution is unknown and is relied a lot on the thruster

configuration. Apart from these solutions, there are only three solutions left.

4.2.1 Load estimator with a fuzzy controller

This solution is similar to the idea of ZGA. The main idea is to linearize the vessel model around

several mooring stiffness values and change the parameter values during the moored operation

stage.

However, this solution is much smarter than the ZGA and can help the DP system works more

smoothly than in a ZGA. The reason for it is that the fuzzy controller gives a smoothly changed

P, I and D value during the operation.

33

Figure 4-9 Load Estimator with a Fuzzy Controller

4.2.2 Nonlinear passive observer

In this solution, the linear Kalman filter is changed into a nonlinear passive observer with a

crane model to give out better estimated states. The reason why a nonlinear passive observer is

used instead of using a standalone load observer is that this could also help improving DP

performance in other operation stages without change to another DP mode.

4.2.3 H-infinity controller

H-infinity controller has been studied since 1981 by G. Zames. At the end of last century, it has

been studied as a robust controller in dynamic positioning by T. I. Fossen. By using an H-

infinity controller, the error signals are minimized. Even though there’s no proof that the H-

infinity controller would cover all the possible uncertainty, the outstanding results from earlier

study by Katebi, Grimble and Zhang indicate that there’s worth a try. To reduce the input

uncertainty, one can combine the H-infinity solution with an observer solution.

4.2.4 Auxiliary solution: AGC

The same methods of AGC could be used in the reduction of phase lag of the thrusters. The

AGC method could be used as an auxiliary solution.

This is a step forward in the current DP industry and heavy lift industry as there were no current

automatic solutions especially made for heavy lift mooring models.

Conclusion The original dynamic positioning system does not have a good observer or a good controller.

So solutions are mainly searched in this two aspects. To improve the observer, nonlinear passive

observer will be implemented for it is theoretically stable and it is also easy to be tuned. To

improve the controller, fuzzy controller will be implemented because it can fulfill the stability

of the dynamic positioning control system even when the vessel model changes. These two

solutions are all easy to be adapted to the original system. Another solution is accessed to

replace both the observer and the controller, which is the H-infinity controller. H-infinity

controller is proven to be theoretical robust. The robustness of fuzzy controller and nonlinear

passive observer will be tested in Chapter 6 while the robustness of H-infinity controller will

be proven in Chapter 5. In the next chapter, solutions will be introduced in detail.

Hoist ForceFuzzy

AlgorithmPID Controller

34

5 Implementation of Candidate Solutions In this chapter, the candidate solutions are described and applied. The basic theory of each

candidate solution is present in the form of formulas.

Fuzzy PID Controller This section is about fuzzy PID controller. First the load estimator for the fuzzy controller is

present, then the controller algorithm is shown to the reader.

5.1.1 Calculations of mooring stiffness

Figure 5-1 Crane Vessel Model

If the damping of the wires is neglected, (it can be neglected comparing to the force produced

by the stiffness of the wires)

𝐹ℎ𝑜𝑖𝑠𝑡 = 𝑘0(𝑙ℎ𝑜𝑖𝑠𝑡 − 𝑙0) 12

Only the hoist wires are considered then,

sin 𝛾𝑣𝑒𝑠𝑠𝑒𝑙 =√Δ𝑥2+Δ𝑦2

𝑙ℎ𝑜𝑖𝑠𝑡 13

Where 𝛾𝑣𝑒𝑠𝑠𝑒𝑙 is the angle between the crane wires and the vertical down axis. Δ𝑥 is the

distance between the crane tip and the hook position in x direction (heading direction). Δ𝑦 is

the distance between the crane tip and the hook position in y direction (starboard direction).

Assume that 𝐹ℎ𝑜𝑟𝑖𝑧𝑜𝑛 is the horizontal force provided by the crane wires, then

𝐹ℎ𝑜𝑟𝑖𝑧𝑜𝑛 = 𝐹ℎ𝑜𝑖𝑠𝑡 sin 𝛾𝑣𝑒𝑠𝑠𝑒𝑙 14

𝑙ℎ𝑜𝑖𝑠𝑡

𝛾𝑣𝑒𝑠𝑠𝑒𝑙

35

𝐹ℎ𝑜𝑟𝑖𝑧𝑜𝑛 = 𝑘0(𝑙ℎ𝑜𝑖𝑠𝑡 − 𝑙0)√Δ𝑥2+Δ𝑦2

𝑙ℎ𝑜𝑖𝑠𝑡 15

Mooring stiffness k is defined as:

𝑘 =𝐹ℎ𝑜𝑟𝑖𝑧𝑜𝑛

√Δ𝑥2+Δ𝑦2 16

Then:

𝑘 =𝑘0(𝑙ℎ𝑜𝑖𝑠𝑡−𝑙0)

𝑙ℎ𝑜𝑖𝑠𝑡 17

𝑘 =𝑘0𝐹ℎ𝑜𝑖𝑠𝑡

𝐹ℎ𝑜𝑖𝑠𝑡+𝑘0𝑙0 18

1

𝑘= 𝑙0 ∙

1

𝐹ℎ𝑜𝑖𝑠𝑡+

1

𝑘0 19

Fℎ𝑜𝑖𝑠𝑡 (N) is the force in the crane hoist.

𝑘0 (N/m) is the stiffness of the crane wires.

𝑙ℎ𝑜𝑖𝑠𝑡 (m) is the length of the hoist.

𝑙0 (m) is the initial length of the hoist when the wires are slack.

To show the relationship between k and F_hoist in a plot, the following numbers are taken:

𝑘0 = 1.1784𝑒 + 10

𝑙0 = 70 [11]

36

Figure 5-2Mooring Stiffness Curve with the Increasing of Force on Crane

The figure above shows that when the load is heavy, the relation between the hoist force and

the mooring stiffness in horizontal plane is approximately linear.

From the equation above, it is known to the reader that:

𝑘 =𝑘0𝐹ℎ𝑜𝑖𝑠𝑡

𝐹ℎ𝑜𝑖𝑠𝑡+𝑘0𝑙0 20

𝑘 =𝑘0

1+𝑘0𝑙0

𝐹ℎ𝑜𝑖𝑠𝑡

21

The part 𝑘0𝑙0

𝐹ℎ𝑜𝑖𝑠𝑡 is much bigger than 1, thus:

𝑘 =𝑘0

1+𝑘0𝑙0

𝐹ℎ𝑜𝑖𝑠𝑡

22

𝑘 ≈𝑘0

𝑘0𝑙0𝐹ℎ𝑜𝑖𝑠𝑡

=𝐹ℎ𝑜𝑖𝑠𝑡

𝑙0 23

The mooring stiffness is approximately linear to the hoist force.

Corresponding mooring stiffness in surge and sway:

𝑘𝑠𝑢𝑟𝑔𝑒 = 𝑘 ∙ |𝑠𝑖𝑛𝛾𝑠ℎ𝑖𝑝𝑐𝑜𝑠𝛿𝑠ℎ𝑖𝑝| 24

𝑘𝑠𝑤𝑎𝑦 = 𝑘 ∙ |𝑠𝑖𝑛𝛾𝑠ℎ𝑖𝑝𝑠𝑖𝑛𝛿𝑠ℎ𝑖𝑝| 25

37

Moment induced by the crane wires on the vessel:

𝑴 = 𝑭ℎ𝑜𝑖𝑠𝑡𝑠𝑤𝑎𝑦 ∙ 𝒑𝒐𝒔𝑐𝑟𝑎𝑛𝑒𝑡𝑖𝑝 26

From the figure above and the scope in Simulink it can be concluded that:

The largest stiffness in horizontal direction is approximately proportional with the load. The

biggest stiffness in x direction is also approximately proportional with the load. The biggest

stiffness in y direction is increasing with the increase of the load, but not linearly. The yaw

moment and movement is not in a regular pattern.

Because the surge and sway movement of the vessel during loading and offloading can be

described and observed as a result of the external force which includes the force induced by the

crane wires, the fuzzy PID controller can be used in both surge and sway directions. The yaw

direction, however, is much more complicated. It is affected by the vessel shape and the surge

sway forces, and will be neglected in this report.

The fuzzy logic will be made to tune the PID values of the original PID controller. The details

will be presented later in this chapter.

5.1.2 Load estimator

To make the self-tuned fuzzy controller, the load should be known. Thus a load estimator should

first be designed. The estimated load is then used to calculate the estimated mooring stiffness.

�̂� =𝑘0�̂�ℎ𝑜𝑖𝑠𝑡

�̂�ℎ𝑜𝑖𝑠𝑡+𝑘0𝑙0 27

To access the estimated crane load, a Kalman filter is used. The basic principle behind the

Kalman filter is shown in the figure below.

Figure 5-3 Kalman Filter for the Crane Load

- +

38

The modeling of the crane wires can be found in Bakker’s master thesis[11]. There are two

parts in the crane force, one is the force produced by hoist stiffness and the other one is the

force produced by the linear viscous damping factor. However, in this Kalman filter, the

damping part is neglected because it only counts for approximately 1% of the total hoist force.

The sensor noise is simulated with a band-limited white noise. It is set with a noise power of

5E11 with a sample time of 0.1s and a random seed. The comparison between the real force

and the measured force is as below:

Figure 5-4 Real Hoist Force and Measured Force

The red curve stands for the real hoist force during a lifting operation and the yellow curve

stands for the measurement from the sensor. From the graph above, it can be implied that the

real hoist force is also oscillating all the time because of the fluctuating roll and pitch angle.

This is not desired as the input of the fuzzy logic.

To obtain smoothly changing PID values from a smooth changing mooring stiffness, this fast

oscillation need to be avoided. Thus the Kalman filter is designed to give out smoother curve

than the real hoist force other than give out the exact hoist curve. A lowpass filter is added at

the output of the Kalman filter to fulfill this goal.

The hoist force from the sensor and the filtered hoist force are shown in the figure below.

39

Figure 5-5 Filtered Hoist Force and Measured Force

Now there’s smooth input to the fuzzy logic and next the fuzzy logic is developed.

5.1.3 The fuzzy logic

The original vessel model is:

𝑴�̇� + 𝑪𝒗 + 𝒅(𝜅, 𝒗) + 𝒈(𝜼) = 𝝉𝑒𝑛𝑣 + 𝝉𝑡ℎ𝑟 28

The mathematic model of the moored vessel is:

𝑴′�̇� + 𝑪′𝒗 + 𝒅′(𝜅, 𝒗) + 𝒈(𝜼) = 𝝉𝑒𝑛𝑣 + 𝝉𝑚𝑜𝑜𝑟 + 𝝉𝑡ℎ𝑟 29

Where 𝝉𝑡ℎ𝑟 stands for the force provided by the thrusters. Normally, 𝝉𝑡ℎ𝑟 equals to the output

of the PID controller:

𝝉𝑡ℎ𝑟 = 𝝉𝑝 + 𝝉𝑖 + 𝝉𝑑 30

𝝉𝑝 = 𝒌𝒑Δ𝒙 31

𝝉𝑖 = 𝒌𝒊 ∫Δ𝒙𝑑𝑡 32

𝝉𝑑 = 𝒌𝒅𝑑Δ𝒙

𝑑𝑡 33

𝝉𝑚𝑜𝑜𝑟 is the mooring force provided by the crane wires.

The mooring damping force, which is small enough to be neglected, is not considered here.

𝝉𝑚𝑜𝑜𝑟 = 𝒌𝑚𝑜𝑜𝑟𝑖𝑛𝑔Δ𝒂 34

40

Δ𝒂 is the vector that stands for the offset of the vessel’s center of gravity from its position

setpoint.

Figure 5-6 Vessel offset

Then the mathematic model of the mooring vessel can be shown as:

𝑴′�̇� + 𝑪′𝒗 + 𝒅′(𝜅, 𝒗) + 𝒈′(𝜼) = 𝝉𝑒𝑛𝑣 + (𝒌𝑚𝑜𝑜𝑟𝑖𝑛𝑔 + 𝒌𝒑)Δ𝒂 + 𝒌𝒊 ∫Δ𝒂𝑑𝑡 + 𝒌𝒅𝑑Δ𝒂

𝑑𝑡 35

The equation above will be the starting point for the fuzzy logic.

Assume that the original calculated proportional value for a nominal vessel is 𝑷0 , the

proportional value for the crane vessel is 𝑷. The crane vessel can be seen as equivalent to the

nominal vessel when,

𝑷0 = 𝑷 + 𝒌𝑚𝑜𝑜𝑟𝑖𝑛𝑔 36

𝑷0 = [

𝑃0_𝑠𝑢𝑟𝑔𝑒

𝑃0_𝑠𝑤𝑎𝑦

𝑃0_𝑦𝑎𝑤

] , 𝑷 = [

𝑃𝑠𝑢𝑟𝑔𝑒

𝑃𝑠𝑤𝑎𝑦

𝑃𝑦𝑎𝑤

] 37

The DP system of RH Marine has separate controllers for each degree of freedom. To make it

easy to communicate between matlab and the DP system, the surge and sway directions are

considered separately,

𝑃𝑠𝑢𝑟𝑔𝑒 = 𝑃0_𝑠𝑢𝑟𝑔𝑒 − 𝑘𝑠𝑢𝑟𝑔𝑒 38

𝑃𝑠𝑤𝑎𝑦 = 𝑃0_𝑠𝑤𝑎𝑦 − 𝑘𝑠𝑤𝑎𝑦 39

41

First the surge direction is considered, the Coriolis centripetal term only has influence on the

moment of the vessel so in surge direction:

𝑀′�̇� = 𝜏𝑒𝑛𝑣 + 𝜏𝑚𝑜𝑜𝑟𝑖𝑛𝑔 + 𝜏𝑡ℎ𝑟 − 𝑑′(𝜅, 𝑣) − 𝐶′(𝑣)𝑣 − 𝑔𝑥 40

[�̇��̈�] = [

0 1

0 −𝐶′+𝑑′

𝑀′

] [𝑥�̇�] + [

0𝜏𝑒𝑛𝑣+𝜏𝑚𝑜𝑜𝑟𝑖𝑛𝑔+𝜏𝑡ℎ𝑟−𝑔𝑥

𝑀′

] 41

Where 𝜏𝑡ℎ𝑟 is the forces produced by the thrusters and propellers, 𝜏𝑒𝑛𝑣 + 𝜏𝑚𝑜𝑜𝑟𝑖𝑛𝑔 is the

disturbance from the outside in surge direction.

Because with a PID controller, the forces produced by the thrusters and the propellers can be

seen approximately the same as the output of the PID controller,

𝜏𝑡ℎ𝑟 ≅ 𝑘𝑝Δ𝑥 + 𝑘𝑖 ∫Δ𝑥𝑑𝑡 + 𝑘𝑑𝑑Δ𝑥

𝑑𝑡 42

The mooring damping is neglected and then,

𝜏𝑚𝑜𝑜𝑟𝑖𝑛𝑔 ≅ 𝑘𝑚𝑜𝑜𝑟𝑖𝑛𝑔Δ𝑎 43

Thus the system can be presented as:

𝑀′�̇� + 𝑑′𝑣 + 𝐶′𝑣 + 𝑔𝑥 = 𝜏𝑒𝑛𝑣 − (𝑘𝑚𝑜𝑜𝑟𝑖𝑛𝑔 + 𝑘𝑝)Δ𝑥 − 𝑘𝑖 ∫Δ𝑥𝑑𝑡 − 𝑘𝑑𝑑Δ𝑥

𝑑𝑡 44

5.1.4 Pole Placement Design

To find proper PID values, pole placement is used.

Firstly, the whole simplified system is considered, which includes a controller and a plant.

Below is the system. R(s) stands for the reference position, which is also the desired position

of the vessel. C(s) is the controller. D(s) is the disturbance from the environment and the crane

forces.

G(s) is the plant, which is the vessel in this case. Y(s) is the position of the vessel which has to

be controlled.

Figure 5-7 The Close Loop System

For the PID controller, the transfer function is:

42

𝐶(𝑠) =𝑈(𝑠)

𝐸(𝑠)=

𝐾𝑝𝑠+𝐾𝑖+𝐾𝑑𝑠2

𝑠=

𝑃(𝑠)

𝐿(𝑠) 45

𝑈(𝑠) is the output of the controller, 𝐸(𝑠) is the input to the controller, which is the error

between the set surge state and the true surge state of the vessel.

For the plant (the vessel), the transfer function is:

𝐺(𝑠) =𝑌(𝑠)

𝑈(𝑠)+𝐷(𝑠)=

𝐵0(𝑠)

𝐴0(𝑠)=

1𝑈(𝑠)+𝐷(𝑠)

𝑌(𝑠)

=1

𝑀′𝑠2+(𝑑′+𝐶′)𝑠+𝑔𝑥 46

𝐵0(𝑠) is the output of the vessel, which is the vessel’s surge states in this case.

𝐴0(𝑠) is the input to the vessel, which includes the environmental forces and moments and the

thruster forces and moments.

Assume that

𝐴0(𝑠)𝐿(𝑠) + 𝐵0(𝑠)𝑃(𝑠) = 𝐴𝑐𝑙(𝑠) 47

The equation above is called Diophantine equation after Greek mathematician Diophantus.

The self-tuned PID controller should be stable all the time with the impact of different mooring

stiffness. To be noticed, the ship model is changing during heavy lift operation:

The mass is changing between 16,034,000 kg and 16,304,000 kg. The damping ratio is changing

between 16,034,000*150kg.s and 16304,000*150kg.s, where 150 sec is the time constant. The

calculation of time constant is done in the DP system of RH Marine.

𝐴𝑐𝑙(𝑠) = 𝑀′𝑠3 + 𝑑′𝑠2 + 𝐾𝑑𝑠2 + 𝐾𝑝𝑠 + 𝐾𝑖 48

To make sure that the above equation has solutions on left half plane, we can use Routh Array.

Table 5-1 Routh Array for the Fuzzy PID

𝒔𝟑 𝑴′ 𝑲𝒑

𝒔𝟐 𝑑′ + 𝐾𝑑 𝐾𝑖

𝒔𝟏 (𝑑′ + 𝐾𝑑)𝐾𝑝 − 𝐾𝑖𝑀′

𝑑′ + 𝐾𝑑

0

𝒔𝟎 (𝑑′ + 𝐾𝑑)𝐾𝑝 − 𝐾𝑖𝑀′

𝑑′ + 𝐾𝑑𝐾𝑖

(𝑑′ + 𝐾𝑑)𝐾𝑝 − 𝐾𝑖𝑀′

𝑑′ + 𝐾𝑑

Only when the following formulas are true, the system will be stable,

𝑀′ > 0,

𝑑′ + 𝐾𝑑 > 0 49

(𝑑′+𝐾𝑑)𝐾𝑝−𝐾𝑖𝑀

𝑑′+𝐾𝑑> 0 50

43

(𝑑′+𝐾𝑑)𝐾𝑝−𝐾𝑖𝑀′

𝑑′+𝐾𝑑𝐾𝑖

(𝑑′+𝐾𝑑)𝐾𝑝−𝐾𝑖𝑀′

𝑑′+𝐾𝑑

> 0 51

Because the PID values, damping value and mass value are positive, therefore, the sufficient

condition for a closed loop PID-vessel system would be:

(𝑑′ + 𝐾𝑑)𝐾𝑝 − 𝐾𝑖𝑀′ > 0 52

Define a time constant,

𝜏 =𝑑′

𝑀′ 53

Then,

(𝜏 +𝐾𝑑

𝑀′)𝐾𝑝 − 𝐾𝑖 > 0 54

To be noticed, the 𝐾𝑝 in the above equations is a combination of mooring stiffness produced

by the crane wires and the P value in PID controller.

𝐾𝑝 = 𝐾𝑚𝑜𝑜𝑟𝑖𝑛𝑔 + 𝐾𝑐𝑜𝑛𝑡𝑟𝑜𝑙 55

There are two types of fuzzy logic, the Sugeno method and the Mamdani method. Each is

adapted to certain fuzzy logic problems. A comparison is made in the following table:

Table 5-2 Comparison between Sugeno Method and Mamdani Method

Sugeno method Mamdani method

- Computational efficient

- It works well with linear technics

- It works well with optimization and

adaptive technics

- It has guaranteed continuity of the output

surface

- It's well-suited to maths analysis

- Intuitive

- Widespread accepted

- Well-suited to human input

In the fuzzy self-tuned PID controller, the input will be the mooring stiffness in surge, sway

and yaw direction, and the output is the P and D parameters.

The input has enough data required to use a Sugeno method. Furthermore, the maths

relationship between the input and output is clear enough so the Sugeno method is used to

obtain a fuzzy self-tuned controller.

5.1.5 Fuzzy logic

Here the fuzzy logic is provided.

1. Surge direction:

Input: 𝑘𝑠𝑢𝑟𝑔𝑒; output: 𝑃𝑠𝑢𝑟𝑔𝑒, 𝐷𝑠𝑢𝑟𝑔𝑒

If 𝑘𝑠𝑢𝑟𝑔𝑒 is about 0, then 𝑃𝑠𝑢𝑟𝑔𝑒 = 0.55, 𝐷𝑠𝑢𝑟𝑔𝑒 = 1

44

If 𝑘𝑠𝑢𝑟𝑔𝑒 is about 0.55, then 𝑃𝑠𝑢𝑟𝑔𝑒 = 0, 𝐷𝑠𝑢𝑟𝑔𝑒 = 1

If 𝑘𝑠𝑢𝑟𝑔𝑒 is about 1, 𝑃𝑠𝑢𝑟𝑔𝑒 = 0, 𝐷𝑠𝑢𝑟𝑔𝑒 = 2

If 𝑘𝑠𝑢𝑟𝑔𝑒 is about 2, 𝑃𝑠𝑢𝑟𝑔𝑒 = 0, 𝐷𝑠𝑢𝑟𝑔𝑒 = 3

If 𝑘𝑠𝑢𝑟𝑔𝑒 is about 3, 𝑃𝑠𝑢𝑟𝑔𝑒 = 0, 𝐷𝑠𝑢𝑟𝑔𝑒 = 4

If 𝑘𝑠𝑢𝑟𝑔𝑒 is about 4, 𝑃𝑠𝑢𝑟𝑔𝑒 = 0, 𝐷𝑠𝑢𝑟𝑔𝑒 = 5

If 𝑘𝑠𝑢𝑟𝑔𝑒 is about 5, 𝑃𝑠𝑢𝑟𝑔𝑒 = 0, 𝐷𝑠𝑢𝑟𝑔𝑒 = 6

Figure 5-8 Fuzzy Logic - Proportional

Figure 5-9 Fuzzy Logic – Damping

The fuzzy logic above gives out new sets of P and D values according to the changing of the

mooring stiffness. The changing ratio of 𝐾𝑑 is bigger than the changing ratio of 𝑀′. 𝐾𝑝 is first

stable and then increasing.

Apparently, the PID values all fulfill the equation all the time.

(𝜏 +𝐾𝑑

𝑀′)𝐾𝑝 − 𝐾𝑖 > 0 56

45

Thus the close loop system with fuzzy self-tuned PID controller is stable.

For the sway movement, ditto proof can be made.

Nonlinear Passive Observer In this section, a nonlinear passive observer is made and tuned to accurately estimate the

location and the velocity of the heavy lift vessel. One of the most important tasks for the

nonlinear passive observer is to give out the estimated velocity with minimal phase delay.

A Nonlinear passive observer was first introduced by Fossen and Strand in 1999.[15] It

provided a solution to the observers on DP vessels with a proof of GES and with a reduced

number of parameters to be tuned. This chapter is based on the nonlinear passive observer by

Fossen and Strand.

5.2.1 Observer Model

The observer model contains of three parts: vessel model, wave model and bias model. The

following equations show the observer model for the heavy lift vessel.

5.2.1.1 DP ship model

The low-frequency model of a vessel is

𝐌�̇� + 𝑫𝒗 = 𝝉 + 𝑱𝑻(𝜓)𝒃 57

�̇� = 𝑱(𝜓)𝒗 58

Here the term 𝝉 stands for the external force, which includes the forces provided by thrusters,

wave, current and crane.

5.2.1.2 Wave filtering

�̇� = 𝑨𝒘𝝃 + 𝑬𝒘𝒘 59

𝜼𝒘 = 𝑪𝒘𝝃 60

5.2.1.3 Bias estimator

�̇� = −𝑻−𝟏𝒃 + 𝝍𝒏 61

The bias term consists of the forces and moments produced by ocean currents and unmodeled

nonlinear dynamics, which in combination is known as the DP current.

5.2.1.4 Nonlinear observer

A nonlinear observer can be made based upon the observer model:

�̇̂� = 𝑨𝒘𝝃 + 𝑲𝟏�̃� 62

�̇̂� = 𝑱 (𝜓𝑦) �̂� + 𝑲𝟐�̃� 63

�̇̂� = −𝑻−𝟏�̂� +1

𝛾𝑲𝟑�̃� 64

𝑴�̇̂� = −𝑫�̂� + 𝑱𝑻(𝜓𝑦)�̂� + 𝛕 +1

𝛾𝑱𝑻(𝜓𝑦)𝑲𝟒�̃� 65

�̂� = �̂� + 𝑪𝒘�̂� 66

46

�̃� = 𝐲 − �̂� 67

Figure 5-10 Nonlinear Passive Observer

The added mass matrix and the added damping matrix are unknown to the author, so instead of

using the mass and added mass matrix, one time constant is used for each degree of freedom.

The definition of time constant is as following:

For a vessel in the sea,

F − Dv = Mv̇ 68

When in S domain,

𝐹 = 𝑣(𝐷 + 𝑀s) 69

𝐹

𝑣= (𝐷 + 𝑀s) 70

𝑣

𝐹=

1

(𝐷+𝑀s)=

1 𝐷⁄

1+𝑀

𝐷𝑠 71

Define τ as the time constant and make τ =𝑀

𝐷, then

𝑣

𝐹=

1

(𝐷+𝑀s)=

1 𝐷⁄

1+τ𝑠 72

The time constants are provided by RH Marine.

5.2.2 The Tuning of the Nonlinear Passive Observer

The gains in the nonlinear passive observer can be determined by the following parameters:

47

1. 𝜁 = [

𝜁1 0 00 𝜁2 00 0 𝜁3

]

This is the additional damping term.

2. 𝜁𝑛 = [

𝜁𝑛1 0 00 𝜁𝑛2 00 0 𝜁𝑛3

]

𝜁𝑛𝑖 > 𝜁𝑖 determines the notch.

3. 𝜔𝑜 = [

𝜔𝑜1 0 00 𝜔𝑜2 00 0 𝜔𝑜3

]

This stands for the dominating wave frequency.

4. 𝜔𝑐 = [

𝜔𝑐1 0 00 𝜔𝑐2 00 0 𝜔𝑐3

]

This is the cut off frequency of the wave filter.

5. 𝜔𝑐𝑖 =𝜆𝑖

𝛾𝑖. 𝐾4𝑖 and 𝜔𝑐𝑖 are chosen so that stability can be guaranteed.

The four gains are then calculated as following:

1. 𝐾1𝑖 = −2𝜔𝑐𝑖(𝜁𝑛𝑖 − 𝜁𝑖)1

𝜔𝑜𝑖

2. 𝐾2𝑖 = 2𝜔𝑜𝑖(𝜁𝑛𝑖 − 𝜁𝑖)

3. 𝐾3𝑖 = 𝜔𝑐𝑖

4. 𝐾4𝑖 =𝜅𝑖

𝛾𝑖

Apart from the four parameters which determine the K1, K2, K3 and K4 in the observer gains,

there are still some other matrices to be decided. These matrices are:

RH Marine time constants and bias time constant.

The tuning of nonlinear passive observer costs a lot of time and is very difficult. The changing

of parameters did not make obvious changing in the performance.

Stability can be found proven in Fossen’s thesis.[15]

Here are some conclusions on the tuning of the parameters.

1. The bias time constant should not be too small, otherwise it lead to instability.

2. The dominating wave frequency is calculated from the wave period in the simulation

wave model. This can also be done by an online wave frequency tracker or parameter

adaptation.

3. The additional damping term 𝜁𝑖 has an upper limit. When it is above the upper limit,

the observer will be no longer stable. When the damping term is within this limitation,

the observer is stable. Increasing the term 𝜁𝑖 can also making the output of the observer

smoother and increase the phase lag.

4. The term 𝜁𝑛𝑖 has an upper bound and a lower bound. The estimated states will be

oscillating if it 𝜁𝑛𝑖 exceed the bounds.

5. The cut off frequency 𝜔𝑐𝑖 also defines the error between the estimated states and the

input of the observer. By increasing the parameter 𝜔𝑐𝑖 one can achieve a more accurate

estimation. However, the noise will not be filtered out if 𝜔𝑐𝑖 is too big

48

H-infinity Control Method In this part, the H-infinity control method is applied to solve the dynamic positioning problem

during the heavy lift operations. First, the basic background of H-infinity is provided. Then in

Section 7.3.2 the controller is introduced.

5.3.1 H-infinity Control Method

H-infinity was first brought to public by Zames in 1981. However, in his thesis, the solution of

H-infinity was not given.[20] Then in 1984, Zames and Francis used the function interpolation

theory and solved the H-infinity problem.[21] In 1987, the theoretical system of H-infinity

method is formed basically. In this stage, the solving process of H-infinity method required a

large amount of calculation and lacked engineering meaning. Then in 1988, Doyle, Glover,

Khargonekar and Francis offered a solution with two algebra-Ricatti equations,[22] which

indicated the complete of the H-infinity method.

The basic block diagram used in this section is shown in figure 5-11:

Figure 5-11 state-space standard system

As the figure illustrates, a system can be described as the system in the figure above. In which

G stands for the generalized plant, K is the controller. The signal w contains all external inputs,

which include disturbance, sensor noise and command. The output variable is z. The signal u

is the control input to the plant. The signal y includes the measured variables.

The general plant G can be decomposed into four parts based on the dimensions of w, u, y and

z. Then the system becomes,

𝑮 = [𝑮11(𝑠) 𝑮12(𝑠)𝑮21(𝑠) 𝑮22(𝑠)

] 73

If (𝑰 − 𝑮22𝑲) is a real-rational matrix and satisfies det(𝑰 − 𝑮22𝑲) ≠ 0, the relationship of w

and z is

𝒛 = 𝑭𝑙(𝑮,𝑲)𝒅 74

𝑭𝑙(𝑮,𝑲) is the lower linear fractional transformation of G(s) and K(s).

𝑭𝑙(𝑮,𝑲) = 𝑮11(𝑠) + 𝑮12(𝑠)𝑲(𝑠)(𝑰 − 𝑮22(𝑠)𝑲(𝑠))−1

𝑮21(𝑠) 75

49

The standard H-infinity robust control problem is to find an optimal or suboptimal K, which

stabilizes the ship’s nominal system with the multiplicative output model perturbation, as well

as satisfying the performance design requirements of the infinity-norm. So that the closed loop

satisfies:

‖𝐹𝑙(𝑮,𝑲)‖∞ ≤ 𝛾, 𝛾 ≥ 𝛾𝑚𝑖𝑛 ≥ 0

5.3.2 H-infinity for crane vessels

H-infinity method has been studied in the field of dynamic positioning since 1997.[18] Here,

the H-infinity method is used to provide robust control to a crane vessel’s DP control system.

The model of the vessel can be expressed as:

𝐌�̇� + 𝑫𝒗 = 𝝉 + 𝝉𝑐𝑟𝑎𝑛𝑒 + 𝝉𝑒𝑛𝑣 + 𝑱𝑻(𝜓)𝒃 76

�̇� = 𝑱(𝜓)𝒗 77

There are two ways to implement the H-infinity control method to the crane vessels.

1. Include the crane force in the nominal model;

2. Exclude the crane force in the nominal model, describe the crane force as part of the

perturbation.

Here the first way is chosen.

For a dynamic positioning vessel, the vessel is always moving in low speed. So it is assumed

that the velocity of the vessel is zero. The nonlinear DP equation can be linearized by making

some assumptions. It is known that at around zero speed, nonlinear damping can be ignored

and control design can use linear damping 𝑫. [11]

The relative velocity 𝒗𝒓 can be ignored if ocean currents are treated as a slowly varying bias

vector 𝒃 which can be compensated by the integral action of the controller. In a 3 DOFs model,

the buoyancy and restoring forces can be neglected because they have little effect on the

movement of the surge sway and yaw direction of the vessel. [8]

Thus the heavy lift vessel in 3 DOFs can be modeled as:

𝐌�̇� + 𝑫𝒗 = 𝝉 + 𝝉𝑑𝑖𝑠𝑡𝑢𝑟𝑏 + 𝑹𝑻(𝜓)𝒃 78

�̇� = 𝑹(𝜓)𝒗 79

�̇� = 𝟎 80

𝐌 is the rigid body inertia matrix and the added mass matrix. 𝑫 is the damping matrix with the

added damping matrix. 𝒗 is the velocity in body frame. 𝝉 is the force provided by the actuators.

𝝉𝑑𝑖𝑠𝑡𝑢𝑟𝑏 is the external disturbance. 𝜼 is the vessel position in NED. This part of ship modeling

is based upon Fossen’s vessel model.[9]

The linear model is usually expressed in vessel parallel coordinates.

𝜼𝑝 = 𝑹𝑇(𝜓)𝜼 81

�̇�𝑝 = 𝒗 82

50

A linear model can be obtained from the vessel’s nonlinear dynamics around an operation point

by Taylor expansion. The model errors can be considered as the model perturbations.

𝝉𝑑𝑖𝑠𝑡𝑢𝑟𝑏 = 𝝉𝑤𝑖𝑛𝑑 + 𝝉𝑤𝑎𝑣𝑒 + 𝝉𝑐𝑟𝑎𝑛𝑒 + 𝝉𝑢𝑛𝑚𝑜𝑑𝑒𝑙𝑒𝑑 83

There are two ways to construct the nominal model, the first one is to include the crane force

in the disturbance term, which is shown in the formula above.

The linearized state space model can be then written as,

�̇�(t) = A𝒙(𝑡) + B𝒖(𝑡) 84

�̇�(t) = C𝒙(𝑡) + D𝒖(𝑡) 85

Where A and B are augmented by three integrators such that x(t) = [u v r x y φ]𝑇.

5.3.3 Implementation of H-infinity controller

The regulation system used for the DP system is shown in the figure 5-12.

Figure 5-12 Regulation System

R is the reference system, K is the controller, P_0 is the control plant model of the vessel,

delta_P is the model uncertainty.

The model can be transformed to the form in 6-9 and easily implemented in Matlab to calculate

the required controller K. The Matlab codes can be found in the appendix.

6 Results of Implemented Candidate Solutions This chapter is about the simulation and the result of each candidate solution. First, the fuzzy

PID controller is implemented. In the second part, the performance of the nonlinear passive

K R 𝑊𝑇 𝑃0

∆P

𝑊𝑆 𝑊𝐶 𝑅𝐿 𝑅𝐻

51

observer in the control loop is analyzed. At last, the implement of H-infinity method is

implemented. From the simulation results in Chapter 5, there is an increasing error in phase 2,

a constant error in phase 3 and a decreasing error in phase 4. Thus the setpoint adaption is used

in addition to the different solutions to adapt the pitch movement of the vessel.

Results of the Fuzzy PID Controller Simulations are made to test the fuzzy PID controller.

The simulation is under sea state three. Each stage of the simulation is shown in the table below:

Table 6-1 Stages of Simulation Phase 1 2 3 4 5

Time 0 - 330s 330s - 825s 825s - 2310s 2310s - 2706s 2706s - 3300s

Vessel Status The vessel is

attached to

the load.

There will be

hoist forces if

the vessel

moves and

the crane

wires stretch.

Loading. Loading

almost

finished.

There is force

in the crane

and the load

is still

attached to

the platform.

Offloading. The vessel is

disconnected

from the load.

It’s free

floating. The

crane wires

are slack.

By applying fuzzy PID controller in the surge and sway direction, the close loop of vessel and

controller becomes stable theoretically all the time. The simulation result is shown in the figures

below:

6.1.1 Under Seastate 0

In this part, results of the fuzzy PID controller under seastate 0 is shown.

Figure 6-1 shows the movement of the vessel in surge direction with fuzzy PID controller.

52

Figure 6-1 Surge Movement with Fuzzy Controller without Setpoint Adaption Seastate 0

The result shows that the vessel can now avoid the collision with the platform. In the first and

the last stage of the simulation, the vessel’s center of gravity is exactly at the setpoint. However,

because of the pitch angle caused by the crane load, the vessel has an error in the 2nd, 3rd and

4th phase. To avoid this error caused by the crane load, the setpoint is changed. As an addition

to the original solutions, setpoint adaption is used.[11] In the rest of the thesis, if not specially

pointed out, the solutions all contain setpoint adaption.

Figure 6-2 and 6-3 show the results of fuzzy PID controller with setpoint adaption. The

reference point is now changed to the cranetip to minimize the crane load. The setpoint, which

is the center of gravity of the vessel, is then calculated according to the pitch angle of the vessel

and the position of the crane tip.

53

Figure 6-2 Vessel Trace Plot under Seastate 0 Fuzzy Controller

Figure 6-3 Surge Position under Seastate 0 Fuzzy Controller

54

The performance of fuzzy PID controller under seastate 0 is almost perfect, for it does not have

and significant offset or oscillations. However when the vessel model changed, which is the

time when the crane wires become slack, the controller needs some time to adapt to the new

model.

Both solutions give out similar trace of the vessel and improve the performance of the DP

system under heavy lift operation. With this certain vessel, setpoint adaption is used. But for

other vessels which have better ballasting system that can maintain the vessel’s pitch angle

during the operations, there is no need for setpoint adaption.

6.1.2 Under Seastate 3

In this part, results of the fuzzy PID controller under seastate 3 is shown. Firstly, in figure 6-4,

simulation without setpoint adaption is shown. Then in figure 6-5 and 6-6, simulation results

with setpoint adaption is shown.

Figure 6-4 Surge Direction with fuzzy PID under Seastate 3

55

Figure 6-5 Vessel Trace Plot under Seastate 3 Fuzzy Controller

Figure 6-6 Surge Position under Seastate 3 Fuzzy Controller

56

The results under seastate 3 are slightly worse than the results under seastate 0 because of higher

environmental loads. However, it still show perfect positioning and no collision occurred.

6.1.3 Analyze of the results

The result of the fuzzy PID controller shows that the fuzzy PID is able to handle the mooring

stiffness problem.

Performance of the Observer In this section, the results of the nonlinear passive observer are shown and analyzed. Two

simulations were made to finish this section. One is the simulation with the RH Marine vessel

model, another one is using the semi-sub from MSS library as a compared model.

6.2.1 Performance of Nonlinear Passive Observer in Simulation

The following figures show the estimated results of the nonlinear passive observer when the

observer is not connected in the control loop.

Figure 6-7 Estimated Position by Nonlinear Passive Observer

57

Figure 6-8 North Position by Nonlinear Passive Observer

Figure 6-9 East Position by Nonlinear Passive Observer

58

Figure 6-10 Yaw by Nonlinear Passive Observer

Figure 6-11 Surge Velocity by Nonlinear Passive Observer

59

Figure 6-12 Sway Velocity by Nonlinear Passive Observer The figures 6-6 to 6-11 show the result of the nonlinear passive observer when the parameters

in surge are settled as in appendix II. To be noticed, the nonlinear passive observer is not in the

control loop. As shown in figure 8-5, the estimated states can follow the measured states well

with hardly any phase lag. The estimation of velocity is not accurate when using a nonlinear

passive observer. The estimated velocity has a smaller amplitude than the real velocity. One

reason of this is that the mass matrix and the damping matrix used in the nonlinear passive

observer are both not accurate.

However, comparing to the results in Chapter 5, the improvement of the estimation is clear.

The phase lag is smaller. The robustness of the nonlinear passive observer is also questioned.

Even though in Fossen’s paper, it is stated that the observer is robust in tank experience, the

performance of the nonlinear passive observer is not robust enough in this simulation. One

argument for this is that the estimates velocity is not accurate with a poor vessel model.

The following figures show the results when the nonlinear passive observer is in the control

loop to estimate the vessel states.

Firstly simulation is made under seastate 0.

60

Figure 6-13 Vessel Trace Plot under Seastate 0 Nonlinear Passive Observer

Figure 6-14 Surge Position under Seastate 0 Nonlinear Passive Observer

The following figure 6-15 and figure 6-16 show the result of nonlinear passive observer solution

under seastate 3. Firstly, two figures show the result with crane force input and then results

without crane force input are shown as a comparison simulation.

61

Figure 6-15 Vessel Trace Plot under Seastate 3 by Nonlinear Passassive Observer

Figure 6-16 Surge Position under Seastate 3 by Nonlinear Passive Observer

When there is no Crane Force Input to the Nonlinear Passive Observer, the simulation is

executed. And the result is shown in figure 6-17 and 6-18.

62

Figure 6-17 Vessel Trace Plot Seastate 3 No Crane Force Input to the Nonlinear Passive Observer

Figure 6-18 Surge Position Seastate 3 No Crane Force Input to the Nonlinear Passive Observer

Without crane force input to the nonlinear passive observer, the nonlinear passive observer

solution could not give out satisfied solution. As shown in figure 6-18, the vessel is oscillating

with a low frequency in phase 2, 3 and four. The crane load estimator is important in the

nonlinear passive observer solution. It can help improve the performance of the nonlinear

passive observer a lot.

63

6.2.2 Comparing Experiment

The vessel model used in the nonlinear passive observer is not an accurate model. It only

contains vessel weight and time constant. This highly inaccurate model could cause inaccurate

observer behavior. To find out if it has some influence on the observation of the model states,

and to check the performance of the nonlinear passive observer, a comparing experiment is

executed out using Marine System Simulator developed by NTNU.[23] The Marine Systems

Simulator (MSS) is a Matlab/Simulink library and simulator for marine systems. It includes

models for ships, underwater vehicles, and floating structures. The library also contains

guidance, navigation, and control (GNC) blocks for real-time simulation.[24]

The comparing experiment is taken out in Simulink with a semi-sub. The model is shown in

figure 6-19:

Figure 6-19 Comparison Model The MSS model used in the comparison simulation is a semi-sub with six thrusters. The

parameters of the vessel are:

Table 6-2 Parameters of the Semi-sub Model

MRB

2.72E+07 0 0 0 -5.30E+08 0

0 2.72E+07 0 5.30E+08 0 -1.36E+07

0 0 2.72E+07 0 1.36E+07 0

0 5.30E+08 0 3.48E+10 0 -2.65E+08

-5.30E+08 0 1.36E+07 0 3.81E+10 0

0 -1.36E+07 0 -2.65E+08 0 3.72E+10

64

MA

1.66E+07 0 0 0 -2.55E+08 0

0 4.20E+07 0 3.65E+08 0 0

0 0 2.10E+07 0 0 0

0 3.65E+08 0 1.34E+10 0 0

-2.55E+08 0 0 0 2.23E+10 0

0 0 0 0 0 3.20E+10

D

4.37E+05 0 0 0 -8.53E+06 0

0 3.46E+05 0 6.74E+06 0 -1.73E+05

0 0 3.45E+06 0 1.72E+06 0

0 6.74E+06 0 4.88E+09 0 -3.37E+06

-8.53E+06 0 1.72E+06 0 7.14E+09 0

0 -1.73E+05 0 -3.37E+06 0 8.66E+08

G

0 0 0 0 0 0

0 0 0 0 0 0

0 0 6.18E+06 0 0 0

0 0 0 1.43E+10 0 0

0 0 0 0 2.62E+10 0

0 0 0 0 0 0

MRB is the system inertia rigid body matrix. MA is the system inertia added mass matrix. D is

the linear damping matrix and G is the spring matrix.

The positions and angles of six thrusters are (comparing to the center of gravity as the origin):

Table 6-3 Thruster Positions Thruster 1 Thruster 2 Thruster 3 Thruster4 Thruster 5 Thruster 6

(-35, -27) (-35, 27) (0, -27) (0, 27) (35, -27) (35, -27)

-2.36 -0.79 3.14 0 2.36 0.79

The environmental load block is also from MSS library.

To simplify the problem and focus only on the nonlinear passive observer, the simulation is

made without the controller. Several thrust forces were added to the vessel directly to change

the position of the vessel and to better evaluate the performance of the nonlinear passive

observer.

The result of the simulation is shown in figure 6-20 to figure 6-24:

65

Figure 6-20 Vessel Trace

Figure 6-21 North Position

66

Figure 6-22 East Position

Figure 6-23 Surge Velocity

67

Figure 6-24 Sway Velocity

The figures above show that the estimation by the nonlinear passive observer is smooth enough

with small errors.

Here’s the conclusion of the performance of the nonlinear passive observer with the MSS model:

1. The estimation of the position is accurate. The phase lag can be neglected.

2. The estimation of the velocity is also accurate.

In the second simulation, a sine wave was added to the vessel to simulate the crane force. The

other parts of the model stay the same with model 1. The results of the second simulation are

shown in figure 6-25 to figure 6-30.

68

Figure 6-25 Vessel Trace Plot

Figure 6-26 North Position

69

Figure 6-27 East Position

Figure 6-28 Heading

70

Figure 6-29 Surge Velocity

Figure 6-30 Sway Velocity

The results show that the nonlinear passive observer can estimate the position and the velocity

well. However, the estimate sway velocity has a constant error wrt figure 6-30.

71

6.2.3 Conclusion of Nonlinear Passive Observer

The performance of the observer is not as good as imagined.

Firstly, the tuning of the observer is difficult. The impact on the observer from the changing of

the parameters is small.

Secondly, the vessel model is not thoroughly known. Only the mass of the vessel is known. The

actual mass and added mass matrix of the vessel is simplified to a diagonal mass matrix. The

damping term is also an estimated term calculated from the mass of the vessel and the time

constant.

In the comparison simulation, the nonlinear passive observer showed good performance in

estimation of position as well as the estimation of velocity. The tuning of the observer is also

easy to adapt. In the simulation with RH Marine vessel, where there’s no accurate control plant

model of the vessel, thus the performance of the nonlinear passive observer is not satisfied.

However in industry, the exact mass matrix and the damping matrix are always unknown. The

nonlinear passive observer is not robust enough to adapt the approximate vessel model.

The solutions to this problem are:

1. Calculate the exact mass matrix and added mass matrix before designing an observer.

2. Increase the robustness of the observer and make it tolerant for model errors.

Performance of H-infinity Controller In this section, the results of the H-infinity controller are shown and analyzed. The simulation

details are the same as the simulations made for fuzzy PID and nonlinear passive observer.

The first simulation is made under low environmental load and the second is under high

environmental load.

6.3.1 Under Seastate 0

In this section, the simulation is made under seastate 0. The results are shown in figure 6-31

and figure 6-32:

72

Figure 6-31 Surge Result of H-infinity Controller

Figure 6-32 Vessel Trace Plot

The results show that the performance of the vessel is stable and has no collision with the

platform. However, the controller needs some time to adapt to the vessel model in the first and

second phase.

73

6.3.2 Under Seastate 3

In this section, the simulation is made under high environmental load (seastate 3). The results

are shown in figure 6-33 and figure 6-34:

Figure 6-33 Vessel Trace Plot H-infinity Seastate 3

Figure 6-34 Surge Result H-infinity Seastate 3

74

Under seastate 3, the H-infinity controller also needs time to adapt to the canging of the vessel

model.

6.3.3 Analyze of H-infinity Controller

In this section, stability and robustness of the H-infinity controller are discusses.

(a) Nominal stability (NS)

The nominal stability is determined by checking the internal stability of nominal model which

we derived in the last section. If all the eigenvalues of the nominal model located at the left half

plane, we can conclude that the system has nominal stability.

Figure 6-35 Eigen values of the close loop system

As the result shows, the close-loop system is internally stable, thus it has nominal stability.

(b) Nominal performance (NP):

The condition for nominal performance is defined as:

NP ⇔ σ̅(𝐺22) = μ∆p < 1, ∀𝜔 𝑎𝑛𝑑 𝑁𝑆

Since the nominal stability has already been satisfied, Here we check the value of μ∆p.

μ∆p = 0.1050 < 1

Therefore, the system holds for nominal performance.

(c) Robust stability (RS):

The condition for robust stability is defined as:

RS ⇔ μ∆(𝐺11) < 1, ∀𝜔 𝑎𝑛𝑑 𝑁𝑆

75

Since the nominal stability has been satisfied in last steps, it is easy to check the value of

μ∆(N11) by Matlab.

μ∆(G11) = 0.1601 < 1

Since μ∆(N11) is smaller than 1, the system has robust stability.

(d) Robust performance (RP):

The condition for robust performance can be checked as follows:

RP ⇔ μ∆̂(𝐺) < 1, ∀𝜔 𝑎𝑛𝑑 ∆̂= [∆ 00 ∆p

] and NS

μ∆̂(G) = 0.0013 < 1

Since μ∆̂(N) is smaller than 1, the system has robust performance.

Comparison of Different Algorithms under high seastate In this section, simulations under seastate 6 are made. First the results are shown in figures,

then the results are analyzed.

6.4.1 Comparison of Vessel Trace Plots

In this part, the vessel trace plot are shown with different solutions under seastate 6.

Figure 6-36 Fuzzy PID under High Seastate

76

Figure 6-37 Nonlinear Passive Observer under High Seastate

Figure 6-38 H-infinity Controller under High Seastate

The vessel trace plots show that all of the solutions presented can make the vessel do the heavy

lift operation safely without contact with the platform. However, which one of them has better

performance could not be seen directly from the figures above. Thus figures of the surge

position are drawn to further compare the performance of different solutions.

77

6.4.2 Comparison of Surge Position Plots

In this part, the surge movement of the vessel with different solutions are shown in figure 6-39

to figure 6-41.

Figure 6-39 Fuzzy PID under High Seastate in Surge

Figure 6-40 Nonlinear Passive Observer under High Seastate in Surge

78

Figure 6-41 H-infinity Controller under High Seastate in Surge

From figure 6-39 to figure 6-41, it is clear that fuzzy PID controller has the best performance

in the first three phase. And H-infinity controller has better performance in the last two phase.

For a vessel under heavy lift operation, it is important that it doesn’t go too much backwards to

avoid crashing with the platform.

Comparison of the Robustness of Different Algorithm In this section, the robustness of each solution is under tested and results are shown in figures.

Firstly, the crane force is changed. Then the environmental load is changed. At last the vessel

weight is changed. While the controller settings remain the same. The simulations are taken out

to test whether the DP controller can or cannot adapt to a vessel with model error.

To analyze the performance of different algorithm, variance is used.

Here variance is defined as:

V=∑ (𝑥−𝑥𝑟𝑒𝑓)2

𝑡𝑒𝑛𝑑𝑡=0

𝑡𝑒𝑛𝑑+1 86

x is the position of the vessel, x_ref is the setpoint position of the vessel.

The biggest and the smallest error in surge direction is also studied to analyze the performance

of the solutions.

Emax = max ( 𝑥 − 𝑥𝑟𝑒𝑓) 87

Emin = min ( 𝑥 − 𝑥𝑟𝑒𝑓) 88

The calculations are taken out in surge direction. As this is the direction this assignment focused

on.

79

6.5.1 Robustness under different Crane Force

In this section, robustness with regards to the crane force is studied. The crane force is set to

two times but the settings of the DP control system stay the same. The comparison between the

result and the original result is shown in table 6-4:

Table 6-4 Robustness analysis under different crane force

Crane Load times 1 times 2

No Solution V 2.9973 3.0355

Emax_surge 1.2729 1.0628

Emin_surge -5.6437 -5.7292

Fuzzy V 0.0021 0.0016

Emax_surge 0.1230 0.1323

Emin_surge -0.2192 -0.1314

Nonlinear Passive

Observer

V 0.0094 0.0167

Emax_surge 0.2437 0.2638

Emin_surge -0.3227 -0.5986

H-infinity V 0.0190 0.0048

Emax_surge 0.4540 0.2338

Emin_surge -0.1781 -0.2201

Even with original system, the DP controller is quite robust. The performance of the original

system is slightly better than the performance under two times crane force. This is because the

crane force which connect the vessel’s crane tip to the topside itself is dragging the vessel to

the point where the crane force is the least. If compare between the three solutions, one may

find that all the solutions are quite robust, with variance smaller than 0.1 and error smaller than

1.

6.5.2 Robustness under Different Environmental Load

In this section, environmental load is changed during the simulations to test the robustness of

the DP controller under different environmental load. First the Seastate is change. Then the

direction of the environmental load is changed every 30 degrees under seastate 3.

Table 6-5 Variance of different solutions under different seastate

No Solution Fuzzy PID Nonlinear

Passive

Observer

H-infinity

Seastate 0

Variance 2.5185 0.0021 0.0015 0.0148

Emax 1.2257 0.0954 0.1308 0.1774

Emin -5.0561 -0.1092 -0.0436 -0.6600

Seastate 3

Variance 2.9973 0.0021 0.0094 0.0190

Emax 1.2729 0.1230 0.2437 0.4540

Emin -5.6437 -0.2192 -0.3227 -0.1781

Seastate 6

Variance 2.7084 0.1125 0.2513 0.1571

Emax 1.5767 2.4277 1.4663 1.6427

Emin -5.2624 -1.1214 -1.7797 -0.9997

Table 6-5 shows the defined ‘variance’ of each solution under seastate 0, seastate 3 and seastate

6. Under seastate. From table 6-5, the fuzzy PID controller has the smallest variance in surge

direction under seastate 0 3 and 6. But under seastate 6, H-infinity controller has the biggest

80

Emin. Which means that it has larger clearance to the platform. Conclusion can be made that

the fuzzy PID controller is of the most robust and H-infinity controller has a best performance

and is the safest under seastate 6.

To find out the performance of different solutions under different directions of environmental

load, and to see if the solutions are robust to the direction of the environmental load simulations

are made under seastate 3. Figure 6-42 to figure 6-44 show the results.

The closer the three lines are to 0, the better performance and robustness with regards to the

environmental load direction.

Figure 6-42 Variance and Error of Fuzzy Solution under Different Directions of Environmental Load

Fuzzy solution has better performance when the environmental load is coming from 240°.

When the environmental load is from starboard, it has the least good performance.

In figure 6-43, nonlinear passive observer is tested under different directions of environmental

load. The results of H-infinity controller are shown in figure 6-44.

-2

-1

0

10

30

60

90

120

150

180

210

240

270

300

330

Fuzzy V Fuzzy Emax_surge Fuzzy Emin_surge

81

Figure 6-43 Variance and Error of Nonlinear Passive Observer Solution under Different Directions of Environmental Load

Figure 6-44 Variance and Error of Nonlinear Passive Observer Solution under Different Directions of Environmental Load

All three solutions have variances close to 0 and error within the boundary of -1 to 1, except

for fuzzy solution, it has a minimum error of approximately -1 when the environmental load is

from 60 degrees.

-2

-1

0

10

30

60

90

120

150

180

210

240

270

300

330

NPO V NPO Emax_surge NPO Emin_surge

-2

-1

0

10

30

60

90

120

150

180

210

240

270

300

330

H V H Emax_surge H Emin_surge

82

6.5.3 Robustness for Different Vessel Weight

In this section, the vessel weight in the simulation model is changed to 2 times. However, in

the controller and the observer, the vessel weight stays the same with the previous simulations.

To find out if the solutions have enough robustness under 100% error of vessel weight,

simulations are made and then variances and errors are calculated. In the table 6-6, the results

are shown.

Table 6-6 Robustness Analysis under Different Vessel Weight

Vessel weight times 1 times 2

No Solution V 2.9973 4.8700

Emax_surge 1.2729 1.0448

Emin_surge -5.6437 -7.8709

Fuzzy V 0.0021 0.0035

Emax_surge 0.1230 0.1252

Emin_surge -0.2192 -0.0689

Nonlinear Passive Observer V 0.0094 0.0332

Emax_surge 0.2437 0.1037

Emin_surge -0.3227 -0.4254

H-infinity V 0.0190 0.0042

Emax_surge 0.4540 0.1855

Emin_surge -0.1781 -0.0663

With 100% more vessel weight, all three solutions have good performance. The H-infinity

controller even gives out better results when the vessel weight is bigger.

Discussion and Conclusion All of the results shown in chapter 6 are simulated for one time. Which means there is

uncertainty during the simulations and the results are not repeatable. The uncertainties include

the slowly varying environmental load and the initial position of the vessel which may not be

exactly on the setpoint.

The tuning of the three solutions are different. For fuzzy controller, which is the easiest one to

be tuned, the tuning of the parameters can obey the rules of the tuning of PID controller. For

nonlinear passive observer, the tuning parameters are related to the control model and should

be tuned under certain rules in Chapter 5 to obtain stability. For H-infinity controller, the tuning

is the most difficult and sensitive. The tuning parameters in H-infinity controller are related to

the performance and robustness of the controller.

All three solutions have enough robustness and stability in tests under seastate 3. However

when it comes to higher seastate, the performance becomes poor. With different vessel weight

and different crane force, H-infinity controller has shown best robustness. With different

environmental load, fuzzy controller and H-infinity have shown the best robustness.

7 Conclusions and Recommendations In this chapter, conclusions and recommendations are made.

83

Normally heavy lift operations are made under seastate 2 or less. Here in this report, several

solutions were presented and all of them have provided a good performance of the DP system.

From Chapter 8, candidate solutions under low environmental load (seastate 0 and seastate 3)

are tested. By comparing the solutions, one can find the pros and cons of different solutions.

Table 7-1 Pros and Cons of Different Solution

Solution Pros Cons

Fuzzy

Controller

1. Theoretically stable

2. Do not have to change too

much on the original system

3. Have the best performance

under Seastate 0 and Seastate

3

4. No need for accurate crane

force estimation

5. Improve the controller

1. Has least robustness under tests

of environmental loads from

different directions.

Nonlinear

Passive

Observer

1. Global exponential stable

2. Reduce the sensor number 3. Not the worst, also not the

best.

1. Need the crane force estimation

for better performance

2. Do nothing with the controller

H-infinity

Controller

1. Theoretically stable and

robust 2. Better performance in Seastate

6

3. No need for an observer

4. Always has the biggest Emin

and has the largest clearance to

the platform

1. Good robustness and good

performance can’t be accessed

at the same time

2. Change both the observer and

the controller of the dynamic

positioning system

H-infinity controller is highly recommended if theoretical robustness is to be searched.

However, all three solutions are robust under tests. Nonlinear passive observer is less robust

comparing with the other two solutions and has least good performance. Of the three solutions,

the easiest one to be applied is fuzzy controller. To apply a fuzzy controller, only a fuzzy logic

is needed. The H-infinity controller changes both the controller and the observer, which gives

out the most changes to the original system. The nonlinear passive controller replace the

Kalman filter and can reduce the number of sensors because it can give out estimated velocity

without measured velocity.

Further work could be done on this subject.

1. Try the solutions on other vessel models

The solutions can be simulated again with other vessel model. The solutions have shown good

robustness and stability. However whether or not these solutions can be applied on vessels with

other shape and with cranes at different location on the vessel is still unknown.

2. Detailed robustness study for each solution

In this thesis, simple robustness study is taken out. To fully find out the robustness of each

study, a theoretical assignment could be taken out. This could include the comparison of

robustness and performance of different solutions.

3. Feasibility study

84

Whether the solutions could be put to practice or not should be studied. This could include the

cost and the market study.

4. Thruster performance

The thrusters can be studied under each solution. A good solution should be able to lower down

the wear and tear of the thrusters.

85

Reference 1. Matheus, M., Mittelalterliche Hafenkräne. Lindgren, Uta, Europäische Technik im

Mittelalter. 800 bis 1400. Tradition und Innovation, 1996: p. 345-348. 2. HMC. History of HMC. Available from:

http://hmc.heerema.com/content/about/history/. 3. HMC. Thialf. Available from: http://hmc.heerema.com/content/fleet/thialf/. 4. BoH. SSCV Thialf. 1998; Available from:

http://en.wikipedia.org/wiki/SSCV_Thialf#/media/File:SSCVThialf.jpg. 5. EESI. Offshore Wind Energy Fact Sheet. 2010; Available from:

http://www.eesi.org/files/offshore_wind_101310.pdf. 6. Offshore.Magazine. History of the Offshore Industry. Available from:

http://www.offshore-mag.com/index/about-us/history-of-offshore.html. 7. Ocean.Explorer. Types of Offshore Oil and Gas Platforms. Available from: Types of

Offshore Oil and Gas Platforms. 8. DP.Marine. What is Dynamic Positioning. Available from:

http://dpmarine.dk/dynamic-positioning/. 9. Fossen, T.I., Handbook of marine craft hydrodynamics and motion control. 2011: John

Wiley & Sons. 10. Sørensen, A.J., Marine Control Systems Propulsion and Motion Control of Ships and

Ocean Structures Lecture Notes. 2012. 11. Bakker, F., A conceptual solution to instable dynamic positioning during offshore heavy

lift operations using computer simulation techniques. 2015, TU Delft, Delft University of Technology.

12. Jenssen, N.A., On the Use of Safety Moorings in DP Operations, in Dynamic Positioning Conference. 2008: Huston.

13. Stephens, J.F.R., Dynamic Positioning for Heavy Lift Applications, in Dynamic Positioning Conference. 2008: Houston.

14. Fossen, T.I., Guidance and control of ocean vehicles. Vol. 199. 15. Fossen, T.I. and J.P. Strand, Passive nonlinear observer design for ships using Lyapunov

methods: full-scale experiments with a supply vessel. Automatica, 1999. 35(1): p. 3-16. 16. Amam, E.el., Fault Tolerant Flight Control for Commercial Aircraft. 2009, TU Delft. 17. Lin, F., Robust control design: an optimal control approach. Vol. 18. 2007: John Wiley

& Sons.

18. Katebi, M., M. Grimble, and Y. Zhang. H∞ robust control design for dynamic ship positioning. in Control Theory and Applications, IEE Proceedings-. 1997. IET.

19. Van Amerongen, J., P. Van der Klugt, and H. van Nauta Lemke, Rudder roll stabilization for ships. Automatica, 1990. 26(4): p. 679-690.

20. Zames, G., Feedback and optimal sensitivity: Model reference transformations, multiplicative seminorms, and approximate inverses. Automatic Control, IEEE Transactions on, 1981. 26(2): p. 301-320.

21. Francis, B. and G. Zames, On H∞-optimal sensitivity theory for SISO feedback systems. Automatic Control, IEEE Transactions on, 1984. 29(1): p. 9-16.

22. Doyle, J.C., et al., State-space solutions to standard H 2 and H∞ control problems. Automatic Control, IEEE Transactions on, 1989. 34(8): p. 831-847.

23. Fossen, T.I., Description of MSS Vessel Models: Configuration Guidelines for Hydrodynamic Codes. 2008.

24. Perez, T.I.F.T. MARINE SYSTEMS SIMULATOR (MSS). 2014; Available from: www.marinecontrol.org.

86

Appendix I Fuzzy Logic in .fis [System]

Name='surgefuzzylogic'

Type='sugeno'

Version=2.0

NumInputs=1

NumOutputs=2

NumRules=7

AndMethod='prod'

OrMethod='probor'

ImpMethod='prod'

AggMethod='sum'

DefuzzMethod='wtaver'

[Input1]

Name='Ksurge'

Range=[0 5]

NumMFs=7

MF1='around0':'pimf',[-0.5 0 0 0.5]

MF2='around0.55':'pimf',[0.1 0.5 0.6 1]

MF3='around1':'pimf',[0.5 0.95 1.05 2]

MF4='around2':'pimf',[1 1.95 2.05 3]

MF5='around3':'pimf',[2 2.95 3.05 4]

MF6='around4':'pimf',[3 3.95 4.05 5]

MF7='around5':'pimf',[4 4.95 5.05 6]

[Output1]

Name='Psurge'

87

Range=[0 1]

NumMFs=2

MF1='0.55':'constant',[0.55]

MF2='0':'constant',[0]

[Output2]

Name='Dsurge'

Range=[0 5]

NumMFs=6

MF1='1':'constant',[1]

MF2='2':'constant',[2]

MF3='3':'constant',[3]

MF4='4':'constant',[4]

MF5='5':'constant',[5]

MF6='6':'constant',[6]

[Rules]

1, 1 1 (1) : 2

2, 2 1 (1) : 2

3, 2 2 (1) : 2

4, 2 3 (1) : 2

5, 2 4 (1) : 2

6, 2 5 (1) : 2

7, 2 6 (1) : 2

2. Sway direction

Input: 𝑘𝑠𝑤𝑎𝑦; output: 𝑃𝑑𝑒𝑐𝑟𝑒𝑎𝑠𝑒

88

If 𝑘𝑠𝑤𝑎𝑦 is around 0, 𝑃𝑑𝑒𝑐𝑟𝑒𝑎𝑠𝑒 = 0

If 𝑘𝑠𝑤𝑎𝑦 is around 0.15, 𝑃𝑑𝑒𝑐𝑟𝑒𝑎𝑠𝑒 = 0.04

If 𝑘𝑠𝑤𝑎𝑦 is around 0.3, 𝑃𝑑𝑒𝑐𝑟𝑒𝑎𝑠𝑒 = 0.14

[System]

Name='swayfuzzylogic'

Type='sugeno'

Version=2.0

NumInputs=1

NumOutputs=2

NumRules=3

AndMethod='prod'

OrMethod='probor'

ImpMethod='prod'

AggMethod='sum'

DefuzzMethod='wtaver'

[Input1]

Name='mooringstifnesssway'

Range=[0 0.3]

NumMFs=3

MF1='mf1':'pimf',[-0.108 -0.012 0.012 0.108]

MF2='mf2':'pimf',[0.04279 0.1388 0.1628 0.2588]

MF3='mf3':'pimf',[0.192 0.288 0.312 0.408]

[Output1]

Name='ksway'

Range=[0 1]

89

NumMFs=3

MF1='mf1':'constant',[0]

MF2='mf2':'constant',[0.1]

MF3='mf3':'constant',[0.14]

[Output2]

Name='dsway'

Range=[0 1]

NumMFs=2

MF1='mf1':'constant',[1.5]

MF2='mf2':'constant',[1]

[Rules]

1, 3 2 (1) : 1

2, 2 2 (1) : 1

3, 3 1 (1) : 1

90

Appendix II Observer Setting ObserverConstants = struct('gee',1); %% Vessel parameters ObserverConstants.gee = 9.80665; ObserverConstants.rho = 1.025e3; ObserverConstants.MRB_Vessel = [(16038 * 1.025e3 *

ObserverConstants.gee) 0 0; 0 (16038 * 1.025e3 *

ObserverConstants.gee) 0; 0 0 ((16038 *

1.025e3/12)*(147.6^2+25.4^2))]; ObserverConstants.MRB_added = [0 0 0; 0 0 0; 0 0 0]; ObserverConstants.tauyaw = 32.222; ObserverConstants.tauy = 70; ObserverConstants.taux = 150; ObserverConstants.D_Vessel = [(16038 * 1.025e3 *

ObserverConstants.gee)/ObserverConstants.taux 0 0; 0

ObserverConstants.tauy\(16038 * 1.025e3 * ObserverConstants.gee) 0; 0

0 ObserverConstants.tauyaw\(16038 * 1.025e3 *

ObserverConstants.gee)] ; ObserverConstants.D_added = [0 0 0; 0 0 0; 0 0 0]; ObserverConstants.M = ObserverConstants.MRB_Vessel

+ObserverConstants.MRB_added; ObserverConstants.D =

ObserverConstants.D_Vessel+ObserverConstants.D_added; ObserverConstants.Tau = [ObserverConstants.taux 0 0; 0

ObserverConstants.tauy 0; 0 0 ObserverConstants.tauyaw];

%% Determination of K1 & K2 & K3 & K4 ObserverConstants.T = 1000*[1 0 0; 0 1 0; 0 0 1];

ObserverConstants.Zeta_1 = 0.05; ObserverConstants.Zeta_2 = 0.05; ObserverConstants.Zeta_3 = 0.05;

ObserverConstants.Omega_o1 = 2*pi/7; ObserverConstants.Omega_o2 = 2*pi/7; ObserverConstants.Omega_o3 = 0.01*pi/7;

ObserverConstants.Zeta_n1 = 1; ObserverConstants.Zeta_n2 = 1; ObserverConstants.Zeta_n3 = 10;

ObserverConstants.Omega_c1 = 1.2; ObserverConstants.Omega_c2 = 1.2; ObserverConstants.Omega_c3 = 0.006;

n = 0.1;

ObserverConstants.Gamma = 1; ObserverConstants.Kappa = [0.1 0 0; % around 5 0 0.1 0; 0 0 0.01]; ObserverConstants.Lambada = n * ObserverConstants.Kappa

%% Aw Cw K1 K2 ObserverConstants.Aw = [0 0 0 1 0 0; 0 0 0 0 1 0; 0 0 0 0 0 1; -ObserverConstants.Omega_o1^2 0 0 -

91

2*ObserverConstants.Zeta_1*ObserverConstants.Omega_o1 0 0; 0 -ObserverConstants.Omega_o2^2 0 0 -

2*ObserverConstants.Zeta_2*ObserverConstants.Omega_o2 0; 0 0 -ObserverConstants.Omega_o3^2 0 0 -

2*ObserverConstants.Zeta_3*ObserverConstants.Omega_o3];

ObserverConstants.Cw = [0 0 0 1 0 0; 0 0 0 0 1 0; 0 0 0 0 0 1];

ObserverConstants.K1 = [(-

2*ObserverConstants.Omega_c1*(ObserverConstants.Zeta_n1-

ObserverConstants.Zeta_1))/ObserverConstants.Omega_o1 0 0; 0 (-2*ObserverConstants.Omega_c2*(ObserverConstants.Zeta_n2-

ObserverConstants.Zeta_2))/ObserverConstants.Omega_o2 0; 0 0 (-2*ObserverConstants.Omega_c3*(ObserverConstants.Zeta_n3-

ObserverConstants.Zeta_3))/ObserverConstants.Omega_o3; 2*ObserverConstants.Omega_o1*(ObserverConstants.Zeta_n1-

ObserverConstants.Zeta_1) 0 0; 0 2*ObserverConstants.Omega_o2*(ObserverConstants.Zeta_n2-

ObserverConstants.Zeta_2) 0; 0 0 2*ObserverConstants.Omega_o3*(ObserverConstants.Zeta_n3-

ObserverConstants.Zeta_3)];

ObserverConstants.K2 = [ObserverConstants.Omega_c1 0 0; 0 ObserverConstants.Omega_c2 0; 0 0 ObserverConstants.Omega_c3];

%% K3 & K4

ObserverConstants.K3 = (1/ObserverConstants.Gamma) *

ObserverConstants.Lambada;

ObserverConstants.K4 = (1/ObserverConstants.Gamma)*

ObserverConstants.Kappa;

%% Measurement Velocity

ObserverConstants.GainErrorVelocity = 0.5;

92

Appendix III Matlab Codes for H-infinity Controller %% Model Parameter initialization clear clc %%Parameters Constants = struct('Xcrane',1); %Create structure Constants.Xcrane = -65; %[m] Xcrane1 Constants.Ycrane = 0; %[m] Ycrane Constants.Zcrane = -20; %[m] Zcrane Constants.Lcrane = 80; %[m] Lcrane Constants.cable_elasticity_modules =120e9; %[N/m^2] default = steel 200e9 Elasticity modules, effective ~0.7 Constants.cable_cross_section=50*pi*0.025^2; %[m^2] cross section area of hoist cable (25cm radius) Constants.cable_specificloss = 0.10; % [] default = 0.17 Psi=dU/U where dU is the energy dissipation per cycle and U is the strain energy of oscillation. Constants.load_A = 0; % See Figure 5.3 of report FC Bakker Constants.load_B = 0; % See Figure 5.3 of report FC Bakker Constants.load_C = 0; % See Figure 5.3 of report FC Bakker Constants.vessel_GM_T = 20.83; % default = 10.83 [m] Transverse metacentric height, used to go from M_x to roll Constants.vessel_GM_L = 389.8; % default = 389.8[m] Longitudinal metacentric height, used to go from M_y to pitch Constants.vessel_displaced_mass = 18038e3; % [kg] Displaced mass by vessel Constants.vessel_yawrate_conversion = 5.3158e+10; %4667600; % def = 4.6233e10 ss yawrate r = sqrt(Mz/this constant c) Constants.vessel_vx_conversion = 27800; %20216; % [kg/m] ss vx = sqrt(Fx/this constant c) Constants.vessel_vy_conversion = 264500; %121297; % [kg/m] ss vy = sqrt(Fy/this constant c) Constants.vessel_HeaveDampingC = 1.5e7; %1.5e7; % default = 1.5e7 Constants.gravitational_acceleration = 9.81; %[m/s^2] Constants.Max_tau = [1e8 1e8 5e8 5e9 5e10 5e9]; %Saturation of tau treshold Constants.Assertion.DPCapabilityProblem = 0; % Constants.Assertion.Saturated = 0; % Constants.Assertion.DPIsOff = 0; % Constants.Assertion.SSNotDefined = 0; % Constants.InitialOriginOfXY = [55 3]; % [LAT/LON Deg] % Pitch and roll are used in the Filtered Solution roll and pitch filtering Constants.PitchFilterTau = 10; %[s] 2*pi/omega_cutoff_freq [rad/s] used in filter concept Constants.RollFilterTau = 15; %[s] 2*pi/omega_cutoff_freq [rad/s] used in filter concept Constants.SurgeCapabilityValueFilterTau = 5; %[s] 2*pi/omega_cutoff_freq [rad/s] used at FF gain calculation concept Constants.SwayYawCapabilityValueFilterTau = 5; %[s] 2*pi/omega_cutoff_freq [rad/s]used at FF gain calculation concept Constants.NonCorrectedSwayYawFFGain = 0; Constants.NonCorrectedSurgeFFGain = 0.4; Constants.SwayYawCapabilityGainVector = [0 0 1 1]*Constants.NonCorrectedSwayYawFFGain; Constants.SwayYawCapabilityBreakpointVector = [0 0.25 0.5 1]; Constants.SurgeCapabilityGainVector = [0 0 1 1]*Constants.NonCorrectedSurgeFFGain; Constants.SurgeCapabilityBreakpointVector = [0 0.25 0.5 1];

93

Constants.draught = 5.6; Constants.load_massfactor = 0.01; % factor of massmatrix of load in relation to MRB MRB = [27162500,0,0,0,-529668750,0; %Mass matrix of a big Submersable vessel 0,27162500,0,529668750,0,-13581250; 0,0,27162500,0,13581250,0; 0,529668750,0,34774790625.0000,0,-264834375; -529668750,0,13581250,0,38149731250.0000,0; 0,-13581250,0,-264834375,0,37192253125.0000]; %MRB = [ones(3)*0.027e7 zeros(3) ; zeros(3) ones(3)*35e7]; %Constants to tweak 'Aggressiveness' user input effect Constants.UI_force = .5e7; Constants.UI_moment = .5e8; Constants.UI_hoistspeed = .3; Constants.UI_Boomspeed = .03; Constants.UI_Turnspeed = .05; %Initial setting crane setpoint_crane(1,1) = 180/360*2*pi; %[degree] Alpha setpoint_crane(2,1) = 60/360*2*pi; % [degree]beta setpoint_crane(3,1) = 70; % [m] l_hoist (setpoint of hoist cable length) %Initial position of vessel seen from eta = [0 0 0 0 0 0] eta_vessel_initial = [0 0 0 0 0 .523599]; eta_load_initial = [-90.9326611243461-Constants.Ycrane*sin(eta_vessel_initial(:,6)) -52.5000108651878+Constants.Ycrane*cos(eta_vessel_initial(:,6)) -19.2820323027551 0 0 0]; %% Standard Model run parameters %Simulation parameters: t_end = 3300; %[s] def: 3300 (=55min) Simulation end time t_sample = 0.005; %[s] Sample time model (used by VRsink and VRSource for samplingtransition) t_sample_controller = 0.025; %[s] Sample time controller (parameter not used), t_sample_controller/t_sample= #steps smerger Constants.ToWorkspaceDecimation = 20; %Storing 1/{This Constant} of data for plot to make plot faster Constants.CraneForcesOnVessel = 1; %If this value is 0, the forces calculated by the crane model are blocked hence not working on the vessel nor DP controller. Constants.CraneForcesToControllerOnOff = 0; % Turn on/off CraneFF to controller (Gain 1= normal/on, 0 = 0ff) Constants.CraneForcesDirectFFOnOff = 0; % Turn on/off Crane forces direct feedforward by thrusters (Gain 1= normal/on, 0 = 0ff) Constants.RollPitchFilterOnOff = 0; % Turn RollPitch filter = Filtered solution on/off Constants.CapabilityCorrectionOnOff = 0; % Corrected solution(3) FF gain correction on capability on/off Constants.DPSetpointAdaptionOnOff = 1; %Turn on/off Setpoint adaption based on load position and vessel roll/pitch (Gain 1= normal/on, 0 = 0ff) Constants.HeaveModelOnOff = 0; % Turn on/off heave model (Gain 1= normal/on, 0 = 0ff) Constants.ModelStatesOnOff = 1; % C=1 Use Model states C=0 Use Controller states for estimation mooring stiffness forces Constants.FuzzyControllerOnOff = 0; Constants.NonlinearPassiveObserverOnOff = 0;

94

Constants.HinfinityControllerOnOff = 1; % Check manual switches of switching Periodic Forces!! Constants.PeriodicForceOnOff = 0; % Turn on/off force on model Constants.PeriodicForceAmplitude = 1.75; %def 1.75 [m/s] in x direction of vessel Constants.PerdiodicForceTau = [5 10 20 30 40 50 60 70 80 90 100 110]; Constants.PeriodicForceTauChange = (0:0.1:1.1)*t_end; Constants.LinearPeriodicForceTau = [25 70]; %vertaalt zich naar 22 55 Constants.LinearPeriodicForceTauChange = [0 850]; %Must begin at 0 Constants.LinearPeriodicForceAmplitudeWindow = [200 Constants.LinearPeriodicForceTauChange(2)]; Constants.SimulationName = 'test'; y_cranetip = Constants.Ycrane + Constants.Lcrane * cos(setpoint_crane(2,:)) * sin (setpoint_crane(1,:)); Lpp = 147.6 + y_cranetip; %Load Displacement parameters eta_load_distortion = [0 0 7 0 0 0 ]; % def [0 0 7 0 0 0 ]Location of eta_load if distortion_gain is 1 distortion_gain = [0 0 1 1 0 0]; %Input of lookup table t_distortion = [0 0.1 0.25 0.7 0.82 1]*t_end; %Input of lookup table %% Initialobserver ObserverConstants = struct('gee',1); % Vessel parameters ObserverConstants.gee = 9.80665; ObserverConstants.rho = 1.025e3; ObserverConstants.MRB_Vessel = [(16038 * 1.025e3 * 1.1) 0 0; 0 (16038 * 1.025e3 * 1.4) 0; 0 0 ((16038 * 1.025e3/12)*(147.6^2+25.4^2))* 2]; ObserverConstants.MRB_added = [0 0 0; 0 0 0; 0 0 0]; ObserverConstants.tauyaw = 32.222; ObserverConstants.tauy = 70; ObserverConstants.taux = 150; ObserverConstants.D_Vessel = [(16038 * 1.025e3 * 1.1)/ObserverConstants.taux 0 0; 0 (16038 * 1.025e3 * 1.4)/ObserverConstants.tauy 0; 0 0 ((16038 * 1.025e3/12)*(147.6^2+25.4^2))/ObserverConstants.tauyaw] ; ObserverConstants.D_added = [0 0 0; 0 0 0; 0 0 0]; ObserverConstants.M = ObserverConstants.MRB_Vessel +ObserverConstants.MRB_added; ObserverConstants.D = ObserverConstants.D_Vessel+ObserverConstants.D_added; ObserverConstants.Tau = [ObserverConstants.taux 0 0; 0 ObserverConstants.tauy 0; 0 0 ObserverConstants.tauyaw]; %% H Calculation % transfer matrix %input hinf.psi 30 °; BODY2NED = [ cos(pi/6) -sin(pi/6) ; sin(pi/6) cos(pi/6) ]; % Kmooring %for ii = 0:420000:4200000 hinf.Fhoist = 500000; %hinf.Fhoist = ii;

95

hinf.l_0 = Constants.Lcrane ; Kmooring = [hinf.Fhoist/hinf.l_0 0; 0 hinf.Fhoist/hinf.l_0 ]; hinf.Fhoist*Lpp/(2*hinf.l_0)]; % Nominal Vessel Model % First Define the Mass and Damping Matrix hinf.M = [ObserverConstants.M(1,1) ObserverConstants.M(1,2); ObserverConstants.M(2,1) ObserverConstants.M(2,2)]; hinf.D = [ObserverConstants.D(1,1) ObserverConstants.D(1,2); ObserverConstants.D(2,1) ObserverConstants.D(2,2)]; hinf.A = [ zeros(2,2) BODY2NED; -hinf.M^(-1)*Kmooring -hinf.M^(-1)*hinf.D]; %zeros(2,2) hinf.B = [zeros(2,2); hinf.M^(-1)]; hinf.C = [eye(2,2) zeros(2,2)]; hinf.D = zeros(2,2); %10^(-9)* ones(3,3); hinf.ss_P0 = ss(hinf.A,hinf.B,hinf.C,hinf.D); hinf.P_0= tf(hinf.ss_P0); %high frequency disturbance model hinf.R_h = tf({[2 8 0.8] 0 ; 0 [1.5 6 0.6]},[30 50 10]); %low frequency disturbance model hinf.R_l = tf({1 0; 0 1 },[10 10]); % weighting function %sensitivity hinf.W_s = (tf({[0.44 1 5] 0 ; 0 [0.44 1 5] }, [100000 120000 300000]))^1; % (tf({1 0 0; 0 1 0; 0 0 1},1)); % %control sensitivity hinf.W_c = (tf({[1 1 0.1] 0 ; 0 [1 1 0.1]}, [40 5 10]))^1; % hinf.W_c0; % % Generalised plant hinf.G11 = [zeros(2,2) hinf.R_l zeros(2,2); hinf.W_s hinf.W_s*hinf.P_0*hinf.R_l hinf.W_s*hinf.R_h; zeros(2,2) zeros(2,2) zeros(2,2)]; hinf.G12 = [eye(2,2); hinf.W_s*hinf.P_0; hinf.W_c]; hinf.G21 = [eye(2,2) hinf.P_0*hinf.R_l hinf.R_h]; hinf.G22 = hinf.P_0; hinf.G = [hinf.G11, hinf.G12; hinf.G21, hinf.G22]; % augw(hinf.P_0, hinf.W_t, hinf.W_c, hinf.W_t);

96

% Hinf Controller display on [hinf.K,hinf.CL,GAM,hinf.INFO] = hinfsyn(hinf.G,2,2); [hinf.K_m,hinf.CL_m,GAM_m,hinf.INFO_m] = mixsyn(hinf.P_0,hinf.W_s,hinf.W_c,[]); % %jj = ii/420000 +1; %hinf.CL_save(jj) = {hinf.CL}; %hinf.CL_m_save(jj) = {hinf.CL_m}; %GAM_save(jj) = {GAM}; %GAM_m_save(jj) = {GAM_m}; %K_h_save(jj) = {tf(hinf.K)}; %K_m_save(jj) = {tf(hinf.K_m)}; %global K_m_save K_h_save; %end %ctlnum = {'cf_1';'cf_2';'cf_3';'cf_4';'cf_5';'cf_6';'cf_7';'cf_8';'cf_9';'cf_10';'cf_11'} %Kmsave = cell2struct(K_m_save,ctlnum,2); %Ksave = cell2struct(K_h_save,ctlnum,2) %Kmsave.time = []; %Kmsave.signal = 1 %% Singular Value Plot figure(1) L = hinf.K_m*hinf.P_0; % Form loopgain S = inv(1+L); % Form S C = hinf.K_m *S T = 1 - S; % and T sigma(GAM_m/hinf.W_s,'k',GAM_m*hinf.P_0/ss(hinf.W_c),'b') legend('Sensitivity Function','Complementary Sensitivity Function',2); hold off figure(2) plot(eig(hinf.K_m)); %% NP omega=logspace(-3,3,1000); Nf=frd(hinf.G,omega); blk1=[ 2 4]; [mubnds,muinfo]=mussv(Nf(5:8,5:6),blk1,'c'); muNP=mubnds(:,1); [muNPinf, muNPw]=norm(muNP,inf); %% RS ?(N_11) < 1 blk2=[ 1 1 ;1 1; 1 1; 1 1]; % structured uncertainty [mubnds,muinfo]=mussv(Nf(1:4,1:4),blk2,'c'); muRS=mubnds(:,1); [muRSinf, muRSw]=norm(muRS,inf);