Main Content

gearConditionMetrics

ギア状態監視の標準メトリクス

説明

gearMetrics = gearConditionMetrics(X) は、cell 配列 X の振動データを使用してギア状態監視メトリクス gearMetrics を返します。gearConditionMetrics では、X の各 cell 要素に時間同期平均化 (TSA) 信号、差分信号、規則的な信号、および残差信号の列がそれぞれの順序で格納されていることを前提としています。信号が同じ順序でない場合は、Name,Value のペアの引数を使用します。

gearMetrics = gearConditionMetrics(T) は、振動データセット T からギア状態監視メトリクス gearMetrics を計算します。gearConditionMetrics では、T に TSA 信号、差分信号、規則的な信号、および残差信号の列がそれぞれの順序で格納されていることを前提としています。信号が同じ順序でない場合は、Name,Value のペアの引数を使用します。

gearMetrics = gearConditionMetrics(___,Name,Value) では、1 つ以上の名前と値のペアの引数を使用して追加のパラメーターを指定できます。

gearMetrics = gearConditionMetrics(T,sigVar,diffVar,regVar,resVar) は、振動データセット T からギア状態監視メトリクス gearMetrics を計算します。計算で信号をスキップするには [] または '' を使用します。たとえば、データ セット T に TSA 信号と規則的な信号のみが格納されている場合は、この構文を次のようにして使用します。

gearMetrics = gearConditionMetrics(T,sigVar,[],regVar,[])

gearMetrics = gearConditionMetrics(___,'SortBy',sortByValue) では、sortByValue を使用して信号の履歴の時系列順を指定できます。NA4 については、gearConditionMetrics で現在のインデックスまでの過去のデータセットを使用してメトリクスが計算されるため、振動データの時系列順に依存します。

[gearMetrics,info] = gearConditionMetrics(___) は、各種信号に割り当てられた table または fileEnsembleDatastore オブジェクトの変数に関する情報を含む構造体 info も返します。

すべて折りたたむ

次の図に示すように、振動センサーが取り付けられたモーターで 6 つのギアを駆動するドライブトレインについて考えます。モーター シャフト上のギア 1 は、ギア 2 とギア比 17:1 で噛み合います。最終ギア比、すなわち、ギア 1 と 2 と、ギア 3 と 4 の比は 51:1 です。モーター シャフト上のもう 1 つのギア 5 は、ギア 6 とギア比 10:1 で噛み合います。モーターは 180 RPM で回転し、振動センサーのサンプリング レートは 50 kHz です。

データセットを作成します。

rpm = 180;                                          
fs = 50e3;                                          
t = (0:1/fs:(1/3)-1/fs)'; % sample times
orderList = [17 51];                                
f = rpm/60*[1 orderList 10];

実際は、加速度計から得られる振動信号などの測定データを使用します。この例では、モーターに取り付けられた振動センサーからのシミュレーション データである TSA 信号 X を生成し、差分信号、規則的な信号、および残差信号を計算します。事前に割り当てた table に信号を格納します。

T = table('Size',[10 4],'VariableTypes',{'cell','cell','cell','cell'},'VariableNames',{'TSA','Diff','Reg','Res'});
for k = 1:10
    X = sin(2*pi*f(1)*t) + sin(2*pi*2*f(1)*t) + ... % motor shaft rotation and harmonic
    3*sin(2*pi*f(2)*t) + 3*sin(2*pi*2*f(2)*t) + ... % gear mesh vibration and harmonic for gears 1 and 2
    4*sin(2*pi*f(3)*t) + 4*sin(2*pi*2*f(3)*t) + ... % gear mesh vibration and harmonic for gears 3 and 4
    2*(k/6)*sin(2*pi*10*f(1)*t) + randn(size(t))/5;    % gear mesh vibration for gears 5 and 6 and noise
  res = tsaresidual(X, fs, rpm, orderList);
  dif = tsadifference(X, fs, rpm, orderList);
  reg = tsaregular(X, fs, rpm, orderList);
  
  T(k,'TSA') = {X};
  T(k,'Diff') = {dif};
  T(k,'Reg') = {reg};
  T(k,'Res') = {res};
end
T
T=10×4 table
          TSA                 Diff                Reg                 Res       
    ________________    ________________    ________________    ________________

    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}
    {16666x1 double}    {16666x1 double}    {16666x1 double}    {16666x1 double}

T は、各要素が cell 配列である 10 行 4 列の table です。

table T のデータセットを使用してギア状態監視メトリクスを計算します。

[gearMetrics1,info1] = gearConditionMetrics(T,'SignalVariable','TSA','DifferenceVariable','Diff','RegularVariable','Reg','ResidualVariable','Res')
gearMetrics1=10×9 table
     RMS      Kurtosis    CrestFactor     FM4       M6A       M8A       FM0      EnergyRatio     NA4  
    ______    ________    ___________    ______    ______    ______    ______    ___________    ______

    5.1119      2.074       2.4377       2.4633    9.0009     42.31    1.5499     0.060057      2.4637
    5.1272      2.087       2.4819       1.9331    4.9869    15.634    1.5785      0.10044      4.1973
    5.1526      2.102       2.4744       1.7084    3.6211    8.8635    1.5881      0.14423      5.5871
    5.1877     2.1264       2.5443         1.63    3.1749    6.9296    1.6424      0.18889      6.7318
    5.2385     2.1566       2.5985       1.5861    2.9421    6.0165    1.6937      0.23407      7.6258
    5.2953     2.1879        2.605       1.5604    2.8046    5.4734    1.7211      0.28052      8.3807
     5.365     2.2277       2.6551       1.5423    2.7169    5.1619    1.7761      0.32511      8.8352
    5.4425     2.2574       2.6428       1.5356    2.6796     5.016    1.7945      0.37196      9.3879
    5.5269     2.2891       2.7112       1.5269    2.6344    4.8502    1.8614      0.41819      9.7477
    5.6219     2.3214       2.6979       1.5202    2.6015    4.7342    1.8892      0.46377      10.022

info1 = struct with fields:
        SignalVariable: 'TSA'
    DifferenceVariable: 'Diff'
       RegularVariable: 'Reg'
      ResidualVariable: 'Res'
                SortBy: [1x0 char]

ギア 5 と 6 の間のギアの噛み合いの故障により、ギア メトリクスが変化していることがわかります。NA4 の値は故障とその伝播に対して非常に敏感であり、さまざまなデータ セットで値が大幅に増加しています。

info1 には、メトリクスの計算に使用された変数に関する情報が格納されています。

あるいは、次の構文を使用してメトリクスを計算することもできます。

[gearMetrics2,info2] = gearConditionMetrics(T,'TSA','Diff','Reg','Res')
gearMetrics2=10×9 table
     RMS      Kurtosis    CrestFactor     FM4       M6A       M8A       FM0      EnergyRatio     NA4  
    ______    ________    ___________    ______    ______    ______    ______    ___________    ______

    5.1119      2.074       2.4377       2.4633    9.0009     42.31    1.5499     0.060057      2.4637
    5.1272      2.087       2.4819       1.9331    4.9869    15.634    1.5785      0.10044      4.1973
    5.1526      2.102       2.4744       1.7084    3.6211    8.8635    1.5881      0.14423      5.5871
    5.1877     2.1264       2.5443         1.63    3.1749    6.9296    1.6424      0.18889      6.7318
    5.2385     2.1566       2.5985       1.5861    2.9421    6.0165    1.6937      0.23407      7.6258
    5.2953     2.1879        2.605       1.5604    2.8046    5.4734    1.7211      0.28052      8.3807
     5.365     2.2277       2.6551       1.5423    2.7169    5.1619    1.7761      0.32511      8.8352
    5.4425     2.2574       2.6428       1.5356    2.6796     5.016    1.7945      0.37196      9.3879
    5.5269     2.2891       2.7112       1.5269    2.6344    4.8502    1.8614      0.41819      9.7477
    5.6219     2.3214       2.6979       1.5202    2.6015    4.7342    1.8892      0.46377      10.022

info2 = struct with fields:
        SignalVariable: 'TSA'
    DifferenceVariable: 'Diff'
       RegularVariable: 'Reg'
      ResidualVariable: 'Res'
                SortBy: [1x0 char]

9 つのデータ セットがまとめられた gearData.zip について考えます。TSA 信号、差分信号、規則的な信号、および残差信号についての個別の timetable が各ファイルに格納されています。

圧縮されたファイルを展開し、timetable のデータを読み取り、timetable のデータを使用して fileEnsembleDatastore オブジェクトを作成します。ファイル アンサンブル データストアの作成の詳細については、fileEnsembleDatastoreを参照してください。

unzip gearData.zip;
ens = fileEnsembleDatastore(pwd,'.mat');
ens.ReadFcn = @readData;
ens.DataVariables = {'TSA','Diff','Reg','Res'};
ens.SelectedVariables = ens.DataVariables;

アンサンブル データストアのデータを使用してギア状態メトリクスを計算します。

[gearMetrics,info] = gearConditionMetrics(ens,'SignalVariable','TSA','DifferenceVariable','Diff','RegularVariable','Reg','ResidualVariable','Res')
gearMetrics=9×9 table
     RMS      Kurtosis    CrestFactor     FM4       M6A       M8A       FM0      EnergyRatio     NA4  
    ______    ________    ___________    ______    ______    ______    ______    ___________    ______

    5.1119     2.0734       2.3417       2.4977    9.3854    45.859    1.4919     0.060189      2.4981
    5.1271      2.086       2.3714       1.9236    4.9222    15.262    1.5155      0.10018      4.1509
    5.1526      2.101       2.3938       1.7199    3.6873    9.1708    1.5398      0.14418      5.6187
    5.1882     2.1247       2.4128       1.6283    3.1667    6.9051    1.5589      0.18951      6.7806
     5.238     2.1572         2.45       1.5816    2.9135    5.8919    1.5994      0.23373      7.5444
    5.2947     2.1888       2.4253       1.5571    2.7877    5.4113    1.5956      0.28007      8.3138
    5.3657      2.226       2.4526       1.5443    2.7251    5.1856    1.6297      0.32562      8.8783
    5.4421     2.2564        2.447       1.5341    2.6718    4.9888    1.6549      0.37177      9.3428
    5.5254     2.2867       2.4349       1.5269    2.6354    4.8572    1.6763      0.41747      9.6986

info = struct with fields:
        SignalVariable: 'TSA'
    DifferenceVariable: 'Diff'
       RegularVariable: 'Reg'
      ResidualVariable: 'Res'
                SortBy: [1x0 char]

出力 table には、各行が 1 つのデータ セットに対応した 9 行のメトリクスが含まれます。

入力引数

すべて折りたたむ

振動データセット。行列または timetable の cell 配列として指定します。各 cell に履歴記録の 1 つの時間に対応する信号を含めます。X の各 cell 要素には、TSA 信号、差分信号、規則的な信号、および残差信号の組み合わせを表す振動データの列が格納されます。

振動データセット。timetable、ベクトルの table、table/timetable の table、または fileEnsembleDatastore オブジェクトとして指定します。T の各メンバー (行) に履歴記録の 1 つの時間に対応する信号を含めます。T が table の場合、各 table 要素には、信号のベクトルか、単一の数値列の変数をもつ table/timetable が格納されます。table 変数は、TSA 信号、差分信号、規則的な信号、および残差信号を表します。

T が単一の timetable の場合、gearConditionMetrics は、それを同じ timetable の単一の cell として解釈します。たとえば、単一の timetable TT があるとします。コマンド gearConditionMetrics(TT)gearConditionMetrics({T}) として解釈されます。

TSA 信号の変数。string または文字配列として指定します。sigVar は名前と値のペア 'SignalVariable' と等価です。

差分信号の変数。string または文字配列として指定します。diffVar は名前と値のペア 'DifferenceVariable' と等価です。

