You are on page 1of 17

ASTM E1049-85 C#

simxpert
2014-7-21

Email :smxpert@sina.com

QQ:

......................................................................................................................... 1
. .................................................................................. 1
2.1 .................................................................................. 1
2.2......................................................... 2
2.3.4 ............................................................. 3
2.3.1 ....................................................................................................... 3
2.3.2 4 ....................................................... 4
2.4 .................................................................................... 5
2.5 ...................................................................... 5
2.6 ................................................................................................... 5
C# .............................................................................................. 5
1.MR ............................................................................................................. 6
2.1 ....................................................................................................... 7
2.2 ....................................................................................................... 7
C# Matlab .............................................. 8
3.1 Matlab ....................................................................................... 8
..................................................................................................................... 9
4 ....................................................................... 11
1.C#.............................................................................. 15

Email :smxpert@sina.com

QQ:

II

ASTM E1049-85 C#

ASTM E1049-85

C# Matlab
Matlab
C#
C# matlab

.
()

2.1

matlab 10000

Email:smxpert@sina.com QQ:

2.2

1
()

1.
2 a->b->c->d
b,c d->e->f e
a,d,f,g
3

2.

3.

Email:smxpert@sina.com QQ:

2.3.4
2.3.1
4 3
->-> ->->

3. 4
1).
4
4 4.

4.
4

5.

a) d b d>=b
b) c a c>=a
Email:smxpert@sina.com QQ:

4 2,3,4
2d b a);
3c a b)
4c d a) b)

(d b)c a
2)

6.

a) d b d<=b
b) c a c<=a

(d b)c a

2.3.2 4
2.3.1 4

4
1 4 n1,n2,n3,n4

1) n1,n2,n3,n4 (n2+n3)/2,
abs(n3-n2)/2 n2,n3 n1
n1,n4,n5,n6
2) n1,n2,n3,n4 n2
n2,n3,n4,n5

1) 4

Email:smxpert@sina.com QQ:


2)
ASTM 1),2) 2)

2.4

N G1,G2,GN
(G1, G2),( G2, G3),,( Gi , Gi+1),.,( GN-1, GN)
(Gi +Gi+1)/2 abs( Gi -Gi+1)/2
0.5

2.5

2.6

Nx3
M1 A1 n1
M2 A2 n2
.
Mi Ai ni
..
MN AN nN
(Mi ,Ai ,ni )(Mean) Mi ,(Amplitude) Ai ,
ni (ni 0.5
0.5,1,1.5,2,2.5)Range
Range Amplitude 2

C#
C# MR RFCout
MR RFCount

Email:smxpert@sina.com QQ:

1.MR
MR
M Mean valueR () Range
Range Amplitude
MR 3 ,sMean,sRange,fCount

public class

MR

{
public

double sMean;

public double sRange;


public

double fCount;

public MR(double Mean, double range,double

Count)

{
sMean = Mean;
sRange = range;
fCount = Count;
}
}

