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

[Feature request] Changing operational depth of a device #1201

Open
TheWaveMaster opened this issue Jan 15, 2024 · 8 comments
Open

[Feature request] Changing operational depth of a device #1201

TheWaveMaster opened this issue Jan 15, 2024 · 8 comments
Assignees
Labels
Feature new feature request

Comments

@TheWaveMaster
Copy link

TheWaveMaster commented Jan 15, 2024

Hi all,
First of all, I want to thank the team behind wecSim for your amazing work!
I work for a wave energy developer, and just finalized a wecSim model for our device which we will heavily rely on in the final optimizations before we build and deploy soon!!

The amount of features that I was able to add because of wecSim are ridiculous, and the model is showing excellent matching against wave tank data! Big thanks and please keep up the good work!

As for the theory implementation I want to discuss and would like to hear a few opinions.
I want to simulate a device which changes its operational submergence depth in sim (gives you a clue to which company I work for). I was wondering if you guys have any idea regarding this. Obviously, it's not possible to change the hydrodatabase in sim (I can't even begin to imagine what will happen to the math of the model lol). Perhaps with the nonlinear hydros, the issue will be entities like the added mass and the radiation damping as basically the device goes from operating submerged to floating at the surface. Wondering what you guys think.

@salhus
Copy link
Contributor

salhus commented Jan 16, 2024

Hi @TheWaveMaster (cool name lol),

I think what you are describing is the need for the capability to swap out BEM coefficients for large amplitude motions. I would recommend you put in a feature request, and we have a formal format to follow when doing so... Short answer, it is possible... but may require some development.
If you are willing, you could put in the PR !

Basically, you will have to:

  1. Load multiple hydro objects and assign them different names, e.g. hydro_0 = load hydro for SWL, hydro_1 = load hydro for 1m draught and so on..
  2. Introduce a conditional if statement that checks for the displacements in the main model,
  3. Make a mask over the body blocks,
  4. In the mask's code initialization, have it write the hydro variable based on the appropriate hydro object from the conditional if statement...

I might try to implement this but can't guarantee a timeline.. Hope that helps ..

Cheers,
sal

Salman Husain, MSc, PhD,
National Renewable Energy Laboratory.

@salhus salhus self-assigned this Jan 17, 2024
@dforbush2
Copy link
Contributor

dforbush2 commented Jan 17, 2024

This sounds like something similar to our passive yaw implementation, where we look up the appropriate set of BEM coefficients from the present state of the device. In that case it is its yaw orientation, but we could do something similar with a lookup table based on z-position relative to the free surface.

But I am a little unclear what exactly is being asked here: non-linear hydro will resolve the pressure and non-linear Froude-Krylov on the body relative to the free surface, but the linear portion of the calculation is still based on the BEM coefficients, taken for the singular orientation of the body. My understanding of the request is you would like to also adjust the linear portion of this calculation.

Can you please provide some more details on this request?

@TheWaveMaster
Copy link
Author

Hi @TheWaveMaster (cool name lol),

I think what you are describing is the need for the capability to swap out BEM coefficients for large amplitude motions. I would recommend you put in a feature request, and we have a formal format to follow when doing so... Short answer, it is possible... but may require some development. If you are willing, you could put in the PR ! Basically, you will have to, 0. Load multiple hydro objects and assign them different names, e.g. hydro_0 = load hydro for SWL, hydro_1 = load hydro for 1m draught and so on..

  1. Introduce a conditional if statement that checks for the displacements in the main model,
  2. Make a mask over the body blocks,
  3. In the mask's code initialization, have it write the hydro variable based on the appropriate hydro object from the conditional if statement...

I might try to implement this but can't guarantee a timeline.. Hope that helps ..

Cheers, sal

Salman Husain, MSc, PhD, National Renewable Energy Laboratory.

Hi @salhus,

Thank you for your reply!
Yes that is exactly what I am looking for. This will open the door for loads of stuff, like simulating worst case scenarios during deployment, if for example the PTO fails while installing the device.

I see your point, and that might work! I will definitely put in the request and will try something from my end, I have to have a deeper look at marking the body with a mask.
I am concerned about the transition though, especially in large sea-states.

@TheWaveMaster
Copy link
Author

This sounds like something similar to our passive yaw implementation, where we look up the appropriate set of BEM coefficients from the present state of the device. In that case it is its yaw orientation, but we could do something similar with a lookup table based on z-position relative to the free surface.

But I am a little unclear what exactly is being asked here: non-linear hydro will resolve the pressure and non-linear Froude-Krylov on the body relative to the free surface, but the linear portion of the calculation is still based on the BEM coefficients, taken for the singular orientation of the body. My understanding of the request is you would like to also adjust the linear portion of this calculation.

Can you please provide some more details on this request?

Sorry if I wasn't clear!
Let me give you a physical understanding of the system a little bit. Our device is a submerged device with its mass smaller than the mass of water it displaces, hence, it always wants to go back to the surface, this way we can maintain the tension in the PTO tethers (it does have more advantages concerning power production). I have attached a picture of the device to better understand the concept.
I have managed to build a model of CETO (our device) in wecSim, along with 3 PTOs, with MPC control in each of them, and secondary mooring as well. One of the scenarios that I want to simulate for example is the PTOs disconnecting and the device going from being submerged to floating and being kept in place by the secondary mooring. Something like the passive yaw implementation is exactkly what I meant, but all the hydros, and their coefficients shift between the two positions.
carnegie-wave-energy

@kmruehl kmruehl added the Support Questions that need answering but do not require code changes label Jan 24, 2024
@kmruehl kmruehl changed the title Changing operational depth of a device [Theory or Implementation] Changing operational depth of a device Jan 24, 2024
@kmruehl kmruehl added Feature new feature request and removed Support Questions that need answering but do not require code changes labels Jan 24, 2024
@kmruehl kmruehl changed the title [Theory or Implementation] Changing operational depth of a device [Feature request] Changing operational depth of a device Jan 24, 2024
@kmruehl
Copy link
Contributor

kmruehl commented Jan 24, 2024

@TheWaveMaster Thank you for your great feedback and for your question.

We ask users to open GitHub issues using an appropriate template. This is helpful for the WEC-Sim team to classify issues, and address questions more thoroughly and efficiently. We hope this will be beneficial for developers, users and the WEC-Sim community in general.

Can you please edit this issue to use the Feature request template and include more details? This sounds like great feature that we would be happy to help integrate into the WEC-Sim source, either through a PR you submit, or something we add onto to our list of feature requests. Thanks again!

@salhus
Copy link
Contributor

salhus commented Jan 24, 2024

Hi @TheWaveMaster,

Thanks for explaining the problem statement, and I was guessing that it was the CETO device. However, as @kmruehl suggested, it would be easier from a project management perspective to include this as a feature request.
I think this is a much requested feature and we should develop support for large amplitude multi-mode WECs. After the feature request is posted, I can take a swing at developing a solution for multi-BEM -based WEC-Sim models.

Cheers,
sal

@dforbush2
Copy link
Contributor

@TheWaveMaster FYI this is happening, but represents a significant development effort to do this robustly w/in the WEC-Sim code structure. We will keep you posted of progress.

@TheWaveMaster
Copy link
Author

Awesome thank you!

@akeeste akeeste mentioned this issue Apr 10, 2024
15 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature new feature request
Projects
None yet
Development

No branches or pull requests

4 participants