Open WS991106 opened 2 months ago
@WS991106 The strain and strain rate relationships in MoorDyn are laid out in the original theory paper again, specifically equations 3 and 6: https://www.sciencedirect.com/science/article/pii/S0029801815002279
In your notation, your first equation for strain is correct. For the rate of strain you don't define delta_L_dot, but it should be something like this (based off eqn 6 in the linked paper):
Dear @RyanDavies19,
I derived the formula you gave for DeltaLdot, is this correct? If it is correct, then it should be the same steps as deriving the formula for strain rate Isn't this the equation for the relationship between strain rate and DeltaLdot without defining DeltaLdot?
Dear @RyanDavies19,
The article says it doesn't model the compression forces, so which formula to follow when DeltaL is negative?
Dear @RyanDavies19,
I derived the formula you gave for DeltaLdot, is this correct? If it is correct, then it should be the same steps as deriving the formula for strain rate Isn't this the equation for the relationship between strain rate and DeltaLdot without defining DeltaLdot?
This all looks correct, it is the same as what is detailed in equations 3-6 in the paper I shared above.
Dear @RyanDavies19,
The article says it doesn't model the compression forces, so which formula to follow when DeltaL is negative?
When the segment stretched length is less than the unstretched length (delta_L < 0), then MoorDyn just sets the tension to zero. See here: https://github.com/OpenFAST/openfast/blob/43d3d2ce0419b6c46070223097068b813d338831/modules/moordyn/src/MoorDyn_Line.f90#L1216
The strain and rate of strain are still calculated using the formulas above, they are just ignored unless delta_L is positive.
Dear @RyanDavies19,
The segment tension is 0 when DeltaL is negative, so the damping force and other external forces are calculated normally, and equation 15 should become the part with no tension, is this correct?
@WS991106 yes that is correct
Dear @RyanDavies19,
I want to characterize a mooring system with three mooring lines connected to a semi-submersible turbine, but I'm not quite sure on what basis to input different DeltaL signals to the three mooring lines? Can you please guide me on how to do this?
Best regards,
@RyanDavies19 ,
I would also like to ask if it is correct for me to directly derive the DeltaL signal and then use it as the input signal to DeltaLdot?
Hi @WS991106,
That seems correct to me. DeltaLdot should be the rate of change of a given deltaL value, at the same time step.
Yesterday we updated the documentation for controls with MoorDyn-F: https://moordyn.readthedocs.io/en/latest/inputs.html#control-moordyn-f-only
Hopefully this can help you with getting things set up. Let me know if that doesn't answer your question!
Dear @RyanDavies19,
Can you describe to me what exactly the DeltaL change corresponds to? For example, if DeltaL is positive, is it stretching the mooring line, and if DeltaL is negative, is it tightening the mooring line?
@WS991106 yes that is correct. DeltaL is the change in length of the last segment in the mooring line. If it is positive then the mooring line is getting longer (less tension) and if it is negative the line is getting shorter (more tension)
@RyanDavies19 , But when Deltal is negative, according to the formula in the picture below, there should be no segment tension. Why does the tension increase?
@WS991106,
Apologies for the confusing notation and variable names here. DeltaL and DeltaLdot change the segment baseline un-stretched length of the last segment (Line%l(N)
) rather than stretching the segment length inside of Line_GetStateDerivative
. This occurs here: https://github.com/OpenFAST/openfast/blob/43d3d2ce0419b6c46070223097068b813d338831/modules/moordyn/src/MoorDyn.f90#L2867
So the tension changes because the underlying un-stretched length value changes. If the segment change in length relative to this updated un-stretched length is negative then the tensions will be zero.
@RyanDavies19 ,
Thank you for your answer. I don't really understand this updated unstretched length, could you please explain? Then I would like to ask if this active tension control of the mooring line can be thought of as simulating a winch installed at the connection between the last section of the mooring line and the platform to contract or stretch the mooring line?
@RyanDavies19 , Can you guide which quantities are better to use as feedback quantities if I want to do active tension control? Like using pitch angle, cross swing angle, or cable guide tension? Thank you very much!
Hi @WS991106,
The changing of the un-stretched length can be intuitively thought of as a winch on the cable end. It makes the mooring line longer or shorter depending on the control signal, after which MoorDyn will calculate the stretch of the line and loads at the new length. For example if you send a deltaL signal of 10 and then 0, MoorDyn will now be simulating a mooring line that is 10m longer. In the implementation this length increase is not spread to all the segments, just the end segment.
@RyanDavies19,
Wouldn't it be better to give DeltaL a discrete signal? Because given a signal 10, MoorDyn needs to perform a computation that contains a delay in between, and doesn't fully pick up on continuous signals. Or add a zero-order keeper after the continuous signal? Because I think the sampling time of the wind turbine is 0.0125s, and MoorDyn's simulation time doesn't seem to be equal to this time step
I would give DeltaL a discrete signal instead of a continuous one. Since moordyn expects the values of delta L and delta L dot to match up, I had a discrete signal for one and then either integrated/derived the other.
In terms of sampling time, the simulink model itself has a sampling DT and so does the fst file. I'd make sure both of those match to whatever time step you want the simulation to run at in order to control how fast MoorDyn is running.
Dear @RyanDavies19,
What kind of discrete signal is better for DeltaL? Because I have to use the DeltaLdot interface.
Dear @RyanDavies19,
I input a rectangular pulse signal with amplitude 8, period 10s and pulse width 20, the period is matched to the wave period, but the runtime will give me the following error.What is the reason for this?
And I would like to know why the value calculated by the simulation is so large when the DeltaL signal amplitude I gave is 8m.
Hi @WS991106,
I would check that you are giving the correct signal. The error you are seeing from MoorDyn is because it is receiving a DeltaL value of -21.822, which is more than half of a segment length. That error shows: <deltaL> is a reduction of more than half of <L>
.
As for type of signal, I would probably suggest something continuous like a sine wave. That way you can get a continuous deltaLdot signal as well.
Dear @mattEhall,
I understand that Moordyn needs to calculate the strain and strain rate of each segment, so I need to input signals to DeltaL and DeltaLdot when I use Cable control, can you tell me the relationship between strain and DeltaL, and the relationship between strain rate and DeltaLdot as I described below?
included among these,
Best regards,