FAQ

FAMOS

シーケンス / 関数top

レインフロー法

ID.

Q. 関数の記述例

A.


レインフロー法は関係する関数が多く、結果の出力方法も何通りか存在します。
まずは基本的な関数の記述例全体をここで述べます。パラメータについては実際の値ではなく_(アンダーバー)付きの名前としています。

; レインフロー法の解析用パラメータの設定
ClsHandle = ClsOffRainflowInit1(_Classes, _UnitUse, _UnitColumn, _UnitRow, _UnitCounter,_Unit_Y_Residue, _SV_0)
ClsOffRainflowInit2(ClsHandle, _Min, _Max, _Hysteresis, _Axes, _Type, _OuterBins, _Calculation)
ClsOffRainflowInit3(ClsHandle, _IgnoreSmallSpans, _Precise, _CountStartEnd, _SV_Null1, _SV_Null2, _SV_Null3)

; 実際にカウント対象となるデータを与える
ClsOffRainflowFeedSamples(ClsHandle, Samples)

; レジデューを結果に加える
ClsOffRainflowAddResidue(ClsHandle, _Weight)

; 結果を返す
RainflowMatrix = ClsOffRainflowGetMatrix(ClsHandle)

; 結果を見やすい形に変換する
ResultRainflow = MatrixSumLines(RainflowMatrix, 0)

関数やパラメータ、変数が多いですが、要点である入力データと解析結果の変数はそれぞれ以下の通りです。

Samples カウント対象となる入力データ
RainflowMatrix カウント結果、3次元の配列
ResultRainflow カウント結果を2次元配列に変換したもの

クラスカウント法と大きく異なるのは関数の結果の形です。
関数記述例で「結果を返す」「結果を見やすい形に変換する」という箇所が存在する理由を説明します。

例として下図のようなデータを、レインフロー法と、クラスカウント法(ClsPeak2関数)で解析した結果を並べてみます。クラスの分類等、パラメータはなるべく同じように設定しています。

上がレインフロー法の結果(上記の関数記述例ではRainflowMatrixに当たるもの)、下がクラスカウント法の結果です。

このように、クラスカウント法ではクラスとカウント結果の関係が2次元になるのに対して、レインフロー法では奥行き方向のZ軸も増えて3次元となります。通常、カウントされた後の結果としては2次元である方が後の処理(疲労寿命推定など)で扱いやすいため、関数記述例ではこの3次元から2次元への変換を「結果を見やすい形に変換する」としています。
なお、この図ではX軸はMean(平均)、Z軸はAmpl(振幅)としていますが、これらは関数のパラメータで設定されます。


<< レインフロー法に関するFAQ一覧へ戻る