Coder Social home page Coder Social logo

fbweccntrl's Introduction

fbWecCntrl

NOTE: this code is fully-functional, but not supported and users should not expect responses to issues

fbWecCntrl is a set of MATLAB functions and scripts demonstrating a causal impedance matching approach to wave energy converter (WEC) control design. The methods applied in this code are detailed in a journal paper (https://doi.org/10.1016/j.rser.2021.110791), and are a fork of code originally published on MHK-DR.

@Article{Coe2020practical,
  title = {A practical approach to wave energy modeling and control},
  journal = {Renewable and Sustainable Energy Reviews},
  volume = {142},
  pages = {110791},
  year = {2021},
  issn = {1364-0321},
  doi = {10.1016/j.rser.2021.110791},
  url = {https://www.sciencedirect.com/science/article/pii/S1364032121000861}
}

Getting started

This code has been tested on MATLAB 2020a (9.8.0.1323502) and has the following dependencies.

Dependency Website Required?
MATLAB https://www.mathworks.com/products/matlab.html yes
MATLAB Control System Toolbox https://www.mathworks.com/products/control.html yes
MATLAB Optimization Toolbox https://www.mathworks.com/products/optimization.html yes
WAFO1 https://github.com/wafo-project/wafo no
export_fig2 https://github.com/altmany/export_fig no

1WAFO is used to produce wave spectra. 2export_fig is used to produce PDFs figures.

  1. Download the fbWecCntrl software: Clone the repository or download an archive. If required, unzip the archive to a path of your choosing.

  2. Add fbWecCntrl to your MATLAB path: Add the necessary directories to your MATLAB path using the MATLAB command prompt.

    >> addpath(genpath('/path/to/fbWecCntrl'));
    >> savepath;
  3. Run the demo cases: Run the demo cases for the WaveBot and FOSWEC.

    >> demo_waveBot
    >> demo_foswec

Software License

Copyright 2020 National Technology & Engineering Solutions of Sandia, LLC (NTESS). Under the terms of Contract DE-NA0003525 with NTESS, the U.S. Government retains certain rights in this software.

fbWecCntrl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

fbWecCntrl is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with fbWecCntrl. If not, see https://www.gnu.org/licenses/.

fbweccntrl's People

Contributors

dforbush2 avatar gbacelli avatar ryancoe avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fbweccntrl's Issues

Alpha Review

As requested, here is my alpha review:

I don't have the control system toolbox, so I can only look at your README.

README.md

NOTE: this code is not supported and users should not expect responses to issues

I think this is too strong as your first line, as there is a good chance that people will think that you mean the code does not work and leave. Perhaps an explanation of why the code is here (on Github and not in a static repo) would be useful.

fbWecCntrl is set of

That's a typo

and represents a fork of

"is a fork"?

The installation instructions seem clear, but I can't test them.

Why is a value of 1 used for the frequency vector input from runPowStudy.m to mimoPi.m?

I was looking through how the gain matrix is calculated and came across this issue. When the powStudy matrix is being stored, the gain matrix uses a value of 1 as an input to mimoPi.m for the frequency vector. Shouldn't the peak frequency of the spectrum be used or is there something that I am missing?

Also, along the same lines, I am a bit confused on how the code calculates the theoretical power absorbed based on the optimized gains. The Ki gain changes based on the frequency, but would this represent an actual system well? Are we easily able to alter the stiffness of a PTO for each frequency in the spectrum (I am really not sure as I don't have much experience with hardware yet)? Additionally, if the Ki gain changes based on frequency, why does the Kp gain not change?

Let me know if any of my questions need more clarity as I am just trying to understand the functionality of this code better so that I can incorporate some of the concepts into my research on control codesign of WECs.

--Thanks!
Jeff

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.