Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

fit

履歴データを使用して残存耐用期間モデルのパラメーターを推定

説明

関数 fit は、同じ仕様で製造された複数のマシンなど、類似コンポーネントのアンサンブルの健全性に関する履歴データを使用して残存耐用期間 (RUL) 予測モデルのパラメーターを推定します。モデルのタイプに応じて、過去の健全性データを一連の寿命測定値または劣化プロファイルとして指定します。モデルのパラメーターを推定したら、その後、類似コンポーネントの残存耐用期間を関数 predictRUL を使用して予測できます。

fit を使用して、次のタイプの推定モデルのパラメーターを構成できます。

  • 劣化モデル

  • 生存モデル

  • 類似性モデル

RUL 予測の基本的な例については、データの着信に応じた RUL 予測の更新を参照してください。

これらのモデルを使用した残存耐用期間の予測に関する一般的な情報については、RUL 推定器モデルを使用した RUL の推定を参照してください。

fit(mdl,data) は、残存耐用期間モデル mdl のパラメーターを data の履歴データを使用して当てはめます。この構文は、datatable または timetable のデータが格納されていない場合にのみ適用されます。

fit(mdl,data,lifeTimeVariable) は、mdl のパラメーターを時間変数 lifeTimeVariable を使用して当てはめ、mdlLifeTimeVariable プロパティを設定します。この構文は、data に以下が格納されている場合にのみ適用されます。

  • 表形式でないデータ

  • 表形式のデータ (mdl でデータ変数を使用していない場合)

fit(mdl,data,lifeTimeVariable,dataVariables) は、mdl のパラメーターを dataVariables のデータ変数を使用して当てはめ、mdlDataVariables プロパティを設定します。

fit(mdl,data,lifeTimeVariable,dataVariables,censorVariable) は、生存モデルの打ち切り変数を指定し、mdlCensorVariable プロパティを設定します。打ち切り変数は、data のどの寿命測定値が耐用寿命末期の値でないかを示します。この構文は、mdl が生存モデルで、data に表形式のデータが格納されている場合にのみ適用されます。

fit(mdl,data,lifeTimeVariable,dataVariables,censorVariable,encodedVariables) は、共変量生存モデルの符号化された変数を指定し、mdlEncodedVariables プロパティを設定します。符号化された変数は、通常は非数値のカテゴリカル特徴で、fit で当てはめる前に数値ベクトルに変換されます。この構文は、mdlcovariateSurvivalModel オブジェクトで、data に表形式のデータが格納されている場合にのみ適用されます。

すべて折りたたむ

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

load('linTrainVectors.mat')

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

既定の設定で、線形劣化モデルを作成します。

mdl = linearDegradationModel;

学習データを使用して劣化モデルに学習させます。

fit(mdl,linTrainVectors)

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

load('reliabilityData.mat')

このデータは、バッテリー放電時間を表す duration オブジェクトの列ベクトルです。

既定の設定で信頼性生存モデルを作成します。

mdl = reliabilitySurvivalModel;

学習データを使用して生存モデルに学習させます。

fit(mdl,reliabilityData,"hours")

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

load('hashTrainTables.mat')

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

次の値をハッシュ特徴として使用するハッシュ類似性モデルを作成します。

mdl = hashSimilarityModel('Method',@(x) [mean(x),std(x),kurtosis(x),median(x)]);

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

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

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

load('covariateData.mat')

このデータには、電池の放電時間や関連する共変量情報が含まれています。共変量変数は以下のとおりです。

  • 温度

  • 負荷

  • 製造元

製造元情報は、符号化する必要があるカテゴリカル変数です。

共変量生存モデルを作成し、学習データを使用して学習させます。

mdl = covariateSurvivalModel('LifeTimeVariable',"DischargeTime",'LifeTimeUnit',"hours",...
   'DataVariables',["Temperature","Load","Manufacturer"],'EncodedVariables',"Manufacturer");
