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

ROSCO v2.9.0 #304

Merged
merged 292 commits into from
Jan 19, 2024
Merged

ROSCO v2.9.0 #304

merged 292 commits into from
Jan 19, 2024

Conversation

dzalkind
Copy link
Collaborator

Description and Purpose

Release new version of ROSCO, v2.9.0:

ROSCO reorganization:

  • We have reorganized the ROSCO repository to follow recommended python packaging processes.
  • The former ROSCO_Toolbox has been moved into the rosco/toolbox directory and can be imported using import rosco.toolbox.
  • The controller fortran source code has been moved from ROSCO/ROSCO/src to ROSCO/controller/src

All API changes can be found in here, along with a summary of how to use the new inputs. Here is a script for updating DISCON inputs.

The floating feedback gain can now be gain scheduled versus wind speed. During wave basin testing of the ROSCO controller with a scale model, we found that in some metocean conditions, the floating feedback controller may require different tuning.

We have added a rotor position controller for tracking the azimuth location of a given rotor position using the generator torque. This feature was used to validate aeroelastic models with given SCADA data.

We have added a new torque control mode, which is less reliant on a wind speed estimate, based on feedback from certification bodies.

We have added an initial power reference control, which changes the rated rotor speed based on the estimated wind speed. Further power control features are planned in future releases.

Tower resonance avoidance has been added, which will skip a given rotor speed using the generator torque control.
The wind farm control interface using ZeroMQ has been expanded with a more robust python interface for more turbines. The interface has been tested using FAST.Farm.

Type of change

What types of change is it?
Select the appropriate type(s) that describe this PR

  • Bugfix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (non-backwards-compatible fix or feature)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no API changes)
  • Documentation update
  • Maintenance update
  • Other (please describe)

TODO Items General:

  • Add example/test for new feature
  • Update registry
  • Run testing

TODO Items API Change:

  • Update docs with API change
  • Run update_rosco_discons.py in Test_Cases/
  • Update DISCON schema

Github issues addressed, if one exists

Examples/Testing, if applicable

dzalkind and others added 30 commits January 14, 2022 15:07
* Allow defaults for AeroDyn inputs

* Allow AeroDyn inputs to be floats, too
* remove interpolation of blade chord and twist

* rename aerodynblade inputs

* Update surface and DISCON.INs

* Fix performance table paths

* Add proportional control and cleanup IPC

* Add IPC and filtered RootMyc to registry

* Better logic for filtering RootMOOP and fix notch filter slopes bug

* Add cyclic flap conrol

* Fix comments in ColemanTransformInverse

* Addd IPC_KP to DISCON.IN

* Error checking foro flp or ipc

* add mutichannel plotting with tuples

* add CMakeFiles to gitignore

* Add IPC_KP to api changes

* numerical qualifiers for error handling

* add IPC gains to schema for pass-through ability

* fix variable names

* fix ipc gain printing bug

* make sure IPC_KP is positive

* Update Polars to point to coord files

* ignore dbg2 files

* Add IEA15MW_OL.yaml

* update coord reader/writer

* expand pitch_initial to 30 degrees

* Add example 13 for IPC

* Update cp surfaces and DISCONS

* add examples to readme

* cleanup and streaamline run_examples

* Add IPC tuning vars

* Allow IPC to command pitch value below peak shaving saturation limit

* shorten simulation time

* Fix Material parameter path

* Update DISCONs again

* Fix OL_Input reading

* Set wind speed, rotor speed IC in example 14

* Debug OL reading

* Add more debugging lines

* Add more debugging lines 2

* Clean up, hone in on debug call

* Disable logging level

* Update discons - resolve conflict

* Print when finished with ROSCO

* add control packageg

* Use PriPath and RootName to name dbg files

* Print AvrSWAP

* Revert "Use PriPath and RootName to name dbg files"

This reverts commit 062fcaa.

* Disable other examples

* Print OL inputs

* Allow logging level 3

* Print OL inputs

* Make example shorter

* Print more stuf

* Print shape

* Revert "Print OL inputs"

This reverts commit 8e2a642.

* Update ROSCO Simulink model with IPC example

* refactor flap tuning for normalization methods

* improved flap controller filtering

* delete extra F_FlpCornerFrerq

* Update inputs, reader, and writer for OF 3.1.0

* Make sigma default interp type for multi_sigma

* Use openfast 3.1.0 in CI

* Fix leak...maybe

* Use OF 3.1.0 in testing

* Use gfotran for compile

* Clean up print statements

* Re-enable all examples

* Update NREL-5MW AD file

* Only check airfoil controls if more than one table

* Update BAR models

* Revert "Use gfotran for compile"

This reverts commit 5a6e2b7.

* Install pyFAST for CI

* Fix some paths in ex12

* Disable example 12

* Fix example 12 linear path, re-enable

* Skip compilers install for mac

* Try gfortran-9, no compilers

* Try gfortran-10, no compilers

* Skip windows compile in pytools

* Re-enable windows, use gfortran as FC

* Unset FC in windows

* Set environment for windows when dependencies installed

* Try setting environment in installation

* Put conditional env setting in correct place

* Try in setup again

* Break up tasks: Windows vs. not

* Update DISCONs

* Update docs with new variables

* Add example documentation

* Update ROSCO Simulink model for 3.1.0

* Make IEA model float again

* Reduce IEA timestep

* Match DT to checkpoint time

Co-authored-by: dzalkind <[email protected]>
* Added image of Bladed control screen setup

* Delete Bladed control screen.png

* Adding image of Bladed control screen

* Add files via upload

* Minor edit 1

* Minor change 2

* Minor change 3

* Minor change 4

* Change 6

* Change 7

* Change 8

* Minor change 9

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>
* Added image of Bladed control screen setup

* Delete Bladed control screen.png

* Adding image of Bladed control screen

* Add files via upload

* Minor edit 1

* Minor change 2

* Minor change 3

* Minor change 4

* Change 6

* Change 7

* Change 8

* Minor change 9

* Tinker with characters in bladed instructions

* Add bladed instructions to index

* Change bladed toctree label

* Do underline stuff

* Make toctree label same as file

* Remove colons from headers

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>
* cleanup api change table

* Update inverted notch to move frequency properly

* Saturate inv notch corner frequency at 0

* add sigma function

* Use IPC_Vramp for IPC cut-in

* Add IPC_Vramp DISCON inputs

* update registry

* Update DISCONs

* Update docs for API change

* Fix IPC_Vramp data type

* update comments

Co-authored-by: dzalkind <[email protected]>
* Convert WE saved variables to WE type

* Put restart flag in localvars

* Use saved filter params from LocalVar

* save pitcomt last

* Move IPC saved variables to localvars

* Saved pi controller variables to localvar

* Save RootMyb_Last to localvar

* ROSCO_IO - initial commit. Include restart and debug functions

* Use ROSCO IO and call restart functions

* Remove debug from function.f90

* Save ACC Infile info

* update for restart capabilities

* add rosco_io with restart and debug functions

* cleanup debug call

* use registry generate types and IO

* delete DFController

* fix timestep mismatch

* remove unnecessaray istatus check

* close files

* add reg test for restart

* add restart option to run_openfast

* add testing to CI, ignore generate files

* fix fastcall

* remove extra commas

* specify gfortran-10

* testing flag cleanup

* Use lv_strings to generate debug output

* Revert "testing flag cleanup"

This reverts commit 6f29556.

* Revert "specify gfortran-10"

This reverts commit 4c31544.

* minor cleanup

* Use kind from constants

* Add some comments for clarity

* put debug in if statements

* separate reg tests from oother tests

* Fl_Mode>0

* Remove hard coded values

* Add filtered signals and WE_Vw to debug varrs

* cd for regtest

* Check logging level before calling debug

* add fl_pitcom and pc_minpit to debugvars

* Turn runFAST into a class

* Refactor/simplify CaseLibrary

* Implement initial pitch actuator

* Set up steps case

* Add actuator variable

* Print first time step in debug outs

* Fix FOCAL yaml

* Set actuator to 0.25 Hz bandwidth

