Super Controller for Farm Power Curtailment in Region 2


I’m simulating a 2 turbine array in FAST.Farm. I’m able to use the basic ServoDyn.dat file to yaw the front turbine to wake steer. I would like to have the downstream turbine pitch control its blades in a way that keeps the total farm power constant (say 4 MW) as the upstream turbine sweeps through different yaw states.

I think the easiest way to do this is by adjusting the downstream turbine rated power in real time such that:

                    (Downstream turb rated power set point) = (4 MW - Upstream turbine power output)

How could I do this? Or would there be a better way to keep total farm power constant?

I’ve succeeded in using Microsoft Visual Studio + Intel Visual Fortran to build a single turbine controller DISCON.dll from the DISCON.F90 provided in the OpenFAST folder. However, building a super controller from the SOWFA folder’s super controller isn’t as easy and I could use some direction since I don’t know what that code would look like (being new to C and fortran). I’ve gone through the SOWFA + Super Controller Manual and have been reading through the controller code in the SOWFA folder at: NREL-SOWFA-2fd1c71\NREL-SOWFA-2fd1c71\src\turbineModels\turbineModelsStandard

Thank you for your time.

Dear Jordan,

While the wind-farm super-controller implementation in FAST.FAST is nearly complete, it is still not yet functional in the current version.

We intend to publicly release FAST.Farm after (1) the super controller has been fully implemented; (2) the user documentation has been finalized; and (3) the FAST.Farm source code, documentation, and test cases have been merged with the newest version of OpenFAST.

Best regards,

I ended up solving this by running one simulation to obtain the upstream turbine power. Then running a 2nd simulation with identical inputs/parameters except the upstream turbine’s power from the 1st simulation was plugged into the downstream turbine’s bladed-DLL controller. This allowed the downstream turbine to balance the total farm power. Sort of a quasi-supercontroller workaround given that the supercontroller for FAST.Farm hadn’t been released yet.