OpenFAST / openfast

Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.
http://openfast.readthedocs.io
Apache License 2.0
668 stars 452 forks source link

How to implement active control of TMD in Simulink #2323

Open QwikiFelix opened 1 month ago

QwikiFelix commented 1 month ago

Hello, I want to implement active control of TMD in Simulink, but it seems that this version of the file cannot achieve this function. Could you please tell me which version of the file can achieve this function?

Snipaste_2024-07-14_21-41-49
jjonkman commented 1 month ago

Dear @QwikiFelix,

The existing interface between OpenFAST and MATLAB/Simulink does not currently support active control of Structural Controllers (StC) through Simulink. See the following OpenFAST issue for a related discussion: https://github.com/OpenFAST/openfast/issues/761.

Best regards,

QwikiFelix commented 1 month ago

Hello, thank you very much for your response. However, I still have two questions that are not very clear:

Firstly, if I cannot implement active control of TMD through the Simulink interface, what method should I use to implement active control of TMD? Could you give an example?

Another question is:You mentioned that the F_active data can be input into FAST, so can active control of TMD be implemented in this way?:#761

图片1

In this case, what should the TMD CMODE value be?

图片2
jjonkman commented 1 month ago

Dear @QwikiFelix,

You can implement active control of TMDs through the Bladed interface (e.g., by modifying the NREL 5-MW baseline controller or the ROSCO controller). This would not require changing OpenFAST source code or recompiling OpenFAST, but would require you to implement your own active TMD control logic in the controller source code and recompile the controller dynamic library.

To support active control of TMDs through Simulink would require that you update the OpenFAST source code and recompile OpenFAST, e.g., as discussed in #761, in addition to implementing your active TMD control logic in Simulink. In this case, how StC_CMODE works will depend on how you've changed the OpenFAST source code.

Best regards,

Zhao-Yu-Lg commented 1 month ago

Dear @jjonkman I now use OPENFAST and simulink coupling to achieve semi-active control of TMD, and I have carefully read the issues related to it in the forum, but I still feel that it is a little difficult for me this white, I think I need to do the task:

1.Modify the Servodyn source code to have an interface with SIMULINK. 2.Create a TMD controller through SIMULINK and invoke OPENFAST data from the.m file.

If I'm wrong, correct me. In addition, I found that runFAST.m is not suitable for semi-submersible wind turbines. So I feel very tedious, I hope you can provide some suggestions and guidance on what documents need to be changed and steps .

Best, Yulong Zhao

jjonkman commented 1 month ago

Dear @Zhao-Yu-Lg,

I'm not sure what you mean by item (2).

And I'm not sure why you say that runFAST.m from the matlab-toolbox can't be used for a semi-submersible; this script is not tied with specific features of OpenFAST.

Best regards,

Zhao-Yu-Lg commented 1 month ago

Dear @jjonkman, Thank you very much for replying to me so quickly. I'm sorry for not understanding the relationship between Openfast and Simulink, but I still want to ask you to give me some tips. Best

jjonkman commented 1 month ago

Dear @Zhao-Yu-Lg,

NREL cannot provide you step-by-step guidance on a project we have not already done ourselves (such as enabling active structural control through Simulink). I suggest following starting from #761 and post clarifying questions as they come along.

Best regards,