最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英語でご覧になれます。

rainflow

疲労解析のためのレインフローカウント

説明

c=雨流(x)はASTM E 1049標準に従って,負荷時間履歴のサイクルカウントxを返します详细。は,アルゴリズムを参照してください。

c=雨流(x,fs)は,レートfsでサンプリングしたxのサイクルカウントを返します。

c=雨流(x,t)は,tに格納されている時間値でサンプリングしたxのサイクルカウントを返します。

c=雨流(XT)は,MATLAB®时间表XTに格納されている時間履歴のサイクルカウントを返します。

c=雨流(___,' ext ')では,指定された “反転”(ピークと谷)のベクトルとして时间履歴を指定します。“ext”は,前の構文のいずれかで使用できます。

(c,rm,rmr,rmm)= rainflow (___)はレインフロー行列rm2つのベクトルrmrrmmを出力します。これらのベクトルには,それぞれにrmの行と列のヒストグラムビンエッジが含まれます。

(c,rm,rmr,rmm,IDX)= rainflow (___)は,入力で識別された反転の線形インデックスも返します。

出力引数を設定せずに雨流(___)を使用すると,現在の图に負荷の反転とレインフロー行列ヒストグラムがプロットされます。

すべて折りたたむ

既知の等間隔の反転をつなぎ,半周期の正弦波で構成される,負荷履歴に似た信号を生成します。信号は,512 Hzで8秒間サンプリングされます。極値と信号をプロットします。

