I’m trying to migrate my wind turbine Simulink model from FAST v7 to FAST v8. Almost everything is working fine, but I can’t get nacelle yaw to work properly.
In the FAST v7 model, pitch and yaw angles (and yawing rate) were commanded from the Simulink model (PCMode and YCMode were set to the appropriate values).
In FAST v7, yaw moment YawMom was calculated without setting YawDof to True - I guess FAST simply calculated how much moment was needed to keep the turbine fixed at the commanded yaw position. Which was good, since the model could simulate motor overload, yaw braking torque etc.
In FAST v8, the pitch angle actuation works perfectly but it seems to me that there have been some changes in yaw calculations. If YawDof is False (as it was in FAST v7), then yaw is fixed at its initial position and YawMom is zero.
If YawDof is true, then the yaw spring and damping constants are taken into account but I don’t really want that.
After looking through the ServoDyn source code (I don’t know much about FORTRAN, but hey, it’s well written and documented code!) I found that it seems that contrary to FAST v7, yawing is only calculated if YawDof is set to true.
That could be OK but I also found that the FAST solver doesn’t couple the actual yaw angle between ServoDyn and ElastoDyn, only the yawing moment output by ServoDyn - which is calculated with the spring and damping constants. And then the yaw position change is calculated by ElastoDyn.
I also found that because of this, YawBrMzn is now different from YawMom (used to be the same in FAST v7).
It seems that setting GenDof to True and YCMode to 4 and setting yaw damping to 0 and yaw spring to a really high number, say, 1e7 so that this fictitious “yaw moment” generates almost instantaneous yaw changes could be a workaround.
But if the spring constant is too high, the program crashes, if it’s too low, then the yaw position will not be equal to the commanded position. And even in between, there are small changes in yaw position because of this system.
How should I use the system so that I can properly command yaw angle and rate, as it was supposed to be for FAST Simulink?