Marine systems simulation

Crow foot with at most tree lines attached to a common collecting point.

+ Collaboration diagram for Crow foot:
Author
Karl-Johan Reite
Date
21.11.2013 KJR: Initial version.

A run-time selected number of lines (1, 2 or 3) are attached to each other in a collection point. These lines are specified in terms of their length and fastening position. In addition, external forces acting on the collection point is specified. All positions and forces must be given in the global coordinate system.

This class finds the stable position of the collecting point, based on the forces acting on the point. This is done based on a direct solution, but to avoid a circular loop between the output position and the input force, the output position is found based on a state which is moved at a constant speed towards the instantaneous solution. If one or two lines are stretched, the solution is found using geometric considerations. If three lines are active, the solution is found based on the method described in "Reliable computation of the points of intersection of n spheres in R^n" by I.D. Coope (Received 7 August 2000)

Example configuration excerpt

<Lib
LibName = "fishery"
SimObject = "Trawl/Crowfoot"
Name = "CF"
NumLines = "3"
/>
Todo:
Add config details

Input Ports

Name Width Description
ExternalForce 3 External force acting on the collection point.
LinePos1...LinePos<NumLines> 3 Fastening position of each line.
LineLength1...LineLength<NumLines> 1

Length of each line.

Output Ports

Name Width Description
LineForce1...LineForce<NumLines> 3 The fore on each line.
LineTension1...LineTension<NumLines> 1 The tension of each line.
ExternalPos 3 Position.
ExternalVel 3 Velocity.

Configuration parameters

Name Width Description
NumLines 1 The number of lines.

Initial conditions

This simObject does not have any initial conditions.

Full example file

<Contents>
<OBJECTS>
<Lib
LibName = "fishery"
SimObject = "Trawl/Crowfoot"
Name = "CF"
NumLines = "3"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
CF.ExternalForce = "0,0,0"
CF.LinePos1 = "0,0,0"
CF.LinePos2 = "0,1,5"
CF.LinePos3 = "0,2,5"
CF.LineLength1 = "4"
CF.LineLength2 = "4"
CF.LineLength3 = "4"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
/>
</INITIALIZATION>
<INTEGRATION>
<Engine
IntegratorMethod="2"
NumCores="1"
TOutput="0, 1, 30"
LogStates ="1"
stepsize ="0"
HMax="0.002"
HMin="0.00000001"
AbsTol="1e-3" RelTol="1e-3"
UseRSSNormInsteadOfInfNorm="0"
FileOutput="objects:all"
/>
</INTEGRATION>
</Contents>

This SimObject is referred to as Trawl/Crowfoot