(57)【要約】  エンコーダは、センサ部が出力した検出信号に基づいて、第１位置情報を生成する位置情報生成部と、第１位置情報をフィルタリング処理した第２位置情報を出力するＩＩＲフィルタ部とを備える。ＩＩＲフィルタ部は、カウンタ部が第１位置情報の所定の上位桁をカウント値として記憶し、入力部がカウント値を第１位置情報から減算して入力情報を生成する。演算部は遅延情報記憶部が記憶する内部演算結果である遅延情報と入力情報と所定のフィルタ係数とに基づいて、内部演算結果を生成するとともに、フィルタリング処理した出力情報を生成し、出力部がカウント値を出力情報に加算して第２位置情報を生成する。変更部は、遅延情報の値が所定の範囲外になった場合に、入力情報の変更単位に基づいて遅延情報の値を変更するとともにカウント値を変更する。
2013180165.tif 000002
【特許請求の範囲】
【請求項１】
被駆動体の位置情報に応じた検出信号を出力するセンサ部と、
前記センサ部が出力した前記検出信号に基づいて、前記位置情報を第１位置情報として生成する位置情報生成部と、
所定のフィルタ係数に基づいて前記第１位置情報をフィルタリング処理した第２位置情報を出力するＩＩＲフィルタ部と
を備え、
前記ＩＩＲフィルタ部は、
前記第１位置情報の所定の上位桁に対応する値をカウント値として記憶するカウンタ部と、
前記カウンタ部に記憶されている前記カウント値を前記第１位置情報から減算して入力情報を生成する入力部と、
前記入力情報に基づく内部演算結果を遅延情報として記憶する遅延情報記憶部と、
前記遅延情報記憶部が記憶する前記遅延情報と、前記入力情報と、前記所定のフィルタ係数とに基づいて、前記内部演算結果を生成するとともに、フィルタリング処理した出力情報を生成する演算部と、
前記カウント値を前記出力情報に加算して前記第２位置情報を生成する出力部と、
前記遅延情報の値が予め定められた所定の範囲外になった場合に、前記入力情報の変更単位に基づいて、前記遅延情報の値を変更するとともに、前記カウント値を変更する変更部と
を備えるエンコーダ。
【請求項２】
前記所定の範囲は、前記入力情報の変更単位と前記所定のフィルタ係数とに基づいて予め定められている
請求項１に記載のエンコーダ。
【請求項３】
前記変更部は、
前記所定の範囲内に前記遅延情報の値が入るように、前記遅延情報の値を変更する
請求項１又は請求項２に記載のエンコーダ。
【請求項４】
前記第１位置情報は、所定の桁数を有し、当該所定の桁数により循環する情報であり、
前記変更部は、前記第１位置情報に循環による不連続が生じた場合に、前記カウント値を前記第１位置情報の可変範囲に基づいて変更する
請求項１から請求項３のいずれか一項に記載のエンコーダ。
【請求項５】
前記遅延情報記憶部は、
前記内部演算結果を単位時間ごとに遅延させた情報を複数の前記遅延情報として記憶し、
前記演算部は、
複数の前記遅延情報及び前記内部演算結果のそれぞれを整数倍した値の総和として、前記出力情報を生成する
請求項１から請求項４のいずれか一項に記載のエンコーダ。
【請求項６】
被駆動体の位置情報に応じた検出信号を出力するセンサ部と、
所定の桁数を有し、当該所定の桁数により循環する第１位置情報として前記位置情報を、前記センサ部が出力した前記検出信号に基づいて生成する位置情報生成部と、
所定のフィルタ係数に基づいて前記第１位置情報をフィルタリング処理した第２位置情報を出力するＩＩＲフィルタ部と
を備え、
前記ＩＩＲフィルタ部は、
前記第１位置情報に基づく内部演算結果を遅延情報として記憶する遅延情報記憶部と、
前記遅延情報記憶部が記憶する前記遅延情報と、前記第１位置情報と、前記所定のフィルタ係数とに基づいて、前記内部演算結果を生成するとともに、前記第２位置情報を生成する演算部と、
前記第１位置情報の値に循環による不連続が生じた場合に、前記第１位置情報の可変範囲に基づいて前記遅延情報の値を変更する変更部と
を備えるエンコーダ。
【請求項７】
前記遅延情報記憶部は、
前記内部演算結果を単位時間ごとに遅延させた情報を複数の前記遅延情報として記憶し、
前記演算部は、
複数の前記遅延情報及び前記内部演算結果のそれぞれを整数倍した値の総和として、前記第２位置情報を生成する
請求項６に記載のエンコーダ。
【請求項８】
前記第２位置情報における前記第１位置情報の可変範囲に対応する下位ビットを前記位置情報として出力する後処理部
を備える請求項１から請求項７のいずれか一項に記載のエンコーダ。
【請求項９】
前記ＩＩＲフィルタ部は、双２次型のローパスフィルタを含む
請求項１から請求項８のいずれか一項に記載のエンコーダ。
【請求項１０】
請求項１から請求項９のいずれか一項に記載のエンコーダと、
前記被駆動体を駆動する駆動部と
を備える駆動装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダ、及び駆動装置に関する。
本願は、２０１２年５月３０日に出願された日本国特願２０１２−１２３１２１号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
外乱（ノイズ）による影響を低減するために、センサ部によって検出した検出信号（例えば、インクリメンタル信号）をフィルタリング処理するローパスフィルタなどのフィルタ部を備えるエンコーダが知られている（例えば、特許文献１を参照）。このようなエンコーダは、フィルタ部によりフィルタリング処理した検出信号に基づいて、被駆動体の位置情報を検出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】日本国特開２００２−８１９６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、例えば、上述のエンコーダは、インクリメンタル信号にローパスフィルタによってフィルタリング処理を実行する場合に、インクリメンタル信号の最大周波数以下の外乱（ノイズ）による影響を低減することが困難である。すなわち、上述のエンコーダは、例えば、検出信号の周波数によってフィルタの特性が制限される。そのため、上述のエンコーダは、例えば、ノイズなどの外乱が発生した場合に、被駆動体の位置情報を誤検出する場合がある。【０００５】
本発明に係る態様は、信頼性を向上させることができるエンコーダ、及び駆動装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る一態様のエンコーダは、被駆動体の位置情報に応じた検出信号を出力するセンサ部と、前記センサ部が出力した前記検出信号に基づいて、前記位置情報を第１位置情報として生成する位置情報生成部と、所定のフィルタ係数に基づいて前記第１位置情報をフィルタリング処理した第２位置情報を出力するＩＩＲフィルタ部とを備え、前記ＩＩＲフィルタ部は、前記第１位置情報の所定の上位桁に対応する値をカウント値として記憶するカウンタ部と、前記カウンタ部に記憶されている前記カウント値を前記第１位置情報から減算して入力情報を生成する入力部と、前記入力情報に基づく内部演算結果を遅延情報として記憶する遅延情報記憶部と、前記遅延情報記憶部が記憶する前記遅延情報と、前記入力情報と、前記所定のフィルタ係数とに基づいて、前記内部演算結果を生成するとともに、フィルタリング処理した出力情報を生成する演算部と、前記カウント値を前記出力情報に加算して前記第２位置情報を生成する出力部と、前記遅延情報の値が予め定められた所定の範囲外になった場合に、前記入力情報の変更単位に基づいて、前記遅延情報の値を変更するとともに、前記カウント値を変更する変更部とを備える。【０００７】
本発明に係る一態様のエンコーダは、被駆動体の位置情報に応じた検出信号を出力するセンサ部と、所定の桁数を有し、当該所定の桁数により循環する第１位置情報として前記位置情報を、前記センサ部が出力した前記検出信号に基づいて生成する位置情報生成部と、所定のフィルタ係数に基づいて前記第１位置情報をフィルタリング処理した第２位置情報を出力するＩＩＲフィルタ部とを備え、前記ＩＩＲフィルタ部は、前記第１位置情報に基づく内部演算結果を遅延情報として記憶する遅延情報記憶部と、前記遅延情報記憶部が記憶する前記遅延情報と、前記第１位置情報と、前記所定のフィルタ係数とに基づいて、前記内部演算結果を生成するとともに、前記第２位置情報を生成する演算部と、前記第１位置情報の値に循環による不連続が生じた場合に、前記第１位置情報の可変範囲に基づいて前記遅延情報の値を変更する変更部とを備える。【０００８】
本発明に係る一態様の駆動装置は、上記に記載のエンコーダと、前記被駆動体を駆動する駆動部とを備える。
【発明の効果】
【０００９】
本発明に係る態様によれば、信頼性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態によるエンコーダを示すブロック図である。
【図２】第１の実施形態におけるＩＩＲフィルタ部を示すブロック図である。
【図３】第１の実施形態におけるエンコーダの動作の一例を示す図である。
【図４】第１の実施形態におけるエンコーダの動作の別の一例を示す図である。
【図５】第１の実施形態におけるＩＩＲフィルタ部及び後処理部の動作の一例を示すフローチャートである。
【図６】第２の実施形態によるエンコーダを示すブロック図である。
【図７】第２の実施形態におけるＩＩＲフィルタ部を示すブロック図である。
【図８】第２の実施形態におけるＩＩＲフィルタ部の動作の一例を示すフローチャートである。
【図９】第３の実施形態によるエンコーダを示すブロック図である。
【図１０】第３の実施形態におけるＩＩＲフィルタ部を示すブロック図である。
【図１１】第３の実施形態におけるＩＩＲフィルタ部及び後処理部の動作の一例を示すフローチャートである。
【図１２】本実施形態における駆動装置の概略図である。
【図１３】本実施形態における減速機を備える駆動装置の概略図である。
【発明を実施するための形態】
【００１１】
以下、本発明の一実施形態によるエンコーダについて図面を参照して説明する。
［第１の実施形態］
図１は、本実施形態によるエンコーダ１の一例を示す概略ブロック図である。
図１において、エンコーダ１は、センサ部２０、位置情報生成部３０、ＩＩＲ（無限インパルス応答）フィルタ部４０、後処理部５０、及びＩ／Ｆ（インターフェース）部６０を備えている。
【００１２】
本実施形態では、エンコーダ１は、例えば、回転子（被駆動体）の位置情報（例えば、絶対位置情報）を検出し、検出した位置情報を、サーボアンプ２に出力するロータリエンコーダの一例を説明する。ここで、サーボアンプ２は、エンコーダ１によって検出した回転子の位置情報に基づいて、モータなどの駆動部の制御を行う。また、本実施形態では、エンコーダ１が、センサ部２０によって検出された検出信号をフィルタリング処理するのではなく、位置情報生成部３０によって生成された位置情報をＩＩＲフィルタ部４０によってフィルタリング処理する場合の一例を示している。なお、本実施形態におけるエンコーダ１は、センサ部２０によって検出された検出信号に対するフィルタリング処理と位置情報生成部３０によって生成された位置情報に対するフィルタリング処理との両方を備える構成であってもよい。
【００１３】
センサ部２０は、被駆動体（例えば、回転子）の位置情報に応じた検出信号を出力する。センサ部２０は、例えば、回転子に接続された円盤が有するアブソリュートパターン及びインクリメンタルパターンを検出し、アブソリュート信号（ＡＢＳ信号）及びインクリメンタル信号（ＩＮＣ信号）を検出信号として出力する。ここで、アブソリュートパターン及びインクリメンタルパターンは、位置情報を示すパターンである。なお、センサ部２０は、例えば、光学式によって上述のパターンを検出した検出信号を出力するものであってもよいし、磁気式によって上述のパターンを検出した検出信号を出力するものであってもよい。
また、センサ部２０は、ＡＢＳ検出部２１と、ＩＮＣ検出部２２とを備えている。
【００１４】
ＡＢＳ検出部２１は、アブソリュートパターンを検出する検出素子（例えば、受光素子や磁気検出素子）を備え、アブソリュートパターンに基づくＡＢＳ信号を検出信号として検出する。ＡＢＳ検出部２１は、検出したＡＢＳ信号を位置情報生成部３０に出力する。
ここで、アブソリュートパターンとは、絶対位置として位置情報を示すパターンであり、例えば、Ｍ（エム）系列パターンなどが形成されている。ここで、位置情報とは、移動角度（例、回転角度）や移動位置（例、回転位置）等を示す情報である。また、絶対位置とは、例えば、回転子の絶対角度位置又は絶対移動位置（例、絶対回転位置）のことである。
【００１５】
ＩＮＣ検出部２２は、内挿処理に用いるインクリメンタルパターンを検出する検出素子（例えば、受光素子や磁気検出素子）を備え、インクリメンタルパターンに基づくＩＮＣ信号を検出信号として検出する。ここで、ＩＮＣ信号は、例えば、図１の波形Ｗ１に示すような周期信号であり、位置情報の内挿処理に用いられる。また、ＩＮＣ信号には、例えば、互いに位相が９０度異なる２つの周期信号（Ａ相信号及びＢ相信号）が含まれる。
ＩＮＣ検出部２２は、検出したＩＮＣ信号（Ａ相信号及びＢ相信号）を位置情報生成部３０に出力する。
【００１６】
位置情報生成部３０は、センサ部２０が出力した検出信号に基づいて、位置情報を第１位置情報（ｘ）として生成する。例えば、位置情報生成部３０は、センサ部２０が出力したＡＢＳ信号に基づいて回転子の絶対番地情報を生成するとともに、ＩＮＣ信号に基づいて内挿処理を行い、高分解能の位置情報を生成する。位置情報生成部３０は、生成した位置情報（ｘ）をＩＩＲフィルタ部４０に出力する。
【００１７】
なお、位置情報（ｘ）は、所定の桁数（例えば、ｎビット）を有し、当該所定の桁数により循環する（例えば、０〜２ｎ−１で循環する）情報である。すなわち、位置情報生成部３０は、例えば、図１の波形Ｗ２に示すように循環する情報として位置情報（ｘ）を生成する。ここで、循環とは、図１の部分波形Ｗ２１の部分に示すように、例えば、回転子が一回転することにより位置情報の最大値から基準位置（例えば、原点０度）に戻る、又は基準位置から位置情報の最大値に戻ることを示す。ここで、この循環により、位置情報には値の不連続が生じる。すなわち、位置情報（ｘ）は、オーバーフロー（繰り上がり）又はアンダーフロー（繰り下がり）が発生した場合に値の不連続が発生する。
また、位置情報生成部３０は、絶対番地処理部３１と、内挿処理部３２と、合成処理部３３とを備えている。
【００１８】
絶対番地処理部３１は、センサ部２０のＡＢＳ検出部２１によって出力されたＡＢＳ信号に基づいて、回転子の絶対位置情報（絶対番地情報）を生成し、生成した絶対位置情報を合成処理部３３に出力する。なお、絶対番地処理部３１は、例えば、エンコーダ１に電源が投入された際に、絶対位置情報の初期値として回転子の絶対番地情報を生成する。なお、絶対番地処理部３１は、例えば、Ａ／Ｄ（アナログ／デジタル）変換部（不図示）又は二値化部（不図示）を備えており、ＡＢＳ信号をデジタル信号に変換した後に、回転子の絶対位置情報（絶対番地情報）を生成する。
【００１９】
内挿処理部３２は、センサ部２０のＩＮＣ検出部２２によって出力されたＩＮＣ信号（Ａ相信号及びＢ相信号）に基づいて内挿処理を行い、内挿（細分化）された位置情報を生成する。内挿処理部３２は、生成した位置情報を合成処理部３３に出力する。なお、内挿処理部３２は、例えば、Ａ／Ｄ変換部（不図示）を備えており、ＩＮＣ信号をデジタル信号に変換した後に、内挿処理を行う。
【００２０】
合成処理部３３は、絶対番地処理部３１が生成した絶対位置情報と内挿処理部３２が生成した内挿された位置情報とに基づいて、回転子の絶対位置情報を第１位置情報（ｘ）として生成する。すなわち、合成処理部３３は、エンコーダ１に電源が投入された際に、絶対番地処理部３１が生成した絶対位置情報と内挿処理部３２が生成した内挿された位置情報とを合成して第１位置情報（ｘ）を生成する。そして、電源投入以降では、合成処理部３３は、ＩＮＣ信号に基づく内挿された位置情報に基づいて、初期の絶対位置情報からの変位量を計数（カウント）することにより、第１位置情報（ｘ）を生成する。合成処理部３３は、生成した第１位置情報（ｘ）をＩＩＲフィルタ部４０に出力する。
【００２１】
ＩＩＲフィルタ部４０は、所定のフィルタ係数に基づいて第１位置情報（ｘ）をフィルタリング処理した第２位置情報（ｙ）を出力するフィルタ回路である。ＩＩＲフィルタ部４０は、例えば、双２次型のローパスフィルタを含んでいる。なお、本実施形態では、ＩＩＲフィルタ部４０は、デジタルフィルタである一例を示し、入力情報である第１位置情報（ｘ）と出力情報である第２位置情報（ｙ）とは、いずれもデジタル値である。ＩＩＲフィルタ部４０は、予め定められた所定のフィルタ係数に基づいて、第１位置情報（ｘ）に含まれる予め定められた所定の周波数以上の周波数成分を低減して、第２位置情報（ｙ）を生成する。ＩＩＲフィルタ部４０は、生成した第２位置情報（ｙ）を後処理部５０に出力する。ＩＩＲフィルタ部４０の詳細な構成については、図２を参照して後述する。
【００２２】
後処理部５０は、ＩＩＲフィルタ部４０によるフィルタリング処理によって回転子の絶対位置情報の可変範囲（０度以上３６０度未満の範囲（０〜２ｎ−１））から外れた第２位置情報（ｙ）を、この可変範囲内に収まるように補正する。例えば、後処理部５０は、第２位置情報（ｙ）における第１位置情報（ｘ）の可変範囲に対応する下位ビット（例えばｎビット）を位置情報（ｚ）として出力する。すなわち、後処理部５０は、第２位置情報（ｙ）を２ｎにより剰余演算することにより、回転子の絶対位置情報の可変範囲の位置情報（ｚ）を生成し、生成した位置情報（ｚ）をＩ／Ｆ部６０に出力する。
【００２３】
Ｉ／Ｆ部６０は、エンコーダ１の外部（例えば、サーボアンプ２）に回転子の位置情報を出力するインターフェース部である。Ｉ／Ｆ部６０は、例えば、ＲＳ４８５規格準拠の差動伝送信号によるシリアルデータ通信を行い、後処理部５０から出力された位置情報（ｚ）をサーボアンプ２に出力する。
【００２４】
次に、ＩＩＲフィルタ部４０の構成について、図２を参照して説明する。
図２は、本実施形態におけるＩＩＲフィルタ部４０の構成の一例を示す概略ブロック図である。
図２において、ＩＩＲフィルタ部４０は、遅延情報記憶部４１、オーバーフロー処理部４２、及び演算部７０を備えている。
なお、本実施形態におけるＩＩＲフィルタ部４０は、下記の式（１）によりｚ変換による伝達関数が示される双２次ＬＰＦ（ローパスフィルタ）である。
【００２５】
【数１】
2013180165.tif 000003
【００２６】
ここで、係数ｋ、ａ０、ａ１、ａ２、ｂ１、及びｂ２は、フィルタ係数を示している。
ここで、フィルタ係数ａ０、ａ１、及びａ２は、例えば、ａ０＝１、ａ１＝２、及びａ２＝１である。また、ｚ−１は、所定のサンプリング周期（所定の単位時間）分の遅延を示し、ｚ−２は、所定のサンプリング周期の２周期（２単位時間）分の遅延を示している。
なお、ＩＩＲフィルタ部４０は、例えば、直流ゲインが１倍のフィルタ回路である。
【００２７】
また、ＩＩＲフィルタ部４０には、例えば、−０．５〜＋０．５の範囲で循環するデータとして入力情報（ｘ）が入力される。ここで、入力情報（ｘ）は、例えば、一回転の絶対位置である０度〜３６０度が０〜２ｎ−１という２進数の形式により表現される場合に、これを−０．５〜＋０．５に読み替えて（変換して）表現される。
【００２８】
遅延情報記憶部４１は、入力情報（ｘ（ｎ））に基づく内部演算結果（ｄｎ）を遅延情報（ｄｎ−１、ｄｎ−２）として単位時間ごとに記憶する。遅延情報記憶部４１は、例えば、内部演算結果（ｄｎ）を単位時間（サンプリング周期）ごとに複数段数（例えば、２段数）に遅延させた各段の情報を複数の遅延情報（ｄｎ−１、ｄｎ−２）として記憶する。遅延情報記憶部４１は、演算結果記憶部４１１及び演算結果記憶部４１２を備えている。
【００２９】
演算結果記憶部４１１は、内部演算結果（ｄｎ）を単位時間ごとに記憶し、上述したｚ−１に対応する１段目の遅延情報（ｄｎ−１）として出力する。演算結果記憶部４１１は、記憶している１段目の遅延情報（ｄｎ−１）を演算結果記憶部４１２と、後述する乗算器（７２２、７２４）とに出力する。ここで、１段目の遅延情報（ｄｎ−１）は、１回前の内部演算結果に対応する。また、演算結果記憶部４１１は、後述するオーバーフロー処理部４２によって、遅延情報（ｄｎ−１）の値が変更される。例えば、演算結果記憶部４１１は、オーバーフロー処理部４２を用いた所定値（例、±０．２５）を増減させる処理と初期化のために任意の値を設定する処理とによって遅延情報の値が変更される。
【００３０】
演算結果記憶部４１２は、１段目の遅延情報（ｄｎ−１）を単位時間ごとに記憶し、上述したｚ−２に対応する２段目の遅延情報（ｄｎ−２）として出力する。演算結果記憶部４１２は、記憶している２段目の遅延情報（ｄｎ−２）を後述する乗算器（７２３，７２５）に出力する。ここで、２段目の遅延情報（ｄｎ−２）は、２回前の内部演算結果（＝１回前の１段目の遅延情報）に対応する。また、演算結果記憶部４１２は、後述するオーバーフロー処理部４２によって、遅延情報（ｄｎ−２）の値が変更される。
【００３１】
演算部７０は、遅延情報記憶部４１が記憶する遅延情報（ｄｎ−１、ｄｎ−２）と、第１位置情報（ｘ（ｎ））と、予め定められた所定のフィルタ係数（ｋ、ａ０、ａ１、ａ２、ｂ１、及びｂ２）とに基づいて、内部演算結果（ｄｎ）を生成するとともに、第２位置情報（ｙ（ｎ））を生成する。演算部７０は、例えば、遅延情報（ｄｎ−１、ｄｎ−２）と、ＩＩＲフィルタ部４０の入力情報である第１位置情報（ｘ（ｎ））と、所定のフィルタ係数（ｋ、ｂ１、及びｂ２）とに基づいて、内部演算結果（ｄｎ）を生成する。また、演算部７０は、例えば、内部演算結果（ｄｎ）と、遅延情報（ｄｎ−１、ｄｎ−２）と、所定のフィルタ係数（ａ０、ａ１、及びａ２）とに基づいて、ＩＩＲフィルタ部４０の出力情報である第２位置情報（ｙ（ｎ））を生成する。ここで、係数ａ０＝１、係数ａ１＝２、及び係数ａ２＝１であるので、演算部７０は、複数の遅延情報（ｄｎ−１、ｄｎ−２）及び内部演算結果（ｄｎ）のそれぞれを整数倍した値の総和として、第２位置情報（ｙ（ｎ））を生成する。
また、演算部７０は、乗算器７０１、減算器７１１、加算器７１２〜７１４、及び乗算器７２１〜７２５を備えている。
【００３２】
乗算器７０１は、ＩＩＲフィルタ部４０に供給された入力情報（ｘ（ｎ））と係数ｋとを乗算し、乗算結果を減算器７１１に出力する。
減算器７１１は、乗算器７０１が出力する演算結果から後述する加算器７１２が出力する演算結果を減算し、減算演算結果として内部演算結果（ｄｎ）を出力する。減算器７１１は、内部演算結果（ｄｎ）を、演算結果記憶部４１１及び乗算器７２１に出力する。ここで、係数ａ０＝１、係数ａ１＝２、及び係数ａ２＝１であるので、入力情報（ｘ（ｎ））がサンプリング周期に対して十分にゆっくり変化している場合に、減算器７１１は、入力情報（ｘ（ｎ））の１／４（４分の１）に近い値を内部演算結果（ｄｎ）として出力する。
【００３３】
乗算器７２１は、減算器７１１が出力する内部演算結果（ｄｎ）と係数ａ０（＝１）とを乗算し、乗算演算結果を加算器７１３に出力する。なお、係数ａ０＝１である場合には、乗算器７２１を省略した形態（備えない形態）してもよい。
加算器７１３は、乗算器７２１が出力する演算結果と、後述する加算器７１４が出力する演算結果とを加算し、加算演算結果として第２位置情報（ｙ（ｎ））を出力する。
【００３４】
乗算器７２２は、演算結果記憶部４１１が出力する遅延情報（ｄｎ−１）と係数ａ１（＝２）とを乗算し、乗算演算結果を加算器７１４に出力する。なお、係数ａ１＝２である場合には、乗算器７２１を１ビットの左シフト処理に置き換えてもよい。
乗算器７２３は、演算結果記憶部４１２が出力する遅延情報（ｄｎ−２）と係数ａ２（＝１）とを乗算し、乗算演算結果を加算器７１４に出力する。なお、係数ａ２＝１である場合には、乗算器７２２を省略した形態（備えない形態）してもよい。
加算器７１４は、乗算器７２２が出力する演算結果と、乗算器７２３が出力する演算結果とを加算し、加算演算結果を加算器７１３に出力する。
【００３５】
乗算器７２４は、演算結果記憶部４１１が出力する遅延情報（ｄｎ−１）と係数ｂ１とを乗算し、乗算演算結果を加算器７１２に出力する。
乗算器７２５は、演算結果記憶部４１２が出力する遅延情報（ｄｎ−２）と係数ｂ２とを乗算し、乗算演算結果を加算器７１２に出力する。
加算器７１２は、乗算器７２４が出力する演算結果と、乗算器７２５が出力する演算結果とを加算し、加算演算結果を加算器７１３に出力する。
なお、係数ｂ１及び係数ｂ２は、係数ａ０＝１、係数ａ１＝２、及び係数ａ２＝１である場合、且つ、入力情報（ｘ（ｎ））がサンプリング周期に対して十分にゆっくり変化している場合に、内部演算結果（ｄｎ）が、入力情報（ｘ（ｎ））の１／４に近い値になるように、予め定められている。
【００３６】
オーバーフロー処理部４２（変更部）は、第１位置情報である入力情報（ｘ（ｎ））の値に、図１の部分波形Ｗ２１に示すような循環による不連続が生じた場合に、第１位置情報の可変範囲（例えば、−０．５〜＋０．５の範囲）に基づいて遅延情報（ｄｎ−１、ｄｎ−２）の値を変更する。ここで、第１位置情報の可変範囲とは、第１位置情報が循環する範囲のことであり、循環による不連続が発生した場合の不連続の大きさは、この可変範囲の大きさと一致する。オーバーフロー処理部４２は、例えば、入力情報（ｘ（ｎ））が＋０．５付近から繰り上がって−０．５付近に変化した場合に、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）の値を変更する。この場合、オーバーフロー処理部４２は、例えば、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）のそれぞれの値を、−０．２５だけ変化させた値（０．２５だけ減算した値）に変更する。
【００３７】
また、オーバーフロー処理部４２は、例えば、入力情報（ｘ（ｎ））が−０．５付近から繰り下がって＋０．５付近に変化した場合に、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）の値を変更する。この場合、オーバーフロー処理部４２は、例えば、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）のそれぞれの値を、＋０．２５だけ変化させた値（０．２５だけ加算した値）に変更する。
【００３８】
このように、本実施形態では、オーバーフロー処理部４２は、入力情報（ｘ（ｎ））の値に循環による不連続が生じた場合に、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）の値に循環による不連続が発生しないように（不連続の影響が低減されるように）、遅延情報（ｄｎ−１、ｄｎ−２）の値を変更する。
【００３９】
次に、本実施形態におけるエンコーダ１の動作について、図面を参照して説明する。
図３及び図４は、本実施形態におけるエンコーダ１の動作の一例を示す図である。
図３は、回転子が位置情報の繰り上がり方向に連続して回転している場合の動作の一例を示している。また、図４は、回転子が位置情報の繰り下がり方向に連続して回転している場合の動作の一例を示している。
図３（ａ）及び図４（ａ）は、位置情報生成部３０が出力する第１位置情報（ｘ）の出力波形（波形Ｗ３、波形Ｗ６）を示している。また、図３（ｂ）及び図４（ｂ）は、ＩＩＲフィルタ部４０が出力する第２位置情報（ｙ）の出力波形（波形Ｗ４、波形Ｗ７）を示している。また、図３（ｃ）及び図４（ｃ）は、後処理部５０が出力する位置情報（ｚ）の出力波形（波形Ｗ５、波形Ｗ８）を示している。
【００４０】
まず、本実施形態におけるエンコーダ１の全体の動作について説明する。
本実施形態におけるエンコーダ１において、位置情報生成部３０は、センサ部２０が出力した検出信号（ＡＢＳ信号及びＩＮＣ信号）に基づいて、位置情報を第１位置情報（ｘ）として生成する。例えば、位置情報生成部３０の合成処理部３３は、エンコーダ１に電源が投入された際に、絶対番地処理部３１がＡＢＳ信号に基づいて生成した絶対位置情報と内挿処理部３２がＩＮＣ信号に基づいて生成した内挿された位置情報とを合成して第１位置情報（ｘ）を生成する。そして、電源投入以降では、合成処理部３３は、ＩＮＣ信号に基づく内挿された位置情報に基づいて、初期の絶対位置情報からの変位量を計数（カウント）することにより、第１位置情報（ｘ）を生成する。ここで、合成処理部３３は、図３（ａ）の波形Ｗ３及び図４（ａ）の波形Ｗ６に示すような第１位置情報（ｘ）をＩＩＲフィルタ部４０に出力する。なお、第１位置情報（ｘ）の値は、例えば、最小位置Ｐｍｉｎ（＝−０．５）〜最大位置Ｐｍａｘ（＝＋０．５）の範囲の値となる。
【００４１】
次に、ＩＩＲフィルタ部４０は、位置情報生成部３０が生成した第１位置情報（ｘ）に、予め定められた所定の周波数以上の成分を低減するフィルタリング処理を実行し、図３（ｂ）の波形Ｗ４及び図４（ｂ）の波形Ｗ７に示すような第２位置情報（ｙ）を生成する。ここで、第２位置情報（ｙ）は、第１位置情報（ｘ）に対して遅延が生じる。また、循環による不連続が生じた場合に、ＩＩＲフィルタ部４０が遅延情報（ｄｎ−１、ｄｎ−２）を変更することにより、第２位置情報（ｙ）は、最小位置Ｐｍｉｎ（＝−０．５）〜最大位置Ｐｍａｘ（＝＋０．５）の範囲外の値が出現する。
【００４２】
例えば、図３（ｂ）において、時刻Ｔ１０、時刻Ｔ１２、時刻Ｔ１４、時刻Ｔ１５、及び時刻Ｔ１６において、ＩＩＲフィルタ部４０は、遅延情報記憶部４１に記憶されている遅延情報（ｄｎ−１、ｄｎ−２）を変更する。そのため、第２位置情報（ｙ）は、時刻Ｔ１０、時刻Ｔ１２、時刻Ｔ１４、時刻Ｔ１５、及び時刻Ｔ１６において、最小位置Ｐｍｉｎ（＝−０．５）〜最大位置Ｐｍａｘ（＝＋０．５）の範囲外の値（例、位置情報の値Ｐ−）が出現する。
また、例えば、図４（ｂ）において、時刻Ｔ２０、時刻Ｔ２２、時刻Ｔ２４、時刻Ｔ２５、及び時刻Ｔ２６において、ＩＩＲフィルタ部４０は、遅延情報記憶部４１に記憶されている遅延情報（ｄｎ−１、ｄｎ−２）を変更する。そのため、第２位置情報（ｙ）は、時刻Ｔ２０、時刻Ｔ２２、時刻Ｔ２４、時刻Ｔ２５、及び時刻Ｔ２６において、最小位置Ｐｍｉｎ（＝−０．５）〜最大位置Ｐｍａｘ（＝＋０．５）の範囲外の値（例、位置情報の値Ｐ＋）が出現する。
【００４３】
次に、後処理部５０は、ＩＩＲフィルタ部４０が出力する第２位置情報（ｙ）を、回転子の位置情報の可変範囲内（−０．５〜＋０．５の範囲内）に収まるように、図３（ｂ）の波形Ｗ５及び図４（ｂ）の波形Ｗ８に示すような位置情報（ｚ）に補正する。後処理部５０は、例えば、第２位置情報（ｙ）における第１位置情報（ｘ）の可変範囲に対応する下位ビット（例えばｎビット）を位置情報（ｚ）として出力する。
【００４４】
例えば、図３（ｃ）の時刻Ｔ１０〜時刻Ｔ１１において、後処理部５０は、第２位置情報（ｙ）における部分波形Ｗ４１の部分が可変範囲内（−０．５〜＋０．５の範囲内）に収まるように補正する。また、同様に、図３（ｃ）の時刻Ｔ１２〜時刻Ｔ１３において、後処理部５０は、第２位置情報（ｙ）における部分波形Ｗ４２の部分が可変範囲内（−０．５〜＋０．５の範囲内）に収まるように補正する。また、同様に、図３（ｃ）の時刻Ｔ１４〜時刻Ｔ１５において、後処理部５０は、第２位置情報（ｙ）における部分波形Ｗ４３の部分が可変範囲内（−０．５〜＋０．５の範囲内）に収まるように補正する。
また、例えば、図４（ｃ）の時刻Ｔ２０〜時刻Ｔ２１において、後処理部５０は、第２位置情報（ｙ）における部分波形Ｗ７１の部分が可変範囲内（−０．５〜＋０．５の範囲内）に収まるように補正する。また、同様に、図４（ｃ）の時刻Ｔ２２〜時刻Ｔ２３において、後処理部５０は、第２位置情報（ｙ）における部分波形Ｗ７２の部分が可変範囲内（−０．５〜＋０．５の範囲内）に収まるように補正する。また、同様に、図４（ｃ）の時刻Ｔ２４〜時刻Ｔ２５において、後処理部５０は、第２位置情報（ｙ）における部分波形Ｗ７３の部分が可変範囲内（−０．５〜＋０．５の範囲内）に収まるように補正する。
【００４５】
次に、Ｉ／Ｆ部６０は、後処理部５０から出力された位置情報を、エンコーダ１の外部（例えば、サーボアンプ２）に出力する。
【００４６】
次に、本実施形態におけるＩＩＲフィルタ部４０及び後処理部５０の動作について説明する。
図５は、本実施形態におけるＩＩＲフィルタ部４０及び後処理部５０の動作の一例を示すフローチャートである。
【００４７】
図５において、まず、エンコーダ１に電源が投入（電源ＯＮ）される（ステップＳ１０１）。
次に、位置情報生成部３０は、ＩＩＲフィルタ部４０に入力情報（ｘ（０））を供給する（ステップＳ１０２）。すなわち、位置情報生成部３０は、入力情報の初期値（ｘ（０））をＩＩＲフィルタ部４０に供給して入力情報を初期化する。
【００４８】
次に、ＩＩＲフィルタ部４０は、内部演算結果である遅延情報（ｄｎ−１、ｄｎ−２）を初期化する（ステップＳ１０３）。すなわち、ＩＩＲフィルタ部４０の演算部７０は、入力情報の初期値（ｘ（０））に基づいて、入力情報（ｘ（０））の１／４に対応する内部演算結果（ｄｎ）を算出し、算出した内部演算結果（ｄｎ）を順次、演算結果記憶部４１１及び演算結果記憶部４１２に記憶させる。これにより、ＩＩＲフィルタ部４０は、遅延情報（ｄｎ−１、ｄｎ−２）を初期化する。すなわち、ＩＩＲフィルタ部４０は、サンプリング周期よりも十分に長い期間、入力情報（ｘ（０））を供給し続けることにより、遅延情報（ｄｎ−１、ｄｎ−２）を入力情報（ｘ（０））の１／４の値に初期化する。また、ＩＩＲフィルタ部４０は、オーバーフロー処理部４２からの信号により遅延情報（ｄｎ−１、ｄｎ−２）を直接的に書き換え、入力情報（ｘ（０））の１／４の値に初期化する。
【００４９】
次に、位置情報生成部３０は、ＩＩＲフィルタ部４０に入力情報（ｘ（ｎ））を供給する（ステップＳ１０４）。すなわち、位置情報生成部３０は、位置情報を生成し、生成した位置情報を入力情報（ｘ（ｎ））としてＩＩＲフィルタ部４０に供給する。
【００５０】
次に、オーバーフロー処理部４２は、第１位置情報である入力情報（ｘ（ｎ））の値に循環が発生しているか否かを判定する（ステップＳ１０５）。すなわち、オーバーフロー処理部４２は、入力情報（ｘ（ｎ））の値に、循環による不連続が生じているか否かを判定する。オーバーフロー処理部４２は、循環による不連続が生じていると判定した場合（ステップＳ１０５：ＹＥＳ）に、処理をステップＳ１０６に進める。また、オーバーフロー処理部４２は、循環による不連続が生じていないと判定した場合（ステップＳ１０５：ＮＯ）に、処理をステップＳ１０７に進める。
【００５１】
ステップＳ１０６において、オーバーフロー処理部４２は、第１位置情報の可変範囲（例えば、−０．５〜＋０．５の範囲）に基づいて、演算結果記憶部４１１及び演算結果記憶部４１２に記憶されている遅延情報（ｄｎ−１、ｄｎ−２）の値を書き換える。すなわち、オーバーフロー処理部４２は、内部演算結果である遅延情報（ｄｎ−１、ｄｎ−２）の値において、循環による不連続の影響が低減されるように、遅延情報（ｄｎ−１、ｄｎ−２）の値を変更する。オーバーフロー処理部４２は、遅延情報（ｄｎ−１、ｄｎ−２）の値を変更した後、処理をステップＳ１０７に進める。
【００５２】
次に、ステップＳ１０７において、演算部７０は、内部演算結果（ｄｎ）を算出する。
すなわち、演算部７０は、遅延情報記憶部４１に記憶されている遅延情報（ｄｎ−１、ｄｎ−２）と、入力情報（ｘ（ｎ））と、所定のフィルタ係数（ｋ、ｂ１、及びｂ２）とに基づいて、内部演算結果（ｄｎ）を生成する。ここでは、例えば、演算部７０の乗算器（７０１，７２４，７２５）、減算器７１１、及び加算器７１２が、内部演算結果（ｄｎ）を生成する。
【００５３】
次に、演算部７０は、出力情報（ｙ（ｎ））を算出する（ステップＳ１０８）。すなわち、演算部７０は、内部演算結果（ｄｎ）と、遅延情報記憶部４１に記憶されている遅延情報（ｄｎ−１、ｄｎ−２）と、所定のフィルタ係数（ａ０、ａ１、及びａ２）とに基づいて、出力情報（ｙ（ｎ））を生成する。ここでは、例えば、演算部７０の乗算器（７２１，７２２，７２３）、及び加算器（７１３，７１４）が、第２位置情報である出力情報（ｙ（ｎ））を生成する。
【００５４】
次に、後処理部５０は、位置情報（ｚ（ｎ））を算出する（ステップＳ１０９）。すなわち、後処理部５０は、図３（ｃ）及び図４（ｃ）に示すように、ＩＩＲフィルタ部４０が出力する第２位置情報（ｙ）が回転子の位置情報の可変範囲内（−０．５〜＋０．５の範囲内）に収まるように、位置情報（ｚ（ｎ））を生成する。
【００５５】
次に、遅延情報記憶部４１の演算結果記憶部４１２は、遅延情報（ｄｎ−２）を更新する（ステップＳ１１０）。すなわち、演算結果記憶部４１２は、演算結果記憶部４１１が記憶する遅延情報（ｄｎ−１）を遅延情報（ｄｎ−２）として記憶する。
次に、遅延情報記憶部４１の演算結果記憶部４１１は、遅延情報（ｄｎ−１）を更新する（ステップＳ１１１）。すなわち、演算結果記憶部４１１は、演算部７０算出した内部演算結果（ｄｎ）を遅延情報（ｄｎ−１）として記憶する。
ＩＩＲフィルタ部４０は、ステップＳ１１０の処理後に、処理をステップＳ１０４に戻し、ステップＳ１０４〜ステップＳ１１０の処理を繰り返す。なお、ＩＩＲフィルタ部４０は、ステップＳ１０４〜ステップＳ１１０の一連の処理を、単位時間（サンプリング周期）ごとに実行する。
【００５６】
以上説明したように、本実施形態におけるエンコーダ１は、センサ部２０が、回転子の位置情報に応じた検出信号（例、ＡＢＳ信号、ＩＮＣ信号）を出力する。位置情報生成部３０は、第１位置情報として位置情報（ｘ）を、センサ部２０が出力した検出信号に基づいて生成する。ここで、位置情報（ｘ）は所定の桁数を有し、当該所定の桁数により循環する情報である。ＩＩＲフィルタ部４０は、所定のフィルタ係数に基づいて第１位置情報（ｘ）をフィルタリング処理した第２位置情報（ｙ）を出力する。ＩＩＲフィルタ部４０は、遅延情報記憶部４１が、第１位置情報（ｘ）に基づく内部演算結果（ｄｎ）を遅延情報（例、ｄｎ−１、ｄｎ−２）として記憶する。演算部７０は、遅延情報記憶部４１が記憶する遅延情報と、第１位置情報（ｘ）と、所定のフィルタ係数とに基づいて、内部演算結果（ｄｎ）を生成するとともに、第２位置情報（ｙ）を生成する。オーバーフロー処理部４２は、第１位置情報（ｘ）の値に循環による不連続が生じた場合に、第１位置情報（ｘ）の可変範囲（例、−０．５〜＋０．５の範囲）に基づいて遅延情報の値（例、ｄｎ−１、ｄｎ−２）を変更する。
【００５７】
これにより、本実施形態におけるエンコーダ１は、位置情報生成部３０が生成した位置情報（ｘ）をフィルタリング処理するため、例えば、検出信号（ＩＮＣ信号）の周波数によってＩＩＲフィルタ部４０の特性が制限されることがない。そのため、本実施形態におけるエンコーダ１は、ＩＩＲフィルタ部４０により外乱（ノイズ）を低減可能な周波数範囲を広げることができる。例えば、本実施形態におけるエンコーダ１は、ＩＮＣ信号の最大周波数以下の外乱（ノイズ）による影響を低減することが可能である。したがって、本実施形態におけるエンコーダ１は、被駆動体（例、回転子）の位置情報の誤検出を低減することができる。
【００５８】
また、オーバーフロー処理部４２は、第１位置情報（ｘ）の値に循環による不連続が生じた場合に、第１位置情報（ｘ）の可変範囲（例、−０．５〜＋０．５の範囲）に基づいて遅延情報の値（例、ｄｎ−１、ｄｎ−２）を変更する。これにより、ＩＩＲフィルタ部４０は、内部演算結果である遅延情報（ｄｎ−１、ｄｎ−２）の値において、上述した循環による不連続による影響を低減させることができる。そのため、本実施形態におけるエンコーダ１は、例えば、位置情報に循環による不連続が発生した場合であっても、被駆動体（例、回転子）の位置情報の誤検出を低減することができる。
さらに、ＩＩＲフィルタ部４０は、ＩＩＲフィルタにより構成されているので、演算量の少ない簡易な構成が可能である。そのため、本実施形態におけるエンコーダ１は、簡易な構成により、被駆動体（例、回転子）の位置情報の誤検出を低減することができ、信頼性を向上させることができる。
【００５９】
ところで、ＩＮＣ信号にフィルタ部を備える従来のエンコーダでは、ＩＮＣ信号の最大周波数以下の外乱（ノイズ）による影響を低減するために、回転子の回転速度に応じて、フィルタ部の周波数特性を切り替えたり、フィルタ部の使用を停止したりすることが考えられる。このような場合に、従来のエンコーダでは、回転子の回転速度に応じて、位置情報を出力する遅延量が異なるため、例えば、ロボット装置などのモータ制御を正確に行うことができない場合がある。これに対して、本実施形態におけるエンコーダ１は、位置情報を出力する遅延量を変化させずに、外乱（ノイズ）を低減可能な周波数範囲を広げることができる。そのため、本実施形態におけるエンコーダ１は、例えば、ロボット装置などのモータ制御を正確に行うことができる。
【００６０】
また、本実施形態では、遅延情報記憶部４１は、内部演算結果を単位時間ごとに遅延させた情報を複数の遅延情報（ｄｎ−１、ｄｎ−２）として記憶する。演算部７０は、複数の遅延情報（ｄｎ−１、ｄｎ−２）及び内部演算結果（ｄｎ）のそれぞれを整数倍した値の総和として、第２位置情報（ｙ）を生成する。
これにより、本実施形態におけるエンコーダ１は、演算量の少ない簡易な構成により第２位置情報（ｙ）を生成することができる。そのため、本実施形態におけるエンコーダ１は、簡易な構成により、被駆動体（例、回転子）の位置情報の誤検出を低減することができ、信頼性を向上させることができる。
【００６１】
また、本実施形態におけるエンコーダ１は、第２位置情報（ｙ）における第１位置情報（ｘ）の可変範囲に対応する下位ビットを位置情報（ｚ）として出力する後処理部５０を備えている。
これにより、本実施形態におけるエンコーダ１は、位置情報に循環による不連続が発生した場合に、第２位置情報（ｙ）を第１位置情報（ｘ）の可変範囲に変換することができる。また、この場合、後処理部５０は、下位ビットを位置情報（ｚ）として出力する簡易な構成であるので、本実施形態におけるエンコーダ１は、簡易な構成により、第２位置情報（ｙ）を第１位置情報（ｘ）の可変範囲に変換することができる。
【００６２】
また、本実施形態では、ＩＩＲフィルタ部４０は、双２次型のローパスフィルタを含んでいる。これにより、ＩＩＲフィルタ部４０は、演算量の少ない簡易な構成が可能である。
【００６３】
次に、第２の実施形態について、図面を参照して説明する。
［第２の実施形態］
図６は、本実施形態によるエンコーダ１ａの一例を示す概略ブロック図である。
図６において、エンコーダ１ａは、センサ部２０、位置情報生成部３０、ＩＩＲフィルタ部４０ａ、及びＩ／Ｆ部６０を備えている。この図において、図１と同一の構成については同一の符号を付し、その説明を省略する。
【００６４】
本実施形態では、エンコーダ１ａは、第１の実施形態と同様に、例えば、回転子（被駆動体）の位置情報（例えば、絶対位置情報）を検出し、検出した位置情報を、サーボアンプ２に出力するロータリエンコーダの一例を説明する。エンコーダ１ａは、センサ部２０によって検出された検出信号をフィルタリング処理するのではなく、位置情報生成部３０によって生成された位置情報をＩＩＲフィルタ部４０ａによってフィルタリング処理する場合の一例を示している。
また、本実施形態におけるエンコーダ１ａは、後処理部５０を備えていない点と、ＩＩＲフィルタ部４０ａの構成が異なる点が、第１の実施形態におけるエンコーダ１とは異なる。
【００６５】
ＩＩＲフィルタ部４０ａは、所定のフィルタ係数に基づいて第１位置情報（ｘ）をフィルタリング処理した第２位置情報（ｙ）を出力するフィルタ回路である。ＩＩＲフィルタ部４０ａは、例えば、双２次型のローパスフィルタを含んでいる。なお、本実施形態では、ＩＩＲフィルタ部４０ａは、デジタルフィルタである一例を示し、第１位置情報（ｘ）と出力情報である第２位置情報（ｙ）とは、いずれもデジタル値である。ＩＩＲフィルタ部４０ａは、予め定められた所定のフィルタ係数に基づいて、第１位置情報（ｘ）に含まれる予め定められた所定の周波数以上の周波数成分を低減して、第２位置情報（ｙ）を生成する。
なお、ここでは、第１位置情報（ｘ）の範囲は任意であり、例えば、上述した循環が発生しない位置情報である。また、第１位置情報（ｘ）の変化はある程度ゆっくり（例、“１”だけ変化するのに速くてもサンプリング周期の１０サイクル程度かかる）であることを前提とする。ここでの“１”は、例えば、ＩＮＣ信号の１パルス、回転子の１回転などに限らず、回転子の最高速度の仕様から逆算して、ＩＩＲフィルタ部４０ａの第１位置情報（ｘ）のスケール（範囲）を決定し、このスケールに基づいて換算して決定されてもよい。
【００６６】
次に、ＩＩＲフィルタ部４０ａの構成について説明する。
図７は、本実施形態におけるＩＩＲフィルタ部４０ａを示すブロック図である。
ＩＩＲフィルタ部４０ａは、遅延情報記憶部４１、オーバーフロー処理部４２ａ、カウンタ部４３、入力処理部４４、出力処理部４５及び演算部７０を備えている。この図において、図２と同一の構成については同一の符号を付し、その説明を省略する。
【００６７】
カウンタ部４３は、第１位置情報（ｘ）の所定の上位桁（例、上位ビット）に対応する値をカウント値として記憶する。カウンタ部４３は、前述した“１”を変更単位としてカウンタ値を変更するカウンタ回路である。
また、カウンタ部４３は、オーバーフロー処理部４２ａの指令に基づいて、カウント値を変更する。
【００６８】
入力処理部４４（入力部）は、カウンタ部４３に記憶されているカウント値を第１位置情報（ｘ）から減算して入力情報（ｘｍ）を生成する。すなわち、入力処理部４４は、第１位置情報（ｘ）からカウント値に対応した所定の上位桁を減算して、処理桁数（処理ビット数）を低減した入力情報（ｘｍ）を生成する。入力処理部４４は、生成した入力情報（ｘｍ）を演算部７０に出力する。
ここで、例えば、入力処理部４４は、減算器４４１を備えている。減算器４４１は、位置情報生成部３０から出力された第１位置情報（ｘ（ｎ））からカウンタ部４３が記憶するカウント値を減算することにより入力情報（ｘｍ（ｎ））を生成し、生成した入力情報（ｘｍ（ｎ））を演算部７０に出力する。ここで、入力情報（ｘｍ）の変更単位は、オーバーフロー処理により（カウント値の変更により）入力情報（ｘｍ）に生じる不連続の大きさ（例えば、“１”）に対応する。
なお、本実施形態における演算部７０は、上述の入力情報（ｘｍ）に基づいて、出力情報（ｙｍ）を生成する。ここで、出力情報（ｙｍ）の変更単位は、オーバーフロー処理により（カウント値の変更により）出力情報（ｙｍ）に生じる不連続の大きさ（例えば、“１”）に対応する。
【００６９】
出力処理部４５（出力部）は、カウンタ部４３に記憶されているカウント値を後述する出力情報（ｙｍ）に加算して第２位置情報（ｙ）を生成する。すなわち、出力処理部４５は、演算部７０が出力する出力情報（ｙｍ）と、カウント値に対応した所定の上位桁とを加算して、元の第１位置情報（ｘ）の処理桁数（処理ビット数）の第２位置情報（ｙ）を生成する。出力処理部４５は、生成した第２位置情報（ｙ）をＩ／Ｆ部６０に出力する。
ここで、例えば、出力処理部４５は、加算器４５１を備えている。加算器４５１は、演算部７０から出力された出力情報（ｙｍ（ｎ））と、カウンタ部４３が記憶するカウント値とを加算することにより第２位置情報（ｙ（ｎ））を生成し、生成した第２位置情報（ｙ（ｎ））をＩ／Ｆ部６０に出力する。
【００７０】
オーバーフロー処理部４２ａ（変更部）は、遅延情報記憶部４１が記憶する遅延情報（ｄｎ−１、ｄｎ−２）の値が予め定められた所定の範囲外になった場合に、入力情報（ｘｍ（ｎ））の変更単位（例、±１単位）に基づいて、遅延情報（ｄｎ−１、ｄｎ−２）の値を変更する。オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）の値を変更するとともに、カウンタ部４３が記憶するカウント値を変更する。
【００７１】
ここで、上述の所定の範囲は、例えば、−０．１２５〜＋０．１２５の範囲であり、入力情報（ｘｍ（ｎ））の変更単位（例、±１単位）と所定のフィルタ係数（例、ａ０＝１、ａ１＝２、ａ２＝１）とに基づいて予め定められている。すなわち、係数ａ０＝１、係数ａ１＝２、及び係数ａ２＝１であるので、例えば、入力情報（ｘｍ（ｎ））がサンプリング周期に対して十分にゆっくり変化している場合に、減算器７１１は、入力情報（ｘｍ（ｎ））の１／４（４分の１）に近い値を内部演算結果（ｄｎ）として出力する。そのため、入力情報（ｘｍ（ｎ））が、例えば、−０．５〜＋０．５の範囲で循環する場合に、内部演算結果（ｄｎ）は、例えば、−０．１２５〜＋０．１２５の範囲となる。そこで、本実施形態では、上述の所定の範囲は、例えば、−０．１２５〜＋０．１２５の範囲に予め定められている。なお、所定の範囲は、フィルタの件数や入力情報（ｘｍ（ｎ））の演算対応範囲に応じて、選択的に設定可能である。
【００７２】
また、オーバーフロー処理部４２ａは、上述の所定の範囲（例、−０．１２５〜＋０．１２５の範囲）内に遅延情報（ｄｎ−１、ｄｎ−２）の値が入る（収まる）ように、遅延情報（ｄｎ−１、ｄｎ−２）の値を変更する。例えば、オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）の値が＋０．１２５以上になった場合に、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）のそれぞれの値を、−０．２５だけ変化させた値（０．２５だけ減算した値）に変更する。また、例えば、オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）の値が−０．１２５以下になった場合に、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）のそれぞれの値を、＋０．２５だけ変化させた値（０．２５だけ加算した値）に変更する。
【００７３】
また、オーバーフロー処理部４２ａは、カウンタ部４３が記憶するカウント値を変更する場合に、カウンタ部４３に上述した変更単位（例、±１単位）でカウント値を変更させる。例えば、オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）の値が＋０．１２５以上になった場合に、カウンタ部４３に＋１計数させてカウント値を変更させる。この場合、カウント値が変化するが、次回に生成される第２位置情報（ｙ）はカウント値と出力情報（ｙｍ（ｎ））との加算値になるため、第２位置情報（ｙ）の不連続は発生しない。
また、例えば、オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）の値が−０．１２５以下になった場合に、カウンタ部４３に−１計数させてカウント値を変更させる。この場合、カウント値が変化するが、次回に生成される第２位置情報（ｙ）はカウント値と出力情報（ｙｍ（ｎ））との加算値になるため、上述と同様に第２位置情報（ｙ）の不連続は発生しない。
【００７４】
次に、本実施形態におけるエンコーダ１ａの動作について、図面を参照して説明する。
まず、本実施形態におけるエンコーダ１ａの全体の動作は、ＩＩＲフィルタ部４０ａの動作が異なる点と、第１位置情報（ｘ）に循環が発生しないため、後処理部５０の処理が不要になる点を除き、第１の実施形態におけるエンコーダ１と同様である。
【００７５】
次に、本実施形態におけるＩＩＲフィルタ部４０ａの動作について説明する。
図８は、本実施形態におけるＩＩＲフィルタ部４０ａの動作の一例を示すフローチャートである。
【００７６】
図８において、まず、エンコーダ１ａに電源が投入（電源ＯＮ）される（ステップＳ２０１）。
次に、位置情報生成部３０は、ＩＩＲフィルタ部４０ａに第１位置情報（ｘ（０））を供給する（ステップＳ２０２）。すなわち、位置情報生成部３０は、第１位置情報の初期値（ｘ（０））をＩＩＲフィルタ部４０ａに供給して入力情報（第１位置情報）を初期化する。
【００７７】
次に、オーバーフロー処理部４２ａは、入力情報（ｘｍ（０））が所定の範囲（−０．５〜＋０．５の範囲）に収まるように、カウンタ部４３のカウント値を初期化する（ステップＳ２０３）。
次に、入力処理部４４は、入力情報（ｘｍ（０））を算出する（ステップＳ２０４）。
すなわち、入力処理部４４の減算器４４１は、第１位置情報（ｘ（０））からカウンタ部４３が記憶するカウント値を減算して、入力情報（ｘｍ（０））を生成する。減算器４４１は、生成した入力情報（ｘｍ（０））を演算部７０に出力する。
【００７８】
次に、ＩＩＲフィルタ部４０ａは、内部演算結果である遅延情報（ｄｎ−１、ｄｎ−２）を初期化する（ステップＳ２０５）。すなわち、ＩＩＲフィルタ部４０ａの演算部７０は、入力情報の初期値（ｘｍ（０））に基づいて、入力情報（ｘｍ（０））の１／４に対応する内部演算結果（ｄｎ）を算出し、算出した内部演算結果（ｄｎ）を順次、演算結果記憶部４１１及び演算結果記憶部４１２に記憶させる。これにより、ＩＩＲフィルタ部４０ａは、遅延情報（ｄｎ−１、ｄｎ−２）を初期化する。すなわち、ＩＩＲフィルタ部４０ａは、サンプリング周期よりも十分に長い期間、入力情報（ｘｍ（０））を供給し続けることにより、遅延情報（ｄｎ−１、ｄｎ−２）を入力情報（ｘｍ（０））の１／４の値に初期化する。あるいは、ＩＩＲフィルタ部４０ａは、オーバーフロー処理部（兼初期化処理部）からの信号により遅延情報（ｄｎ−１、ｄｎ−２）を直接的に書き換え入力情報（ｘｍ（０））の１／４の値に初期化する。
【００７９】
次に、位置情報生成部３０は、ＩＩＲフィルタ部４０ａに第１位置情報（ｘ（ｎ））を供給する（ステップＳ２０６）。すなわち、位置情報生成部３０は、位置情報を生成し、生成した位置情報を第１位置情報（ｘ（ｎ））としてＩＩＲフィルタ部４０ａに供給する。
【００８０】
次に、入力処理部４４は、入力情報（ｘｍ（ｎ））を算出する（ステップＳ２０７）。
すなわち、入力処理部４４の減算器４４１は、第１位置情報（ｘ（ｎ））からカウンタ部４３が記憶するカウント値を減算して、入力情報（ｘｍ（ｎ））を生成する。減算器４４１は、生成した入力情報（ｘｍ（ｎ））を演算部７０に出力する。
次に、演算部７０は、内部演算結果（ｄｎ）を算出する（ステップＳ２０８）。すなわち、演算部７０は、遅延情報記憶部４１に記憶されている遅延情報（ｄｎ−１、ｄｎ−２）と、入力情報（ｘｍ（ｎ））と、所定のフィルタ係数（ｋ、ｂ１、及びｂ２）とに基づいて、内部演算結果（ｄｎ）を生成する。ここでは、例えば、演算部７０の乗算器（７０１，７２４，７２５）、減算器７１１、及び加算器７１２が、内部演算結果（ｄｎ）を生成する。
【００８１】
次に、演算部７０は、出力情報（ｙｍ（ｎ））を算出する（ステップＳ２０９）。すなわち、演算部７０は、内部演算結果（ｄｎ）と、遅延情報記憶部４１に記憶されている遅延情報（ｄｎ−１、ｄｎ−２）と、所定のフィルタ係数（ａ０、ａ１、及びａ２）とに基づいて、出力情報（ｙｍ（ｎ））を生成する。ここでは、例えば、演算部７０の乗算器（７２１，７２２，７２３）、及び加算器（７１３，７１４）が、第２位置情報である出力情報（ｙｍ（ｎ））を生成する。
【００８２】
次に、出力処理部４５は、第２位置情報（ｙ（ｎ））を生成する（ステップＳ２１０）。すなわち、出力処理部４５の加算器４５１は、カウンタ部４３に記憶されているカウント値を出力情報（ｙｍ（ｎ））に加算して第２位置情報（ｙ（ｎ））を生成する。加算器４５１は、生成した第２位置情報（ｙ（ｎ））をＩ／Ｆ部６０に出力する。
【００８３】
次に、遅延情報記憶部４１の演算結果記憶部４１２は、遅延情報（ｄｎ−２）を更新する（ステップＳ２１１）。すなわち、演算結果記憶部４１２は、演算結果記憶部４１１が記憶する遅延情報（ｄｎ−１）を遅延情報（ｄｎ−２）として記憶する。
次に、遅延情報記憶部４１の演算結果記憶部４１１は、遅延情報（ｄｎ−１）を更新する（ステップＳ２１２）。すなわち、演算結果記憶部４１１は、演算部７０算出した内部演算結果（ｄｎ）を遅延情報（ｄｎ−１）として記憶する。
【００８４】
次に、オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）が所定の範囲外か否かを判定する（ステップＳ２１３）。すなわち、オーバーフロー処理部４２ａは、例えば、遅延情報（ｄｎ−１、ｄｎ−２）が−０．１２５〜＋０．１２５の範囲外であるか否かを判定する。オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）が−０．１２５〜＋０．１２５の範囲外であると判定した場合（ステップＳ２１３：ＹＥＳ）に、処理をステップＳ２１４に進める。また、オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）が−０．１２５〜＋０．１２５の範囲外でないと判定した場合（ステップＳ２１３：ＮＯ）に、処理をステップＳ２０６に戻す。
【００８５】
次に、ステップＳ２１４において、オーバーフロー処理部４２ａは、入力情報（ｘｍ（ｎ））の変更単位（例、±１単位）に基づいて、遅延情報（ｄｎ−１、ｄｎ−２）の値及びカウント値を書き換える。例えば、オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）の値が＋０．１２５以上になった場合に、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）のそれぞれの値を、−０．２５だけ変化させた値（０．２５だけ減算した値）に変更する。そして、オーバーフロー処理部４２ａは、カウンタ部４３に＋１計数させてカウント値を変更させる。
また、例えば、オーバーフロー処理部４２ａは、遅延情報（ｄｎ−１、ｄｎ−２）の値が−０．１２５以下になった場合に、演算結果記憶部４１１及び演算結果記憶部４１２が記憶する遅延情報（ｄｎ−１、ｄｎ−２）のそれぞれの値を、＋０．２５だけ変化させた値（０．２５だけ加算した値）に変更する。そして、オーバーフロー処理部４２ａは、カウンタ部４３に−１計数させてカウント値を変更させる。
【００８６】
ＩＩＲフィルタ部４０ａは、ステップＳ２１４の処理後に、処理をステップＳ２０６に戻し、ステップＳ２０６〜ステップＳ２１３（又はステップＳ２１４）の処理を繰り返す。なお、ＩＩＲフィルタ部４０ａは、ステップＳ２０６〜ステップＳ２１３（又はステップＳ２１４）の一連の処理を、単位時間（サンプリング周期）ごとに実行する。
【００８７】
以上説明したように、本実施形態におけるエンコーダ１ａは、センサ部２０が、回転子被の位置情報に応じた検出信号（例、ＡＢＳ信号、ＩＮＣ信号）を出力する。位置情報生成部３０は、第１位置情報として位置情報（ｘ）を、センサ部２０が出力した検出信号に基づいて生成する。ＩＩＲフィルタ部４０ａは、所定のフィルタ係数に基づいて第１位置情報（ｘ）をフィルタリング処理した第２位置情報（ｙ）を出力する。ＩＩＲフィルタ部４０ａは、カウンタ部４３が、第１位置情報（ｘ）の所定の上位桁に対応する値をカウント値として記憶する。入力処理部４４は、カウンタ部４３に記憶されているカウント値を第１位置情報（ｘ）から減算して入力情報（ｘｍ）を生成する。遅延情報記憶部４１は、第１位置情報（ｘ）に基づく内部演算結果（ｄｎ）を遅延情報（例、ｄｎ−１、ｄｎ−２）として記憶する。演算部７０は、遅延情報記憶部４１が記憶する遅延情報と、第１位置情報（ｘ）と、所定のフィルタ係数とに基づいて、内部演算結果（ｄｎ）を生成するとともに、出力情報（ｙｍ）を生成する。出力処理部４５は、カウンタ部４３に記憶されているカウント値を出力情報（ｙｍ）に加算して第２位置情報（ｙ）を生成する。オーバーフロー処理部４２ａは、遅延情報（例、ｄｎ−１、ｄｎ−２）の値が予め定められた所定の範囲外（例、−０．１２５〜＋０．１２５の範囲外）になった場合に、入力情報（ｘｍ）の変更単位（例、±１単位）に基づいて、遅延情報の値（例、ｄｎ−１、ｄｎ−２）を変更するとともに、カウント値を変更する。
【００８８】
これにより、本実施形態におけるエンコーダ１ａは、位置情報生成部３０が生成した位置情報（ｘ）をフィルタリング処理するため、例えば、検出信号（ＩＮＣ信号）の周波数によってＩＩＲフィルタ部４０ａの特性が制限されることがない。そのため、本実施形態におけるエンコーダ１ａは、ＩＩＲフィルタ部４０ａにより外乱（ノイズ）を低減可能な周波数範囲を広げることができる。例えば、本実施形態におけるエンコーダ１ａは、ＩＮＣ信号の最大周波数以下の外乱（ノイズ）による影響を低減することが可能である。したがって、本実施形態におけるエンコーダ１ａは、被駆動体（例、回転子）の位置情報の誤検出を低減することができ、信頼性を向上させることができる。
さらに、ＩＩＲフィルタ部４０ａは、ＩＩＲフィルタにより構成されているので、演算量の少ない簡易な構成が可能である。そのため、本実施形態におけるエンコーダ１ａは、簡易な構成により、被駆動体（例、回転子）の位置情報の誤検出を低減することができ、信頼性を向上させることができる。
【００８９】
また、本実施形態におけるエンコーダ１ａは、入力処理部４４とカウンタ部４３とが、演算部７０の処理桁数を低減し、オーバーフロー処理部４２ａが、例えば、遅延情報（例、ｄｎ−１、ｄｎ−２）の値が−０．１２５〜＋０．１２５の範囲から大きく外れないように、遅延情報（例、ｄｎ−１、ｄｎ−２）を変更する。これにより、本実施形態におけるエンコーダ１ａは、第１位置情報（ｘ）のうちの変化の少ない上位桁をＩＩＲフィルタ部４０ａの演算処理から除外することができる。そのため、本実施形態におけるエンコーダ１ａは、演算部７０の回路規模（例えば、乗算器、加算器、減算器などの回路規模）を低減することができる。また、本実施形態におけるエンコーダ１ａは、第１位置情報（ｘ）のうちの下位桁を高精度により演算することが可能である。したがって、本実施形態におけるエンコーダ１ａは、簡易な構成により、被駆動体（例、回転子）の位置情報を高精度に検出することができる。
【００９０】
また、本実施形態におけるエンコーダ１ａは、第１の実施形態と同様に、位置情報を出力する遅延量を変化させずに、外乱（ノイズ）を低減可能な周波数範囲を広げることができる。そのため、本実施形態におけるエンコーダ１ａは、第１の実施形態と同様に、例えば、ロボット装置などのモータ制御を正確に行うことができる。
【００９１】
また、本実施形態では、上述の所定の範囲（例、−０．１２５〜＋０．１２５の範囲）は、入力情報（ｘｍ）の変更単位（例、±１単位）と所定のフィルタ係数とに基づいて予め定められている。オーバーフロー処理部４２ａは、所定の範囲内に遅延情報の値（例、ｄｎ−１、ｄｎ−２）が入るように、遅延情報の値（例、ｄｎ−１、ｄｎ−２）を変更する。
これにより、ＩＩＲフィルタ部４０ａは、遅延情報の値が演算対応範囲（例、−０．２５〜＋０．２５の範囲）から外れないように適切にフィルタリング処理することができる。
【００９２】
また、本実施形態では、カウンタ部４３は、カウント値を入力情報（ｘｍ）の変更単位（例、±１単位）に対応する変位量（例、“１”）を変更単位として変更する。オーバーフロー処理部４２ａは、カウンタ部４３が記憶するカウント値を変更する場合に、カウンタ部４３に変更単位（例、“１”）でカウント値を変更させる。
これにより、ＩＩＲフィルタ部４０ａは、所定の範囲内に遅延情報の値（例、ｄｎ−１、ｄｎ−２）が入るように、簡易な構成により、入力情報（ｘｍ）を変更することができる。したがって、本実施形態におけるエンコーダ１ａは、簡易な構成により、被駆動体（例、回転子）の位置情報を高精度に検出することができる。
【００９３】
次に、第３の実施形態について、図面を参照して説明する。
［第３の実施形態］
図９は、本実施形態によるエンコーダ１ｂの一例を示す概略ブロック図である。
図９において、エンコーダ１ｂは、センサ部２０、位置情報生成部３０、ＩＩＲフィルタ部４０ｂ、後処理部５０、及びＩ／Ｆ部６０を備えている。この図において、図１又は図６と同一の構成については同一の符号を付し、その説明を省略する。
本実施形態におけるエンコーダ１ｂは、第２の実施形態におけるエンコーダ１ａに、第１の実施形態と同様に、第１位置情報の値に循環による不連続に対応させた場合の一例を示している。ここで、エンコーダ１ｂは、ＩＩＲフィルタ部４０ｂの構成が異なる点と、第１の実施形態と同様の後処理部５０を備えている点とが、第２の実施形態におけるエンコーダ１ａとは異なる。
なお、位置情報生成部３０が生成する第１位置情報（ｘ）は、第１の実施形態と同様に、所定の桁数を有し、当該所定の桁数により循環する情報である。
【００９４】
本実施形態における後処理部５０は、第１の実施形態と同様に、ＩＩＲフィルタ部４０ｂによるフィルタリング処理によって回転子の絶対位置情報の可変範囲（０度以上３６０度未満の範囲（０〜２ｎ−１））から外れた第２位置情報（ｙ）を、この可変範囲内に収まるように補正する。例えば、後処理部５０は、第２位置情報（ｙ）における第１位置情報（ｘ）の可変範囲に対応する下位ビット（例えばｎビット）を位置情報（ｚ）として出力する。
【００９５】
ＩＩＲフィルタ部４０ｂは、所定のフィルタ係数に基づいて第１位置情報（ｘ）をフィルタリング処理した第２位置情報（ｙ）を出力するフィルタ回路である。ＩＩＲフィルタ部４０ｂは、例えば、双２次型のローパスフィルタを含んでいる。なお、本実施形態では、ＩＩＲフィルタ部４０ｂは、デジタルフィルタである一例を示し、第１位置情報（ｘ）と出力情報である第２位置情報（ｙ）とは、いずれもデジタル値である。ＩＩＲフィルタ部４０ｂは、予め定められた所定のフィルタ係数に基づいて、第１位置情報（ｘ）に含まれる予め定められた所定の周波数以上の周波数成分を低減して、第２位置情報（ｙ）を生成する。
次に、ＩＩＲフィルタ部４０ｂの構成について説明する。
【００９６】
図１０は、本実施形態におけるＩＩＲフィルタ部４０ｂを示すブロック図である。
ＩＩＲフィルタ部４０ｂは、遅延情報記憶部４１、オーバーフロー処理部４２ｂ、カウンタ部４３、入力処理部４４、出力処理部４５及び演算部７０を備えている。この図において、図７と同一の構成については同一の符号を付し、その説明を省略する。
【００９７】
オーバーフロー処理部４２ｂは、第２の実施形態におけるオーバーフロー処理部４２ａと同様の処理を行うとともに、第１位置情報（ｘ（ｎ））に循環による不連続が生じた場合に、カウンタ部４３が記憶するカウント値を第１位置情報（ｘ（ｎ））の可変範囲に基づいて変更する。すなわち、オーバーフロー処理部４２ｂは、第１位置情報（ｘ（ｎ））に循環による不連続が生じたか否かを判定し、第１位置情報（ｘ（ｎ））に循環による不連続が生じた場合に、第１位置情報（ｘ（ｎ））の循環に応じた変化量だけカウント値を変更させる。なお、循環による不連続が生じた場合に、第１の実施形態と同様に、第２位置情報（ｙ）は、第１位置情報（ｘ（ｎ））の可変範囲外の値が出現する。
【００９８】
次に、本実施形態におけるエンコーダ１ｂの動作について、図面を参照して説明する。
まず、本実施形態におけるエンコーダ１ｂの全体の動作は、ＩＩＲフィルタ部４０ｂの動作が異なる点と、後処理部５０による処理が追加されている点とを除いて、第２の実施形態におけるエンコーダ１ａと同様である。
【００９９】
次に、本実施形態におけるＩＩＲフィルタ部４０ｂ、及び後処理部５０の動作について説明する。
図１１は、本実施形態におけるＩＩＲフィルタ部４０ｂ、及び後処理部５０の動作の一例を示すフローチャートである。
【０１００】
図１１において、まず、エンコーダ１ｂに電源が投入（電源ＯＮ）される（ステップＳ３０１）。なお、ステップＳ３０１〜ステップＳ３０６までの処理は、図８に示される第２の実施形態におけるステップＳ２０１〜〜ステップＳ２０６までの処理と同様であり、ここでは説明を省略する。
【０１０１】
ステップＳ３０７において、オーバーフロー処理部４２ｂは、第１位置情報である入力情報（ｘ（ｎ））の値に循環が発生しているか否かを判定する。すなわち、オーバーフロー処理部４２ｂは、第１位置情報（ｘ（ｎ））の値に、循環による不連続が生じているか否かを判定する。オーバーフロー処理部４２ｂは、循環による不連続が生じていると判定した場合（ステップＳ３０７：ＹＥＳ）に、処理をステップＳ３０８に進める。また、オーバーフロー処理部４２ｂは、循環による不連続が生じていないと判定した場合（ステップＳ３０７：ＮＯ）に、処理をステップＳ３０９に進める。
【０１０２】
ステップＳ３０８において、オーバーフロー処理部４２ｂは、カウンタ部４３が記憶するカウント値を書き換える。すなわち、オーバーフロー処理部４２ｂは、第１位置情報の可変範囲に基づいて、第１位置情報（ｘ（ｎ））の循環に応じた変化量だけカウント値を変更させる。オーバーフロー処理部４２は、カウント値を変更した後、処理をステップＳ３０９に進める。
【０１０３】
次のステップＳ３０９〜ステップＳ３１２までの処理は、図８に示される第２の実施形態におけるステップＳ２０７〜ステップＳ２１０までの処理と同様であり、ここでは説明を省略する。
【０１０４】
次に、後処理部５０は、位置情報（ｚ（ｎ））を算出する（ステップＳ３１３）。すなわち、後処理部５０は、第１の実施形態と同様に、ＩＩＲフィルタ部４０ｂが出力する第２位置情報（ｙ（ｎ））が回転子の位置情報の可変範囲内に収まるように、位置情報（ｚ（ｎ））を生成する。
次のステップＳ３１４〜ステップＳ３１７までの処理は、図８に示される第２の実施形態におけるステップＳ２１１〜ステップＳ２１４までの処理と同様であり、ここでは説明を省略する。
【０１０５】
以上説明したように、本実施形態におけるエンコーダ１ｂにおいて、第１位置情報（ｘ）は、所定の桁数を有し、当該所定の桁数により循環する情報である。そして、オーバーフロー処理部４２ｂは、第１位置情報（ｘ）に循環による不連続が生じた場合に、カウンタ部４３が記憶するカウント値を第１位置情報（ｘ）の可変範囲に基づいて変更する。
これにより、本実施形態におけるエンコーダ１ｂは、第２の実施形態と同様の効果を奏するとともに、位置情報に循環による不連続が発生した場合であっても、被駆動体（例、回転子）の位置情報の誤検出を低減することができる。
【０１０６】
［第４の実施形態］
次に、上述の実施形態におけるエンコーダ１（１ａ，１ｂ）を備える駆動装置（モータ装置、アクチュエータ）について説明する。
図１２は、本実施形態における駆動装置ＤＲの概略図である。本実施形態における駆動装置ＤＲは、入力軸ＩＡＸを回転させるモータＭＴＲと、入力軸ＩＡＸ（回転子６）に設けられたエンコーダ１（１ａ，１ｂ）と、を備える。すなわち、駆動装置ＤＲは、エンコーダ１（１ａ，１ｂ）と、入力軸ＩＡＸ（被駆動体）を駆動するモータＭＴＲ（駆動部）と、を備えている。
【０１０７】
エンコーダ１（１ａ，１ｂ）は、入力軸ＩＡＸ（被駆動体）の回転位置（角度位置）を検出し、駆動装置ＤＲを制御する上位のコントローラ（サーボアンプ２など）に対して回転位置を含む情報をエンコーダ信号として出力する。上位のコントローラは、エンコーダ１（１ａ，１ｂ）から受信したエンコーダ信号をもとに、駆動装置ＤＲを制御する。本実施形態におけるエンコーダ１（１ａ，１ｂ）は入力軸ＩＡＸの回転位置の誤検出を低減することができるため、本実施形態における駆動装置ＤＲはモータＭＴＲの入力軸ＩＡＸを高精度に位置制御することができる。また、本実施形態における駆動装置ＤＲは、位置制御における信頼性を高めることができる。
【０１０８】
なお、本実施形態における駆動装置ＤＲは、図１３に示すように、モータＭＴＲの入力軸ＩＡＸに減速機ＲＧ（例、遊星歯車式機構）を設ける構成としてもよい。この場合、本実施形態におけるエンコーダ１（１ａ，１ｂ）は、その減速機ＲＧの出力軸ＯＡＸに配置するようにしてもよいし、モータＭＴＲの入力軸ＩＡＸと減速機ＲＧの出力軸ＯＡＸとの両方に配置するようにしてもよい。
また、本実施形態における駆動装置ＤＲは、例えば、アームなどを有する多関節ロボットや自動車（例、電気自動車）などのロボット装置に設けられてもよい。
【０１０９】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態において、エンコーダ１（１ａ，１ｂ）は、一例として、ロータリエンコーダである場合について説明したが、リニアエンコーダに適用する形態でもよい。
【０１１０】
また、上記の各実施形態において、ＩＩＲフィルタ部４０（４０ａ，４０ｂ）は、双２次型のローパスフィルタを含んでいる場合について説明したが、これに限定されるものではなく、他の形式のＩＩＲフィルタを適用する形態でもよい。例えば、ＩＩＲフィルタ部４０（４０ａ，４０ｂ）は、１次のローパスフィルタであってもよいし、３次以上のローパスフィルタであってもよい。また、フィルタ係数も、上記の各実施形態に限定されるものではない。
また、ＩＩＲフィルタ部４０（４０ａ，４０ｂ）は、ローパスフィルタに限定されるものではなく、例えば、バンドストップフィルタでも同様に処理が可能である。
【０１１１】
また、上記の各実施形態において、位置情報生成部３０は、電源が投入された際に絶対番地処理部３１がＡＢＳ信号に基づいて絶対位置情報を生成し、電源投入以降に、ＩＮＣ信号に基づく内挿された位置情報に基づいて、変位量を計数（カウント）する形態を説明したが、これに限定されるものではない。例えば、位置情報生成部３０は、常にＡＢＳ信号及びＩＮＣ信号に基づいて第１位置情報（ｘ）を生成する形態であってもよいし、ＡＢＳ信号又はＩＮＣ信号に基づいて第１位置情報（ｘ）を生成する形態であってもよい。また、ＩＮＣ信号に基づいて第１位置情報（ｘ）を生成する場合に、センサ部２０が回転子の基準位置（原点位置）を検出する原点検出部を備え、位置情報生成部３０が、原点位置からの変位量を計数（カウント）する形態であってもよい。
【０１１２】
また、上記の各実施形態において、Ｉ／Ｆ部６０は、一例として、ＲＳ４８５規格準拠の差動伝送信号によるシリアルデータ通信を行う形態を説明したが、これに限定されるものではなく、他のインターフェース通信を行う形態でもよい。
【０１１３】
また、上記の第２及び第３の実施形態において、オーバーフロー処理部４２ａ（４２ｂ）は、遅延情報（ｄｎ−１、ｄｎ−２）の値が所定の範囲外になった場合に、遅延情報（ｄｎ−１、ｄｎ−２）の値を変更する形態を説明したが、これに限定されるものではない。例えば、オーバーフロー処理部４２ａ（４２ｂ）は、遅延情報ｄｎ−１又は遅延情報ｄｎ−２の値が所定の範囲外になった場合に、遅延情報（ｄｎ−１、遅延情報ｄｎ−２）の値を変更する形態でもよい。
また、所定の範囲外は、＋０．１２５以上又は−０．１２５以下である場合を説明したが、＋０．１２５を超える又は−０．１２５未満である形態でもよいし、所定の範囲として、他の範囲が設定される形態でもよい。
【０１１４】
また、上記の各実施形態において、エンコーダ１（１ａ，１ｂ）の各部は専用のハードウェアにより実現されるものであってもよく、また、メモリ及びＣＰＵ（中央処理装置）を備えて、プログラムによって実現されてもよい。
例えば、位置情報生成部３０、ＩＩＲフィルタ部４０（４０ａ，４０ｂ）、及び後処理部５０のそれぞれは、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）によって実現される形態でもよいし、ＤＳＰ（Digital Signal Processor）やＰＣ（Personal Computer）などのコンピュータによって実現される形態でもよい。
【０１１５】
上述のエンコーダ１（１ａ，１ｂ）は内部に、コンピュータシステムを有している。そして、上述したエンコーダ１（１ａ，１ｂ）の処理過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【符号の説明】
【０１１６】
１，１ａ，１ｂ…エンコーダ、６…回転子、２０…センサ部、３０…位置情報生成部、４０，４０ａ，４０ｂ…ＩＩＲフィルタ部、４１…遅延情報記憶部、４２，４２ａ，４２ｂ…オーバーフロー処理部、４３…カウンタ部、４４…入力処理部、４５…出力処理部、５０…後処理部、７０…演算部、ＤＲ…駆動装置、ＭＴＲ…モータ
【図１】
2013180165.tif 000004
【図２】
2013180165.tif 000005
【図３】
2013180165.tif 000006
【図４】
2013180165.tif 000007
【図５】
2013180165.tif 000008
【図６】
2013180165.tif 000009
【図７】
2013180165.tif 000010
【図８】
2013180165.tif 000011
【図９】
2013180165.tif 000012
【図１０】
2013180165.tif 000013
【図１１】
2013180165.tif 000014
【図１２】
2013180165.tif 000015
【図１３】
2013180165.tif 000016
【国際調査報告】
2013180165.tif 000017
2013180165.tif 000018