FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0132 — Trawl/Vessel WarpVel leaves out the yaw rate
ID 0132
Class KNOWN-LIMITATION
Severity 1
Status blocked

Models: Trawl/Vessel

Found: 2026-10-24 review (doc/reviews/fhsim_fishery-2026-10-24, N7); filed under owner ruling D27

Decision needed: none; filed as a known limitation by owner ruling D27. Adding the rotation is a physics change for a later feature.

Evidence

src/trawl/TrawlVessel.cpp:190-198 (OutWarpVel):

// TODO: Add rotational velocity IF needed.
m_commonCalc->ComputeFunction(dT, adX);
double* adOut = m_out_WarpVel + 3 * warp;
for (unsigned short i = 0; i < 3; i++)
adOut[i] = m_out_Vel[i];

ToVessel.h:45 documents it. The heading rate is ApSpeed * deltaHeading (TrawlVessel.cpp:114-115).

Effect

Every WarpVel<N> equals Vel; the yaw rate times the lever arm is missing. Default vessel (Length 70 m, Breadth 14 m, ApSpeed 0.01 1/s, speed 2 m/s), heading command stepped by 90 degrees: the initial yaw rate is 0.01 * pi/2 = 0.0157 rad/s, and a warp fastening at (-35, +-7) m moves at |omega x r| of about 0.56 m/s across the track, 28 % of the tow speed, while WarpVel reports only the 2 m/s along the heading. The velocity of the warp's end node, used by the cable's damping there, is wrong for the length of the turn (time constant 100 s). A straight tow is not affected.

Possible fix

Add omega x r, with omega = (0, 0, ApSpeed * CalcHeadingDiff(DesiredHeading, heading)) at (T, X); it is a function of (T, X) and cheap. It moves the baselines of every case that turns the vessel (the seine operation).

Test that would prove it

A vessel with the heading state 90 degrees off its command: WarpVel1 minus Vel equals omega x WarpPos relative to the reference point, in NED.

Risk

Moves the seine regression baselines; no effect on straight tows.