PTDM implementation

Dear @Emanuel.Rergis,

The dimensions of the nacelle (length, width, height) were never specified for the NREL 5-MW baseline wind turbine. You’ll have to make your own assumptions for your own purposes.

Best regards,

Dear Dr @Jason.Jonkman:

After ten months of arduous study of the physical characteristics of TMDs and PTMDs, I return to you. Apparently, after everything I’ve seen, I’m afraid I’ll have to modify the source code in the structural control part. Where in the program files or glue codes can I access that code? Who can I contact to obtain these codes in case they are unavailable for alteration in my OpenFAST glue codes?

Thank you very much.
Best wishes.
Emanuel M. Rergis

Dear @Emanuel.Rergis,

The structural control source files are included with the rest of the OpenFAST source code in the OpenFAST repository on GitHub. You can find the structural control source files specifically with the other source files of ServoDyn here: openfast/modules/servodyn/src at main · OpenFAST/openfast · GitHub.

Best regards,

Thank you very much, @Jason.Jonkman. Another question: Is the language used in the OpenFAST source codes Fortran? Can I change the files in the repository on GitHub directly?
Thanks again.
Kind regards.
Emanuel M. Rergis

Dear @Emanuel.Rergis,

The OpenFAST source code is predominately modern Fortran, but there are other languages used in places such as Python and C. That said, the structural control source files are Fortran-based.

You wouldn’t have write permission to change files directly within repository, but you could change local copies, or if you prefer to use Git, you could create a fork of the OpenFAST repository and change the files in your local repository. The latter would be required if you intended to submit the changes back into the NREL repository. For the latter, documentation on the how to contribute to OpenFAST development is provided here: 5. Developer Documentation — OpenFAST v3.5.2 documentation.

Best regards,

Thank you very much Dr. @Jason.Jonkman, for your reply. The following might be a silly question, but I don’t manage to understand if OpenFast is relating the wave height to wind speed and water depth. Or are those parameters independent? One more thing: how can I determine if the value I have is reasonable for the wind speed (mean value: 12m/s) and water depth in my simulations? Please find attached the corresponding plot.

Thank you very much.
Kind regards.
Emanuel

Dear @Emanuel.Rergis,

The wind speed, wave height, and water depth are set independently in OpenFAST; it is up the user to specify “reasonable” values. Typically you’d be running OpenFAST for a set of load-case simulations that cover the range of possible conditions experienced by the offshore wind turbine, whereby the wind speeds and wave heights/periods would be taken from a metocean design basis that is dependent on the installation site, for example, the joint probability distribution of wind speed, wave height, and wave period.

Best regards,

Thank you very much Dr @Jason.Jonkman. I’m so sorry to bother you again. This time, I’m trying to implement multiple tuned mass dampers throughout the tower. Let’s say for example, that I want 2 of them acting in the fore-aft direction, the first one allocated at 30m from the SWL (still water level) and the other one at 60m from the same reference point.

  1. Should I write in the blue-dotted line section the number 2 and deactivate the previous two lines?
  2. What is the proper syntax to name the corresponding ServoDyn_StC.dat files, provided that there might be more than one?
  3. Is the black-dotted line section the right place to define where the TMD will be allocated? If this is so, can I write these 2 values (30, 60) or do I need to create another file for the second TMD (60m)?
    Please, find attached some snapshots.

Thank you very much.
Kind regards!
Emanuel

Dear @Emanuel.Rergis,

If you want to place two TMDs at different heights in the tower, you should set NumNStC = 0 and NumTStC = 2 and use two different StC files, one for the lower and one for the upper TMD. Each StC file should have a unique name and both names should be specified via TStCfiles. The following r-test provides an example you could follow: r-test/glue-codes/openfast/StC_test_OC4Semi at main · OpenFAST/r-test · GitHub.

Best regards,

Dear Dr @Jason.Jonkman :slight_smile:
Thanks a lot for your reply. I have made the sensible changes, and now I’m getting this (please find attached the snapshot). Apparently, there’s a mistake in the AeroDyn15 file or in the ElastoDyn file. Unfortunately, I can’t spot where the error is coming from. Could you advise me on what to do?.

Kind Regards!


AeroDyn15
ElastoDyn

Emanuel

Dear @Emanuel.Rergis,

This error is in reference to a mesh-mapping error between the StC within ServoDyn and the tower in ElastoDyn. It appears that you are trying to locate the StC outside the range of the tower, which OpenFAST does not know how to map. I would guess the error is in the setting of StC_P_Z within the StC input file, which should be between 0 (to locate the StC at the tower base) and 77.6 (to locate StC at the tower top).

Best regards,

Thank you for your reply, Dr. @Jason.Jonkman. I changed the location of the StC, and the simulation ran as expected. Now, I’m trying to use some time-force series to emulate a Pendulum-tuned Mass Damper. I saw in this forum that some users have successfully used this option via SStCfiles. Can this be done through NStCfiles? Are these files the same as those from the Prescribed Time Series section in the Servo_Dyn_StC module?

Thank you, once again for your help and advice.
Best regards!
Emanuel

Dear @Emanuel.Rergis

The same Structural Control (StC) submodel of ServoDyn is used for the blades, nacelle, tower, and substructure. You can define as many StCs as you want and place them wherever you want. Really the only difference between these is the reference origin/coordinate system of the StC, which differs for the blade-, nacelle-, tower-, and substructure-based StCs.

Best regards,