* ROSCO 2.5.0 (#115)

* FOCAL Updates (#64)

* Update headers

* fix bullets

* make uppercase

* Update turbine.py (#56)

* Update turbine.py

This add several lines for fixing the problem of repeated maximum values in the performance tables. This will cause the error (' the length of x and y is different.') of 'interpolate.interp1d.'

* Add comments and catch when there are multiple optimal pitch angles

Co-authored-by: dzalkind <[email protected]>

* increment version

* Update for OpenFAST v3.0.0

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* Update Testing (#58)

* Update scripts to run on eagle

* Update IEA-15MW semi example: use peak shaving w/ ps_percen=0.8

* Add comparison plots to testing scripts

* Update submit script for testing

* Update for latest eagle runs

* Add future to install dependencies

* add TMax to self, define tmin in print_results

* run tests in CI

* generic ROSCO path

* default to overwrite

* fix path

* import platform

* separate run_testing

* cleanup, specify lite test

* don't run testing in after examples, oops.

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: Nikhar Abbas <[email protected]>

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* Increment Version, OF3.0 (#57)

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* add ROSCO without submodule

* move ROSCO source to ROSCO folder

* Move cmake-related files to ROSCO

* Add back pesky ErrVar

* Remove parameters_files

* Merge ROSCO and _toolbox gitignore

* Fix .gitignore

* Remove Examples/DISCON.IN from git

* Fix and point example_01 to Tune_Cases/

* Update verbiage around using ofTools vs. weis

* Fix and point example_04 to Tune_Cases/

* Clean up example_06

* Clean up example_07

* Only check FlpCornerFreq if using Flp control, fixes example 05

* Make example_04 consistent with others

* Let example_05 run independently from 04

* Clean up example_05, wind files

* Add schema and update empty tuning yaml inputs, not connected yet

* Integrate schema into turbine, controller, and examples

* Only check Fl filter parameters if Fl_Mode > 0, fix example_05

* bump version to 2.3

* Compile ROSCO from ROSCO dir

* Rename to CI_rosco

* Add omega vs. windspeed functionality

* Fix tests: 5MW U_pc and 06 example dir

* Make _Toolbox vs_minspeed in rotor frame to match ROSCO

* Revert ServoDyn change

* change rotor speed constraint to be epsilon

* rename for clarity

* docs major refresh

* fix FA_AccF units in debug file

* docs that build locally

* Deallocate arrays in ROSCO, check in example_05

* Clean up comments

* remove gitmodules

* furo theme

* furo in requirements

* move readthedocs config file, remove furo import in conf.py

* add docs requirements file

* typo

* move index out of source folder

* trying to get furo to work

* import date

* fix versions and titles, cleanup readthedocs requirements

* typo fix, remove extras

* more cleanup

* bump version

* no furo extension, "hack" to load RT version

* proper toctree paths

* specify method

* add mock modules

* fix typos

* update python install requirements

* running locally

* move index to main docs dir again

* update to build locally

* error during warnings

* automated version

* cleanup

* remove old docs

* re-add docs

* simplify

* fix figure path

* try alabaster

* remove archived docs

* Add omega vs. windspeed functionality

* Fix tests: 5MW U_pc and 06 example dir

* more detailed sp.optimize settings

* run MBC3 in parallel

* restructure driver, run initialization doe for tuning

* Try new dlclose function

* Update example_05 to run simple simulation twice and check result

* Revert deallocation stuff

* Close discon library after every sim run

* Test examples on macOS and windows

* Run examples instead of testing on other platforms

* Skip examples in windows for now

* update paths and yaml load funciton

* Skip mac testing of examples

* provide default U_pc for single omega/zeta case

* allow for float or list-like pc tuning inputs

* Change name in setup.py

* WE_Vw unit fix

* Pass through kp_float, if desired

* Minor fixes: schema error and InputReader defaults

* cleeanup for improved stability

* check for doe_logs as string in load_DOE

* major restructure for rsched_driver class

* cleanup verbosity

* run serial by default

* load_parallel as linturb_option

* specific IEA15MW yaml for multi omega

* remove unused module imports

* fix error message types

* lin_file as input

* add comments on inputs to LinearTurbineModel init method

* remove relative file paths

* provide OpenFAST linearizations for IEA15MW UMaineSemi

* put plotting in specific function

* fix WE_lambda units

* add self in on a few necessary variables

* creaete example 12 for robust scheduling

* try a few mbc3 locations for import

* allow list-like or numpy arrays for omega_pc and zeta_pc schedules

* create and use recorder setup function

* Pass Through Kp_float (#57)

* Pass through kp_float, if desired

* Minor fixes: schema error and InputReader defaults

* fix setup_recorder to work for optimization driver too

* Allow pass through of Kp_float = 0

* cleanup om problems, update om0 calc

* doe levels as input

* negative k_float to account for OF conventions

* cleanup print statements

* variable name cleanup, use calculated k_float

* Add defaults to omega_,zeta_ pc and vs, allow to be numbers

* use standard tuning k_float as IC

* formatting update

* update problem setup methods

* cleanup add_dv, enable adding design variables after problem is setup

* change optimization step size

* more setup restructure

* update verbosity

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* Mostly a docs update (#61)

* rename for clarity

* docs major refresh

* fix FA_AccF units in debug file

* docs that build locally

* remove gitmodules

* furo theme

* furo in requirements

* move readthedocs config file, remove furo import in conf.py

* add docs requirements file

* typo

* move index out of source folder

* trying to get furo to work

* import date

* fix versions and titles, cleanup readthedocs requirements

* typo fix, remove extras

* more cleanup

* bump version

* no furo extension, "hack" to load RT version

* proper toctree paths

* specify method

* add mock modules

* fix typos

* update python install requirements

* running locally

* move index to main docs dir again

* update to build locally

* error during warnings

* automated version

* cleanup

* remove old docs

* re-add docs

* simplify

* fix figure path

* try alabaster

* remove archived docs

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* Pass through Kp_float = 0 (#59)

* Pass through kp_float, if desired

* Minor fixes: schema error and InputReader defaults

* Allow pass through of Kp_float = 0

* Add flp parameters to schema

* Change Fl_Mode default to 0

* Add defaults to omega_,zeta_ pc and vs, allow to be numbers

* Allow single pitch tuning values in code, default U_pc to 0

* use nac acceleration for floating feedback

* Fix TSR saturation for region 2.5operation

* Modify system for constant power operation

* Only modify pole for constant power above-rated

* Remove GenEff from K calc

* Update tuning, use constant power

* use load_rosco_yaml

* constant power

* Fix broken tests

* Include Fl_Mode=2 for nacelle pitching feedback

* Add FOCAL inputs
- hpf on floating feedback
- lpf on wind speed estimator
- associated schema updates

* Set notch and check frequencies when Fl_Mode = 1 (fixes bug)

* Skip filter step if there's an error

* Update IEA-15MW test case DISCON with focal inputs

* Allow Fl_Mode = 2 in ROSCO

* Pass through lpf frequency

* Add FOCAL tuning yaml

* Set Cp contour number of levels

* Add FOCAL params to various writers

* Update/tune focal yaml

* Add scripts for running FAST, tuning various parameters and cases

* Add notebook for FAST plotting

* Set up step case for testing

* Change doubles to C_doubles

* Define real and integer kinds, assign to all of ROSCO

* Add ADJUSTL to DISCON error message

* Fix Fl_Mode == 2

* Fix Fl_Mode == 2 again

* Call yaw, flap, and debug only if enabled in DISOCN.IN

* Make avrSWAP a ReKi and set constant kinds

* Add DISCONs for testing - revert this later

* Fix DISCON comparison, before DISCON's were overwritten by model

* Rename DEBUG2.dbg to RootName.dbg2

* Update TestCase DISCONs to new input file

* Add API change page in docs

* Add link to API change on main page

* Fix table headers

* Fix title underlines

* Fix tables again

* Fix tables again

* Fix version numbering in docs

* Simplify FAST_directory in run_FAST

* Versioning (#65)

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* remove git versioning from cmake

* use hard coded rosco_version

* update intro write method

* set nowrap for intel compilers

* Add transfer of error message and clear message after each call

* update install instructions

* Catch nans in ROSCO at end of WSE

* fix conda install typo

* cleanup docs

* Rename DEBUG2.dbg to RootName.dbg2

* Fix Fl_Mode == 2

* Fix Fl_Mode == 2 again

* Allow Fl_Mode = 2 in ROSCO

* Set notch and check frequencies when Fl_Mode = 1 (fixes bug)

* Update FOCAL tuning yaml

* Update TSR

* Clean up and doc fix

* Remove publish to pypi

* Define all constant inputs to functions with kind typing

* Generate Test_Case/ inputs automatically

* Fix IEA15 DISCON path

* Fix example 11 paths

* Auto-generate tuning input yaml using schema

* Add toolbox_input to doc index

* Add toctree

* Re-name title of toolbox_input

Co-authored-by: Nikhar Abbas <[email protected]>
Co-authored-by: Xianping Du <[email protected]>
Co-authored-by: nikhar-abbas <[email protected]>

* update listcheck method for numpy arrays

* Open Loop Control (#98)

* create rosco types yaml

* Add more descriptions, add integer_c default, cleanup

* updates for allocatability and shapes

* python scripts to write ROSCO_types.f90

* reemove superfulous modules

* use types from ROSCO registry

* create rosco types yaml

* Add more descriptions, add integer_c default, cleanup

* updates for allocatability and shapes

* python scripts to write ROSCO_types.f90

* reemove superfulous modules

* use types from ROSCO registry

* Saturate inputs to WSE.  Needs some TLC, but seems to work

* Reduce saturation limits on speed, torque

* Re-organize, set saturation limits.  Working at 3 m/s

* Initial add of OL control to ROSCO: builds

* Update DISCONs with open loop inputs

* Fix file reading for OL_Filename

* Add open loop control generation and file writing

* Use DISCON_dict for more manageable DISCON file writing

* Add open loop example, fix constant timeseries

* Make open loop example generate power

* Handle relative paths and calling from outside the run directory:
- Some helper functions borrowed from OpenFAST, f/ext_control
- Updated file writing

* Clean up: versions, print statements

* Fix SysFiles paths in CMakeLists

* Tidy up Ext_DLL names

* More Ext_DLL name tidying

* Test write_registry.py

* Update for OL Control

* Move preprocessor lines

* add zenodo DOI

* Regenerated Types

* fix shape

* revert filepath change

* give all  types a size, ProcAddr size = 3

* update types

* test registry in compile step

* specify default shell

* update write_registry path

* remove default shell

* Document API changes, provide OL input example

* Fix example 14 (yaw input)

* Add error catching to yaw control

* Tidy up OL_Input Reading: error catching, generalize

* More yaw control fixes, to model

* Checkout develop CMakeLists for ROSCO

* Update DISCON.INs for TestCases/

* Revert "Checkout develop CMakeLists for ROSCO"

This reverts commit 87a4913.

* Revert windows cmake stuff to develop

* Fix CMake again

* Revert "Revert windows cmake stuff to develop"

This reverts commit 39df122.

* Make last cmake fix - hopefully

Co-authored-by: Nikhar Abbas <[email protected]>

* Restart & registry (#99)

* Convert WE saved variables to WE type

* Put restart flag in localvars

* Use saved filter params from LocalVar

* save pitcomt last

* Move IPC saved variables to localvars

* Saved pi controller variables to localvar

* Save RootMyb_Last to localvar

* ROSCO_IO - initial commit. Include restart and debug functions

* Use ROSCO IO and call restart functions

* Remove debug from function.f90

* Save ACC Infile info

* update for restart capabilities

* add rosco_io with restart and debug functions

* cleanup debug call

* use registry generate types and IO

* delete DFController

* fix timestep mismatch

* remove unnecessaray istatus check

* close files

* add reg test for restart

* add restart option to run_openfast

* add testing to CI, ignore generate files

* fix fastcall

* remove extra commas

* specify gfortran-10

* testing flag cleanup

* Use lv_strings to generate debug output

* Revert "testing flag cleanup"

This reverts commit 6f29556.

* Revert "specify gfortran-10"

This reverts commit 4c31544.

* minor cleanup

* Use kind from constants

* Add some comments for clarity

* put debug in if statements

* separate reg tests from oother tests

* Fl_Mode>0

* Remove hard coded values

* Add filtered signals and WE_Vw to debug varrs

* cd for regtest

* Check logging level before calling debug

* add fl_pitcom and pc_minpit to debugvars

Co-authored-by: dzalkind <[email protected]>

* Break up if statement in open loop pitch (#100)

* Break up if statement in open loop pitch

* Make torque and yaw consistent with pitch: can start after some time

* add bld edgewise freq to robust dict_inputs

* Fix ccrotor inputs (#104)

* remove interpolation of blade chord and twist

* rename aerodynblade inputs

* Update surface and DISCON.INs

* Fix performance table paths

* Allow default inputs (#110)

* Allow defaults for AeroDyn inputs

* Allow AeroDyn inputs to be floats, too

* ipc (#105)

* remove interpolation of blade chord and twist

* rename aerodynblade inputs

* Update surface and DISCON.INs

* Fix performance table paths

* Add proportional control and cleanup IPC

* Add IPC and filtered RootMyc to registry

* Better logic for filtering RootMOOP and fix notch filter slopes bug

* Add cyclic flap conrol

* Fix comments in ColemanTransformInverse

* Addd IPC_KP to DISCON.IN

* Error checking foro flp or ipc

* add mutichannel plotting with tuples

* add CMakeFiles to gitignore

* Add IPC_KP to api changes

* numerical qualifiers for error handling

* add IPC gains to schema for pass-through ability

* fix variable names

* fix ipc gain printing bug

* make sure IPC_KP is positive

* Update Polars to point to coord files

* ignore dbg2 files

* Add IEA15MW_OL.yaml

* update coord reader/writer

* expand pitch_initial to 30 degrees

* Add example 13 for IPC

* Update cp surfaces and DISCONS

* add examples to readme

* cleanup and streaamline run_examples

* Add IPC tuning vars

* Allow IPC to command pitch value below peak shaving saturation limit

* shorten simulation time

* Fix Material parameter path

* Update DISCONs again

* Fix OL_Input reading

* Set wind speed, rotor speed IC in example 14

* Debug OL reading

* Add more debugging lines

* Add more debugging lines 2

* Clean up, hone in on debug call

* Disable logging level

* Update discons - resolve conflict

* Print when finished with ROSCO

* add control packageg

* Use PriPath and RootName to name dbg files

* Print AvrSWAP

* Revert "Use PriPath and RootName to name dbg files"

This reverts commit 062fcaa.

* Disable other examples

* Print OL inputs

* Allow logging level 3

* Print OL inputs

* Make example shorter

* Print more stuf

* Print shape

* Revert "Print OL inputs"

This reverts commit 8e2a642.

* Update ROSCO Simulink model with IPC example

* refactor flap tuning for normalization methods

* improved flap controller filtering

* delete extra F_FlpCornerFrerq

* Update inputs, reader, and writer for OF 3.1.0

* Make sigma default interp type for multi_sigma

* Use openfast 3.1.0 in CI

* Fix leak...maybe

* Use OF 3.1.0 in testing

* Use gfotran for compile

* Clean up print statements

* Re-enable all examples

* Update NREL-5MW AD file

* Only check airfoil controls if more than one table

* Update BAR models

* Revert "Use gfotran for compile"

This reverts commit 5a6e2b7.

* Install pyFAST for CI

* Fix some paths in ex12

* Disable example 12

* Fix example 12 linear path, re-enable

* Skip compilers install for mac

* Try gfortran-9, no compilers

* Try gfortran-10, no compilers

* Skip windows compile in pytools

* Re-enable windows, use gfortran as FC

* Unset FC in windows

* Set environment for windows when dependencies installed

* Try setting environment in installation

* Put conditional env setting in correct place

* Try in setup again

* Break up tasks: Windows vs. not

* Update DISCONs

* Update docs with new variables

* Add example documentation

* Update ROSCO Simulink model for 3.1.0

* Make IEA model float again

* Reduce IEA timestep

* Match DT to checkpoint time

Co-authored-by: dzalkind <[email protected]>

* Increment version number

* Bladed docs (#116)

* Added image of Bladed control screen setup

* Delete Bladed control screen.png

* Adding image of Bladed control screen

* Add files via upload

* Minor edit 1

* Minor change 2

* Minor change 3

* Minor change 4

* Change 6

* Change 7

* Change 8

* Minor change 9

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>

* Update version in API change docs

* Bladed readthedocs (#117)

* Added image of Bladed control screen setup

* Delete Bladed control screen.png

* Adding image of Bladed control screen

* Add files via upload

* Minor edit 1

* Minor change 2

* Minor change 3

* Minor change 4

* Change 6

* Change 7

* Change 8

* Minor change 9

* Tinker with characters in bladed instructions

* Add bladed instructions to index

* Change bladed toctree label

* Do underline stuff

* Make toctree label same as file

* Remove colons from headers

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>

* Update docs to reflect CI process

Co-authored-by: Nikhar Abbas <[email protected]>
Co-authored-by: Xianping Du <[email protected]>
Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>

* Fixed wrong formatting of list items (#122)

extra newline required between list elements

* Regenerate types, IO with registry

* Update registry so first timestep is printed

* Update inverted notch to move frequency properly

* Saturate inv notch corner frequency at 0

* Add tower damper mode flag

* Flip Ct and Cq table allocation

* Regen types

* Remove print statements used for debugging

* Update input files: IEA model has pitch actuator

* Add back flap control (no idea when it was deleted)

* Update discons, docs with API change

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: Nikhar Abbas <[email protected]>
Co-authored-by: Xianping Du <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>
Co-authored-by: Gustavo Hylander <[email protected]>
* Convert WE saved variables to WE type

* Put restart flag in localvars

* Use saved filter params from LocalVar

* save pitcomt last

* Move IPC saved variables to localvars

* Saved pi controller variables to localvar

* Save RootMyb_Last to localvar

* ROSCO_IO - initial commit. Include restart and debug functions

* Use ROSCO IO and call restart functions

* Remove debug from function.f90

* Save ACC Infile info

* update for restart capabilities

* add rosco_io with restart and debug functions

* cleanup debug call

* use registry generate types and IO

* delete DFController

* fix timestep mismatch

* remove unnecessaray istatus check

* close files

* add reg test for restart

* add restart option to run_openfast

* add testing to CI, ignore generate files

* fix fastcall

* remove extra commas

* specify gfortran-10

* testing flag cleanup

* Use lv_strings to generate debug output

* Revert "testing flag cleanup"

This reverts commit 6f29556.

* Revert "specify gfortran-10"

This reverts commit 4c31544.

* minor cleanup

* Use kind from constants

* Add some comments for clarity

* put debug in if statements

* separate reg tests from oother tests

* Fl_Mode>0

* Remove hard coded values

* Add filtered signals and WE_Vw to debug varrs

* cd for regtest

* Check logging level before calling debug

* add fl_pitcom and pc_minpit to debugvars

* Turn runFAST into a class

* Refactor/simplify CaseLibrary

* Implement initial pitch actuator

* Set up steps case

* Add actuator variable

* Print first time step in debug outs

* Fix FOCAL yaml

* Set actuator to 0.25 Hz bandwidth

* ROSCO 2.5.0 (#115)

* FOCAL Updates (#64)

* Update headers

* fix bullets

* make uppercase

* Update turbine.py (#56)

* Update turbine.py

This add several lines for fixing the problem of repeated maximum values in the performance tables. This will cause the error (' the length of x and y is different.') of 'interpolate.interp1d.'

* Add comments and catch when there are multiple optimal pitch angles

Co-authored-by: dzalkind <[email protected]>

* increment version

* Update for OpenFAST v3.0.0

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* Update Testing (#58)

* Update scripts to run on eagle

* Update IEA-15MW semi example: use peak shaving w/ ps_percen=0.8

* Add comparison plots to testing scripts

* Update submit script for testing

* Update for latest eagle runs

* Add future to install dependencies

* add TMax to self, define tmin in print_results

* run tests in CI

* generic ROSCO path

* default to overwrite

* fix path

* import platform

* separate run_testing

* cleanup, specify lite test

* don't run testing in after examples, oops.

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: Nikhar Abbas <[email protected]>

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* Increment Version, OF3.0 (#57)

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* increment version

* Update for OpenFAST v3.0.0

* Install OF3.0.0 for tests

* update for OF v3.0.0

* add publish to pypi on release

* Update to ROSCO v2.3.0

* add ROSCO without submodule

* move ROSCO source to ROSCO folder

* Move cmake-related files to ROSCO

* Add back pesky ErrVar

* Remove parameters_files

* Merge ROSCO and _toolbox gitignore

* Fix .gitignore

* Remove Examples/DISCON.IN from git

* Fix and point example_01 to Tune_Cases/

* Update verbiage around using ofTools vs. weis

* Fix and point example_04 to Tune_Cases/

* Clean up example_06

* Clean up example_07

* Only check FlpCornerFreq if using Flp control, fixes example 05

* Make example_04 consistent with others

* Let example_05 run independently from 04

* Clean up example_05, wind files

* Add schema and update empty tuning yaml inputs, not connected yet

* Integrate schema into turbine, controller, and examples

* Only check Fl filter parameters if Fl_Mode > 0, fix example_05

* bump version to 2.3

* Compile ROSCO from ROSCO dir

* Rename to CI_rosco

* Add omega vs. windspeed functionality

* Fix tests: 5MW U_pc and 06 example dir

* Make _Toolbox vs_minspeed in rotor frame to match ROSCO

* Revert ServoDyn change

* change rotor speed constraint to be epsilon

* rename for clarity

* docs major refresh

* fix FA_AccF units in debug file

* docs that build locally

* Deallocate arrays in ROSCO, check in example_05

* Clean up comments

* remove gitmodules

* furo theme

* furo in requirements

* move readthedocs config file, remove furo import in conf.py

* add docs requirements file

* typo

* move index out of source folder

* trying to get furo to work

* import date

* fix versions and titles, cleanup readthedocs requirements

* typo fix, remove extras

* more cleanup

* bump version

* no furo extension, "hack" to load RT version

* proper toctree paths

* specify method

* add mock modules

* fix typos

* update python install requirements

* running locally

* move index to main docs dir again

* update to build locally

* error during warnings

* automated version

* cleanup

* remove old docs

* re-add docs

* simplify

* fix figure path

* try alabaster

* remove archived docs

* Add omega vs. windspeed functionality

* Fix tests: 5MW U_pc and 06 example dir

* more detailed sp.optimize settings

* run MBC3 in parallel

* restructure driver, run initialization doe for tuning

* Try new dlclose function

* Update example_05 to run simple simulation twice and check result

* Revert deallocation stuff

* Close discon library after every sim run

* Test examples on macOS and windows

* Run examples instead of testing on other platforms

* Skip examples in windows for now

* update paths and yaml load funciton

* Skip mac testing of examples

* provide default U_pc for single omega/zeta case

* allow for float or list-like pc tuning inputs

* Change name in setup.py

* WE_Vw unit fix

* Pass through kp_float, if desired

* Minor fixes: schema error and InputReader defaults

* cleeanup for improved stability

* check for doe_logs as string in load_DOE

* major restructure for rsched_driver class

* cleanup verbosity

* run serial by default

* load_parallel as linturb_option

* specific IEA15MW yaml for multi omega

* remove unused module imports

* fix error message types

* lin_file as input

* add comments on inputs to LinearTurbineModel init method

* remove relative file paths

* provide OpenFAST linearizations for IEA15MW UMaineSemi

* put plotting in specific function

* fix WE_lambda units

* add self in on a few necessary variables

* creaete example 12 for robust scheduling

* try a few mbc3 locations for import

* allow list-like or numpy arrays for omega_pc and zeta_pc schedules

* create and use recorder setup function

* Pass Through Kp_float (#57)

* Pass through kp_float, if desired

* Minor fixes: schema error and InputReader defaults

* fix setup_recorder to work for optimization driver too

* Allow pass through of Kp_float = 0

* cleanup om problems, update om0 calc

* doe levels as input

* negative k_float to account for OF conventions

* cleanup print statements

* variable name cleanup, use calculated k_float

* Add defaults to omega_,zeta_ pc and vs, allow to be numbers

* use standard tuning k_float as IC

* formatting update

* update problem setup methods

* cleanup add_dv, enable adding design variables after problem is setup

* change optimization step size

* more setup restructure

* update verbosity

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* Mostly a docs update (#61)

* rename for clarity

* docs major refresh

* fix FA_AccF units in debug file

* docs that build locally

* remove gitmodules

* furo theme

* furo in requirements

* move readthedocs config file, remove furo import in conf.py

* add docs requirements file

* typo

* move index out of source folder

* trying to get furo to work

* import date

* fix versions and titles, cleanup readthedocs requirements

* typo fix, remove extras

* more cleanup

* bump version

* no furo extension, "hack" to load RT version

* proper toctree paths

* specify method

* add mock modules

* fix typos

* update python install requirements

* running locally

* move index to main docs dir again

* update to build locally

* error during warnings

* automated version

* cleanup

* remove old docs

* re-add docs

* simplify

* fix figure path

* try alabaster

* remove archived docs

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* Pass through Kp_float = 0 (#59)

* Pass through kp_float, if desired

* Minor fixes: schema error and InputReader defaults

* Allow pass through of Kp_float = 0

* Add flp parameters to schema

* Change Fl_Mode default to 0

* Add defaults to omega_,zeta_ pc and vs, allow to be numbers

* Allow single pitch tuning values in code, default U_pc to 0

* use nac acceleration for floating feedback

* Fix TSR saturation for region 2.5operation

* Modify system for constant power operation

* Only modify pole for constant power above-rated

* Remove GenEff from K calc

* Update tuning, use constant power

* use load_rosco_yaml

* constant power

* Fix broken tests

* Include Fl_Mode=2 for nacelle pitching feedback

* Add FOCAL inputs
- hpf on floating feedback
- lpf on wind speed estimator
- associated schema updates

* Set notch and check frequencies when Fl_Mode = 1 (fixes bug)

* Skip filter step if there's an error

* Update IEA-15MW test case DISCON with focal inputs

* Allow Fl_Mode = 2 in ROSCO

* Pass through lpf frequency

* Add FOCAL tuning yaml

* Set Cp contour number of levels

* Add FOCAL params to various writers

* Update/tune focal yaml

* Add scripts for running FAST, tuning various parameters and cases

* Add notebook for FAST plotting

* Set up step case for testing

* Change doubles to C_doubles

* Define real and integer kinds, assign to all of ROSCO

* Add ADJUSTL to DISCON error message

* Fix Fl_Mode == 2

* Fix Fl_Mode == 2 again

* Call yaw, flap, and debug only if enabled in DISOCN.IN

* Make avrSWAP a ReKi and set constant kinds

* Add DISCONs for testing - revert this later

* Fix DISCON comparison, before DISCON's were overwritten by model

* Rename DEBUG2.dbg to RootName.dbg2

* Update TestCase DISCONs to new input file

* Add API change page in docs

* Add link to API change on main page

* Fix table headers

* Fix title underlines

* Fix tables again

* Fix tables again

* Fix version numbering in docs

* Simplify FAST_directory in run_FAST

* Versioning (#65)

* use sphinx-rtd-theme

* master doc and sphinx rtd theme

* index back to root folder

* only ignore install folders

* remove hidden toctree

* furo theme

* update paths

* convert rt version to string

* update sphinx settings

* move conf

* furo theme

* remove git versioning from cmake

* use hard coded rosco_version

* update intro write method

* set nowrap for intel compilers

* Add transfer of error message and clear message after each call

* update install instructions

* Catch nans in ROSCO at end of WSE

* fix conda install typo

* cleanup docs

* Rename DEBUG2.dbg to RootName.dbg2

* Fix Fl_Mode == 2

* Fix Fl_Mode == 2 again

* Allow Fl_Mode = 2 in ROSCO

* Set notch and check frequencies when Fl_Mode = 1 (fixes bug)

* Update FOCAL tuning yaml

* Update TSR

* Clean up and doc fix

* Remove publish to pypi

* Define all constant inputs to functions with kind typing

* Generate Test_Case/ inputs automatically

* Fix IEA15 DISCON path

* Fix example 11 paths

* Auto-generate tuning input yaml using schema

* Add toolbox_input to doc index

* Add toctree

* Re-name title of toolbox_input

Co-authored-by: Nikhar Abbas <[email protected]>
Co-authored-by: Xianping Du <[email protected]>
Co-authored-by: nikhar-abbas <[email protected]>

* update listcheck method for numpy arrays

* Open Loop Control (#98)

* create rosco types yaml

* Add more descriptions, add integer_c default, cleanup

* updates for allocatability and shapes

* python scripts to write ROSCO_types.f90

* reemove superfulous modules

* use types from ROSCO registry

* create rosco types yaml

* Add more descriptions, add integer_c default, cleanup

* updates for allocatability and shapes

* python scripts to write ROSCO_types.f90

* reemove superfulous modules

* use types from ROSCO registry

* Saturate inputs to WSE.  Needs some TLC, but seems to work

* Reduce saturation limits on speed, torque

* Re-organize, set saturation limits.  Working at 3 m/s

* Initial add of OL control to ROSCO: builds

* Update DISCONs with open loop inputs

* Fix file reading for OL_Filename

* Add open loop control generation and file writing

* Use DISCON_dict for more manageable DISCON file writing

* Add open loop example, fix constant timeseries

* Make open loop example generate power

* Handle relative paths and calling from outside the run directory:
- Some helper functions borrowed from OpenFAST, f/ext_control
- Updated file writing

* Clean up: versions, print statements

* Fix SysFiles paths in CMakeLists

* Tidy up Ext_DLL names

* More Ext_DLL name tidying

* Test write_registry.py

* Update for OL Control

* Move preprocessor lines

* add zenodo DOI

* Regenerated Types

* fix shape

* revert filepath change

* give all  types a size, ProcAddr size = 3

* update types

* test registry in compile step

* specify default shell

* update write_registry path

* remove default shell

* Document API changes, provide OL input example

* Fix example 14 (yaw input)

* Add error catching to yaw control

* Tidy up OL_Input Reading: error catching, generalize

* More yaw control fixes, to model

* Checkout develop CMakeLists for ROSCO

* Update DISCON.INs for TestCases/

* Revert "Checkout develop CMakeLists for ROSCO"

This reverts commit 87a4913.

* Revert windows cmake stuff to develop

* Fix CMake again

* Revert "Revert windows cmake stuff to develop"

This reverts commit 39df122.

* Make last cmake fix - hopefully

Co-authored-by: Nikhar Abbas <[email protected]>

* Restart & registry (#99)

* Convert WE saved variables to WE type

* Put restart flag in localvars

* Use saved filter params from LocalVar

* save pitcomt last

* Move IPC saved variables to localvars

* Saved pi controller variables to localvar

* Save RootMyb_Last to localvar

* ROSCO_IO - initial commit. Include restart and debug functions

* Use ROSCO IO and call restart functions

* Remove debug from function.f90

* Save ACC Infile info

* update for restart capabilities

* add rosco_io with restart and debug functions

* cleanup debug call

* use registry generate types and IO

* delete DFController

* fix timestep mismatch

* remove unnecessaray istatus check

* close files

* add reg test for restart

* add restart option to run_openfast

* add testing to CI, ignore generate files

* fix fastcall

* remove extra commas

* specify gfortran-10

* testing flag cleanup

* Use lv_strings to generate debug output

* Revert "testing flag cleanup"

This reverts commit 6f29556.

* Revert "specify gfortran-10"

This reverts commit 4c31544.

* minor cleanup

* Use kind from constants

* Add some comments for clarity

* put debug in if statements

* separate reg tests from oother tests

* Fl_Mode>0

* Remove hard coded values

* Add filtered signals and WE_Vw to debug varrs

* cd for regtest

* Check logging level before calling debug

* add fl_pitcom and pc_minpit to debugvars

Co-authored-by: dzalkind <[email protected]>

* Break up if statement in open loop pitch (#100)

* Break up if statement in open loop pitch

* Make torque and yaw consistent with pitch: can start after some time

* add bld edgewise freq to robust dict_inputs

* Fix ccrotor inputs (#104)

* remove interpolation of blade chord and twist

* rename aerodynblade inputs

* Update surface and DISCON.INs

* Fix performance table paths

* Allow default inputs (#110)

* Allow defaults for AeroDyn inputs

* Allow AeroDyn inputs to be floats, too

* ipc (#105)

* remove interpolation of blade chord and twist

* rename aerodynblade inputs

* Update surface and DISCON.INs

* Fix performance table paths

* Add proportional control and cleanup IPC

* Add IPC and filtered RootMyc to registry

* Better logic for filtering RootMOOP and fix notch filter slopes bug

* Add cyclic flap conrol

* Fix comments in ColemanTransformInverse

* Addd IPC_KP to DISCON.IN

* Error checking foro flp or ipc

* add mutichannel plotting with tuples

* add CMakeFiles to gitignore

* Add IPC_KP to api changes

* numerical qualifiers for error handling

* add IPC gains to schema for pass-through ability

* fix variable names

* fix ipc gain printing bug

* make sure IPC_KP is positive

* Update Polars to point to coord files

* ignore dbg2 files

* Add IEA15MW_OL.yaml

* update coord reader/writer

* expand pitch_initial to 30 degrees

* Add example 13 for IPC

* Update cp surfaces and DISCONS

* add examples to readme

* cleanup and streaamline run_examples

* Add IPC tuning vars

* Allow IPC to command pitch value below peak shaving saturation limit

* shorten simulation time

* Fix Material parameter path

* Update DISCONs again

* Fix OL_Input reading

* Set wind speed, rotor speed IC in example 14

* Debug OL reading

* Add more debugging lines

* Add more debugging lines 2

* Clean up, hone in on debug call

* Disable logging level

* Update discons - resolve conflict

* Print when finished with ROSCO

* add control packageg

* Use PriPath and RootName to name dbg files

* Print AvrSWAP

* Revert "Use PriPath and RootName to name dbg files"

This reverts commit 062fcaa.

* Disable other examples

* Print OL inputs

* Allow logging level 3

* Print OL inputs

* Make example shorter

* Print more stuf

* Print shape

* Revert "Print OL inputs"

This reverts commit 8e2a642.

* Update ROSCO Simulink model with IPC example

* refactor flap tuning for normalization methods

* improved flap controller filtering

* delete extra F_FlpCornerFrerq

* Update inputs, reader, and writer for OF 3.1.0

* Make sigma default interp type for multi_sigma

* Use openfast 3.1.0 in CI

* Fix leak...maybe

* Use OF 3.1.0 in testing

* Use gfotran for compile

* Clean up print statements

* Re-enable all examples

* Update NREL-5MW AD file

* Only check airfoil controls if more than one table

* Update BAR models

* Revert "Use gfotran for compile"

This reverts commit 5a6e2b7.

* Install pyFAST for CI

* Fix some paths in ex12

* Disable example 12

* Fix example 12 linear path, re-enable

* Skip compilers install for mac

* Try gfortran-9, no compilers

* Try gfortran-10, no compilers

* Skip windows compile in pytools

* Re-enable windows, use gfortran as FC

* Unset FC in windows

* Set environment for windows when dependencies installed

* Try setting environment in installation

* Put conditional env setting in correct place

* Try in setup again

* Break up tasks: Windows vs. not

* Update DISCONs

* Update docs with new variables

* Add example documentation

* Update ROSCO Simulink model for 3.1.0

* Make IEA model float again

* Reduce IEA timestep

* Match DT to checkpoint time

Co-authored-by: dzalkind <[email protected]>

* Increment version number

* Bladed docs (#116)

* Added image of Bladed control screen setup

* Delete Bladed control screen.png

* Adding image of Bladed control screen

* Add files via upload

* Minor edit 1

* Minor change 2

* Minor change 3

* Minor change 4

* Change 6

* Change 7

* Change 8

* Minor change 9

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>

* Update version in API change docs

* Bladed readthedocs (#117)

* Added image of Bladed control screen setup

* Delete Bladed control screen.png

* Adding image of Bladed control screen

* Add files via upload

* Minor edit 1

* Minor change 2

* Minor change 3

* Minor change 4

* Change 6

* Change 7

* Change 8

* Minor change 9

* Tinker with characters in bladed instructions

* Add bladed instructions to index

* Change bladed toctree label

* Do underline stuff

* Make toctree label same as file

* Remove colons from headers

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>

* Update docs to reflect CI process

Co-authored-by: Nikhar Abbas <[email protected]>
Co-authored-by: Xianping Du <[email protected]>
Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>

* Fixed wrong formatting of list items (#122)

extra newline required between list elements

* Regenerate types, IO with registry

* Update registry so first timestep is printed

* Update inverted notch to move frequency properly

* Saturate inv notch corner frequency at 0

* Add tower damper mode flag

* Add Azimuth tracking controller in Simulink

* Always enable GenDOF, add options for simp_step

* Add sweep for IPC gains and FA damper

* Fix NumCoords in FAST_writer

* Add turbulent case to runFAST/CaseLibrary

* Add peak shaving sweep function

* Increase default IPC_IntSat, make input parameter in future

* Flip Ct and Cq table allocation (#129)

* Flip Ct and Cq table allocation

* Regen types

* Remove print statements used for debugging

* Update input files: IEA model has pitch actuator

* Add back flap control (no idea when it was deleted)

* Update discons, docs with API change

* Add user-defined hh case

* Fix AddF0 and RayleighDamp in FAST_reader

* Add max_torque_factor for constant power control, flexible upper limit

* Make update discons relative to tuning yaml

* Update AddF0 and NumCoords in FAST_reader/writer

* Remove matlab/rotor position control stuff

Co-authored-by: nikhar-abbas <[email protected]>
Co-authored-by: Nikhar Abbas <[email protected]>
Co-authored-by: Xianping Du <[email protected]>
Co-authored-by: WillC-DNV <[email protected]>
Co-authored-by: Gustavo Hylander <[email protected]>
dzalkind and others added 28 commits November 16, 2023 11:15
* Add script for auto-generating zmq interface

* Add torque offset because we needed to fill the setpoint slot

* Add a working example to help further development of ZMQ for farm control

* Use setpoints/measurements on python side

* Complete merge with ZMQ_Indentifier

* Standardize setpoints on zmq server side, now attr of class

* Rename zeromq examples

* Set up multi_openfast example with run_FAST routines

* Add ZMQ_* inputs to schema, input writer

* Set relative path to wfc_interface file

* Rename ZMQ_Identifier to ZMQ_ID

* Rename turbine_zmq_server and make setpoints/measurements a list

* Try apt-get update

* Rename zmq examples in test script

* Modify ZeroMQ wind farm control interface and example to more object oriented code

* Fix update period logic for ZMQ client

* Update DISCONs

* Cast ZMQ_ID as int

* Add various features and tests to ZeroMQ wind farm control implementation (#282)

* Add tests to example-17b

* Add logging to zmq server for wind farm control

* Small changes to zeromq interface to make the code more descriptive and robust

* Modify example-17a to work with new zeromq wind farm control interface and some minor changes

* Add helpful comment about logging level

---------

Co-authored-by: AbhineetGupta <[email protected]>
* Move Test and Tune_Cases into Examples

* Move ROSCO controller and registry to controller

* Remove _temp from rosco dir

* Move ROSCO_Testing to rosco/test

* Move ROSCO_toolbox into rosco/toolbox

* Rename ROSCO_Toolbox throughout

* Fix paths to tune yamls

* Update library path

* Update CI paths

* Add python to registry call in CI

* Add init in top rosco folder

* Fix more paths

* Update install paths

* Update a few more paths

* Update rosco walkthrough notebook

* Change dir for testing, library location

* Fix walkthrough notebook again
* Add Ext_Interface flag

* Update rosco dylib dir

* F_NumNotchFilts is not allowed to have a default value

* Fix checkpoint testing paths

* simplify and modernize the setup and test experience

* fix path to zmq.c file

* Update api_change.rst formatting slightly

* Update version numbers

* Add more descriptions to API docs

* Update api_change.rst formatting

* combine tests

* trying with build directory

* really think build issues should be fixed now. ..

* see if cmake find is more robust

* fix path to libdiscon in notebook

* trying more robust package search

* elevate pyzmq to be installed before extension is built, but also remove option and make it something that works if it is found

* forgotten init file I think

* testing build

* fix environment file issue on windows

* remove 3.12

* suppressing problem areas for now

* update library path in examples

* fixing case ambiguity

* fix paths in servodyn files

* still chasing paths in all of the files

* hopefully find pyzmq libs better now

* try that again

* fix library link

* add openfast_toolbox

* remove imports of old pyFAST

* restrict examples to ubuntu

* fix typo

* avoid circular dependecies with WEIS

* renable tests for all platforms

* make sure it works from any path

* prep for pypi release

* restrict full regression testing to linux

* restricting further

* Skip pip windows test for now

---------

Co-authored-by: AbhineetGupta <[email protected]>
Co-authored-by: Garrett Barter <[email protected]>
Co-authored-by: Garrett Barter <[email protected]>
Switch to cmake-build-extension and logic for finding rosco library path
* Add more error checking in checkpoint file I/O

* Don't check ZMQ period if no ZMQ_Mode

* Update v2.9.0 documentation (#303)

* Finalize v2.9.0 documentation

* Add ruamel.yaml as a requirement in pyproject.toml

* Re-add wisdem in pyproject.toml

* Revise docs slightly

* Add developer documentation

* Fix small typo with documentation

---------

Co-authored-by: dzalkind <[email protected]>

---------

Co-authored-by: Abhineet Gupta <[email protected]>
@dzalkind dzalkind merged commit b994e4d into main Jan 19, 2024
36 checks passed
Ben-Mertz added a commit to Ben-Mertz/ROSCO that referenced this pull request Oct 3, 2024
5168657 Check if subtree is being used
8daafb2 Merge commit '2e8477621a5f92b93c50b6f158f6b89d001406df' as 'ROSCO'
2e84776 Squashed 'ROSCO/' content from commit c137a8c
REVERT: c137a8c Try to update flap controller
REVERT: fdbb260 Merge pull request NREL#367 from NREL/improve_wfc
REVERT: 4d553fb Merge branch 'develop' into improve_wfc
REVERT: 84de003 Use more descriptive names and documentation for wfc_interface
REVERT: ff27aaa Merge remote-tracking branch 'origin/main' into develop
REVERT: d621956 Update control interface (NREL#366)
REVERT: 72b2a6a Update .readthedocs.yaml (NREL#359)
REVERT: 08ae7cf Update to latest scipy functions, other input fixes (NREL#363)
REVERT: 8b85d7a Increment version (NREL#358)
REVERT: f52bc4b Read damping from beamdyn input files  (NREL#349)
REVERT: c3c2296 Merge pull request NREL#354 from Bartdoekemeijer/feature/wfc_controller_as_class
REVERT: 721164e Bug fixes and documentation updates (NREL#345)
REVERT: 37788a5 Merge remote-tracking branch 'origin/develop' into feature/wfc_controller_as_class
REVERT: cd3ec6d Turn wfc_controller into a class
REVERT: 7deb583 Fixes to compilers and pypi (NREL#343)
REVERT: e95511c Merge remote-tracking branch 'upstream/main' into develop
REVERT: c760f88 Add intel llvm to compilers (NREL#338)
REVERT: 0516123 Fix pypi (NREL#342)
REVERT: a4a6a27 Increment version
REVERT: 22f186f Add pkg-config to environment
REVERT: 2a1c63a Add message about use case
REVERT: 3ebe819 ROSCO v2.9.1 (NREL#314)
REVERT: b994e4d ROSCO v2.9.0 (NREL#304)
REVERT: e3b7db7 ROSCO v2.8.0 (NREL#237)
REVERT: 41f2c00 Set minimum Python version to 3.8
REVERT: a70d374 ROSCO v2.7.0 (NREL#217)
REVERT: 5162966 ROSCO 2.6.0 (NREL#162)
REVERT: 77278f5 Flip Ct and Cq table allocation (NREL#129)
REVERT: 5d20185 Fixed wrong formatting of list items (NREL#122)
REVERT: ad15bcd ROSCO 2.5.0 (NREL#115)
REVERT: 9646dbd Merge pull request NREL#90 from NREL/develop
REVERT: de1a7f8 another typo!
REVERT: 9650a58 fix install typo
REVERT: 08a8c9f Merge pull request NREL#89 from nikhar-abbas/develop
REVERT: feb5048 Merge remote-tracking branch 'upstream/main' into develop
REVERT: a402e16 bump version number
REVERT: 2821f72 RAAW Controller (NREL#84)
REVERT: 277b637 Fix Docs and Minimum Rotor/Generator Speed (NREL#83)
REVERT: 6f25429 Update CMakeLsits for VS and ifort compilation (NREL#85)
REVERT: 5241886 Merge pull request NREL#87 from nikhar-abbas/fix_tests
REVERT: 4d5adb1 cleanup, use setuptools
REVERT: ecef7ae Combine ROSCO and the ROSCO_toolbox (NREL#54) (NREL#78)
REVERT: b7f2592 Combine ROSCO and the ROSCO_toolbox (NREL#54)
REVERT: 7e10015 Merge pull request NREL#51 from NREL/develop
REVERT: 2a847f7 Fix compilation
REVERT: f6b2cd7 Merge remote-tracking branch 'nja/develop' into develop
REVERT: 65b315b Merge remote-tracking branch 'upstream/main' into develop
REVERT: d08ca3f Develop (NREL#50)
REVERT: 4aca5b7 increment version
REVERT: 1129adc trap nans in low/stopped rotor speeds
REVERT: fe71ce4 Merge pull request NREL#49 from NREL/develop
REVERT: 72e7076 call shutdown routine last (NREL#48)
REVERT: af9337b Merge pull request NREL#46 from dzalkind/error_catching
REVERT: 8f0a93c Fix controller-breaking typo
REVERT: 4ff5ad3 Merge remote-tracking branch 'upstream/develop' into error_catching
REVERT: 6729e9f Re-organize ReadSetParameters
REVERT: d5963fd Remove check on F_NotchBetaNumDen(1), not necessary
REVERT: 398cb42 Don't check WE_CP, FA_HPFCornerFreq until API change
REVERT: ce0510b Use unsaturated pitch command in setpoint smoother (NREL#45)
REVERT: 008d34a Finish making error tracing consistent
REVERT: c88f272 Make error tracing consistent: RoutineNames
REVERT: 7fbfb86 Reorganize ROSCO file reading code
REVERT: 8fdeeca Read Cp surface
REVERT: 05879d5 Parse integer arrays
REVERT: 97c7bcf Parse all double arrays, only read/parse lines if no error
REVERT: 039389a Make Flp and Fl filter variables consistent with others Clean up parsing echo for arrays
REVERT: d0fe8b1 Clean up array parsing
REVERT: df32a55 Add array parsing, debug outputting, fix long string reading
REVERT: 22b6508 Generator power in SS (NREL#44)
REVERT: a275d37 Fix setpoint smoother to use last gen pwr (NREL#43)
REVERT: 365d820 Merge pull request NREL#41 from nikhar-abbas/f/ci_tests
REVERT: f928868 Add double and string input parsing
REVERT: d12fbc1 Parse integer inputs, update CheckInputs
REVERT: d5b7a4f Expand Assert function and rename to CheckInputs
REVERT: 37838fb Add error variables, error catching for interp functions
REVERT: e2eab81 pr template - initial commit
REVERT: 9d3f2c0 mingw flag
REVERT: 64a754f use conda environment
REVERT: 05786d0 remove default shell
REVERT: f20dcdb update compilers
REVERT: 9c523dd testing initial commit
REVERT: e53ff37 Merge pull request NREL#39 from NREL/develop
REVERT: c010d71 Merge pull request NREL#40 from nikhar-abbas/develop
REVERT: 062a3b9 Fix object instance bug in commanded pitch  filter
REVERT: cfb0a93 Merge pull request NREL#38 from nikhar-abbas/f/docs
REVERT: 8eb65d9 Set install directory only if not previously defined (NREL#37)
REVERT: e8beb58 Docs (NREL#36)
REVERT: 91584f4 Update README.md
REVERT: b79f362 Iterate version
REVERT: e8564fc Update for readthedocs, new version
REVERT: f98e887 Update print message, output file header (NREL#35)
REVERT: b64ba17 Merge pull request NREL#30 from nikhar-abbas/compiler_updates
REVERT: 4e3752b Merge pull request NREL#34 from nikhar-abbas/f/constant_power
REVERT: 3b19c29 Filtered wind speed estimate for pitch saturation
REVERT: 77989b1 re-order pitcomT saturation
REVERT: f07ef66 Don't use filtered pitcom for Cp calc
REVERT: 032b126 Initialize Cp_op so debug output is not ******
REVERT: 289dcec Add commanded pitch from PI controller to debug variablees
REVERT: 3e33fea Use filtered collective pitch for gain schedule
REVERT: 8ac68e5 Second order LPF for collective pitch feedback
REVERT: 6f80ad5 Use rated pwr instead of max tq for setpoint smoothing
REVERT: 467f52e filter blade pitch angle for gain scheduling
REVERT: f4e946a Merge branch 'f/constant_power' of https://github.com/nikhar-abbas/ROSCO into f/constant_power
REVERT: dbf0c3b Initialize max torque
REVERT: f8c57b4 Use direct WSE for pitch saturation
REVERT: 2c94dd7 Revert "Reduce WSE filter to 10s time constant"
REVERT: 6f052fa Use max tq instead of rated tq for setpoint smoother
REVERT: 1efed1d Ignore more temp files
REVERT: 4cc00bc Add MaxTq to LocalVar
REVERT: 1030f5c Reduce WSE filter to 10s time constant
REVERT: d61e275 Change upper limit to max torque
REVERT: 9b6392e Add initial constant power control with TSR tracking
REVERT: 8f8a4e3 Update install and compile instructions
REVERT: c953a5f set install directory
REVERT: 1695348 ignore install folder
REVERT: 584bc08 Cq matrix read bug fix
REVERT: cffa234 Increment version
REVERT: 60b6953 ignore vscode and build directories
REVERT: fb42a26 Merge pull request NREL#29 from nikhar-abbas/hotfix/torque_bug
REVERT: bad3531 Fix filter instance bug
REVERT: e0d5d8c LPF wind speed w/ 30 second time constant
REVERT: 1ed808e remove epsilon
REVERT: 8742117 30 second time constant for WSE
REVERT: 5b28c68 re-org
REVERT: 452863d Add eps for torque output
REVERT: 8ae3569 Change length scale back to 3D
REVERT: d08f6b0 double precision
REVERT: c266218 double precision
REVERT: 80f28b9 Increment minor version
REVERT: d5a900b Merge pull request NREL#22 from nikhar-abbas/u/WSE
REVERT: 62c1a98 Bump version number, cleanup
REVERT: 360ea76 30s time constant for wse filter
REVERT: 4ac8302 Merge branch 'develop' into u/WSE
REVERT: 2626c6f Update parameters, debugging
REVERT: f7e3296 Fix jacobian bug
REVERT: 25a9c31 Revert "Remove mean wind speed state in EKF"
REVERT: 8a5fef0 Merge branch 'hotfix/DT_bug' into develop
REVERT: c3a6222 Initialize WSE and measured wind speed
REVERT: 229c281 Filter WSE by primary corner freq
REVERT: a95e9df Remove mean wind speed state in EKF
REVERT: a2b6921 Add endif, convert to double precision
REVERT: 2efccb0  subroutine to function
REVERT: ddb8d7d updated debugging
REVERT: 4ecebdb Saturation bug fix
REVERT: 7c76ca5 swicth to a few subroutines functions
REVERT: 4452cdf compile in double precision
REVERT: 0d9c3bf Update debugging
REVERT: c9f00c4 Move pitch saturation filter, make minpitch a subroutine
REVERT: d694143 Fix merge error
REVERT: 66e620c WSE Cp bugfix, add debug var
REVERT: 8df8cc8 Increment version
REVERT: 1a07fd0 Merge pull request NREL#20 from NREL/develop
REVERT: 940f611 WSE Cp bugfix, add debug var
REVERT: 5eb7b5d Replace the hard coded build type setting with an optional parameter
REVERT: 7ebc65e Add CMake install location for libraries
REVERT: b3480e1 GB Ratio bug fix
REVERT: 532b462 Region 1.5 bug fix
REVERT: 84b7e3b Merge branch 'develop' of https://github.com/NREL/ROSCO into develop
REVERT: 5f92876 Fix low wind speed pitch+torque saturation bug
REVERT: b3df093 change debug file extension to dbg
REVERT: 00608a4 Merge pull request NREL#19 from dzalkind/dev
REVERT: 2cf093b Add generic WSE debug signal
REVERT: a0ed80b Add WSE inputs to debug, force IMU filter to initialize at 0 and add HPF
REVERT: d214f5a Remove tower-top velocity from pitch saturation block
REVERT: dd841ae Merge remote-tracking branch 'upstream/develop' into pretty_debug
REVERT: 4e383cf Wind Speed Estimator & Related Updates (NREL#10)
REVERT: 4611014 WSE Cp bugfix, add debug var
REVERT: 70ff9d0 Formatting and cleanup
REVERT: 62ca692 minor bug fix and cleanup
REVERT: cb9ab39 separate string from unit allocation
REVERT: 9df6cd8 Save ROSCO debug as <RootName>.RO.out
REVERT: a1b74db Saturate PI pitch to PC_MinPit
REVERT: cfa717f Merge pull request NREL#16 from dzalkind/pretty_debug
REVERT: 42a741d Remove HPF from floating feedback, save for future pull request
REVERT: b9f1fd1 Revert avrSWAP writing & ROSCO info printing to original
REVERT: 526eb12 Merge pull request NREL#14 from rafmudaf/master
REVERT: 860bcfe Replace the hard coded build type setting with an optional parameter
REVERT: 47a1344 Merge pull request NREL#13 from rafmudaf/master
REVERT: 1107249 Add CMake install location for libraries
REVERT: d6722bb Add pretty debug setup and output
REVERT: 66bcc15 Merge pull request NREL#8 from davidheff/develop
REVERT: 5d1f2f5 Add signals to debug
REVERT: af089b2 Add to CMakeLists.txt to enable compilation on win32/mingw
REVERT: 10bbbfb Merge branch 'master' into develop
REVERT: 7ba7023 installation instructions bug fix
REVERT: c1a7593 Merge branch 'develop'
REVERT: f9bca81 Update for v2.0.1
REVERT: d0e89b7 Merge branch 'master' of https://github.com/NREL/ROSCO
REVERT: 110ddf6 Merge pull request NREL#3 from NREL/develop
REVERT: 4f6553c Merge branch 'develop'
REVERT: 0955164 Move IEA paramter files to proper folder
REVERT: faf70bf Merge pull request #2 from NREL/develop
REVERT: 6513b9a Tag for version 2.0.0
REVERT: 809d69a Update parameter files
REVERT: 2d52804 Cleanup
REVERT: 43ea8d2 Remove old inputs
REVERT: 67fcde0 Rate limit collective pitch command
REVERT: f3f24ac Account for pitch saturation in vs statemachine
REVERT: 6ea731f Remove initialization in prefilter for floating filters
REVERT: 93af653 Typographical updates
REVERT: 922f683 Use saturation from input file
REVERT: 10b1729 Initialize flap controller
REVERT: 27970ac Fix saturation bug
REVERT: d17f9b8 Use second order LPF
REVERT: 14183c7 Notch Filter cleanup
REVERT: 9107e26 Remove sine pitch excitation for induction capabilities
REVERT: 5920136 Saturation sign bug fix
REVERT: c53a976 Merge branch 'f/flaps' into develop
REVERT: cbc495e Flap max pitch at input
REVERT: 2d94306 Fix filter instancing bug
REVERT: 6eb92ae Band-pass filter platform pitch natural frequency
REVERT: dd6e947 Update parameter file for flaps
REVERT: 0af5391 Cleanup
REVERT: 7b0adc7 Flag bug fix, process as radians
REVERT: 427b85b Merge branch 'develop' into f/flaps
REVERT: 9fd854e Merge pull request #1 from NREL/develop
REVERT: d9c6fca bug fix - filter constant instances
REVERT: 4114a46 Merge branch 'master' of https://github.com/NREL/ROSCO
REVERT: 4bde81e Setup for version 1.0.0
REVERT: e7a3a7d Force PC_MinPitch
REVERT: 063b062 Force PC_MinPitch
REVERT: 2186682 Setup for version 1.0.0
REVERT: bddafd9 Merge branch 'master' of https://github.com/NREL/ROSCO
REVERT: 00aefd9 Cleanup
REVERT: 2cae46b Merge branch 'master' of https://github.com/NREL/ROSCO
REVERT: d385eca Cleanup
REVERT: 7a48d63 Cleanup
REVERT: 3b25626 Include notch filter in twr f-a filter
REVERT: f2cc92c Cleanup
REVERT: c03fd9f Cleanup
REVERT: eb5c2ba Merge branch 'master' of https://github.com/NREL/ROSCO
REVERT: 55f5036 Cleanup
REVERT: 80695e2 Cleanup
REVERT: 4a15501 Include notch filter in twr f-a filter
REVERT: e096e0f Cleanup
REVERT: f2b0e50 Include blade root bending signal filter parameters
REVERT: 39e0ec3 Merge branch 'develop' into f/flaps
REVERT: dcbb2bc Cleanup
REVERT: 2300380 Cleanup
REVERT: 7a0fbc3 Include floating parameters
REVERT: d89895f Floating feedback filter parameters as inputs
REVERT: 4ea76e8 Include floating types
REVERT: dbda8f2 Debug floating
REVERT: e1a28ae Remove PI controller full saturation
REVERT: c395418 Filter cleanup for clarity
REVERT: 6bb1863 Low-pass filtered tower-top feedback for floating
REVERT: 935a4eb Update saturation limit implementation
REVERT: c2e72a1 Include floating feedback control signal
REVERT: a8ae292 Merge branch 'master' into f/flaps
REVERT: 13a78e4 Merge branch 'master' into f/floating
REVERT: 9e53a23 Merge branch 'f/readDISCON'
REVERT: 6e51b26 Load ServoDyn-defined DISCON input file
REVERT: 461f6ec Update to read file
REVERT: ff99949 Read input filename - initial commit
REVERT: f043813 Bug fix and cleanup
REVERT: a3d7990 Remove WSE filter
REVERT: f0030cf Revert back to Torque based setpoint smoothing
REVERT: 71ed9de Update WE LPF
REVERT: 9e503dc Include PII flap control
REVERT: a62bdd5 And PII controller
REVERT: 60349e9 Add Flap PI inputs
REVERT: c55dfe1 Debug floating
REVERT: cc1c38f Add floating proportional control
REVERT: c6bfdcf Remove deg2rad for flap inputs
REVERT: ca63d61 Rename to pitch saturation
REVERT: dea04f9 Define integer
REVERT: 07c8292 Merge branch 'master' into f/flaps
REVERT: 6c3ad82 Fix constant power above rated bug
REVERT: ca9f165 Call Flap Controller
REVERT: e8d0581 Merge branch 'develop' into f/flaps
REVERT: 5692cd9 Include minimum refspeed for vs controller
REVERT: 222dff1 Read shutdown and flap angle parameters from DISCON.IN
REVERT: e02c411 No Flp_Angle from avrswap
REVERT: 4a8e82f Remove buggy line
REVERT: d8328ee Merge branch 'master' into f/flaps
REVERT: 0347814 Update links
REVERT: f086906 Update disclaimer
REVERT: 3fda02a Update disclaimer
REVERT: a8511ec Merge branch 'master' into f/flaps
REVERT: 8e59452 Update to Apache Licensing and intro comments
REVERT: a9865ec Merge branch 'develop' into f/flaps
REVERT: b2d5870 Merge remote-tracking branch 'upstream_Nikhar/f/flaps' into f/flaps
REVERT: 00859d3 Merge remote-tracking branch 'upstream_Nikhar/develop' into develop
REVERT: af8d956 Merge remote-tracking branch 'upstream_DRC/development_ROSCO' into develop
REVERT: b17fc2f Add Shutdown Mode
REVERT: 902746a .gitignore update
REVERT: 087ae5a Merge pull request NREL#8 from nikhar-abbas/develop
REVERT: f53c3b7 Include steady state flap angle prescription
REVERT: a600989 Merge remote-tracking branch 'upstream_DRC/master' into develop
REVERT: bc7848a Update parameter file
REVERT: c7bbbda Update acknowledgments
REVERT: 2d05649 Sort out actuator ICs
REVERT: 112ae00 PitCom for numerical stability, actually...
REVERT: ef32cea Prescribe steady flap angles
REVERT: b94073a Merge branch 'develop' into f/flaps
REVERT: 70c8721 Update Parameters - VS_Rgn2K bug
REVERT: 9d0c8a0 Bar flap parameter file
REVERT: ace2cff Flap actuator control - initial commit
REVERT: 2f0f2fb Read avrswap pitch signal for numerical stability
REVERT: 524270f Added Visual studio project files, corrected double !DEC attributes line
REVERT: 32ae97d Fix initial bld pitch bug
REVERT: 8f2ce83 Merge pull request NREL#7 from nikhar-abbas/develop
REVERT: 3573ae3 Update Acknowledgments
REVERT: 20168d4 Merge pull request NREL#6 from nikhar-abbas/master
REVERT: d393256 Free form for gfortran
REVERT: 6554ecd Rename to have capital F, force preprocessor
REVERT: 2e26ece Develop stage disclaimer
REVERT: cae59de Update disclaimer
REVERT: d784ffa Update for windows
REVERT: c0cde02 Update parameter files for new controller updates
REVERT: ec8c3a6 Clarity for DISCON.IN use
REVERT: 04aa1ca Cleanup
REVERT: 52f1615 Update Acknowledgments
REVERT: 9986047 Update disclaimer
REVERT: 746caab Fix links
REVERT: 9a44756 Include information to run controller
REVERT: e7d8258 Update referencing
REVERT: 6a7a895 Update compile instructions
REVERT: d67b643 Update for ROSCO
REVERT: 982d276 Update compiler flags
REVERT: a8ada99 Rename DRC_Types to ROSCO_Types
REVERT: 8417059 Rename to ROSCO, update commenting
REVERT: ec920f0 Update gitignore for cmake build dir
REVERT: 8c6b5bf Contain Fortran .mod files in a single directory
REVERT: f64f568 Add initial CMakeLists
REVERT: fc99bbc Delete some and rename other files
REVERT: 20ec624 Include NREL5MW Performance Tables
REVERT: b9d67a5 Cleanup
REVERT: fbb697f Update binaries
REVERT: 2a24127 Debug Setpoint Smoother
REVERT: 736e023 Saturate at VS_RefSpd, Initialize Torque
REVERT: ad89ebf Normalize DelOmega
REVERT: cdfedc0 Update binaries
REVERT: fac36d7 Use previous pitch command instead of avrSWAP
REVERT: 0ba7479 Rate limit pitch signal
REVERT: e9c7f74 Cleanup Peak Shaving
REVERT: 8673f3c Parameter updates
REVERT: 5cb37e1 Merge branch 'dev_PeakShaving'
REVERT: 1786a4a ignore .DS_Store
REVERT: 580cb7b Update binaries
REVERT: f784ae4 Comment Updates
REVERT: b68998b Include towertop motion
REVERT: 5b4c8bc Use ControllerBlocks
REVERT: 82daa5f Move peak shaving to ControllerBlocks
REVERT: 5b2bdd7 Update binaries
REVERT: 7dc12fa Parameter updates
REVERT: 3f4b5e0 Code Reorg
REVERT: 26d3117 Include Peak Shaving
REVERT: 0fac735 Update binaries
REVERT: e559e9a Comment Updates
REVERT: fb336d5 Algorithm update
REVERT: a53f95c Comment updates
REVERT: cb2b93f Add CpData for NREL 5MW
REVERT: 4a87292 Update to use PerfData
REVERT: 7cf4280 Read Cp data from input file
REVERT: 1f111a3 Use updated Cp Lookup force real numbers
REVERT: 60cfaf9 Add degrees to radians
REVERT: 4461993 Add EKF wind speed estimator - stable, but poor
REVERT: aa48706 Include matrix inverse and identity matrix, functions
REVERT: 26d91e8 Merge branch 'dev_TorquePI'
REVERT: 9c3acfe Comment updates
REVERT: b99a486 Update binaries - still need SOME tuning
REVERT: dc86fe1 Update wind speed filter cornering freq
REVERT: b2e9d02 Saturate torque controller at rated torque
REVERT: f32cf39 Debug TSR tracking controller
REVERT: 1ca7f47 Comment cleanup
REVERT: 4d9f4d5 Include TSR tracking VS torque controller
REVERT: 67b3856 Cleanup for clarity
REVERT: 9ee1c1b Comment Updates
REVERT: 44cb23a Cleanup
REVERT: f59093e WE_CornerFreq update
REVERT: cfa8efe Cleanup for clarity
REVERT: 91b0fd0 Update binaries
REVERT: 066b118 Comment Cleanup
REVERT: e68a2ee Debug wind speed estimator
REVERT: cc017f8 Add filtered hub wind speed option to wind speed estimator
REVERT: 593e30a Comment Cleanup
REVERT: e1d77da Comment Cleanup
REVERT: 34b09f3 Comment cleanup
REVERT: a5d6748 Comment cleanup
REVERT: 28f729f Add setpoint smoother inputs
REVERT: 118bfdf Update binaries
REVERT: c7856d7 Include setpoint smoother in input file
REVERT: 67fe9ba Include PC_ControlMode
REVERT: 9f410b7 Note as OUTDATED. Note: Fix to be same as NREL5MW
REVERT: 66b1f84 Implement setpoint smoothing
REVERT: 8b13796 Introduce pitch controller flag
REVERT: d1af1f3 Comment updates
REVERT: f009b17 Comment cleanup
REVERT: a65d967 Include ControllerBlocks module
REVERT: e4e0c3c Comment updates
REVERT: a4eb203 Include SS_DelOmegaF in LocalVar
REVERT: 677790f Comment updates
REVERT: ba3c4da Reorg to compile Filters first
REVERT: 28908df Call SetpointSmoother
REVERT: 00b08ce Include SetpointSmoother - hard coded
REVERT: 08ba4ab Re-org
REVERT: 9a5fe1c Merge branch 'master' of https://github.com/nikhar-abbas/DRC_Fortran
REVERT: 6efbb10 Updated binaries
REVERT: 7632034 Update DISCON.IN
REVERT: cd741dd Update DISCON.IN
REVERT: dffc519 Updated binaries
REVERT: 3cbd781 Update DISCON.IN
REVERT: 39f2c76 Update DISCON.IN
REVERT: 033b3e8 Merge pull request NREL#4 from nikhar-abbas/master
REVERT: ebca4f2 Updated and compiled DTU 10MW Input file
REVERT: 9711b78 Changed for 64 bit
REVERT: cbbb097 Included command code for -i
REVERT: 11f184b Updates for temp files, 64 bit unix machines
REVERT: 007d5da Included command code for -i
REVERT: b690f1b Updated for input file cleanup
REVERT: 90e5046 Tabs to Spaces
REVERT: 2f2f63e Updated binaries
REVERT: c0900b8 Merge branch 'FilterSeparation'
REVERT: 9e960fc Fixed a bug introduced in the wind speed estimator
REVERT: 45e9888 Separated signal filtering, set point calc, added option for notch filter, renaming control constant, replacing tabs by spaces
REVERT: 11c7e4a Complemented the parameter files with some more explanatory notes
REVERT: 19df104 Updated binaries
REVERT: 584fd41 And another referencing bug
REVERT: 2d3c36c Fixed little bug, referencing to non-existing variable
REVERT: 637c3c7 Merge branch 'SinusJoeri'
REVERT: f2e1154 Included an option to include a first-order (actuator) phase delay on the IPC signal
REVERT: af89063 Merge pull request NREL#3 from spmulders/patch-1
REVERT: 67584f9 Update compileDISCON_linux.bash
REVERT: 3806f79 Implemented collective sine excitation on pitch
REVERT: 52de815 Extended input file DTU10MW for sine excitation on pitch
REVERT: a8d93e4 Fixed type in the filename of the DTU10MW parameter file
REVERT: 9a9246a Fixed bug in writing debug file logging level 2 (reported by Thuesen Enevoldsen)
REVERT: 1d8be73 Updated README.md
REVERT: 609c927 Included a tower fore-aft damping controller
REVERT: 2111e0a Updated binaries
REVERT: d1c8eac Made some changes for compatibility with Bladed, updated README
REVERT: d732951 Updated binaries
REVERT: 9a0dc95 Merge branch 'WSest_dev'
REVERT: 4874c87 Added parameters for ws estimator DTU10MW
REVERT: 563b0de Update Functions.f90
REVERT: 4d19aa4 WS estimator bug fixed, need to update DTU10MW parameters
REVERT: d3c5e58 Fully implemented WS estimator, with a little bug
REVERT: 227a54d Implementing an effective wind speed estimator
REVERT: b4eea60 Merge remote-tracking branch 'origin/master'
REVERT: 8476424 Updated bash-compilation script to create DISCON folder in root
REVERT: b9d82a5 Update LICENSE
REVERT: 98265e9 Updated binaries (compiled controllers, x86 + x64)
REVERT: 5281aed Edited GPLv3 to MIT license
REVERT: e8c7720 Added 2P IPC for load reductions, some refactoring, updated parameter files
REVERT: c6ca59c Edit .gitignore - 2
REVERT: 7d42e55 Edit .gitignore
REVERT: 8982c96 Create README.md
REVERT: 8a506a4 Clean-up of the repsoitory
REVERT: fbe3a5a Updated parameter files, choice between 1/2-order LPF,
REVERT: 57c442b A lot of refactoring
REVERT: 44953ff Updates controller parameter files and deleted obsolete variables
REVERT: 7fc5928 Added VS_GenEff to ControlParameters input files
REVERT: 87e4a2f Updated NREL5MW baseline ControlParameter file, included a fix in constant power control + generator efficiency
REVERT: 8953304 Minor fix in the state-machine
REVERT: 8ac02e2 Updated .gitignore
REVERT: 3e8d76b Created a separate state machine
REVERT: dbd5387 Minor bugfixes
REVERT: 1f7d186 Added simulation status every 10 seconds, objPIController, 64-bit controller
REVERT: db87912 Added saturations on (yaw-by-)IPC contributions, updated ControllerParameter file.
REVERT: 81635a0 Merge branch 'DevelopmentStateMachine'
REVERT: 611f46e Complete modularization of the DRC code
REVERT: a414224 Updated IPC subroutine to use types instead of separate variables
REVERT: 762bc92 Cleaned up the IPC subroutine
REVERT: 0a86bd3 Added type ObjectInstances, to enable object-oriented-like programming of filters possible
REVERT: 096c996 Update compilation code for linux systems
REVERT: 9d11f50 NREL parameter file needs to be updated (pending)
REVERT: b5719fd Added an updates DTU10MW ControllerParameters.in file
REVERT: 8388afd Collected all controller settings in a single parameter file, added derived types
REVERT: 4891dce Merge remote-tracking branch 'origin/master'
REVERT: d00387c Added Types.f90
REVERT: 7b61b0a Bugfixes: double use of a filter object (yaw-by-IPC)
REVERT: a724e84 Fix small spelling typo
REVERT: 26f4bd2 Merge pull request #1 from Bartdoekemeijer/master
REVERT: 43ce979 Merge branch 'master' of https://github.com/TUDelft-DataDrivenControl/DISCON_Fortran
REVERT: eb59581 Update compileDISCON to include right libraries, compile as single .so. Now tested with OpenFAST and seems to work...
REVERT: 8553e77 Bugfixes regarding constant power control, updated controller tuning for DTU10MW turbine
REVERT: 33ce609 Add code for compiling the DISCON file on a linux system. The .dll format becomes a .so format.
REVERT: 23c7033 Added constant power contol mode, updated compiled binary, updated parameter files, made IPC more modular
REVERT: c2711ac Added GNU GPLv3 license file
REVERT: 19b3d1f Updated documentation
REVERT: 267e6f5 Added parameter files for the DTU10MW turbine
REVERT: 768e9c3 Updated PitchGains.In file
REVERT: 590e008 Added notch filter in Filters.f90, added DFController in FunctionToolbox.f90 (derivative term with first order filter)
REVERT: ff6e0d8 Separated pitch speed setpoint from generator speed setpoint
REVERT: 421316b Made code even more modular
REVERT: 675b940 Updated documentation
REVERT: b1f7676 Updated documentation
REVERT: d7300f8 Final changes: removed redundant variables/constants, switching between different yaw controllers from parameter file, made code more modular
REVERT: fa15b4a Added gain-scheduled pitch control functionality by defining a pitch gain input file
REVERT: 649fedb Added yaw-by-IPC functionality for NREL5MW
REVERT: b25eec4 Additional code clean-up and added a rate saturation function
REVERT: 14b0fca Added interp1d function, added functional yaw controller
REVERT: a338198 Some code cleanup and refactoring
REVERT: 30edc63 Working NREL5MW controller, with IPC, generator torque control, pitch control
REVERT: 1e00e60 Fixed generator torque controller and pitch controller.
REVERT: 585f33a Included a general PI controller with outpur saturations in the FunctionToolbox and implemented generator region 2.5 PI torque control *untested*
REVERT: 72db4bd Started creation of a PI controller function for generator torque control in region 2.5 (unfinished!)
REVERT: 16a7566 Updates documentation, defined NREL5MW ServoDyn constants for Bladed interface and solved a switching issue between pitch and torque control
REVERT: 79be70f Initial upload to GitHub

git-subtree-dir: ROSCO
git-subtree-split: 5168657
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.