I am interested in applying structural control in FOWT. Indeed, a tuned mass damper will be attached to the structure and will be given a force in order to enhance its vibration mitigation capability.
In order to achieve this in OpenFAST, there are two ways (I am using windows OS):
1- Modification of the source code in StrucCtrl.f90
2- Use of the EX_Bladed_Interface.
As a first test, i modified the source code (option 1), then i recompile OpenFAST using Visual Studio 2019. To compile, I choose Release and x64 (my computer is x64 bit processor) and click on Build —> Rebuild Solution (see figure).
Compiling OpenFAST was successful ! No errors in the code and i run a simulation with the compiled openfast and i have seen the effect of the modification i have done, on the response. However, this method of working is not practical.
My question is how to compile a dll of type bladed in visual studio. Steps ? manual ?
I use it instead of the original DISCON.IN in ServoDyn of the 5 MW barge-type. Unfortunately, nothing happen. Is it normal ? I understand from reading the python in the 4th example in ROSCO repository: ROSCO/Examples/04_simple_sim.py at main · NREL/ROSCO · GitHub
that this example could generate .IN file from .yaml file. Is my understanding correct ? Can i use it to generate my own DISCON.IN and put it in the barge ServoDyn.
3- Could you please explain to me the relation between ROSCO and Discon.f90 ?
The Bladed-style DISCON interface is a generic interface for coupling controllers with OpenFAST (and other aeroelastic codes such as Bladed). The original NREL 5-MW baseline turbine models used a simple baseline controller implemented in DISCON format. Since then, ROSCO has been developed as a much better baseline controller, which is also implemented in DISCON format. But the sample NREL 5-MW baseline turbine models still rely on the original baseline controller, not ROSCO. The original baseline controller does not make use of a DISCON.IN input file (rather, the controller parameters are hard-coded within the DISCON source code, requiring a recompile of the DLL to change. The ROSCO controller makes use of controller parameters set within a DISCON.IN input file.