OpenFAST S-Function: DT_Out Downsampling Affects Signal Exchange

Dear Jason and everyone,

When running OpenFAST as an S-Function in Simulink with a simulation time step of 1 ms and DT_Out set to its default value (which is also 1ms), the BeamDyn and other OpenFAST outputs are transferred to my Simulink model at every time step. In this configuration, both OpenFAST and Simulink operate with a 1 ms time step, and the simulation behavior is as expected. The only drawback is the very large size of the OpenFAST output files generated in memory.

However, when DT_Out is increased to 20 ms, I observe that blade angular rotation speeds and other OpenFAST outputs are provided to Simulink only every 20 ms, even though the Simulink solver time step remains 1 ms. This indicates that downsampling the OpenFAST outputs via DT_Out directly and undesirably affects the signals passed through the S-Function interface.

Is this behavior a known limitation or previously reported issue in the OpenFAST–Simulink S-Function interface?

Is there a known workaround to reduce the OpenFAST output file size without altering the temporal resolution of the signals exchanged with Simulink?

Thanks and regards,

Dear @Abhinay.Goga,

This is expected behavior because when DT_Out is greater than DT, the OutData computed by OpenFAST and passed through the S-Function is only computed at a rate of DT_Out. But you make a good point and I can see the desire to output data from the S-Function at a rate of DT while recording the outputs at a downsampled rate. This would take a bit of work to implement, but is probably worth posting as an Enhancement request on OpenFAST GitHub issues: GitHub · Where software is built. I’m not sure when NLR would get to it without specific funding, but at least that would put in on our radar of future needs.

Best regards,