FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Seine operation

Class modelling the operation of danish seining.

+ Collaboration diagram for Seine operation:
Author
Karl-Johan Reite
Date
23.04.2010 KJR: Initial version.
Review issues:

0012 — SeineOperation hauls warps at a hard-coded 0.7 m/s while scheduling on WinchHaulSpeed

0017 — No shipped input file exercises any Seine SimObject

   This class controls the operation of danish seining, by giving control input to the vessel, as

well as controlling the SeineConnector object, which is the buoy used in the operation. It controls the warp lengths, if the buoy is set and in which position, the speed of the vessel, and the desired heading of the vessel. Its input parameters define the operation.

Input parameters:
AttractorNameNet
Name of the attractor acting on the net nodes.
AttractorNameWarps
Name of the attractor acting on the warp nodes.
InitialSpeed
The speed of the vessel before the operation is started.
SetSpeed
The speed of the vessel during deployment of net and warps.
TowSpeed
The speed of the vessel during towing of the net, before hauling is started.
HaulSpeed
The speed of the vessel during hauling of the net.
FinishedSpeed
The speed of the vessel after the operation is finished.
WinchHaulSpeed
The winch speed during hauling (m/s).
InitialHeading
The vessel heading before deployment starts.
TowHeading
The vessel heading during towing.
SpreadAngle
The angle between the two warps.
WarpLength
The lenth of the warps.
MinWarpLength
The shortest warp length when hauling (m). It sets both the length the winch hauls the warps in to and the duration of the towing phase.
TowTime
The time to tow the net after hauling.
AddedTrackLength
An addition to the track length to make the net deploy at the correct time. This corrects for the length of the net, as well as the distance the first warp is towed through the water until the net is set.
Definition of operation and parameters
Definition of seine operation.

The image shows how the trajectory of the vessel is defined. Basically, the total length of the trajectory, \(L\), is found as

\[L = L1 + L2 + L1\]

, where L1 and L2 are the sides of the equilateral triangle that forms the path of the vessel.

Further we have that:

\[ L = L_1 + L_2 + L_1 \]

\[ L = 2L_W + \Delta L \]

\[ 2 sin \frac{\alpha}{2} = \frac{\frac{L_2}{2}}{L_1} \]

Combining these equations, we get:

\[ L_2 = \frac{L}{1+\frac{1}{2 sin \frac{\alpha}{2}}} \]

\[ L_1 = \frac{L_2}{4 sin \frac{\alpha}{2}} = \frac{L - L_2}{2}\]

Using these equations, the trajectory of the vessel is found based on the input ( \( L_W, \Delta L, \psi, \alpha \) ).

The calculations of vessel heading are trivial and not explained in detail, but the headings are found based on the specified final heading and spread angle.

Full example file

The example is a copy of the regression input tests/in/SeineOperation/SeineOperation_in.xml, so the two cannot drift apart silently. It covers FISH-0017 item 2 only: Seine/Cable still has no worked instance.

<Contents>
<OBJECTS>
<Lib
LibName = "fishery"
SimObject = "Seine/Vessel"
Name = "V"
Length = "70"
Breadth = "14"
Draught = "7"
NumWarps = "2"
ApSpeed = "0.1"
InitialSpeed = "2"
InitialHeading = "0"
AttractorNameNet = "NetBin"
AttractorNameWarp = "WarpAttr"
/>
<Lib
LibName = "fishery"
SimObject = "Seine/Operation"
Name = "Op"
WarpLength = "100"
MinWarpLength = "60"
WinchHaulSpeed = "0.5"
SetSpeed = "4.0"
InitialSpeed = "4.0"
TowSpeed = "2.0"
HaulSpeed = "0.5"
FinishedSpeed = "0.5"
SpreadAngle = "60"
InitialHeading = "0"
TowHeading = "0"
AddedTrackLength = "50"
TensionFilterConstant = "0.001"
AttractorNameNet = "NetBin"
AttractorNameWarps = "WarpAttr"
/>
<Lib
LibName = "fishery"
SimObject = "Seine/Buoy"
Name = "B"
/>
</OBJECTS>
<INTERCONNECTIONS>
<Connection
B.Pos1 = "10, 0, 0"
B.Vel1 = "1, 0, 0"
B.Pos2 = "-10, 0, 0"
B.Vel2 = "-1, 0, 0"
B.Connected = "Op.WarpConnectedVessel"
Op.NetPWingPos = "-50, -25, -10"
Op.NetSWingPos = "-50, 25, -10"
Op.NetVel = "1, 0, 0"
Op.PBridlePos = "-30, -15, -10"
Op.SBridlePos = "-30, 15, -10"
Op.PBridleTension = "20000"
Op.SBridleTension = "20000"
Op.VesselPos = "V.Pos"
V.Heading = "Op.VesselHeading"
V.Vel = "Op.VesselSpeed"
/>
</INTERCONNECTIONS>
<INITIALIZATION>
<InitialCondition
V.Pos = "0,0"
V.Heading = "0"
/>
</INITIALIZATION>
<SIMULATION>
<Timing TStart="0" TEnd="260"/>
<Integrator Method="RK45_i" NumCores="1">
<StepControl StepMax="0.05" StepMin="1e-8" AbsTol="1e-3" RelTol="1e-3"/>
</Integrator>
</SIMULATION>
<OBSERVERS>
<!-- The first output time is 1, not 0: Seine/Operation latches BuoyPos out of
VesselPos only while it is in Phase_NotSet, and nothing has latched it yet at
t=0, so the t=0 sample of Op.BuoyPos is uninitialised memory (FISH-0024). -->
<FileOutput
TOutput = "1, 5, 9.9, 10.1, 20, 30.8, 30.9, 40, 51.6, 51.8, 60, 72.4, 72.6, 100, 130, 152.4, 152.6, 155:5:200, 210:10:250, 252.4, 252.6, 255, 260"
Select = "objects:all"/>
</OBSERVERS>
</Contents>

This SimObject is referred to as Seine/Operation