Main Content

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

faultBandMetrics

パワー スペクトル密度 (PSD) の指定した故障周波数帯域のスペクトル メトリクス

R2019b 以降

説明

spectralMetrics = faultBandMetrics(psd,freqGrid,FB) は、FB の各周波数範囲について、freqGrid で指定された周波数で定義されるパワー スペクトル密度 (PSD) データ psd の一連のスペクトル メトリクス spectralMetrics を返します。

出力 spectralMetrics には、FB で指定された各周波数範囲のピーク振幅、ピーク周波数、および帯域パワーとすべての周波数帯域の合計帯域パワーが含まれます。

spectralMetrics = faultBandMetrics(X,FB) は、cell 配列 X で指定された PSD と周波数グリッドのデータについての一連のスペクトル メトリクス spectralMetrics を返します。faultBandMetrics は、X の各 cell の最後のデータ列に周波数グリッドが格納され、最初の列に PSD データが格納されていると仮定します。データが同じ順序でない場合は、名前と値のペアの引数 'SpectrumColumn' と 'FrequencyColumn' をそれぞれ使用して PSD データと周波数グリッドの列の番号または名前を指定します。出力 spectralMetrics には、cell 配列 X の長さと同じ数の行が含まれます。

spectralMetrics = faultBandMetrics(T,FB) は、データセット T で指定された PSD と周波数グリッドのデータについての一連のスペクトル メトリクス spectralMetrics を返します。

T は table/timetable またはアンサンブルにすることができます。行列または table のメンバー変数に 1 つの実験に対応する PSD データを格納する必要があります。メンバー変数の最後のデータ列に周波数グリッドが格納され、最初の列に PSD データが格納されている必要があります。

T が同じ順序でない場合は、名前と値のペアの引数 'SpectrumColumn' と 'FrequencyColumn' をそれぞれ使用して PSD データと周波数グリッドの列の番号または名前を指定します。出力 spectralMetrics には、データセット T の行数と同じ数の行が含まれます。

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

[spectralMetrics,info] = faultBandMetrics(___) は、spectralMetrics の計算に使用された table または fileEnsembleDatastore オブジェクトの変数に関する追加の情報を含む構造体 info も返します。

すべて折りたたむ

この例では、入力シャフトの 8 歯のピニオンが出力シャフトの 42 歯の平ギアと噛み合う簡単なギア セットについて考えます。入力シャフトは 20 Hz で駆動されるものと仮定します。データセット motorSignal.mat には、1500 Hz でサンプリングされたギアの噛み合いの振動データが格納されています。

まず、ギア セットの物理的特性を使用してギアの噛み合いの周波数帯域を構成します。最初の 3 つの側波帯を含めて周波数帯域を構成します。

Ni = 8;
No = 42;
FR = 20;
FB = gearMeshFaultBands(FR,Ni,No,'Sidebands',1:3)
FB = 15×2

   19.0000   21.0000
    2.8095    4.8095
   79.0000   81.0000
   99.0000  101.0000
  119.0000  121.0000
  139.0000  141.0000
  179.0000  181.0000
  199.0000  201.0000
  219.0000  221.0000
  147.5714  149.5714
      ⋮

FB は一次周波数とそれらの側波帯を含む 15 行 2 列の配列になります。

振動データを読み込み、pspectrum を使用して PSD と周波数グリッドを計算します。周波数分解能には 0.5 を使用します。

load('motorSignal.mat','C');
fs = 1500;
[psd,freqGrid] = pspectrum(C,fs,'FrequencyResolution',0.5);

次に、周波数帯域と PSD データを使用してスペクトル メトリクスを計算します。

spectralMetrics = faultBandMetrics(psd,freqGrid,FB)
spectralMetrics=1×46 table
    PeakAmplitude1    PeakFrequency1    BandPower1    PeakAmplitude2    PeakFrequency2    BandPower2    PeakAmplitude3    PeakFrequency3    BandPower3    PeakAmplitude4    PeakFrequency4    BandPower4    PeakAmplitude5    PeakFrequency5    BandPower5    PeakAmplitude6    PeakFrequency6    BandPower6    PeakAmplitude7    PeakFrequency7    BandPower7    PeakAmplitude8    PeakFrequency8    BandPower8    PeakAmplitude9    PeakFrequency9    BandPower9    PeakAmplitude10    PeakFrequency10    BandPower10    PeakAmplitude11    PeakFrequency11    BandPower11    PeakAmplitude12    PeakFrequency12    BandPower12    PeakAmplitude13    PeakFrequency13    BandPower13    PeakAmplitude14    PeakFrequency14    BandPower14    PeakAmplitude15    PeakFrequency15    BandPower15    TotalBandPower
    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    _______________    _______________    ___________    _______________    _______________    ___________    _______________    _______________    ___________    _______________    _______________    ___________    _______________    _______________    ___________    _______________    _______________    ___________    ______________

      0.0054125             19          0.0051216        0.55167             4.25          0.41848        0.0022699             81          0.0029792       0.0012756           99.438        0.0019134       0.0023457           119.25        0.0032812       0.0030216           139.75        0.0036398       0.0015424           180.06        0.0021249       0.0023163           200.81        0.0029269        0.013511            221           0.012079        0.0037697           148.06          0.003914         0.0020528           151.56          0.0025637        0.0021721            156.5          0.0022927        0.0020822           162.81          0.0015729        0.0015305           168.25          0.001575         0.0010234           170.44          0.0013135        0.46577    

