5MW fatigue DEL calculation

Hi,everyone

I am Yuan, from University of Connecticut. :stuck_out_tongue:

Now I am using MLife to calculate the short term fatigue DEL of flapwise root moment and LSS Torque of NREL 5MW wind turbine for my current research. Some problems occur when I use MLife, I am wondering maybe some parameters I set in the input file of MLife are wrong. But I am not familiar with the theory of fatigue DEL calculation. Could someone help me work out it? :stuck_out_tongue:

The error information and MLife input file is listed below.

[size=150]The error in Matlab says:[/size]

====================================================================================
For colon operator with char operands, first and last operands must be char.

Error in read_value (line 77)
for i=1:NumVals

Error in read_settings (line 424)
FileInfo.TimeChan = cell2mat( read_value( ParamFile{1}{PLine+1}, ‘integer’, 1, ‘TimeChan’, ‘The channel
containing time.’, fidEcho ) );

Error in mlife (line 244)
[ Statistics, FileInfo, Fatigue ] = read_settings( settingsFile, dataDirectory );

[size=150]The MLif input file is as follows:[/size]

----- MLife version 1.0 Input File -------------------------------------------
Test #01 Baseline
----- Job Options ------------------------------------------------------------
true EchoInp Echo input to .echo as this file is being read.
true StrNames Use channel names following a “$” instead of numbers when specifying channels in this input file.
false OutData Output modified data array after scaling and calculated channels. (currently unavailable)
“%10.2e” RealFmt Format for outputting floating-point values.
“Test01” RootName Root name for output files.
----- Input-Data Layout ------------------------------------------------------
5 TitleLine The row with the file title on it (zero if no title is available).
0 NamesLine The row with the channel names on it (zero if no names are available or are specified below).
0 UnitsLine The row with the channel units on it (zero if no units are available or are specified below).
9 FirstDataLine The first row of data.
11 NumChans The number of channels in each input file.
ChanTitle ChanUnits Scale Offset PSF_Type NumCols rows of data follow. Title and units strings must be 10 characters or less.
“Time” “(sec)” 1.0 0.0 0
“WindVxi” “(m/sec)” 1.0 0.0 0
“WindVyi” “(m/sec)” 1.0 0.0 0
“WindVzi” “(m/sec)” 1.0 0.0 0
“GenPwr” “(kW)” 1.0 0.0 0
“GenTq” “(kN穖)” 1.0 0.0 0
“BldPitch1” “(deg)” 1.0 0.0 0
“RotSpeed” “(rpm)” 1.0 0.0 0
“GenSpeed” “(rpm)” 1.0 0.0 0
“RootMyb1” “(kN穖)” 1.0 0.0 0
“LSShftTq” “(kN穖)” 1.0 0.0 0
----- Calculated Channels ----------------------------------------------------
0 NumCChan The number calculated channels to generate.
1234567890 Seed The integer seed for the random number generator (-2,147,483,648 to 2,147,483,647).
Col_Title Units Equation Put each field in quotes. Titles and units are limited to 10 characters. NumCChan rows of data follow.

----- Load Roses -------------------------------------------------------------
0 nLoadRoses The number of load roses to generate.
Rose Name Units Channel1 Channel2 nSectors
----- Time and Wind Speed ----------------------------------------------------
1 TimeChan The channel containing time.
2 WSChan The primary wind-speed channel (used for mean wind speed and turbulence intensity, 0 for none).
----- Statistics and Extreme Events ------------------------------------------
true DoStats Generate statistics of all the channels.
true WrStatsTxt Write the stats to a text file?
false WrStatsXLS Write the stats to an Excel file?
0 NumSFChans Number of channels that will have summary statistics generated for them.
1 SFChans List of channels that will have summary statistics generated for them. Must number NumSFChans.
----- Fatigue ----------------------------------------------------------------
2 nFatigueChannels The number of rainflow channels. Next six lines ignored if zero.
0.0 FiltRatio The fraction of the maximum range of each channel used as a cutoff range for the racetrack filter. Use zero for no filter.
630720000 DesignLife Number of seconds in the design lifetime (20 years = 630720000 seconds).
1 Availability Fraction of the design life the turbine is operating when winds are between Vin and Vout
true BinCycles Bin the rainflow cycles?
0.5 UCMult Multiplier for binning unclosed cycles. (0 discards, 1 counts as a full cycle)
true DoShortTerm Compute simple (unweighted) damage-equivalent loads and damage rates.
false DoLife Do lifetime-related calculations?
false DoAggregate Compute a DELs and a damage result based on an aggregate of all the input files (does not use the wind spped distribution)
2 WeibullShape Weibull shape factor. If WeibullShape=2, enter the mean wind speed for WeibullScale.
10 WeibullScale Weibull scale factor. If WeibullShape<>2. Otherwise, enter the mean wind speed.
11.4 WSin Cut-in wind speed for the turbine.
25 WSout Cut-out wind speed for the turbine.
31 WSmax Maximum wind speed value for the wind-speed bins.
2 WSMaxBinSize Maximum width of a wind-speed bin.
true WrShortTermTxt Write short-term results to plain-text files?
false WrShortTermXLS Write short-term resultsto an Excel workbook?
false WrLifeTxt Write lifetime results to plain-text files?
false WrLifeXLS Write lifetime results to an Excel workbook?
10 EquivalentFrequency The frequency of the damage equivalent load (Hz)
true DEL_AsRange true = report DELs as a range value, false = report as a one-sided amplitude
3 DEL_Type 1 = fixed mean, 2 = zero mean, 3 = both
0 GoodmanFlag 0 = no Goodman correction, 1 = use Goodman correction, 2 = compute results with and without Goodman correction
Channel# NSlopes SNslopeLst BinFlag MaxBinWidth/Number TypeLMF LUlt BinWidth not used when BinCycles is false. nFatigueChannels rows of data follow. LUlt >> LMF
$RootMyb1$ 1 12 BW 145.5 494 152000
$LSShftTq$ 1 12 BW 60.0 161 9000
1 nGroups Number of fatigue groups
Group Name NChannels ChannelList
“Basic” 1 1 2
----- Input Files ------------------------------------------------------------
1 FileFormat Format of input files. 1 = FAST ascii, 2 = FAST binary
1 1.1 1.3 1.5 1.7 (Weibull-Weighted Normal Operation: NumNormFiles, PSF1, PSF2, PSF3, PSF4)
“Test01.out”
0 1.1 1.3 1.5 1.7 (Weibull-Weighted Idling: NumIdleFiles, PSF1, PSF2, PSF3, PSF4)
0 1.2 1.3 1.4 1.6 (Discrete Events: NumDiscFiles, PSF1, PSF2, PSF3, PSF4)
==EOF== DO NOT REMOVE OR CHANGE. MUST COME JUST AFTER LAST LINE OF VALID INPUT.

Hello Yuan,

I have managed to run Mlife with customized *.mlif file.
The only change I can see from your *.mlif file is in input- data layout. Mine looks like as follows.
----- Input-Data Layout ------------------------------------------------------
5 TitleLine The row with the file title on it (zero if no title is available).
7 NamesLine The row with the channel names on it (zero if no names are available or are specified below).
8 UnitsLine The row with the channel units on it (zero if no units are available or are specified below).
9 FirstDataLine The first row of data.
39 NumChans The number of channels in each input file.

May be this could help.

Thanks,
Ahmed

Hello Ahmed,

Thanks for your help. The problem is the number of channels does not match what in .out file. I just take a few of them from all the outputs in out.file and it turns out it is not allowable.

Best,
Yuan

Hi,

I am working with the NREL 5MW wind turbine and I am using MLife to calculate the fatigue damage.
I have entered the cut-in and cut-out wind speeds and I have chosen a bin size of 2 m/s in the .mlif-file.
I have a question regarding the maximum wind speed WSmax: How is this wind speed defined for fatigue analysis?
Is it correct that I should calculate turbulent wind fields with TurbSIM for all wind speed bins, that is in the ranges 0 to V_in, V_in to V_out and from V_out to V_max?

Best regards

Jacob K. Pedersen

Dear Jacob,

Yes, your understanding is correct.

WSmax is the highest wind speed for the parked/idling cases that will be processed for fatigue. The IEC 61400-1 wind turbine design standard, if you are using that, specifies that this highest wind speed should equal 0.7 V_ref.

Best regards,

Dear Jason,

Thank you for your help, I have another question:
In Mlife, an availability A variable is in the .mlif file, which, as I understand is defined as the ratio of the time spent producing power to the time parked/idling. I am thinking of determining A by integrating the Rayleigh probability density function with a mean wind speed for the wind turbine class from the cut-in wind speed to the cut-out wind speed, which I think should then give the availability A. Then, as I have understood it, the power production DLC will be “weighted” with A and the idling/parked DLC will be weighted with (1-A) in the fatigue analysis. Does this approach sound ok to you?

BR

Jacob K. Pedersen

Dear Jacob,

Not exactly. The availability in MLife is the fraction of time the turbine is producing power when it should be producing power because the wind speed is between cut-in and cut-out wind speed. That is, if the availability is 1, than all of the time between cut-in and cut-out wind speeds will be spent producing power and the time below cut-in wind speed and between cut-out and the maximum wind speed will be parked/idling. If the availability is 0.5 (heaven forbid!), than half of the time between cut-in and cut-out wind speeds will be producing power, and half of that time, plus the time below cut-in wind speed and between cut-out and the maximum wind speed, will be parked/idling. The math is explained on page 7 of the MLife Theory Manual: nwtc.nrel.gov/system/files/MLife_Theory.pdf.

Best regards,

Dear Jason.

Ok, I will choose a different approach to determining A.
Thanks a lot.

BR

Jacob K. Pedersen

Dear Jason,

In case of ultimate loads analysis, what value should one set for “WSmax” in MExtremes based on IEC 61400-1 3rd ed. ?

Regards,
Yahya

Dear Yahya,

In MExtremes, WSmax is used for binning for binning of the data files and is not used if you are not binning. Please refer to the IEC 61400-1 for the requirements.

Best regards,

Dear Jason,

Many thanks for your reply. Actually yes, I want to use binning for DLCs with turbulent inflow. Is it true that, unlike fatigue, all the wind speeds should be processed for ultimate analysis? Could you also guide me on IEC 61400-1 pls? What are the key words they are using to refer to binning?

Kind regards,
Yahya

Dear Yahya,

I’m sorry, but I don’t understand your questions enough to answer them. What do you mean by “all the wind speeds”?

Best regards,

Dear Jason,

Excuse me for that I was too fast on my questions and my explanations were not enough!
In post process of my data files by MExtremes, I want to use binning for DLCs with turbulent inflow. In MExtremes manual it says that when using BinModel, “the data is placed into wind speed bins in the range, [WSmin, WSmax]. Any data outside this range will not be considered when generating bin-based extremes”. Now my question is that what value should I set for WSmax?

Sincerely,
Yahya

Dear Yahya,

The wind speed range is determined by the DLC e.g. DLC 1.1 (normal operation) is processed from cut-in to cut-out wind speeds – again, see the IEC 61400-1 wind turbine design standard for the requirements.

Best regards,

Dear Jason,
I’m deeply sorry if the answer is already written and I didn’t manage to find it, yet I need to clarify a few things regarding Fatigue and MLife.

First of all, I am working on the 5MW offshore wind turbine by NREL supported on a monopile and I use FAST v7. Since, I already check my structure on a few ULS DLCs, I want to experiment with FLS cases.

So here are my questions with the relevant background:

  1. I do not have enough statistics for wind distribution for the site I am interested in. I only have frequency of a wind occurance (ranged from 0-9 beaufort, with 1 beaufort interval, and 8 wind directions, S, SE, E etc.). So, I can not calculate the WeibullShape and WeibullScale parameters. I came up with two values that seem to be close enough, but I would like to know what is the risk of miscalculating those two parameters and the repercussions of them being way off.

  2. Since IEC standars are hard to find , I only managed to find BS_EN_61400-3_2009 (similar to IEC 61400-3) and I do not have IEC 61400-1. You already stateted, according to IEC 61400-1,that one can check a structure on Fatigue with DLC 1.2, as long as he takes into account at least 6 load cases, with wind speeds between Vin and Vout, with a 2m/s interval. Since my statistics take into account wind speeds larger than Vout and with them I calculated my Weibull parameters, do you suggest doing 6.4, as well?

  3. On DLC 1.2 wind speed are between Vin and Vout with NTM. On DLC 6.4 Vref is required. I What is the Vref of the 5MW wind turbine and what kind of turbulence model is required? Is NTM ok?

  4. If I run DLC 1.2 and 6.4, I find a problem modelling a few load cases. When, I try to model a load case with over 18m/s wind speed at hub height with NTM on TurbSim, during the simulation the wind speed surpasses Vout by far. As you already stated, the wind turbine does not shut down on its own, so one must do it himself. Otherwise the wind turbine produces 5MW even on 30 or 40 m/s wind speeds (somehow?). For the Load cases with 25m/s and more I can park my wind turbine from the start. But what about wind speeds between 18-25 m/s? Shall I let it operate fully? Or should I park it beforehand, since I know that wind speed will surpass Vout on many occasions during the 10 minute simulation?

