faultBandMetrics
構文
説明
は、spectralMetrics
= faultBandMetrics(psd
,freqGrid
,FB
)FB
の各周波数範囲について、freqGrid
で指定された周波数で定義されるパワー スペクトル密度 (PSD) データ psd
の一連のスペクトル メトリクス spectralMetrics
を返します。
出力 spectralMetrics
には、FB
で指定された各周波数範囲のピーク振幅、ピーク周波数、および帯域パワーとすべての周波数帯域の合計帯域パワーが含まれます。
は、cell 配列 spectralMetrics
= faultBandMetrics(X
,FB
)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
の行数と同じ数の行が含まれます。
では、1 つ以上の名前と値のペアの引数を使用して追加のパラメーターを指定できます。spectralMetrics
= faultBandMetrics(___,Name,Value)
[
は、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
に周波数グリッド データが格納され、Pxx
、Pyy
、および 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) データ。ベクトルまたは配列として指定します。psd
に応じて次のようになります。
ベクトルの場合は、
faultBandMetrics
で列ベクトルに変換され、psd
が単一チャネルとして扱われます。配列の場合は、使用する PSD データの列を名前と値のペア '
SpectrumColumn
' で指定します。指定した PSD データの列についてのみ、faultBandMetrics
でスペクトル メトリクスが計算されます。
PSD の計算の詳細については、pspectrum
を参照してください。
FB
— 故障周波数帯域
Nx2
の配列
故障周波数帯域。Nx2
の配列として指定します。ここで、N
は故障周波数の数です。FB
で指定する周波数帯域は、周波数グリッド freqGrid
の範囲内に含まれていなければなりません。また、FB
とベクトル freqGrid
の値の周波数単位は同じでなければなりません。
X
— PSD と周波数グリッドのデータセット
行列の cell 配列 | table の cell 配列
PSD と周波数グリッドのデータセット。行列または table の cell 配列として指定します。各 cell に 1 つの実験に対応する PSD データを含めます。faultBandMetrics
は、各 cell の最後のデータ列に周波数グリッドが格納され、最初の列に PSD データが格納されていると仮定します。データが同じ順序でない場合は、名前と値のペアの引数 'SpectrumColumn
' と 'FrequencyColumn
' をそれぞれ使用して PSD データと周波数グリッドの列の番号または名前を指定します。
T
— PSD と周波数グリッドのデータセット
timetable | table/timetable の table | fileEnsembleDatastore
オブジェクト
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'
SpectrumColumn
— 使用する PSD データの列
データセットの最初の列 (既定値) | 整数 | string
使用する PSD データの列。'SpectrumColumn
' と整数または string で構成されるコンマ区切りのペアとして指定します。faultBandMetrics
は、既定では最初のデータ列を使用します。PSD データが cell 配列 X
またはデータセット T
の最初の列にない場合は、'SpectrumColumn
' を使用して PSD データの列の列番号または名前を指定します。
'DataVariable
' を指定する場合、それに含まれるデータ列として 'SpectrumColumn
' を指定する必要があります。
データセットが行列の cell 配列に含まれている場合は、値 'Var1
,'Var2
',...
を使用してスペクトル データの列を参照できます。
FrequencyColumn
— 使用する周波数グリッド データの列
データセットの最後の列 (既定値) | 整数 | string
DataVariable
— PSD と周波数グリッドのデータを格納するデータ変数
'Var1'
(既定値) | string
PSD と周波数グリッドのデータを格納するデータ変数。'DataVariable
' と string で構成されるコンマ区切りのペアとして指定します。'DataVariable
' は、入力データセットが table の cell 配列、table の table、行列の table/timetable、または fileEnsembleDatastore
オブジェクトの場合に、PSD と周波数グリッドの両方のデータを格納するデータ変数を指定するために使用します。'DataVariable
' は有効な table 変数の名前でなければなりません。
出力引数
spectralMetrics
— スペクトル メトリクス
table
スペクトル メトリクス。n
行 m
列の table として返されます。ここで次のようになります。
faultBandMetrics
は、FB
の各周波数範囲について次のスペクトル メトリクスを返します。
Peak Amplitude
—FB
の各周波数範囲のピーク振幅値。Peak Frequency
—FB
の各周波数範囲のピーク周波数値。Band Power
—FB
の各周波数範囲の平均パワー。帯域パワーの詳細については、bandpower
を参照してください。Total Band Power
—FB
の一連の周波数範囲における個々の帯域パワーの合計。
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用に関するメモと制限:
fileEnsembleDatastore
オブジェクトおよびworkspaceEnsemble
オブジェクトに格納されたデータや tall 配列の形式のデータはサポートされません。
バージョン履歴
R2019b で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)