fit(mdl,covariateData)
Successful convergence: Norm of gradient less than OPTIONS.TolFun

たとえば、製造元が B 社で、30 時間稼働したバッテリー パックがあるとします。使用時間 DischargeTime、測定された周囲温度 TestAmbientTemperature、電流 TestBatteryLoad を含むテスト データ table を作成します。

TestBatteryLoad = 25;
TestAmbientTemperature = 60; 
DischargeTime = hours(30);
TestData = timetable(TestAmbientTemperature,TestBatteryLoad,"B",'RowTimes',hours(30));
TestData.Properties.VariableNames = {'Temperature','Load','Manufacturer'};
TestData.Properties.DimensionNames{1} = 'DischargeTime';

バッテリーの RUL を予測します。

estRUL = predictRUL(mdl,TestData)
estRUL = duration
   38.332 hr

バッテリーの共変量データの生存時間関数をプロットします。

plot(mdl,TestData)

Figure contains an axes object. The axes object with title Survival Function Plot, xlabel Time, ylabel S(t) contains 2 objects of type stair. These objects represent Baseline Survival Function, Current Survival Function.

入力引数

すべて折りたたむ

残存耐用期間予測モデル。次のモデルのいずれかとして指定します。fit は、このモデルのパラメーターを data の履歴データを使用して更新します。

それぞれのモデル タイプとそれらを使用する状況の詳細については、残存耐用期間を予測するモデルを参照してください。

劣化プロファイルや寿命など、類似コンポーネントのアンサンブルの健全性に関する履歴データ。コンポーネントのライフタイムの配列または table、あるいは劣化プロファイルの cell 配列として指定します。

履歴データがアンサンブル データストア オブジェクトに格納されている場合は、モデルのパラメーターを推定する前に table に変換しておく必要があります。詳細については、状態監視と予知保全のためのデータ アンサンブルを参照してください。

data の形式は、mdl で指定する RUL モデルのタイプに応じて異なります。

劣化モデル

mdllinearDegradationModel または exponentialDegradationModel の場合は、data をコンポーネントの劣化プロファイルの cell 配列として指定します。cell 配列の各要素には、単一のコンポーネントの寿命全体にわたる劣化特徴プロファイルが格納されます。モデルの劣化特徴を 1 つだけ含めることができます。以下の cell 配列として data を指定できます。

  • 2 列の配列。各行の 1 列目に使用期間を格納し、2 列目に対応する特徴の測定値を格納します。この場合、使用期間の列には数値を格納する必要があります。つまり、たとえば durationtimedate の値は使用できません。

  • table オブジェクト。特徴の劣化プロファイルを格納する変数を dataVariables を使用して table から選択し、使用期間変数がある場合は lifeTimeVariable を使用して選択します。

  • timetable オブジェクト。特徴の劣化プロファイルを格納する変数を dataVariables を使用して table から選択し、使用期間変数を lifeTimeVariable を使用して選択します。

生存モデル

生存モデルの場合は、複数のコンポーネントの寿命測定値が data に格納されます。さらに、共変量生存モデルについては、コンポーネントの提供元や作業領域など、時間に依存しない対応する共変量が data に格納されます。次のいずれかとして data を指定します。

  • 寿命測定値の列ベクトル — これは、mdlreliabilitySurvivalModel の場合にのみ該当します。

  • 配列 — 最初の列に寿命測定値を格納し、残りの列に共変量値を格納します。これは、mdlcovariateSurvivalModel の場合にのみ該当します。

  • table または timetable — この場合、寿命測定値を格納する変数を lifeTimeVariable を使用して table から選択します。共変量生存モデルについては、dataVariables を使用して共変量変数を選択します。信頼性生存モデルの場合、dataVariablesfit で無視されます。

