Marine systems simulation
Hydro Cable

Hydrodynamic cable with gravity, buoyancy, drag. Mass-lumped.

+ Collaboration diagram for Hydro Cable:

HydroCable is a SimObject that models a simple mass-lumped hydrodynamic cable completely submerged in water. The cable is under the influence of gravity, buoyancy, and hydrodynamic drag. The SimObject is primarily created to illustrate the use of KalmanObject in FhSim, so the implementation is not optimized. It is assumed that the water density is 1000 and that the drag coefficient (for Morison drag) is 1.1 perpendicular to a line segment and 0.1 along it.

Author
Joakim Haugen

Example configuration excerpt

<Lib
LibName = "fhsim_base"
SimObject = "Example/HydroCable"
Name = "Cable"
Diameter = "0.02"
Density = "2000"
Modulus = "20"
Length = "20"
InternalPoints = "7"
/>
...
<Connection
Cable.PositionA = "0,0,0"
Cable.PositionB = "Ball.Position"
Cable.VelocityA = "0,0,0"
Cable.VelocityB = "Ball.Velocity"
Cable.Current = "Current.Out"
/>

Input Ports

Name Width Description
PositionA 3 Position of end point A.
PositionB 3 Position of end point B.
VelocityA 3 Velocity of end point A.
VelocityB 3 Velocity of end point B.
Current 3 The uniform current of the surrounding water.

Output Ports

Name Width Description
ForceA 3 The force acting on end point A.
ForceB 3 The force acting on end point B.

Configuration parameters

Name Width Description
Diameter 1 Diameter of the cable [meter].
Density 1 Density of the cable [kg/m^3].
Length 1 Length of the cable [m].
Modulus 1 Modulus of elasticity in giga pascal (1e9) [GPa].
InternalPoints 1 Number of internal mass points [-].

Initial conditions

By specifying no initial conditions, the end points are being used to calculate the catenary. Note that this will fail if the distance between the end points is greater than the cable length, or if the points have the same north and east components (hanging straight down). Otherwise, it is possible to specify each and every point's position and velocity:

Name Width Description
Position[i] 3 Position of point \(i \in {1\cdots\text{InternalElements}}\).
Velocity[i] 3 Velocity of point \(i \in {1\cdots\text{InternalElements}}\).

Full example file

<Contents>
<OBJECTS>
<Lib
LibName = "fhsim_base"
SimObject = "Example/HydroBall"
Name = "Ball"
Radius = "1.0"
Density = "1100"
/>
<Lib
LibName = "fhsim_base"
SimObject = "Example/HydroCable"
Name = "Cable"
Diameter = "0.02"
Density = "2000"
Modulus = "20"
Length = "20"
InternalPoints = "7"
/>
<Lib
LibName = "fhsim_base"
SimObject = "Src/Sine"
Name = "NorthCurrent"
PortWidth = "1"
PhaseRad = "0"
PeriodS = "200"
StartTime = "0"
StopTime = "-1"
Bias = "0.7"
Amplitude = "0.3"
/>
<Lib
LibName = "fhsim_base"
SimObject = "Signal/Mux"
Name = "Current"
NumInput = "3"
PortWidth = "3"
InPortWidth1 = "1"
InPortWidth2 = "1"
InPortWidth3 = "1"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
Ball.ExternForce = "Cable.ForceB"
Ball.Current = "Current.Out"
Current.In1 = "NorthCurrent.Out"
Current.In2 = "0.5"
Current.In3 = "0.1"
/>
<Connection
Cable.PositionA = "0,0,0"
Cable.PositionB = "Ball.Position"
Cable.VelocityA = "0,0,0"
Cable.VelocityB = "Ball.Velocity"
Cable.Current = "Current.Out"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
Ball.Position = "0,6.15,18.9"
Ball.Velocity = "0,0,0"
/>
</INITIALIZATION>
<INTEGRATION>
<Engine
IntegratorMethod="0"
NumCores="1"
TOutput="0, 0:1e-1:Inf, 1000"
stepsize ="2e-5"
FileOutput="objects:ports"
/>
</INTEGRATION>
</Contents>

This SimObject is referred to as Example/HydroCable