Open deslaughter opened 2 months ago
Here's a version of the NREL-5MW controller that I had converted from Fortran to C last year. It's compiled as a shared library which is loaded at runtime and the function DISCON
is called at each time step to get the blade pitch and yaw commands. It's rudimentary, from a controls perspective, but it defines the minimal interface that we'll need to implement.
PR 167 waiting for review; built unit tests based on OpenFAST for how we use the DISCON controller.
May need support in cmake here.
@ddement -- suggests bringing it to C++; modern well designed C++ vs having second language.
@deslaughter -- it does make sense to have one language in the code base; the interface will still be a shared interface; this is entirely for regression tests.
If someone wants to knock this out and bring over to C++, great, but not critical at this time.
@faisal-bhuiyan is working on this -- need to compile controller as a shared library.
Controller was added as a shared library by using the library dylib
-- we can use this to call functions at runtime from a shared library. Not much left to do here.
Converted C controller to C++; everything is there. Need final approval from @deslaughter
The next milestone for OpenTurbine requires that blade pitch be set by a turbine controller. The controller will implement the standard Bladed interface which is also used by OpenFAST. Using this interface will allow existing controllers, such as ROSCO to be used with OpenTurbine.
The interface implemented by OpenFAST is defined at https://openfast.readthedocs.io/en/dev/source/user/servodyn/ExtendedBladedInterface.html