規則的な信号の変数。string または文字配列として指定します。regVar は名前と値のペア 'RegularVariable' と等価です。

残差信号の変数。string または文字配列として指定します。resVar は名前と値のペア 'ResidualVariable' と等価です。

'SortBy' の値。string として指定します。詳細については、'SortBy' を参照してください。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペア自体は順不同で構いません。

R2021a 以前は、名前と値をそれぞれコンマで区切り、 Name を引用符で囲みます。

例: …,'SortBy','FaultCode'

TSA 信号の変数。'SignalVariable' と string または文字配列で構成されるコンマ区切りのペアとして指定します。

データセットが table または timetable として指定されている場合、'SignalVariable' は有効な table 変数の名前でなければなりません。データが行列の cell 配列として指定されている場合は、値 ’Var1’,’Var2’,... を使用してデータ列を参照できます。'SignalVariable' が指定されていない場合、gearConditionMetrics は最初のデータ列に TSA 信号が格納されていると仮定します。

RMSKurtosisCrest Factor、および FM0 のメトリクスの計算には TSA 信号が必要です。TSA 信号が使用できない場合、これらのメトリクスについて gearConditionMetricsNaN を返します。

差分信号の変数。'DifferenceVariable' と string または文字配列で構成されるコンマ区切りのペアとして指定します。

データセットが table または timetable として指定されている場合、'DifferenceVariable' は有効な table 変数の名前でなければなりません。データが行列の cell 配列として指定されている場合は、値 ’Var1’,’Var2’,... を使用してデータ列を参照できます。'DifferenceVariable' が指定されていない場合、gearConditionMetrics は 2 番目のデータ列に差分信号が格納されていると仮定します。

FM4M6AM8A、および Energy Ratio のメトリクスの計算には差分信号が必要です。差分信号が使用できない場合、これらのメトリクスについて gearConditionMetricsNaN を返します。

差分信号の詳細については、tsadifference を参照してください。

規則的な信号の変数。'RegularVariable' と string または文字配列で構成されるコンマ区切りのペアとして指定します。

データセットが table または timetable として指定されている場合、'RegularVariable' は有効な table 変数の名前でなければなりません。データが行列の cell 配列として指定されている場合は、値 ’Var1’,’Var2’,... を使用してデータ列を参照できます。'RegularVariable' が指定されていない場合、gearConditionMetrics は 3 番目のデータ列に規則的な信号が格納されていると仮定します。

FM0 および Energy Ratio のメトリクスの計算には規則的な信号が必要です。規則的な信号が使用できない場合、これらのメトリクスについて gearConditionMetricsNaN を返します。

規則的な信号の詳細については、tsaregular を参照してください。

残差信号の変数。'ResidualVariable' と string または文字配列で構成されるコンマ区切りのペアとして指定します。

データセットが table または timetable として指定されている場合、'ResidualVariable' は有効な table 変数の名前でなければなりません。データが行列の cell 配列として指定されている場合は、値 ’Var1’,’Var2’,... を使用してデータ列を参照できます。'ResidualVariable' が指定されていない場合、gearConditionMetrics は 4 番目のデータ列に残差信号が格納されていると仮定します。

NA4 のメトリクスの計算には残差信号が必要です。残差信号が使用できない場合、NA4 について gearConditionMetricsNaN を返します。

残差信号の詳細については、tsaresidual を参照してください。

信号並べ替え変数。'SortBy' と string で構成されるコンマ区切りのペアとして指定します。'SortBy' は、入力データセット T がベクトルの table または table/timetable の table である場合のみ、信号の履歴を昇順に並べ替えるために使用します。gearConditionMetrics は、'SortBy' を基準に行を昇順に並べ替えてから gearMetrics を計算します。指定する table の列の値は 'SortBy' に対する有効な入力でなければなりません。詳細については、sort を参照してください。

'SortBy' が指定されていない場合やデータセットが cell 配列または fileEnsembleDatastore である場合は、信号の履歴が昇順であり、つまり古いデータが上であると仮定されます。

出力引数

すべて折りたたむ