spectralMetrics は、FB の各周波数範囲の計算されたピーク振幅、ピーク周波数、および帯域パワーを含む 1 行 46 列の table になります。spectralMetrics の最後の列は、FB の 15 個のすべての周波数全体で計算された合計帯域パワーです。

この例では、ピッチの直径が 12 cm で 10 個の転動体をもつボール ベアリングについて考えます。各転動体の直径は 0.5 cm です。内輪が 25 Hz で駆動される間、外輪は静止状態を保ちます。ボールの接触角は 0 度です。データセット bearingData.mat には、ベアリング振動信号についてのパワー スペクトル密度 (PSD) とそれぞれの周波数データが table に格納されています。

まず、ボール ベアリングの物理的特性を使用して最初の 3 つの側波帯を含むベアリング周波数帯域を構成します。

FR = 25;
NB = 10;
DB = 0.5;
DP = 12;
beta = 0;
FB = bearingFaultBands(FR,NB,DB,DP,beta,'Sidebands',1:3)
FB = 14×2

  118.5417  121.0417
   53.9583   56.4583
   78.9583   81.4583
  103.9583  106.4583
  153.9583  156.4583
  178.9583  181.4583
  203.9583  206.4583
  262.2917  264.7917
  274.2708  276.7708
  286.2500  288.7500
      ⋮

FB は一次周波数とそれらの側波帯を含む 14 行 2 列の配列になります。

PSD データを読み込みます。bearingData.mat の table X には、1 列目に PSD、2 列目に周波数グリッドがそれぞれ cell 配列として格納されています。

load('bearingData.mat','X')
X
X=1×2 table
          Var1                Var2      
    ________________    ________________

    {12001x1 double}    {12001x1 double}

table X の PSD データと FB の周波数帯域を使用してスペクトル メトリクスを計算します。

spectralMetrics = faultBandMetrics(X,FB)
spectralMetrics=1×43 table
    PeakAmplitude1    PeakFrequency1    BandPower1    PeakAmplitude2    PeakFrequency2    BandPower2    PeakAmplitude3    PeakFrequency3    BandPower3    PeakAmplitude4    PeakFrequency4    BandPower4    PeakAmplitude5    PeakFrequency5    BandPower5    PeakAmplitude6    PeakFrequency6    BandPower6    PeakAmplitude7    PeakFrequency7    BandPower7    PeakAmplitude8    PeakFrequency8    BandPower8    PeakAmplitude9    PeakFrequency9    BandPower9    PeakAmplitude10    PeakFrequency10    BandPower10    PeakAmplitude11    PeakFrequency11    BandPower11    PeakAmplitude12    PeakFrequency12    BandPower12    PeakAmplitude13    PeakFrequency13    BandPower13    PeakAmplitude14    PeakFrequency14    BandPower14    TotalBandPower
    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    ______________    ______________    __________    _______________    _______________    ___________    _______________    _______________    ___________    _______________    _______________    ___________    _______________    _______________    ___________    _______________    _______________    ___________    ______________

         121               121            314.43          56.438            56.438          144.95          81.438            81.438          210.57          106.44            106.44          276.2           156.44            156.44          407.45          181.44            181.44          473.07          206.44            206.44          538.7           264.75            264.75          691.77          276.75            276.75          723.27          288.69             288.69           754.61           312.69             312.69           817.61           324.62             324.62           848.94           336.62             336.62           880.44           13.188             13.188           31.418           7113.4    

spectralMetrics は、FB の各周波数範囲の計算されたピーク振幅、ピーク周波数、および帯域パワーを含む 1 行 43 列の table になります。spectralMetrics の最後の列は、FB の 14 個のすべての周波数全体で計算された合計帯域パワーです。

4 つのデータ セットがまとめられた psdData.zip について考えます。ベアリングのタコメーター、振動、およびパワー スペクトルのデータについての個別の table が各ファイルに格納されています。アンサンブル用の読み取りファイル hReadData.m も含まれています。

各データセットに 4 列の table spectrum が含まれています。最初の列 F に周波数グリッド データが格納され、PxxPyy、および Pzz という名前の他の 3 つの列にスペクトル データが格納されています。

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

unzip psdData.zip;
ens = fileEnsembleDatastore(pwd,'.mat');
ens.ReadFcn = @hReadData;
ens.DataVariables = {'tach','vibration','spectrum'};
ens.SelectedVariables = ens.DataVariables;

故障帯域 FB を想定して、スペクトル メトリクスを計算します。使用するスペクトルの列、データ変数、および周波数の列を指定します。

FB = [10,20;40,50;60,70]
FB = 3×2

    10    20
    40    50
    60    70

[spectralMetrics,info] = faultBandMetrics(ens,FB, ...
    'SpectrumColumn','Pxx', ...
    'FrequencyColumn','F', ...
    'DataVariable','spectrum');
