A 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"
/>
...
<Connection
Anc.Force="0,0,-13.8729"
/>
...
<InitialCondition
Anc.Position="0,0,-500"
Anc.Velocity="0,0,0"
Anc.Quater="1.0,0.0,0.0,0.0"
Anc.Omega="0.0,0.0,0.0"
/>
- Note
- The simulation must include an Environment
-
The analytic Jacobian differentiates the inertia and Coriolis terms, gravity and the Force input exactly, but not the hydrodynamic drag, the soil forces or the added mass. It is complete only while the anchor is out of the water.
Input Ports
| Name | Width | Description |
| Force | 3 | Force std::vector in Newton. |
Output Ports
| Name | Width | Description |
| Position | 3 | Anchor position in meter. |
| Velocity | 3 | Anchor velocity in meter per second. |
| Quater | 4 | Anchor orientation as quaternion. |
| 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]. |
| Material | 1 | The visualization material (Default: DiffuseSpecular). Visualization builds only. |
Initial conditions
| Name | Width | Description |
| Position | 3 | Initial position in 3D. North, East, Down in meter. |
| Velocity | 3 | Initial velocity in meter per second. |
| Quater | 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="environment"
SimObject="Environment"
Name="Env"
Waves.Model="Component"
Waves.NumWaves="0"
Bathymetry.Depth="500"
/>
<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.Quater = "1,0,0,0"
Anc.Omega = "0,0,0"
/>
</INITIALIZATION>
<SIMULATION>
<Timing TStart="0" TEnd="10"/>
<Integrator Method="RK45_i" LogStates="0" UseRSSNorm="0">
<StepControl StepMax="0.01" StepMin="1E-060" AbsTol="0.001" RelTol="0.001"/>
</Integrator>
</SIMULATION>
</Contents>
This SimObject is referred to as TorpedoAnchor