State, output vectors from OpenFAST into the controller DLL


I’m trying to make a Bladed style .DLL controller and am trying to figure out how to make the state vector (x) and output vector (y) be available to the .DLL at every time step.

OpenFAST produces these vectors during a Linearization analysis. Can it do so during a time-series simulation? And if so, is there a way I can get these vectors into my .DLL? (I don’t think its possible to get all of the variables via the avrSwap array.) I’m not sure if writing the outputs to a file on my hard disk at every time step and them reading them in at every time step is a good idea?


Dear Anish,

The states and outputs that are written to the linearization output files are certainly computed within OpenFAST, but they are not stored in vector form across all modules and not currently passed to the Bladed-style controller DLL. (Instead, more common inputs to wind turbine controllers are what are passed to the DLL.) All of the data that is currently passed to the DLL are defined as outputs from the various OpenFAST modules, transferred as outputs to inputs in the OpenFAST glue code, passed as inputs to the ServoDyn module, and transferred through various layers of ServoDyn into the routines that call the Bladed-style DLL. It would make the most sense to change the source code following the same process for the states and outputs that you wish to pass to the DLL. I would first start by reviewing the source code to see how data is currently passed into ServoDyn and set in the avrSWAP array.

I hope that helps.

Best regards,

Hi Jason,

Thanks for the speedy reply.

That’s what I was afraid of. But, I suppose it’s time I learnt how to compile FAST.

Thanks again,