既定では、fit はすべての寿命測定値が耐用寿命末期の値であると仮定します。寿命測定値が耐用寿命末期の値でないことを示すには、打ち切りを使用します。そのためには、data を打ち切り変数が格納された table または timetable として指定します。打ち切り変数は、対応する寿命測定値が耐用寿命末期の値でない場合に 1 になる 2 値変数です。打ち切り変数は censorVariable を使用して選択します。

類似性モデル

mdlhashSimilarityModelpairwiseSimilarityModel、または residualSimilarityModel の場合は、data を劣化プロファイルの cell 配列として指定します。cell 配列の各要素には、単一のコンポーネントの寿命全体にわたる劣化特徴プロファイルが格納されます。類似性モデルの場合、複数の劣化特徴を指定できます。各特徴はコンポーネントの健康インジケーターです。以下の cell 配列として data を指定できます。

  • N 行 (Mi + 1) 列の配列。ここで、N は (異なる使用時間における) 特徴の測定値の数、Mi は特徴の数です。最初の列には使用時間が含まれ、残りの列には対応する劣化特徴の測定値が含まれています。

  • table オブジェクト。特徴の劣化プロファイルを格納する変数を dataVariables を使用して table から選択し、対応する使用期間変数がある場合は lifeTimeVariable を使用して選択します。

  • timetable オブジェクト。特徴の劣化プロファイルを格納する変数を dataVariables を使用して table から選択し、対応する使用期間変数を lifeTimeVariable を使用して選択します。

fit は、すべての劣化プロファイルが故障に至るまで実行されたデータ、つまり、コンポーネントが健全な状態のときからコンポーネントが故障状態またはメンテナンスに近い状態になるまでのデータを表していると仮定します。

ライフタイム変数。string として指定します。data に応じて次のようになります。

  • table の場合、lifeTimeVariable は table の変数名のいずれかと一致していなければなりません。

  • timetable の場合、lifeTimeVariable は table の変数名のいずれか、または時間変数の次元名 data.Properties.DimensionNames{1} でなければなりません。

table または timetable の場合、lifeTimeVariable は table の変数名のいずれかと一致していなければなりません。table にライフタイム変数がない場合や data が表形式でない場合は、lifeTimeVariable を省略できます。

lifeTimeVariable"" または有効な MATLAB® 変数名でなければならず、dataVariables のいずれの string とも一致してはなりません。

fit は、モデルの LifeTimeVariable プロパティに lifeTimeVariable を格納します。

特徴データ変数。string または string 配列として指定します。data に応じて次のようになります。

  • 劣化モデルの場合、dataVariables は string でなければなりません。

  • 類似性モデルまたは共変量生存モデルの場合、dataVariables は string 配列でなければなりません。

  • 信頼性生存モデルの場合、dataVariablesfit で無視されます。

data に応じて次のようになります。

  • table または timetable の場合、dataVariables の string は table の変数名と一致していなければなりません。

  • 表形式でない場合、dataVariables"" であるか、data のデータ列と同じ数の string を含まなければなりません。dataVariables の string は、有効な MATLAB 変数名でなければなりません。

fit は、モデルの DataVariables プロパティに dataVariables を格納します。

生存モデルの打ち切り変数。string として指定します。打ち切り変数は、data の寿命測定値が耐用寿命末期の値でないことを示す 2 値変数です。打ち切りを使用するには、datatable または timetable でなければなりません。

censorVariable を指定する場合、string は data の変数名のいずれかと一致していなければならず、dataVariables または lifeTimeVariable のいずれの string とも一致してはなりません。

fit は、モデルの CensorVariable プロパティに censorVariable を格納します。

共変量生存モデルの符号化された変数。string または string 配列として指定します。符号化された変数は、通常は非数値のカテゴリカル特徴で、fit で当てはめる前に数値ベクトルに変換されます。少数のセットから値を取る logical 値または数値を符号化の対象として指定することもできます。

encodedVariables の string は、dataVariables の string のサブセットでなければなりません。

fit は、モデルの EncodedVariables プロパティに encodedVariables を格納します。

バージョン履歴

R2018a で導入