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

Tutorial 1 inconsistent force constraints #293

Open
cmichelenstrofer opened this issue Nov 1, 2023 · 1 comment · Fixed by #339
Open

Tutorial 1 inconsistent force constraints #293

cmichelenstrofer opened this issue Nov 1, 2023 · 1 comment · Fixed by #339
Assignees
Labels
documentation Improvements or additions to documentation
Milestone

Comments

@cmichelenstrofer
Copy link
Member

@dtgaebe pointed out that in tutorial 1 we have the following discussion:

The attentive user might have noticed that the amplitude of the position, force and power signals is about half the magnitude of the signals we plotted in the first part of the tutorial. We can see that optimizing for electrical power requires optimal state trajectories with smaller amplitudes. For most WECs the electrical power is the usable form of power, thus the WEC should be designed for electrical power and we can avoid over-designing, which would results from expecting the forces associated with the optimal trajectories for mechanical power maximisation.

but the two cases have different force constraints, so we are not really comparing apples to apples.

@cmichelenstrofer cmichelenstrofer added this to the v3.0 milestone Nov 22, 2023
@ryancoe ryancoe added the documentation Improvements or additions to documentation label Nov 28, 2023
@dtgaebe
Copy link
Collaborator

dtgaebe commented Jan 23, 2024

I gave this some thought. I think we shouldn't be comparing apples to apples. Instead we wanted to illustrate the optimal solution for different forms of power subject to slight constraints, which we do.

I would go even further and illustrate how to constrain the generator current instead of the linear PTO force for the second part of the tutorial (electrical power).

gen_current_max = 7.5
def const_f_pto(wec, x_wec, x_opt, waves):
    current, _ = pto.power_variables(wec, x_wec, x_opt, waves, nsubsteps)
    return gen_current_max - np.abs(current.flatten())

We can add an explanation that this approximately corresponds to a linear force constraint of f_max = gear_ratio*torque_constant*gen_current_max and also state that the actual generator max current is 20A (if I recall correctly)

On the other hand, one might raise the question if this is what we want to illustrate and highlight...

@michaelcdevin michaelcdevin self-assigned this Apr 2, 2024
michaelcdevin added a commit to michaelcdevin/WecOptTool that referenced this issue Apr 2, 2024
@michaelcdevin michaelcdevin mentioned this issue Apr 21, 2024
11 tasks
michaelcdevin added a commit that referenced this issue Apr 23, 2024
* run CI on PRs against dev branch

* revamped tutorial 1, including fix for #293

* more tutorial cleanup and editorial changes

* more cleanup and incorporated changes in #315

* fixed tutorial 2 colormaps

* finishing touches

* reverted a few accidental changes

* fixes as per Jeff's review comments

---------

Co-authored-by: Ryan Coe <rcoe@sandia.gov>
@michaelcdevin michaelcdevin linked a pull request Apr 23, 2024 that will close this issue
11 tasks
michaelcdevin added a commit that referenced this issue May 6, 2024
* Update CONTRIBUTING.md to indicate PRs should be to the new `dev` branch

* Update RELEASING.md to reflect new workflow with the `dev` branch