fs = 512;X = [-2 -1 -3 5 -1 3 -4 4 -2];lX长度(X) = 1;Y =选项(X) / 2。* cos(π* (0:1 / fs: 1 - 1 / fs)”) + (X (1: lX) + X (2: lX + 1) / 2;Y = X (Y(:);(结束)];情节(0:lX, X,'O',0:1 / fs: lX, Y)

データのサイクルカウントを計算します。サイクルカウントの行列を表示します。

[c,嘘,边缘,rmm idx] = rainflow (Y, fs);T = array2table (c,“VariableNames”,{“数”,“范围”,'意思',“开始”,“结束”})
T =7×5表计数范围平均开始结束数0.5 3 -0.5 0 1 0.5 4 1 2 1 4 1 4 1 5 5 0.5 8 1 2 3 3 0.5 9 0.5 3 6 0.5 8 0 6 7 0.5 6 1 7 1 7 8

サイクルカウントのヒストグラムを応力範囲の関数として表示します。

柱状图('BinEdges'边缘”,'BinCounts',总和(历史,2))xlabel(的应力范围)ylabel (“周期盘点”)

出力引数なしでrainflowを使用して,サイクルのヒストグラムをサイクル平均とサイクル范囲の关数としてプロットします。

rainflow (Y, fs)

既知の不定間隔の反転をつなぎ,半周期の正弦波で構成される,負荷履歴に似た信号を生成します。信号は,10 Hzで15秒間サンプリングされます。極値と信号をプロットします。

FS = 10;X = [0 1 3 4 5 6 8 10 13 15];Y = [-2 1-3 5 -1 3-4 4 -2 6];Z = [];K = 1:长度(Y)-1 X = X(K + 1)-X(K);Z =  - (Y(K + 1)-Y(k))的余弦*(PI *(0:1 / FS:X-1 / FS)/ X)+ Y(K + 1)+ Y(K);Z = [Z Z / 2];结束Z = [Z Y(端)];T = linspace(X(1),X(结束),长度(Z));图(X,Y,'O',T,Z)

データのサイクルカウントを計算します。サイクルカウントの行列を表示します。

[c,嘘,边缘,rmm idx] = rainflow (Z, t);TT = array2table (c,“VariableNames”,{“数”,“范围”,'意思',“开始”,“结束”})
TT =7×5表计数范围平均数开始结束_____ _____ ____ _____ ___ 0.5 3 -0.5 0 1 0.5 4 -1 1 3 1 4 1 5 6 0.5 8 1 3 4 1 6 1 10 13 0.5 9 0.5 4 8 0.5 10 1 8 15

出力引数なしでrainflowを使用して,サイクルのヒストグラムをサイクル平均とサイクル范囲の关数としてプロットします。

雨流(Z,t)的

100赫兹で100秒间サンプリングされたランダムな信号を生成します。信号とその时间情报を时间表に格纳します。

fs = 100;t =秒(0:1 / fs: 100 - 1 / fs) ';x = randn(大小(t));TT =时间表(t, x);

反転と信号のレインフロー行列を表示します。

rainflow (TT)

負荷の反転に似た一連の極値を生成します。データをプロットします。

X = [-2 1-3 5 -1 3 4 -4 -2]';图(X)xlabel(“样本指数”)ylabel (“压力”)

データのサイクルカウントを計算します。入力が既に識別済みの極値で構成されるように指定します。

[C,HIST,边缘] =雨流(X,“ext”);

サイクルカウントのヒストグラムを応力範囲の関数として表示します。

柱状图('BinEdges'边缘”,'BinCounts',总和(历史,2))xlabel(的应力范围)ylabel (“周期盘点”)

出力引数なしでrainflowを使用して,サイクルのヒストグラムをサイクル平均とサイクル范囲の关数としてプロットします。

rainflow (X,“ext”)

入力引数

すべて折りたたむ

負荷の時間履歴。ベクトルとして指定します。xは有限の値をもたなければなりません。

データ型:|

サンプルレート。正の実数スカラーとして指定します。

データ型:|

时间値。ベクトル,持续时间配列,またはサンプル间の时间间隔を表す持续时间スカラーとして指定します。

例:秒(0:1/100:1)は100 Hzでサンプリングされた1秒間を表す持续时间配列です。

データ型:||持续时间

負荷の時間履歴.timetableとして指定します。XTには,増加する有限の行時間を含めなければなりません.timetableには,有限の負荷値をもつ数値データベクトルを1つのみ含めなければなりません。

时间表が欠損している場合や時間点が重複している場合,欠損または重複する時間および非等間隔の時間をもつ时间表の整理(MATLAB)のヒントを使用して修正できます。

例:时间表(秒(0:4)”,兰特(5,1))は1 Hzで4秒間サンプリングされた確率変数を指定します。

データ型:|

出力引数

すべて折りたたむ

サイクルカウント。行列として返されます。cの列には,カウント,範囲,平均値,最初のサンプルインデックス,最後のサンプルインデックスの順でサイクル情報が含まれます。例は,アルゴリズムを参照してください。サンプルレート,时间间隔,または时间値のベクトルを指定した场合,cの最后の2列に最初と最后のサイクル时间が含まれます。入力として时间表を设定してrainflowを呼び出した場合,最後の2列は,最初と最後のサイクル時間を秒単位で表します。

レインフロー行列。rmの行はサイクル範囲に対応し,列はサイクル平均に対応します。

ヒストグラムビンエッジ。ベクトルとして返されます。rmrrmmには,それぞれにrmの行と列のビンエッジが含まれます。

反転の線形インデックス。ベクトルとして返されます。

アルゴリズム

疲労解析では,応力が周期的に変化する状況下で,対象物にどのように損傷が蓄積されるかを調べます。対象物の破損に必要なサイクル数は,サイクルの振幅によって異なります。広帯域入力励起にはさまざまな振幅のサイクルが含まれ,対象物内のヒステリシスの影響によって一部のサイクルが他のサイクルに完全または部分的にネストされます。”レインフロー計数”は,負荷の変化サイクルの数をサイクル振幅の関数として推定します。

rainflowは,はじめに負荷履歴を“反転”のシーケンスにします。反転は,負荷が符号を変化させる局所的最小値と局所的最大値です。関数は,シーケンスの基準点Zの移动と,これらの特性をもつ顺序付けられた3点のサブセットの移动を考虑してサイクルをカウントします。

  1. 最初の点と2番目の点を,まとめてYとします。

  2. 2番目の点と3番目の点を,まとめてXとします。

  3. XYの両方で,点は早いものから遅いものへと时间顺に并べ替えられますが,必ずしも反転シーケンス内で连続しているわけではありません。

  4. r(X)によって表されるXの “范囲”は,最初の点の振幅と2番目の点の振幅の间の差の绝対値です。r(Y)の定義も同様です。

rainflowアルゴリズムは,以下のように実行されます。

最後に,関数はさまざまなサイクルと半サイクルを収集し,その範囲,平均,開始点,終了点を集計します。これらの情報は,後で,サイクルのヒストグラムの作成に使用できます。

次の反転シーケンスを考えましょう。

手顺 Z 反転 3つの反転の有无 Y R(Y) X R(X) (X) < r (Y) ? 在Y Z ? アクション
1 一个 一个,B,C あり AB 3. 公元前 4 なし あり
  1. ABを½サイクルとしてカウント

  2. 一个を破弃

  3. ZBに設定

2 B B,C なし - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Dを読み取る
3. B B,C,D あり 公元前 4 CD 8 なし あり
  1. 公元前を½サイクルとしてカウント

  2. Bを破弃

  3. ZCに設定

4 C C,D なし - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Eを読み取る
5 C C,D,E あり CD 8 6 あり - - - - - - Fを読み取る
6 C C,D,E,F あり 6 英 孚 4 あり - - - - - - Gを読み取る
7 C C,D,E,F,G あり 英 孚 4 成品 7 なし なし
  1. 英 孚を1サイクルとしてカウント

  2. EFを破弃

8 C C,D,G あり CD 8 DG 9 なし あり
  1. CDを½サイクルとしてカウント

  2. Cを破弃

  3. ZDに設定

9 D D,G なし - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hを読み取る
10 D D,G,H あり DG 9 “大酒店” 8 あり - - - - - - Jを読み取る
11 D D,G,H,J あり “大酒店” 8 沪江 7 あり - - - - - - Kを読み取る
12 D D,G,H,J,K あり 沪江 7 JK 4 あり - - - - - - lを読み取る
13 D D,G,H,J,K,l あり JK 4 吉隆坡 3. あり - - - - - - を読み取る
14 D D,G,H,J,K,l, あり 吉隆坡 3. LM 5 なし なし
  1. 吉隆坡を1サイクルとしてカウント

  2. Klを破弃

15 D D,G,H,J, あり 沪江 7 JM 5 あり - - - - - - Nを読み取る
16 D D,G,H,J,,N あり JM 5 1 あり - - - - - - Pを読み取る
17 D D,G,H,J,,N,P あり 1 NP 4 なし なし
  1. を1サイクルとしてカウント

  2. Nを破弃

18 D D,G,H,J,P あり 沪江 7 摩根大通 9 なし なし
  1. 沪江を1サイクルとしてカウント

  2. HJを破弃

19 D D,G,P あり DG 9 全科医生 10 なし あり
  1. DGを½サイクルとしてカウント

  2. Dを破弃

  3. ZGに設定

20. G G,P データ范囲外 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

全科医生を½サイクルとしてカウント

ここで结果を收集します。

サイクルカウント 范囲 平均 開始 終了
½ 3. -0.5 一个 B
½ 4 1 B C
1 4 1 E F
½ 8 1 C D
1 3. -0.5 K l
1 1 2.5 N
1 7 0.5 H J
½ 9 0.5 D G
½ 10 1 G P

これをシーケンスでrainflowを実行した結果と比較します。

Q =雨流([ -  2 1 -3 5 -1 3 4 -4 -3 -2 1 2 3 6])
q = 0.5000 3.0000 -1.0000 1.0000 0.5000 -1.0000 3.0000 1.0000 6.0000 0.5000 8.0000 1.0000 1.0000 3.0000 10.0000 11.0000 1.0000 1.0000 7.0000 0.5000 8.0000 9.0000 0.5000 9.0000 0.5000 4.0000 7.0000 7.0000 14.0000

参照

ASTM E1049-85(2017),“疲劳分析中循环计数的标准操作规程”。West Conshohocken, PA: ASTM International, 2011,https://www.astm.org/cgi-bin/resolver.cgi?E1049

拡张机能

C / C ++コード生成
MATLAB®编码器™を使用してÇおよびC ++コードを生成します。

R2017bで導入