1. Standard ROSCO Workflow

../_images/ROSCOFramework.svg

Fig. 1.1 ROSCO toolchain general workflow

Fig. 1.1 shows the general workflow for the ROSCO tool-chain with OpenFAST. For the standard use case in OpenFAST (or similar), ROSCO controller needs to be compiled. The controller is a fortran based module that follows the bladed-style control interface. Compiling the controller ouputs a dynamic-link library (or equivalent) called libdiscon.dll for windows, libdiscon.so for linux and, libdiscon.dylib for mac-os. Instructions for the compilation are provided in Installing ROSCO toolset. Once the controller is compiled the turbine simulation tool must point to the compiled library. In OpenFAST, this is ensured by changing the DLL_FileName parameter in the ServoDyn input file. This step enables communication between the ROSCO controller and OpenFAST.

The compiled ROSCO controller library requires an input file (generally called DISCON.IN). It stores several flags and parameters needed by the controller and is read by the compiled dynamic-link library. Several different DISCON.IN files, for varous turbines and controller tunings, can use the same dynamic-link library. In OpenFAST, the DLL_InFile parameter in the ServoDyn input file determines the desired input file.

The ROSCO toolbox is used to tune the ROSCO controller and generate a DISCON.IN input file. To tune the controller, ROSCO toolbox needs the OpenFAST model of the turbine and some user inputs in the form of a tuning.yaml file. The functionality of ROSCO toolset can be best understood by following the set of included example scripts in ROSCO Examples. ROSCO toolset can be installed using the instructions provided in Installing ROSCO toolset.