Servodyn StC submodule

Dear @Jason.Jonkman ,

I was running simulation in OpenFast v2.1 including structural control. I take the input file from:

https://openfast.readthedocs.io/en/main/source/user/servodyn-stc/StC_input.html

However, i am getting the following error and i did not understand it.

FAST_InitializeAll:SrvD_Init:TMD_Init:TMD_ReadInput:ReadPrimaryFile:Invalid numerical input for
file “C:\Users\1oRs5\Desktop\New folder\stc_input_file.dat” occurred while trying to read
TMD_DOF_MODE.

Could you please help me ?

BR

Riad

Dear @Riad.Elhamoud,

The documentation you link to is for a newer version of OpenFAST. The structural control (StC) submodel of ServoDyn (formerly called the TMD submodel) was greatly enhanced after OpenFAST v2.1.

You can find an example TMD input file for OpenFAST v2.1 here: r-test/NRELOffshrBsline5MW_ServoDyn_TMD.dat at v2.1.0 · OpenFAST/r-test · GitHub. But I recommend upgrading to the latest version of OpenFAST to take advantage of the full functionality of StC.

Best regards,

1 Like

Dear @Jason.Jonkman,

Thank you reply ! Personally, i prefer to work with OpenFast v3.1 or higher but, in my Ph.D. i have to work on the Windcrete, a spar type floater designed under the European project Corewind. That’s why i’m using OpenFast v2.1. In the beginning of the Ph.D., i tried to upgrade to OpenFast v3.1 but unfortunately, i did not succeed and i spent a lot of time ! :frowning:

Furthermore, I wanna ask for an error i have encountered:

It says that node 1 does not project onto any line 2 element.

Could you please explain what this means ?

BR

Riad

Dear @Riad.Elhamoud,

The error pertains to the motion mesh-mapping named ED_2_SrvD_TowerMotion–that is, between the tower in ElastoDyn and the StC in ServoDyn. My guess is that the vertical location of your StC as defined in the StC input file (StC_P_Z) is not placed between the tower base and tower top, so, the mapping can’t be generated.

Best regards,

1 Like

Dear @Jason.Jonkman,

I was trying to test the effect of TMD on the response of the wind turbine (OpenFAST v2.1). It works perfectly !
However, i am interested to obtain the TMD Displacement and also its velocity. I used the same output noun as stated in the Excel file: 4.2.11.1. Input Files — OpenFAST v3.5.0 documentation

However, i am getting an error saying that:
NStC1_XQD is not an available output channel

But when i used the same output channel for openfast v3.3 (OC3 Hywind), it works perfectly and i can see clearly the limit that the TMD in motion can not exceed.

Is that error related to the OpenFAST version or there is something wrong when i write the Output channel in OpenFAST v2.1 ??

Moreover, i wanna ask you about updating openfast files. When saying updating, it means to recompile right ? In fact, i tried to change the properties of OC3 Hywind input files (openfast v3.3) by the ones of windcrete without compiling and it gives an error when running openfast .

Am i right regarding the recompilation ?

Thank u in advance

Best Regards,

Riad

Dear @Riad.Elhamoud,

The former ServoDyn submodule named TMD was overhauled in OpenFAST v3.0 and renamed Structural Control (StC); this is why the related output channel names changed after v2.1.

