Marine systems simulation
Cable pendulum

Lumped mass cable pendulum with drag.

+ Collaboration diagram for Cable pendulum:
Author
Joakim Haugen

CablePendulum is a pendulum described by a cable and a ball assumed to be suspended in water. It makes use of the environment's current. It is assumed that the water density is 1000 and that the ball drag coefficient (for Morison drag) is 0.5.

Example configuration excerpt

<Lib
LibName = "fhsim_base"
SimObject = "Adaptive/CablePendulum"
Name = "Pendle"
BallRadius = "1"
BallDensity = "2000"
CableDiameter = "0.02"
CableDensity = "2000"
CableLength = "10"
CableModulus = "200"
InternalPoints = "10"
/>
Note
The simulation must include an Environment, e.g. CDefaultEnvironment.

Input Ports

Name Width Description
SuspensionPos 3 Position of suspension end.
SuspensionVel 3 Velocity of suspension position.

Output Ports

Name Width Description
MidpointPosition 3 Midpoint between suspension and ball, along cable (perhaps interpolated).
BallPosition 3 The position of the centroid of the ball.
MidpointPosition 3 Midpoint between suspension and ball along cable and perhaps interpolated.
BallVelocity 3 The linear velocity of the ball.

Configuration parameters

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

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}}\).
BallPosition 3 Position of ball.
BallVelocity 3 Velocity of ball.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName = "fhsim_base"
SimObject = "Adaptive/CablePendulum"
Name = "P"
BallRadius = "1"
BallDensity = "2000"
CableDiameter = "0.02"
CableDensity = "2000"
CableLength = "25"
CableModulus = "20"
InternalPoints = "7"
/>
<Lib
LibName = "base"
SimObject = "DefaultEnvironment"
Name = "Environment"
Seadepth = "500"
Density = "1000"
CurrentVelocity = "1,0,0"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
P.SuspensionPos = "0,0,0"
P.SuspensionVel = "0,0,0"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
P.BallPosition = "0,20,0"
P.BallVelocity = "0,0,0"
/>
</INITIALIZATION>
<INTEGRATION>
<Engine
IntegratorMethod = "2"
NumCores = "1"
TOutput = "0, 0:1e-1:Inf, 1000"
stepsize = "2e-5"
FileOutput = "objects:ports"
/>
</INTEGRATION>
</Contents>

This SimObject is referred to as Adaptive/CablePendulum