Obtaining accurate steady state data


I need to set a table containing the airodynamical torques of the wind turbine. Its inputs are constant rotational speed of the turbine, constant wind speed and constant pitch angle. All set points are given by a fixed chebyschev-grid. I already tried to use CalcSteady = True, but found out, that it does not converge for all the set points.
I will discribe, what I did to obtain this table. I went through almost the whole code to understand, if this, what I am doing, is correct. But I still have the feeling, I miss something.

I wrote an own FORTAN program (Visual Studio - Intel Fortran Composer XE 2013). This program is initializing FAST (v7.02.00d-bjj, 20-Feb-2013) and AeroDyn (v13.00.02a-bjj, 20-Feb-2013), but it does not call the integration. I set up FAST with the setpoints (RotSpeed,WindVxi,BlPtich1) like follows:
All DOFs are set FALSE exept of GenDOF = TRUE and CompAero = TRUE. (for the first try)

Then I call a damped Newton method, whose input is (for this number of activated DOFs) the generator torque. Thus, I try to find the value of generator torque such that the acceleration of the rotor (QD2T(DOF_GenAz)) is 0 for this set of RotSpeed,WindVxi,BlPtich1. This worked quite well so far, but even if I use a large number of set points, the dynamics coincides not up to the accuracy I would like to have.
I realized that there are some topics which as to be carefully considered. I need to tell AeroDyn to recalculate the areodynamical torques at each time I call RtHS(). My first question is, what does this correct.
Does AeroDyn calculate different moments if either NoLoadsCalculated in AD_CaclculateLoads() is TRUE or FALSE?

I already realized, that the pitch is not obtained from PitchCntrl() for ZTime = 0.0D+00 etc.

Maybe you know some additional points I should also consider?

I use:

YCMode = 0
PCMode = 1
VSContrl = 2
PtfmModel = 0
Furling = False
No NoiseFile

StallMod = STEADY
UseCm = NO_CM
InfModel = EQUIL
IndModel = SWIRL

Thanks in advance and best regards,


Dear Colin,

In FAST v7, if you need to recalculate the aerodynamic loads from AeroDyn every time RtHS() is called, you should set ADIntrfaceOptions%LinearizeFlag = .TRUE., which is what is done in the FAST linearization procedure.

Don’t worry about variable NoLoadsCalculated; this is only used to properly initialize AeroDyn at time zero.

Why do you have PCMode = 1 and VSContrl = 2? It sounds like you want fixed pitch and that you have your own generator torque.

Best regards,

Dear Jason,

Thanks for the reply! I already tried this and this is, what I was looking for.

I hope I do understand your question correctly.

I use FAST for two purposes.

The first one is to determine steady state solutions for fixed rotor speed, fixed pitch angle and constant wind speed.
I do the following:
I write the generator torque to a variable, which is read in the subroutine UserVSCont(), thus I need VSContrl = 2.
I write the pitch angle to a variable, which is read in the subroutine PitchCntrl(), thus I need PCMode = 1.
I write the wind speed to a variable, which is read in the subroutine WindInf_GetVelocity() in InflowWindMod.f90.
I call RtHS().
I read QD2T.

Secondly, I run a simulation with FAST. In this simulation the control (generator torque as well as pitch angle) is determined by an optimization based on the reduced model. This time a turbulent wind read from a file *.wnd is used. For this simulation I also need VSControl = 2 and PCMode = 1.

Best regards,