Skip to content

Releases: NREL/ROSCO

ROSCO v2.9.4

11 Jul 16:32
d621956
Compare
Choose a tag to compare

Compatibility and documentation updates

ROSCO v2.9.3

14 Jun 17:37
8b85d7a
Compare
Choose a tag to compare

Fixes to the documentation and file I/O

ROSCO v2.9.2

07 May 03:07
7deb583
Compare
Choose a tag to compare

Fixes to compilers and pypi

ROSCO v2.9.1

10 Apr 21:50
7deb583
Compare
Choose a tag to compare

Minor update from v2.9.0 with better error handling around the Cp surface reading.

ROSCO v2.9.0

19 Jan 17:47
b994e4d
Compare
Choose a tag to compare

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.

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.

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

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.

Pre-release for v2.9.0

08 Jan 21:17
c5de22f
Compare
Choose a tag to compare
Pre-release

Pre-release to test conda installation of v2.9.0

RAAW v1.4

12 Sep 15:45
31332d9
Compare
Choose a tag to compare

This control library will be used in the RAAW validation campaign. It includes the rotor position control (RPC) used in the modeling studies.

By setting OL_Mode to 2 and including the open loop input (OL_Filename), the controller will track the rotor position (Azimuth) using the generator torque. Blade pitch will follow the prescribed open loop input exactly. The nacelle yaw position will be controlled in the open loop if Ind_YawRate is non-zero.

Setting OL_Mode to 0 will run ROSCO normally as a reference controller.

Version 2.8.0

11 Apr 16:30
e3b7db7
Compare
Choose a tag to compare

Major Updates:

  • Optional inputs: users do not have to set all inputs to ROSCO. Whether an input is optional is determined by the control flags.
  • Cable control: users can control OpenFAST cables in MoorDyn and SubDyn using ROSCO. Open loop and user-defined control schemes are available. Examples/22_cable_control.py sets up a floating turbine with cable control and applies an open loop mooring control to move the turbine near the (0,0) (surge, sway) location. In the DISCON or tuning yaml, users specify the indices of the cable length control in the avrSWAP; these indices can be found in the ServoDyn summary file.
  • Structural control: users can control OpenFAST structural controllers (tuned mass dampers and added forces) via ROSCO. Open loop and user-defined control schemes are available. Examples/23_structural_control sets up the IEA-15MW semi-submersible floating platform with structural controls as added forces to emulate ballast control for even keel; it relies on the current develop branch of OpenFAST (to be released in v3.5.0) to apply the added force. Users specify the indices to the avrSWAP in the DISCON or tuning yaml, as specified by the ServoDyn summary file.
  • Active wake control: users have two methods, detailed here, for adding pitch offsets, e.g., the helix method, to the collective pitch angle for better wake dissipation. Examples/20_active_wake_control.py runs several different active wake control modes.

Minor Updates:

Version 2.7.0

10 Feb 16:37
a70d374
Compare
Choose a tag to compare

Added Features:

  • IPC saturation modes (IPC_SatMode)
  • Pitch actuator faults: simulate constant blade pitch offsets. More is possible in future releases.
  • Ability to initialize filters with specific values
  • Support for latest OpenFAST version (v3.4.0)
  • Add a tool for updating DISCONs from older ROSCO versions

Bug Fixes:

  • Initialize NacIMU_FA_Acc and FA_Acc to 0. Initial conditions would result in offset of floating feedback pitch command
  • Fix cases where debug outputs ***********
  • Add nacelle heading (NacHeading) input to ROSCO
  • Add method for closing dll in control interface on Windows
  • Fix units in sim.py

Software Changes:

  • Support for the latest numpy version (1.24)
  • Re-named examples to represent the features they demonstrate
  • Refactored ratelimit function to store it's own previous signal value
  • Features that rely on collective blade pitch signal now use average of 3 current blade pitch values (useful in IPC cases)
  • Clean up file readers/writers to sync with WEIS analogues
  • Update features that rely on latest version of pyFAST
  • Enable use of runFAST when python setup.py install is used.
  • Add tune.py for specifically translating tuning yaml to controller objects and updating discon files
  • When reading turbine model from openfast, only read necessary input module files

RAAW v1.3

06 Oct 22:48
Compare
Choose a tag to compare

This controller contains individual pitch control updates for the RAAW project

What's Changed

New Contributors

Full Changelog: raaw1.2...raaw1.3