Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cable Control #2297

Open
WS991106 opened this issue Jul 3, 2024 · 13 comments
Open

Cable Control #2297

WS991106 opened this issue Jul 3, 2024 · 13 comments

Comments

@WS991106
Copy link

WS991106 commented Jul 3, 2024

Dear @andrew-platt

I have two questions for you.
1, Is there any theoretical formula to show the relationship between Cable DeltaL Control and Cable DeltaLdot Control in terms of their quantitative relationship?
2、Cable Control changes the length of the last section of the mooring line, which will definitely affect the tension of the cable guide, I want to know the relationship between them, where should I get it?

Best regards,

@mattEhall
Copy link
Contributor

Hi there,
MoorDyn needs to calculate both the strain and the strain rate of every mooring line segment, so for length adjustments it needs to know bot the delta L and its rate of change (respectively) for those calculations. In general, those two inputs should be calculated based on how you model your actuation system. In the simplest form, you would just want to make sure they are consistent with a smooth/continuous length change. For example, if deltaL is changing by a constant rate, then make sure the deltaLdot is a constant value equal to that rate.
Matt

@WS991106
Copy link
Author

Where can I find this drive system?
If it's the simplest system, and I enter DeltaL as a ramp function, then DeltaLdot is set to the slope of the ramp function, am I understanding correctly?

@WS991106
Copy link
Author

Dear @jjonkman

Do you know the boundary values of DeltaL and DeltaLdot?

Best regards,

@jjonkman
Copy link
Collaborator

Dear @WS991106,

The drive system is what you are implementing through your cable controller. In your ramp example, I agree with your description of DeltaLdot.

The only limitation regarding the magnitude of DeltaL and DeltaLdot is that you can't set DeltaL such that the segment length change is excessive, as checked in MoorDyn.f90 / MD_CalcContStateDeriv().

Best regards,

@WS991106
Copy link
Author

Dear @jjonkman

I found the boundary constraints in MoorDyn.f90 / MD_CalcContStateDeriv(), which require the length not to exceed the unstretched length/number of segments,
image
and as far as I understand the unstretched length in the MoorDyn.data file is 835.35m, so the limiting length change should be 41.7675m as well, but why do I get an error if I give DeltaL a signal of 14m? Is it because the time step is too short?
image

Best regards,

@WS991106
Copy link
Author

Dear @jjonkman

Like this if I give him a fixed value directly it will just report an error.
image
image
If I give the DeltaL slope signal (with a slope of 0.1) and DeltaLdot=0.1 I wait until it exceeds 41.767 and get an error.
image

@jjonkman
Copy link
Collaborator

Dear @WS991106,

In your first example, what error are you getting when set DeltaL to a constant value of 14 m?

In your second example, the error makes sense because DeltaL cannot be greater than original element length.

Best regards,

@WS991106
Copy link
Author

Dear @jjonkman

In your first example, when set DeltaL to a constant value of 14 m ,he following error will be report.
"Active tension command will make a segment longer than the limit of twice its original length"
I'm wondering why this error occurs, since 14m is not more than twice his original length.
image

@mattEhall
Copy link
Contributor

Hm, so as I understand it
(1) an abrupt change to deltaL of 14 m causes an error,
(2) a gradual change of deltaL only hits an error at 41 m, as expected.
Perhaps in the first case there is an issue with a very large rate of change that causes an internal deltaL in MoorDyn to be larger than the limit in the process of time integration and interpolation/extrapolation between coupling time steps. In other words, it would only be an error for very abrupt length changes (that are likely not physically realistic anyway). Would that explain the behavior in the first case?
Matt

@WS991106
Copy link
Author

WS991106 commented Aug 5, 2024

Dear @jjonkman

Is the tension on the last section of the cable equal to the Fairten? I want to be sure because I want to use this tension deviation as a controller input signal!

Best regards,

@jjonkman
Copy link
Collaborator

jjonkman commented Aug 5, 2024

Dear @WS991106,

You should be able to output both tensions from MoorDyn to compare. My guess is the two tensions would be similar but not identical, due to the small weight of 1/2 a cable element that would be included in the fairlead tension but not the last section of line tension.

Best regards,

@WS991106
Copy link
Author

WS991106 commented Aug 5, 2024

Dear @jjonkman

Okay, thanks for the reply. I would also like to ask if it's possible to use only the DeltaL interface and not the DeltaLdot interface during the building of the controller? That is, only the change in length is taken into account not the rate of change.

@mattEhall
Copy link
Contributor

Dear @WS991106,

Using only DeltaL and not DeltaLdot would cause kinematics inconsistencies inside MoorDyn during its internal time steps. Essentially it would result in a step change in the unstretched length at each coupling time step, which could cause spikes that then trigger vibrations between the coupling time steps. I would strongly recommend using DeltaLdot too.

Also, I agree with Jason's last comment; there would be a small weight difference between the fairlead tension and the tension of the last segment.

Matt

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants