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.
   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, with WinchHaulSpeed, the duration of the hauling phase.
TowTime
The duration of the towing phase, after the second leg is set and before hauling starts (s, default 100).
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.
ShowStatus
Whether a visualised run shows the operation's status on the HUD (default false: nothing is drawn). See "Status display" below.
Status display
With ShowStatus = "true", a visualisation build shows ten lines in the top-right corner of the HUD (fhsim::Hud), Normal style and default priority, refreshed at most every 0.2 s of simulation time: the time (s), the phase, the commanded vessel speed (m/s) and heading (deg) of the phase, the wing spread (m), the bridle spread (m), the starboard and port bridle tensions (N, after the TensionFilterConstant filter), and the net's normal and tangential speeds (m/s). Numbers have one decimal, except speed and heading, which show up to four significant digits. The spreads, tensions and net speeds are computed from the input ports NetSWingPos, NetPWingPos, PBridlePos, SBridlePos (positions, expected in m), PBridleTension, SBridleTension (expected in N) and NetVel (expected in m/s); the object does not convert, so the labels hold only when the ports are connected in these units. A headless build reads the parameter and draws nothing; so does a renderer without a HUD.
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 isosceles triangle, with apex angle \(\alpha\) at the start, that forms the path of the vessel.

Further we have that:

\[ L = L_1 + L_2 + L_1 \]

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

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

Combining these equations, we get:

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

\[ L_1 = \frac{L_2}{2 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. Seine/Cable is wired to these objects in SeineCable.xml (FISH-0017, resolved).

<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, where the baseline starts. A t=0 sample would be
reproducible: Op.BuoyPos is zero until the first step in Phase_NotSet latches
VesselPos (FISH-0024, FISH-0104). -->
<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, 155:5:170, 172.4, 172.6, 175:5:200, 210:10:250, 252.4, 252.6, 255, 260"
Select = "objects:all"/>
</OBSERVERS>
</Contents>

This SimObject is referred to as Seine/Operation