Main Content

residualSimilarityModel

残存耐用期間を推定する残差比較ベースの類似性モデル

説明

residualSimilarityModel は、コンポーネントの残存耐用期間 (RUL) を残差比較ベースの類似性モデルを使用して推定するために使用します。このモデルは、同じ仕様で製造された複数のマシンなど、類似コンポーネントのアンサンブルの劣化プロファイルがあり、劣化プロセスのダイナミクスがわかっている場合に便利です。データ アンサンブルの各メンバーの履歴データが同一の構造のモデルで当てはめられます。テスト コンポーネントの劣化データを使用して、各アンサンブル モデルの 1 ステップの予測誤差 (残差) が計算されます。それらの誤差の大きさにより、テスト コンポーネントが対応するアンサンブル メンバーにどのくらい類似しているかが示されます。

residualSimilarityModel オブジェクトを構成するには、fit を使用します。これにより、各データ アンサンブル データ メンバーの劣化モデルの学習が行われて格納されます。類似性モデルのパラメーターを構成したら、その後、類似コンポーネントの残存耐用期間を predictRUL を使用して予測できます。類似性モデルの場合、テスト コンポーネントの RUL は、大半の類似コンポーネントの寿命の中央値統計からテスト コンポーネントの現在の寿命値を引いたものとして推定されます。RUL 予測の基本的な例については、データの着信に応じた RUL 予測の更新を参照してください。

残存耐用期間の予測に関する一般的な情報については、残存耐用期間を予測するモデルを参照してください。

作成

説明

mdl = residualSimilarityModel は、RUL を推定するための残差比較ベースの類似性モデルを作成し、既定の設定でモデルを初期化します。

mdl = residualSimilarityModel(initModel) は、残差比較ベースの類似性モデルを作成し、既存の residualSimilarityModel オブジェクト initModel を使用してモデルのパラメーターを初期化します。

mdl = residualSimilarityModel(___,Name,Value) は、ユーザー設定可能なモデル プロパティを、名前と値のペアで指定します。たとえば、residualSimilarityModel('LifeTimeUnit',"days") は、日数をライフタイムの単位として使用する残差比較ベースの類似性モデルを作成します。複数の名前と値のペアを指定できます。各プロパティ名を引用符で囲みます。

入力引数

すべて展開する

残差比較ベースの類似性モデル。residualSimilarityModel オブジェクトとして指定します。

プロパティ

すべて展開する

関数 fit を使用して学習させて残差の生成に使用するモデルのタイプ。次のいずれかとして指定します。

  • "linear" — オフセット項を含む線

  • "poly2" — 2 次多項式

  • "poly3" — 3 次多項式

  • "exp1" — オフセット項を含む指数

  • "exp2" — 2 つの指数の和

  • "arma2" — 2 次 ARMA モデル

  • "arma3" — 3 次 ARMA モデル

  • "arima2" — ノイズの積分を含む 2 次 ARMA モデル

  • "arima3" — ノイズの積分を含む 3 次 ARMA モデル

モデル タイプは、コンポーネントの劣化プロセスのダイナミクスに関する知識に基づいて選択します。

次の場合に、Method を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

ARMA モデルおよび多項式モデルの推定の詳細については、それぞれ armax および polyfit を参照してください。

距離の計算方法。次のいずれかとして指定します。

  • "euclidian" — 残差信号の 2 ノルムを使用します。

  • "absolute" — 残差信号の 1 ノルムを使用します。

  • 関数ハンドル — 次の形式のカスタム関数を使用します。

    D = distanceFunction(r)

    ここで、

    • r は残差です。列ベクトルとして指定します。

    • D は距離です。非負のスカラーとして返されます。

次の場合に、Distance を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

この プロパティ は読み取り専用です。

学習データ アンサンブルの各メンバーの近似モデルのパラメーター。cell 配列として指定し、関数 fit で割り当てます。Models の内容は、Method で指定した回帰に使用するモデルのタイプによって異なります。

Methodモデル構造Models の cell の内容
"linear"at + b

行ベクトル — [a b]

"poly2"at2 + bt + c

行ベクトル — [a b c]

"poly3"at3 + bt2 + ct + d

行ベクトル — [a b c d]

"exp1"aebt+c

行ベクトル — [a b c]

"exp2"aebt+cedt

行ベクトル — [a b c d]

"arma2"

2 次 ARMA モデル:

A(q)S(t)=C(q)e(t)

ここで、

  • A(q) = [1 a1q-1 a2q-2]

  • C(q) = [1 c1q-1]

  • S(t) は劣化特徴

次のフィールドを持つ構造体:

  • A — 行ベクトル [1 a1 a2]

  • C — 行ベクトル [1 c1]

"arma3""arma2" と同様だが、A(q) が 3 次で C(q) が 2 次

次のフィールドを持つ構造体:

  • A — 行ベクトル [1 a1 a2 a2]

  • C — 行ベクトル [1 c1 c2]

"arima2"

"arma2" と同様だが、追加で次のノイズの積分器を含む:

A(q)S(t)=C(q)1q1e(t)

次のフィールドを持つ構造体:

  • A — 行ベクトル [1 a1 a2]

  • C — 行ベクトル [1 c1]

"arima3""arma3" と同様だが、追加でノイズの積分器を含む

