MAY 2009
iii
accomplish this work, to my dear supportive family members and my loving fianc
iv
ACKNOWLEDGEMENT
Bismillahirrahmanirrahim
Im so thankful and grateful to Allah All Mighty the Merciful, after all the
struggled and hard work that I was through finally the report is ready to submit
During this work I have collaborated with many colleagues and friends for
whom I have great regard, and I wish to extend my warmest thanks to all those who
have helped me with my thesis.
ABSTRACT
The number of deep water moored offshore vessels is growing rapidly, and
hydrocarbon fields in water depths down to 3000 m are now seriously considered for
floating production development. The exploration drilling or offshore floating
production units with superior mooring capacity thus become a highly demand
factor. Concerning on this booming drilling activity has driven this research to be
carried out to analyze the mooring system requirement as well as the behaviour of
the floating structure when experiencing external forces such as wave and current
forces. The purpose of this study is to investigate the technical as well as
performance analysis of the catenary mooring system from the perspective of a Spar
platform drilling unit. The main part comprises an analysis and discussion on the
mooring configuration, material and weight, length of mooring line required to resist
the environmental loads and movement of the platform. This study will utilized the
finite element approach and the analysis will be carried out by using M-File
programming from MATLAB software package. The endeavour of this paper is to
develop theoretical methods for evaluation of Spar oil platform response with
catenary mooring lines and to carry out performance analysis of the catenary
mooring lines between static and dynamic mooring system. The performance of
mooring system is determined as the ability of the system to establish superior
station-keeping capabilities for the floating platform, so to ensure that horizontal
excursions of the platform are not so large as to cause damage to the production
risers or the sub-sea equipment and subsequently enabling production and export
risers to remain connected for the life of the field.
vi
ABSTRAK
TABLE OF CONTENTS
TITLE PAGE i
CERTIFICATE OF ORIGINALITY ii
DEDICATION iii
ACKNOWLEDGEMENT iv
ABSTRACT v
TABLE OF CONTENTS vi
LIST OF TABLES ix
LIST OF FIGURES x
LIST OF SYMBOLS xii
LIST OF APPENDICES xv
1 INTRODUCTION 1
1.1 Background 1
1.2 Problem Statement 2
1.3 Objective of the Research 3
1.4 Scope of the Research 3
2 LITERATURE SEARCH 4
2.1 Introduction 4
2.2 Fundamental of Mooring Systems 5
2.3 Catenary Moorings 8
vii
3 RESEARCH METHODOLOGY 13
3.1 Introduction 13
3.2 Research Mechanism 14
3.3 Research Procedure Flow Chart 14
3.4 Research Scheduling 18
4 MATHEMATICAL FORMULATION 20
4.1 Introduction 20
4.2 Surface Area and Offset Calculation Method for
Spar Platform 20
4.3 Hydrodynamic forces 23
4.4 Equation of Motion of Spar Platform 27
4.5 Newton- Technique Time Step Integration 28
4.6 Coordinate Systems and Transformations 30
4.7 Mass and Added Mass for Spar 33
4.8 Damping Matrix for the Spar 39
4.9 Stiffness Forces on Spar 45
4.10 Mooring Stiffness 46
4.11 Mooring Cables Calculation 49
4.11.1 Two-Dimensional Problem 50
4.11.2 Segmentation and Nomenclature 52
4.11.3 Computation Process 52
4.12 Dynamics of Mooring Lines 56
4.12.1 Forces to Consider 56
4.12.2 Equation of Motion 60
viii
5 PROGRAMME DEVELOPMENT 61
5.1 Introduction 61
5.2 Introduction to MATLAB Software 61
5.3 Programming with MATLAB 62
5.4 Matrices in M-File 63
5.5 Programming Flow Charts 64
5.5.1 Flow Chart for Main Program 64
5.5.2 Flow Chart to Calculate Total Mass 66
5.5.3 Flow Chart to Calculate Damping 67
5.5.4 Flow Chart to Calculate Resultant Stiffness 68
5.5.5 Flow Chart for Static Mooring Program 69
5.5.6 Flow Chart for Dynamic Mooring Program 70
5.6 Programming Process 71
5.7 Overall Programming Description 71
7 CONCLUSION 94
REFERENCES 95
Appendices A H 97 - 121
x
LIST OF TABLE
LIST OF FIGURES
LIST OF SYMBOLS
Ms Moments
Fh Horizontal force
WD , h Water depth
F FK
Foude-Krylov force
Vw Wave velocity
TW Period of wave
FD Drag force
W Wave frequency
k Wave number
u& Velocities of water particles in horizontal direction
w& Velocities of water particles in vertical direction
xiii
UC Current velocity
Km Mooring Stiffness
F (t ) External forces
t Delta time
t Time
,, Constant
x Global x coordinates
y Global y coordinates
z Global z coordinates
X Body X coordinates
Y Body Y coordinates
Z Body Z coordinates
K hy Hydrostatic stiffness matrix
center of buoyancy
S cg Distance from the keel of the Spar platform to its
center of gravity
Td Draft of the Spar platform
xiv
x Small displacement
LIST OF APPENDICES
INTRODUCTION
1.1 Background
The rapidly growing offshore activity in deepwater, i.e. between 1500 and
3000m creates a high demand on the exploration drilling or offshore floating
production units with superior mooring capacity. The need to measure ocean currents
throughout the water column for extended periods in order to better understand ocean
dynamics was a driving force that led to the development of oceanographic
moorings.
The number of deep water moored offshore vessels is growing rapidly, and
hydrocarbon fields in water depths down to 3000 m [1] are now seriously considered
for floating production development. With the requirement to operate in increasing
water depths, the suspended weight of mooring lines becomes a prohibitive factor.
i. Movement of platform
ii. Required length/weight of mooring line
iii. Suitable material
iv. Type of anchoring technique
3
LITERATURE SEARCH
2.1 Introduction
This chapter reviews the literature study of the mooring system performance
analysis and the discussion includes several researches that have been done
previously. Basic fundamentals of mechanics of mooring line will also be discussed
in order to conduct this research successfully. The aim of this chapter is to cover the
fundamental aspects especially on static and dynamic of mooring line and to explain
the several widely used methods to evaluate the performance of mooring line for spar
oil platform.
5
The mooring system consists of freely hanging lines connecting the surface
platform to anchors, or piles, on the seabed, positioned at some distance from the
platform. The mooring lines are laid out, often symmetrically in plan view, around
the vessel. Figure 2.1 shows wind, wave and current forces acting on spar platform
and the arrangement of mooring lines.
M s = Fh WD
(2.1)
Where:
The choice of hardware (shackles and links), line and flotation for a particular
application, as well as the size and design of the anchor, depends on the type of
mooring and the environment in which it is deployed. Steel-linked chain and wire
rope have conventionally been used for mooring floating platforms. Each of the lines
6
While the industry tends to focus on the ability to go deeper, precise position
and motion control of offshore floating platform, mooring systems and their
deployment are now seen by operators as a major technical constraint on the cost
effective development of deepwater fields. The industry is now highly focused on the
need for technical development in this area.
7
A very good literature about the force balance in a catenary mooring lines can
be found in Fylling, 1992 [2]. According to Fylling, the buoyancy-corrected weight of
the suspended part of the mooring line must balance the station-keeping moment in a
catenary mooring system as shown in Figure 2.3.
M s = wsa (2.2)
where w is the buoyancy-corrected weight per unit length, s is the line length, and a
is the horizontal distance from the fairlead to the centre of gravity of the suspended
line. The vertical force at the top will be equal to the buoyancy-corrected weight of
the suspended line.
Figure 2.4: The active hybrid mooring system being developed at MARIN
(Buchner et al., 1999)
10
M v + C RB (v )v + C A (v r )v r = F (t )memory + F (t )viscous + F (t )wind +
(2.3)
F (t )current + F (t )wave + F (t )mooring + F (t )thrust
With = J ( )v
where M is the mass matrix including added masses, while CRB( v) v and CA ( r )r
are the Coriolis force and the centripetal force, respectively. The velocity v is
referred to the body-fixed coordinates, which are transformed from the earth-fixed
coordinates through the relation given above with the help of the rotation matrix J=
(). The relative velocity vector is denoted by vr.
Huang and Vassalos (1993) [6] have neglecting the dynamic excitation due to
waves, the variation of current in time and the vortex-induced vibration, mooring
lines may be treated statically. A number of different approaches have been
undertaken to solve the problem. The main issue hereby is the dimensionality, the
elasticity and the current drag. They developed a semi-analytical method, which
predicts the static behavior of a three-dimensional cable under a given distribution of
point loads, for example due to current. They derived an exact solution as a function
of the internal force vector at the end point along the cable. Since the internal force is
determined as the solution to the problem, this scheme must be implemented
iteratively.
11
Mooring lines basically show a three dimensional shape, but the assumption
of coplanar configuration reduces the complexity of geometric descriptions. The
static solution is often insensitive to elastic deformations and thus the cable may be
modelled as inelastic in many practical situations. The governing equations of an
inelastic cable are of course simpler than those of an elastic cable. The current drag
acting on the cable is proportional to the square of the relative velocity, and hence it
is nonlinear.
induced motions, and vortex induced vibrations, which makes the dynamic analysis a
difficult task.
It is well-known that the dynamic analysis can be made either in the time
domain or in the frequency domain. All non-linear terms are properly accommodated
in the time domain analysis, whereas they must be more or less approximated by
equivalently linearized ones in the frequency domain.
RESEARCH METHODOLOGY
3.1 Introduction
This research will utilize the qualitative research methodology. The data will
be obtained through the computer programmed that will be developed. Other
alternative data will also be taken through several applicable resources such as
books, journals, non-confidential documents and electronic resources from the
internet such as e-journal and websites.
Figure 3.1 illustrate the adequate flow process on how this research will be
conducted.
15
Start
Identify
Define
Literature Search
Theoretical Method
Parametric Studies
Identify
At this stage, the main problem facing by marine consultant to evaluate the
performance of mooring system is identified. The problem is, as the offshore oil
productions are growing rapidly and the hydrocarbon fields in water depth going
more deeper and deeper, it is essential for marine engineers to evaluate the
performance of catenary mooring system without ignoring cost effectiveness,
excessive horizontal offset that can damage to the production risers and safety of the
workers onboard the spar platform. Parameters considered to evaluate the
performance of mooring system are identified and the parameters are movement of
the platform, the required length and weight of mooring line, suitable material for the
mooring line and type of the anchoring techniques.
Define
The second stage is to identify the objective and scope of this study. The
objective and rationale of this study need to be clearly cited regarding the issues
mentioned in the problem statement. The research scope or the outline of the
research need to be determined according with the timeline given in order to
complete the research successfully. Gantt chart is made to guide the progress flow of
this study to avoid unfinished research activity.
Literature Review
Literature review had been make on the secondary data was obtained through
several different sources such as books, journals also electronic resources such as e-
17
journal, internet, websites and online materials. This part to give the more
information about offshore environment, calculation methods for catenary mooring
and selection of suitable calculation method which can be develop by computer
program.
Theoretical Method
After accomplishing the literature review, the Finite Element Method had
chosen method for computer program development. FEM have all of advantages
such as it consider almost all force acting on the cable element, more familiar to
computer programming language such as Fortran 77 and MATLAB also it can
consider the dynamic effect of the mooring line. In this part all the calculation
procedures have been understand and verify with reference sources.
Here, the computer program using FEM will be developed using MATLAB.
The flow chart of the program had been construct first than the process of developing
program begin.
Data and Result generated from previous student / any valid data
Several input data for the computer program such as mooring line data and
Spar platform characteristic has been taken from several applicable resources such as
books, journals, non-confidential documents and electronic resources from the
internet such as e-journal and websites.
18
Parametric Studies
Parametric studies will be done in order to analyze the effect on the mooring
system performance when there are changes in parameters such as tension, drag,
water depth and mooring line geometry. Valid data will be used in order to
synchronize with real oceanographic situation such as wind, wave and current data.
The geometry of mooring line will also be taken from industrial standard usage and
according to the recognized standard rules such as API and DNV criteria.
The final task is to analysis the result between the static of mooring line and
dynamic of mooring line.
This Master Project will be carried out within a year and divided into two
sessions. The first sessions are Master Project 1 and Master Project 2. The research
scheduling is shown in Table 3.1 and Table 3.2.
19
MATHEMATICAL FORMULATION
4.1 Introduction
This section discusses the theoretical method used to carry out analysis in this
study. Two parts need to be considered here. The first part is to understanding the
theoretical method used to calculate and determined the behavior of Spar platform
when experiencing wave or any forces acting on the Spar in the sea and the second
part is to understand the theoretical method used to calculate the performance of
mooring line when attach to the Spar platform.
4.2 Surface Area and Offset Calculation Method for Spar Platform
Spar platform is exactly having the same shape of long circular cylinder. In
this study, Froude-Krylov theory will be used to calculate the forces acting on the
spar. According to Froude-Krylov theory, evaluation of the force is performed by
calculating the wave induced pressure over an element of the body surface area,
21
multiplying it with the elemental area and then integrating the product to cover the
whole submerged surface. First we have to calculate pressure at the body surface
points (by Airy wave theory).
F FK
= p n ds (4.1)
SW
where
F FK
- Foude-Krylov force
This assumption is not valid when high diffraction is expected. Note that the
Froude-Krylov theory is approximate, generally not used in rigorous design but
found to be good for submerged objects or objects with small diffraction.
dX
Hence for segment area shows on the Figure 4.2, the normal force acting on the
segment is
1
F= C D (dX dZ ) V 2 (4.3)
2
Sinusoidal wave have been studied without placing any restriction on the
magnitude of water depth, h, relative to wavelength, and the wave velocity or celerity
has been found to be [13]
24
gLW 2h
VW = tanh (4.4)
2 LW
where VW is the wave velocity or celerity, LW is the wavelength, and h is the water
depth. However, if the water depth is very much less in magnitude than the
wavelength (i.e., h / LW 0 ), then
2h 2h
tanh = kh
LW LW
VW = gh (4.5)
This means that in shallow water all waves travel with the same velocity
regardless of their wavelengths. When the water depth becomes large in comparison
with the wavelength, that is, when h / LW is very large, then
gLW
VW = (4.6)
2
since tanh x 1 when x . Equation 4.6 shows that, unlike shallow water waves,
deep water waves propagate at speeds depending on their lengths.
Wavelength is measured from crest to crest. If TW is the time required for a particle at
a certain crest to reach the next crest, then
LW = VW TW (4.7)
where
LW = wavelength
TW = wave period
or
2LW
TW = (4.8)
g
From the relationship of velocity, length and period of waves, the equation for the
sinusoidal wave can be expressed as
= a cos k ( x VW t )
2 gLW
= a cos(kx t (4.9)
LW 2
= a cos(kx W t )
The radius of the orbit of a particle in deep water decreases rapidly with its depth
from the surface. This is expressed analytically as
z
= e kz (4.10)
a
Therefore,
z
= e [( 2 / L
W )z]
(4.11)
a
26
= z cos k ( x VW t )
= a e kz cos k ( x VW t )
or by first approximation
= a e kz cos(kx W t ) (4.12)
The water particles on the surface during wave motion are not absolutely still
but possess a velocity of constant magnitude while rotating steadily. When a water
particle is on the wave crest, it moves forward with the wave, whereas a particle
moves backward, in the opposite direction of the wave motion, when it is in the
trough of a wave. The wave particles move vertically downward or upward when the
wave passes through the undisturbed water level.
In the case of deep water sinusoidal waves, which very small amplitude, the
paths of the water particles are circular, but for waves of finite amplitude the water
particle possess forward velocity for a longer period of time than backward velocity.
The velocities of water in the horizontal and vertical directions are given as
The drag force, which includes the relative motion between the structure and the
wave, per unit of length is given by Morisons equation [14]
where;
27
CD = drag coefficient
w = density of water
u& = velocity of the fluid in the horizontal direction as shown in equation (4.13)
X& = velocity of Spar platform
UC = current velocity
The equation of motion of the Spar platform under regular wave is given below:
K m - Mooring Stiffness
F (t ) - External forces
The mass matrix represents the total mass of the Spar platform including the
mass of the soft tanks, hard tanks, deck, ballast and the entrapped water. The added
mass matrix is obtained by integrating the added mass term of Morisons equation
along the submerged draft of the Spar platform. Mass is taken as constant and it is
assumed that the masses are lumped at the center of gravity. The structural damping
28
matrix is taken to be constant and is dependent on mass and initial stiffness of the
structure. The stiffness matrix consists of two parts: the restoring hydrostatic force
and the stiffness due to mooring lines.
M X + B X + KX = F (4.17)
in the usual notation; xi and xi +1 are taken to be the values of vector x at times i and
i + 1 such that t = t i +1 t i .
Newmark- technique assumes that the displacement and velocity at the end
of a time interval can be related to the displacement, velocity and acceleration at the
beginning of the time interval by the equation
1
(t ) X i + X i +1
X i +1 = X i + (4.18)
2
29
and
1
X i +1 = X i + (t ) X i + (t ) X i + (t ) X i +1
2 2
(4.19)
2
M x i 1 + B x i 1 + Kxi 1 = Fi 1 (4.20)
M x i + B x i + Kxi = Fi (4.21)
M x i +1 + B x i +1 + Kxi +1 = Fi +1 (4.22)
(t )2 M x i +1 + 1 xi xi + 1 xi 1 + 1 xi + 1 x i 1 +
2 2 2 2
(t )2 B 1 x i + 1 x i 1 + x i +1 x i + 1 x i x i 1 +
(4.23)
2 2 2
(t )2 K [xi +1 + (1 2 )xi + xi 1 ] = (t )2 [Fi +1 + (1 2 )Fi + Fi 1 ]
1
M + 2 (t )C + (t ) K xi +1 = (t ) [Fi +1 + (1 2 )Fi + Fi 1 ] +
2 2
(4.24)
[
] 1
2M (t ) (1 2 )K xi M (t )B + (t ) K xi +1
2
2
2
30
Thus the displacements at time i + 1 can be obtained from the displacement at times
i and i 1 . Displacement x1 at time t can be obtained by a special case of Equation
(4.24) obtained from Equations (4.22), (4.23) and (4.19) as
1 2 1 1 1
M 2 (t )B + (t ) K x1 = (t ) F1 + (t ) 2 I + 4 tBM Fo (4.25)
2 2
with x0 = x 0 = 0 at t = 0 .
t
= 0.318 for = 0 (4.26)
Tn
t 1
= 0.450 for = (4.27)
Tn 8
t 1
= 0.551 for = (4.28)
Tn 6
Once the condition for stability is met for either method, the accuracy of the
solution must be investigated to ensure that a sufficiently small values of t is used
for accuracy but is yet too small that computation time is prohibitive.
The coordinate system used for the Spar platform is shown in the Figure 4.3
below. [16]
31
3
Y
2
X
y 1
From Figure 4.3, translational and rotational motions are referred to in terms
of surge (X), sway(Y), heave (Z), roll 1 (X-axis), pitch 2 (Y-axis), and yaw 3 (Z-
axis). Two coordinate systems are presented. The (x,y,z) axis represents a global
coordinate system fixed in space and (X,Y,Z) represents a coordinate system fixed to
a rigid body.
r r r
X = [ A].( x xi ) (4.29)
r r r
x = [ A] . X + xi
T
(4.30)
32
r
Here [A] is a transformation matrix, and xi is the translation of the origin of
the body coordinate system with respect to the global coordinate system. The
coordinate transformation matrix for this coordinate system is shown in the Table
4.1.
Coordinate System
A11 C2C3
A12 C2S3
A13 -S2
A21 S1S2C3 - C1S3
A22 S1S2S3 + C1C3
A23 C2S1
A31 C1S2C3 + S1S3
A32 C1S2S3 - S1C3
A33 C2C1
where;
C1 = cos (1)
C2 = cos (2)
C3 = cos (3)
S1 = sin (1)
S2 = sin (2)
S3 = sin (3)
33
The mass matrix represents the total mass of the Spar platform including the
mass of the soft tanks, hard tanks, deck, ballast and the entrapped water. The added
mass matrix is obtained by integrating the added mass term of Morisons equation
along the submerged draft of the Spar platform [15]. Mass is taken as constant and it
is assumed that the masses are lumped at the center of gravity.
The general added mass matrix of a circular cylinder with arbitrary end co-
ordinates can be calculated by assuming that only the components of acceleration
normal to the cylinder axis are significant. Thus, given the cylinder end coordinates,
diameter and applicable normal flow added mass coefficient, a generalized added
mass matrix for the cylinder can be readily evaluated.
L= (x 2 x1 )2 + ( y 2 y1 )2 + (z 2 z1 )2 (4.31)
x 2 x1 y y1 z z1
cos = , cos = 2 , cos = 2 (4.32)
L L L
34
The angles and are defined in Figure 4.4 and are related to angles and
through the equations
OF = h cot
DF = CE = h cot cos
cos = cot cos
cos = cot cos
Thus the added masses due to linear accelerations parallel to the x, y and z axes are
force induced moments about Ox, Oy, Oz due to linear accelerations along the x, y
and z axes. These moments are computed by integrating the moments due to added
mass forces along the cylinder length. Note that the above matrix (Equation (4.35)) is
symmetric.
in the x, y and z axes directions, respectively, on a cylinder element of length dl. The
total moment of the forces about the x axis is
36
m31 L m L
m41 =
L 0
y dl 21 z dl
L 0
But
1 L y + y2
L 0
y dl = 1
2
= ym
and
1 L z +z
L 0
z dl = 1 2 = zm
2
(4.36)
for
y y1
y = y1 + 2 l
L
and
z z
z = z1 + 2 1 l
L
Thus
m41 = m31 ym m21 zm
m51 = m11 zm m31 xm
m61 = m21 xm m11 ym
m42 = m32 ym m22 zm
m52 = m12 zm m32 xm (4.37)
m62 = m22 xm m12 ym
m43 = m33 ym m32 zm
m53 = m31 zm m33 xm
m63 = m32 xm m31 ym
Now mij for i = 1 to 6 and j = 4 to 6 are added mass matrix terms due to angular
accelerations about the Ox, Oy, and Oz axes. In the same way as before, for unit
angular accelerations about Ox , the linear accelerations of element P with
coordinates (x, y, x ) are 0, z and + y along the Ox, Oy, and Oz axes respectively.
parallel to the Ox, Oy, and Oz directions, and the force components due to
acceleration y are
The integrated sum of these forces along the Ox, Oy, and Oz axis will give terms
m14 , m24 , m34 which are identical to the m41 , terms given by Equations (4.37) above
thus confirming the matrix symmetry.
Also the summed moment of these forces about the x axis gives
L m22 z 2 L m yz L m32 zy Lm y
2
m44 = dl 23
dl + dl + 33
dl
0 L 0 L 0 L 0 L
z2 L yz L y
2
= m22
L
dl 2 dl + m33 dl
0 L 0 L 0 L
Now
1 L 2
L 0
1
(
y dl = yn = y12 + y1 y2 + y22
3
)
1
L 0
L 1
(
z 2 dl = zn = z12 + z1 z2 + z22
3
) (4.38)
1 1
yz dl = ( yz )n = (2 y1 z1 + 2 y2 z2 + y1 z2 + z1 y2 )
L
L 0 6
where
38
(xy )n = 1 (2 x1 y1 + 2 x2 y2 + x1 y2 + x2 y1 )
6
(4.41)
(zx )n = 1 (2 z1 x1 + 2 z2 x2 + z1 x2 + z2 x1 )
6
where
1
xn = ( x12 + x1 x2 + x22 ) (4.43)
3
A simplified form of the added mass matrix can be obtained for a non-
elongated body. The derivation given below applies for an arbitrary non-elongated
body that has different added mass forces for acceleration components parallel to the
three reference axes directions. For a non-elongated body in a reference system Oxyz ,
the first three diagonal terms of added mass matrix can be written as
m11 = Cm1V
m22 = Cm 2V (4.44)
m33 = Cm 3V
where is fluid density, V is the body volume Cm1 , Cm 2 and Cm 3 are added mass
coefficients for body accelerations parallel to the Ox, Oy, and Oz axes respectively.
For a spherical body of radius a, however,
39
4 3
V = a and Cm1 = Cm 2 = Cm 3 = 0.5
3
The remaining terms of the added mass matrix are obtained by calculating the
acceleration reaction forces due to unit linear and angular acceleration along the
reference axes. For a body with centre of volume (x1 , y1 , z1 ) , this yields
The damping matrix relates the velocity square dependent drag force on an
immersed circular cylinder to the fluid structure relative velocity vector. An equation
of the form
Fi = bij x j x j (4.46)
describe the relation. The column vector x j of surge, sway and heave velocity and
angular velocities about these axes appear as individual vector element square terms.
The modulus sign exists to ensure that negative velocity corresponds to a negative
drag force. The notation is identical to that used before, with bij being the (6 x 6)
1
k3 = CD Ld (4.47)
2
b11 = k3 sin 3
b21 = k3 cos cos sin
b31 = k3 cos cos sin
b12 = k3 cos cos sin
b22 = k3 sin 3
b32 = k3 cos cos sin
b13 = k3 cos cos sin
b23 = k3 cos cos sin
b33 = k3 sin 3
b41 = b31 ym b21 zm
b51 = b11 zm b31 xm
b61 = b21 xm b11 ym
b42 = b32 ym b22 zm
b52 = b12 zm b32 xm
b62 = b22 xm b12 ym
b43 = b33 ym b23 zm (4.48)
b53 = b13 zm b33 xm
b63 = b23 xm b13 ym
A set of further expressions have to be defined for the remaining terms. Now
(
x p = sgn ( xm ) x12 + x1 x2 + x22 / 3 ) for x1 x2 0
and (4.49)
xp =
(
sgn( x2 ) x13 + x23 ) for x1 x2 < 0
3( x2 x1 )
(
y p = sgn ( ym ) y12 + y1 y2 + y22 / 3 ) for y1 y2 0
sgn ( y )( y + y22
3
)
yp = 2 1
for x1 x2 < 0
3( y2 y1 )
and (4.50)
(
z p = sgn ( zm ) z + z1 z2 + z / 3 for
2
1
2
2 ) x1 x2 0
sgn ( z )(z + z22
3
)
zp = 2 1
for z1 z2 < 0
3( z2 z1 )
42
(
I x = sgn ( xm ) x13 + x12 x2 + x1 x22 + x23 / 4 ) for x1 x2 0
Ix = sgn ( x )
(x 3
1 + x12 x2 + x1 x22 +x )3
2
+
x14
for x1 x2 < 0
2( x2 x1 )
2
4
(
I y = sgn y13 + y12 y2 + y1 y22 + y23 / 4 ) for y1 y2 0
I y = sgn ( y2 )
(y 3
1 + y12 y2 + y1 y22 + y23
+
y14 ) for y1 y2 < 0
(4.51)
4 2( y2 y1 )
(
I z = sgn ( zm ) z13 + z12 z2 + z1 z22 + z23 / 4 ) for z1 z2 0
Iz = sgn ( z )
(z 3
1 + z12 z2 + z1 z22 +z )
+
3
2 z14
for z1 z2 < 0
2( z2 z1 )
2
4
The description of a number of other terms is simplified if variables q and r can each
denote either x, y or z. Thus, the expression
I qr r =
1
12
[ ( )
q 2 r12 + 2r1r2 + 3r22 + q1 3r12 + 2r1r2 + r22 ( )] if r1r2 0
and
I qr r =
1
12
( )
q 2 r12 + 2r1r2 + 3r22 + q1 3r12 + 2r1r2 + r22( ) (4.52)
1
b11 = Cdx qr
2
1
b22 = Cdy pr
2
1
b33 = Cdz pr
2
b21 = b31 = b12 = b32 = b13 = b23 = 0
b51 = b11 z1
b61 = b11 y1
b42 = b22 z1
b62 = b22 x1
b43 = b33 y1
b53 = b33 x1
b41 = b52 = b63 = 0
b24 = b22 z z1
b34 = b33 y1 y1
3 3 3
b44 = b33 y1 + b22 z1 + b22 z1
b54 = b33 x1 y1 y1
b64 = b22 x1 z1 z1
b15 = b11 z1 z1
b35 = b33 x1 x1
b45 = b33 yx x
3 3
b55 = b11 z1 + b33 x1
b65 = b11 y1 z1 z1
b16 = b11 y1
b26 = b22 x1
b46 = b22 z1 y1 x1
b56 = b11 z1 y1 y1
3 3
b66 = b11 y1 + b22 x1
(4.54)
b14 = b25 = b36 = 0
45
The stiffness matrix consists of two parts: the restoring hydrostatic force and
the stiffness due to mooring lines. The coefficients, Kij of the stiffness matrix of Spar
platform are derived as the force in degree-of-freedom i due to unit displacement in
the degree-of-freedom j, keeping all other degrees-of-freedom restrained. The
coefficients of the stiffness matrix have nonlinear terms. Further, the mooring line
tension change due to the motion of the Spar platform in different degrees-of-
freedom which makes the stiffness matrix response dependent.
Hydrostatic stiffness matrix K hy , will only arises in the heave, roll and pitch
degrees of freedom due to buoyancy forces in the water plane cutting members of the
hull. The hydrostatic stiffness is calculated based on the initial configuration of the
Spar platform and is given by
0 0 0 0 0 0
0 0 0 0 0 0
0 0
[K hydrostatic ] =
0 K 33hy 0 0
(4.55)
0 0 0 K 44hy 0 0
0 0 0 0 K 55hy 0
0 0 0 0 0 0
where,
K 33hy = wD2 (4.56)
4
K 44hy = K 33hy Td h1 wD4 (4.57)
64
K 55hy = K 33hy Td h1 wD4 (4.58)
64
h1 = S cb S cg (4.59)
S cb - is the distance from the keel of the Spar platform to its center of buoyancy
S cg - is the distance from the keel of the Spar platform to its center of gravity
The resultant stiffness matrix is evaluated assuming that the surface platform
moves through small displacements relative to the cable lengths involve. Each cable
has a constant tension,T , an elastic stiffness, K, and is strung between
coordinates (x1 , y1 , z1 ) on the seabed and (x2 , y2 , z2 ) at the surface platform; both
relative to the platforms principal axes system, Oxyz .
x2 x1 y y1 z z
cos = , cos = 2 , cos = 2 1 (4.60)
L L L
L= (x2 x1 )2 + ( y2 y1 )2 + (z2 z1 )2
To evaluate the cable stiffness matrix, consider that the surface platform translates in
the positive x direction through a small distance, x
ke ( x2 x1 )
T = keL = x (4.62)
L
The resulting restoring force component along the x axis can be written as
T x = (T + T )cos 1 T cos , where T is the cable tension and 1 is given
by
x2 + x x1
cos 1 = (4.63)
L + L
Therefore
x
1+
x x x2 x1 T (x2 x1 )
Tx = (T + T ) 2 1
L 1 + L L
L (4.64)
x L T
= T cos +
x2 x1 L T
T Lx k (x x )
Tx = cos cos x + e 2 1 x
L x2 x1 T
(4.65)
T
= ke cos 2 + sin 2 x
L
In the limit as x 0
Tx Tx T
= = k11 = ke cos 2 + sin 2 (4.66)
x x L
48
which is the first term in the (6 x 6) stiffness matrix for Km. The remaining terms
corresponding to the restoring forces due to translations can be derived in a similar
fashion in terms of kij where i,j are row and column numbers respectively. These are
given by:
k 41 = k31 y2 k21 z2
k51 = k11 z2 k31 x2
k61 = k21 x2 k11 y2
k 42 = k33 y2 k22 z2
k52 = k21 z2 k32 x2
k62 = k22 x2 k21 y2
k 43 = k33 y2 k32 z2
k53 = k31 z2 k33 x2
k63 = k32 x2 k31 y2
k 44 = k33 y22 2k32 y2 z2 + k22 z22
k54 = k31 y2 z2 k21 z22 k33 y2 x2 + k32 x2 z2
k64 = k32 x2 y2 k 22 x2 z2 k31 y22 + k 21 y2 z2
k55 = k11 z22 2k31 x2 z2 + k33 x22
k65 = k21 x2 z2 k32 x22 k11 y2 z2 + k31 x2 y2
(4.68)
k66 = k22 x22 2k 21 x2 y2 + k11 y22
The cable stiffness matrix is computed for each cable in a mooring system and
summed to yield a total mooring stiffness matrix, Km.
49
The analysis of cables, or mooring lines that maintain surface and subsurface
platform on station, is the study of the loads exerted on the lines by gravitational and
time-invariant current fields and of their resulting effects. This study allows one to
predict the geometry of the line between the Spar and its anchoring point and the
distribution of stresses from top to bottom.
Gravity forces, cable drag and line tension is the forces to consider for the
study of mooring lines immersed in steady-state currents. If only small currents are
present the mooring line of a surface platform hangs almost vertically, the tension at
any point being nearly equal to the immersed weight of the line below that point.
When strong currents prevail, however, considerable drag forces are exerted on the
platform and the mooring line assumes a new equilibrium configuration. Line tension
drastically increases and strong anchoring becomes necessary.
The study of mooring cable will first address the two-dimensional cases
where the line and the current can be assumed to be coplanar. Forces that need to be
considered are:
The immersed weight or the resultant gravity force per unit of cable length is
usually defined as
P = Bc Wc (4.69)
50
where
Bc - is cable buoyancy per foot that is the weight of the water displaced by one foot
of cable.
Wc - is air weight of one foot of cable.
b) Cable Drag
Rds = 1 C DN dV 2 ds (4.70)
2
where
where
Normal and tangential drag coefficient vary with Reynolds numbers and
types of cable. For a smooth cable and below the critical Reynolds number, CDN
values are between 0.9 and 1.2. This value increases with cable roughness to 1.4.
Finally, if strumming induced by vortex shedding is present, a value as high as 1.8
may be appropriate.
The computer solution uses a finite elements method which extrapolates the
conditions of equilibrium obtained for cable elements of infinitesimal length to cable
segments of finite lengths. To this end the mooring line is first divided in a number
of straights segments, the larger the number the better the model. Discrete packages
are also considered as segments, inserted at their proper place. Physical and
mechanical properties needed for sub-segment calculations are then assigned to the N
segments representing the entire mooring. Surface or subsurface buoy characteristics
are also compiled. This nomenclature process is the first programming operation.
When completed, the computer knows the name, diameter, immersed weight, drag
coefficient, elastic constants, etc. of each individual segment. A description of the
current profile a list of current values at a number of depths is often used and the
depth of the bottom is also part of the required input.
For both surface and subsurface platform systems the process starts at the
platform end. To initiate the computation the resultant of the forces applied to the
Spar must first be calculated [17]. In the case of the surface mooring, the draft of the
53
Spar is not known. It depends on how hard the mooring line pulls, which is precisely
what we want to establish. In the case of the subsurface mooring, the depth of the
Spar is not known either. Thus, assumptions must be made to start the computation
process.
To this end, for the surface Spar case, the Spar draft is arbitrarily set. Given
the hull geometry, the draft, and the current at the surface, the buoyancy of and the
drag on the buoy can be calculated.
It is the depth that is arbitrarily set in the subsurface buoy case. Given the
depth, the current at that depth is fixed and again the drag on the buoy can be
calculated. Thus, if BB and DB respectively, denote the initial, guessed values of
the buoyancy and drag forces and WB is the weight of either type of buoys, the
boundary conditions applied at the upper end of the mooring line are
RX (0) = DB (4.73)
RZ (0) = BB - WB (4.74)
Figure 4.6: Forces applied to first mooring segment (two dimensional model)
54
Consider next segment of the line immediately below the buoy (Figure 4.6).
For equilibrium to prevail the tension, T(1), in this segment must be
Knowing that this segment is in line with the tension vector at its upper end, its
inclination is given by
Under the action of the pull T(1) the segment stretches to a length S(1)
The x and z coordinates of the segment lower end can now be computed using
The external forces acting on our first segment are its immersed weight W(1),
and the normal and tangential components of the flow-induced resistance. To this
end the value of the current at mid-segment depth (i.e., at Z(1)) is found from the
current subroutine and D(1) and F(1) are evaluated using equation 4.71 and 4.72.
Next, the horizontal and vertical vector sums Fx(1) and Fz(1) of these external forces
are computed using
These sums represent the changes in the boundary conditions occurring over
the length of the first segment. The resultant force applied at the beginning of the
next, or second, segment will therefore have components:
The tension at the segment upper end and its inclination will be given by
and,
These values are used to calculate the stretched length and the coordinates of
the segment end point. These in turn are used to evaluate the external forces applied
to the segment and their horizontal and vertical projections, following the procedure
just described.
The recurrence formulas for carrying out the computation process for the
resultant forces applied at the end of any segment n, the tension, the orientation
angles, the stretched length and the segment coordinates can now be formulated as:
Assumptions
Consider a strained cable element of length ds ' located at point P' . The
forces that one could consider to derive the equation of motion of the cable element
are shown in Figure 4.7. Their expressions are as follows:
57
a) Weight
The force due to gravity, W , is given by
W = gm' ds ' k (4.93)
where g is the gravity acceleration and m' the line mass per unit of length in the
s ' space
b) Buoyancy
The buoyancy force, B , is given by
B = + g w Ads' k (4.94)
58
Where A is the reduced area of the cable cross section at the point P and is a
function of the tension, T, at that location, that is A = A(T ) , and w is the water mass
density.
c) Normal Drag
The normal drag, D , is given by
1
w C DN d U N V N U N V N ds'
D= (4.95)
2
Where U N is the component of the fluid velocity field normal to the cable, that is
U N = U U u u (4.96)
u being a unit vector tangent to the cable at point P. V N is the component of the
cable element velocity normal to the cable element, that is,
V N = V V u u (4.97)
C DN is the cable coefficient of normal drag, which could, if so required, account for
strumming effects; d is the cable effective diameter at point P and is a function of
the tension, T, at that point, that is,
d = d (T )
59
d) Tangential Drag
The tangential drag, F , is given by
1
w C DT d U T V T U T VT ds'
F= (4.98)
2
Where U T is the component of the fluid velocity field tangential to the cable, that is,
U T = U u u (4.99)
VT is the component of the cable element velocity tangential to the cable element,
that is,
VT = V u u (4.100)
e) Inertial Force
The inertial force, I , due to the water added mass effect, can generally be expressed
by
U V
I = m' a ds ' (4.101)
t t
Where, m' a is the added mass per unit of length in the space s and is given by
60
s
m' a = m a = w AC m (4.102)
s '
With m' a the added mass per unit of length in the s space, and C m the added mass
coefficient of the cable. U t is the acceleration of the velocity field that would
occur under unsteady flow conditions. For example, one could consider a wave
velocity field superimposed to a steady-state current. V t is the acceleration of the
cable element.
f) Tension
The tension force at one end of the cable element is T ( s ' ) whereas at the other end
the tension is T (s '+ ds ') .
Applying Newtons law i F i = m a to the cable element of mass mds yields
V 1
1
m' = gds' (m'w A) k + wCDN d ds' Un Vn Un Vn + wCDTd ds' UT VT UT VT +
t 2 2
U V
m'a ds' + T (s'+ds') T (s')
t t
CHAPTER 5
PROGRAMME DEVELOPMENT
5.1 Introduction
The programming language was written and developed by the author of this
thesis by using the MATLAB-Functions (M-File) programming sheet. This
programmed is used to facilitate the calculation processes which are normally
involved in repeating computation and iteration before meet the convergence point.
This chapter will present and briefly discuss about the MATLAB-Functions (M-File)
as an alternative of programming software.
i. if statements
ii. switch statements
iii. for loops
iv. while loops
v. continue statements
vi. break statements
63
The main program consist of the overall calculation from determining the
resultant forces acting on the Spar till obtaining the mooring line profile which are
attach to the Spar platform. Figure 5.1 shows the flow chart for the main program of
this mooring programming.
65
Start
Read
input data
Element elongation
N=1
Step = 1
Stop = 1000
Print result and
plotting
Start
Read
input data
Element elongation
Equation of motion
YES
N=1
Step = 1
Stop = 1000
then can be calculated. The resultant force in vertical and horizontal direction at the
end of first segment will determine the angle and tension in mooring line for next
segment. This process will continue until the vertical coordinate of the element (Z)
equal with water depth than the program will terminate and plot the catenary
mooring graph and also complete with six degree of freedom motion surge, sway,
heave, roll, pitch and yaw.
CHAPTER 6
6.1 Introduction
This section will discuss on the result generated from the computer
programming which has been developed using MATLAB in the M-File
programming worksheet. In order to run this program, the initial value and all
parameters required need to be determined. Spar platform and mooring cable
characteristic is first need to be clarified. Then other environmental condition such as
water depth, wave forces and current speed are also act as important parameters
before any engineering analysis can be carried out. These parameters will be
mentioned in the next section in this Chapter.
The Spar platform can be translated as a rigid cylinder with six degrees-of-
freedom which consists of three linear motions Surge, Sway and Heave along X, Y
74
and Z axis and three rotational motion Roll, Pitch and Yaw about X, Y and Z axis at
its center of gravity, CG. The stability and stiffness is provided by a number of
mooring lines attached near the center of gravity for low dynamic positioning of the
Spar platforms. When the platform deflects the movement will take place in a plane
of symmetry of the mooring system, the resultant horizontal force will also occur in
this plane and the behavior will be 2-dimensional. It is the force and displacement
(excursion) at this attachment point that is of fundamental importance for the overall
analysis of the platforms.
It is assumed that the Spar platform is connected to the sea floor by four multi
component catenary mooring lines placed perpendicular to each other, which are
attached to the Spar platform at the fairleads. But to simplify the analysis, only single
catenary line is analyzed. The development of Spar platform model for dynamic
analysis involves the formulation of a nonlinear stiffness matrix considering mooring
line tension fluctuations due to variable buoyancy and other nonlinearities. Table 6.1
shows characteristic of the Spar platform and wave data using in this analysis.
75
Table 6.2 shows the mooring line data used in this research. Type of mooring
line used is the wire rope. Other type of mooring line that normally used for moored
platform is chain and neutrally buoyant cable such as polyester cable. Water depth
value is 914.4 meters from the seabed.
76
Prior calculating force and moment acting on the Spar body, segmentation of
side and bottom cylinder need to be carried out and determined. From this
segmentation the offset value of X, Y and Z nodes coordinate values on the cylinder
can be obtained. Then, mean value or center of segments also needs to be calculated
in order to calculate the forces acting at the center of the elements. This research is
using the Froude-Krilov theory to evaluate the initial vertical, horizontal forces and
pressures on the Spar, as per mentioned in previous Chapter 4. Figure 6.1 and
Figure 6.2 shows the segmentation and surface normal of the vertical cylinder
created using MATLAB programming. This normal surface can easily be created by
using MATLAB source code function in the M-File that is surfnorm (XmOff,
YmOff, ZmOff). Appendix A1 shows the complete programming for this surfnorm
function.
77
Figure 6.1: Mesh representing the surface normal element for Spar platform
78
Figure 6.2: Normal forces acting on the segment center of the Spar
According to Figure 6.2, the red lines represent the normal forces acting on
the Spar. Summed of the forces will give the total forces acting on the Spar platform.
Details on the forces and moments calculation calculated in the M-File programming
worksheet shown in Appendix B of the report.
79
Prior designing the mooring system for any floating platform structures,
dynamic behaviour of the structures need to be studied first. Also, consideration on
the environmental conditions where the platform is going to operate is the most
important criteria before any engineering design can take place. Thus, the dynamic
behaviour of these structures is, therefore, of design interest.
The initial condition of the Spar or any type of platform operating in the sea
condition need to analyze prior selecting and designing the mooring system required
for that particular platform. After the initial conditions are known, then engineers can
start thinking on how to design their mooring system.
When the dynamic response predominates, the behaviour under wave loading
becomes nonlinear because the drag component of the wave load, according to
Morisons equation, varies with the square of the velocity of the water particle
relative to the structure [13]. At each step, the force vector is updated to take into
account the change in the mooring line tension. The equation of motion has been
solved by an iterative procedure using unconditionally stable Newmarks Beta
method. The algorithm based on Newmarks method for solving the equation of
motion is given below:
Step 1: The stiffness matrix [K ] , the damping matrix [C ] , the mass matrix [M ] , the
initial displacement vector {X o }, the initial velocity vector {X& o }are given as the
{X&& } = M1 (F
o o CX& o KX o )
Step 4: = 0.5, = 0.25 (0.5 + ) and with the integration constants as:
2
(
a o = 1 / t 2 )
a1 = / t
a 2 = 1 / t
a3 = (1 / 2 ) 1
a 4 = ( / ) 1
a5 = (t / 2)[( / ) 2]
a 6 = t (1 )
a 7 = t
Step 5: K = K + a o M + a1C
Step 7: The values of X , X& , X&& , which are calculated at the time step t + t are used
to evaluate Ft + t such that convergence is achieved to the accuracy of 0.01%, before
going to the next time step, otherwise iteration is carried out. Since the [K ] of the
Spar platform is response dependent, the new [K ] is generated and the difference
from the old [K ] is used from step No. 5 onwards by taking it to Ft + t . Appendix H
81
which is the main program for the whole programming shows how the iteration
procedure has been carried out.
Coupled analysis between mooring line and the Spar platform has been
carried out in this programming. The motion of the Spar is analyzed in the six degree
of freedom motions which are Surge, Sway, Heave, Rolling, Pitching and Yawing.
Figure 6.3, 6.4 and 6.5 represent the result of the Spar platform motions amplitude
at the initial condition parameters value of current velocity, wave height and
wavelength.
82
Figure 6.6: Surge motion of Spar platform at current speed 0.1 and 1.0m/s
Figure 6.7: Sway motion of Spar platform at current speed 0.1 and 1.0m/s
86
Figure 6.8: Heave motion of Spar platform at current speed 0.1 and 1.0m/s
Figure 6.9: Roll motion of Spar platform at current speed 0.1 and 1.0m/s
87
Figure 6.10: Pitching motion of Spar platform at current speed 0.1 and 1.0m/s
Figure 6.11: Yaw motion of Spar platform at current speed 0.1 and 1.0m/s
When current speed increase, mostly, all amplitudes for each motion are very
small but from the result we can conclude that:
i. Three motions which much significantly affect the behavior of the Spar are
Heaving, Pitching and Surging This is because, the current speed is consider
to move horizontally to the x- axis of Spar coordinate system. Heaving
motion amplitude increase but heave below negative region, meaning that,
the mooring line pull more the spar downward the water depth. Surge and
pitching motions increase significantly.
88
iii. Since the movement of the platform is very small we can say that the stiffness
of the mooring line is compliant enough to resist the environmental loads.
iv. Since the Spar has a symmetrical shape, normally consideration only be made
on the surge or sway and pitching or rolling only. This explains in item (i)
and definitely proving the theory from A.K Argawal [14].
This part will discuss the mooring line analysis when experienced increasing
current velocity to the dynamic of mooring line. Figure 6.12, 6.13 and 6.14 shows
the behavior of mooring line profile at different current speed.
89
As per mentioned earlier in the previous chapter, the vertical movement and
the horizontal movement of floating platform give significant effect on the drilling
operations. Too much of vertical movement will damage the marine riser and the
horizontal movement will directly affect the stability of the platform and will cause
damage and threaten much on the workers working onboard. American Petroleum
Institute Recommended Practice for Design and Analysis of Stationkeeping Systems
for Floating Structures (API RP 2SK), [19] recommend that, 4 percent offset of the
water depth for drilling operation to continue and 8 to 12 percent to prevent damage
to marine riser. API RP 2SK is the standard procedures that need to be followed by
engineers before designing their mooring system. Table 6.3 shows the comparison of
mooring profile when experiencing currents 0.1 m/s, 0.5 m/s and 1.0 m/s.
93
Suspended
Current Speed, Vc Height of Fairlead Horizontal
Length of
(m/s) (m) Excursion (m)
Mooring Line (m)
0.1 711.8 83.8 1006.7
0.5 657.2 221.4 1007.6
1.0 541.5 419.6 1008.5
From the result presenting in the Table 6.3, we can see that increasing in
current speed will definitely decrease the fairlead height from seabed, extend the
distance of downstream excursion and increase the length of suspended line means
decrease the length of mooring line laying on the seabed. The logically value
presented in this result principally validate the accuracy of the programming which
has been developed for this study. Figure 6.16 shows more clearly the differences of
mooring profile start from current speed 0.1m/s, 0.5m/s and 1.0m/s.
CONCLUSION
As for conclusion, the objectives stated in this report are achieved. Mooring
behavior and it characteristics has been determined and computer programming has
been created to facilitate the calculation process. From the static analysis we can
determine the design parameter for catenary mooring system simply by using the
powerful MATLAB software programming package.
REFERENCES
[1] The Specialist Committee on Deep Water Mooring, Final Report and
Recommendations to the 22nd ITTC, 1996.
[2] Fylling, I.J., 1992, Deep Water Mooring, FPS-2000 Mooring and
Positioning, Part 1.7 Deep Water Mooring, MARINTEK Report No.
513003.00.07, Trondheim.
[4] Buchner, B., Wichers, J.E.W. and de Wilde, J.J., 1999, Features of the State-
of-the-art Deepwater Offshore Basin, Proc. of the 31st Offshore Technology
Conference, Houston, Texas, OTC 10841, 12 pp.
[5] Lee, D.H., Joo, S.M., Choi, H.S., Song, M.J. and Kim, Y.S., 1998, Control
Performance of a Turret-Moored Vessel Assisted by Dynamic Positioning
System, Proc. of the International Conference on Control Application in
Marine Systems, CAMS'98, pp. 107-112.
[7] Bergdahl, L.M. and Rask, I., 1987, Dynamic vs. Quasi-Static Design of
Catenary Mooring System, Proc. of the 19th Offshore Technology
Conference, Houston, Texas, OTC 5530, Vol. 3, pp. 397-404.
[8] Fylling, I.J., Ottera, G.O. and Gottliebsen, F., 1987, Optimization and Safety
Consideration in the Design of Station-Keeping Systems, Proc. PRADS87
Symposium, Trondheim, Norway.
96
[11] http://en.wikipedia.org/wiki/Surface_normal
[12] http://en.wikipedia.org/wiki/Surface_normal
[14] A.K.Argawal, A.K. Jain, Dynamic behavior of offshore spar platforms under
regular sea waves
[15] Minoo H. Patel and Joel A. Witz, 1991, Compliant Offshore Structures,
Butterworth Heinemann.
[17] John B. Herbich, Editor, 1992, Handbook of Coastal and Ocean Engineering,
Vol 3, Gulf Publishing Company.
[19] Recommended Practice for Design and Analysis of Station Keeping Systems
for Floating Structures, API Recommended Practice 2SK, 2nd Edition, 1997
97
APPENDIX A
Function
[XOff,YOff,ZOff,XWtrOff,YWtrOff,ZWtrOff,SegArea,XmOff,YmOff,ZmOff]=s
egment_surf(dS,dV,dR)
% Segmenation of side cylinder
global T D H
NoHSegment=floor(pi*D/dS);
NoVSegment=floor(H/dV);
NoAngle=NoHSegment;
dS=floor((pi*D)/NoHSegment)+((pi*D)/NoHSegment-
floor((pi*D)/NoHSegment));
% dAngle=dS/(0.5*D);
dH=floor(H/NoVSegment)+(H/NoVSegment-floor(H/NoVSegment));
R=0.5*D;
% Segmentation of bottom cylinder
NoRSegment=floor(0.5*D/dR);
dR=floor(R/NoRSegment)+(R/NoRSegment-floor(R/NoRSegment));
dAngle=dS/(0.5*D);
for j=1:NoRSegment+1
Ri=(j-1)*dR;
if Ri==0 Ri=0.001; end
Zi=-T;
for i=1:NoAngle+1;
Angle=((i-1)*dAngle);
Xi=Ri*cos(Angle);
Yi=sign(sin(Angle))*sqrt(Ri^2-Xi^2);
XOff(j,i)=Xi;
YOff(j,i)=Yi;
ZOff(j,i)=Zi;
end
end
% waterline offsets
for i=1:NoAngle+1;
Angle=((i-1)*dAngle);
Xi=Ri*cos(Angle);
Yi=sign(sin(Angle))*sqrt(Ri^2-Xi^2);
98
XWtrOff(j,i)=Xi;
YWtrOff(j,i)=Yi;
ZWtrOff(j,i)=0;
end
[NoSegment,NoElement]=size(XOff);
for j=1:NoVSegment+1
Zi=(j-1)*dH-T;
for i=1:NoAngle+1;
Angle=((i-1)*dAngle);
Xi=R*cos(Angle);
Yi=sign(sin(Angle))*sqrt(R^2-Xi^2);
XOff(j+NoSegment,i)=Xi;
YOff(j+NoSegment,i)=Yi;
ZOff(j+NoSegment,i)=Zi;
end
end
[NoSegment,NoElement]=size(XOff);
% Obtain ordinat on the center of elements
for j=1:NoSegment-1
for i=1:NoElement-1
if j<=NoRSegment
k=0;
else
k=1;
end
Ax=[XOff(j,i) YOff(j,i) ZOff(j,i)];
Bx=[XOff(j,i+1) YOff(j,i+1) ZOff(j,i+1)];
Cx=[XOff(j+1,i) YOff(j+1,i) ZOff(j+1,i)];
Dx=[XOff(j+1,i+1) YOff(j+1,i+1) ZOff(j+1,i+1)];
AC=(Ax+Cx)/2;
AB=(Ax+Bx)/2;
BD=(Bx+Dx)/2;
CD=(Cx+Dx)/2;
CSegment=(AC+AB+BD+CD)/4;
XmOff(j,i)=CSegment(1,1);
YmOff(j,i)=CSegment(1,2);
ZmOff(j,i)=CSegment(1,3);
[Ai,Ygx,Zgx]=trapesium(Ax,Bx,Cx,Dx,k);
SegArea(j,i)=Ai;
end
end
99
function [A,Yg,Zg]=trapesium(A,B,C,D,k)
% This function calculate the area and center of area of trapeZium
by
% separating into two triangle form
% k = 1 ; bidang berada pada YZ
% k = 0 ; bidang berada pada XY
if k==0
else
end
A=(A1+A2);
if A~=0
Yg=(A1*Yg1+A2*Yg2)/(A1+A2);
Zg=(A1*Zg1+A2*Zg2)/(A1+A2);
if abs(Yg)<0.000001 Yg=0; end
if abs(Zg)<0.000001 Zg=0; end
else
Yg=0; Zg=0;
end
100
function [A,Yg,Zg]=triangle(y1,z1,y2,z2,y3,z3)
A=abs(0.5*(y1*z3-y3*z1+y2*z1-y1*z2+y3*z2-y2*z3));
if A<0.000001 A=0; end
if A~=0
Y=[y1 y2 y3];
Z=[z1 z2 z3];
index=[1 2 3];
Yp=(Y(index(2))+Y(index(3)))/2; Zp=(Z(index(2))+Z(index(3)))/2;
Yq=(Y(index(1))+Y(index(3)))/2; Zq=(Z(index(1))+Z(index(3)))/2;
if xor((Yp-Y(index(1)))==0,(Yq-Y(index(2)))==0)
index=[2 3 1];
end
Yp=(Y(index(2))+Y(index(3)))/2; Zp=(Z(index(2))+Z(index(3)))/2;
Yq=(Y(index(1))+Y(index(3)))/2; Zq=(Z(index(1))+Z(index(3)))/2;
aAP=(Zp-Z(index(1)))/(Yp-Y(index(1))); bAP=(Z(index(1))-
Y(index(1))*aAP);
aBQ=(Zq-Z(index(2)))/(Yq-Y(index(2))); bBQ=(Z(index(2))-
Y(index(2))*aBQ);
Yg=-(bAP-bBQ)/(aAP-aBQ);
Zg=aAP*Yg+bAP;
else
Yg=0;
Zg=0;
end
101
APPENDIX B
function Ord=transformation(Ordinat,fi,te,ce,Xg,Yg,Zg,T)
% This function obtains the transformated offset. Original axis of
x,y,z ofsets are at
% the center of gravity. Original axis of Xg, Yg, Zg is measured
from after peak
% point.
APPENDIX C
function
[Fx,Fy,Fz,Mx,My,Mz,Bx,By,Bz]=extforcemomen(Hw,Vw,Lw,fi,te,ce,time)
global grav NoRSegment NoAngle NoVSegment CdCoefConst CenterOffset
WtrSrfOffset OffsetSide OffsetBottom
global Xg Yg Zg T D rho
z=0;
k=2*pi/Lw;
W=sqrt(grav/(2*pi*Lw));
NewWtrOrdinat=transformation(WtrSrfOffset,fi,te,ce,Xg,Yg,Zg,T);
X=NewWtrOrdinat(:,1);
for i=1:NoAngle
x=X(i,1);
Zw(i,1)=Hw*exp(-k*z)*sin(k*x+W*time);
end
Z0=(max(Zw)+min(Zw))/2;
a=0.5*D;
if cos(te)==0
message('pitch or roll angle is imposible (teta= 90 deg)');
return
else
b=a/cos(te);
end
for j=1:NoVSegment+1
for i=1:NoAngle+1
Ordinat=OffsetSide(i,:,j);
NewSideOrdinat=transformation(Ordinat,fi,te,ce,Xg,Yg,Zg,T);
NewSideOffset(i,:,j)=NewSideOrdinat;
end
end
for j=1:NoRSegment+1
for i=1:NoAngle+1
Ordinat=OffsetBottom(i,:,j);
103
NewBottomOrdinat=transformation(Ordinat,fi,te,ce,Xg,Yg,Zg,T);
NewBottomOffset(i,:,j)=NewBottomOrdinat;
end
end
% Drag coefficients
TDi=T/D;
if TDi <= 40
TD=(CdCoefConst(1,:))';
CD=(CdCoefConst(2,:))';
Cd = interp1(TD,CD,TDi);
else
Cd=1.2;
end
AC=(Ak+Ck)/2;
AB=(Ak+Bk)/2;
BD=(Bk+Dk)/2;
CD=(Ck+Dk)/2;
ABCD=(AC+AB+BD+CD)/4;
[Pos]=position(P1,P2,P);
if Pos==1
KK=1;
else
KK=0;
end
% Horizontal Force and momen calculation
if Zai<=Z0
% Under water surface
%Vc=alpha*Zai+beta*Zai^2;
Vc=0;
V=(Vw+Vc);
dYXm=(BD(1,2)-AC(1,2))/(BD(1,1)-AC(1,1));
dZm=(CD(1,3)-AB(1,3))/(CD(1,1)-AB(1,1));
Ax=Ai*cos(dYdX);
Ay=Ai*sin(dYdX);
Fxs=KK*0.5*rho*Cd*Ax*V^2;
Fys=KK*0.5*rho*Cd*Ay*V^2;
if and(CheckX1>=CheckX2,CheckY1>=CheckY2)
Fzs=0.5*rho*Cd*(dX*dY)*V^2;
else
Fzs=0;
end
Fxi=Fxi+Fxs;
Fyi=Fyi+Fys;
Fzi=Fzi+Fzs;
Mxi=Mxi+Fys*(Xai-Xg);
Myi=Myi+Fxs*(Yai-Yg);
Mzi=Mzi+Fzs*(Zai-Zg);
dAxx=dAxx+KK*dY*dZ;
dAyy=dAyy+KK*dX*dZ;
dAzz=dAzz+KK*dY*dX;
else
% Upper water surface
Fxi=0;
Fyi=0;
Fzi=0;
Mxi=0;
Myi=0;
Mzi=0;
end
end
kkkk=0;
end
dX1=abs(Ax(1,1)-Bx(1,1));
dY1=abs(Ax(1,2)-Bx(1,2));
105
dZ1=abs(Cx(1,3)-Dx(1,3));
dX2=abs(Ax(1,1)-Bx(1,1));
dY2=abs(Ax(1,2)-Bx(1,2));
dZ2=abs(Bx(1,3)-Dx(1,3));
dX=0.5*(dX1+dX2);
dY=0.5*(dY1+dY2);
dZ=0.5*(dZ1+dZ2);
[Aj,Xaj,Yaj]=trapesium(Ax,Bx,Cx,Dx);
Zaj=(Ax(1,3)+Bx(1,3)+Cx(1,3)+Dx(1,3))/4;
SurfBottom=SurfBottom+Aj;
%Vc=alpha*Zai+beta*Zai^2;
Vc=0;
V=(Vw+Vc);
Fxs=0.5*rho*Cd*(dY*dZ)*V^2;
Fys=0.5*rho*Cd*(dX*dZ)*V^2;
Fzs=0.5*rho*Cd*(dX*dY)*V^2;
Fxj=Fxj+Fxs;
Fyj=Fyj+Fys;
Fzj=Fzj+Fzs;
Mxj=Mxj+Fys*(Xaj-Xg);
Myj=Myj+Fxs*(Yaj-Yg);
Mzj=Mzj+Fzs*(Zaj-Zg);
dAzz=dAzz+dX*dY;
end
end
NewCenterOffset=transformation(CenterOffset,fi,te,ce,Xg,Yg,Zg,T);
Mx=0; My=0; Mz=0; Area=0;
ControlVert=true;
j=1;
while ControlVert
%for j=1:NoVSegment+1
X0=NewCenterOffset(j,1);
Y0=NewCenterOffset(j,2);
Z0=NewCenterOffset(j,3);
ControlValue1=0; ControlValue2=0;
for i=1:NoHSegment
Zmin=min(NewSideOffset(:,3));
Zmax=max(NewSideOffset(:,3));
X1=NewSideOffset(i,1);
Y1=NewSideOffset(i,2);
Z1=NewSideOffset(i,3);
X2=NewSideOffset(i+1,1);
Y2=NewSideOffset(i+1,2);
Z2=NewSideOffset(i+1,3);
if and(Zmin>0,Zmax>0)
106
if Z0<0
% Calculate Triangle
if Z1>0
Y1=lineequ(Z0,Y0,Z1,Y1,0);
X1=lineequ(Z0,X0,Z1,X1,0);
Z1=0;
ControlValue1=ControlValue1+1;
end
if Z2>0
Y2=lineequ(Z0,Y0,Z1,Y2,0);
X2=lineequ(Z0,X0,Z1,X2,0);
Z2=0;
ControlValue2=ControlValue2+1;
end
[A,Ya,Xa]=triangle(Y0,X0,Y1,X1,Y2,X2);
[A1,Ya1,Za]=triangle(Y0,Z0,Y1,Z1,Y2,Z2);
elseif Z0>0
if Z1>0
Y3=lineequ(Z0,Y0,Z1,Y1,0);
X3=lineequ(Z0,X0,Z1,X1,0);
Z3=0;
ControlValue1=ControlValue1+1;
end
if Z2>0
Y4=lineequ(Z0,Y0,Z1,Y2,0);
X4=lineequ(Z0,X0,Z1,X2,0);
Z4=0;
ControlValue2=ControlValue2+1;
end
Ai=[X1 Y1]; Bi=[X2 Y2]; Ci=[X3 Y3]; Di=[X4
Y4];
[A,Xa,Ya]=trapesium(Ai,Bi,Ci,Di);
Ai=[Y1 Z1]; Bi=[Y2 Z2]; Ci=[Y3 Z3]; Di=[Y4
Z4];
[A1,Ya1,Za]=trapesium(Ai,Bi,Ci,Di);
else % Z0==0
if and(Z1<0,Z2<0)
[A,Ya,Xa]=triangle(Y0,X0,Y1,X1,Y2,X2);
[A1,Ya1,Za]=triangle(Y0,Z0,Y1,Z1,Y2,Z2);
else
A=0; Xa=0; Ya=0; Za=0;
end
end
else
[A,Ya,Xa]=triangle(Y0,X0,Y1,X1,Y2,X2);
[A1,Ya1,Za]=triangle(Y0,Z0,Y1,Z1,Y2,Z2);
end
Ai=Ai+A;
Mxi=Mxi+A*Xa;
Myi=Myi+A*Ya;
Mzi=Mzi+A*Za;
end
Xi=Mxi/Ai;
107
Yi=Myi/Ai;
Zi=Mzi/Ai;
SegArea(j,1)=Ai;
Center(j,:)=[Xi Yi Zi];
if and(ControlValue1~=0,ControlValue2~=0)
ControlVert=false;
end
j=j+1;
end
Volume=Volume+1/3*ddZ*(SegArea(i,1)+4*SegArea(i+1,1)+SegArea(i+2,1))
;
MxVol=MxVol+1/3*ddZ*(SegArea(i,1)*Center(i,1)+4*SegArea(i+1,1)*Cente
r(i+1,1)+SegArea(i+2,1)*Center(i+2,1));
MyVol=MyVol+1/3*ddZ*(SegArea(i,1)*Center(i,2)+4*SegArea(i+1,1)*Cente
r(i+1,2)+SegArea(i+2,1)*Center(i+2,2));
MzVol=MzVol+1/3*ddZ*(SegArea(i,1)*Center(i,3)+4*SegArea(i+1,1)*Cente
r(i+1,3)+SegArea(i+2,1)*Center(i+2,3));
end
Bx=MxVol/Volume;
By=MyVol/Volume;
Bz=MzVol/Volume;
mass=rho*Volume;
function [Pos]=position(P1,P2,P)
% This function obtain the P point position to the line between P1
and P2
% Position=-1 indicates P at left of P1P2 line, 1 indicates P at
right and
% 0 indicates P at the P1P2 line
y=P(1,2); y0=P1(1,2); y1=P2(1,2);
x=P(1,1); x0=P1(1,1); x1=P2(1,1);
Pos=(y - y0)*(x1 - x0)-(x - x0)*(y1 - y0);
if Pos>0
Pos=-1;
elseif Pos<0
Pos=1;
end
function y0=lineequ(x1,y1,x2,y2,x0)
slope=(y2-y1)/(x2-x1);
intercept=y1-x1*slope;
y0=slope*x0+intercept;
108
function
[FXtot,FYtot,FZtot,MXtot,MYtot,MZtot]=forcesmomen(SegArea,Heave,Wave
Course,Vc,Xdot,Zdot,Hw,Lw,phi,te,ce,time)
global XOff YOff ZOff XmOff YmOff ZmOff
global rho grav Xg Yg Zg T Weight CD WaterDepth
[NoSegment,NoElement]=size(XOff);
%for i=1:NoElement
% Offset=[XOff(:,i) YOff(:,i) ZOff(:,i)];
% Offset=transformation(Offset,phi,te,ce,Xg,Yg,Zg,T);
% NewXOff(:,i)=Offset(:,1);
% NewYOff(:,i)=Offset(:,2);
% NewZOff(:,i)=Offset(:,3)-Heave;
%end
for i=1:NoElement-1
CentOffset=[XmOff(:,i) YmOff(:,i) ZmOff(:,i)];
CentOffset=transformation(CentOffset,phi,te,ce,Xg,Yg,Zg,T);
SegCentX(:,i)=CentOffset(:,1);
SegCentY(:,i)=CentOffset(:,2);
SegCentZ(:,i)=CentOffset(:,3)-Heave;
end
[Nx,Ny,Nz]=surfnorm(SegCentX,SegCentY,SegCentZ);
RVector=sqrt(Nx.^2+Ny.^2+Nz.^2);
KKX=(Nx./RVector).*cos(WaveCourse);
KKY=(Ny./RVector).*cos(WaveCourse);
KKZ=((-Nz)./RVector).*cos(WaveCourse);
for j=1:NoSegment-1
for i=1:NoElement-1
kkz=SegCentX(j,i);
kkzz=0.5*Hw*cos(k*(kkz-Vw*time));
Zai=kkzz+(T+Zg); % Wave profile measured
from Zg
Zi=SegCentZ(j,i);
Yi=SegCentY(j,i);
Xi=SegCentX(j,i);
if Zai>=Zi
KKKX=KKX(j,i);
KKKY=KKY(j,i);
109
KKKZ=KKZ(j,i);
ElementArea=SegArea(j,i);
KX=sign(KKKX);
KY=sign(KKKY);
KZ=sign(KKKZ);
NoX=1; NoY=1; NoZ=1;
if KX<=0
NoX=0;
end
if KY<=0
NoY=0;
end
if KZ<=0
NoZ=0;
end
Ax=ElementArea*KKKX;
Ay=ElementArea*KKKY;
Az=ElementArea*KKKZ;
udot=abs(k*Hw*Vw*exp(-k*(-Zi+105.6))*cos(k*Xi-w*time));
%vdot=0;
wdot=abs(k*Hw*Vw*exp(-k*(-Zi+105.6))*sin(k*Xi-w*time));
Fx=(0.5*rho*grav*CD*(Uc+udot-Xdot)*abs(Uc+udot-Xdot))*Ax*NoX;
Fy=(0.5*rho*grav*CD*(Uc+udot-Xdot)*abs(Uc+udot-Xdot))*Ay;
Fz=(0.5*rho*grav*CD*(wdot-Zdot)*abs(wdot-
Zdot))*Az*NoZ+rho*grav*(T+Zg-Zi)*Az*NoZ;
Mx=Fy*(SegCentZ(j,i))+Fz*(SegCentY(j,i))+Fz*(SegCentY(j,i));
My=Fx*(SegCentZ(j,i))+Fz*(SegCentX(j,i))+Fz*(SegCentX(j,i));
Mz=Fx*SegCentY(j,i)+Fy*SegCentX(j,i);
else
Fx=0; Fy=0; Fz=0; Mx=0; My=0; Mz=0;
end
if abs(Fx)<0.001 Fx=0; end
if abs(Fy)<0.001 Fy=0; end
if abs(Fz)<0.001 Fz=0; end
if abs(Mx)<0.001 Mx=0; end
if abs(My)<0.001 My=0; end
if abs(Mz)<0.001 Mz=0; end
FXtot=FXtot+Fx;
FYtot=FYtot+Fy;
FZtot=FZtot+Fz;
MXtot=MXtot+Mx;
MYtot=MYtot+My;
MZtot=MZtot+Mz;
end
end
110
if Weight==0;
dhX=0; dhY=0; dhZ=0;
else
dhX=MXtot/Weight;
dhY=MYtot/Weight;
dhZ=MZtot/Weight;
end
if abs(dhX)<0.0000001; dhX=0; end
if abs(dhY)<0.0000001; dhY=0; end
if abs(dhZ)<0.0000001; dhZ=0; end
MZtot=(Weight-FZtot)*dhZ;
FZtot=(Weight-FZtot);
111
APPENDIX D
function M=addedmass(Weight,X1,Y1,Z1,X2,Y2,Z2)
global grav Xg Yg Zg T D H rho
%%% Added mass matrix for vertical cylinder :
m11=K1*(sin(alfa))^2;
m12=-K1*cos(alfa)*cos(beta);
m13=-K1*cos(alfa)*cos(gama);
m21=-K1*cos(alfa)*cos(beta);
m22=K1*(sin(beta))^2;
m23=-K1*cos(beta)*cos(gama);
m31=-K1*cos(alfa)*cos(gama);
m32=-K1*cos(beta)*cos(gama);
m33=K1*(sin(gama))^2;
Ym=(Y1+Y2)/2;
Zm=(Z1+Z2)/2;
112
Xm=(X1+X2)/2;
m41=(m31*Ym)-(m21*Zm);
m51=(m11*Zm)-(m31*Xm);
m61=(m21*Xm)-(m11*Ym);
m42=(m32*Ym)-(m22*Zm);
m52=(m12*Zm)-(m32*Xm);
m62=(m22*Xm)-(m12*Ym);
m43=(m33*Ym)-(m32*Zm);
m53=(m31*Zm)-(m33*Xm);
m63=(m32*Xm)-(m31*Ym);
Yn=(Y1^2+Y1*Y2+Y2^2)/3;
Zn=((Z1^2)+(Z1*Z2)+(Z2^2))*(1/3);
Xn=(X1^2+X1*X2+X2^2)/3;
YZn=((2*Y1*Z1)+(2*Y2*Z2)+(Y1*Z2)+(Z1*Y2))/6;
XYn=((2*X1*Y1)+(2*X2*Y2)+(X1*Y2)+(X2*Y1))/6;
ZXn=((2*Z1*X1)+(2*Z2*X2)+(Z1*X2)+(Z2*X1))/6;
m44=m22*Zn-2*m23*YZn+m33*Yn;
m54=-m21*Zn-m33*XYn+m31*YZn+m32*ZXn;
m64=-m31*Yn+m32*XYn+m21*YZn-m22*ZXn;
m55=m33*Xn-2*m31*ZXn+m11*Zn;
m66=m11*Yn-2*m21*XYn+m22*Xn;
m65=-m32*Xn-m11*YZn+m21*ZXn+m31*XYn;
Mstra=Weight/grav;
Ms=[Mstra 0 0 0 0 0
0 Mstra 0 0 0 0
0 0 Mstra 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0];
M=MA+Ms;
113
APPENDIX E
function KM=mooringstiffness(X1,Y1,Z1,X2,Y2,Z2,FX,FY,FZ)
KK=sign(FZ);
T=sqrt(FX^2+FY^2+KK*FZ^2);
E=210000000;
D=0.064;
A=pi*D^2/4;
L=sqrt((X2-X1)^2+(Y2-Y1)^2+(Z2-Z1)^2);
lambda=E*A/L;
alfa=acos((X2-X1)/L);
beta=acos((Y2-Y1)/L);
gama=acos((Z2-Z1)/L);
K11=lambda*cos(alfa)^2+(T/L)*sin(alfa)^2;
K12=(lambda+(T/L))*cos(alfa)*cos(beta);
K21=K12;
K13=(lambda+(T/L))*cos(alfa)*cos(gama);
K31=K13;
K22=lambda*cos(beta)^2+(T/L)*sin(beta)^2;
K23=(lambda+(T/L))*cos(beta)*cos(gama);
K32=K23;
K33=lambda*(cos(gama))^2+(T/L)*(sin(gama))^2;
K44=K33*Y2^2-2*K32*Y2*Z2+K22*Z2^2;
K54=K31*Y2*Z2-K21*Z2^2-K33*Y2*X2+K32*X2*Z2;
K64=K32*X2*Y2-K22*X2*Z2-K31*Y2^2+K21*Y2*Z2;
K55=K11*Z2^2-2*K31*X2*Z2+K33*X2^2;
K65=K21*X2*Z2-K32*X2^2-K11*Y2*Z2+K31*X2*Y2;
K66=K22*X2^2-2*K21*X2*Y2+K11*Y2^2;
function KH=stiffnes(fi,te,ce)
global grav rho T D KG
% Stiffnes Force and Moment
Hd=T;
h1=KG;
%a=0.5*D;
%b44=a/cos(fi);
%b55=a/cos(te);
%JL44=1/8*rho*pi*(a^2-b44^2)^2;
%JL55=1/8*rho*pi*(a^2-b55^2)^2;
%GM44=JL44/(pi*D^2/4*T);
%GM55=JL55/(pi*D^2/4*T);
%C33=rho*grav*pi*a*a;
%C44=rho*grav*GM44*(pi*D^2/4*T);
%C55=rho*grav*GM55*(pi*D^2/4*T);
C33=0.25*pi*rho*9.81*D^2;
C44=C33*Hd*h1-pi/64*(rho*grav)*D^4;
C55=C44;
KH=[0 0 0 0 0 0
0 0 0 0 0 0
0 0 C33 0 0 0
0 0 0 C44 0 0
0 0 0 0 C55 0
0 0 0 0 0 0];
115
APPENDIX F
function Bv=damping(X1,Y1,Z1,X2,Y2,Z2,CD)
global Xg Yg Zg T H D rho
ro=rho;
% CD=1; H=216.4; D=40.52;
H1=H; % =216.4;
D1=D; % =2*20.26;
K3=0.5*ro*CD*H1*D1;
%alfa=pi/2;
%beta=pi/2;
%gama=0;
%X1=Xg; % Coordinat center of bottom from CG
%X2=0; % Coordinat center of waterline from CG
%Y1=Yg;
%Y2=0;
%Z1=-Zg;
%Z2=T;
L=sqrt((X2-X1)^2+(Y2-Y1)^2+(Z2-Z1)^2);
alfa=acos((X2-X1)/L);
beta=acos((Y2-Y1)/L);
gama=acos((Z2-Z1)/L);
Ym=(Y1+Y2)/2;
Zm=(Z1+Z2)/2;
Xm=(X1+X2)/2;
b11=K3*abs((sin(alfa))^3);
b21=-K3*cos(alfa)*cos(beta)*abs(sin(alfa));
b31=-K3*cos(gama)*cos(alfa)*abs(sin(alfa));
b12=-K3*cos(alfa)*cos(beta)*abs(sin(beta));
b22=K3*abs((sin(beta))^3);
b32=-K3*cos(beta)*cos(gama)*abs(sin(beta));
b13=-K3*cos(alfa)*cos(gama)*abs(sin(gama));
b23=-K3*cos(beta)*cos(gama)*abs(sin(gama));
b33=K3*abs((sin(gama))^3);
b41=b31*Ym-b21*Zm;
b51=b11*Zm-b31*Xm;
b61=b21*Xm-b11*Ym;
b42=b32*Ym-b22*Zm;
116
b52=b12*Zm-b32*Xm;
b62=b22*Xm-b12*Ym;
b43=b33*Ym-b23*Zm;
b53=b13*Zm-b33*Xm;
b63=b23*Xm-b13*Ym;
if X1*X2>=0
Xp=sign(Xm)*(X1^2+X1*X2+X2^2)/3;
else
Xp=sign(X2)*(X1^3+X2^3)/(3*(X2-X1));
end
if Y1*Y2>=0
Yp=sign(Ym)*(Y1^2+Y1*Y2+Y2^2)/3;
else
Yp=sign(Y2)*(Y1^3+Y2^3)/(3*(Y2-Y1));
end
if Z1*Z2>=0
Zp=sign(Zm)*(Z1^2+Z1*Z2+Z2^2)/3;
else
Zp=sign(Z2)*(Z1^3+Z2^3)/(3*(Z2-Z1));
end
if X1*X2>=0
Ix=sign(Xm)*(X1^3+X2*X1^2+X1*X2^2+X2^3)/4;
else
Ix=sign(X2)*((X1^3+X2*X1^2+X1*X2^2+X2^3)/4)+(X1^4/(2*(X2-X1)));
end
if Y1*Y2>=0
Iy=sign(Ym)*(Y1^3+Y2*Y1^2+Y1*Y2^2+Y2^3)/4;
else
Iy=sign(Y2)*((Y1^3+Y2*Y1^2+Y1*Y2^2+Y2^3)/4)+(Y1^4/(2*(Y2-Y1)));
end
if Z1*Z2>=0
Iz=sign(Zm)*(Z1^3+Z2*Z1^2+Z1*Z2^2+Z2^3)/4;
else
Iz=sign(Z2)*((Z1^3+Z2*Z1^2+Z1*Z2^2+Z2^3)/4)+(Z1^4/(2*(Z2-Z1)));
end
if Z1*Z2>=0
Iyzz=(1/12)*((Y2*(Z1^2+(2*Z1*Z2)+(3*Z2^2)))+(Y1*(3*Z1^2+(2*Z1*Z2)+Z2
^2)));
else
Iyzz=((1/12)*Y2*(Z1^2+(2*Z1*Z2)+3*Z2^2))+(Y1*(3*Z1^2+(2*Z1*Z2)+Z2^2)
)+(Z1^3*(4*Y1*Z2-(3*Y1*Z1)-Y2*Z1))/(6*(Z2-Z1)^2);
end
if Y1*Y2>=0
Iyzy=(Z2*(Y1^2+2*Y1*Y2+3*Y2^2)+Z1*(Y2^2+2*Y1*Y2+3*Y1^2))/12;
else
Iyzy=(Z2*(Y1^2+2*Y1*Y2+3*Y2^2))/12+Z1*(Y2^2+2*Y1*Y2+3*Y1^2)...
+Y1^3*(4*Z1*Y2-3*Z1*Y1-Z2*Y1)/(6*(Y2-Y1)^2);
end
if Y1*Y2>=0
117
Ixyy=(X2*(Y1^2+2*Y1*Y2+3*Y2^2)+X1*(Y2^2+2*Y1*Y2+3*Y1^2))/12;
else
Ixyy=(X2*(Y1^2+2*Y1*Y2+3*Y2^2))/12+X1*(Y2^2+2*Y1*Y2+3*Y1^2)...
+Y1^3*(4*X1*Y2-3*X1*Y1-X2*Y1)/(6*(Y2-Y1)^2);
end
if Z1*Z2>=0
Izxz=(X2*(Z1^2+2*Z1*Z2+3*Z2^2)+X1*(Z2^2+2*Z1*Z2+3*Z1^2))/12;
else
Izxz=(X2*(Z1^2+2*Z1*Z2+3*Z2^2))/12+X1*(Z2^2+2*Z1*Z2+3*Z1^2)...
+Z1^3*(4*X1*Z2-3*X1*Z1-X2*Z1)/(6*(Z2-Z1)^2);
end
Izyz=Iyzz;
if X1*X2>=0
Ixyx=(Y2*(X1^2+2*X1*X2+3*X2^2)+Y1*(X2^2+2*X1*X2+3*X1^2))/12;
else
Ixyx=(Y2*(X1^2+2*X1*X2+3*X2^2))/12+Y1*(X2^2+2*X1*X2+3*X1^2)...
+X1^3*(4*Y1*X2-3*Y1*X1-Y2*X1)/(6*(X2-X1)^2);
end
if X1*X2>=0
Izxx=(Z2*(X1^2+2*X1*X2+3*X2^2)+Z1*(X2^2+2*X1*X2+3*X1^2))/12;
else
Izxx=(Z2*(X1^2+2*X1*X2+3*X2^2))/12+Z1*(X2^2+2*X1*X2+3*X1^2)...
+X1^3*(4*Z1*X2-3*Z1*X1-Z2*X1)/(6*(X2-X1)^2);
end
b14=-b12*Zp+b13*Yp;
b24=-b22*Zp+b23*Yp;
b34=-b32*Zp+b33*Yp;
b15=b11*Zp-b13*Xp;
b25=b21*Zp-b23*Xp;
b35=b31*Zp-b33*Xp;
b16=b12*Xp-b11*Yp;
b26=b22*Xp-b21*Yp;
b36=b32*Xp-b31*Yp;
b44=b33*Iy-b32*Iyzz-b23*Iyzy+b22*Iz;
b54=b13*Iyzy-b12*Iz-b33*Ixyy+b32*Izxz;
b64=b23*Ixyy-b22*Izxz-b13*Iy+b12*Iyzz;
b45=b31*Izyz-b33*Ixyx-b21*Iz+b23*Izxx;
b55=b11*Iz-b13*Izxx-b31*Izxz+b33*Ix;
b65=b21*Izxz-b23*Ix-b11*Iyzz+b13*Ixyx;
b46=b32*Ixyx-b31*Iy-b22*Izxx+b21*Iyzy;
b56=b12*Izxx-b11*Iyzy-b32*Ix+b31*Ixyy;
b66=b22*Ix-b21*Ixyy-b12*Ixyx+b11*Iy;
APPENDIX G
function SparMainProgram(Vc,Hw,Lw,shape,normsurf,LimitTime)
% main program of spar
clear Xg Yg Zg T D H rho KG Weight CD Zseabed
global grav XOff YOff ZOff XmOff YmOff ZmOff SegArea XWtrOff YWtrOff
ZWtrOff
global Xg Yg Zg T D H rho KG Weight CD Zseabed
dT=0.5; DeltaT=0.25;
alpha=0.25*(0.5+dT)^2;
a0=1/(alpha*(DeltaT)^2);
a1=dT/(alpha*DeltaT);
a2=1/(alpha*DeltaT);
a3=(1/(2*alpha))-1;
a4=(dT/alpha);
a5=(DeltaT/2)*((dT/alpha)-2);
a6=DeltaT*(1-dT);
a7=dT*DeltaT;
time=0;
%LimitTime=30;
Zseabed=-914;
KG=92.4;
grav=9.81; rho=1025;
T=198;
Xg=0; Yg=0; Zg=-105.6; % measure from waterline
%Vc=0.8;
%Hw=3; Lw=300;
WaveCourse=0; Lcat=840;
H=216.4; D=40.52; dS=2; dV=2; dR=2;
RatioCD=H/D;
CdCoefConst=[1 2 5 10 20 40; 0.63 0.68 0.74 0.82 0.90 0.98];
CdCoefConst=CdCoefConst';
CD=interp1(CdCoefConst(:,1)',CdCoefConst(:,2)',RatioCD);
FX=0; FY=0; FZ=0; dX=0;
phi=0; te=0; ce=0;
118
[XOff,YOff,ZOff,XWtrOff,YWtrOff,ZWtrOff,SegArea,XmOff,YmOff,ZmOff]=s
egment_surf(dS,dV,dR);
% This to obtain the intial weight of spar
Weight=0; Vc0=0;
[FXtot,FYtot,FZtot,MXtot,MYtot,MZtot]=forcesmomen(SegArea,Z2,WaveCou
rse,Vc0,Xdot,Zdot,Hw,Lw,phi,te,ce,time);
Weight=abs(FZtot);
M=addedmass(Weight,X1,Y1,Z1,NewX2,NewY2,NewZ2);
C=damping(X1,Y1,Z1,NewX2,NewY2,NewZ2,CD);
KM=mooringstiffness(X1,Y1,Z1,NewX2,NewY2,NewZ2,FX,FY,FZ);
KH=stiffnes(phi,te,ce);
K=KM+KH;
[FXtot,FYtot,FZtot,MXtot,MYtot,MZtot]=forcesmomen(SegArea,Z2,WaveCou
rse,Vc0,Xdot,Zdot,Hw,Lw,phi,te,ce,time);
F0=[FXtot; FYtot; FZtot; MXtot; MYtot; MZtot];
% End
FtdT0=F0;
invM=inv(M);
Xdd=invM*(F0-C*Xd-K*X);
time=0; j=1;
while time<=LimitTime
control=true;
iteration=1;
while control
% solution part
Khat=K+a0*M+a1*C;
FtdT1=FtdT0+M*(a0*X+a2*Xd+a3*Xdd)+C*(a1*X+a4*Xd+a5*Xdd);
XtdT=inv(Khat)*FtdT1;
XddT=a0*(XtdT-X)-a2*Xd-a3*Xdd;
XdT=Xd+a6*Xdd+a7*XddT;
phi=XtdT(4,1); te=XtdT(5,1); ce=XtdT(6,1);
X2=XtdT(1,1); Y2=XtdT(2,1); Z2=XtdT(3,1);
Xdot=XdT(1,1); Zdot=XdT(3,1);
FX=FtdT1(1,1); FY=FtdT1(2,1); FZ=FtdT1(3,1);
NewX2=NewX2+X2;
NewY2=NewY2+Y2;
NewZ2=NewZ2+Z2;
M=addedmass(Weight,X1,Y1,Z1,NewX2,NewY2,NewZ2);
C=damping(X1,Y1,Z1,NewX2,NewY2,NewZ2,CD);
KM=mooringstiffness(X1,Y1,Z1,NewX2,NewY2,NewZ2,FX,FY,FZ);
KH=stiffnes(phi,te,ce);
K=KH+KM;
[FXtot,FYtot,FZtot,MXtot,MYtot,MZtot]=forcesmomen(SegArea,NewZ2,Wave
Course,Vc,Xdot,Zdot,Hw,Lw,phi,te,ce,time);
119
error=(NewFtdT1-FtdT1);
X=XdT;
i=1; Cont=0;
while i<=6
if error(i,1)>0.01*FtdT1;
Cont=Cont+1;
i=i+1;
else
i=i+1;
end
end
if Cont>0
control=true;
FtdT0=NewFtdT1;
else
control=false;
FtdT0=NewFtdT1;
Frecord(j,:)=NewFtdT1';
end
iteration=iteration+1;
motions(:,j)=[time; X];
end
% end of solution
time=time+dT;
j=j+1;
end % end of main program
figure(1); subplot(2,3,1); plot(motions(1,:)',motions(2,:)');
subplot(2,3,2); plot(motions(1,:)',motions(3,:)');
subplot(2,3,3); plot(motions(1,:)',motions(4,:)');
subplot(2,3,4); plot(motions(1,:)',motions(5,:)');
subplot(2,3,5); plot(motions(1,:)',motions(6,:)');
subplot(2,3,6); plot(motions(1,:)',motions(7,:)');
[XX,ZZ]=mooring2D(FXtot,FZtot,Vc);
figure(2); plot(XX,ZZ,'o');
if shape==1
figure(3); surface(XOff,YOff,ZOff);
end
if normsurf==1
figure(4); surfnorm(XmOff,YmOff,ZmOff);
end
120
APPENDIX H
function [XX,ZZ]=mooring2D(dFX,dFZ,Vc)
global Zg T rho Zseabed
E=2100000000;
D=0.064;
WeightSpec=100;
TotalLength=1000;
massElmnt=pi*D^2/4*WeightSpec;
ZFairlead=0.2; % from G
CDT=0.01; % Tangential drag coefficient
CDN=1.54; % Normal drag coefficient
rho=1025; % Sea water density
% Weight of mooring line kg/m
grav=9.81; % gravity acceleration
% Initial value for coordinate X
% Initial value for coordinate X
% Initial length
HF=-Zseabed+Zg+ZFairlead;
massElmnt=30; % kg/m
FX=2000+dFX*0.01; FZ=106000+dFZ;
dL=5;
RX=FX;
Ztemp=0; TL=0;
Z=HF; X=0;
%TETA=atan(FZ/FX);
T=sqrt(FX^2+FZ^2); %105000;
ddT=FZ;
T=T+ddT;
TKXZ=T;
TETA=acos(RX/T);
j=1;
control=true;
while control
% Initial tension on first segment
121
XX(j,1)=X; ZZ(j,1)=Z;
j=j+1;
InitialZ=Z;
InitialX=X;
end
ZZ=ZZ-InitialZ;
XX=XX-InitialX;
%KKX=abs(TKXZ/InitialX);
%KKZ=abs(TKXZ/InitialZ);
%plot(XX,ZZ,'o');