(57)【特許請求の範囲】
【請求項１】
被測定体の移動に応じて、該被測定体に連結されたエンコーダから周期的に発生する９０度位相の異なる２相の正弦波状のアナログ信号を所定時間毎にサンプリングして、
前記エンコーダの位置データを検出し取得する位置データ取得手段を備えたエンコーダの信号処理装置であって、
前記被測定体を一定速度で移動しているときに前記位置データ取得手段から得られる１周期内を少なくとも２以上の領域に分割する３点以上の検出位置データＰ（ｋ）を取得し、任意の設定位置ＰＡを通過する前後に検出された連続する２つの位置データＰ（０），Ｐ（１）から該任意の設定位置ＰＡを通過した時刻ｔAを求め、前記任意の位置から１周期分移動した任意の設定位置ＰＢを通過する前後に検出された２つの位置データＰ（ｎ），Ｐ（ｎ＋１）から該任意の設定位置ＰＢを通過した時刻ｔBを求めることにより、設定位置ＰＡと設定位置ＰＢを結ぶ時間の関数としての直線を求め、この直線と検出位置データＰ（ｋ）により時間に基づいて前記アナログ信号の１周期内での複数の位置あるいは位置指標に対応した誤差データを算出する誤差データ算出手段と、
１周期内での複数の位置あるいは位置指標と該複数の位置あるいは位置指標に対応した誤差データを基準データとして記憶する記憶手段と、
前記位置データ取得手段で取得した検出位置データに対し前記記憶手段に記憶した基準データに基づいて誤差データを求め、検出された検出位置データに求めた誤差データを補正する補正手段とを備えることを特徴とするエンコーダの信号処理装置。
【請求項２】
前記誤差データ算出手段は、被測定体の移動速度を求める移動速度検出手段を有し、該移動速度検出手段で所定速度が検出されているときに、前記基準データを求めるようにした請求項１記載のエンコーダの信号処理装置。
【請求項３】
前記誤差データ算出手段は、前記検出した検出位置データ群Ｐ（１）〜Ｐ（ｎ）のうちｍ番目に検出された位置データＰ（ｍ）（１≦ｍ≦ｎ）の誤差データＤ（ｍ）を、該位置データが検出された時刻をｔmとしたとき、下式により求める請求項１に記載のエンコーダの信号処理装置。
Ｄ(ｍ)＝Ｐ(ｍ)−［ＰＡ＋（ＰＢ−ＰＡ）×（ｔm−ｔA）／（ｔB−ｔA）］
【請求項４】
前記誤差データ算出手段は、検出位置データにおいて前記１周期内の任意の位置から１周期経過した該１周期内の任意の位置までの１周期期間中、位置がリニアに変化するものとして理想的位置データを複数求め、検出位置データより前記理想的位置に対応する位置データを求め、該位置データと前記理想的位置データとの差を誤差データとし、前記位置データに対して誤差データを組として基準データとして求める請求項１記載のエンコーダの信号処理装置。
【請求項５】
前記誤差データ算出手段は、被測定体の移動速度を求める移動速度検出手段を有し、該移動速度検出手段で所定速度が検出されているときに、前記基準データを求めるようにした請求項４記載のエンコーダの信号処理装置。
【請求項６】
前記誤差データ算出手段は、任意の位置ＰＸを通過する時刻ｔXを、Ｐ（ｍ）≦ＰＸ≦Ｐ（ｍ＋１）、またはＰ（ｍ）≧ＰＸ≧Ｐ（ｍ＋１）となるような検出位置データＰ（ｍ）およびＰ（ｍ＋１）から求め、前記位置ＰＸにおける誤差ＤＸを下式により誤差データとして求め、かつ前記任意の位置ＰＸを異なった複数の位置として、それに対応する誤差データを求め、この複数の各位置ＰＸと対応する誤差データを基準データとしたことを特徴とする請求項４に記載のエンコーダの信号処理装置。
ＤＸ＝ＰＸ−［ＰＡ＋(ＰＢ−ＰＡ)×(ｔX−ｔA)／(ｔB−ｔA)］
【請求項７】
前記誤差データ算出手段は、前記速度検出手段で検出される１回前のサンプリング時の位置データＰ（−１）と今回のサンプリング時の位置データＰ（０）との差と、かつ２回前のサンプリング時の位置データＰ（−２）と１回前のサンプリング時の位置データＰ（−１）の差との差により加速度を求める手段を有し、検出速度が規定範囲に入りかつ検出加速度がある規定値内に入った時に基準データを求めるようにしたことを特徴とする請求項２又は請求項５記載のエンコーダの信号処理装置。
【請求項８】
前記誤差データ算出手段は、1回前のサンプリング時の位置データＰ(-1)と今回のサンプリング時の位置データＰ（０）との差Ｖ（０）がある規定範囲に入り、なおかつ２回前のサンプリング時の位置データＰ（−２）と１回前のサンプリング時の位置データＰ（−１）の差Ｖ（−１）と前記差Ｖ（０）の差がある規定値内に入り、なおかつＰ（ｎ−２）とＰ（ｎ−１）の差Ｖ（ｎ−１）とＰ（ｎ−１）とＰ（ｎ）の差が規定値内に入った時に基準データの取得を開始することを特徴とする請求項２又は請求項５記載のエンコーダの信号処理装置。
【請求項９】
エンコーダが取り付けられた装置を制御する制御装置が、速度が規定値内に入りかつ加速度が規定値内に入っていることを判断し、前記制御装置が前記基準データの取得開始指令を出力し、これにより前記誤差データ算出手段は、基準データの取得を開始する請求項１又は請求項５記載のエンコーダの信号処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＮＣ装置の工作機械のテーブルやモータの位置を検出する検出装置に関し、回転角度（位置）を検出するロータリエンコーダや直線移動位置を検出するリニアスケール等のエンコーダにおいて、検出信号を内挿するエンコーダの信号処理装置に関する。
【０００２】
【従来の技術】
図１は、従来のエンコーダにおける位置、角度検出方法のブロック図である。エンコーダの感知部から出力される正弦波Ｓａ、余弦波Ｓｂの元信号をアナログ増幅回路１ａ，１ｂにて次次段のアナログ−ディジタル変換回路２ａ，２ｂの入力に合うように増幅する。アナログ補正回路７でこの増幅された元信号Ｓａ，Ｓｂのオフセット、振幅差，位相差を補正し、理想的な正弦波、余弦波に近づける。このアナログ信号をアナログ−ディジタル変換回路２ａ，２ｂでディジタル信号に変換し、ディジタル内挿回路３にて元信号1周期（正弦波１周期）内の位置を計算する。計算された１周期内の位置データとこのブロック図では省略されている元信号の周期を数えているカウンタのデータよりポジションデータ生成回路６がポジションデータを生成し出力するようになっている。
【０００３】
また、エンコーダの感知部からの元信号をディジタル信号に変換して、この変換されたディジタル信号に基づいて、オフセット値、振幅比を求め、オフセット調整及び振幅調整された位置データを得る方法も特開平１０−３１１７４１号公報で知られている。
【０００４】
【発明が解決しようとする課題】
上述した従来のエンコーダで採用れているオフセット電圧、振幅差、位相差の調整をアナログ回路により行う方法は、回路が大きくなるため、実装面積が大きくなる、コストが高くなるという問題がある。また、波形歪み(高調波成分)を取り除くことは出来ないという問題、および、稼動中の温度変動による波形変化や経年的な波形変化に対応できないという問題が存在する。また、上述した特開平１０−３１１７４１号公報に記載された方法は、オフセット、振幅の調整であり、位相差の調整は考慮されていない。
そこで、本発明は、実装面積を小さくし、かつ、オフセット電圧、振幅差、位相差の調整ができ、波形歪みを取り除くことができるエンコーダの信号処理装置を提供することにある。
【０００５】
【課題を解決するための手段】
本願発明は、被測定体の移動に応じて、該被測定体に連結されたエンコーダから周期的に発生する９０度位相の異なる２相の正弦波状のアナログ信号を所定時間毎にサンプリングして、前記エンコーダの位置データを検出し取得する位置データ取得手段を備えたエンコーダの信号処理装置であって、請求項１に係る発明は、前記被測定体を一定速度で移動しているときに前記位置データ取得手段から得られる前記１周期内を少なくとも２以上の領域に分割する３点以上の検出位置データＰ（ｋ）を取得し、任意の設定位置ＰＡを通過する前後に検出された連続する２つの位置データＰ（０），Ｐ（１）から該任意の設定位置ＰＡを通過した時刻ｔAを求め、前記任意の位置から１周期分移動した任意の設定位置ＰＢを通過する前後に検出された２つの位置データＰ（ｎ），Ｐ（ｎ＋１）から該任意の設定位置ＰＢを通過した時刻ｔBを求めることにより、設定位置ＰＡと設定位置ＰＢを結ぶ時間の関数としての直線を求め、この直線と検出位置データＰ（ｋ）により時間に基づいて前記アナログ信号の１周期内での複数の位置あるいは位置指標に対応した誤差データを算出する誤差データ算出手段を設け、１周期内での複数の位置あるいは位置指標と該複数の位置あるいは位置指標に対応した誤差データを基準データとして記憶手段に記憶しておき、前記位置データ取得手段で取得した検出位置データに対し、前記記憶手段に記憶した基準データに基づいて誤差データを求め、検出された検出位置データに求めた誤差データを補正する補正手段を設けた。
【０００７】
請求項２に係る発明は、この誤差データ算出手段に、被測定体の移動速度を求める移動速度検出手段を設け、該移動速度検出手段で所定速度が検出されているときに、前記基準データを求めるようにしたものである。
【０００８】
請求項３に係わる発明は、前記誤差データ算出手段を、前記検出した検出位置データ群Ｐ（１）〜Ｐ（ｎ）のうちｍ番目に検出された位置データＰ（ｍ）（１≦ｍ≦ｎ）の誤差データＤ（ｍ）を、該位置データが検出された時刻をｔmとしたとき、下式により求めるものとしたものとした。
Ｄ(ｍ)＝Ｐ(ｍ)−［ＰＡ＋（ＰＢ−ＰＡ）×（ｔm−ｔA）／（ｔB−ｔA）］
請求項４に係わる発明は、前記誤差データ算出手段により、検出位置データにおいて前記１周期内の任意の位置から１周期経過した該任意の位置までの１周期期間中、位置がリニアに変化するものとして理想的位置データを複数求め、検出位置データより前記理想的位置に対応する位置データを求め、該位置データと前記理想的位置データとの差を誤差データとし、前記位置データに対して誤差データを組として基準データとして求め、前記記憶手段に設定記憶させるようにしたものである。
さらに、請求項５に係わる発明は、この誤差データ算出手段に、被測定体の移動速度を求める移動速度検出手段を備え、該移動速度検出手段で所定速度が検出されているときに、前記基準データを求めるようにしたものである。
【０００９】
請求項６に係わる発明は、前記誤差データ算出手段を、任意の位置ＰＸを通過する時刻ｔXを、Ｐ（ｍ）≦ＰＸ≦Ｐ（ｍ＋１）、またはＰ（ｍ）≧ＰＸ≧Ｐ（ｍ＋１）となるような検出位置データＰ（ｍ）およびＰ（ｍ＋１）から求め、前記位置ＰＸにおける誤差ＤＸを下式により誤差データとして求め、かつ前記任意の位置ＰＸを異なった複数の位置として、それに対応する誤差データを求め、この複数の各位置ＰＸと対応する誤差データを基準データとして記憶するようにしたものである。
ＤＸ＝ＰＸ−［ＰＡ＋(ＰＢ−ＰＡ)×(ｔX−ｔA)／(ｔB−ｔA)］
【００１０】
請求項７に係わる発明は、前記誤差データ算出手段に、前記速度検出手段で検出される１回前のサンプリング時の位置データＰ（−１）と今回のサンプリング時の位置データＰ（０）との差と、かつ２回前のサンプリング時の位置データＰ（−２）と１回前のサンプリング時の位置データＰ（−１）の差との差により加速度を求める手段を設け、検出速度が規定範囲に入りかつ検出加速度がある規定値内に入った時に基準データを求めるようにした。
【００１１】
請求項８に係わる発明においては、前記誤差データ算出手段は、１回前のサンプリング時の位置データＰ(-1)と今回のサンプリング時の位置データＰ（０）との差Ｖ（０）がある規定範囲に入り、なおかつ２回前のサンプリング時の位置データＰ（−２）と１回前のサンプリング時の位置データＰ（−１）の差Ｖ（−１）と前記差Ｖ（０）の差がある規定値内に入り、なおかつＰ（ｎ−２）とＰ（ｎ−１）の差Ｖ（ｎ−１）とＰ（ｎ−１）とＰ（ｎ）の差が規定値内に入った時に基準データの取得を開始するようにしたものである。
また、請求項９に係わる発明は、エンコーダが取り付けられた装置を制御する制御装置が、速度が規定値内に入りかつ加速度が規定値内に入っていることを判断し、前記制御装置が前記基準データの取得開始指令を出力し、これにより前記誤差データ算出手段が基準データの取得を開始するようにしたものである。
【００１２】
【発明の実施の形態】
図２は、本発明の一実施形態のブロック図である。本実施形態においては、エンコーダの感知部から出力される正弦波Ｓａ、余弦波Ｓｂの元信号をアナログ増幅回路１ａ，１ｂにて次段のアナログ−ディジタル変換回路２ａ，２ｂの入力に合うように増幅する。増幅されたアナログ信号をアナログ-ディジタル変換回路２ａ，２ｂで一定サンプリング周期毎にディジタル信号に変換する。変換されたディジタル値により、ディジタル内挿回路３が元信号1周期（正弦波１周期）内の位置を計算し検出誤差データ算出回路４に出力する。
【００１３】
検出誤差データ算出回路４は、開始条件判定回路４１、レジスタ群４２、誤差計算回路４３、検出誤差格納レジスタ４４、平均化回路４５を備えている。開始条件判定回路４１は、ディジタル内挿回路３から位置データを受け、開始時要件を満たしているか判別し、満たしていれば、元信号の１周期分のサンプリング数より僅か多いサンプリング数の位置データＰ（０）〜Ｐ（ｎ＋α）をレジスタ群４２に格納する。なお、１周期をｎ回のサンプリングするものとしている。
【００１４】
検出誤差計算回路４３は、レジスタ群４２に格納された位置データＰ（０）〜Ｐ（ｎ＋α）の状態より1周期内の等間隔な位置での検出誤差データを算定する。また、検出誤差格納レジスタ４４は算出された検出誤差データを過去数回に渡り記憶する。この検出誤差格納レジスタ４４に記憶された過去数回分の検出誤差データを平均化回路４５で平均化して、その平均値の検出誤差データを検出誤差補正回路５の補正用検出誤差格納レジスタ５１に格納する。複数の検出誤差データの平均をとるのは、検出誤差データの精度を向上させるためのものであり、簡単に行う場合には、検出誤差格納レジスタ４４、平均化回路４５を設けずに、検出誤差計算回路４２で求めた検出誤差データをそのまま補正用検出誤差格納レジスタ５１に格納するようにしてもよい。
【００１５】
検出誤差補正回路５は、補正用検出誤差格納レジスタ５１と補正計算回路５２からなり、補正計算回路５２が補正用検出誤差格納レジスタ５１に格納された検出誤差データを用いてデジタル内挿回路３から出力される位置データの検出誤差を計算し補正してポジションデータ生成回路６に出力する。ポジションデータ生成回路６は、補正された１周期内の位置データと、このブロック図では省略されている元信号の周期を数えているカウンタのデータより位置データを生成する。
【００１６】
図３は、開始条件判定回路４１の詳細ブロック図である。開始条件判定回路４１は、デジタル内挿回路３から所定サンプリング周期毎出力される位置データの内、今回、前回、前々回のサンプリング周期の位置データを記憶する３つの位置データレジスタ４１１ａ，４１１ｂ，４１１ｃ、第１、第２の速度計算回路４１２ａ，４１２ｂ、ゼロクロスポイント検出回路４１３、加速度計算回路４１４、位置データレジスタ格納開始判定及び誤差計算開始信号判定回路４１５を備える。
【００１７】
デジタル内挿回路３から出力される所定サンプリング周期毎の位置データは、今回の位置データレジスタ４１１ａに格納され、今回の位置データレジスタ４１１ａに格納されていた位置データは前回の位置データレジスタ４１１ｂに格納され、前回の位置データレジスタ４１１ｂに格納されていた位置データ前々の位置データレジスタ４１１ｃに格納され、デジタル内挿回路３から位置データが出力される毎（サンプリング周期毎）に位置データはシフトされ、今回、前回、前々回のサンプリング周期の位置データが記憶されることになる。
【００１８】
第１の速度計算回路４１２ａは、今回の位置データレジスタ４１１ａに記憶する今回の位置データと前回の位置データレジスタ４１１ｂに記憶する位置データの差より現在速度を求め、第２の速度計算回路４１２ｂは、前回の位置データレジスタ４１１ｂ、前々回の位置データレジスタ４１１ｃにそれぞれ記憶する位置データの差より周期前の現在速度を求める。また、加速度計算回路５１４は、第１、第２の速度計算回路４１２ａ，４１２ｂで求めた速度の差より加速度を求める。
ゼロクロスポイント検出回路４１３は、今回の位置データレジスタ４１１ａと前回の位置データレジスタ４１１ｃに記憶する位置データより元信号Ｓａ，Ｓｂの１周期の開始であるゼロクロスポイントを検出する。
【００１９】
位置データレジスタ格納開始判定及び誤差計算開始信号判定回路４１５は、位置データの設定取り込み条件が満足したことを条件として、ゼロクロスポイント検出回路４１３でゼロクロスポイントが検出されたときに、ゼロクロスポイントから次のゼロクロスポイントを包含する元信号の1周期以上の位置データＰ（０）〜Ｐ（ｎ＋α）をレジスタ群４２へ格納させる。また、次のゼロクロスポイント検出時に検出誤差計算回路に誤差計算開始信号を渡す。
【００２０】
位置データの取り込み条件としては、第１の速度計算回路４１２ａで求められる速度（位置データＰ（−１）とＰ（０）の差）が所定範囲に入ったとき、さらに、精度を向上させるときには、加速度計算回路４１４で求められる加速度（位置データＰ（−２）とＰ（−１）の差とＰ（−１）とＰ（０）の差の差）が規定範囲に達に入ったとき、さらには、元信号の１周期の終了時点において、前記第１の速度計算回路４１２ａで検出される加速度（位置データＰ（ｎ−２）とＰ（ｎ−１）の差とＰ（ｎ−１）とＰ（ｎ）の差の差）が規定値内に入っているときとする。
以上が本実施形態のエンコーダの信号処理装置の要部の構成である。
そこで、この実施形態で実施する検出誤差補正の各種方法の実施形態を説明する。
【００２１】
図４は、第１の実施形態の説明図で、元信号１周期をｎ回のサンプリングで元信号の１周期分の位置データが得られたものとする。すなわち、サンプリング周期をＴｓとし、エンコーダの感知部が取り付けられた移動体（回転体）の移動速度が一定速度ｖであるとする。また、１周期分での移動体の移動量（回転角）がＬであったとすると、Ｌ＝ｎ・Ｔｓ・ｖである。そして、ゼロクロスポイントを検出した後最初のサンプリング時点を時間０とし、このときサンプリングした位置データをＰ（０）、次のゼロクロスポイントを検出した後の最初のサンプリング時の位置データをＰ（ｎ）とすると、位置データＰ（０）から位置データＰ（ｎ）が得られるまでは約１周期に該当する（Ｐ（ｎ）−Ｐ（０）＝Ｌ）。
【００２２】
この１周期内のｎ個のサンプリングの位置データを、横軸を時間軸、縦軸を検出位置としてプロットすると、図４に波線の曲線上に丸を書いて示したようになったとする。なお、図４（及び後述する図６，図７，図８）において、検出位置データは０〜Ｌまで繰り返し検出されるものであるから、１周期Ｌに達したときこの点を次の１周期の「０」として連続的に直線上に表している。
【００２３】
位置データはサンプリング周期Ｔｓ毎に求められたものであるが、速度ｖが一定で、サンプリング周期Ｔｓも一定であるから、サンプリング間の移動距離ｌ＝ｖ・Ｔｓは一定である。よって、図４における横軸は移動体の移動距離（回転角度）をも表す。すなわち、ｍ回目のサンプリング時では、位置データＰ（０）が得られたサンプリング時からｍ・Ｔｓの時間経過したときであり、移動体の移動距離（回転角度）ｌ＝ｍ・ｖ・Ｔｓの位置である。
【００２４】
等速ｖで移動し、サンプリング周期Ｔｓがｎ回で、元信号１周期分の距離Ｌ移動するものであるから、位置はリニアに変化し、ｍ回目のサンプリング時では、移動距離ｌ＝Ｌ・ｍ／ｎである。そこで、位置データＰ（ｎ）が位置データＰ（０）の１周期遅れの同じ値とすれば、位置データＰ（０）とＰ（ｎ）を結ぶ図４に波線で示す直線上に位置するはずである。図４に示す波線直線は１周期分移動するとき、この検出されるべき位置を示している。しかし、実際にサンプリングされて検出された位置が図４の丸印で示された位置Ｐ（ｍ）であったとき、検出誤差
Ｄ（ｍ）は、
0003772121.tif 000002
として求められる。
【００２５】
そこで、各サンプリング位置ｍ（＝０，１，２…）の検出位置データＰ（ｍ）を基準データの位置データＰｓ（ｍ）、各サンプリング位置で求められる検出誤差Ｄ（ｍ）を基準データの検出誤差Ｄ（ｍ）として、図５に示すように対応させて記憶する。すなわち、図２のレジスタ群４２に格納された１周期分の位置データＰ（０）〜Ｐ（ｎ）に対して、検出誤差計算回路４３で上記１式で示される演算を行い検出誤差Ｄ（０）〜Ｄ（ｎ）をそれぞれ求める。この例の場合は、平均化を行わず、検出誤差計算回路４３で求めた検出誤差Ｄ（０）〜Ｄ（ｎ）を検出各位置データＰ（０）〜Ｐ（ｎ）（この検出位置データを基準データの検出位置データＰｓ（０）〜Ｐｓ（ｎ）とする)に対応されて、基準データ［Ｐｓ（０）〜Ｐｓ（ｎ）、Ｄ（０）〜Ｄ（ｎ）］として補正用検出誤差レジスタ５１に格納する。
【００２６】
その後、補正計算回路５２は、ディジタル内挿回路３から出力される位置データＰ（ｘ）と補正用検出誤差レジスタ５１に記憶する基準データの位置データＰｓ（０）〜Ｐｓ（ｎ）を比較し、検出位置データＰ（ｘ）が補正用検出誤差レジスタ５１に記憶する位置データＰｓ（ｍ）とＰｓ（ｍ＋１）の間にあったとすれば、検出位置データＰ（ｘ）に対する検出誤差Ｄ（ｘ）を、位置データＰｓ（ｍ）、Ｐｓ（ｍ＋１）に対して記憶する検出誤差データＤ（ｍ）、Ｄ（ｍ＋１）によって、補間計算を行って求める。なお、この点は後述する。
こうして求めた検出誤差Ｄ（ｘ）を検出位置データＰ（ｘ）が有するものとして、補正計算回路５２は、検出位置データＰ（ｘ）からこの検出誤差Ｄ（ｘ）を差し引いて補正し１周期内の位置データとして出力する。
【００２７】
上述した実施形態では、ゼロクロスポイントを検出してから最初のサンプリング時の検出位置データＰ（０），Ｐ（ｎ）間を１周期として、その差［Ｐ（ｎ）−Ｐ（０）］を１周期の移動量Ｌとした。しかし実際は、検出位置データＰ（０）とＰ（ｎ）は、ゼロクロスポイントから同一距離とは限らず、この間の距離が１周期の移動量Ｌとなるとは限らない。そのため、この近似した分精度が低下する。
【００２８】
そこで、この問題を解決した第２の実施形態について説明する。この第２の実施形態では、より精度を上げるために、サンプリング周期毎検出された位置によらず、任意に設定した１周期の両端となる位置ＰＡ，ＰＢによって基準データとなる検出誤差Ｄ（０）〜Ｄ（ｎ）を求める。ただし設定位置ＰＡとＰＢの差は１周期分の移動量Ｌとなるように設定する。そして、レジスタ４２に取り込むサンプリング位置データは、設定位置ＰＡ，ＰＢが含まれるように位置データＰ（０）〜Ｐ（ｎ＋１）を取り込む。例えば、Ｐ（０）≦ＰＡ≦Ｐ（１）又はＰ（０）≧ＰＡ≧Ｐ（１）であれば、Ｐ（ｎ）≦ＰＢ≦Ｐ（ｎ＋１）又はＰ（ｎ）≧ＰＢ≧Ｐ（ｎ＋１）となるようにサンプリング位置データを取り込む。わかり安さからすれば、ＰＡ＝０、ＰＢ＝Ｌ（＝０）とすれば、元信号の１周期の始点と終点の位置を指定したことになる。
【００２９】
図６は、この第２の実施形態の説明図で、横軸を時間、縦軸を検出位置とし、位置データＰ（０）を検出した時点を時間軸の原点として、サンプリング位置データＰ（０）〜Ｐ（ｎ＋１）をプロットした図である。そして、設定位置ＰＡを挟む両側のサンプリング位置データＰ（０），Ｐ（１）と設定位置ＰＡおよびサンプリング周期Ｔｓによって補間して、設定位置ＰＡに対する時間ｔＡを求める。同様にサンプリング位置データＰ（ｎ），Ｐ（ｎ＋１）と設定位置ＰＢおよびサンプリング周期Ｔｓによって補間して求めた値と、位置データＰ（ｎ）をサンプリングした時間ｎ・Ｔｓによって設定位置ＰＢに対する時間ｔＢを求める。等速移動で位置はリニアに変化するものであるから、こうして求めた点（ｔＡ，ＰＡ）、点（ｔＢ，ＰＢ）を結ぶ直線（図６に破線で示す直線）は、位置データが検出されるべき理想的な位置を表している。
【００３０】
そこで、位置データ群の中でｍ番目のデータＰ（ｍ）はｍ回目のサンプリング時ｔｍ（＝ｍ・Ｔｓ）に検出された位置データであり、該位置Ｐ（ｍ）に対する検出されるべき理想上の位置Ｐ'（ｍ）は、破線で示す直線で示される次の２式の演算式で求められる位置である。
Ｐ'（ｍ）＝ＰＡ＋(ＰＢ−ＰＡ)×(ｔｍ−ｔＡ)／(ｔＢ−ｔＡ)…・（２）
そして、検出誤差Ｄ（ｍ）は次の３式で求められる。
0003772121.tif 000003
検出誤差計算回路４３は、１周期分の各サンプリング位置データＰ（０）〜Ｐ（ｎ）に対して上記３式の演算を行い上記検出誤差Ｄ（０）〜Ｄ（ｎ）を求め、各位置データＰ（０）〜Ｐ（ｎ）に対応させて検出誤差Ｄ（０）〜Ｄ（ｎ）を求め、この位置データＰ（０）〜Ｐ（ｎ）を基準データの検出位置データとして検出誤差Ｄ（０）〜Ｄ（ｎ）と組み合わせて補正用検出誤差格納レジスタ５１に格納する。なお、すべての位置データＰ（０）〜Ｐ（ｎ）対して検出誤差Ｄ（０）〜Ｄ（ｎ）を求めることなく、選ばれた位置データ、例えば、偶数回のサンプリング位置データＰ（０），Ｐ（２），Ｐ（４）……を基準の位置データとして、これに対して検出誤差Ｄ（０），Ｄ（２），Ｄ（４）……を求めこれらを組として補正用検出誤差格納レジスタ５１に基準データとして格納するようにしてもよい。
【００３１】
検出誤差補正を行うときには、補正計算回路５２は、上述したように、ディジタル内挿回路３から出力される位置データＰ（ｘ）と補正用検出誤差レジスタ５１に記憶する位置データＰ（０）〜Ｐ（ｎ）を比較し、検出位置データＰ（ｘ）の前後の位置データを求め、求められた位置データに基づいて補間計算によって検出誤差を求める。
【００３２】
補正計算回路５２は、こうして求めた検出誤差Ｄ（ｘ）を検出位置データＰ（ｘ）から差し引いて補正し出力する。
【００３３】
前述した第１、第２の実施形態は、検出誤差データＤ（０）〜Ｄ（ｎ）をサンプリングされ検出された位置データＰ（０）〜Ｐ（ｎ）に対して求めたが、任意の位置毎に求めるようにしてもよい。この例を第３の実施形態として図７とともに説明する。
この第３の実施形態は、検出誤差を任意の位置に対して求めるものであり、他は上述した図６に示す第２の実施形態と同一である。
【００３４】
まず、検出誤差計算回路４３は、設定されている位置ＰＸがレジスタ４２に格納された検出位置データＰ（０）〜Ｐ（ｎ）のどの領域にあるかを探し、例えば、Ｐ（ｍ）とＰ（ｍ＋１）にあったとすると、サンプリング位置データＰ（ｍ），Ｐ（ｍ＋１）と設定位置ＰＸおよびサンプリング周期Ｔｓによって補間して求めた時間と、位置データＰ（ｍ）をサンプリングした時間ｍ・Ｔｓによって設定位置ＰＸに対する時間ｔＸを求める。
【００３５】
そして、設定した始点、終点の位置ＰＡ，ＰＢとこの位置に対応する時間ｔＡ，ｔＢ及び上記求めた時間ｔＸによって、次の４式の演算による直線補間によって、
該任意の位置ＰＸが検出されるべき理論的な位置ＰＸ’を求める。
ＰＸ’＝ＰＡ＋(ＰＢ−ＰＡ)×(ｔＸ−ｔＡ)／(ｔＢ−ｔＡ)…・（４）
よって、この任意の位置ＰＸが検出されたときに含まれる検出誤差ＤＸは次の５式となる。
【００３６】
ＤＸ＝ＰＸ−ＰＸ'
＝ＰＸ−［ＰＡ＋(ＰＢ−ＰＡ)×(ｔＸ−ｔＡ)／(ｔＢ−ｔＡ)］…・（５）そこで、上記任意の位置ＰＸを複数設定しておき（望ましくは等間隔にこの位置ＰＸを設定する）、各検出誤差計算回路４３は設定位置ＰＸ毎に上記５式の演算を行って、検出誤差ＤＸを求める。そして、この複数の設定位置ＰＸとそれに対応する検出誤差ＤＸを対応させて基準データとして補正用検出誤差レジスタ５１に格納する。また、この第３の実施形態の場合、設定位置ＰＸが決まった位置であるから、この複数の設定位置ＰＸに対する検出誤差ＤＸを複数回分検出誤差格納レジスタ４４に格納し、平均化回路４５で各設定位置ＰＸに対するそれぞれの検出誤差ＤＸの平均をとり、各設定位置ＰＸを基準の位置データＰｓとしこれに対応する平均誤差を組み合わせて基準データとして補正用検出誤差レジスタ５１に格納する。
【００３７】
なお、平均化回路４５としては、単にｋ回の各検出誤差を加算しｋで割って平均を求める方法、又は、すでに求めている検出誤差の平均値Ｄｓに［（ｋ−１）／ｋ］を乗じた値に新たに求められた検出誤差Ｄをｋで割った値を加算する等のフィルタリング処理により平均値を求める方法等の各種方法が適用できる。
【００３８】
こうして求められた各設定位置ＰＸに対する検出誤差ＤＸが組となって補正用検出誤差レジスタ５１に格納され、補正用計算回路５２が、この補正用検出誤差レジスタ５１に記憶された基準データに基づいて、ディジタル内挿回路３から出力される位置データＰ（ｘ）に対する検出誤差Ｄ（ｘ）を求め、該位置データＰ（ｘ）を補正して１周期内の位置データとして出力する。
【００３９】
図８は、本発明の第４の実施形態の説明図である。第３の実施形態が元信号の１周期内の任意の位置を設定することにより、その設定位置における検出誤差を求めて基準データとしたことに対して、この第４の実施形態は設定スタート位置ＰＡと終了位置ＰＢ間を所定時間間隔Ｔで等分割して、各分割点の検出位置データに対する検出誤差を求め基準データとするものである。
【００４０】
スタート位置ＰＡと終了位置ＰＢに対応する時間ｔＡ，ｔＢは、第２の実施形態で述べたようにして求めることができる。この時間ｔＡからｔＢまでの間を等間隔に分割し、その分割間隔をＴとする。また、各分割点の時間をｔＸ１，ｔｘ２，ｔｘ３…・・とする。各分割点において位置データが検出されるべき理論的な位置は位置ＰＡ、ＰＢ、そのときの時間ｔＡ，ｔＢ分割点の時間ｔＸｉ（ｉ＝１，２．…）によって、前記４式と同様な式による補間計算で求めることができる。また、この分割点において検出されると予想される検出位置データは、分割点の前後のサンプリング位置データと、サンプリング周期Ｔｓ、スタート時間ｔＡ、分割点の時間ｔＸｉによって、直線補間によって同様に求めることができる。そして、この分割点における理論的な位置と、この分割点において検出されると予想される検出位置データとの差よりそれぞれ検出誤差Ｄ（ｉ）を求める。
【００４１】
そして、求めた分割点において検出されると予想される検出位置データとその分割点における検出誤差Ｄ（ｉ）を組として、補正用検出誤差格納レジスタに格納し、基準データとする。また、この実施形態の場合も、分割点の位置は固定されるから（速度一定であり、一定時間Ｔ間隔であるから、分割点の位置は決まった位置となる）、検出誤差格納レジスタ４４と平均化回路４５を用いて、各分割点において検出されると予想される検出位置データに対する検出誤差の平均値を前述したようにして求め、この検出誤差の平均値を基準データの検出誤差としてもよい。
【００４２】
図９は、基準データとして記憶された位置データＰｓ（ｉ）と各位置データに対応する検出誤差Ｄ（ｉ）より、補正計算回路５２が、ディジタル内挿回路３から出力される位置データＰ（ｘ）に対して行う補正の説明図である。位置データＰ（ｘ）と補正用検出誤差レジスタ５１に記憶する基準データの位置データＰｓ（０）〜Ｐ（ｎ）を比較し、検出位置データＰ（ｘ）の前後の位置データＰｓ（ｉ），Ｐｓ（ｉ＋１）を求める。そして、この基準データの位置データＰｓ（ｉ），Ｐｓ（ｉ＋１）とそれに対応する検出誤差データＤ（ｉ），Ｄ（ｉ＋１）により、検出位置データＰ（ｘ）に対する検出誤差Ｄ（ｘ）を６式の補間演算を行って求める。
D(x)＝D(i)＋{D(i+1)−D(i)}・{P(x)−Ps(i)}／{Ps(i+1)−Ps(i)}…・（６）
補正計算回路５２は、こうして求めた検出誤差Ｄ（ｘ）を検出位置データＰ（ｘ）から差し引いて補正し出力する。
【００４３】
上述した各実施形態においては、検出誤差データ算出回路４中に開始条件判別回路４１を設け、該開始条件判別回路４１で判別してレジスタ４２へのデータ取り込み、及び基準データの算出指令を出力するようにしたが、この開始条件判別回路４１を設けず、このエンコーダを取り付けた機械や装置を制御する数値制御装置等の制御装置によって、開始条件を判別し、この制御装置からデータ取り込み、及び基準データの算出指令を出力するようにしてもよい。
【００４４】
さらに、位置データ取得手段で前記１周期内を少なくとも３点以上の連続して検出された（ｎ＋１）個の位置データ群Ｐ（０）〜Ｐ（ｎ）(ｎ≧２)を求め、位置データ群Ｐ（０）〜Ｐ（ｎ）を用いて、Ｐ（０）とＰ（ｎ）間に存在する第３の任意の点Ｐ（ｘ）の検出誤差を周波数解析により求め、求めた検出誤差データとそのときの位置を基準データとし、上述した方法によって、ディジタル内挿回路３から出力される位置データを補正するようにしてもよい。
【００４５】
また、検出誤差データ算出回路４さらには検出誤差補正回路５をプロセッサで構成し、ソフトウエアによって、基準データ及び補正を行うようにしてもよい。図１０はプロセツサで行うときの第４の実施形態と同様の基準データを求める処理（検出誤差データ算出回路４の行う処理と同等の処理）のフローチャートである。
まず、基準データ作成指令が、手動若しくはこのエンコーダを取り付けた機械や装置を制御する制御装置からの指令として入力されたとき、プロセッサは、ディジタル内挿回路３が出力されるサンプリング位置データに基づいて、設定検出誤差算出開始条件を満たしているか否かを判別する。すなわち、現在の速度が規定値であるか、さらには、加速度が規定値内かを判別する（ステップａ１）。
【００４６】
設定検出誤差算出開始条件を満たしていることが判別されると、ディジタル内挿回路３から出力されるサンプリング位置データを１周期分以上取り込む（ステップａ２、ａ３）。この位置データの取り込みが完了すると、１周期分の位置データが取り込み完了時での加速度が規定範囲内か判断する（ステップａ４）。規定範囲からはずれている場合には、位置データを取得した１周期分内で速度変化があったことを意味するので、ステップａ１に戻り再度位置データの取り込みを行う。
【００４７】
ステップａ４で、加速度が規定範囲内と判断された場合には、取り込んだ位置データは速度一定のデータとみなされ、この位置データから設定されている位置ＰＡ、該位置ＰＡより１周期経過後の設定位置ＰＢの前後の位置データＰ（０），Ｐ（１）、及びＰ（ｎ），Ｐ（ｎ＋１）を取り込んだ位置データから求める（ステップａ５，ａ６）。位置データＰ（０）のサンプリング時を時間「０」とし、位置ＰＡ，ＰＢの時間ｔＡ，ｔＢを前述したように補間処理によって求める（ステップａ７）。
【００４８】
時間ｔＡ，ｔＢ間を均等に分割し、各分割点において検出されると予想される位置データを前述したように補間処理によって求め、さらにこの予想される検出位置に対する検出誤差を求め、この予想される検出位置とこれに対応する検出誤差を対応させて記憶する（ステップａ８）。
【００４９】
指標ｊを１インクリメントし（該指標ｊは初期設定で「０」にセットされている）、該指標ｊの値が設定回数か判断し（ステップａ９，ａ１０）設定回数でなければ、ステップａ１に戻る。以下ステップａ１からステップａ１０の処理を繰り返し、指標ｊが設定回数に達すると、予想される検出位置に対して記憶したｊ個の検出誤差の平均を求め（ステップａ１１）、予想される検出位置とこの検出誤差の平均の組を基準データとして記憶し（ステップａ１２）、基準データの取得処理は終了する。
【００５０】
図１１は、エンコーダが通常の位置検出を行うときに行う処理（検出誤差補正回路５で行う処理と同等の処理）のフローチャートで、所定周期毎プロセッサはこの図１１に示す処理を実行する。
ディジタル内挿回路３の出力である位置データＰ（ｘ）を読み（ステップｂ１）、基準データとして記憶する位置データの中から、この読みとった位置データＰ（ｘ）の前後の位置データＰ（ｍ），Ｐ（ｍ＋１）を求める（ステップｂ２）。求められた位置データＰ（ｍ），Ｐ（ｍ＋１）に対して記憶されている検出誤差データＤ（ｍ），Ｄ（ｍ＋１）を求め（ステップｂ３）、位置データＰ（ｍ），Ｐ（ｍ＋１）と誤差データＤ（ｍ），Ｄ（ｍ＋１）に基づいて、読みとった位置データＰ（ｘ）に対する検出誤差Ｄ（ｘ）を補間演算処理を行って求める（ステップｂ４）。読みとった位置データＰ（ｘ）に対して検出誤差Ｄ（ｘ）を補正して、１周期内の検出位置データとして出力する（ステップｂ５）。さらに、この補正された検出位置データと周期を計数するカウンタのデータ値により、ポジションデータとして出力する。
【００５１】
【発明の効果】
周期的に発生する元信号の１周期内の位置をサンプリングして得られる各検出位置に含まれる検出誤差を求め、サンプリングによる検出位置に対して検出誤差を補正して１周期内の検出位置データとするから、この補正された検出位置データは、オフセット電圧、振幅差、位相差を補正し、かつ、波形歪みを取り除いたものとなり、正確な１周期内の位置を得ることができる。さらに、稼働中の温度変動による波形変化や経年的な波形変化による誤差変動についても自動的に取り除くことができる。しかもディジタル回路で構成したから、アナログ回路で構成する場合と比較して、格段に実装面積を小さくできる。
【図面の簡単な説明】
【図１】従来のエンコーダにおける位置、角度検出方法のブロック図である。
【図２】本発明の一実施形態のブロック図である。
【図３】同実施形態における開始条件判定回路の詳細ブロック図である。
【図４】本発明の第１の実施形態の説明図である。
【図５】基準データの説明図である。
【図６】本発明の第２の実施形態の説明図である。
【図７】本発明の第３の実施形態の説明図である。
【図８】本発明の第４の実施形態の説明図である。
【図９】基準データに基づいて検出位置データを補正する補正方法の説明図である。
【図１０】基準データの取得をプロセッサで行ったときの一実施形態の処理のフローチャートである
【図１１】プロセッサにより検出誤差を補正して１周期内の位置データを得る実施形態における処理フローチャートである。
【符号の説明】
４  検出誤差データ算出回路
５  検出誤差補正回路
Ｐ（０），Ｐ（ｎ），Ｐ（ｍ）  検出位置データ
Ｐ’（ｍ），ＰＸ’  理想的位置
Ｄ（ｍ），ＤＸ  検出誤差
【図１】
0003772121.tif 000004
【図２】
0003772121.tif 000005
【図３】
0003772121.tif 000006
【図４】
0003772121.tif 000007
【図５】
0003772121.tif 000008
【図６】
0003772121.tif 000009
【図７】
0003772121.tif 000010
【図８】
0003772121.tif 000011
【図９】
0003772121.tif 000012
【図１０】
0003772121.tif 000013
【図１１】
0003772121.tif 000014