2.RFCount
RFCount
public class RFCount
{
public LinkedList<double> m_data; //store the peak and valley points;
public LinkedList<MR> m_result; //store the calculated stress cyles;
public static double TOL = 1.0e-6;

public void GetDataFromArray(double[] array)


public void GetDataFromTextFile(string strFileName)
public void GetPVPoints()
protected bool ScanForCyle()
public void SearchCyle()
public void FindHalfCyle()
public void CyleCombine(double EPS)
protected bool IsFullCyle(LinkedListNode<double> n1, LinkedListNode<double> n2,
LinkedListNode<double> n3, LinkedListNode<double> n4)
protected bool IsInvalidPoint(LinkedListNode<double> n1, LinkedListNode<double> n2,
LinkedListNode<double> n3)
protected bool IsSameCyle(LinkedListNode<MR> mr1, LinkedListNode<MR> mr2, double EPS)
public void

WriteResultToFile(string strFileName)

Email:smxpert@sina.com QQ:

2.1
RFCount:
public LinkedList<double> m_data;
public LinkedList<MR> m_result;
public static double TOL = 1.0e-6;
LinkedList

m_data
double
m_result
MR
TOL:1.0e-6

2.2
public void GetDataFromArray(double[] array)
public void GetDataFromTextFile(string strFileName)

GetDataFromArray()

GetDataFromTextFile()
public void GetPVPoints()
protected bool ScanForCyle()
public void SearchCyle()
public void FindHalfCyle()
public void CycleCombine(double EPS)

GetPVPoints()(Get Peak and Valley points)


,
m_data
protected bool ScanForCyle()
4()
public void SearchCyle()
ScanForCyle()

public void FindHalfCycle()


Email:smxpert@sina.com QQ:

ScanForCycle()

public void CycleCombine(double EPS)


4EPS

public void WriteResultToFile(string strFileName):

C# Matlab
matlabC#
C#1

3.1 Matlab
Matlab
clc
clear all
lengths=20;
s=10*randn(lengths,1)+rand(lengths,1);//
s=round(s);//
save data.txt s ascii //C#
% or load the signal from file --> s=my_signal;
tp=sig2ext(s); //
rf=rainflow(tp); //Matlab
rf(1,:)=rf(1,:).*2 //2rangeC#
tp=tp' //

Email:smxpert@sina.com QQ:


1
tp:15
rf:matlab
Matlabrfrange
;
Matlab

C#

C#matlabrange

Email:smxpert@sina.com QQ:

2
Matlab

C#

Email:smxpert@sina.com QQ:

10

4
134

1
-15

2
7

3
-18

4
6

5
-7

6
14

7
-5

8 9
10 -8

10
8

11
-2

12
17

13
7

4
Step1: 14114
(1,2,3,4)4
42
Step2: 24(2,3,4,5)
3
Step3: 34(3,4,5,6),
(4,5)Range=abs(5-4
)=13M=(6+(-7))/2=-0.5Count=1
RMC=(13,-0.5,1)
4,5344,5
(3,6,7,8)3(4,5
)6
Step4:64(6,7,8,9)

Range=abs(7-8)=abs(-5-10)=15;M=(7+8)/2=(-5+10)/2=2.5,
Count=1RMC=(15,2.5,1);
Email:smxpert@sina.com QQ:

11

7,864(6,9,10,11)
69.
Step5:94(9,10,11,12)
Range=abs(8-(-2))=10;M=(8+(-2))/2=3Count=1RMC= (10,3,1)
10,11944

(4,5)(7,8)(10,11)(4,5)
3,61,2,3,6,9,12,13(
)

Step6:414(1,2,3,6)
(1,2,3,6)2
Step7:24(2,3,6,9),(2,3,6,9)
3.
Step8:34(3,6,9,12)(3,6,9,12)
(6,9)Range=abs(6-9)=abs(14-(-8))=22;M=(6+
8)/2=(14+(-8))/2=31RMC=(22,3,1)
(6,9)343,12,133
4
81,2,3,12,13(
6,93,12)

Email:smxpert@sina.com QQ:

12

Step9: 5414(1,2,3,12)
2.
Step10:24(2,3,12,13)

4
Step11:(1,2,3,12,13)

(1,2)Range=abs(-15-7)=22;Mean=(-15+7)/2=-4,
Count=0.5;RMC=(22,-4,0.5)
(2,3):Range=abs(7-(-18))=25;Mean=((7-18)/2=-5.5,count=0.5
RMC=(25,-5.5,0.5);
(3,12):Range=abs(-18-17)=35;Mean=(-18+17)/2=-0.5;count=0.5;
RMC=(35,-0.5,0.5)
(12,13):Range=abs(17-7)=10;Mean=(17+7)/2=12;count=0.5;
RMC=(10,12,0.5);
Step12:

step

Email:smxpert@sina.com QQ:

13

(13,-0.5,1)
(15,2.5,1);
(10,3,1)
(22,3,1)
(22,-4,0.5)
(25,-5.5,0.5);
(35,-0.5,0.5)
(10,12,0.5);
C#

Matlab

C#Matlab

Email:smxpert@sina.com QQ:

14

1.C#
class Program
{
static void Main(string[] args)
{
RFCount rf;
rf = new RFCount();
//
rf.GetDataFromTextFile(@"E:\VS_JOB\TestRF\rainflow\data.txt");
rf.GetPVPoints();//

//
Console.WriteLine("The peak valley data points:");
foreach (double e in rf.m_data)
{
Console.Write(e);
Console.Write("

");

}
Console.WriteLine();
Console.WriteLine("Rain flow count results:");
Console.WriteLine("stress range

mean sress

counts");

rf.SearchCyle();//4
rf.FindHalfCyle();//
rf.CycleCombine(0.01);//

//
foreach (MR mr in rf.m_result)
{
Console.Write("

"); Console.Write(mr.sRange);

Console.Write("

"); Console.Write(mr.sMean);

Console.Write("

"); Console.Write(mr.fCount);

Console.WriteLine();
}
Console.Read();
}
}

Email:smxpert@sina.com QQ:

15

You might also like