When changing versions of OpenFAST, you must obtain the new OpenFAST executable (either by obtaining the updated source code and recompiling, or accessing the executable precompiled by NREL: https://github.com/OpenFAST/openfast/releases) and you must upgrade your input files from the old to the new file format; the input file changes with each release of OpenFAST are documented here: 4.1.2. API changes between versions — OpenFAST v3.5.0 documentation.

Best regards,

1 Like

Dear @Jason.Jonkman ,

Thank u for your response.

I will try to update the source code and recompile (I think it’s the best way because i did the second option i.e. i take the input files of OC3 hywind and i edit it by adding the properties of windcrete but when i run OpenFAST, it gives me errors)

Moreover, i was trying the Structural control module in OpenFAST v3.1 (OC3 Hywind). However, when i put the TMD in the substructure at the CM location, OpenFAST gives an error. I tried to reduce the mass and i set a TMD mass equal to 0.025% of the substructure mass, but OpenFAST gives always an error. It says that the Mach number exceeds 1. I don’t know why, but the wind is steady having a value of 4 m/s and the sea has Hs=1.1 m & Tp=5.88 s

The following figure shows the input file of the TMD:

The following figure shows the error obtained:

Could you please help me to figure out the problem ?

Best Regards,

Riad

Dear @Riad.Elhamoud,

I would not expect such a low TMD mass and stiffness to result in any error. Are you sure the model is running properly without the TMD enabled? I would guess something else in your model is set incorrectly. I would suggest simplifying the model to debug, e.g. by disabling structural degrees of freedom in ElastoDyn, or disabling aerodynamics.

Best regards,

1 Like

Dear @Jason.Jonkman ,

I want to ask you about parameters in StrctCtrl submodule more precisely the StructCtrl CONTROL parameters in the StrctCtrl input file. There is a parameter called control mode. Lets say i am using a passive TMD, this parameter should be set to zero. Right ?
There is also a second parameter called Semi-Active control mode. I thought it deals with the semi active control. However, if i set the control mode to zero i.e. passive control, this parameter can not be zero. I think it is not related to the control parameter right ?
I searched to understand the Semi-Active control mode parameters {1: velocity-based ground hook control; 2: Inverse velocity-based ground hook control; 3: displacement-based ground hook control 4: Phase difference Algorithm with Friction Force 5: Phase difference Algorithm with Damping Force} but i did not find a lot on the internet. Also, i did not found any explanation in OpenFAST documentation.
Could you suggest any articles, papers, books please ?

Moreover, i wanna ask about the equations of the StrctCtrl module done by Professor Lackner and revised by you. In this pdf, Professor Lackner models the TMD using Newton second law. He founds the acceleration of the TMD using RK4 (Runge Kutta 4th order). So, the only unknown is the acceleration of the TMD. The acceleration of the nacelle is obtained from the simulation without TMD, Right ?

Frankly, i asked a lot because i am lost. In the articles, the vibration reduction is very high ! However, in openfast, it is almost 1 % although i tried the optimized TMD parameters (mass, stiffness, and damping) obtained from some articles.

BR

Riad

Dear @Riad.Elhamoud,

A few comments:

  • I agree that you should set StC_CMODE = 0 when modeling passive TMDs
  • The most up-to-date documentation on StC is available here: 4.2.12. Structural Control (SrvD) — OpenFAST v3.5.0 documentation
  • I’m not an expert on the semi-active control options. I would suggest reviewing the publications referenced in the StC reference list: 4.2.12. Structural Control (SrvD) — OpenFAST v3.5.0 documentation
  • The motion of the nacelle (including acceleration) is sent as input to the StC module and is based on the reaction of the StC (not without consideration of the StC). Because the nacelle acceleration can’t be calculated without knowing the force applied by the StC, the coupling between StC and ElastoDyn for the nacelle-based TMD is implicit, which is solved in OpenFAST via the implicit loose coupling scheme implemented in the OpenFAST glue code.

Best regards,

1 Like

Dear @Jason.Jonkman ,

Thank u for your reply.

I will check the publications in the StC reference list.

If i understand correctly what you have said in the last point: You called loose scheme due to the fact that the TMD mass is not directly involved in the mass matrix in ElastoDyn, right ?
So in OPenFAST, in particular in the StC module, based on the initial conditions at time t=0, the force due to the TMD are computed, then sent to ElastoDyn in order to compute the other unknowns i.e. if all the degree of freedom in OpenFAST are enabled, a system 22x22 is solved then the acceleration of the nacelle is sent to StC module, then the forces due to the TMD are obtained and sent to ElastoDyn and so on. Right ?

Best Regards,

Riad

Dear @Riad.Elhamoud,

By “loose coupling”, I mean that the StC module and the ElastoDyn module have separate time-integrator to advance there states from one time step to the next. I agree that the StC does not show up directly in the mass matrix of ElastoDyn. But the coupling method still ensures the full system of equation is still being solved as if it where solved monolithicly.

Best regards,

Dear @Jason.Jonkman

I have downloaded an Excel sheet named OutListParameters. I did not remember from where i downloaded it. I download a lot of files per day :grin:

I have found an output channel for TMD that is different from the one stated here:
https://openfast.readthedocs.io/en/main/source/user/servodyn/input.html

Fortunately, it works for OpenFAST v2.1 :grin:

I just wanna share with the community this Excel file but i could not upload it. If you could help uploading it.

Here is a screen capture:

Moreover, i was playing doing simulation. I found that the rotor of the IEA 15 MW can give a thrust force of approximately 2.5 MN which is striking :exploding_head:
The jet engine of an A320 delivers only 0.1 MN of maximum thrust !!! So one need 20 jet engine to have the same thrust. It seems to you logic ?

Best Regards,

Riad

Dear @Riad.Elhamoud,

The most up-to-date version of the OutListParameters.xlsx spreadsheet listing the write-outputs available from OpenFAST modules is available in the online OpenFAST readthedocs documentation here: https://openfast.readthedocs.io/en/main/_downloads/3f19498a5dc774461e022b671ff01ec6/OutListParameters.xlsx. The states of the TMDs are available in the most recent version of OpenFAST, but were renamed when the TMD submodel was reformulated into the Structural Control (StC) submodel.

Best regards,

1 Like

Dear @Jason.Jonkman,

Hope you are doing well. I have a couple of questions regarding StC module to be sure that i am on the right way.

  • In the StC module there is an option called omni-directional TMD. This is a TMD having two degrees of freedom (in fore-aft and side-side) and it is not two TMDs each one has a degree of freedom (one in the fore-aft and the second in side-side) right ?

  • For me, i prefer to call the omni-directional TMD, a pendulum. I call it pendulum due to the fact that the latter could be seen as a two degree of freedom like the omni-directional TMD. What do you think? Is it right to call it pendulum or the pendulum is a totally different concept ?

Thank you or your clarifications

Best Regards,

Riad

Dear @Riad.Elhamoud,

I agree that the omni-directional TMD has two transverse DOFs. You can think of it as a two DOF pendulum, except that motion remains planner, rather than on a spherical surface.

Best regards,

1 Like

Dear @Jason.Jonkman,

Hope you are doing well. I have two questions regarding the StrctCtrl module.

1- I want to make sure that when using passive TMD (setting StC_CMODE to 0), no Semi-Active control mode will be used. In fact, i did not see a flag saying "unused when StC_CMODE=0 near Semi-Active control mode option. Right ?

2- When enabling the prescribed forces, i just wanna make sure that this force will be applied on the whole TMD. In other word, this force is applied in the presence of spring stiffness and damping coefficient specified above in the StC MASS, STIFFNESS, & DAMPING section. Right ?

Thank you for your responses

Best Regards,

Riad

Dear @Riad.Elhamoud,

Here are my responses.

  1. I agree.
  2. The prescribed time-series forces are used in place of TMD or TLCD based on the specification of StC input StC_DOF_MODE.

Best regards,

1 Like

Dear @Jason.Jonkman,

Thank u for your quick reply !

—> concerning question 2, is it the same for the spring force table ?

Best regards,

Riad

Dear @Riad.Elhamoud,

Correct. The spring force table is only used with StC_DOF_MODE = 1 or 2 (TMDs). The prescribe time-series forces are StC_DOF_MODE = 4.

Best regards,

1 Like