Generalized Teeter

Dear NREL forum users,

I am analyzing different aspects of 2bladed wind turbines in terms of structural loading. I’ve been diving into the teetering options provided in openfast by default and realize that it basically provides the typical Degree of Freedom perpendicular to the blade axial direction. Actual teetering options involve the use of rubber pads which would add additional elasticity to the rotor connection.

I would like to extend the functionality of the teetering by enabling all these DoF. I’ve been diving through the openfast code and found some option but i’m an almost newbie in the OpenFast code… any idea on how could i achieve the addition of these new DoF?

Thanks in advance and kind regards

Roberto

Dear Roberto,

I’m not sure I fully understand your question. It sounds like you want to model the rubber pads as structural degrees of freedom. Could these rubber pads not be modeled more simply as springs and dampers, linear or nonlinear? The ElastoDyn module of OpenFAST has built-in functionality for various teeter springs, dampers, and stops (via TeetMod = 1), or a simpler interface for the user to implement there own more sophisticated relationship through the user-written SUBROUTINE UserTeet() (via TeetMod = 2).

Best regards,

Hello Jason and thanks for your reply!

I understand that TeetMod option will enable the standard teetering in the hub, a hinge perpendicular to the blades ,or in other word, it would allow the blades to tilt around their perpendicular axes, right?
That is ok, and in principle it would be fine to use only that. The problem is that we think it would be too conservative. We believe that the rubber pads allowing the teetering movement would also allow certain movement in the other degrees of freedom, but with a much higher stiffnes, so I would like to include these additional degrees of freedom in the model.

kind regards

Roberto

Dear Roberto,

Yes, that is correct, except that OpenFAST also supports a delta-3 angle, which means that the teeter axis must be perpendicular to the shaft, but need not be perpendicular to the blade axes.

To include additional teetering DOFs, e.g., a ball joint instead of a pin joint, would require updating the kinematics and kinetics expressions within the ElastoDyn module; this would also impact the formulation of the kinematics and kinetics of the blade degrees of freedom (DOFs). I’m sure this is possible to add, but will not be simple. I would suggest to start by reviewing how the existing teeter DOF is implemented in ElastoDyn. This is documented in what is called the “Unofficial FAST Theory Manual” on this forum (which is effectively the unofficial ElastoDyn Theory Manual): FAST theory manual. That said, if the frequencies of these new DOFs are high relative to the rotor speed (due to the high stiffness you mention), I would question their impact on the loads calculation.

Best regards,

Hello again and sorry for my late reply… in the end this is not my primary research topic and i can only look into it from time to time.

Anyhow, i desisted to work on the addition of the additional degree of freedom in elastodyn. In exchange to that i decided to try to couple aerodyn with and an external multibody library (ProjectChrono to be more precise) which i understand better.

I compiled the standalone aerodyn_driver and was able to make some progress on understanding the driver, but in the end produced more uncertainty. What I would like to do is the following:

  1. Calculate the aerodynamic forces with aerodyn
  2. Take the aerodynamic forces and moments into projectchrono
  3. Calculate the new rotor position
  4. Call aerodyn again with the new rotor position

Main question, is this the purpose of the aerodyn driver?
Other questions:

  1. How can i define the initial azimuth angle in the aerodyn_Driver input file?
  2. If i would like to calculate the aerodynamics with the deformed shape of the blade, how could i introduce the new node positions in aerodyn?

Thanks in advance and kind regards

Roberto

Dear Roberto,

The main purpose of the standalone AeroDyn driver is to compute aerodynamic response without coupling to a structural solver, e.g., for aerodynamic-only performance analysis of a wind turbine rotor.

Your description of what you would like to do sounds like a two-way coupling between AeroDyn and your structural solver, ProjectChrono. The AeroDyn module is designed to be called by another software, so, this is definitely possible with some work.

To answer your direction questions:

  1. It is not possible to specify the initial azimuth angle in the current version of the standalone AeroDyn driver input file (where the initial azimuth angle is always assumed to be zero), but this would probably not be too much work to add by modifying the source code. There is also a much more capable standalone AeroDyn driver under development–see: github.com/OpenFAST/openfast/pull/688.
  2. You’d have to modify the standalone AeroDyn driver source code to pass the position, orientation, and velocity of every aerodynamic analysis node to AeroDyn every time it is called. This may be complicated for beam that deforms in bending, torsion, etc. Again, it is probably better to just develop an interface between your structural solver and the AeroDyn module.

Best regards,