ギア状態監視メトリクス。table として返されます。各行が X または T のそれぞれのメンバーに対応します。gearConditionMetrics で返される状態監視メトリクスは次のとおりです。

TSA 信号から計算

  • Root-Mean Square (RMS) — 劣化の後期段階におけるギアボックスの全般的な状態を示します。RMS はギアボックスの負荷と速度の変化に敏感です。

  • Kurtosis — 信号の正規化された 4 次モーメントで、振幅の分布における主要なピークを示します。ガウス分布ノイズのみで構成される信号の尖度値は約 3 です。破損したギア列では、信号の振幅分布に鋭いピークが見られるため Kurtosis の値がより高くなります。

  • Crest Factor (CF) — 信号のピーク値と RMS 値の比率で、振動信号がインパルス特性を示す場合は特に、破損の初期兆候を示します。

差分信号から計算

  • FM4 — 差分信号の振幅のピークあるいは平坦さの度合いを示します。FM4 は分散の 2 乗で正規化され、ギアの噛み合いにおける限られた数の歯のみに分離された故障を検出します。

  • M6A — 差分信号の振幅のピークあるいは平坦さの度合いを示します。M6A は分散の 3 乗で正規化され、回転機のコンポーネントにある表面の破損を示します。

  • M8AM6A インジケーターの改良版。M8A は分散の 4 乗で正規化されます。

信号の混合から計算

  • FM0 — TSA 信号のピーク値と規則的な信号のエネルギーとの比率を比較します。FM0 は、ギアの噛み合いパターンにおける歯の切損や重度の摩損などの大きな異常を特定します。

  • Energy Ratio (ER) — 差分信号のエネルギーと通常の噛み合いコンポーネントのエネルギーとの比率。Energy Ratio は、ギアの複数の歯が破損している重度の摩損を示します。

残差信号のセットから計算

  • NA4FM4 インジケーターの改良版。NA4 は破損の開始を示し、それが広がり大きくなるにつれて破損に反応し続けます。

gearConditionMetrics は、対応する信号が計算に使用できない場合、それらのメトリクスについては NaN を返します。これらのメトリクスの詳細については、アルゴリズムを参照してください。

信号割り当て情報。次のフィールドをもつ構造体として返されます。

  • DifferenceVariable — 差分の変数の名前

  • RegularVariable — 規則的な変数の名前

  • ResidualVariable — 残差の変数の名前

  • SignalVariable — TSA 信号の変数の名前

  • SortBy — 信号並べ替え変数の名前

アルゴリズム

平方根平均二乗 (RMS)

TSA 信号の平方根平均二乗 (RMS) は rms コマンドを使用して計算されます。TSA 信号 x の場合、RMS は次のように計算されます。

RMS(x) = 1Ni=1Nxi2.

ここで、N はデータ サンプルの数です。

RMS は、通常はギアボックスの全体的状態の優れたインジケーターですが、歯の初期故障については優れたインジケーターではありません。また、不均衡な回転要素の検出にも有用です。標準的な正規分布の RMS は 1 です。

詳細については、rms を参照してください。

尖度

尖度は分布に外れ値がどの程度発生しやすいかの尺度です。標準正規分布の尖度は 3 です。外れ値がより発生しやすい分布の尖度値は 3 より大きくなり、外れ値が発生しにくい分布の尖度値は 3 より小さくなります。

gearConditionMetrics では、kurtosis コマンドを使用して TSA 信号の尖度値を計算します。シーケンスの尖度は次のように定義されます。

Kurtosis(x) = 1Ni=1N(xix¯)4[1Ni=1N(xix¯)2] 2.

ここで、x¯ は TSA 信号 x の平均です。

詳細については、kurtosis を参照してください。

クレスト ファクター (CF)

Crest Factor は、入力信号 xRMS の値に対する正のピーク値の比率です。gearConditionMetrics では、peak2rms コマンドを使用して TSA 信号のクレスト ファクターを計算します。

シーケンスのクレスト ファクターは次のように定義されます。

CF(x) = P(x)RMS(x).

ここで、P(x) は TSA 信号のピーク値です。

