Marine systems simulation
|
Class containing a winch object developed for Rolls Royce Deck Machinery.
Cable model with bending/torsional stiffness and winch-functionality. The cable is discretized as "6 degrees of freedom" rigid cylinders which are connected with axial and angular constraints. For high bending stiffness the cable will work as a truss/beam.
The constraints are regularized with a compliant variation of the Baumgarte method. In effect the cylinders can be thought of as connected with axial and angular 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 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.
The effective spring stiffness is a combination of \(\beta\), \(\epsilon\), and the mathematical formulation of the constraint function.
For the axial spring the effective restoring force is: \( F = \beta^2/\epsilon*dL \) where \(dL\) is the distance between two successive cylinder endpoints.
For the angular spring the effective restoring moment is: \(M = \beta^2/\epsilon*sin(\theta/2)\) where theta is the difference in orientation angle between two successive cylinders. Note that the bending and the torsional stiffness can be set independently.
\(\alpha\) less than \(\beta\) means the system is underdamped, \(\alpha\) equal to \(\beta\) means critical damping, and \(\alpha\) larger than Beta means overdamped. The effective damping scales with \(\alpha/\epsilon\)
A fairly robust technique for adjusting the parameters when using an explicit integration scheme is as follows:
Choose a time step \(dt\) small enough to resolve the main macroscopic dynamics of the cable. The exact meaning of this is not precisely defined, but the important part is that the axial wave propagation speed which is responsible for the main numerical problems in spring-mass cable modeling need -not- be accounted for.
Set BetaN to \(1/dt\) or smaller, and then EpsilonN to the value which gives the desired global stiffness. A formula for determining effective Youngs-modulus is: \(E = \beta^2*L/(\epsilon*N*A)\), where \(L\) is the total cable length, \(N\) is the number of discrete cylinders in the cable, and \(A\) is the material cross-sectional area. For bending and torsional stiffness the expression is the same except \(A\) is replaced with \(2*I\) and \(2*J\) respectively.
Higher axial loads gives higher propagation rate of transversal waves. A smaller EpsilonM-value will suppress numerical instabilities from this cause. If the simulation crashes, reduce EpsilonM. As long as the BetaM-value is adjusted simultaneously, the total bending stiffness can be kept the same. If however BetaM becomes to small, the rate at which the cable 'self-aligns' will become too small, and the cable will tend to 'keep its shape'. In this case one may either accept this slightly non-physical consequence, keep the bending stiffness higher than the actual physical value, or reduce the time step and/or the element count.
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}\)
Name | Width | Description |
---|---|---|
posA | 3 | position of end-connection point A |
posB | 3 | position of end-connection point B |
velA | 3 | velocity of end-connection point A |
velB | 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 |
Name | Width | Description |
---|---|---|
forceA | 3 | Reaction force on side A |
forceB | 3 | Reaction force on side B |
Name | Width | Description |
---|---|---|
Length | 1 | total length of the cable [m] |
numElements | 1 | number of rigid elements in the cable [#] |
AlphaN | 1 | axial damping factor [s^-1] |
BetaN | 1 | axial restoring factor [s^-1] |
EpsilonN | 1 | axial compliance factor [kg^-1] |
AlphaM | 1 | bending damping factor [s^-1] |
BetaM | 1 | bending restoring factor [s^-1] |
EpsilonM | 1 | bending compliance factor [kg^-1*m^-2] |
AlphaT | 1 | torsional damping factor [s^-1] |
BetaT | 1 | torsional restoring factor [s^-1] |
EpsilonT | 1 | torsional compliance factor [kg^-1*m^-2] |
Weight | 1 | weight of the cable [kg/m] |
Radius | 1 | radius of the cable. [m] |
NB: Copied from segment beneath for safe-keeping
Parameter | Default | Comment |
Length | - | total length of the cable [m] |
numElements | - | number of rigid elements in the cable [#] |
AlphaN | - | axial damping factor [s^-1] |
BetaN | - | axial restoring factor [s^-1] |
EpsilonN | - | axial compliance factor [kg^-1] |
AlphaM | - | bending damping factor [s^-1] |
BetaM | - | bending restoring factor [s^-1] |
EpsilonM | - | bending compliance factor [kg^-1*m^-2] |
AlphaT | - | torsional damping factor [s^-1] |
BetaT | - | torsional restoring factor [s^-1] |
EpsilonT | - | torsional compliance factor [kg^-1*m^-2] |
Weight | - | weight of the cable [kg/m] |
Radius | - | radius of the cable. [m] |