Class modelling the operation of danish seining.
- 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>
<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