FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
Rigid body cable

Class containing a winch object developed for Rolls Royce Deck Machinery.

+ Collaboration diagram for Rigid body cable:
Author
Jørgen Haavind Jensen
Date
Q3 2011 JHJ: Initial version.

Cable model with bending/torsional stiffness and winch-functionality. The cable is discretized as "6 degrees of freedom" rigid cylinders. Neighbouring cylinders are held together by a position constraint at their common joint, and the joint carries an explicit bending and twist moment (MARE-0395).

The position constraints are regularized with a compliant variation of the Baumgarte method. In effect the cylinders can be thought of as connected with axial springs like a traditional spring-mass-damper model, but without some of the numerical instability problems associated with high stiffness cables.

The behavior of the axial springs are defined with three parameters; \(\alpha\), \(\beta\) and \(\epsilon\). \(\beta\) controls the rate at which the constraint seeks towards equilibrium, \(\alpha\) is the damping factor, and \(\epsilon\) is the constraint compliance. For the axial spring the effective restoring force is: \( F = \beta^2/\epsilon*dL \) where \(dL\) is the distance between two successive cylinder endpoints.

The moment of a joint on the next cylinder is \(M = -(2/l)\,K\,\mathrm{vec}(q^* q_{next}) - C\,R^T(\omega_{next} - \omega)\) in the frame of the first cylinder (rotation \(R\), quaternion \(q\)), and the first cylinder takes the opposite moment. For a bend \(\theta\) about one axis the restoring part is \(EI\,2\sin(\theta/2)/l\), about \(EI\,\theta/l\); for a twist \(\psi\) it is \(GJ\,2\sin(\psi/2)/l\). The damping of each axis is \(c = 2\zeta\sqrt{J K/l}\) with \(\zeta = 0.05\), \(K\) the stiffness ( \(EI\) or \(GJ\)) and \(J\) the inertia of the cylinder about that axis: the damping ratio of one cylinder turning against a neighbour held still. It has no input of its own. The joints take no Baumgarte rows (before MARE-0395 they did, with a rate that was a time, and kept the cable in its initial shape for about 1000 s).

The cable model is equipped with virtual winch functionality which makes it possible to retract/extend the cable from the end points. The cable is manipulated by the retracted length and retraction speed at the end points A and B. The retracted length us used to change the cable length, while the retracted speed is used to satisfy the dynamics of the internal cable equations at the end points. The current extended length of the cable is \( L_{cable} = L_{total} - L_{retracted_A} - L_{retracted_B}\)

The definition of retracted length and retracted speed vs. cable length

Interface

This page documents the interface the library is built with (MARE-0025). The axial Baumgarte parameters \(\alpha\), \(\beta\) and \(\epsilon\) above are not parameters of it: they are derived from the material data and axialBaumgarteRate in the constructor, with \(\beta_N = \mathrm{axialBaumgarteRate}\) (a rate, 1/s), \(\alpha_N = \mathrm{damping}\cdot\beta_N\) and \(\epsilon_N = \beta_N^2 L/(2 E N A)\) (the factor 2 is the 2024 change that gives the correct static tension; it is marked "should be further checked" in the source).

The gap \(c\) of a joint obeys \(\ddot c + 2\alpha\dot c + \beta^2 c = -\epsilon\lambda\), so \(\beta\) is the rate (1/s) at which the position constraint is corrected and the cable is, from the explicit step \(h\), stable for \(\beta h \lesssim 1\) whatever the stiffness: the gap is critically damped for \(\beta\) below the frequency \(\sqrt{2 E A/(l\,m_\mathrm{eff})}\) of the cable's own axial mode, and above it the axial mode itself takes the damping ratio \(\mathrm{damping}\,\omega/\beta\). The static gap \(T/(2EA/l)\) does not depend on \(\beta\). Drift grows per step with the load differences between neighbours (a stiff soil's impulses) and is held to about \(h\,\Delta a/\beta\) for an acceleration difference \(\Delta a\): choose \(\beta\) as large as the step allows, within 100 and \(1/h\) (at the 1 ms of the seabed cases: 100 to 1000). A rate of about 10 or less lets a moving chain pull its joints apart (the soil's cases end in NaN); before MARE-0395 the rate was \(1/\mathrm{updateFreq}\) (the former name of the input axialBaumgarteRate), a time ( \(10^{-3}\) 1/s at the 1000 of the input files) and the gaps of a moving chain grew without limit. An input that still sets updateFreq is an error that names axialBaumgarteRate. The joint moments use \(EI\) (the input EI, default \(E\,I\) with \(I = 7 \pi D^4/5184\), the loose 1 x 7 strand of wires of diameter \(D/3\)) and \(GJ\) with \(J = 2I\).

Input ports

Name Width Description
PositionA 3 position of end-connection point A
PositionB 3 position of end-connection point B
VelocityA 3 velocity of end-connection point A
VelocityB 3 velocity of end-connection point B
RetractedLengthA 1 length of cable retracted on side A
RetractedLengthB 1 length of cable retracted on side B
RetractedSpeedA 1 retraction rate of cable retracted on side A
RetractedSpeedB 1 retraction rate of cable retracted on side B

Output ports

Name Width Description
ForceA 3 Reaction force on side A
ForceB 3 Reaction force on side B

Configuration parameters

Name Width Description
cableLength 1 total length of the cable [m]
numElements 1 number of rigid elements in the cable [#]
diameter 1 diameter of the cable [m]
cableWeight 1 weight of the cable [kg/m]
E-modulus 1 Young's modulus of the cable material [Pa]
G-modulus 1 shear modulus of the cable material [Pa] (Default: E-modulus / 2.6)
damping 1 structural damping of the cable [-] (Default: 1)
EI 1 bending stiffness of the cable [N m^2] (Default: E-modulus * 7 pi diameter^4 / 5184)
axialBaumgarteRate 1 Baumgarte rate of the axial (position) constraints [1/s]: the rate at which a joint gap is corrected; 100 to 1/dt (the explicit step dt)
isKelpRope 1 Sugar kelp rope: adds the biomass weight to each element (Default: false)
gaussPointDrag 1 Boolean. Takes the water at the joints between the elements and the drag at two Gauss points along each element, so that an element turning about a normal axis gets a drag moment (MARE-0396). Off: the drag on the water at the element centre (Default: true; owner ruling 2026-10-22)
biomassPerMeterNewton 1 weight of the kelp biomass per metre of rope [N/m] (Default: 98.1)
Scale 1 scale of the visualization (Default: 1)

The environment is taken from the shared resource Environment; a model without one is a setup error.