OpenFAST / openfast

Main repository for the NREL-supported OpenFAST whole-turbine and FAST.Farm wind farm simulation codes.
http://openfast.readthedocs.io
Apache License 2.0
695 stars 459 forks source link

Addition of active tower damper functionality #2525

Open GertHeirman opened 6 days ago

GertHeirman commented 6 days ago

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.

jjonkman commented 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,