thank you for your answer.
I started implementing the External Control of TMD properties using Simulink.
Eventually, I aim to control both the stifness and the damping of both the TMD in FA direction and in SS direction.
Therefore I increased the number of FixedInputs in the FAST_Library.h and in the FAST_Library.f90
I started to implement the external control as an additional control mode (TMD_CMODE) so there are four overall:
ControlMode_NONE = 0
CMODE_Semi = 1
CMODE_Active = 2
CMODE_EXTERN = 3 (new)
I also introduced some new variables to the registry files:
Accordingly to the C_Ctrl variable under the TMD_MiscVarType I added K_ctrl with the same dimension.
In the TMD_InputType I defined four variables ExtK_X, ExtC_X, ExtK_Y, ExtC_Y similar to the SrvD_InputTypes for external control.
At last I also added corresponding four variables to the FAST_Types for FAST_ExternInputType.
In the following I insert the parts of code I edited. The recompilation of the FAST_Library.vfproj in the Simulink folder has not been a problem
but when I try to validate the code I either get an error or results that differ from what I hoped to achieve:
For validation I use the CertTest #18 as I later want to work with the OnShore Wind turbine. I calculated the CertTest using a traditional passive
TMD first with the following properties:
Only a FA (X) TMD with
TMD_X_M = 36000 kg
TMD_X_C = 22366 N/(m/s)
TMD_X_K = 123301 N/m
I compare the TTDsp FA between the Calculation with the traditional implemented TMD with the TTDsp FA of my Simulink calcultion.
However when I enter the same TMD properties in my Simulink model (TMD mass is further defined in the TMD Input file),
I get the following error message:
“Error using Run_OpenLoop_edited (line 23)
Error reported by S-function ‘FAST_SFunc_edited’ in ‘OpenLoop_edited/FAST Nonlinear Wind
FAST_Solution:FAST_AdvanceStates:AD_UpdateStates:BEMT_UpdateStates(node 6, blade
1):BEMT_UnCoupledSolve:DeterminePhiBounds:There is no valid value of phi for these operating
conditions! Vx = -0.83787, Vy = 22.047, rlocal = 15.844, theta = 0.24381”
Which is a part of the Source code I didn’t change.
When I decrease the TMD mass (e.g. 10000 kg) the Simulation finishes after calculating the whole 60 s. But the results still differ from those using a traditional passive TMD with the same mass.
I hope you may see a mistake I made in my code or help me any other way on why my code doesn’t work as I intend it to.
Thank you very much.