What are your suggestions for checking my model with fatigue?

Also I have one more question not so important. While I was reading Mrs Ingrid Bye Loken Master Thesis, I found out that using MLife, some structures she checked had a Lifetime damage parameter larger than 1 (meaning the structure failed). Yet, a Lifetime DEL is calculated. What is the meaning of this DEL? The stresses according to this DEL are probably by far not realistic, and would have never happened.

I’m really sorry for the long post and I really look forward to your answer.

Thank you very much in advance,

Best regards

Thanasis Petridis

Dear Thanasis,

Here are my answers to your questions (at least as much as i can):

  1. Sorry, but I don’t think I can answer this question.

  2. With Vin = 3 /s and Vout = 25 m/s, normally a fatigue analysis would involve 11 wind speed bins (of width 2 m/s), each with 6 seeds, for a total of 66 10-minute simulations. Yes, DLC 6.4 can result in additional fatigue damage.

  3. Vref for the NREL 5-MW turbine is 50 m/s (IEC class I). DLC 6.4 uses NTM.

  4. Most wind turbines would not shut down if the wind speed temporarily gusts above Vout. A normal operation shutdown would typically occur in high winds when the wind is sustained above Vout for an extended period of time. For the NREL 5-MW turbine, you could assume this time to be 10 minutes, so, you can simulate DLC 1.2 for all mean wind speeds up to 25 m/s.

A DEL is just a constant-amplitude fatigue load that occurs at a fixed load mean and frequency that produces the equivalent damage as the variable spectrum loads. The equations for lifetime DEL applies whether the lifetime damage is less than, equal to, or greater than unity.

I hope that helps.

Best regards,

Dear Jason,

thank you very much for your immediate response. You’ve been really helpful, but I have a couple questions to fully understand how to proceed.

  1. The 6 seeds refer only to the primary input file for FAST? Or should I try different seeds with TurbSim too? (And finally generating more than 66 10-minute simulations)

  2. Regarding DLC 6.4, shall I use a 2 m/s interval as well, until reaching 0.7*Vref=35 m/s ?

  3. So the total of fast file should be like :
    a) DLC1.2: 4-24 (m/s), with 2 m/s interval, multiplied by 6 different seeds on FAST (66 total)
    b) DLC6.4: 26-34 (m/s), with 2 m/s interval, multiplied by 6 different seeds on FAST (30 total)

  4. For the wind speeds between Vin and Vrated (3-11.4 m/s), what value do you recommend for the initial rotor speed? Maybe a value corresponding to the wind speed examined each time?

All, following the same Weibull distribution, characterized by one Weibull scale and shape factor and taken into account in the same MLife file.

Thank you very much for helping me out.

Best regards,

Thanasis Petridis

Dear Thanasis,

Regarding (1), the seed I mentioned refer to the random seed specified in TurbSim. Normally you’d run 6 seeds per wind speed bin i.e. run both TurbSim and FAST 66 times for DLC 1.2.

Regarding (2) and (3), yes I agree with your interpretation.

Regarding (4), I generally recommend that you set the initial rotor speed and blade-pitch angle to their mean (expected) value based on the mean hub-height wind speed. For the NREL 5-MW baseline turbine, these are documented in Figure 9-1 of the specifications report: nrel.gov/docs/fy09osti/38060.pdf.

Best regards,

Dear Jason,

everything is now settled. Thank you very much for everything and for your immediate responses.

So the seeds in FAST can be fixed, yet in TurbSim should take at least 6 different.

Best regards,

Thanasis Petridis

Dear Thanasis,

Sorry, for some reason I thought you were modeling the land-based NREL 5-MW baseline turbine. I reread your first post and see that you are actually simulating the NREL turbine atop the monopile. In this case, in addition to the seed in TurbSim, you should also specify the seed in FAST’s HydroDyn module to ensure that each simulation used different wave time series.

Best regards,