クレスト ファクターは、信号の実効値に対するピークの相対的な大きさを示します。振動信号がインパルス特性を示す場合、初期段階のギアの破損の優れたインジケーターになります。

FM4

FM4 インジケーターは、ギアの噛み合いにおける限られた数の歯のみに分離された故障の検出に使用されます。FM4 は、差分信号の正規化された尖度として定義されます[4]。標準正規分布の FM4 は 3 です。

FM4 は次のように計算されます。

FM4(d) = 1Ni=1N(did¯)4[1Ni=1N(did¯)2] 2

ここで、d¯ は差分信号 d の平均です。

M6A

M6A インジケーターは、機械コンポーネントにある表面の破損の検出に使用されます。採用している理論は FM4 メトリクスと同じですが、M6A では分散の 3 乗で正規化された差分信号の 6 次モーメントを使用します。標準正規分布の M6A は 15 です。そのため、M6A は差分信号のピークに対してさらに敏感であると期待されます。gearConditionMetrics では、moment コマンドを使用して M6A を計算します。

M6A は次のように計算されます。

M6A(d) = 1Ni=1N(did¯)6[1Ni=1N(did¯)2] 3

ここで、d¯ は差分信号 d の平均です。

M8A

M8A インジケーターは、M6A の改良版です。M8A は分散の 4 乗で正規化されるため、差分信号のピークに対してさらに敏感であると期待されます。標準正規分布の M8A は 105 です。次のように計算されます。

M8A(d) = 1Ni=1N(did¯)8[1Ni=1N(did¯)2] 4.

FM0

FM0 は、ギアの噛み合いパターンにおける大きな異常の検出に役立ちます。これは、TSA 信号の最大ピーク間振幅を噛み合い周波数の振幅およびその高調波と比較することで行われます。gearConditionMetrics では、peak2peak コマンドと fft コマンドの組み合わせを使用して FM0 メトリクスを計算します。

FM0 は次のように計算されます。

FM0(x) = PP(x)i=1NA(i)

ここで、PP(x) は TSA 信号のピーク間の値です。A には、噛み合い周波数での周波数領域の振幅とその高調波が含まれます。これは、規則的な信号のエネルギーを表します。

A は次のように計算されます。

A = fft(R(t))N

ここで、R(t) は規則的な信号です。

エネルギー比 (ER)

Energy Ratio は、差分信号と規則的な信号の標準偏差の比率として定義されます[1]。ギアの複数の歯が破損している重度の一様な摩耗のインジケーターとして有用です。

Energy Ratio は次のように計算されます。

ER(x) = σ(d)σ(R)

ここで、dR は差分信号と規則的な信号をそれぞれ表します。

NA4

NA4 は、FM4 インジケーターの改良版です[3]NA4 は破損の開始を示し、それが広がり大きくなるにつれて破損に反応し続けます。

NA4 は次のように計算されます。

NA4(r,k) = 1Ni=1N(rikr¯k)4[1kj=1k1Ni=1N(rijr¯j)2] 2

ここで、残差信号の分散のランニング平均を使用して、現在の時間 k までのすべての振動データ セットについての正規化が行われます。

参照

[1] Keller, Jonathan A., and P. Grabill. "Vibration monitoring of UH-60A main transmission planetary carrier fault." Annual Forum Proceedings-American Helicopter Society. Vol. 59. No. 2. American Helicopter Society, Inc, 2003.

[2] Večeř, P., Marcel Kreidl, and R. Šmíd. "Condition indicators for gearbox condition monitoring systems." Acta Polytechnica pages 35-43, 45.6 (2005).

[3] Zakrajsek, James J., Dennis P. Townsend, and Harry J. Decker. "An analysis of gear fault detection methods as applied to pitting fatigue failure data." Technical Memorandum 105950. No. NASA-E-7470. NASA, 1993.

[4] Zakrajsek, James J. "An investigation of gear mesh failure prediction techniques." MS Thesis-Cleveland State University, 1989.

拡張機能

バージョン履歴

R2019a で導入