(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】2021002819
(43)【公開日】20210107
(54)【発明の名称】フィルタリング装置、センサ装置、フィルタリング方法、およびフィルタリングプログラム
(51)【国際特許分類】
   H03H 17/04 20060101AFI20201204BHJP
【FI】
   !H03H17/04 633A
【審査請求】未請求
【請求項の数】8
【出願形態】OL
【全頁数】16
(21)【出願番号】2019116891
(22)【出願日】20190625
(71)【出願人】
【識別番号】591036457
【氏名又は名称】三菱電機エンジニアリング株式会社
【住所又は居所】東京都千代田区九段北一丁目13番5号
(74)【代理人】
【識別番号】100110423
【弁理士】
【氏名又は名称】曾我 道治
(74)【代理人】
【識別番号】100111648
【弁理士】
【氏名又は名称】梶並 順
(74)【代理人】
【識別番号】100147566
【弁理士】
【氏名又は名称】上田 俊一
(74)【代理人】
【識別番号】100161171
【弁理士】
【氏名又は名称】吉田 潤一郎
(74)【代理人】
【識別番号】100188514
【弁理士】
【氏名又は名称】松岡 隆裕
(72)【発明者】
【氏名】中村 和彦
【住所又は居所】東京都千代田区九段北一丁目13番5号 三菱電機エンジニアリング株式会社内
(57)【要約】
【課題】遅延をなくして測定値の変化に対する追従性の向上を図るとともに、移動平均フィルタと同等のノイズ低減効果を実現することのできるフィルタリング装置を得る。
【解決手段】フィルタリング装置は、計測値をサンプリング周期に従ってサンプリングすることで入力値を取得する取得部と、入力値に含まれるノイズを低減するフィルタリング処理を逐次実行し、出力値を生成するフィルタリング部とを備え、フィルタリング部は、現在の入力値に係数を乗じて得られる値から出力値を算出し、現在の入力値と、入力値から算出される出力値との差の絶対値が第1閾値を超える場合には係数を増加させ、差の絶対値が第2閾値を下回る場合には係数を減少させ、差の絶対値に応じて係数を変化させながらフィルタリング処理を逐次実行する。
【選択図】図1
【特許請求の範囲】
【請求項1】
計測値をサンプリング周期に従ってサンプリングすることで入力値を取得する取得部と、
前記入力値に含まれるノイズを低減するフィルタリング処理を逐次実行し、出力値を生成するフィルタリング部と
を備え、
前記フィルタリング部は、
現在の入力値に係数を乗じて得られる値から前記出力値を算出し、
前記現在の入力値と、前記入力値から算出される前記出力値との差の絶対値が第1閾値を超える場合には前記係数を増加させ、前記差の絶対値が第2閾値を下回る場合には前記係数を減少させ、前記差の絶対値に応じて前記係数を変化させながら前記フィルタリング処理を逐次実行する
フィルタリング装置。
【請求項2】
前記フィルタリング部は、
前記係数を、ゼロから1の範囲内の値として設定し、
前記差の絶対値が前記第1閾値を超える場合には、前記係数を1に設定する
請求項1に記載のフィルタリング装置。
【請求項3】
前記フィルタリング部は、
前記第1閾値および前記第2閾値の少なくともいずれか一方を、過去の前記入力値に関する統計量に基づいて規定する
請求項1または2に記載のフィルタリング装置。
【請求項4】
前記フィルタリング部は、
新たに算出される前記出力値をDoutとし、現在の前記入力値をDinとし、現在のサンプリング時刻の1周期前における前記出力値をDouti−1とし、αを前記係数とした際に、下式
Dout=Douti−1+α(Din−Douti−1
に従って前記サンプリング周期ごとの出力値をDoutとして生成し、
αを、(Din−Douti−1)の関数とし、ノイズの影響を考慮した係数とし、ノイズのある部分のみにフィルタを適応できるように、サンプリング周期ごとにαを設定する
請求項1から3のいずれか1項に記載のフィルタリング装置。
【請求項5】
計測値を繰り返し出力する計測部と、
請求項1から4のいずれか1項に記載のフィルタリング装置と
を備えるセンサ装置。
【請求項6】
計測値をサンプリング周期に従ってサンプリングすることで入力値を取得する取得ステップと、
前記入力値に含まれるノイズを低減するフィルタリング処理を逐次実行し、出力値を生成するフィルタリングステップと
を含み、
前記フィルタリングステップは、
現在の入力値に係数を乗じて得られる値から前記出力値を算出し、
前記現在の入力値と、前記入力値から算出される前記出力値との差の絶対値が第1閾値を超える場合には前記係数を増加させ、前記差の絶対値が第2閾値を下回る場合には前記係数を減少させ、前記差の絶対値に応じて前記係数を変化させながら前記フィルタリング処理を逐次実行する
フィルタリング方法。
【請求項7】
前記フィルタリングステップは、
前記第1閾値および前記第2閾値の少なくともいずれか一方を、過去の前記入力値に関する統計量に基づいて規定する
請求項6に記載のフィルタリング方法。
【請求項8】
コンピュータに、
計測値をサンプリング周期に従ってサンプリングすることで入力値を取得し、
現在の入力値に係数を乗じて得られる値から出力値を算出し、
前記現在の入力値と、前記入力値から算出される前記出力値との差の絶対値が第1閾値を超える場合には前記係数を増加させ、前記差の絶対値が第2閾値を下回る場合には前記係数を減少させ、前記差の絶対値に応じて前記係数を変化させながら、前記入力値に含まれるノイズを低減するフィルタリング処理を逐次実行する
ことを実行させるためのフィルタリングプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フィルタリング装置、センサ装置、フィルタリング方法、およびフィルタリングプログラムに関する。
【背景技術】
【0002】
工場に代表される施設では、センサによる測定値を利用して生産システム、加工システム、検査システムを含む種々のシステムが運用される。センサによる測定値は、通常、ノイズを含んでいる。このため、センサによる測定値をフィルタに通してノイズを低減することが広く行われている。
【0003】
ノイズを低減するフィルタとしては、複数の測定値の平均をとる移動平均、および無限インパルス応答フィルタ(IIR(Infinite Impulse Response)フィルタ)が知られている。
【0004】
ここで、複数の測定値の平均をとることには、単純な算術平均の他、加重平均に代表される種々の演算が含まれる。しかしながら、これらの演算手法は、ノイズ低減効果に比例して、測定値の遅延が問題となっていた。
【0005】
そこで、ノイズ低減を維持しつつ、遅延を起こさない技術がある(例えば、特許文献1参照)。しかしながら、この特許文献1に係る技術によるノイズ低減効果は、限定的であった。このため、十分なノイズ低減効果を持ち、かつ遅延の生じない手法の構築が強く望まれている。
【0006】
例えば、n個の測定値の平均によれば、ノイズを1/√n程度に低減することが見込まれる。このため、平均の対象となるデータ数nを多くすれば、ノイズの低減率を高くすることができる。ただし、データ数nが多くなると、測定値がノイズとは異なる変化を含むときに平均値が、その変化に大きく遅延して追随することとなってしまう。そこで、平均に用いるデータ数を、ユーザが設定した精度および応答時間に応じて設定する技術が提案されている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第6388754号公報
【特許文献2】特開2012−32305号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献2に係る技術は、データ数を一旦設定すると、繰り返し入力される計測データに対して、設定を変更することなく、移動平均の演算をする。この時、測定値がノイズのみの場合には、遅延を重視せず、平均データ数を多くし、精度を上げることができる。しかしながら、測定値がノイズ以外の変化を含む場合には、平均データ数を少なくし、ノイズ以外の変化に追随したデータを得ることが望まれる。
【0009】
特許文献1に係るフィルタは、遅延をなくした上で、ノイズ低減効果を実現する。ただし、IIRフィルタではノイズ低減効果が−3〜6dB程度であり、限定的であった。
【0010】
そこで、本発明は、遅延をなくして測定値の変化に対する追従性の向上を図るとともに、移動平均フィルタと同等のノイズ低減効果を実現することのできるフィルタリング装置、センサ装置、フィルタリング方法、およびフィルタリングプログラムを得ることを目的とする。
【課題を解決するための手段】
【0011】
本発明に係るフィルタリング装置は、計測値をサンプリング周期に従ってサンプリングすることで入力値を取得する取得部と、入力値に含まれるノイズを低減するフィルタリング処理を逐次実行し、出力値を生成するフィルタリング部とを備え、フィルタリング部は、現在の入力値に係数を乗じて得られる値から出力値を算出し、現在の入力値と、入力値から算出される出力値との差の絶対値が第1閾値を超える場合には係数を増加させ、差の絶対値が第2閾値を下回る場合には係数を減少させ、差の絶対値に応じて係数を変化させながらフィルタリング処理を逐次実行するものである。
【発明の効果】
【0012】
本発明によれば、遅延をなくして測定値の変化に対する追従性の向上を図るとともに、移動平均フィルタと同等のノイズ低減効果を実現することのできるフィルタリング装置、センサ装置、フィルタリング方法、およびフィルタリングプログラムを得ることができる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態1に係るセンサ装置の構成を示すブロック図である。
【図2】本発明の実施の形態1に係るフィルタリング装置のハードウェア構成を示す図である。
【図3】本発明の実施の形態1に係る一連のフィルタリング処理を示すフローチャートである。
【図4】本発明の実施の形態1に係るIIRフィルタに関する第1の説明図である。
【図5】本発明の実施の形態1に係るIIRフィルタに関する第2の説明図である。
【図6】本発明の実施の形態1に係るフィルタリングについて説明するための図である。
【図7】本発明の実施の形態1に係るフィルタリング処理を実行する際の各データの時間推移を示した第1の説明図である。
【図8】本発明の実施の形態1に係るフィルタリング処理を実行する際の各データの時間推移を示した第2の説明図である。
【図9】本発明の実施の形態1に係るフィルタリング処理を実行した際の入力値および出力値の時間推移を示した説明図である。
【図10】従来の移動平均を用いたフィルタリング処理を実行した際の入力値および出力値の時間推移を示した説明図である。
【図11】本発明の実施の形態2に係る一連のフィルタリング処理を示すフローチャートである。
【図12】本発明の実施の形態2に係るフィルタリング処理を実行した際の入力値および出力値の時間推移を示した説明図である。
【発明を実施するための形態】
【0014】
以下、本発明に係るフィルタリング装置、センサ装置、フィルタリング方法、およびフィルタリングプログラムの好適な実施の形態につき、図面を用いて説明する。
【0015】
実施の形態1.
図1は、本発明の実施の形態1に係るセンサ装置の構成を示すブロック図である。図1に示す本実施の形態1に係るセンサ装置10は、レーザ光を利用して対象物までの距離の変化量を計測するレーザ変位センサである。センサ装置10は、発光素子11と、レンズ12と、受光素子13と、計測部14と、素子制御部15と、システム制御部16と、フィルタリング装置20と、を有する。
【0016】
発光素子11は、ワーク30に向けてレーザ光を照射する。発光素子11は、レーザ素子としてのレーザダイオードを含む。レンズ12は、ワーク30において反射した反射光を結像する。受光素子13は、レンズ12を透過した反射光を受光する。受光素子13は、配列された複数の光電変換素子を含む撮像素子である。複数の光電変換素子は、それぞれ、受光強度に応じた電圧値を出力する。受光素子13は、受光強度の分布を示す情報を計測部14に出力する。
【0017】
計測部14は、受光素子13の出力から計測値としてのワーク30の変位量を算出する。具体的には、計測部14は、受光強度の分布からピークを検出して、当該ピークの受光位置から三角測距によりワーク30との変位量を算出する。計測部14は、算出した変位量を計測値としてフィルタリング装置20に出力する。
【0018】
素子制御部15は、発光素子11の発光、および受光素子13の受光を制御する。詳細には、素子制御部15は、発光素子11による発光の強度、および時間を制御し、受光素子13による撮像のタイミングを制御する。
【0019】
システム制御部16は、計測部14、素子制御部15およびフィルタリング装置20を含むレーザ変位センサシステムを制御する。具体的には、システム制御部16は、素子制御部15を制御することにより、発光素子11の発光および受光素子13の受光を繰り返し実行させて、計測部14に計測値を繰り返し算出させる。さらに、システム制御部16は、フィルタリング装置20を制御して、例えば、フィルタリングに関するパラメータの設定、およびフィルタリング結果の出力先に関する設定をする。
【0020】
さらに、フィルタリング装置20は、計測部14から出力される計測値に含まれるノイズを低減する。具体的には、フィルタリング装置20は、計測値にフィルタリングを施して、計測値に含まれるノイズを低減しつつ、計測値に対するある程度高い追従性を有する出力値を生成する装置である。
【0021】
フィルタリング装置20は、フィルタを構成する係数を適応的に変化させることで、計測値がノイズとは異なる変動を含むときにも、出力値がこの変動に追従する際の遅延を縮小することができる。
【0022】
フィルタリング装置20は、計測値を取得する取得部21と、計測値にフィルタリングを施すフィルタリング部22と、フィルタリングの結果を出力する出力部23と、を有する。
【0023】
取得部21は、フィルタリング装置20に入力される入力値として、計測部14から繰り返し出力される計測値を取得する。計測値のサンプリング周期は、例えば、100μs、1ms、または10msである。取得部21は、入力値を取得するたびに、この入力値をフィルタリング部22に出力する。
【0024】
出力部23は、フィルタリング部22から出力される出力値を、システム制御部16による制御に従って出力する。出力先は、例えば、不図示の表示端末、記憶装置、フィルタリング装置20の出力値に対して信号処理を施す信号処理回路、または、センサネットワークを介してセンサ装置10に接続されるPLC(Programmable Logic Controller)、その他の制御装置である。
【0025】
続いて、フィルタリング装置20のハードウェア構成について説明する。図2は、本発明の実施の形態1に係るフィルタリング装置のハードウェア構成を示す図である。フィルタリング装置20は、図2に示されるように、プロセッサ41と、主記憶部42と、補助記憶部43と、入力部44と、出力部45と、通信部46と、を有する。主記憶部42、補助記憶部43、入力部44、出力部45、および通信部46は、いずれも、内部バス47を介してプロセッサ41に接続される。
【0026】
プロセッサ41は、MPU(Micro Processing Unit)またはCPU(Central Processing Unit)を含む。プロセッサ41は、補助記憶部43に記憶されるプログラムP1を実行することにより、フィルタリング装置20の種々の機能を実現して、後述する処理を実行する。
【0027】
主記憶部42は、RAM(Random Access Memory)を含む。主記憶部42には、補助記憶部43からプログラムP1がロードされる。そして、主記憶部42は、プロセッサ41の作業領域として用いられる。
【0028】
補助記憶部43は、EEPROM(Electrically Erasable Programmable Read−Only Memory)およびHDD(Hard Disk Drive)に代表される不揮発性メモリを含む。補助記憶部43は、プログラムP1の他に、プロセッサ41の処理に用いられる種々のデータを記憶する。
【0029】
補助記憶部43は、プロセッサ41の指示に従って、プロセッサ41によって利用されるデータをプロセッサ41に供給し、プロセッサ41から供給されたデータを記憶する。
【0030】
入力部44は、フィルタリング装置20の外部から情報を入力するための端子を含む。入力部44は、外部から入力された情報を取得して、取得した情報をプロセッサ41に通知する。出力部45は、フィルタリング装置20の外部に情報を出力するための端子を含む。出力部45は、プロセッサ41の指示に従って、プロセッサ41から提供された情報を外部に出力する。
【0031】
通信部46は、外部の装置と通信するためのネットワークインタフェース回路を含む。通信部46は、外部から信号を受信して、この信号により示されるデータをプロセッサ41へ出力する。また、通信部46は、プロセッサ41から出力されたデータを示す信号を外部の装置へ送信する。
【0032】
図2に示されるハードウェア構成が協働することにより、図1に示される種々の機能が実現される。詳細には、主として入力部44が、取得部21を実現する。主としてプロセッサ41および主記憶部42が、フィルタリング部22を実現する。主として出力部45が、出力部23を実現する。ただし、フィルタリングを施した結果を通信により外部の装置へ通知する際には、通信部46が出力部23を実現してもよい。
【0033】
次に、フィルタリング装置20により実行される一連のフィルタリング処理についてフローチャートを用いて説明する。図3は、本発明の実施の形態1に係る一連のフィルタリング処理を示すフローチャートである。この図3に示したフィルタリング方法は、サンプリング周期に従って、逐次実行される。
【0034】
まず始めに、ステップS1において、フィルタリング装置20は、第1係数を初期値に設定する。次に、ステップS2において、フィルタリング装置20は、計測部14から繰り返し出力される計測値を入力値として取得する。次に、ステップS2において、フィルタリング装置20は、入力値に第1係数を乗じて得られる値から、出力値を算出する。
【0035】
次に、ステップS11において、フィルタリング装置20は、出力値と入力値との差の大きさが連続して第1閾値を超えるか否かを判定する。具体的には、フィルタリング部22が、この差の大きさが、あらかじめ規定された回数以上連続して第1閾値を超えるか否かを判定する。
【0036】
この回数は、フィルタリング装置20があらかじめ記憶する回数であってもよいし、ユーザによって変更されてもよい。また、第1閾値は、第1係数を増加させるか否かを判定するための閾値であって、フィルタリング装置20があらかじめ記憶する値であってもよいし、ユーザによって変更されてもよい。なお、差の大きさとは、差の絶対値に相当する。
【0037】
差の大きさが連続して第1閾値を超えると判定した場合(ステップS11;Yes)には、フィルタリング装置20は、処理をステップS7へ移行する。一方、差の大きさが連続して第1閾値を超えてはいないと判定した場合(ステップS11;No)には、フィルタリング装置20は、処理をステップS12へ移行する。
【0038】
そして、ステップS12において、フィルタリング装置20は、出力値と入力値との差の大きさが連続して第2閾値を下回るか否かを判定する。具体的には、フィルタリング部22が、この差の大きさが、あらかじめ規定された回数以上連続して第2閾値を下回るか否かを判定する。この回数は、ステップS11の判定に用いられる回数と同一であってもよいし、異なっていてもよい。また、この回数は、フィルタリング装置20があらかじめ記憶する回数であってもよいし、ユーザによって変更されてもよい。
【0039】
また、第2閾値は、第1閾値とは異なる値であって、第1係数を減少させるか否かを判定するための閾値である。第2閾値は、フィルタリング装置20があらかじめ記憶する値であってもよいし、ユーザによって変更されてもよい。通常は、第2閾値としては、第1閾値より小さい値が設定される。
【0040】
差の大きさが連続して第2閾値を下回ると判定した場合(ステップS12;Yes)には、フィルタリング装置20は、処理をステップS5へ移行する。一方、差の大きさが連続して第2閾値を下回ってはいないと判定した場合(ステップS12;No)には、フィルタリング装置20は、ステップS2以降の処理を繰り返す。
【0041】
ステップS5に進んだ場合には、フィルタリング装置20は、現在設定されている第1係数が下限値よりも大きいか否かを判定する。第1係数が下限値よりも大きい場合(ステップS5;Yes)には、処理をステップS6へ移行する。一方、第1係数が下限値よりも大きくないと判定した場合(ステップS5;No)には、フィルタリング装置20は、ステップS2以降の処理を繰り返す。そして、ステップS6に進んだ場合には、フィルタリング装置20は、第1係数を減少させ、その後、ステップS2以降の処理を繰り返す。
【0042】
また、ステップS7に進んだ場合には、フィルタリング装置20は、現在設定されている第1係数が上限値よりも小さいか否かを判定する。第1係数が上限値よりも小さい場合(ステップS7;Yes)には、処理をステップS8へ移行する。一方、第1係数が上限値よりも小さくないと判定した場合(ステップS7;No)には、フィルタリング装置20は、ステップS2以降の処理を繰り返す。そして、ステップS8に進んだ場合には、フィルタリング装置20は、第1係数を増加させ、その後、ステップS2以降の処理を繰り返す。
【0043】
このようにして一連処理を繰り返すことにより、フィルタリング装置20は、繰り返し取得した入力値に対して、第1係数を変更しつつ、ノイズが低減された出力値を算出することとなる。
【0044】
本実施の形態1では、IIRフィルタによるフィルタリング処理を施すことを基本とする。以下、入力値にIIRフィルタを適用する例について説明する。
【0045】
図4は、本発明の実施の形態1に係るIIRフィルタに関する第1の説明図である。この図4には、本実施の形態1に係るフィルタリング部22による演算の概要が示されている。図4のブロック線図において、「Reg」は、レジスタに登録するとともに、サンプリング時刻1回分だけ遅延させる操作を示す。この図4に示したIIRフィルタによる演算では、現在の入力値Dinに第1係数(1/n)を乗じた値と、現在のサンプリング時刻よりも1周期前の過去の出力値Douti−1に第2係数((n−1)/n)を乗じた値と、の総和が現在の出力値Doutとして出力される。この演算は、下式(1)で示される。
Dout=((n−1)/n)Douti−1+(1/n)Din (1)
【0046】
フィルタリング部22の演算によれば、前回の出力値と、現在の入力値と、のそれぞれを按分して、現在の出力値が算出される。換言すると、フィルタリング部22の演算によれば、現在の入力値と過去の出力値との重み付け平均として、新たな出力値が算出される。このようにして算出された出力値は、過去の入力値の加重平均に相当する。そして、現在の入力値には、第1係数(1/n)の乗算が施される。
【0047】
このため、フィルタリング部22は、第1係数(1/n)を大きくすることで、遅延を少なくして現在の入力値に追随する出力値を得ることができる。また、フィルタリング部22は、第1係数(1/n)を小さくすることで、過去の入力値の加重平均によりノイズをより低減することができる。
【0048】
なお、フィルタリング部22による演算は、図4に示したようなブロック線図以外の構成で実現されてもよい。図5は、本発明の実施の形態1に係るIIRフィルタに関する第2の説明図である。第2の説明図である図5の例に示される出力値の演算は、上式(1)を変形した下式(2)で示される。
Dout=Douti−1+(1/n)(Din−Douti−1) (2)
【0049】
以上、説明したように、本実施の形態1に係るフィルタリング装置20は、現在の入力値と、過去の出力値と、の重み付け平均として現在の出力値を算出している。
【0050】
図6は、本発明の実施の形態1に係るフィルタリングについて説明するための図である。図6には、IIRフィルタと移動平均とによる知恵減率を比較するために、データ数nを2倍毎に増加させた場合におけるフィルタリング結果が示されている。
【0051】
図6中、「+」で示される点P21は、入力値を示し、菱形の点P22は、入力値の偏差を示し、大きい丸形の点P23は、移動平均による出力値を示し、小さい丸形の点P24は、IIRフィルタによる出力値を示す。
【0052】
また、線L21は、理論上のノイズ低減率1/√nを示し、大きい菱形の点P25は、移動平均によるノイズ低減率を示し、小さい菱形の点P26は、IIRフィルタによるノイズ低減率を示す。
【0053】
図6からわかるように、IIRフィルタによっても、移動平均と同様に、おおよそ理論的な低減率に沿ってノイズを低減することができている。なお、移動平均およびIIRフィルタによるノイズ低減率は、(出力値の標準偏差)/(入力値の標準偏差)として算出される。
【0054】
また、IIRフィルタによれば、図4、図5に示されたように、レジスタである「Reg」を1つ用意するだけで演算が可能になる。これにより、複数のレジスタあるいはメモリを必要とする移動平均よりも、少ないハードウェアリソースでフィルタリング処理を実行することができる。
【0055】
なお、以上の説明では、過去の出力値を1つだけ用いて新たな出力値を算出する例を示したが、過去の複数の出力値を用いて新たな出力値を算出してもよい。また、以上の説明では、現在の入力値に乗じる第1係数を(1/n)として、過去の出力値に乗じる第2係数を((n−1)/n)とする例を示したが、第1係数および第2係数は、それぞれ、上記説明と異なる値であってもよい。
【0056】
ただし、第1係数と、1つまたは複数の第2係数は、それぞれ、正値であって、ゼロから1までの範囲内にあることが望ましい。さらに、第1係数と、1つまたは複数の第2係数との総和は、1であることが望ましい。複数の第2係数は、それぞれ、異なる値であってもよい。
【0057】
また、上式(2)で、係数部分である(1/n)を、(Din−Douti−1)の関数とし、ノイズの影響を考慮した係数とし、ノイズのある部分のみにフィルタを適応できるように、サンプリング周期ごとに係数部分を設定することもできる。
【0058】
先の図3のフローチャートに示した係数変更アルゴリズムでは、第1係数を増加させるための第1閾値と、第1係数を減少させるための第2閾値とは、異なる値として設定される。出力値と入力値との差の大きさが第1閾値以下(ステップS11;No)であり、第2閾値以上(ステップS12;No)であれば、第1係数が変更されることがない。
【0059】
このため、出力値と入力値との差の大きさがある程度の範囲内で安定していれば、第1係数が固定され、演算処理の高速化を容易に実現することができる。なお、図3に示される例は、第1閾値と第2閾値とが等しい場合にも適用できる。
【0060】
また、図3の実施例では、出力値と入力値との差の大きさが連続して第1閾値を超える場合および連続して第2閾値を下回る場合に、第1係数が変更された。これにより、一時的なノイズにより入力値が大きく変動する度に、第1係数が変更されることが回避される。ひいては、演算処理を安定して実行することができる。
【0061】
図7は、本発明の実施の形態1に係るフィルタリング処理を実行する際の各データの時間推移を示した第1の説明図である。図7には、入力値および出力値と、入力値と出力値との差の大きさと、第1係数と、のそれぞれの時間推移が模式的に示されている。図7の上段のうち、2本の破線L11は、出力値から閾値だけ離れた値の推移を示している。入力値が2本の破線L11で囲まれる範囲外にあると、図3中のステップS4の判定が肯定されることとなる。
【0062】
図7に示されるように、時刻T1までは、出力値と入力値との差の大きさが閾値以下であって、第1係数は、下限値に収束している。時刻T2においては、出力値と入力値との差の大きさが閾値を超えたため、次のサンプリング時刻である時刻T3では、データ数nが1に変更され、第1係数が1に増加して、差の大きさはゼロとなる。
【0063】
そして、さらに次の時刻T4では、データ数nが2に増加して第1係数が減少し、複数の入力値が再び移動平均の対象となっている。図7に示されるように、入力値がノイズとは異なる変化を含む場合においても、出力値は、この変化に対して少ない遅延で追従することができる。
【0064】
図8は、本発明の実施の形態1に係るフィルタリング処理を実行する際の各データの時間推移を示した第2の説明図である。図8には、出力値と入力値との差の大きさが、一時的に大きなノイズにより閾値を超える例が示されている。図8に示される例において、時刻T2までは、図7の例と同様に推移している。時刻T3では、データ数nが1に変更され第1係数が1に増加して、差の大きさはゼロとなる。
【0065】
そして、時刻T4では、第1係数が減少し、以降、複数の入力値が移動平均の対象となっている。図8に示されるように、一時的に大きなノイズが生じても、出力値の推移は大きく変動することはなく、ノイズを効果的に低減できていることがわかる。
【0066】
また、フィルタリング装置20は、移動平均により出力値を算出し、出力値と入力値との差の大きさに応じて、移動平均の対象とする過去の入力値のデータ数を増減させている。移動平均は、比較的実装が容易であり、ノイズの低減に有効な手法である。このため、本実施の形態1に係るフィルタリング装置20は、構成を簡素化した上で、ノイズを低減する性能を容易に向上させることができる。
【0067】
図9は、本発明の実施の形態1に係るフィルタリング処理を実行した際の入力値および出力値の時間推移を示した説明図である。図9には、本発明を適応した場合における入力値と出力値とのシミュレーション結果による時間推移が、横軸をサンプリング数に相当する時間として示されている。このシミュレーションでは、ステップ状に変化する変位量にノイズが重畳した値が、入力値とされている。図9中の+印でプロットされた「In」は入力値を示し、〇印でプロットされた「Out」は出力値を示す。
【0068】
図9に示されるように、出力値がステップ状に推移しており、フィルタリング処理によってノイズを低減しつつ、入力値に含まれるノイズとは異なる変化にも少ない遅延で追従していることがわかる。
【0069】
図10は、従来の移動平均を用いたフィルタリング処理を実行した際の入力値および出力値の時間推移を示した説明図である。具体的には、図9のシミュレーションと同等の条件で、通常のnを64に固定した場合の移動平均によるフィルタリングの結果が、図10に示されている。図10の例では、ノイズを1/8程度に低減した出力値が得られているものの、入力値に対して64回のサンプリングに相当する遅延が発生していることがわかる。
【0070】
以上のように、実施の形態1によれば、遅延をなくした上で、移動平均フィルタと同等のノイズ低減効果を実現することのできるフィルタリング装置を得ることができる。
【0071】
実施の形態2.
続いて、実施の形態2について、上述の実施の形態1との相違点を中心に説明する。なお、実施の形態1と同一または同等の構成については、同等の符号を用いるとともに、適宜、その説明を省略または簡略する。
【0072】
上述した実施の形態1では、閾値をあらかじめ規定されるパラメータとしていた。しかしながら、この閾値は、ノイズの大きさに応じて動的に定められることが望ましい。そこで、本実施の形態2では、ノイズの大きさに応じて閾値を動的に定める例について、以下、説明する。
【0073】
図11は、本発明の実施の形態2に係る一連のフィルタリング処理を示すフローチャートである。本実施の形態2に係るフィルタリング装置20は、図11に示されるフィルタリング処理を実行する。なお、先の実施の形態1における図3のフローチャートと本実施の形態2における図11のフローチャートと比較すると、ステップS11およびステップS12の代わりに、ステップS21およびステップS22が用いられている点が異なっている。そこで、これらの相違点を中心に、ノイズの大きさに応じて閾値を動的に定める手法について、以下に説明する。
【0074】
図11に示したフィルタリング処理では、ステップS3に続くステップS11において、フィルタリング装置20は、過去の入力値の標準偏差に基づいて閾値を設定する。具体的には、フィルタリング部22が、あらかじめ規定されたP個の入力値の標準偏差を算出して、算出した標準偏差のQ倍の値を閾値として設定する。
【0075】
ここで、PおよびQの値は、それぞれ、あらかじめフィルタリング装置20が記憶する値であってもよいし、ユーザによって変更されてもよい。Pの値は、有効な標準偏差を得るためにある程度大きい回数の値として定められることが望ましく、例えば、32、64、または128である。また、Qの値は、ノイズの大きさと計測対象の変位量とに応じて定められることが望ましい。
【0076】
例えば、変位量がステップ状に変化し、この変化量がノイズより顕著に大きい場合には、Pの値を比較的大きい値に設定することで、ノイズを低減しつつ、少ない遅延で変位に追従する出力値を得ることができる。このようなPの値として、例えば3あるいは4とすることが考えられる。
【0077】
そして、ステップS22において、フィルタリング装置20は、出力値と入力値との差の大きさが、ステップS21において動的に設定された閾値を超えるか否かを判定する。差の大きさが閾値を超えると判定した場合(ステップS22;Yes)には、フィルタリング装置20は、処理をステップS7へ移行する。一方、差の大きさが閾値を超えてはいないと判定した場合(ステップS22;No)には、フィルタリング装置20は、処理をステップS5へ移行する。
【0078】
以上、説明したように、本実施の形態2に係るフィルタリング装置20は、入力値の標準偏差から閾値を算出して、この閾値に基づいて第1係数を変更する。これにより、時間の経過とともにノイズの大きさが変動するような場合にも、このノイズの大きさに応じた適当な閾値を用いて第1係数を変更して、適当なフィルタリング処理を施すことができる。
【0079】
図12は、本発明の実施の形態2に係るフィルタリング処理を実行した際の入力値および出力値の時間推移を示した説明図である。図12には、過去の入力値の標準偏差に応じて閾値を規定した場合における入力値、出力値、および標準偏差のシミュレーション結果による時間推移が、横軸をサンプリング数に相当する時間として示されている。
【0080】
図12中の「SD」は、標準偏差を示す。このシミュレーションでは、ステップ状に変化する変位量にノイズを重畳した値が入力値として用いられている。図12に示されるように、出力値は、ステップ状に変化する変位量に対して、少ない遅延で追従することができている。また、出力値がステップ状に推移しており、ノイズを低減することができている。
【0081】
なお、図11では、先の実施の形態1における第1閾値および第2閾値を共通の値である1つの閾値とし、共通の閾値を標準偏差に応じて規定する例について説明した。しかしながら、図3の変形例として、第1閾値および第2閾値を個別の閾値として、標準偏差に応じて第1閾値および第2閾値を個別に規定してもよい。
【0082】
また、標準偏差に限らず、過去の入力値と出力値との少なくとも一方のバラつきに関する統計量に応じて、閾値を規定してもよい。このような統計量として、出力値と入力値との差のバラつき、この差のヒストグラムにおけるピーク値あるいはピーク位置、この差の偏差、およびヒストグラムに関する統計量の時間変動、のうち1つまたは複数に応じて、閾値を規定することが考えられる。
【0083】
以上のように、実施の形態2によれば、ノイズの大きさに応じて閾値を動的に定める構成を備えている。このような構成によっても、先の実施の形態1と同様に、遅延をなくした上で、移動平均フィルタと同等のノイズ低減効果を実現することのできるフィルタリング装置を得ることができる。さらに、本実施の形態2によれば、時間経過とともにノイズの大きさが変動するような場合にも、動的に設定された適切な閾値を用いて、適切なフィルタリング処理を施すことが可能となる。
【0084】
以上、本発明の実施の形態1、2について説明したが、本発明は上記実施の形態1、2によって限定されるものではない。
【0085】
例えば、センサ装置10がレーザ変位装置である例について説明したが、これには限定されず、センサ装置10は、他のセンシング機器であってもよい。
【0086】
また、図2のハードウェア構成において、入力部44および出力部45は、ユーザとの間で情報を授受するユーザインタフェースとして形成されてもよい。
【0087】
また、第1係数を変更する際の変更量は、上述の例に限定されず、ユーザが任意に設定してもよい。また、第1係数の初期値は、上述の例に限定されず、ユーザが任意に設定してもよい。
【0088】
また、センサ装置10がフィルタリング装置20を内蔵する例について説明したが、これには限定されない。例えば、センサ装置10とフィルタリング装置20とが異なる装置として構成されてもよい。また、センサ装置10とフィルタリング装置20とが一体的に構成される場合も考えられる。この場合には、プロセッサ41が計測部14を実現し、取得部21と計測部14とが一体的に形成されてもよい。
【0089】
また、フィルタリング装置20の機能は、専用のハードウェアによっても、また、通常のコンピュータシステムによっても実現することができる。
【0090】
例えば、プロセッサ41によって実行されるフィルタリングプログラムP1を、コンピュータ読み取り可能な非一時的な記録媒体に格納して配布し、そのフィルタリングプログラムP1をコンピュータにインストールすることにより、上述の処理を実行する装置を構成することができる。
【0091】
このような記録媒体としては、例えば、フレキシブルディスク、CD−ROM(Compact Disc Read−Only Memory)、DVD(Digital Versatile Disc)、MO(Magneto−Optical Disc)が考えられる。
【0092】
また、フィルタリングプログラムP1をインターネットに代表される通信ネットワーク上のサーバ装置が有するディスク装置に格納しておき、例えば、搬送波に重畳させて、フィルタリングプログラムP1をコンピュータにダウンロードするようにしてもよい。
【0093】
また、通信ネットワークを介してフィルタリングプログラムP1を転送しながら、起動実行することによっても、上述の処理を達成することができる。
【0094】
さらに、フィルタリングプログラムP1の全部または一部をサーバ装置上で実行させ、その処理に関する情報をコンピュータが通信ネットワークを介して送受信しながらプログラムを実行することによっても、上述の処理を達成することができる。
【0095】
なお、上述の機能を、OS(Operating System)が分担して実現する場合またはOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、コンピュータにダウンロードしてもよい。
【0096】
また、フィルタリング装置20の機能を実現する手段は、ソフトウェアに限られず、その一部または全部を、回路を含む専用のハードウェアによって実現してもよい。
【0097】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態および変形が可能とされるものである。また、上述した実施の形態1、2は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。つまり、本発明の範囲は、実施の形態1、2ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【0098】
10 センサ装置、11 発光素子、12 レンズ、13 受光素子、14 計測部、15 素子制御部、16 システム制御部、20 フィルタリング装置、21 取得部、22 フィルタリング部、23 出力部、P1 フィルタリングプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】