|
FhSim
3.1.0
Marine systems simulation
|
A towing vessel reduced to a speed-controlled point on a straight track, carrying a beam with two tow points.
Collaboration diagram for Trawl beam:A towing vessel reduced to one degree of freedom: a point that moves in a straight line in the horizontal NED plane, at heading Direction, and carries a transverse beam of length BeamLength. The two ends of the beam are the starboard and port tow points, where the warps of a trawl (e.g. two TrawlCable objects) attach.
A PID controller sets the propulsion force that holds the speed along the track at TravelSpeed:
\[ e = U_{ref} - u, \qquad F_{ship} = k_p e + k_d \frac{e - e_D}{T_d} + k_i e_I \]
where \(u\) is the TravelVel state, \(e_I = \int e\,dt\) is the IError state and \(e_D\) is the DError state, a first-order low-pass filter of \(e\) with time constant \(T_d\) ( \(\dot e_D = (e - e_D)/T_d\)). The term \((e - e_D)/T_d\) is therefore a filtered time derivative of the error.
The force is then limited in two ways, in this order:
Saturation is true and \(|F_{ship} u| >\) Power, the force is replaced by Power \(/ u\). For \(u > 0\) this is positive, so a negative (braking) force that exceeds the power limit becomes a positive force of Power \(/ u\).SaturationForce is set and \(|F_{ship}| \ge\) SaturationForce, the force is set to SaturationForce with the sign of \(F_{ship}\), so a braking force is limited as a driving one is. While this limit is active, the integration of IError is stopped (anti-windup). It is not stopped when only the power limit is active.The motion along the track is \(m \dot u = F_{ship} - F_{trawl}\), with \(m\) = Mass. When InForce is true, \(F_{trawl} = -\hat t \cdot (\vec F_{stbd} + \vec F_{port})\), the part of the two warp forces that pulls back along the track direction \(\hat t\) (below), with \(\vec F\) the warps' pull on the tow points, such as TrawlCable's WinchForce. A positive \(F_{trawl}\) slows the beam down.
The tow points lie at \(\vec p_{stbd,port} = s\,\hat t \pm q\,(0, L/2, 0)\), with \(s\) the TravelDistance state, \(\hat t = (\cos\psi, \sin\psi, 0)\) the track direction and \(L\) = BeamLength. The track starts at the NED origin and the z component is always 0. Both tow points have velocity \(u\,\hat t\).
The Environment shared resource is not used.
The excerpt is taken from the test fixture tests/in/TrawlBeam/TrawlBeam_in.xml.
Registered only when InForce is true.
| Name | Width | Description |
|---|---|---|
| ForceStbd | 3 | Force from the starboard warp on its tow point in NED [N]. Only its component along the track is used (see above). |
| ForcePort | 3 | Force from the port warp on its tow point in NED [N]. Only its component along the track is used (see above). |
| Name | Width | Description |
|---|---|---|
| ShipForce | 1 | The propulsion force \(F_{ship}\) after the power and force limits [N]. |
| Error | 1 | The speed error \(e\) = TravelSpeed \(-\) TravelVel [m/s]. |
| ErrorI | 1 | The integrated speed error, equal to the IError state [m]. |
| ErrorD | 1 | The low-pass filtered speed error, equal to the DError state [m/s]. |
| StateDist | 1 | The distance travelled along the track, equal to the TravelDistance state [m]. |
| StateVel | 1 | The speed along the track, equal to the TravelVel state [m/s]. |
| PositionStbdNED | 3 | Position of the starboard tow point in NED [m]. |
| PositionPortNED | 3 | Position of the port tow point in NED [m]. |
| VelocityStbdNED | 3 | Velocity of the starboard tow point in NED [m/s]. |
| VelocityPortNED | 3 | Velocity of the port tow point in NED [m/s]. Always equal to VelocityStbdNED. |
| Name | Width | Description |
|---|---|---|
| Direction | 1 | Heading of the track: rotation about the NED z axis from north [rad] (Default: 0). |
| TravelSpeed | 1 | Reference speed \(U_{ref}\) along the track [m/s]. Also the default initial value of TravelVel (Default: 1). |
| BeamLength | 1 | Distance between the starboard and port tow points [m] (Default: 20). |
| StartTravel | 1 | Initial value of the TravelDistance state [m] (Default: 0). An entry in the input file's initial conditions overrides it. |
| InForce | 1 | Boolean. If true, the ForceStbd and ForcePort input ports are registered and the trawl force is included. If false, \(F_{trawl}\) = 0 (Default: true). |
| Saturation | 1 | Boolean. Enables the power limit set by Power (Default: false). |
| SaturationForce | 1 | Limit on the magnitude of the propulsion force [N]. NaN disables the limit (Default: NaN). |
| kp | 1 | Proportional gain \(k_p\) [N s/m] (Default: 1). |
| kd | 1 | Derivative gain \(k_d\) [N s²/m] (Default: 1). |
| ki | 1 | Integral gain \(k_i\) [N/m] (Default: 1). |
| Td | 1 | Time constant \(T_d\) of the low-pass filter behind the derivative term [s] (Default: 10). |
| Mass | 1 | Mass \(m\) in the equation of motion along the track [kg] (Default: 1e6). |
| Power | 1 | Maximum propulsion power when Saturation is true [W] (Default: 1e6). |
| Name | Width | Description |
|---|---|---|
| TravelDistance | 1 | Distance travelled along the track \(s\) [m]. |
| TravelVel | 1 | Speed along the track \(u\) [m/s]. |
| IError | 1 | Integrated speed error \(e_I\) [m]. |
| DError | 1 | Low-pass filtered speed error \(e_D\) [m/s]. |
The Jacobian (OdeJacobian) leaves out the dependence on the input ports, so it treats \(F_{trawl}\) as constant.
TravelDistance starts at StartTravel, TravelVel at TravelSpeed, and IError and DError at 0, unless the input file's initial conditions give a value.
This SimObject is referred to as TrawlBeam