Marine systems simulation
Torpedo Anchor

A torpedo anchor.

+ Collaboration diagram for Torpedo Anchor:

Simulation of a 6DOF torpedo anchor. Implementation in class TorpedoAnchor.

Author
Jorgen Haavind Jensen

Example configuration excerpt

<Lib
LibName="fhsim_base"
SimObject="TorpedoAnchor"
Name="Anc"
MaterialRho="1000"
ShankLength="1"
ShankDiameter="0.02"
ShankThickness="0.01"
FlukeSideLength="0.5"
FlukePointLength="0.6"
FlukeWidth="0.02"
FlukeThickness="0.1"
ShankFlukeAngle="1"
/>
...
<Connection
Anc.Force="0,0,-13.8729"
/>
...
<InitialCondition
Anc.Position="0,0,-500"
Anc.Velocity="0,0,0"
Anc.Theta="1.0,0.0,0.0,0.0"
Anc.Omega="0.0,0.0,0.0"
/>
Note
The simulation must include an Environment, e.g. CDefaultEnvironment.

Input Ports

Name Width Description
Force 3 Force vector in Newton.

Output Ports

Name Width Description
Position 3 Anchor position in meter.
Velocity 3 Anchor velocity in meter per second.
Theta 4 Anchor orientation as Quarternion.
Omega 3 Anchor angular velocity in rad per second.

Configuration parameters

Name Width Description
MaterialRho 1 Material density in kg per meter cubed.
ShankLength 1 Shank length [m].
ShankDiameter 1 Shank diameter [m].
ShankThickness 1 Shank thickness [m].
FlukeSideLength 1 Fluke side length [m].
FlukePointLength 1 Fluke point length [m].
FlukeWidth 1 Fluke width [m].
FlukeThickness 1 Fluke thickness [m].
ShankFlukeAngle 1 Shank-Fluke angle [rad].

Initial conditions

Name Width Description
Position 3 Initial position in 3D. North, East, Down in meter.
Velocity 3 Initial velocity in meter per second.
Theta 4 Initial orientation in quaternion.
Omega 3 Initial angular velocity in rad per second.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName = "base"
SimObject = "TorpedoAnchor"
Name = "Anc"
MaterialRho = "1000"
ShankLength = "1"
ShankDiameter = "0.1"
ShankThickness = "0.05"
FlukeSideLength = "2.5"
FlukePointLength = "3"
FlukeWidth = "0.1"
FlukeThickness = "0.5"
/>
<Lib
LibName ="base"
SimObject = "DefaultEnvironment"
Name = "Env"
Seadepth = "500"
Density = "1000"
CurrentVelocity = "0,0,0"
/>
<Lib
LibName = "base"
SimObject = "Cable"
Name = "C"
cableLength = "10"
numElements = "50"
diameter = "0.01"
cableWeight = "100"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
Anc.Force = "0,0,0"
C.PositionA = "0,0,0"
C.PositionB = "Anc.Position"
C.VelocityA = "0,0,0"
C.VelocityB = "Anc.Velocity"
C.RetractedLengthA = "0"
C.RetractedLengthB = "0"
C.RetractedSpeedA = "0"
C.RetractedSpeedB = "0"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
Anc.Position = "0,0,-10"
Anc.Velocity = "0,0,0"
Anc.Theta = "1,0,0,0"
Anc.Omega = "0,0,0"
/>
</INITIALIZATION>
<INTEGRATION>
<Engine
IntegratorMethod = "2"
NumCores = ""
TOutput = "0, 0:1:10, 10"
LogStates = "0"
Stepsize = "0"
HMax = "0.01"
HMin = "1E-060"
AbsTol = "0.001"
RelTol = "0.001"
UseRSSNormInsteadOfInfNorm = "0"
FinalStatesFile = ""
InitialStatesFile = ""
FileOutput = "objects:all"
/>
</INTEGRATION>
</Contents>

This SimObject is referred to as TorpedoAnchor