Skip to content

Unable to capture smoothing dynamics with hydraulics style kinematics #359

@degoeden

Description

@degoeden

This one is a little complicated, so please let me know if there is more I can do to make this easier to follow. Not sure if I'm getting to a point where I'm going too far beyond what WecOptTool is supposed to do. I appreciate any help you are able to provide.

Describe the bug
When using hydraulics style kinematics (PTO velocity = piston area*abs(WEC velocity)) combined with smoothing dynamics (extra pole in PTO), the solver is unable to solve, unless the pole is sufficiently far away from the origin and the effects are small.

To Reproduce

  1. Use the code in this gist
  2. Patch the bug in the fd_to_td() function present in version 2.7.0 by following issue 321 fd_to_td() bug #329
  3. Run code

Expected behavior
I expect the combination of the kinematics I introduced and the smoothing controller to find a PTO force on the WEC with this sort of shape:
image
Specifically I would only expect WecOptTool to show the far right side of the plot (when it settles).

Observed behavior
No convergence, final "result" has a force that looks something like this:
image

System:

  • OS: Ubuntu 22.04
  • Python version: 3.10.13
  • WecOptTool version: 2.7.0 - but with the changes described in step 2 of To Reproduce
  • Capytaine version: 2.0

Additional information
My guess is that the issue is occurring because the force signal on the WEC from the PTO should have a discontinuity when crossing the x axis, and this discontinuous behavior doesn't balance nicely with the sine excitation force that WecOptTool assumes the waves provide.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions