Pitch rate in Fast v7

Good afternoon,

After some simulations in Fast v7, and analyzing the results, I’ve noticed that pitch rate appears to be limited around a value of 2 deg/s (at least in my model). Looking at pitch control input file, I couldn’t see any slot to change this directly. Just to make a test, I slightly changed the values of the PID controller (to mantain the stability) and analyzing the results I could notice that the pitch rate was more or less the same.

How can I make a model with a faster pitch rate? I have seen that in Fast v8 this value is specified in servodyn/discon.dll, but how can I change this in Fast v7?

Thank you in advance.
Best regards.

Marcos

Dear Marcos,

In FAST v7, most control settings are user-defined. Are you using a controller that NREL has supplied–if so, which one?

Best regards,

I’m using the Pitch.ipt file that is attached in the installation package, with the following parameters:

[i] -------------------------------------------------------------------------
Speed controller for ADAMS WindPACT 15A1001 model April, 2002.
3 CntrlRgn - Control region {2 = power control, 3 = speed control}
11 NCSNT - Number of constants used in controls
-1.0 CNST(1) - Gain on TF 1
12.2 CNST(2) - Rotor speed set point, RPM
0.3 CNST(3) - Integrator anti-windup gain
0.0 CNST(4) - Minimum pitch angle, deg
90.0 CNST(5) - Maximum pitch angle, deg
0.025 CNST(6) - Time interval for pitch control, sec ( >= DT )
0.0454 CNST(7) - Pitch angle at start of gain scheduling, (must be > 0) rad
0.5 CNST(8) - Pitch angle at end of gain scheduling (GSPit2>GSPit1), rad
0.257 CNST(9) - Power law gain sched. coefficient
-0.500 CNST(10) - Power law gain sched. exponent
0 CNST(11) - Write pitcntrl.plt file? 0=no, 1=yes

1 Order of tf #1 (highest power of s), input=Rotor speed (RPM), output=Integral Pitch demand (deg)
0.585 0.0 Numerator coefficients (Order+1 values, ascending powers of s)
0.0 0.33 Denominator coefficients (Order+1 values, ascending powers of s)

1 Order of tf #2 (highest power of s), input=Rotor speed (RPM), output=PD Pitch demand (deg)
0.00 0.585 Numerator coefficients (Order+1 values, ascending powers of s)
0.0 1.00 Denominator coefficients (Order+1 values, ascending powers of s)

0 Order of tf #3, input=Tower accel, output=pitch (deg) (Use 0 to not include tower feedback cntrl)
9.64 1.4 Numerator coefficients (Order+1 values, ascending powers of s)
0.358 1.0 Denominator coefficients (Order+1 values, ascending powers of s)

0 Order of tf #4, input=Pitch demand(deg), output=pitch (deg) (Use 0 for ADAMS to not include actuator)
85.696 0.0 0.0 Numerator coefficients (Order+1 values, ascending powers of s)
85.696 14.812 1.0 Denominator coefficients (Order+1 values, ascending powers of s)

[/i]

I use this kind of control because when I used the discon routine I had some instabilities.

Thank you for your quick response.
Best regards.

Marcos

Dear Marcos,

The Pitch.ipt file is used by Craig Hansen’s pitch controller, PitchCntrl_ACH.f90, which is more of an example than an officially supported NREL-supplied routine. It is difficult to support questions on PitchCntrl_ACH.f90 now that Craig Hansen has retired. The only documentation of PitchCntrl_ACH.f90 that I’m aware of is in Appendix E of the WindPACT Rotor Design Study Report: nrel.gov/docs/fy06osti/32495.pdf. I’m not aware that this controller has a specific pitch-rate limit, as I can’t find it in the documentation or source code.

Best regards,

Thank you for your response. I will reread it.

Best regards,
Marcos

Dear Jason,

I am running a slow rampup test of the OC3-Hywind model in FAST v7.02 and FAST 8.16.
I get different time series as shown in the attached picture(FAST7 left, FAST8 right). I think its a controller issue.

Settings:
FAST 7.02
0 YCMode - Yaw control mode {0: none, 1: user-defined from routine UserYawCont, 2: user-defined from Simulink/Labview} (switch)
9999.9 TYCOn - Time to enable active yaw control (s) [unused when YCMode=0]
1 PCMode - Pitch control mode {0: none, 1: user-defined from routine PitchCntrl, 2: user-defined from Simulink/Labview} (switch)
0.0 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0]

FAST 8.16
5 PCMode - Pitch control mode {0: none, 3: user-defined from routine PitchCntrl, 4: user-defined from Simulink/Labview, 5: user-efined from Bladed-style DLL} (switch)
0 TPCOn - Time to enable active pitch control (s) [unused when PCMode=0]
5 VSContrl - Variable-speed control mode {0: none, 1: simple VS, 3: user-defined from routine UserVSCont, 4: user-defined from Simulink/Labview, 5: user-defined from Bladed-style DLL} (switch)
2 GenModel - Generator model {1: simple, 2: Thevenin, 3: user-defined from routine UserGen} (switch) [used only when VSContrl=0]

I use the same Discon-Controller (renamed to Discon.dll for FAST 7) and the compiled version of FAST 7 from wind.nrel.gov/public/jjonkman/NR … Bsline5MW/

Do you have an idea where the difference comes from?

Best regards,

Simon

Dear Jason,

I think it was only a scaling problem of the graphs so consider my question as answered.

Best regards,

Simon

Dear Jason,

I have a fellow up question:

In the Picture attached the steady wind results from FAST 7 and 8 are shown. GenTq and GenPwr have a big difference. I checked for different loss definitions but I don’t see a difference. Can you help with identify the reason?

Best Regards,
Simon

FAST7 Aerodyn
NREL 5.0 MW offshore baseline aerodynamic input properties; Compatible with AeroDyn v12.58.
SI SysUnits - System of units for used for input and output [must be SI for FAST] (unquoted string)
BEDDOES StallMod - Dynamic stall included [BEDDOES or STEADY] (unquoted string)
USE_CM UseCm - Use aerodynamic pitching moment model? [USE_CM or NO_CM] (unquoted string)
DYNIN InfModel - Inflow model [DYNIN or EQUIL] (unquoted string)
WAKE IndModel - Induction-factor model [NONE or WAKE or SWIRL] (unquoted string)
0.000005 AToler - Induction-factor tolerance (convergence criteria) (-)
PRANDtl TLModel - Tip-loss model (EQUIL only) [PRANDtl, GTECH, or NONE] (unquoted string)
PRANDtl HLModel - Hub-loss model (EQUIL only) [PRANdtl or NONE] (unquoted string)
“Wind\Rampup_3_15.wnd” WindFile - Name of file containing wind data (quoted string)
90.0 HH - Wind reference (hub) height [TowerHt+Twr2Shft+OverHang*SIN(ShftTilt)] (m)
0.0 TwrShad - Tower-shadow velocity deficit (-)
9999.9 ShadHWid - Tower-shadow half width (m)
9999.9 T_Shad_Refpt - Tower-shadow reference point (m)
1.225 AirDens - Air density (kg/m^3)
1.464E-5 KinVisc - Kinematic air viscosity [CURRENTLY IGNORED] (m^2/sec)
0.02479 DTAero - Time interval for aerodynamic calculations (sec)
8 NumFoil - Number of airfoil files (-)