* Set Default uniform_shift to False (#313)

* Make uniform shift default false and fix test_core

* Allow for non-uniform shift for impedance

* update docstrings (#326)

* damping naming and consistently change radiation damping (#328)

* run CI + codeQL on dev PRs/pushses

* Fix test failures (#330)

* fix tests

* fix pioneer

* actually test power solution for irregular wave (#327)

* Update test_integration with new scaling (#333)

* Phase Realizations Demo and Docs (#315)

* Pioneer tutorial realizations demo

Add frequency array and realization study to beginning of pioneer tutorial

* Update pioneer

* Clean pioneer and update docs

* remove print

* Units

* Update pioneer plots

* Waves before frequencies

* Explain less frequencies

* Minor updates

* Update pioneer

* Merge branch 'dev' of https://github.com/sandialabs/WecOptTool into phases_demo

* issue 321 fd_to_td() bug (#329)

* bug bix : DC and Nyquist frequency should not be devided by two before ifft


* Changed td_to_fd to scale single sided frequency components rather than TD signal

* minor bug fix from issue332 #332

* nodf -> ndof (#334)

* add DOI for Daniel's paper (#336)

* Tutorial cleanup (#339)

* run CI on PRs against dev branch

* revamped tutorial 1, including fix for #293

* more tutorial cleanup and editorial changes

* more cleanup and incorporated changes in #315

* fixed tutorial 2 colormaps

* finishing touches

* reverted a few accidental changes

* fixes as per Jeff's review comments

---------

Co-authored-by: Ryan Coe <rcoe@sandia.gov>

* Utils dev - replaces old utilities PR (#343)

* run CI on PRs against dev branch

* coppied fundamental utility files

* import utilities module

* added utilities funtions to tut1

* added bem plot from utils

* added bem plot from utils

* updated sankey plot

* updated check_radiation_damping

* cleared outputs

* corrected bug

* changed Zi to hydro_impedance to be consistent with our variables name python convention

* PR review edits

* add grid to plots

* removed draft functions in utilities.py

* typo

* Fixed one more typo I found while reviewing Daniel's changes

---------

Co-authored-by: Ryan Coe <rcoe@sandia.gov>
Co-authored-by: Michael Devin <michaelcdevin@outlook.com>

* Post process docstrings; use loops for multiple realizations (#337)

* post_processing docstrings

- examples
- parameters (order)

* handle multiple phase realizations internally

* Update wecopttool/core.py

* making outputs lists

* Update implementation to function with tutorial 1 for now

* Update tutorials

* Update LUPA

* Make sure same WEC is passed in

* Add test_utilities

Revert "Add test_utilities"

This reverts commit 27399f0.

* Update utilities module

* Update utilities

* Update test_utilities

* Update tutorial 1 utilities call

---------

Co-authored-by: Carlos A. Michelén Ströfer <cmichel@sandia.gov>
Co-authored-by: Carlos A. Michelén Ströfer <c.michelen.strofer@gmail.com>
Co-authored-by: jtgrasb <jtgrasb@sandia.gov>
Co-authored-by: jtgrasb <87095491+jtgrasb@users.noreply.github.com>

* v3.0.0

---------

Co-authored-by: Carlos A. Michelén Ströfer <cmichel@sandia.gov>
Co-authored-by: jtgrasb <87095491+jtgrasb@users.noreply.github.com>
Co-authored-by: Ryan Coe <rcoe@sandia.gov>
Co-authored-by: Daniel Gaebele <86246113+dtgaebe@users.noreply.github.com>
Co-authored-by: Carlos A. Michelén Ströfer <c.michelen.strofer@gmail.com>
Co-authored-by: jtgrasb <jtgrasb@sandia.gov>
michaelcdevin added a commit that referenced this issue Jun 21, 2024
* Update CONTRIBUTING.md to indicate PRs should be to the new `dev` branch

* Update RELEASING.md to reflect new workflow with the `dev` branch

* Set Default uniform_shift to False (#313)

* Make uniform shift default false and fix test_core

* Allow for non-uniform shift for impedance

* update docstrings (#326)

* damping naming and consistently change radiation damping (#328)

* run CI + codeQL on dev PRs/pushses

* Fix test failures (#330)

* fix tests

* fix pioneer

* actually test power solution for irregular wave (#327)

* Update test_integration with new scaling (#333)

* Phase Realizations Demo and Docs (#315)

* Pioneer tutorial realizations demo

Add frequency array and realization study to beginning of pioneer tutorial

* Update pioneer

* Clean pioneer and update docs

* remove print

* Units

* Update pioneer plots

* Waves before frequencies

* Explain less frequencies

* Minor updates

* Update pioneer

* Merge branch 'dev' of https://github.com/sandialabs/WecOptTool into phases_demo

* issue 321 fd_to_td() bug (#329)

* bug bix : DC and Nyquist frequency should not be devided by two before ifft


* Changed td_to_fd to scale single sided frequency components rather than TD signal

* minor bug fix from issue332 #332

* nodf -> ndof (#334)

* add DOI for Daniel's paper (#336)

* Tutorial cleanup (#339)

* run CI on PRs against dev branch

* revamped tutorial 1, including fix for #293

* more tutorial cleanup and editorial changes

* more cleanup and incorporated changes in #315

* fixed tutorial 2 colormaps

* finishing touches

* reverted a few accidental changes

* fixes as per Jeff's review comments

---------

Co-authored-by: Ryan Coe <rcoe@sandia.gov>

* Utils dev - replaces old utilities PR (#343)

* run CI on PRs against dev branch

* coppied fundamental utility files

* import utilities module

* added utilities funtions to tut1

* added bem plot from utils

* added bem plot from utils

* updated sankey plot

* updated check_radiation_damping

* cleared outputs

* corrected bug

* changed Zi to hydro_impedance to be consistent with our variables name python convention

* PR review edits

* add grid to plots

* removed draft functions in utilities.py

* typo

* Fixed one more typo I found while reviewing Daniel's changes

---------

Co-authored-by: Ryan Coe <rcoe@sandia.gov>
Co-authored-by: Michael Devin <michaelcdevin@outlook.com>

* Post process docstrings; use loops for multiple realizations (#337)

* post_processing docstrings

- examples
- parameters (order)

* handle multiple phase realizations internally

* Update wecopttool/core.py

* making outputs lists

* Update implementation to function with tutorial 1 for now

* Update tutorials

* Update LUPA

* Make sure same WEC is passed in

* Add test_utilities

Revert "Add test_utilities"

This reverts commit 27399f0.

* Update utilities module

* Update utilities

* Update test_utilities

* Update tutorial 1 utilities call

---------

Co-authored-by: Carlos A. Michelén Ströfer <cmichel@sandia.gov>
Co-authored-by: Carlos A. Michelén Ströfer <c.michelen.strofer@gmail.com>
Co-authored-by: jtgrasb <jtgrasb@sandia.gov>
Co-authored-by: jtgrasb <87095491+jtgrasb@users.noreply.github.com>

* v3.0.0

* Lower tolerance for new test to fix CI failing occasionally

* hyperlinks no longer have formatting, plus other small adjustments (#348)

* Merge to dev, not main (#349)

* Dev version of documentation site (#347)

* added initial file changes based on sphinx_multiversion docs and WEC-Sim implementation

* removed sphinx-multiversion since it is no longer supported and made manual multiversion

* now uses absolute paths, commented out linkcheck for debugging

* fixed docstring errors in utilities module

* updating files again that somehow got reverted

* fixing path in conf.py

* don't run tutorials (will revert later)

* handle file moves correctly, fixed if statement to make other versions appear

* fixed two bugs in versions template

* reverted temp changes, changes latest to main

* switched latest to main

* main branch now in root directory of pages

* fixed URLs with change from last commit

* make other branches visible before building

* switched main branch tag for more testing

* fixed typo

* switched dev branch to an existing branch

* renamed main to latest, changed version.html file name to avoid confusion

* added prints about moving files so Sphinx output isn't misleading

* fixed typo with quotations

* changed versions.html name back because that broke things I guess

* modified contributing documentation to reflect changes

* add logic to remove duplicate 'latest' branch

* Fixed pathing when already on latest

* remove typo

* Troubleshooting complete, switching back to correct branches for deployment

* Removed extra word in docstring

* removed redundant function

* fixed pathing so returns to same file (and fixes tutorial/API docs)

* changed latest branch for demonstration

* switched back latest branch for deployment

* updated with new Capytaine docs URL

* Add warnings when adding inertia and hydrostatic stiffness automatically (#346)

* CI workflow cleanup (#352)

* removed conda environment from workflows since newer capytaine/wavespectra work with Windows

* fixed unnecessary capitalization

* still create CI conda environment to fix Mac environment failures

* added conda env fully back in, push workflow deploys docs, split PR workflow

* conda environment activates again

* mambaforge instead of miniforge

* manual cache reset

* reset to older version of setup-miniconda to troubleshoot

* Specify NumPy version <2.0 since it breaks autograd

---------

Co-authored-by: Carlos A. Michelén Ströfer <cmichel@sandia.gov>
Co-authored-by: jtgrasb <87095491+jtgrasb@users.noreply.github.com>
Co-authored-by: Ryan Coe <rcoe@sandia.gov>
Co-authored-by: Daniel Gaebele <86246113+dtgaebe@users.noreply.github.com>
Co-authored-by: Carlos A. Michelén Ströfer <c.michelen.strofer@gmail.com>
Co-authored-by: jtgrasb <jtgrasb@sandia.gov>
jtgrasb added a commit that referenced this issue Aug 13, 2024
…ing) (#362)

* Update CONTRIBUTING.md to indicate PRs should be to the new `dev` branch

* Update RELEASING.md to reflect new workflow with the `dev` branch

* Set Default uniform_shift to False (#313)

* Make uniform shift default false and fix test_core

* Allow for non-uniform shift for impedance

* update docstrings (#326)

* damping naming and consistently change radiation damping (#328)

* run CI + codeQL on dev PRs/pushses

* Fix test failures (#330)

* fix tests

* fix pioneer

* actually test power solution for irregular wave (#327)

* Update test_integration with new scaling (#333)

* Phase Realizations Demo and Docs (#315)

* Pioneer tutorial realizations demo

Add frequency array and realization study to beginning of pioneer tutorial

* Update pioneer

* Clean pioneer and update docs

* remove print

* Units

* Update pioneer plots

* Waves before frequencies

* Explain less frequencies

* Minor updates

* Update pioneer

* Merge branch 'dev' of https://github.com/sandialabs/WecOptTool into phases_demo

* issue 321 fd_to_td() bug (#329)

* bug bix : DC and Nyquist frequency should not be devided by two before ifft


* Changed td_to_fd to scale single sided frequency components rather than TD signal

* minor bug fix from issue332 #332

* nodf -> ndof (#334)

* add DOI for Daniel's paper (#336)

* Tutorial cleanup (#339)

* run CI on PRs against dev branch

* revamped tutorial 1, including fix for #293

* more tutorial cleanup and editorial changes

* more cleanup and incorporated changes in #315

* fixed tutorial 2 colormaps

* finishing touches

* reverted a few accidental changes

* fixes as per Jeff's review comments

---------

Co-authored-by: Ryan Coe <rcoe@sandia.gov>

* Utils dev - replaces old utilities PR (#343)

* run CI on PRs against dev branch

* coppied fundamental utility files

* import utilities module

* added utilities funtions to tut1

* added bem plot from utils

* added bem plot from utils

* updated sankey plot

* updated check_radiation_damping

* cleared outputs

* corrected bug

* changed Zi to hydro_impedance to be consistent with our variables name python convention

* PR review edits

* add grid to plots

* removed draft functions in utilities.py

* typo

* Fixed one more typo I found while reviewing Daniel's changes

---------

Co-authored-by: Ryan Coe <rcoe@sandia.gov>
Co-authored-by: Michael Devin <michaelcdevin@outlook.com>

* Post process docstrings; use loops for multiple realizations (#337)

* post_processing docstrings

- examples
- parameters (order)

* handle multiple phase realizations internally

* Update wecopttool/core.py

* making outputs lists

* Update implementation to function with tutorial 1 for now

* Update tutorials

* Update LUPA

* Make sure same WEC is passed in

* Add test_utilities

Revert "Add test_utilities"

This reverts commit 27399f0.

* Update utilities module

* Update utilities

* Update test_utilities

* Update tutorial 1 utilities call

---------

Co-authored-by: Carlos A. Michelén Ströfer <cmichel@sandia.gov>
Co-authored-by: Carlos A. Michelén Ströfer <c.michelen.strofer@gmail.com>
Co-authored-by: jtgrasb <jtgrasb@sandia.gov>
Co-authored-by: jtgrasb <87095491+jtgrasb@users.noreply.github.com>

* v3.0.0

* Lower tolerance for new test to fix CI failing occasionally

* hyperlinks no longer have formatting, plus other small adjustments (#348)

* Merge to dev, not main (#349)

* Dev version of documentation site (#347)

* added initial file changes based on sphinx_multiversion docs and WEC-Sim implementation

* removed sphinx-multiversion since it is no longer supported and made manual multiversion

* now uses absolute paths, commented out linkcheck for debugging

* fixed docstring errors in utilities module

* updating files again that somehow got reverted

* fixing path in conf.py

* don't run tutorials (will revert later)

* handle file moves correctly, fixed if statement to make other versions appear

* fixed two bugs in versions template

* reverted temp changes, changes latest to main

* switched latest to main

* main branch now in root directory of pages

* fixed URLs with change from last commit

* make other branches visible before building

* switched main branch tag for more testing

* fixed typo

* switched dev branch to an existing branch

* renamed main to latest, changed version.html file name to avoid confusion

* added prints about moving files so Sphinx output isn't misleading

* fixed typo with quotations

* changed versions.html name back because that broke things I guess

* modified contributing documentation to reflect changes

* add logic to remove duplicate 'latest' branch

* Fixed pathing when already on latest

* remove typo

* Troubleshooting complete, switching back to correct branches for deployment

* Removed extra word in docstring

* removed redundant function

* fixed pathing so returns to same file (and fixes tutorial/API docs)

* changed latest branch for demonstration

* switched back latest branch for deployment

* updated with new Capytaine docs URL

* Add warnings when adding inertia and hydrostatic stiffness automatically (#346)

* Add data and update tutorial 4

* CI workflow cleanup (#352)

* removed conda environment from workflows since newer capytaine/wavespectra work with Windows

* fixed unnecessary capitalization

* still create CI conda environment to fix Mac environment failures

* added conda env fully back in, push workflow deploys docs, split PR workflow

* conda environment activates again

* mambaforge instead of miniforge

* manual cache reset

* reset to older version of setup-miniconda to troubleshoot

* Specify NumPy version <2.0 since it breaks autograd

* v3.0.1 (#360)

* Revert "v3.0.1 (#360)" (#361)

This reverts commit f79ff8b.

* Update pyproject.toml

* Update pioneer tutorial with nl spring and empirical model

* Clear outputs

* Consolidate empirical data and fix small issues

* Remove consolidation file

---------

Co-authored-by: Carlos A. Michelén Ströfer <cmichel@sandia.gov>
Co-authored-by: Ryan Coe <rcoe@sandia.gov>
Co-authored-by: Daniel Gaebele <86246113+dtgaebe@users.noreply.github.com>
Co-authored-by: Michael Devin <michaelcdevin@outlook.com>
Co-authored-by: Carlos A. Michelén Ströfer <c.michelen.strofer@gmail.com>
Co-authored-by: mcdevin <mcdevin@sandia.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants