to validate the mass parameters and the response of the structural model of my wind turbine I do run tests without aerodynamic forces.
There are two test cases where I got some problems to get the expected results. In the first test all DOF’s are switched off.
I do control the pitch angle using a BLADED-DLL. The output of the blade 1 pitch angle (PtchPMzc1) is exactly like the demanded angle of the controller.
What I do wonder is that the blade 1 pitching moment at the blade root (RootMzb1) remains zero.
Here I would have expected to measure a drive torque in response to the moment of inertia about the pitch axis.
The demanded pitch angle changes quadratically in respect to the simulation time. The acceleration in the pitch joint should stay constant.
Does the FAST-Model consider the internal loads if the turbine blade will be accelerate about the pitch axis?
In the second test I want to get the response of the yaw actuator (YawMom) if the demanded yaw rate and the correlated yaw angle are controlled.
In the FAST user guide I found that it is possible to get the response due the moment of inertia of the nacelle and rotor about the yaw axis by setting YawDOF to True.
I now got the problem if the YawDOF has been set to False I will get the demanded yaw angle but got a zero YawMom. If I set the YawDOF to True the yaw angle and YawMom remains zero.
I found in the source file BladedDLLInterface.f90 that in the UserYawCont() routine a valid YawPosCom will be generated from the provided YawRate.
Any help is much appreciated!
The current version of FAST has no pitch dynamics. That is, the pitch-angle command from the controller is simply used in FAST to orient the blade (instantaneously) with no dynamics. Certainly this misses some physics by decoupling the pitch motions from the rest of the system equations of motion. For example, when the blade-pitch angles change because of commands from the pitch controller, because there is no blade-pitch DOF, there are no associated pitch rates or accelerations computed by FAST and the inertia, Coriolis, and other potential loads from the pitch motion will not be included in the output loads at the blade root. The magnitude of these ignored terms will depend on how fast the blades pitch and on the degree to which the blades deflect. With no pitch dynamics, no aerodynamics, and no blade deflection (because you’ve disabled these features), the pitching moment will be zero.
With regards to the nacelle yaw control in FAST, if the yaw DOF is disabled, then the commanded yaw angle and rate will be the actual yaw angle and yaw rate used internally by FAST. In this case, FAST will not compute the correlated yaw acceleration, but assume that it is zero. With a zero-valued yaw acceleration and a perfectly balanced rotor with no aerodynamic loads, the yaw moment would be zero. If the yaw DOF is enabled in FAST, then the commanded yaw angle and rate, YawPosCom and YawRateCom, become the neutral yaw angle, YawNeut, and neutral yaw rate, YawRateNeut, in FAST’s built-in second-order actuator model defined by inputs YawSpr and YawDamp. If YawSpr and YawDamp are specified as zero in FAST’s primary input file, then the yaw inertia loads would balance with the yaw excitation loads, such that the yaw moment would also be zero (and if the yaw excitation loads are zero, the yaw angle would also be zero). Are YawSpr and YawDamp zero-valued in your model?
indeed YawSpr and YawDamp had been zero-valued in my model. I didn’t notice that the yaw angle and yaw rate
constraints are controlled through a torque which will supplied by your actuator model.
Now I chosen for YawSpr = 1e9 and for YawDamp = 1e5. The demanded yaw angle is
PI/7200TIME^2 and the correlated yaw rate is PI/3600TIME. The figure 1 shows the response for the yaw angle (YawPzn).
Unfortunately the YawMom doesn’t came out as expected.
Because the yaw acceleration has been constant the YawMom should be constant as well.
I tried all ready different values for the YawDamp value but without any success.
It still seems to be a free vibration of the actuator model.
Any help is much appreciated!
Can you also plot YawVxn and YawAxn (i.e., the resulting yaw rate and yaw acceleration, which I suspect are different than the commanded yaw rate and acceleration)?
I suspect you’ve chosen values of YawSpr and YawDamp that are far too low to get the yaw motion to exactly track the desired yaw acceleration. The FAST User’s Guide recommends that you set YawSpr = YawIner•ωn^2 and YawDamp = 2•ζ•YawIner•ωn, where YawIner is the nominal inertia of the nacelle and rotor about the yaw axis in kg·m^2, ωn is the desired yaw actuator natural frequency in rad/sec, and ζ is the desired yaw actuator damping ratio in fraction of critical. The natural frequency I see in your plot of YawMom is around 1.87 Hz, or ωn = 11.75 rad/s. From your values of YawSpr and YawDamp and the equations above, this must mean that YawIner = 7.24E+6 kg·m^2 and ζ = 5.87 E-4 in your model. ζ should be set between 0.6 and 0.7 for optimal tracking of a desired yaw motion (increasing YawSpr may also help).
thanks for your response and the recommends in terms of YawSpr and YawDamp value.
Unfortunately the output result for YawMom is still not as expected.
Are the values YawVxn and YawAxn standard outputs of FAST?
If I do run a FAST job with this output channels FAST terminates with an error message.
Any help is much appreciated!
Sorry. I meant to say YawVzn and YawAzn, which are the nacelle-yaw rate and acceleration.
I now use a double precision FAST where I receive the expected results.
I increased the YawDamp value up to 1e9. The yaw acceleration (YawAzn)
and the YawMom now stays constant.
To me it seems to be as a problem of the solver stability.
What I still wonder is, that I do get NaN as output if I choose the YawDamp value above 1e10.
I’m glad you got the desired yaw response.
I’ve never needed to use double precision in FAST to get a desired output. Are you saying that you needed double precision with YawDamp = 1e9? What damping ratio, ζ, are you getting–based on the equations below–with YawDamp = 1e9 and YawDamp = 1e10? As I said before, you should ensure ζ is between 0.6 and 0.7 for optimal tracking of a desired yaw motion. Much higher damping may lead to a numerical instability in the model. I’m not sure where you are seeing NaN as output, but this is often the first sign of a numerical instability in the model.
I’m trying to add a mechanical pitch actuator model to FAST as a bladed-style DLL. For modelling the blade bearing I need several forces and moments at the blade root. Now I’m trying to use the user-defined records (120-129) and other records of the DLL-interface to get the forces and moments from ElastoDyn to my bladed-style DLL.
Is it possible to define the records with this variables in the Bladed Interface so I have access (for reading) in my bladed-style DLL?
Thank you in anticipation for your help.
Yes, it is possible, and it sounds like you’re on the right track to implementing it. I suggest that you look at how the DLL currently gets the blade root out-of-plane bending moments (records 30-32) and blade root in-plane bending moments (records 69-71) and mimic the approach for the other load components you need.
I am trying to estimate the values of YawSpr and Yaw Damp, when I came across with this post where these variables a defined as;
YawSpr = YawIner•ωn^2
YawDamp = 2•ζ•YawIner•ωn
I was doing some test trying to get the same values as are shown on NREL 5MW example and DOWEC 6MW PREDESIGN. According to both examples I have some differences between my calculations and the values posted. I would like to know the reason (I think the differences are too high to be caused by the decimals).
In case NREL 5MW example:
YawSpr = YawIner•ωn^2=2,607,890*(32pi())^2=926,598,334 and the example is 9,028,320,000
YawDamp = 2•ζ•YawIner•ωn=20.22,607,890*(32pi())= 19,663,027 and in the example is 19,160,000 N•m/(rad/s).
The example I am referring is NREL 5MW: nrel.gov/docs/fy09osti/38060.pdf, Section 4; “4 Hub and Nacelle Properties”
Besides I am having some issues too, with the calculation of the YawInertia to obtain the same values as in NREL 5MW example. From the information I read, I assume that the YawIner is calculated with the Nacelle (NacMass,NacCMxn) and with the rotor (Rotormass,OverHang). Am I missing anything? Is there any old post where I can see the development?
Thank you a lot for your time.
I agree with your calculations, except that:
I hope that helps.
Thank you very much for your quick response. The new value clarifies the calculation. Nevertheless the value of 2,607,890 kg•m2 posted on NREL 5MW, refers to Nacelle inertia about Yaw axis. This value is not calculated as only I=mr^2, isn’t it? Which components contribute to this inertia? Only the nacelle mass (including the generator)?
I was trying to calculate by hand a preliminary value. I was taking into account the nacelle mass and rotor mass as the inertia of two puntual masses (I=m1*m2/(m1+m2)*x^2) and the apply the parallel axis theorem to obtain it at the Yaw axis. I think I was too naive. I will try to reproduce the value you told me, with the linearization functionality of FAST and understand better the process.
Thank you for your time.
The nacelle-yaw inertia of NacYIner = 2,607,890 kgm^2 for the NREL 5-MW baseline turbine includes contributions both from the nacelle mass center offset from the yaw axis and the distribution of mass around the nacelle center of mass. However, the value of YawIner in the equation for the yaw spring and damper should include not only the nacelle-yaw inertia, but also the inertia of the rotor about the yaw axis. This latter inertia has contributions both from the rotor mass center offset from the yaw axis and the distribution of mass around the rotor center of mass.
I’m coming back to what Pablo said about NacYIner, YawSpr and YawDamp numerical values. For NacYIner, it’s NacYIner=2.60789E+06 kg.m^2 right? As for YawSpr and YawDamp, should we take the default values in the documentation which are :
9.02832E+09 YawSpr - Nacelle-yaw spring constant (N-m/rad)
1.916E+07 YawDamp - Nacelle-yaw damping constant (N-m/(rad/s))
Or take the values that respect the 3Hz natural nacelle frequency and a ratio damping of 0.02, as calculated by Pablo, which are:
9.2660e+08 YawSpr - Nacelle-yaw spring constant (N-m/rad)
1.9663e+06 YawDamp - Nacelle-yaw damping constant (N-m/(rad/s))
Or can we adjust the YawSpr and YawDamp freely with respect to 3Hz and a ratio damping of 0.65 for instance, which will be:
9.2660e+08 YawSpr - Nacelle-yaw spring constant (N-m/rad)
6.3905e+07 YawDamp - Nacelle-yaw damping constant (N-m/(rad/s))
As I explained to Pablo, the value of YawIner he was using in those equations was too small. YawIner in those equations should use the combined inertia from the nacelle (NacYIner) and the rotor about the yaw axis (YawIner = NacYIner + RotorInertiaAboutYawAxis). For the NREL 5-MW turbine, the value I used was NacYIner = 2,607,890 kg m^2 and YawIner = 25,410,000 kg m^2. I had used ζ = 0.02, but you could use a higher damping ratio of ζ = 0.65 if you want.
Thank you for the reply, it helps a lot!
I am studying the impact of wake meandering on turbine yaw duty and fatigue loading using SOWFA-OpenFAST. I implemented active yaw-rate controller in bladed DISCON.
Because I enabled YawDOF, there are spikes in yaw bearing moment about yaw axis (YawBrMzn) when the yaw controller is triggered due to the yaw actuator command load (as shown in the plot; the left axis is the yaw position relative to the mean free-stream wind direction (red line) and the right axis is the yaw moment, YawBrMzn (green line)).
I would like to get some suggestions if there is any simple way to calculate only external yaw moment loads (wind load) without rerunning the LES with YawDOF disabled. So that I can compare the yaw moment due to wind loads between active yaw control and fixed yaw position cases.
Is it possible to use the YawAccel from ElastoDyn and YowMomCom from ServoDyn to obtain the external loads?
Thank you very much
If the rotor-nacelle assembly (RNA) was rigid, the equation of motion for the nacelle-yaw DOF would be:
YawBrMzn = YawSpr*( YawPos - YawPosCom ) + YawDamp*( YawRate - YawRateCom ) = YawTq - YawIner*YawAccel
where YawTq is the aerodynamic applied yaw moment and YawIner is the inertia of the RNA about the yaw axis. Thus:
YawTq = YawBrMzn + YawIner*YawAccel
If the RNA is not rigid (e.g. from blade flexibility and rotor rotation), then this may still be a reasonable approximation if YawIner is calculated as some averaged value.
Alternatively, AeroDyn v15 can output the total aerodynamic applied loads in the hub coordinate system via the six outputs RtAeroFxh, …, RtAeroMzh.
Thank you very much for your suggestion.
This is really helpful.