The function is great.
Btw I've got a question: trying to cross-check results coming from your function and those from another software on the same time series, leads to different rfc. Within your function, half cycles are untreated (I mean being rounded up/down); the mismatch with the other software is located exactly there. Do you know any method to further process half cycles?
I am applying this algorithm to a list of State of Charge (in %) of a battery which ranges from 0% to 100%. I think applying this algorithm should return the number of cycles (Y axis) for each range of SOC values (from 0% 5%, then from 5% to 10% and so on) but I am getting really big values for the amplitude (from 0 to 4,000).
Could you please explain if it is possible to get ranges or it just finds mean values and amplitudes?
Thank you for your advice, I got the results I wanted from rfdemo1. But I don't know how to get similar results like 'amplitude, mean, number of cycles (cycle or half cycle), begin time of extracted cycle or half cycle, period of a cycle' using rfdemo2. I need to input a lot of data and get the results like list in rfdemo1 using input data like vibrations. Thank you a lot.
thank you for your sharing, and there is a question that how can I get the "cycle_begin_time, cycle_period_time" in the "rainflow.c". And how can I make a 'rfhist' input, the format of 'rfhist'.
I have a small question. I am currently working on a suspension model made in solidworks and i have translated it to simmechanics.i need to calculate the amount of fatigue present .i have been given a load cycle vs time and want to implement it .How can i do it here?
I have the same issue of Shashank (23Feb2011). And seems that rfdemo1 calls to rainflow.m that is the description.
Furthermore folloing the instructions I cannot check a simple input like b in the example below. I cannot run the rainflow. I'm not skilled yet on matlab maybe I miss something. Please could orientate us a little bit? thanks
??? Attempt to execute SCRIPT rainflow as a function.
Error in ==> rfdemo1 at 35
-2 1 -3 5 -1 3 -4 4 -2
??? Attempt to execute SCRIPT rainflow as a function.
I downloaded the files and tried to run some numbers.
My input was [4 12 7 14 -5 4 -9 7 -1 16].
According to the rainflow method I am familiar with, I expected to get somthing similar to
[4 14 7 12 -5 4 -7 16 -1 7].
Instead, I got the matrix rf with Mean, Amp. , Half/full cycle, begining time and cycle period.
My question is, is it possible to get the result I expected,
i.e. [4 14 7 12 -5 4 -7 16 -1 7].
The problem is the matrices are of different sizes and are really huge.Like I have 5 test cycles and x axis data from each cycle of different durations.I cannot add all the cycles as it is huge amount of data,so now can you suggest me how do I take a rainflow of all the cycles combined in one result?
Hi Dilip Rao,
You can add the matrices without problems if they have the same size: m=m1+m2+m3. I don't know what you need exactly to do, but be careful while adding matrices from different sensors - maybe you have multiaxial fatigue problem? I this case use some theoretical criteria for obtaining equivalent uniaxial fatigue loading/matrix.
I would like to know if I have a lot of rainflow matrices,how do I add them.
ex. I have data from 3 axes of a sensor and from 3 sensors and I just need one rainflow matrix for all this data.The data for each axis and each sensor is huge.so I would like to know how do I get just one rainflow matrix for all the data?
I didn't phrase my question correctly, I understand the RFHIST counts cycle amplitudes and not stress ranges now, but what I am trying to figure out is if my rainflow function outputs - rf(3,:) Number of cycles (0.5 or 1.0) and my RFHIST syntax is [no,xo]=rfhist(rf,30) how does the program determine the bin locations or is rf evenly distributed over 30 bins or are the bin locations associated with the number of extracted cycles? Can you please elaborate on this.
Might someone have a data set, with a known answer, to be able to run and understand clearly what the concerns cited above are. Or at least to help understand the nature of what has some concerned about. I want to be sure to not misunderstand something and I don't have data that can help me get to that point. Thanks very much in advance.
First of all, thanks for your quick response in the previous comment I made. I'va keep on working on fatigue testing and I've found another problem.
I am analysing some test data with this algorithm but another research center is analysing the same data and they are reaching diferent results. They are using the algorithm of Downing and Socie "Simplified Rainflow Counting method".
Is it normal that we obtain different results because of that?
I'm working on fatigue testing and I'm using the rainflow algorithm with long and quite complex signals.
reading thought rfdemo2 I've noticed that the function
sig2ext is called twice. Is that necesary?
I will be gratefull of any help
First of all, let me compliment for this excellent piece of software!!
The ASTM standard E 1049 -85 (2005) defines two distinct rainflow algorithms:
A) 5.4.4 "Rainflow counting" (that produces half-cycles)
B) 5.4.5 "Simplified rainflow counting for repeating histories" (that never produces half-cycles)
this is probably the answer to questions like the one of Ray Beale. Now I am interested in the "B" method, and I am asking the author: which algorithm is implemented here? my guess is the "A" method, with half cycles.
Second question: is there some hope to extend this function to be able to compute, optionalyy, also the B way?
If necessary I would be glad to provide more info (namely the text of the ASTM standard).
Best regards and thaks a lot for sharing!
Sampathkumar- Amplitude is always half the range, by definition.
I am finding many half-cycles in my rfc output of a long time history. Another method I've used produces full cycles. When comparing the two methods for the same time history, the histograms have the exact same shape but your method is shifted to the right due to the unpaired half cycles. Both claim to be ASTM standard. Any idea why?
I have temperature data over time and derive a fatigue model. Using this rainflow counting, I want to get data with three parameters, which are Max_termperature, each cycle time, amplitude (max-min). Is anyone knowing if this package can provide this kind of data? I appreciate.
On Elena Menéndez's question above, is there an answer. I am finding that amplitude is half the range as well in this method.? Anyone knows why?
"I have noticed one important difference in the rainflow when compared with the rutine used by the software Bladed. The latter always assigns one full cycle to the range (max-min) of the timeseries. However, your rutine assigns 0.5 cycles to this range. Which one is more accurate? "
I found out that my first error came from a conflict caused by a similar filename and function name (Rainflow.m/rainflow) But now my error is:
??? Undefined function or method 'rainflow' for input arguments of type
Error in ==> testinterpolasjon at 19
rf = rainflow(ext,exttime);
I have noticed one important difference in the rainflow when compared with the rutine used by the software Bladed. The latter always assigns one full cycle to the range (max-min) of the timeseries. However, your rutine assigns 0.5 cycles to this range. Which one is more accurate?
19 Sep 2008
Does anyone know how to get output data from rfdemo1? Because i noticed that rainflow.m is not accurate with larger amount of data. Thank you
12 Sep 2008
04 Aug 2008
great tool. Detail doc, easy to use. Excelent.
09 Jul 2008
18 Jun 2008
08 Apr 2008
I used this toolbox but the result seems not correct....
07 Jan 2008
11 Dec 2007
I have been looking for materials that treat the subject of rainflow counting methods for fatigue analysis of structures.
04 Nov 2007
methode de rainflow par matlab
27 Oct 2007
19 Sep 2007
Do you have a commented version of the C code? I find it difficult to follow.
11 Sep 2007
11 Aug 2007
I'm master student, my thesis about fatigue in variable amplitude, random loaing. Have you a solution. Thank You
01 Aug 2007
I am taking Master course in Brazil. My research is on fatigue. I have difficulties to understand the input data for your program Rainflow Couting Method. I need a tutorial to the program and/or an input file example. Can you help me?
Thanks for attention
31 May 2007
Excellent code, very useful. I validated and understood it through trials with small data sets before moving onto huge force-time curves. Make sure that you understand that amplitude is in terms of a sinusoid, therefore the magnitude of the peaks are actually twice the amplitude indicated. Also, Half cycles can be a bit confusing at first, since this is not a "closed loop" rainflow counting method, you just have to combine the half cycles.
21 Mar 2007
i have 1 nonlinear equation with 2 unknowns, can u give the example solution using matlab??..this is my equation is
14 Mar 2007
thanks for the advice..but im still got problem coding in Matlab, because i cannot get the peak and valley reversal first..my data length is 32000 and sampling frequency is 200...can u give me some idea...
05 Feb 2007
muhd rafiq zulkiffli
show the code for rain flow cycle counting
01 Feb 2007
Hi Rafiq Zulkiffli,
Some years ago I wrote the rainflow function in MATLAB Script (m-file). Unfortunately the function worked very, very slow, because many iterations in the rainflow algorithm appears. So, I decide to create mex function where the time consuming iterations realized faster. Be sure, with ?the soft code? you cant count the cycles in sensible time. Look on the ?rainflow.c? file and try to understand the C code lines.
Best regards, Adam Nieslony
28 Jan 2007
need to show the soft code
15 Dec 2006
A very useful tool! It is fast, robust and did just what I needed; no more, no less.
14 Sep 2006
10 Jul 2006
This is an excellent tool. I made a couple of short example problems to understand the output and once I did that I'm using the program at work. The rfdemo2 code is especially cool for showing others how rainflow counting works.
10 May 2006
This is very best in lot of applications.
25 Jan 2006
Functionally this program is excellent, and produces results that are consistent with the ASTM standard. As with other users, it took me a while to realise that amplitude means amplitude and not range, but that's my fault for not reading it properly. I would appreciate some more explanation of the meaning of the half-cycles which I haven't encountered in other software, as I'm not sure how best to process these.
24 Jan 2006
Dr. Nieslony has developed a Rainflow counting application which we used to validate our impemtation of the ASME standard.
Once you know that his cycle size is peak and not peak to peak you can adjust (X2) and then it worked 100%.
Bins boundaries are based on the midpoint between succesive bin midpoints. This caused some juggling to match our method which specifies bin edge directly.
Otherwise, it was accuarate and easy to modify for graphing and printouts.
I am certain that had I been able to read it the Polish comments would have further added to my understanding of the code.
26 Nov 2005
Once the entry vector is too large, it doesn't work. Who can help me?
24 Nov 2005
21 Sep 2005
This program is perfect to me... thanks..
08 Sep 2005
14 Mar 2005
- the version matlab does not go
- I need the module mex.h
14 Jan 2005
This is a very fine application, not to mention the latest additions. We have used the the rainflow in a stay bridge for fatigue monitoring on critical structures.
19 Dec 2004
01 Dec 2004
Found teh demo quite informative. Would be helpful if the rainflow results could be arranged in a matrix of cycle counts, with the rows representing the mean, and the columns representing the ranges. Also be helpful if the "leftover" 1/2 cycles could be combined into full cycles and included in the matrix.
01 Jun 2004
15 Apr 2004
i want to know that the information about the counting method
29 Jan 2004
Program works well; does not produce histograms, you need to extract these yourself (watch out for half-cylcles).
Checked against "Simple rainflow counting algorithms" (1 pass methdo), Downing and Socie; got the same results.
24 Jul 2003
Lang naar gezocht, maar nu heb ik het dankzij ZBO!