ROSCO
NREL's Reference OpenSource Controller for wind turbine applications.
https://github.com/NREL/ROSCO
Category: Renewable Energy
Sub Category: Wind Energy
Keywords from Contributors
wind wind-turbines openmdao systems-engineering wisdem aeroelasticity wind-energy wind-farm wind-power
Last synced: about 2 hours ago
JSON representation
Repository metadata
A Reference Open Source Controller for Wind Turbines
- Host: GitHub
- URL: https://github.com/NREL/ROSCO
- Owner: NREL
- License: apache-2.0
- Created: 2019-11-08T15:47:14.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2025-03-05T16:46:59.000Z (about 2 months ago)
- Last Synced: 2025-04-25T05:36:28.264Z (3 days ago)
- Language: Python
- Homepage: https://rosco.readthedocs.io/en/latest/
- Size: 21.7 MB
- Stars: 128
- Watchers: 12
- Forks: 105
- Open Issues: 13
- Releases: 33
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README.md
NREL's Reference OpenSource Controller (ROSCO) toolbox for wind turbine applications
NREL's Reference OpenSource Controller (ROSCO) for wind turbine applications is a toolset designed to ease controller use and implementation for the wind turbine researcher. Some primary capabilities include:
- A reference controller with industry-standard functionality
- Generic tuning of NREL's ROSCO controller
- Simple 1-DOF turbine simulations for quick controller capability verifications
- Parsing of OpenFAST input and output files
Introduction
The NREL Reference OpenSource Controller (ROSCO) provides an open, modular and fully adaptable baseline wind turbine controller to the scientific community. The ROSCO toolbox leverages this architecture and implementation to provide a generic tuning process for the controller. Because of the open character and modular set-up, scientists are able to collaborate and contribute in making continuous improvements to the code for the controller and the toolbox. The ROSCO controller is implemented in FORTRAN, while the remainder of the toolset is a mostly-python code base with a number of functionalities.
- ROSCO - the fortran source code for the ROSCO controller.
- Examples - short working examples of the capabilities of the ROSCO toolbox.
- Tune_Cases - example generic tuning scripts for a number of open-source reference turbines.
- Test_Cases - numerous NREL 5MW bases cases to run for controller updates and comparisons. A "test-suite", if you will...
- Matlab_Toolbox - MATLAB scripts to parse and plot simulation output data.
- ofTools - A number of scripts to facilitate usage of OpenFAST and manage OpenFAST input and output files.
- linear - Scripts to aid with the use of linear models for controller tuning and simplified simulation.
Documentation
All relevant documentation about the ROSCO toolbox and ROSCO controller can be found at through ROSCO's readthedocs webpage. Here, users can find the information on installing the ROSCO tools for control purposes. Additionally, there is information on the standard workflow, details of the input files, use cases for the ROSCO tool-chain, and more.
Issues and Discussion
If you find issues with any of the code that resides in this repository, it is encouraged for you to open a GitHub issue. If you have general questions or comments regarding the code, please start a discussion via GitHub. We encourage you to use these resources for all ROSCO-related questions and comments, rather than other resources such as the FAST forums. This helps us keep ROSCO-related items centralized, and provides a singular place for the community to look when they have questions that might arise. Please keep in mind that we will do our very best to respond in a timely manner, but may take a few days to get back to you if you catch us during a busy time.
Contributing
If it wasn't obvious from open-source being in the title of the tool-set, this is an open-source code base that we would love for the community to contribute to. If you find yourself fixing any bugs, writing new routines, or even making small typo changes, please submit a pull request.
Survey
Please help us better understand the ROSCO user-base and how we can improve rosco through this brief survey:
ROSCO toolchain survey
Referencing
To reference the ROSCO source code directly, please use the following DOI:
If the ROSCO Toolbox played a role in your research, please cite it. This software can be
cited as:
NREL: ROSCO. Version 2.4.1, https://github.com/NREL/ROSCO, 2021.
For LaTeX users:
@misc{ROSCO_toolbox_2021,
author = {NREL},
title = {{ROSCO. Version 2.4.1}},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
url = {https://github.com/NREL/ROSCO}
}
If the ROSCO generic tuning theory and implementation played a roll in your research, please cite the following paper
@Article{wes-2021-19,
AUTHOR = {Abbas, N. and Zalkind, D. and Pao, L. and Wright, A.},
TITLE = {A Reference Open-Source Controller for Fixed and Floating Offshore Wind Turbines},
JOURNAL = {Wind Energy Science Discussions},
VOLUME = {2021},
YEAR = {2021},
PAGES = {1--33},
URL = {https://wes.copernicus.org/preprints/wes-2021-19/},
DOI = {10.5194/wes-2021-19}
}
Additional Contributors and Acknowledgments
Primary contributions to ROSCO have been provided by researchers the National Renewable Energy Laboratory and the University of Colorado Boulder. Additionally, the ROSCO controller was built upon the foundations of the Delft Research Controller. Much of the intellect behind these contributions has been inspired or derived from an extensive amount of work in the literature. The bulk of this has been cited through the primary publications about this work.
Owner metadata
- Name: National Renewable Energy Laboratory
- Login: NREL
- Email:
- Kind: organization
- Description:
- Website: http://www.nrel.gov
- Location: Golden, CO
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/1906800?v=4
- Repositories: 599
- Last ynced at: 2024-12-18T09:41:07.898Z
- Profile URL: https://github.com/NREL
GitHub Events
Total
- Create event: 16
- Release event: 5
- Issues event: 54
- Watch event: 19
- Delete event: 13
- Issue comment event: 90
- Push event: 72
- Pull request review event: 28
- Pull request review comment event: 28
- Pull request event: 39
- Fork event: 18
Last Year
- Create event: 16
- Release event: 5
- Issues event: 54
- Watch event: 19
- Delete event: 13
- Issue comment event: 90
- Push event: 72
- Pull request review event: 28
- Pull request review comment event: 28
- Pull request event: 39
- Fork event: 18
Committers metadata
Last synced: 6 days ago
Total Commits: 425
Total Committers: 14
Avg Commits per committer: 30.357
Development Distribution Score (DDS): 0.391
Commits in past year: 19
Committers in past year: 3
Avg Commits per committer in past year: 6.333
Development Distribution Score (DDS) in past year: 0.105
Name | Commits | |
---|---|---|
Nikhar Abbas | n****s@c****u | 259 |
Sebastiaan Mulders | s****s@t****l | 79 |
dzalkind | d****d@n****v | 62 |
Rafael M Mudafort | r****f@g****m | 8 |
Bartdoekemeijer | B****r@t****l | 4 |
nikhar-abbas | n****s@g****m | 3 |
[email protected] | i****o@s****l | 2 |
Gustavo Hylander | 7****r | 2 |
jnsburke | 7****e | 1 |
Pietro Bortolotti | p****i@g****m | 1 |
David Heffernan | d****f@g****m | 1 |
Abhineet Gupta | a****a@n****v | 1 |
Sebastiaan Mulders | s****d@t****t | 1 |
Bart Doekemeijer | b****r@h****c | 1 |
Committer domains:
- nrel.gov: 2
- tudelft.nl: 2
- hpc06.hpc: 1
- tudelft.net: 1
- sebastiaanmulders.nl: 1
- colorado.edu: 1
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 164
Total pull requests: 203
Average time to close issues: about 2 months
Average time to close pull requests: 21 days
Total issue authors: 93
Total pull request authors: 35
Average comments per issue: 3.72
Average comments per pull request: 0.76
Merged pull request: 160
Bot issues: 0
Bot pull requests: 0
Past year issues: 48
Past year pull requests: 45
Past year average time to close issues: 29 days
Past year average time to close pull requests: 20 days
Past year issue authors: 29
Past year pull request authors: 14
Past year average comments per issue: 2.21
Past year average comments per pull request: 1.07
Past year merged pull request: 36
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- dzalkind (15)
- ghylander (7)
- rdamiani (6)
- SYZ622 (5)
- Tomedssa (5)
- Fede-274 (4)
- WANG-KUI-TJU (4)
- Yuksel-Rudy (3)
- ElioDaka (3)
- misi9170 (3)
- GBA217 (3)
- dorsamgh (3)
- abelvanweert123 (3)
- marchdf (3)
- Ian-Ammerman (2)
Top Pull Request Authors
- dzalkind (94)
- nikhar-abbas (46)
- abhineet-gupta (7)
- gbarter (5)
- ptrbortolotti (5)
- aclerc (3)
- rafmudaf (3)
- rthedin (3)
- mfekrysaidahmed (3)
- PE-Meunier (2)
- ghylander (2)
- AthulKrishnaSundarrajan (2)
- mayankchetan (2)
- dstockhouse (2)
- marchdf (2)
Top Issue Labels
- help wanted (1)
- question (1)
Top Pull Request Labels
Package metadata
- Total packages: 4
-
Total downloads:
- pypi: 2,007 last-month
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 47
- Total maintainers: 3
proxy.golang.org: github.com/nrel/rosco
- Homepage:
- Documentation: https://pkg.go.dev/github.com/nrel/rosco#section-documentation
- Licenses: apache-2.0
- Latest release: v2.9.7+incompatible (published 3 months ago)
- Last Synced: 2025-04-27T06:32:16.880Z (1 day ago)
- Versions: 27
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Dependent packages count: 6.999%
- Average: 8.173%
- Dependent repos count: 9.346%
conda-forge.org: rosco
NREL-developed wind turbine controller for bladed-style communications
- Homepage: https://github.com/NREL/rosco
- Licenses: Apache-2.0
- Latest release: 2.6.0 (published over 2 years ago)
- Last Synced: 2025-04-01T02:08:48.243Z (27 days ago)
- Versions: 11
- Dependent Packages: 0
- Dependent Repositories: 0
-
Rankings:
- Forks count: 22.356%
- Dependent repos count: 34.025%
- Average: 35.997%
- Stargazers count: 36.431%
- Dependent packages count: 51.175%
pypi.org: octue-openfast
Readers and writers for OpenFAST files.
- Homepage:
- Documentation: https://octue-openfast.readthedocs.io/
- Licenses: apache-2.0
- Latest release: 3.5.4 (published 11 months ago)
- Last Synced: 2025-04-27T06:32:16.469Z (1 day ago)
- Versions: 3
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 95 Last month
-
Rankings:
- Dependent packages count: 10.934%
- Average: 36.252%
- Dependent repos count: 61.57%
- Maintainers (2)
pypi.org: rosco
A reference open source controller toolset for wind turbine applications.
- Homepage: https://github.com/NREL/ROSCO
- Documentation: https://rosco.readthedocs.io
- Licenses: Apache-2.0
- Latest release: 2.9.5 (published 4 months ago)
- Last Synced: 2025-04-27T06:32:16.423Z (1 day ago)
- Versions: 6
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 1,912 Last month
-
Rankings:
- Dependent packages count: 10.051%
- Average: 38.205%
- Dependent repos count: 66.36%
- Maintainers (1)
Dependencies
- actions/checkout v3 composite
- conda-incubator/setup-miniconda v2 composite
- furo *
- sphinx >4.0.0
- actions/checkout v4 composite
- actions/checkout v3 composite
- actions/download-artifact v4 composite
- actions/upload-artifact v4 composite
- awvwgk/setup-fortran v1 composite
- pypa/cibuildwheel v2.16.2 composite
- pypa/gh-action-pypi-publish release/v1 composite
- cmake
- cmake-build-extension
- compilers
- control
- make
- matplotlib
- ninja
- numpy
- pandas
- pyparsing
- pytest
- pyyaml
- pyzmq
- scipy
- sphinx_rtd_theme
- treon
- wisdem
- control *
- matplotlib *
- numpy *
- pandas *
- pyYAML *
- pyparsing *
- pyzmq *
- ruamel.yaml *
- scipy *
- treon *
- wisdem *
Score: 15.193707221046548