size(spectralMetrics)
ans = 1×2

     4    10

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

info
info = struct with fields:
     SpectrumColumn: 'Pxx'
    FrequencyColumn: 'F'
       DataVariable: 'spectrum'

構造体 info には、メトリクスの計算に使用されたデータ変数、周波数の列、およびスペクトルの列に関する情報が格納されます。

入力引数

すべて折りたたむ

パワー スペクトル密度 (PSD) データ。ベクトルまたは配列として指定します。psd に応じて次のようになります。

  • ベクトルの場合は、faultBandMetrics で列ベクトルに変換され、psd が単一チャネルとして扱われます。

  • 配列の場合は、使用する PSD データの列を名前と値のペア 'SpectrumColumn' で指定します。指定した PSD データの列についてのみ、faultBandMetrics でスペクトル メトリクスが計算されます。

PSD の計算の詳細については、pspectrum を参照してください。

psd に対応する周波数グリッド データ。ベクトルとして指定します。スペクトル周波数の計算の詳細については、pspectrum を参照してください。

故障周波数帯域。Nx2 の配列として指定します。ここで、N は故障周波数の数です。FB で指定する周波数帯域は、周波数グリッド freqGrid の範囲内に含まれていなければなりません。また、FB とベクトル freqGrid の値の周波数単位は同じでなければなりません。

PSD と周波数グリッドのデータセット。行列または table の cell 配列として指定します。各 cell に 1 つの実験に対応する PSD データを含めます。faultBandMetrics は、各 cell の最後のデータ列に周波数グリッドが格納され、最初の列に PSD データが格納されていると仮定します。データが同じ順序でない場合は、名前と値のペアの引数 'SpectrumColumn' と 'FrequencyColumn' をそれぞれ使用して PSD データと周波数グリッドの列の番号または名前を指定します。

PSD と周波数グリッドのデータセット。timetable、table/timetable の table、または fileEnsembleDatastore オブジェクトとして指定します。各メンバー変数に 1 つの実験に対応する PSD データを含めます。faultBandMetrics は、T のメンバー変数の最後のデータ列に周波数グリッドが格納され、最初の列に PSD データが格納されていると仮定します。T が同じ順序でない場合は、名前と値のペアの引数 'SpectrumColumn' と 'FrequencyColumn' をそれぞれ使用して PSD データと周波数グリッドの列の番号または名前を指定します。

名前と値の引数

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

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

例: ...,'SpectrumColumn','Var1'

使用する PSD データの列。'SpectrumColumn' と整数または string で構成されるコンマ区切りのペアとして指定します。faultBandMetrics は、既定では最初のデータ列を使用します。PSD データが cell 配列 X またはデータセット T の最初の列にない場合は、'SpectrumColumn' を使用して PSD データの列の列番号または名前を指定します。

'DataVariable' を指定する場合、それに含まれるデータ列として 'SpectrumColumn' を指定する必要があります。

データセットが行列の cell 配列に含まれている場合は、値 'Var1,'Var2',... を使用してスペクトル データの列を参照できます。

使用する周波数グリッド データの列。'FrequencyColumn' と整数または string で構成されるコンマ区切りのペアとして指定します。faultBandMetrics は、既定では最後のデータ列を使用します。周波数グリッド データが cell 配列 X またはデータセット T の最後の列にない場合は、'FrequencyColumn' を使用して周波数グリッド データの列の列番号または名前を指定します。

データセットが行列の cell 配列に含まれている場合は、値 ’Var1’,’Var2’,... を使用してスペクトル データの列を参照できます。

PSD と周波数グリッドのデータを格納するデータ変数。'DataVariable' と string で構成されるコンマ区切りのペアとして指定します。'DataVariable' は、入力データセットが table の cell 配列、table の table、行列の table/timetable、または fileEnsembleDatastore オブジェクトの場合に、PSD と周波数グリッドの両方のデータを格納するデータ変数を指定するために使用します。'DataVariable' は有効な table 変数の名前でなければなりません。

出力引数

すべて折りたたむ

スペクトル メトリクス。nm 列の table として返されます。ここで次のようになります。

  • n は、データセットが cell 配列 X の場合は行の数、データが table またはアンサンブル T に含まれている場合はメンバー (行) の数です。

  • m = 3*size(FB,1)+1 です。つまり、FB の周波数範囲ごとに 3 つのメトリクスと周波数範囲全体の合計帯域パワーが含まれます。

faultBandMetrics は、FB の各周波数範囲について次のスペクトル メトリクスを返します。

  • Peak AmplitudeFB の各周波数範囲のピーク振幅値。

  • Peak FrequencyFB の各周波数範囲のピーク周波数値。

  • Band PowerFB の各周波数範囲の平均パワー。帯域パワーの詳細については、bandpower を参照してください。

  • Total Band PowerFB の一連の周波数範囲における個々の帯域パワーの合計。

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

  • DataVariableX または T から使用されているデータ変数

  • FrequencyColumn — 周波数グリッド データの列の名前

  • SpectrumColumn — PSD データの列の名前

拡張機能

バージョン履歴

R2019b で導入