次のフィールドを持つ構造体:

  • A — 行ベクトル [1 a1 a2 a2]

  • C — 行ベクトル [1 c1 c2]

ARMA モデルおよび多項式モデルの推定の詳細については、それぞれ armax および polyfit を参照してください。

この プロパティ は読み取り専用です。

Models の各モデルの推定の平均二乗誤差。ベクトルとして指定し、関数 fit で割り当てます。

この プロパティ は読み取り専用です。

アンサンブル メンバーの寿命。double ベクトルまたは duration オブジェクト ベクトルとして指定し、関数 fit でアンサンブル メンバーの劣化プロファイルから計算します。

RUL 推定の最近傍の数。Inf または有限の正の整数として指定します。NumNearestNeighborsInf の場合、predictRUL による推定時にすべてのアンサンブル メンバーが使用されます。

次の場合に、NumNearestNeighbors を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

同順位を含めるためのフラグ。true または false として指定します。IncludeTiestrue の場合、モデルにおいて、テスト コンポーネントのデータまでの距離が K 番目に短い距離よりも短いすべての近傍が含められます。ここで、K は NumNearestNeigbors と等しくなります。

次の場合に、IncludeTies を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

距離を計算する前に残差を標準化するためのフラグ。true または false として指定します。

Standardizetrue の場合、ModelMSE の推定平均二乗誤差の逆平方根で残差がスケーリングされます。

次の場合に、Standardize を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

ライフタイム変数。有効な MATLAB® 変数名または "" を含む string として指定します。

関数 fit を使用してモデルを学習させるとき、学習データが次のいずれかの場合:

  • table の場合、LifeTimeVariable が table の変数名のいずれかに一致する必要がある

  • timetable の場合、LifeTimeVariable は、table の変数名の 1 つ、または時間変数の次元名 data.Properties.DimensionNames{1} にする必要がある

次の場合に、LifeTimeVariable を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • 関数 fit を呼び出す際の引数として使用する

  • モデル作成後にドット表記を使用する

ライフタイム変数の単位。string として指定します。

ライフタイム変数の単位は時間ベースとする必要はありません。テスト コンポーネントの寿命は、走行距離 (マイル) や消費燃料 (ガロン) などの使用量変数で測定できます。

劣化変数名。string または string 配列として指定します。DataVariables の string は、有効な MATLAB 変数名でなければなりません。

次の場合に、DataVariables を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • 関数 fit を呼び出す際の引数として使用する

  • モデル作成後にドット表記を使用する

最近傍探索に並列計算を使用するためのフラグ。true または false のいずれかとして指定します。

次の場合に、UseParallel を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

記録用のその他のモデル情報。任意のデータ型またはデータ形式として指定します。モデルでは、この情報を使用しません。

次の場合に、UserData を指定できます。

  • モデル作成時に名前と値のペアを使用する

  • モデル作成後にドット表記を使用する

オブジェクト関数

predictRULテスト コンポーネントの残存耐用期間を推定
fit履歴データを使用して残存耐用期間モデルのパラメーターを推定
compareテスト データを類似性モデルの履歴データ アンサンブルと比較する

すべて折りたたむ

学習データを読み込みます。

load('residualTrainVectors.mat')

学習データは列ベクトルの cell 配列です。各列ベクトルは、コンポーネントの劣化特徴プロファイルです。

既定の設定で残差類似性モデルを作成します。

mdl = residualSimilarityModel;

学習データを使用して類似性モデルに学習させます。

fit(mdl,residualTrainVectors)

学習データを読み込みます。

load('residualTrainTables.mat')

学習データは table の cell 配列です。各 table は、コンポーネントの劣化特徴プロファイルです。各プロファイルは、変数 "Time" のライフタイム測定値と、それに対応する変数 "Condition" の劣化特徴の測定値から構成されます。

データを 3 次 ARMA モデルで当てはめ、絶対距離計量を使用する残差類似性モデルを作成します。

mdl = residualSimilarityModel('Method',"arma3",'Distance',"absolute");

学習データを使用して類似性モデルに学習させます。ライフタイム変数とデータ変数の名前を指定します。

fit(mdl,residualTrainTables,"Time","Condition")

学習データを読み込みます。

load('residualTrainTables.mat')

学習データは table の cell 配列です。各 table は、コンポーネントの劣化特徴プロファイルです。各プロファイルは、変数 "Time" のライフタイム測定値と、それに対応する変数 "Condition" の劣化特徴の測定値から構成されます。

データを 3 次 ARMA モデルで当てはめ、時間数をライフタイムの単位として使用する残差類似性モデルを作成します。

mdl = residualSimilarityModel('Method',"arma3",'LifeTimeUnit',"hours");

学習データを使用して類似性モデルに学習させます。ライフタイム変数とデータ変数の名前を指定します。

fit(mdl,residualTrainTables,"Time","Condition")

テスト データを読み込みます。テスト データには、テスト コンポーネントの現在のライフタイムまでの劣化特徴の測定値が含まれています。

load('residualTestData.mat')

学習させた類似性モデルを使用してテスト コンポーネントの RUL を予測します。

estRUL = predictRUL(mdl,residualTestData)
estRUL = duration
   85.73 hr

コンポーネントの推定 RUL は約 86 時間です。

拡張機能

バージョン履歴

R2018a で導入