ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

orderspectrum

平均スペクトルと振動信号の次数

説明

spec = orderspectrum(x,fs,rpm) は、fs Hz のレートでサンプリングされた入力信号 x の平均次数-振幅スペクトルのベクトル spec を計算します。スペクトルを計算するために、orderspectrum はフラット トップ ウィンドウを使用して、定位相のリサンプリングした x をウィンドウ処理します。

[spec,order] = orderspectrum(x,fs,rpm) は、各平均スペクトル値に対応する次数のベクトルも返します。

[spec,order] = orderspectrum(map,order) は、次数-RPM マップおよび次数のベクトルから開始し、平均次数-振幅スペクトルのベクトルを計算します。rpmordermap を使用して、map および order を計算します。map は線形にスケーリングされなければなりません。返される振幅は map のものと同じです。返されるスペクトルは線形にスケーリングされます。

出力引数を設定せずに orderspectrum(___) を使用すると、線形にスケーリングされた次数スペクトルの RMS 振幅が現在の Figure にプロットされます。

すべて折りたたむ

600 Hz で 5 秒間サンプリングされたシミュレーション信号を作成します。テスト中のシステムは、観察期間中に回転速度を 1 秒あたり 10 回転から 40 回転に上昇させます。

タコメーターの読み取り値を生成します。

fs = 600;
t1 = 5;
t = 0:1/fs:t1;

f0 = 10;
f1 = 40;
rpm = 60*linspace(f0,f1,length(t));

信号は、1、0.5、4 および 6 の次数をもつ、調和的に関連した 4 つのチャープで構成されています。次数 4 のチャープの振幅は他のチャープの振幅の 2 倍です。チャープを生成するために、台形則を使用して位相を回転速度の積分で表します。

o1 = 1;
o2 = 0.5;
o3 = 4;
o4 = 6;

ph = 2*pi*cumtrapz(rpm/60)/fs;

x = [1 1 2 1]*cos([o1 o2 o3 o4]'*ph);

信号の次数-RPM マップを可視化します。

rpmordermap(x,fs,rpm)

信号の平均次数スペクトルを可視化します。スペクトルのピークは次数-RPM マップのリッジに対応します。

orderspectrum(x,fs,rpm)

ヘリコプターのコクピットに設置された加速度計から取得したシミュレーション データを解析します。

ヘリコプターのデータを読み込みます。振動測定値 vib は、500 Hz のレートで 10 秒間サンプリングされています。データには線形トレンドがあります。トレンドを除去して、トレンドによる次数推定の質の低下を防ぎます。

load('helidata.mat')

vib = detrend(vib);

非線形 RPM プロファイルをプロットします。ローターは、最大回転速度である 1 分あたり 27,600 回転に達するまで回転数を上昇させ、その後降下させます。

plot(t,rpm)
xlabel('Time (s)')
ylabel('RPM')

信号の平均次数スペクトルを計算します。既定の次数分解能を使用します。

orderspectrum(vib,fs,rpm)

rpmordermap を使用して、より細かい次数分解能で計算を繰り返します。次数が低いほど、より明確に分解されます。

[map,order] = rpmordermap(vib,fs,rpm,0.005);

orderspectrum(map,order)

各推定次数のパワー レベルを計算します。結果をデシベルで表示します。

[map,order] = rpmordermap(vib,fs,rpm,0.005,'Amplitude','power');

spec = orderspectrum(map,order);

plot(order,pow2db(spec))
xlabel('Order Number')
ylabel('Order Power Amplitude (dB)')
grid on

入力引数

すべて折りたたむ

入力信号。行ベクトルまたは列ベクトルとして指定します。

例: cos(pi/4*(0:159))+randn(1,160) は、ホワイト ガウス ノイズに含まれる正弦波を指定します。

データ型: double | single

サンプルレート。正のスカラーとして Hz 単位で指定します。

データ型: double | single

回転速度。1 分あたりの回転数で表される正の値のベクトルとして指定します。rpm は、x と同じ長さをもっていなければなりません。

  • タコメーター パルス信号がある場合、tachorpm を使用して rpm を直接抽出します。

  • タコメーター パルス信号がない場合、rpmtrack を使用して振動信号から rpm を抽出します。

例: 100:10:3000 は、システムが、最初は 1 分あたり 100 回転で回転し、その後 10 回転ずつ回転数を上げて 1 分あたり 3000 回転になるように指定します。

データ型: double | single

次数-RPM マップ。行列として指定します。rpmordermap を使用して、次数-RPM マップを計算します。

データ型: double | single

次数-RPM マップ構文の次数。ベクトルとして指定します。order の長さは、map の行数と等しくなければなりません。

データ型: double | single

出力引数

すべて折りたたむ

平均次数-振幅スペクトル。線形スケールの平方根平均二乗 (RMS) 振幅のベクトルとして返されます。入力引数として map および order を使用し、rpmordermap による map の計算時に 'Amplitude''power' に設定すると、orderspectrum はパワー単位の spec を返します。

出力次数。実数ベクトルとして返されます。

参照

[1] Brandt, Anders. Noise and Vibration Analysis: Signal Analysis and Experimental Procedures. Chichester, UK: John Wiley & Sons, 2011.

[2] Vold, Håvard, and Jan Leuridan. “High Resolution Order Tracking at Extreme Slew Rates Using Kalman Tracking Filters.” Shock and Vibration. Vol. 2, 1995, pp. 507–515.

R2016b で導入