FAQ
FAMOS
シーケンス / 関数top
└シーケンス / 関数
ID.s067
Q. パルス信号を回転数に変換したい
パルス信号を回転数データに変換することはできますか?
A.
可能です。
以下のデータを対象とします。"pulse"はパルス信号、"signal"は加速度信号です。
以下の図はパルス信号の拡大図です。
最初にこのパルス信号の各パルスの立ち上がりポイントを取得します。
この位置を取得するためには関数"SearchLevel"を利用します。
res = SearchLevel( pulse, 2, 1, 0, 2, 0, 0, 1)
関数のパラメータを簡単に設定するためにはSearchLevelと記述した後で、関数の上にカーソルを置いてSHIFT+F1を押してください。以下のダイアログが表示され、パラメータを簡単に設定できます。
上の設定は1V以上の立ち上がりの変化ポイントを検出します。
この結果は変数リストに以下のように表示されます。
注意:
下図のように表示されない場合、変数リストの上で右クリックして、”コンポーネント表示”を選択してください。
結果は以下のように条件が成立した点だけ取得しますので、等間隔データではなく、XY波形となります。
この"res.X"変数はパルスの立ち上がりポイントのX座標を示します。
この結果を利用して回転数を求めます。
各ポイントのX座標の間隔は前後のデータのX座標の差分です。データ数を合わせるために1つずらしたデータを作成します。
res1 = CutIndex( res.X, 1, leng?(res.X)-1) res2 = CutIndex( res.X, 2, leng?(res.X))
これらの差分が各パルスの時間間隔です。
DiffTime = Res2-Res1
回転数(RPM)に変換するためには以下のようにします。
RPM = 1/DiffTime*60
以上よりRPM信号を取得できます。
例えば、この結果を利用して、加速度波形のRMSを求めてXYグラフを作成すると以下のようになります。
Acc = MvRMS(Signal,0.04,0.04) Result = XYof(RPM,ACC)
シーケンスは以下の通りです。
;*********************************************** ; ; パルス信号をRPMに変換 ; ; pulseという変数にパルス信号を入力してください ;*********************************************** ;パルスの立ち上がりを検出します。 res = SearchLevel(pulse, 2, 1, 0, 2, 0, 0, 1) ;パルスの立ち上がり時間間隔からRPMを算出します res1 = CutIndex( res.X, 1, leng?(res.X)-1) res2 = CutIndex( res.X, 2, leng?(res.X)) DiffTime = Res2-Res1 RPM = 1/DiffTime*60 ;この部分はおまけです。XY波形を作成します Acc = MvRMS(Signal,0.04,0.04) Result = XYof(RPM,ACC)