FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
A mass-lumped cable

Spring-mass cable SimObject with Hydrodynamic loads and bottom contact; winchable from both ends.

+ Collaboration diagram for A mass-lumped cable:

Simulation model of a discrete mass point cable, connected with linear springs, in three degrees of freedom.

Author
Jorgen Haavind Jensen
Date
11.04.2011 JHJ: Initial version.

Example configuration excerpt

<Lib
LibName = "fhsim_base"
SimObject = "Cable"
Name = "C"
cableLength = "10"
numElements = "50"
diameter = "0.01"
cableWeight = "100"
/>
<Lib
LibName = "fhsim_environment"
SimObject = "Environment"
Name = "Env"
Waves.Model="Component"
Waves.NumWaves="0"
Bathymetry.Depth = "100"
/>
...
<Connection
C.PositionA = "0,0,-10"
C.PositionB = "0,0,-0.1"
C.VelocityA = "0,0,0"
C.VelocityB = "0,0,0"
C.RetractedLengthA = "0"
C.RetractedLengthB = "0"
C.RetractedSpeedA = "0"
C.RetractedSpeedB = "0"
/>
Note
The simulation must include an Environment

Input ports

Name Width Description
PositionA 3 The position of end A.
PositionB 3 The position of end B.
VelocityA 3 The velocity of end A.
VelocityB 3 The velocity of end B.
RetractedLengthA 1 Retracted cable length at endpoint A
RetractedLengthB 1 Retracted cable length at endpoint B
RetractedSpeedA 1 Rate of retraction at endpoint A
RetractedSpeedB 1 Rate of retraction at endpoint B

Output ports

Name Width Description
ForceA 3 The spring force from end A.
ForceB 3 The spring force from end B.

Configuration parameters

Name Width Description
cableLength 1 Total cable length [m]
numElements 1 Number of mass nodes in cable [#]
diameter 1 nominal cross sectional diameter [m]
tensileCrossSectionArea 1 cross sectional area of load bearing material [m^2]; Default: 75% of nominal area
displacementCrossSectionArea 1 fluid displacement cross section area [m^2]; Default: 90% of nominal area
E-modulus 1 Young's modulus of load bearing material [Pa],[N/m^2]; Default: 10^11 (100GPa)
cableWeight 1 Cable weight per meter [kg/m]; Default: tensileCrossSectionArea*7900kg/m^3
hydrodynamicDiameter 1 effective hydrodynamic diameter [m]; Default: +5% of nominal diameter
internalDampingCoefficient 1 structural axial damping factor. A value of 1 gives critical damping. Default: 0.25

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
element0_position .. element<numElements-1>_position 3 The position of element NUM, 0-based (element0_position is the first mass node).
element0_velocity .. element<numElements-1>_velocity 3 The velocity of element NUM, 0-based.

Jacobian

OdeJacobian differentiates the axial tension and damping and the hydrodynamic drag, including its Reynolds-dependent coefficients, with respect to both node velocities and, through the segment direction, both node positions. It does not differentiate:

The tension is not differentiable where a segment is exactly at its rest length, and the drag coefficients jump between Reynolds-number regimes. The default initial condition puts the two outer segments exactly at their rest length; give the element positions explicitly where the Jacobian at the initial state matters.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName="base"
SimObject="Cable"
Name="C"
cableLength="10"
numElements="50"
diameter="0.01"
cableWeight="100"
/>
<Lib
LibName="environment"
SimObject="Environment"
Name="Env"
Waves.Model="Component"
Waves.NumWaves="0"
Bathymetry.Depth="100"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
C.PositionA="0,0,-10"
C.PositionB="0,0,-0.1"
C.VelocityA="0,0,0"
C.VelocityB="0,0,0"
C.RetractedLengthA="0"
C.RetractedLengthB="0"
C.RetractedSpeedA="0"
C.RetractedSpeedB="0"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<SIMULATION>
<Timing TStart="0" TEnd="31"/>
<Integrator Method="RK45_i" NumCores="1" LogStates="1" UseRSSNorm="0">
<StepControl StepMax="0.002" StepMin="0.00000001" AbsTol="1e-3" RelTol="1e-3"/>
</Integrator>
</SIMULATION>
<OBSERVERS>
<FileOutput TOutput="0,0:1:30,31" Select="union(object.FineCable:port.ForceA,object.FineCable:port.ForceB)"/>
</OBSERVERS>
</Contents>

This SimObject is referred to as Cable