(57)【要約】【課題】  簡単な計算により、リアルタイムで、かつ、低い周波数の振動を精度良く測定することができる振動周波数測定方法および装置を提供する。【解決手段】  信号の波形から振動周波数を求める振動周波数測定方法であって、信号ピーク値、ピーク時刻暫定値および信号変化方向を初期化し、前記信号の現在値を取得した後、ステップ（ＳＴ２３）において、前記信号の現在値と前記信号のピーク値を比較する。次に、ステップ（ＳＴ２５）において、前記ステップ（ＳＴ２３）で前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加せずにピークを更新していない場合には、前記信号の現在値と前記信号のピーク値よりも前記信号変化方向と反対方向にあらかじめ設定した振動検出値以上離れたか否かによって信号反転の有無を確認するようにした。これにより、信号を０中心にするための処理を不要にし、従来の問題を解決した。【選択図】    図２
2007024532.tif 000002
【特許請求の範囲】
【請求項１】
信号の波形から、該信号の振動周波数を求める振動周波数測定方法において、
前記信号と該信号に対応する時刻の組をデータとして取り込むデータ取得部と、
信号ピーク値、ピーク時刻暫定値、信号変化方向およびピーク時刻履歴を変数として記憶する変数記憶部と、
前記データ取得部で得たデータおよび前記変数記憶部で記憶した変数を用いて振動周波数を演算する演算部と、
前記演算部の演算結果を出力する出力部と、
を備えるものとし、
前記信号ピーク値、前記ピーク時刻暫定値および前記信号変化方向を初期化するステップと、
前記信号の現在値を取得するステップと、
前記信号の現在値と前記信号のピーク値を比較し、ピーク更新確認を行うステップと、
前記ピーク更新確認を行うステップにて、前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加せずにピークを更新していない場合には、前記信号の現在値と前記信号のピーク値よりも前記信号変化方向と反対方向にあらかじめ設定した振動検出値以上離れたか否かによって信号反転の有無を確認するステップと、
前記信号反転の有無を確認するステップにて信号が反転していれば、前記ピーク時刻暫定値を前記ピーク時刻履歴に追加し、前記ピーク時刻履歴から振動周波数を算出して前記出力部の出力値を更新するステップと、
前記周波数を算出後、前記出力値を更新するステップを終了した場合、あるいは前記ピーク更新確認を行うステップにて前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加しピークを更新した場合には、前記信号ピーク値を前記信号の現在値で初期化すると共に、前記ピーク時刻暫定値を前記現在時刻で初期化し、ピーク変数更新を行うステップと、
を備えたことを特徴とする振動周波数測定方法。
【請求項２】
前記ピーク時刻履歴をＴｋ、１からＮ−２までの総和が１となる重みをｗｋ、履歴個数をＮとして、周波数ｆを
【数１】
2007024532.tif 000008
で求めることを特徴とする請求項１に記載の振動周波数測定方法。
【請求項３】
前記ピーク時刻履歴をＴｋ、１からＮ−１までの総和が１となる重みをｗｋ、履歴個数をＮとして、周波数ｆを
【数２】
2007024532.tif 000009
で求めることを特徴とする請求項１に記載の振動周波数測定方法。
【請求項４】
信号の波形から、該信号の振動周波数を求める振動周波数測定装置において、
前記信号と該信号に対応する時刻の組をデータとして取り込むデータ取得部と、
信号ピーク値、ピーク時刻暫定値、信号変化方向およびピーク時刻履歴を変数として記憶する変数記憶部と、
前記データ取得部で得たデータおよび前記変数記憶部で記憶した変数を用いて振動周波数を演算する演算部と、
前記演算部の演算結果を出力する出力部と
を備え、
前記演算部は、
前記信号ピーク値、前記ピーク時刻暫定値および前記信号変化方向を初期化する手段と、
前記信号の現在値を取得する手段と、
前記信号の現在値と前記信号のピーク値を比較し、ピーク更新確認を行う手段と、
前記ピーク更新確認を行う手段によって、前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加せずにピークを更新していない場合には、前記信号の現在値と前記信号のピーク値よりも前記信号変化方向と反対方向にあらかじめ設定した振動検出値以上離れたか否かによって信号反転の有無を確認する手段と、
前記信号反転の有無を確認する手段によって信号が反転していれば、前記ピーク時刻暫定値を前記ピーク時刻履歴に追加し、前記ピーク時刻履歴から振動周波数を算出して前記出力部の出力値を更新する手段と、
前記周波数を算出後、前記出力値を更新する手段を終了した場合、あるいは前記ピーク更新確認を行う手段にて前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加しピークを更新した場合には、前記信号ピーク値を前記信号の現在値で初期化すると共に、前記ピーク時刻暫定値を前記現在時刻で初期化し、ピーク変数更新を行う手段と、
を備えたことを特徴とする振動周波数測定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、センサなどで得られる信号から振動周波数を測定する振動周波数測定方法および装置に関する。
【背景技術】
【０００２】
従来、センサなどで得られた信号波形から振動周波数を測定する振動周波数測定方法は図４および図５のようになっている（例えば、特許文献１に記載）。
図４は、従来の振動周波数測定方法を適用する装置の例を示すブロック図である。
図において、信号検出手段４１で信号を取得し、信号を前処理フィルタ４２で処理する。前処理フィルタ４２はバンドパスフィルタやハイパスフィルタ、あるいはｎ次微分またはｎ次差分で構成される。前処理フィルタ４２で処理したデータを用いて、周波数検出手段４３で周波数を測定する。
図５は、従来の振動周波数測定方法における振動周波数測定のアルゴリズムを示すフローチャートである。
まず、周波数検出手段４３において、Ｎ個のデータをサンプル時間Ｔ内でサンプリングし、Ｋを１、Ｃを０に初期化した後にアルゴリズムを開始する。次に、ステップＳＴ５１の基準値補正において、データの平均値Ａを求め、データの要素からＡを差し引くことで、データの平均値が０となるようにし、データナンバー更新を行うステップＳＴ５２に進む。ステップＳＴ５２において、データナンバーＫを１増やし、符号反転チェックを行うステップＳＴ５３に進む。
続いて、ステップＳＴ５３において、Ｋ番目のデータとＫ−１番目のデータの符号をチェックし符号が反転していないかを判断し、符号が反転していたらステップＳＴ５４に進み、符号が反転していなかったらステップＳＴ５１に戻る。ステップＳＴ５４では、符号反転回数Ｃを１増やし、データ終了判定を行うステップＳＴ５５に進む。
ステップＳＴ５５では、Ｋがサンプル数Ｎに一致したかを判断し、Ｋ＝Ｎであれば周波数算出を行うステップＳＴ５６に進み、Ｋ＝Ｎでなければ、ステップＳＴ５１に戻る。また、ステップＳＴ５６では、周波数を式ｆ＝Ｃ／（２ＴＮ）に基づいて計算し、アルゴリズムを終了する。
図６は従来の周波数測定方法の原理を説明する図である。
ここでω（ｋ）は信号の時間波形である。データω（ｋ）の平均値をＡとすると、ω（ｋ）−Ａは振動の中央付近で０を横切る波形となる。この符号反転の間隔は周期の１／２であるので、データ中の符号反転回数Ｃを数え、総データの時間ＴＮをＣ／２で割ることで振動周期を求めることができ、周波数をその逆数で求めることができる。
以上のアルゴリズムによって、データ波形から周波数を求めることができている。
【特許文献１】特許第３４７８１８４号（明細書１４頁〜１５頁、図１４〜図１６）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来の周波数測定のアルゴリズムは、信号を０中心にとるために平均を使ってＮ個のデータをサンプリングしてからスタートする必要があり、測定結果のリアルタイム性に問題がある。
また、前処理フィルタにバンドパスフィルタやハイパスフィルタ、あるいはｎ次微分またはｎ次差分を用いても信号を０中心にする効果があるが、これらのフィルタはノイズ的な高調波成分を強調し、逆に低周波の信号は減衰してしまう性質があり、特に低周波数の振動が測定しづらいという問題がある。
さらに、信号の０クロスを検出するため、信号の振幅の大きさには無関係であり、微小な振動であっても振動であると誤検出してしまう可能性があるという問題がある。あるいは、誤検出を防ぐアルゴリズムを外部に持つ必要がありアルゴリズムが複雑になってしまうという問題がある。
本発明は、上記問題を解決するためになされたものであり、簡単な計算により、リアルタイムで、かつ、低い周波数の振動を精度良く測定することができる振動周波数測定方法および装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するために、請求項１の本発明は、信号の波形から、該信号の振動周波数を求める振動周波数測定方法において、前記信号と該信号に対応する時刻の組をデータとして取り込むデータ取得部と、信号ピーク値、ピーク時刻暫定値、信号変化方向およびピーク時刻履歴を変数として記憶する変数記憶部と、前記データ取得部で得たデータおよび前記変数記憶部で記憶した変数を用いて演算する演算部と、前記演算部の演算結果を出力する出力部とを備えるものとし、前記信号ピーク値、前記ピーク時刻暫定値および前記信号変化方向を初期化するステップと、前記信号の現在値を取得するステップと、前記信号の現在値と前記信号のピーク値を比較し、ピーク更新確認を行うステップと、前記ピーク更新確認を行うステップにて、前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加せずにピークを更新していない場合には、前記信号の現在値と前記信号のピーク値よりも前記信号変化方向と反対方向にあらかじめ設定した振動検出値以上離れたか否かによって信号反転の有無を確認するステップと、前記信号反転の有無を確認するステップにて信号が反転していれば、前記ピーク時刻暫定値を前記ピーク時刻履歴に追加し、前記ピーク時刻履歴から振動周波数を算出して前記出力部の出力値を更新するステップと、前記周波数を算出後、前記出力値を更新するステップを終了した場合、あるいは前記ピーク更新確認を行うステップにて前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加しピークを更新した場合には、前記信号ピーク値を前記信号の現在値で初期化すると共に、前記ピーク時刻暫定値を前記現在時刻で初期化し、ピーク変数更新を行うステップと、を備えたことを特徴としている。
また、請求項２の発明は、前記ピーク時刻履歴をＴｋ、１からＮ−２までの総和が１となる重みをｗｋ、履歴個数をＮとして、周波数ｆを
【０００５】
【数１】
2007024532.tif 000003
【０００６】
で求めることを行う。
あるいは、請求項３の発明は、前記ピーク時刻履歴をＴｋ、１からＮ−１までの総和が１となる重みをｗｋ、履歴個数をＮとして、周波数ｆを
【０００７】
【数２】
2007024532.tif 000004
【０００８】
で求めることを行う。
【０００９】
さらに、請求項４の発明は、信号の波形から、該信号の振動周波数を求める振動周波数測定装置において、前記信号と該信号に対応する時刻の組をデータとして取り込むデータ取得部と、信号ピーク値、ピーク時刻暫定値、信号変化方向およびピーク時刻履歴を変数として記憶する変数記憶部と、前記データ取得部で得たデータおよび前記変数記憶部で記憶した変数を用いて演算する演算部と、前記演算部の演算結果を出力する出力部とを備え、前記演算部は、前記信号ピーク値、前記ピーク時刻暫定値および前記信号変化方向を初期化する手段と、前記信号の現在値を取得する手段と、前記信号の現在値と前記信号のピーク値を比較し、ピーク更新確認を行う手段と、前記ピーク更新確認を行う手段によって、前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加せずにピークを更新していない場合には、前記信号の現在値と前記信号のピーク値よりも前記信号変化方向と反対方向にあらかじめ設定した振動検出値以上離れたか否かによって信号反転の有無を確認する手段と、前記信号反転の有無を確認する手段によって信号が反転していれば、前記ピーク時刻暫定値を前記ピーク時刻履歴に追加し、前記ピーク時刻履歴から振動周波数を算出して前記出力部の出力値を更新する手段と、前記周波数を算出後、前記出力値を更新する手段を終了した場合、あるいは前記ピーク更新確認を行う手段にて前記信号の現在値が前記信号ピーク値よりも前記信号変化方向に増加しピークを更新した場合には、前記信号ピーク値を前記信号の現在値で初期化すると共に、前記ピーク時刻暫定値を前記現在時刻で初期化し、ピーク変数更新を行う手段と、を備えたことを特徴としている。
【発明の効果】
【００１０】
以上の手順により、請求項１〜４記載の発明によると、信号を０中心に変換する必要がないため、信号をためてからスタートする必要がなくリアルタイム性が高い。また、ハイパスフィルタや差分などを使う必要がなく、低周波の振動を減衰させずに精度良く測定することができる。
また、ピークの判断に信号の振幅を明示的に用いることができるため、振動を検出する感度を陽に設定することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施例を、図に基づいて具体的に説明する。
【実施例１】
【００１２】
図１は、本発明の実施例を示す振動周波数測定方法を適用する装置のブロック図である。
図１において、１１はデータ取得部であり、信号と信号に対応する時刻の組をデータとして取り込む。信号がアナログ信号の場合はＡ／Ｄ変換器、デジタル信号の場合はバスやシリアル通信などで信号を取り込む。対応する時刻は、Ａ／Ｄ変換器の割り込み信号やバスのＣＰＵクロックなどから取得することができる。なお、ここで時刻は定周期に実行されるプログラム内のカウントアップなどによって作成しても良い。またデータは１組ずつリアルタイムに取得しても良いし、図に示していないバッファにためた後、一括して取得しても良い。また取得した信号をローパスフィルタなどで処理しても良い。
１３は変数記憶部であり、信号ピーク値、ピーク時刻暫定値、信号変化方向、ピーク時刻履歴、を記憶するメモリである。メモリはＣＰＵキャッシュ、外部メモリ、あるいはＨＤなどでも良い。
１２はデータ取得部１１で得たデータおよび変数記憶部１３で記憶した変数を用いて振動周波数を演算する演算部であり、マイコンやパソコンのＣＰＵなどで実現される。
１４は演算部１２での演算結果を出力する出力部であり、外部に電圧を出力するＤ／Ａ変換器や、デジタル表示器、または計算結果を変数に代入して他のプログラムで利用しても良い。ここで、本アルゴリズムはＣＰＵの一部で実行しても良く、他のプログラムから呼ばれる関数として使用されても良い。
【００１３】
図２は、本発明の実施例による振動周波数測定のアルゴリズムを示すフローチャートである。
まず、初期化ステップＳＴ２１において、信号ピーク値とピーク時刻暫定値と信号変化方向を初期化する。このとき、初期の信号の値、時刻を取得しても良い。信号ピーク値を０または信号の現在値で、ピーク時刻暫定値を現在時刻で初期化する。信号変化方向は、信号の差分から決定しても良いし、常に正から開始することにしても良い。
次に、データ取得ステップＳＴ２２で、信号の現在値を取得する。ここで、信号は雑音除去のためにローパスフィルタを通した信号を用いる。
次に、ピーク更新確認ステップＳＴ２３で、信号の現在値と信号のピーク値を比較し、信号の現在値が信号ピーク値よりも信号変化方向に増加しているならば、ピークを更新したとする。ｋサンプル時の信号をｗ（ｋ）、それまでの信号ピーク値をＰ（ｋ）とし、信号変化方向をＤと表して、１または−１の値を取るとすると、
（ｗ（ｋ）−Ｐ（ｋ））＊Ｄ  ＞  ０  ならば、ピークを更新したとする。
続いて、ステップＳＴ２３の結果を元にステップＳＴ２４でアルゴリズム分岐を行う。ピークを更新しているならば、ピーク変数更新ステップＳＴ２８に移行し、していないならば、信号反転確認ステップＳＴ２５に移行する。
ピーク変数更新ステップＳＴ２８では、信号ピーク値Ｐ（ｋ）を信号の現在値ｗ（ｋ）で、ピーク時刻暫定値を現在時刻で初期化して、サンプル更新ステップＳＴ１９に移行する。
信号反転確認ステップＳＴ２５においては、信号の現在値と信号のピーク値よりも信号変化方向と反対方向にあらかじめ設定した振動検出値以上離れたならば信号が反転したとする。振動検出値をＲ（正の値）とすると、
（ｗ（ｋ）−Ｐ（ｋ））＊Ｄ  ＜  −Ｒ
のとき反転と判断する。
次にステップＳＴ２５の結果を元にステップＳＴ２６において、信号が反転していたら、ステップＳＴ２７周波数計算・更新ステップに移行し、離れていないならばサンプル更新ステップＳＴ２９に移行する。
周波数計算・更新ステップＳＴ２７においては、その時点でのピーク時刻暫定値をピーク時刻として確定してピーク時刻履歴に追加し、ピーク時刻履歴から振動周波数を算出して出力部の出力値を更新する。
ここで、ピーク時刻履歴をＴｋ、１からＮ−１までの総和が１となる重みをｗｉ、履歴個数をＮとして、周波数ｆを以下の式で求めることができる。なお、Ｎが２未満のときは別途０などを出力しても良い。
【００１４】
【数３】
2007024532.tif 000005
【００１５】
本式は、Ｔｉ＋１とＴｉの差が半周期にあたり、その逆数の１／２倍が周波数であることに基づく計算であり、重みつき平均を周期または周波数で取ったものである。
ここで、Ｎは固定値であっても変動値であっても良い。データをリアルタイムで取得しているときは、データが増えるにしたがって、Ｎを増やしていっても良い。
【００１６】
あるいは、振動周波数はピーク時刻履歴をＴｋ、１からＮ−２までの総和が１となる重みをｗｉ、履歴個数をＮとして、周波数ｆを以下の式で求めることができる。なお、Ｎが３未満のときは別途０などを出力しても良い。
【００１７】
【数４】
2007024532.tif 000006
【００１８】
本式は、Ｔｉ＋２とＴｉの差が１周期にあたり、その逆数が周波数であることに基づく計算であり、重みつき平均を周期または周波数で取ったものである。  ここで、Ｎは固定値であっても変動値であっても良い。データをリアルタイムで取得しているときは、データが増えるにしたがって、Ｎを増やしていっても良い。
周波数計算・更新ステップＳＴ２７ではさらに、信号変化方向に−１を乗じて反転した後、ピーク変数更新ステップＳＴ２８に移行する。前述のとおり、ピーク変数更新ステップＳＴ２８では、信号ピーク値を信号の現在値で、ピーク時刻暫定値を現在時刻で初期化して、サンプル更新ステップＳＴ２９に移行する。
サンプル更新ステップＳＴ２９においては、データを次に進めてデータ取得ステップＳＴ２２に移行する。データを次に進めるとは、データの取り方によって、以下のようになる。データをリアルタイムに取得しているときは、アルゴリズム実行ループを元に戻すだけでも良いし、前回のデータ取得からあらかじめ設定した時間待っても良い。データをバッファしているときは、データの添え字を１足す、あるいはデータの参照アドレスをずらせば良い。
【００１９】
図３は本発明の原理を示す図である。
ω（ｋ）は信号の時間波形を表す。また、信号ピーク値Ｐ（ｋ）、信号変化方向Ｄ、ピーク時刻暫定値Ｔｔｍｐを示している。
ここでは時刻Ａで信号ピーク値をω（Ａ）で、信号変化方向を＋１（正）に初期化したとする。時刻Ａから時刻Ｂ、Ｃ、Ｄ、Ｅへと時刻を進めながらステップＳＴ２２からステップＳＴ２９を実行する。
まず、時刻ＡからＢまでの間にある間は、ピーク更新確認ステップＳＴ２３の判定で（ｗ（ｋ）−Ｐ（ｋ））＊Ｄ  ＞  ０が成り立ち続けるので、ピーク変数更新ステップＳＴ２８が実行され、Ｐ（ｋ）はｗ（ｋ）、ＴｔｍｐはＴ（ｋ）で上書きされつづける。
時刻Ｂを越えると（ｗ（ｋ）−Ｐ（ｋ））＊Ｄ  ＜  ０となるため、信号反転確認ステップＳＴ２５が行われるが、時刻ＢからＣの間は（ｗ（ｋ）−Ｐ（ｋ））＊Ｄ  ＜  −Ｒは満たしていないため、サンプル更新ステップＳＴ２９に移行する。その結果、Ｐ（ｋ）、Ｔｔｍｐは、時刻Ｂでの値、Ｐ（Ｂ）とＴ（Ｂ）の値のままになる。
時刻Ｃとなったとき、（ｗ（ｋ）−Ｐ（ｋ））＊Ｄ  ＜  −Ｒが成り立つため、反転したと判断される。そのときのＴｔｍｐ＝Ｔ（Ｂ）の値すなわち信号が反転した時刻がピーク時刻履歴に追加される。
時刻ＣからＤは、方向Ｄが−１である以外は、時刻ＡからＢと同様で、信号ピーク値とピーク時刻暫定値がＰ（ｋ），Ｔ（ｋ）で上書きされていく。
時刻ＤからＥは、方向Ｄが−１である以外は、時刻ＢからＣと同様で、信号ピーク値とピーク時刻暫定値はそれぞれ、Ｐ（Ｄ）とＴ（Ｄ）の値のままになる。
時刻Ｅとなったときに、反転が判断され、Ｔｔｍｐ＝Ｔ（Ｄ）がピーク時刻履歴に追加される。ここで、ピーク時刻履歴が２個となったので、Ｎ＝２、ｗ１＝１として、
【００２０】
【数５】
2007024532.tif 000007
【００２１】
の計算により、周期を求めることができる。これは、時刻Ｄと時刻Ｂの間隔を周期の１／２であるとして周期を求めたことになる。
ｗ（ｋ）の振動が振動検出値よりも小さい場合には、（ｗ（ｋ）−Ｐ（ｋ））＊Ｄ  ＜  −Ｒが満たされることがないため、反転が検出されない。したがって振動が検出されない。
【産業上の利用可能性】
【００２２】
本発明は、比較的単純な計算でリアルタイムに、周波数を測定することができるため、周波数の情報を用いて振動を制御する方法と組み合わせて、振動制御を行うという用途にも適用できる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施例を示す振動周波数測定方法を適用する装置のブロック図
【図２】本発明の実施例による振動周波数測定のアルゴリズムを示すフローチャート
【図３】本発明の振動周波数測定方法の原理を説明する図
【図４】従来の振動周波数測定方法を適用する装置の例を示すブロック図
【図５】従来の振動周波数測定方法における振動周波数測定のアルゴリズムを示すフローチャート
【図６】従来の周波数測定方法の原理を説明する図
【符号の説明】
【００２４】
１１  データ取得部
１２  演算部
１３  変数記憶部
１４  出力部
４１  検出手段
４２  前処理フィルタ
４３  周波数検出手段
【図１】
2007024532.tif 000010
【図２】
2007024532.tif 000011
【図３】
2007024532.tif 000012
【図４】
2007024532.tif 000013
【図５】
2007024532.tif 000014
【図６】
2007024532.tif 000015