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 buoyancy, the soil forces or the added mass. It is complete only while the anchor is out of the water.
-
Buoyancy (owner ruling R94, BASE-0067): MaterialRho is the dry density; each part (shank, flukes) carries rho_water g times its wetted volume upwards at its centre of buoyancy. The wetted part is measured against the wave surface (flat at the elevation above the part) with the part's shape: the shank as a cylinder (the outer cylinder's wetted fraction applied to the wall volume, its centre of buoyancy on the axis), a fluke as a thin plate (its wetted area, at that area's centroid). Below the environment's MaxWaveElevation bound the elevation is not evaluated.
-
No Froude-Krylov or added-mass wave excitation (R67): the model is documented for an anchor's fall and its embedment in the seabed, not for use in the wave zone (BASE-0059).
-
Seabed contact: the soil load of the shank (
AnchorShank) and of each fluke (Plate) comes from the environment's SeafloorForces shared resource, which holds the soil; the anchor has no soil parameter. The load is the soil's alone, the water load stays whole. While the shank or a fluke is in contact the anchor has no Jacobian (HasJacobians is false).
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 | Dry material density in kg per meter cubed: each part's mass is MaterialRho times its volume, and the water adds buoyancy on its wetted part (R94). |
| Rho | 1 | Water density [kg/m^3] (Default: 1025). Sets the buoyancy, the drag and the added mass of the shank and the flukes. |
| 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