Open GertHeirman opened 6 days ago
Dear @GertHeirman,
Thanks for sharing your plans.
I question, though, if what you are proposing really requires a change to OpenFAST. It sounds like you want to augment the generator torque controller, but other than a few simple built-in control options, OpenFAST (through ServoDyn) mostly supports interfaces to externally defined controllers (e.g., user-defined routines, Simulink, or Bladed-style dynamic libraries). The ROSCO dynamic library is the most complete wind turbine controller that I'm aware of in the open domain: https://github.com/NREL/ROSCO. What you are proposing sounds like a feature that could be added to ROSCO. Perhaps that is a better place to start?
Best regards,
Problem description: For-aft tower motion is well-damped due to aerodynamics. However, side-side motion has far less intrinsic damping. When wave forces and wind direction are not aligned, waves will excite the sideways motion of the tower (other sources of sideways excitation exist too of course). This side-side oscillation may occur regularly enough and be severe enough to have a significant impact on the lifetime of the wind turbine's tower and/or foundation. Several ways exist and have been proposed to actively dampen this oscillation. One of the more common approaches is to add a variable component to the generator torque (controller output), based on e.g. the tower sideways motion (controller input).
Desired solution: Addition of an active tower damper to OpenFAST. Several more or less advanced control schemes could be imagined, but a PID using lateral acceleration of the nacelle as input would make sense as a first start.
In line with OpenFAST's Development Philosophy and Guidelines, this post is meant as an initial post to inform you that I intend to add this functionality and to engage with the NREL OpenFAST team to define the scope of the work and coordinate development efforts.
areas of the software that will be impacted: To be honest, I am discovering the code as I go. My current view is that the most logical place to add this is in the files ServoDyn.f90, ServoDynIO.f90 and the ServoDyn-input file (and I am currently unaware whether any changes would be required elsewhere). If you (the NREL OpenFAST team) would reach out to schedule a meeting to talk through the details, that would be really appreciated.
any model validation materials: None yet. I intend to extend the IEA-10.0-198-RWT model to include this additional functionality. So this will logically be created in parallel with the functionality in the source code.