FAST 8 Aerodyn:
------- AERODYN v15.03.* INPUT FILE ------------------------------------------------
NREL 5.0 MW offshore baseline aerodynamic input properties.
====== General Options ============================================================================
False Echo - Echo the input to “.AD.ech”? (flag)
“default” DTAero - Time interval for aerodynamic calculations {or “default”} (s)
1 WakeMod - Type of wake/induction model (switch) {0=none, 1=BEMT}
2 AFAeroMod - Type of blade airfoil aerodynamics model (switch) {1=steady model, 2=Beddoes-Leishman unsteady model}
2 TwrPotent - Type tower influence on wind based on potential flow around the tower (switch) {0=none, 1=baseline potential flow, 2=potential flow with Bak correction}
True TwrShadow – Calculate tower influence on wind based on downstream tower shadow? (flag)
True TwrAero - Calculate tower aerodynamic loads? (flag)
False FrozenWake - Assume frozen wake during linearization? (flag) [used only when WakeMod=1 and when linearizing]
====== Environmental Conditions ===================================================================
1.225 AirDens - Air density (kg/m^3)
1.464E-05 KinVisc - Kinematic air viscosity (m^2/s)
335 SpdSound - Speed of sound (m/s)
====== Blade-Element/Momentum Theory Options ====================================================== [used only when WakeMod=1]
2 SkewMod - Type of skewed-wake correction model (switch) {1=uncoupled, 2=Pitt/Peters, 3=coupled} [used only when WakeMod=1]
True TipLoss - Use the Prandtl tip-loss model? (flag) [used only when WakeMod=1]
True HubLoss - Use the Prandtl hub-loss model? (flag) [used only when WakeMod=1]
True TanInd - Include tangential induction in BEMT calculations? (flag) [used only when WakeMod=1]
True AIDrag - Include the drag term in the axial-induction calculation? (flag) [used only when WakeMod=1]
True TIDrag - Include the drag term in the tangential-induction calculation? (flag) [used only when WakeMod=1 and TanInd=TRUE]
“Default” IndToler - Convergence tolerance for BEMT nonlinear solve residual equation {or “default”} (-) [used only when WakeMod=1]
100 MaxIter - Maximum number of iteration steps (-) [used only when WakeMod=1]
====== Beddoes-Leishman Unsteady Airfoil Aerodynamics Options ===================================== [used only when AFAeroMod=2]
2 UAMod - Unsteady Aero Model Switch (switch) {1=Baseline model (Original), 2=Gonzalez’s variant (changes in Cn,Cc,Cm), 3=Minemma/Pierce variant (changes in Cc and Cm)} [used only when AFAeroMod=2]
True FLookup - Flag to indicate whether a lookup for f’ will be calculated (TRUE) or whether best-fit exponential equations will be used (FALSE); if FALSE S1-S4 must be provided in airfoil input files (flag) [used only when AFAeroMod=2]

Dear Simon,

I’m not sure that this is the cause of the differences you are seeing, but you certainly have different aerodynamic options set between your FAST v7 and v8 models. To make the FAST v7 model more like v8, change DYNIN to STEADY and WAKE to SWIRL in the AeroDyn model of FAST v7, and set TwrShadow = TwrAero = False in the AeroDyn model of FAST v8. If that does not yield a better comparison, I would expect differences in the controller or other settings.

Best regards,

Dear Jason,

thank you very much, with the settings changed now the graphs fit better (see pic1). But there is still a small difference.

Now I compared the Power Coefficient and TSR (Pic2) for constant RtSpeed = 12.1rpm and constant BldPitch = 0° for a rampup from 5 to 16 m/s Windspeed.
As you can see Cp reaches higher values with FAST 8 (which agree well with Bladed Output) when compared with FAST 7.
Is there more I need to look at?
The Airfoils should be the same as these are not touched after download.

I set GenDOF to flase and PCMode to 0 to get constant inputs for Rtspeed and BldPitch.

Best Regards,
Simon


Dear Simon,

I would normally expect a closer agreement between FAST v7 and FAST v8 models that are set up to consistently. However, I’m not sure I can venture a guess as to what is set differently between your models.

Best regards,

Dear Jason,

can you tell me how RtAeroCp and Rotcp (or RotPwr) in FAST 8.16 is calculated compared to Rotcp (or RotPwr) in FAST 7?

Best regards,

Simon

Dear Simon,

RtAeroCp in AeroDyn v15 of FAST v8 is calculated as follows:

RtAeroCp = T_Aeroomega/(0.5AirDensRtAreaV_RelDiskAvg^3),

where:
T_Aero = the torque generated by integrating the applied aerodynamic loads across the rotor
omega = rotor rotational speed
AirDens = air density
RtAero = rotor swept rotor
V_RelDiskAvg = relative wind speed between ambient wind and structure velocity normal to the disk and averaged across the disk

RotPwr is the same between FAST v8 and FAST v7, calculated as follows:

RotPwr = T_LSShft*omega,

where:
T_LSShft= the reaction torque within the low-speed shaft (includes applied aerodynamic loads and inertial effects)

RotCp is not an output of FAST v8. In FAST v7, RotCp was only an estimate, calculated as follows:

RotCp = RotPwr/(0.5AirDensRtArea*V_DiskWind^3),

where:
V_DiskWindHub = ambient wind speed at hub normal to the disk

I hope that helps.

Best regards,