-
Notifications
You must be signed in to change notification settings - Fork 446
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dynamically change of the blade mass properties within a given simulation in OpoenFAST and ElastoDyn #339
Comments
One thing that looks strange to me is that you are using |
Dear Bonnie, Thank you very much for your quick response. Best regards |
Dear @bjonkman , Since the last post I did some modifications to the ElstoDyn.f90 source code, so that not only the blade element mass
But now, because of no Data Type ED_Inputfile in Subroutine UpdateCoeff, I generated new parameters
I did that for all InputFileData% in Subroutine Coeff(), and I also allocated the new defined parameter in SetOtherParameters () as folw:
But when I start to compile I got this error: I think it’s maybe my defention of the new parameters wrong. Best regards PS: I took only some sections from the whole code from each Subroutine to illustrate the problem |
One thing to keep in mind is that if you are changing any registry input files, you might need to build twice (the first time Visual Studio regenerates the *_Types.f90 files, but the code that depends on those types files doesn't necessarily build with the correct version of the *_Types.f90 file until the second build). That may be the cause of the first error you display (unless something else is incorrect). One issue I see is that your
Yours is allocated to be one element larger. |
If you are using the current edit: see @rafmudaf comment below for link. |
Actually, this is a better link to the docs: https://openfast.readthedocs.io/en/dev/source/dev/types_files.html. |
Dear OpenFAST Devloper, After compiling OpenFAST I performed Test 18 (5MW_Land_DLL_WTurb) and I plotted the blade element masses for the List of blade nodes that have strain gages BldGagNd in figure one, this signals (SpnMb) I generated by myself to see the physical-mass addition. In figure 2 I compared the rotor speed of each version of the OpenFAST and of the OpenFAST+AddMass function. Actually, I expiated a continuous reduction of rotor speed after a mass addition of 1.5 for each blade element, but the figures didn’t show that! Best regards |
@jjonkman @bjonkman I already add those input data and theirs corresponding parameters in ElastoDyn_Registry.txt and in ElastoDyn_IO.f90. |
Are you sure you are reading the two new inputs from the file correctly? You added two new |
Hello, ist hat posible to use signals from ServoDyn in ElstoDyn? I see that there are signals generated in ElastoDyn to use in ServoDyn like this:
Now I’m trying to do exact the opposite. I want to generate a signal in ServoDyn to use it in ElasoDyn.
Afterthat I defended this output in ServoDyn_Registry.txt |
Dear @LaurenceWETI, In the FAST / OpenFAST modularization framework, when modules are coupled together, the inputs and outputs should be consistent, i.e., the inputs to a given module should be derivable from the outputs of other modules. So, if you wish to add an output to ServoDyn that becomes an input to ElastoDyn, you should define the output in ServoDyn, define the input in ElastoDyn, and then modify the OpenFAST glue code to transfer the ServoDyn output as an input to ElastoDyn. For example of this, see how ServoDyn output BlPitchCom is transferred as an input to ElastoDyn. Best regards, |
@jjonkman thank you for your quick response |
Dear all, @jjonkman I have added the following routine to ElastoDyn.f90 to change GBRatio:
In order to call the subroutine in the time loop I have added to 'FAST_Prog.f90' the following code:
Which works perfectly fine when I run OpenFAST from the command line, i.e. when I change the GBRatio, the GenSpeed changes immediately. However, I am using OpenFAST in a Simulink environment and the dynamic change does not occur when I use the S-function. I have tried calling 'ChangeGBRatio' from the subroutine FAST_Update(iTurb, NumInputs_c, NumOutputs_c, InputAry, OutputAry, ErrStat_c, ErrMsg_c) in 'FAST_library.f90' of the OpenFAST_Simulink-project, similarly to method used for the regular project. The project builds and the S-function is generated without any errors, however the change does not seem to happen during my Simulink run.
How can I, similarly to solution for the regular OpenFAST-project, dynamically change the parameter? If you would be able to help me or point me in the right direction that would be much appreciated. Thank you in advance. Regards, Daan |
Dear @daansl1 , I see that you are using Best regards, |
Dear @jjonkman , Thank you for your swift response. The change you suggested has done the trick, the parameter changes midsimulation. Thank you very much. Best regards, |
Dear OpenFAST developer,
@jjonkman
I’m trying to change blade mass properties dynamically within a given simulation #253. For this reason I tried to modify the blade element mass during the simulation by adding Subroutine AddMass to ElastoDyn.f90 as follow:
Subroutine AddMass is called at a given time within the simulation in FAST_Prog.f90 as follow:
After that I could compile OpenFAST without errors.
To check if the changing of blade element mass takes place, I performed the TEST 18 (5MW_Land_Dll_WTurb) with the new OpenFAST.exe and I compared the results with the original OpenFAST.exe. The results were identical for both models, and there are no remarkable changes in the results at the given time!
To test whether OpenFAST.f90 is calling Subroutine AddMass correctly or whether the DO Loop in Subroutine AddMass is working properly, some pop-up messages are printed when Subroutines are calling.
The above screenshot shows clearly that the program didn’t go through the DO Loop. I’m not sure if the ElastoDyn parameters type (p) are available for Subroutine AddMass at the given time or not?
When the ElastoDyn parameters type (p) are defined at initialization and remains stored throughout the entire simulation, how can I assess this parameter within the simulation? And whether it’s possible to change this parameter after initialization?
Any help would be really appreciated!
Best regards
Laurence
The text was updated successfully, but these errors were encountered: