(57)【要約】【課題】  複数ピッチの異なる周期信号からバーニア演算により絶対位置を演算する位置検出装置であって、トラック上にゴミやキズがあっても誤検出しない装置を提供する。【解決手段】移動方向において互いに異なる周期の複数のパターン列を有するスケールと、スケールに対する移動方向の位置に基づく複数の信号を取得する位置信号取得手段と、取得した複数の信号を元に位置信号取得手段のスケールに対する絶対位置を演算する絶対位置演算手段と、演算した絶対位置が誤検出されたか否かを判断する誤検出判断手段と、絶対位置が誤検出されたと判断されたときに演算された情報、及び、演算した絶対位置が正しいか否かを判断するための情報、を含む誤検出情報を記憶する記憶手段と、記憶手段に記憶された誤検出情報に基づき、絶対位置演算手段が演算した絶対位置が正しいか否かを判断する絶対位置判断手段と、を有する。【選択図】  図１
2015094677.tif 000002
【特許請求の範囲】
【請求項１】
移動方向において互いに異なる周期で形成された複数のパターン列を有するスケールと、
前記スケールに対する前記移動方向の位置に基づく複数の信号を取得する位置信号取得手段と、
前記位置信号取得手段が取得した前記複数の信号を元に前記位置信号取得手段の前記スケールに対する絶対位置を演算する絶対位置演算手段と、
前記絶対位置演算手段が演算した絶対位置が誤検出されたか否かを判断する誤検出判断手段と、
前記誤検出判断手段により絶対位置が誤検出されたと判断されたときに演算された情報、及び、絶対位置演算手段が演算した絶対位置が正しいか否かを判断するための情報、を含む誤検出情報を記憶する記憶手段と、
前記記憶手段に記憶された誤検出情報に基づき、前記絶対位置演算手段が演算した絶対位置が正しいか否かを判断する絶対位置判断手段と、
を有することを特徴とする位置検出装置。
【請求項２】
前記誤検出情報は、過去の前記絶対位置演算手段によって演算された絶対位置であって、前記誤検出判断手段によって誤検出されたと判断された絶対位置、を含み、
前記絶対位置判断手段は、前記絶対位置演算手段が演算した絶対位置が、前記誤検出情報として保存されている絶対位置を基点として所定の範囲外である場合は、該演算された絶対位置を現在の絶対位置として判断する、
ことを特徴とする請求項１に記載の位置検出装置。
【請求項３】
前記誤検出判断手段によって誤検出だと判断された、前記絶対位置演算手段によって演算された絶対位置が、前記記憶手段に記憶されている誤検出情報と異なる場合は、誤検出情報を更新する、ことを特徴とする請求項１又は２に記載の位置検出装置。
【請求項４】
前記スケールに対して前記位置信号取得手段を前記移動方向に駆動する駆動手段及び該駆動手段を制御する駆動制御手段を有し、
駆動制御手段は、電源をオフにするとき、前記記憶手段に前記誤検出情報として保持されている絶対位置から所定の範囲外に前記位置信号取得手段を駆動するよう前記駆動手段を制御してから、電源をオフにする、
ことを特徴とする請求項１乃至３のいずれか１項に記載の位置検出装置。
【請求項５】
前記誤検出情報を外部に出力する手段を有することを特徴とする請求項１乃至４のいずれか１項に記載の位置検出装置。
【請求項６】
前記スケールの前記位置信号取得手段に対する変位量を演算する相対位置演算手段を有し、
前記誤検出判断手段は、第１の位置及び第２の位置における前記絶対位置演算手段により演算された絶対位置の差と、前記相対位置演算手段で演算された前記第１の位置と前記第２の位置との間の変位量とが、互いに異なる場合は、前記第１の位置及び前記第２の位置で検出された絶対位置のいずれかが誤検出されたと判断する、
ことを特徴とする請求項１乃至５のいずれか１項に記載の位置検出装置。
【請求項７】
前記誤検出判断手段は、第１の位置及び第２の位置における前記絶対位置演算手段により演算された絶対位置の差と、前記相対位置演算手段で演算された前記第１の位置と前記第２の位置との間の変位量とが、互いに異なる場合、前記第１の位置及び前記第２の位置のいずれからも所定の変位量以上離間した第３の位置において前記絶対位置演算手段により演算された絶対位置と異なる値を示す第１の位置又は第２の位置における絶対位置が誤検出されたと判断する、
ことを特徴とする請求項６に記載の位置検出装置。
【請求項８】
前記誤検出判断手段は、前記位置信号取得手段が前記スケールに対して停止したときに、第１の位置及び第２の位置における前記絶対位置演算手段により演算された絶対位置の差と、前記相対位置演算手段で演算された前記第１の位置と前記第２の位置との間の変位量とが、互いに異なる場合、前記第１の位置及び前記第２の位置のいずれからも所定の変位量以上離間した第３の位置において前記絶対位置演算手段により演算された絶対位置と異なる値を示す第１の位置又は第２の位置における絶対位置が誤検出されたと判断する、ことを特徴とする請求項７に記載の位置検出装置。
【請求項９】
可動光学部材と、該可動光学部材の位置検出装置として請求項１乃至８のいずれか１項に記載の位置検出手段とを備える、レンズ装置。
【請求項１０】
請求項９に記載のレンズ装置とカメラ装置とを備える撮影装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可動要素の位置を検出する位置検出装置及びそれを有するレンズ装置及び撮影装置に関するものである。
【背景技術】
【０００２】
従来、物体の移動距離を測定するための装置として、相対移動距離を測定するインクリメンタルエンコーダの他、絶対位置の測長を可能としたアブソリュートエンコーダが知られている。
【０００３】
特許文献１には、バーニア型アブソリュートエンコーダが開示されている。構成としては、トラック上にピッチの異なる２つ以上の格子パターンを設けている。これら各格子パターンのピッチ差に起因する検出信号の微妙なずれから、１回循環する区間内での位置の特定（以後、アブソリュート化又は絶対位置演算とも記載する）を行う。
【０００４】
また特許文献２には、バーニア型アブソリュートエンコーダにおいて、アブソリュート化のタイミングに関する特許が開示されている。構成としては、細かいピッチと粗いピッチでトラックパターンが形成されている。これら各トラックからアブソリュート化を行うタイミングとして、細かいピッチのインクリメンタル計測に誤検出が発生しない速度まで低下した時に、アブソリュート化を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−３０４１１３号公報
【特許文献２】特開平５−４５１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されたアブソリュートエンコーダには以下のような問題がある。スケール上にゴミやキズがある場合、ノイズを含む検出信号から絶対位置を演算することとなる。この結果、正しい絶対位置を演算することができない問題が発生する。
【０００７】
また、特許文献２に開示されたアブソリュートエンコーダには以下のような問題がある。
細かいピッチのインクリメンタル計測に誤検出が発生しない速度まで低下した位置において、スケール上にゴミやキズがある場合に、誤った検出信号を検出してしまう。この結果も同様に誤った検出信号から絶対位置を演算することとなる。
また、アブソリュートエンコーダは機器内部に組み込まれてしまうため、アブソリュートエンコーダ自体の不良を判断することが困難であった。
【０００８】
そこで、本発明は、ゴミやキズがトラック上にある場合でも、誤った絶対位置演算を防ぐことを可能とした、信頼性の高いバーニア型位置検出装置を提供する。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明の位置検出装置は、移動方向において互いに異なる周期で形成された複数のパターン列を有するスケールと、前記スケールに対する前記移動方向の位置に基づく複数の信号を取得する位置信号取得手段と、前記位置信号取得手段が取得した前記複数の信号を元に前記位置信号取得手段の前記スケールに対する絶対位置を演算する絶対位置演算手段と、前記絶対位置演算手段が演算した絶対位置が誤検出されたか否かを判断する誤検出判断手段と、前記誤検出判断手段により絶対位置が誤検出されたと判断されたときに演算された情報、及び、絶対位置演算手段が演算した絶対位置が正しいか否かを判断するための情報、を含む誤検出情報を記憶する記憶手段と、前記記憶手段に記憶された誤検出情報に基づき、前記絶対位置演算手段が演算した絶対位置が正しいか否かを判断する絶対位置判断手段と、を有する、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、バーニア型位置検出装置において、ゴミやキズがトラック上にある情報を外部に出力することで、アブソリュートエンコーダの状態を外部で確認することができる。更にゴミやキズがトラック上にある情報を元に、誤った絶対位置演算を防ぐことを可能とした、信頼性の高い位置検出装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の位置検出装置の第１の実施形態の構成ブロック図
【図２】ＡＢＳセンサーの断面図
【図３】スケール部の平面図
【図４】受光部の平面図
【図５】絶対位置演算のフローチャート
【図６】第１及び第２の相対位置信号及びバーニア信号のグラフ
【図７】同期演算における波形の変化を示すグラフ
【図８】スケール上の異物とパターン読み取り範囲を説明する図
【図９】可動要素位置と絶対位置値の関係を示すグラフ
【図１０】第１の実施形態における誤検出情報を記録するフローチャート
【図１１】第１の実施形態の絶対位置決定のフローチャート
【図１２】第２の実施形態の構成ブロック図
【図１３】第１の実施形態における誤検出情報を更新するフローチャート
【発明を実施するための形態】
【００１２】
以下に、本発明の位置検出装置の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
【実施例１】
【００１３】
以下、図１を用いて、本発明の位置検出装置の第１の実施例を説明する。
【００１４】
図１は、実施例１の構成ブロック図である。図１において、ＡＢＳ／ＩＮＣ演算部１０２（絶対位置演算手段）は、ＡＢＳセンサーから出力される信号を元に、固定要素に対しての可動要素の位置をその位置で取得された信号に基づいて演算される位置（絶対位置）である絶対位置値Ｐａｂｓ、及び、固定要素に対する可動要素のある位置からの変位量（相対位置）である相対位置値Ｐｉｎｃを演算する演算部である。読取パターン切替え部１０３（位置信号取得手段）は、２種類のパターン列により発生する２種類の信号出力をＡＢＳセンサー１０４（位置信号取得手段）から切替えて出力させる。ＡＢＳセンサー１０４は、固定要素に対しての可動要素の絶対位置を演算するための信号を出力する絶対位置センサーである。ＡＢＳセンサー１０４の内部構成及び出力信号については後述する。ＡＤ変換部１０５は、ＡＢＳセンサー１０４から出力されるアナログ信号をデジタル信号に変替するＡＤ変換部である。ＡＢＳ異常検出部１０６（誤検出判断手段）は、ＡＢＳ／ＩＮＣ演算部１０２（絶対位置演算手段）が演算した絶対位置値Ｐａｂｓ及び相対位置値Ｐｉｎｃに基づいて絶対位置値Ｐａｂｓの異常を検出する絶対位置異常検出部である。ＡＢＳ異常検出部１０６が絶対位置値Ｐａｂｓの異常を検出する方法については後述する。メモリ１０７（記憶手段）は絶対位置値Ｐａｂｓが正しくないと判断した時の絶対位置値Ｐａｂｓに関する情報である誤検出情報Ｅｉｎｆｏを保持するためのメモリであり、例えばＥＥＰＲＯＭである。誤検出情報Ｅｉｎｆｏについては後述する。ＡＢＳ決定部１０１（絶対位置決定手段）は、ＡＢＳ／ＩＮＣ演算部１０２が演算した絶対位置値Ｐａｂｓ及び相対位置値Ｐｉｎｃ及び誤検出情報Ｅｉｎｆｏに基づいて現在の絶対位置Ｐａｂｓｃを決定する絶対位置決定部である。ＡＢＳ決定部１０１及びＡＢＳ／ＩＮＣ演算部１０２及びＡＢＳ異常検出部１０６は例えば一つのＣＰＵ内に構成される。
【００１５】
次に本実施例の動作について説明する。ＡＢＳ決定部１０１は、ＡＢＳ／ＩＮＣ演算部１０２に対して、絶対位置値Ｐａｂｓの演算の要求を行う。ＡＢＳ／ＩＮＣ演算部１０２は、ＡＢＳ決定部１０１からの絶対位置演算要求を受けると、読取パターン切替え部１０３に、２種類のパターン列に対応する信号を順次ＡＢＳセンサー１０４から出力するように指令を出す。読取パターン切替え部１０３は、ＡＢＳセンサー１０４に順次、後述する２種類のパターンの信号を出力する指示を行う。ＡＢＳセンサー１０４は、読取パターン切替え部１０３の指示に従い、２種類のパターン列に対応する信号を順次出力する。ＡＢＳセンサーから出力される２種類のパターン列に対応する信号は、ＡＤ変換部１０５でデジタル信号に変換され、ＡＢＳ／ＩＮＣ演算部１０２に出力される。ＡＢＳ／ＩＮＣ演算部は、２種類のパターン列に対応する信号を元に絶対位置値Ｐａｂｓを演算し、ＡＢＳ決定部１０１及びＡＢＳ異常検出部１０６に出力する。
【００１６】
一方、ＡＢＳ／ＩＮＣ演算部１０２は、相対位置値Ｐｉｎｃを演算するために必要なパターン列に対応する信号をＡＢＳセンサー１０４から出力させるように読取パターン切替え部１０３に指令を出す。ＡＢＳ／ＩＮＣ演算部１０２は、相対位置値Ｐｉｎｃを演算するために必要なパターン列に対応する信号に切り替えた後、前述と同様にＡＤ変換部１０５から出力されたパターン列に対応する信号を元に相対位置値Ｐｉｎｃを演算する。その後、ＡＢＳ決定部１０１及びＡＢＳ異常検出部１０６に相対位置値Ｐｉｎｃを定期的に出力する。絶対位置及び相対位置演算方法については後述する。ＡＢＳ異常検出部１０６は、複数位置での絶対位置値Ｐａｂｓ及び相対位置値Ｐｉｎｃを元に絶対位置値Ｐａｂｓが正しいか否かを判断する。ＡＢＳ異常検出部１０６は、絶対位置値Ｐａｂｓが正しくないと判断した時に、誤検出情報Ｅｉｎｆｏをメモリ１０７に保存する。ＡＢＳ異常検出部１０６が絶対位置値Ｐａｂｓが正しくないと判断する方法については後述する。また誤検出情報Ｅｉｎｆｏについても後述する。ＡＢＳ決定部１０１は誤検出情報Ｅｉｎｆｏ、相対位置値Ｐｉｎｃ、絶対位置値Ｐａｂｓを元に絶対位置を決定する。ＡＢＳ決定部１０１が絶対位置を決定する方法については後述する。
次にＡＢＳセンサー１０４の内部構成及び出力信号について説明する。
【００１７】
図２はＡＢＳセンサー１０４の断面図である。図２において、可動要素２１は、紙面に垂直方向となるＸ軸方向に移動可能な可動部である。固定要素２２は、可動要素２１の絶対位置の基準となる要素である。光源２０１は発光部であり、例えばＬＥＤである。スケール部２０２は全長でスリット数の異なる等間隔の２つのパターン列２０３ａ，２０３ｂを有するスケール部である。受光部２０４ａ，２０４ｂはそれぞれ、パターン列２０３ａ，２０３ｂにより反射した光源２０１からの光を受光するための受光部であり、例えばフォトダイオードアレイで構成される。信号処理回路２０５は、受光部２０４ａ，２０４ｂで受光した信号を処理し、読取パターン切替え部１０３の切替え信号に応じて、パターン列２０３ａ，２０３ｂの何れかに対応する信号を出力する信号処理回路である。なお、本実施例においては、可動要素２１にスケール部２０２を備え、固定要素２２に光源２０１及び受光部２０４ａ、２０４ｂを備える構成を例示した。しかし、本発明はこれに限定されることはなく、固定要素及び可動要素の内の一方にスケール部２０２を、他方に光源２０１及び受光部２０４ａ、２０４ｂを備える構成とすればよい。後述する実施例においても同様である。
【００１８】
図３は、本実施形態におけるスケール部２０２の平面図である。図３では反射型のスリットパターン列（反射パターン列）を一例として示している。スケール部２０２は、第一パターン列２０３ａと第二パターン列２０３ｂの２つのパターン列を備えて構成されている。パターン列２０３ａ，２０３ｂの反射部（黒塗り部）に光源２０１からの光が入射すると、受光部２０４ａ，２０４ｂに向けてそれぞれ反射するような構成となっている。第一パターン列２０３ａの反射部はＰ１間隔で等間隔に形成されている。また第二パターン列２０３ｂの反射部はＰ２間隔で等間隔に形成されている。本実施例では、Ｐ１は、スケールの全長Ｌｍａｘに対して反射部が４０個、つまり全長Ｌに対して４０周期となるように構成されている。また、Ｐ２は、スケールの全長Ｌｍａｘに対して反射部が３９個、つまり全長Ｌに対して３９周期となるように構成されている。
【００１９】
図４は、受光部２０４ａの平面図である。ここで受光部２０４ｂも受光部２０４ａ同様の構成となっている。受光部２０４ａには水平方向に１６個のフォトダイオード４０１〜４１６が等間隔に配置されている。フォトダイオード４０１，４０５，４０９，４１３は電気的に接続されており、この組をａ相とする。また、フォトダイオード４０２，４０６，４１０，４１４の組をｂ相とする。同様に、フォトダイオード４０３，４０７，４１１，４１５の組をｃ相とし、フォトダイオード４０４，４０８，４１２，４１６の組をｄ相とする。本実施例では、受光部２０４ａ内の４個のフォトダイオードの間隔（例えばフォトダイオード４０１から４０４の間隔）が第一パターン２０３ａの反射部の間隔Ｐ１の２倍であることを前提に説明する。ここで、光源２０１から第一パターン２０３ａの反射部の距離の２倍が、光源２０１から受光部２０４ａの距離となるため、受光部２０４ａで受光する反射光の幅は、反射部の２倍の幅となる。従って受光部２０４ａ内の４個のフォトダイオードの間隔は、第一パターン列２０３ａのパターンの１周期分に相当する。従って、受光部２０４ａのフォトダイオードの全長Ｌｓ全てで読み取れるパターン列の範囲は、第一パターン列２０３ａのパターンの４周期分に相当する。
【００２０】
光源２０１からの光が第１パターン２０３ａで反射された光源２０１からの光を、受光部２０４ａで受光すると、ａ相、ｂ相、ｃ相、ｄ相の各フォトダイオード群は、前記受光した光量に応じた光電流を出力する。ここで、スケール部２０２のＸ軸方向への移動と共に、ａ相、ｂ相、ｃ相、ｄ相の各フォトダイオード群は、ａ相を基準にｂ相は９０°、ｃ相は１８０°、ｄ相は２７０°の位相関係で変動する電流が出力される。信号処理回路２０５は出力電流を電流電圧変替器で電圧に変換する。次に信号処理回路２０５は、差動増幅器によりそれぞれａ相とｃ相の差動成分、及びｂ相とｄ相の差動成分を求める。次に信号処理回路２０５は、ａ相とｃ相の差動成分、及びｂ相とｄ相の差動成分から、互いに９０°位相のずれた、第一パターン２０３ａのＡ相変位信号である第一のＡ相変位信号Ｓ１ｒＡ、Ｂ相変位信号である第一のＢ相変位信号Ｓ１ｒＢを生成する。受光部２０４ｂも同様の方法で、互いに９０°位相のずれた、第二パターン２０３ｂのＡ相変位信号である第二のＡ相変位信号Ｓ２ｒＡ、Ｂ相変位信号である第二のＢ相変位信号Ｓ２ｒＢを生成する。
【００２１】
ここで、信号処理回路２０５は、読取パターン切替え部１０３からの切替え信号に応じて、第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢ又は第二のＡ相変位信号Ｓ２ｒＡ及び第二のＢ相変位信号Ｓ２ｒＢの何れかを出力する。
【００２２】
以上により、ＡＢＳセンサー１０４は、読取パターン切替え部１０３からの切替え信号に応じて、第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢ又は第二のＡ相変位信号Ｓ２ｒＡ及び第二のＢ相変位信号Ｓ２ｒＢの何れかを出力する。
【００２３】
次に絶対位置及び相対位置演算方法について説明する。
絶対位置及び相対位置演算は、ＡＢＳ／ＩＮＣ演算部１０２で実行される。
【００２４】
図５は絶対位置演算のフローを示している。
Ｓ５０１で処理を開始し、Ｓ５０２に進む。
Ｓ５０２では、第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢの補正を行う。
【００２５】
ここで、第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢ、又は第二のＡ相変位信号Ｓ２ｒＡ及び第二のＢ相変位信号Ｓ２ｒＢは、お互いに信号オフセットや信号振幅が異なっている場合がある。このような信号をそのまま使用して絶対位置演算を行うと、演算した絶対位置値Ｐａｂｓの誤差要因となるため、信号の補正が必要となる。
【００２６】
本実施例では、先に説明した通り、受光部２０４ａ内の４個のフォトダイオードの間隔（例えばフォトダイオード４０１から４０４の間隔）が第一パターン２０３ａの反射部の間隔Ｐ１の２倍である。従って、第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢはそれぞれ以下の式（１）、式（２）のように表される。
S1rA：a1×COSθ+s1  ・・・（１）
S1rB：a2×SINθ+s2  ・・・（２）
【００２７】
ここでａ１，ｓ１はそれぞれ第一のＡ相変位信号Ｓ１ｒＡの振幅とオフセット、ａ２，ｓ２はそれぞれ第一のＢ相変位信号Ｓ１ｒＢの振幅とオフセット、θは信号の位相である。第一のＡ相変位信号Ｓ１ｒＡの最大値は、ｓ１＋ａ１、最小値はｓ１−ａ１、信号振幅はａ１、平均値はｓ１である。同様に、Ｂ相変位信号Ｓ１ｒＢの最大値は、ｓ２＋ａ２、最小値はｓ２−ａ２、信号振幅はａ２、平均値はｓ２である。これらの値を用いて、式（１）、式（２）で表される第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢを補正すると、補正後の第一のＡ相変位信号Ｓ１ｃＡ及び第一のＢ相変位信号Ｓ１ｃＢがそれぞれ以下の式（３）、式（４）のように表される。
【００２８】
S1cA：{(a1×COSθ+s1)-s1}×a2 = a1×a2×COSθ  ・・・（３）
S1cB：{(a2×SINθ+s2)-s2}×a1 = a1×a2×SINθ  ・・・（４）
この結果、第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢのオフセットが除去され、信号振幅が同一となった第一のＡ相変位信号Ｓ１ｃＡ及び第一のＢ相変位信号Ｓ１ｃＢが得られる。
以上により、Ｓ５０２で第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢの補正を行うと、Ｓ５０３に進む。
【００２９】
Ｓ５０３では、補正後の第一のＡ相変位信号Ｓ１ｃＡ及び第一のＢ相変位信号Ｓ１ｃＢを用いてアークタンジェント演算を行い、図６の（ａ´）に示すようなＡｔａｎ１信号を演算する。ここで第一パターン列２０３ａは、スケールの全長Ｌｍａｘに対して４０周期となるパターン列である。従って、Ａｔａｎ１信号は、スケール全長に対して８０周期となる。次にＡｔａｎ１から振幅Ｖｍａｘとなるスケール全長に対して４０周期となる第一の相対位置信号Ｉｎｃ１を演算する。具体的には。Ａｔａｎ１の振幅がＶｍａｘ／２になるように、Ａｔａｎ１信号にゲインをかけ、Ｓ１ｒＢの位相が０°の時の信号レベルを０とし、位相が１８０°から３６０°の時にＶｍａｘ／２を加算することで、第一の相対位置信号Ｉｎｃ１を演算する。従って、第一の相対位置信号Ｉｎｃ１は、図６の（ａ）に示すような、スケールの全長Ｌｍａｘに対して４０周期ののこぎり波となる。従って、周期Ｐ１の第一パターン２０３ａの位相に一対一に対応する対応する第一の相対位置信号Ｉｎｃ１が、ＡＢＳ／ＩＮＣ演算部１０２（位相演算部）によって演算される。
【００３０】
ここで図６の横軸はスケールの全長Ｌｍａｘに対しての位置を示し、縦軸はその時の信号レベルを示す。
Ｓ５０３で第一の相対位置信号Ｉｎｃ１を演算すると、Ｓ５０４に進む。
Ｓ５０４では、第二のＡ相変位信号Ｓ２ｒＡ及び第一のＢ相変位信号Ｓ２ｒＢの補正を行う。
【００３１】
受光部２０４ｂは受光部２０４ａと同じ構成となっているため、受光部２０４ｂ内の４個のフォトダイオードの間隔（例えばフォトダイオード４０１から４０４の間隔）が第一パターン２０３ａの反射部の間隔Ｐ１の２倍である。ここで第一パターン２０３ａの反射部の間隔Ｐ１と第二パターン２０３ｂの反射部の間隔Ｐ２は異なる間隔である。従って、受光部２０４ｂ内の４個のフォトダイオードの間隔（例えばフォトダイオード４０１から４０４の間隔）が第二パターン２０３ｂの反射部の間隔Ｐ２の２倍とはならない。このため、第二のＡ相変位信号Ｓ２ｒＡと第二のＢ相変位信号Ｓ２ｒＢは、９０°からずれた位相関係となる。
【００３２】
従って、第二のＡ相変位信号Ｓ２ｒＡと第二のＢ相変位信号Ｓ２ｒＢは、それぞれ、以下の式（５）、式（６）のように表わされる。
S2rA：b1×COSθ+t1  ・・・（５）
S2rB：b2×SIN（θ+α）+t2  ・・・（６）
【００３３】
ここでｂ１，ｔ１はそれぞれ第二のＡ相変位信号Ｓ２ｒＡの振幅とオフセット、ｂ２，ｔ２はそれぞれ第二のＢ相変位信号Ｓ２ｒＢの振幅とオフセット、θは信号の位相、αは位相のずれ量である。Ｓ５０２の処理と同様に第二のＡ相変位信号Ｓ２ｒＡ及び第二のＢ相変位信号Ｓ２ｒＢを補正すると補正後の第二のＡ相変位信号Ｓ２ｃＡ´及び第二のＢ相変位信号Ｓ２ｃＢ´がそれぞれ以下の式（７）、式（８）のように表される。
S2cA´：{(b1×COSθ+t1)-t1}×b2 = b1×b2×COSθ・・・（７）
S2cB´：{(b2×SIN（θ+α）+t2)-t2}×b1 = b1×b2×SIN（θ+α）・・・（８）
【００３４】
この結果、第二のＡ相変位信号Ｓ２ｒＡ及び第二のＢ相変位信号Ｓ２ｒＢのオフセットｔ１，ｔ２が除去され、信号振幅が同一となった第二のＡ相変位信号Ｓ２ｃＡ´及び第二のＢ相変位信号Ｓ２ｃＢ´が得られる。
【００３５】
次に式（７）、式（８）を用いて、第二のＡ相変位信号Ｓ２ｃＡ´及び第二のＢ相変位信号Ｓ２ｃＢ´の位相差を９０°とする処理について説明する。
式（７）、式（８）の差及び和は、それぞれ以下の式（９）、式（１０）のように表される。
【００３６】
b1×b2×(SIN（θ+α）-COSθ)
= b1×b2×2×SIN{(α-90)/2}×COS{θ+(α+90)/2}  ・・・（９）
b1×b2×(SIN（θ+α）+COSθ)
= b1×b2×2×COS{(α-90)/2}×SIN{θ+(α+90)/2}  ・・・（１０）
以上により式（９）、式（１０）の位相差は９０°となる。
【００３７】
ここで式（９）、式（１０）の振幅は異なっているため、次に振幅の補正を行い、信号振幅が同一となった第二のＡ相変位信号Ｓ２ｃＡ及び第一のＢ相変位信号Ｓ２ｃＢを演算する。式（９）に式（１０）の振幅の一部であるCOS{(α-90)/2}を乗じ、式（１０）に式（９）の振幅の一部であるSIN{(α-90)/2}を乗ずると、以下の式（１１）、式（１２）が得られる。
S2cA＝
b1×b2×2×SIN{(α-90)/2}×COS{(α-90)/2}×COS{θ+(α+90)/2}・・・（１１）
S2cA＝
b1×b2×2×SIN{(α-90)/2}×COS{(α-90)/2}×SIN{θ+(α+90)/2}・・・（１２）
【００３８】
この結果、第二のＡ相変位信号Ｓ２ｒＡ及び第二のＢ相変位信号Ｓ２ｒＢのオフセットが除去され、信号振幅が同一となった第二のＡ相変位信号Ｓ２ｃＡ及び第一のＢ相変位信号Ｓ２ｃＢが得られる。
以上により、Ｓ５０４で第二のＡ相変位信号Ｓ２ｒＡ及び第二のＢ相変位信号Ｓ２ｒＢの補正を行うと、Ｓ５０５に進む。
【００３９】
Ｓ５０５では、補正後の第二のＡ相変位信号Ｓ２ｃＡ及び第二のＢ相変位信号Ｓ２ｃＢを用いてＳ５０３と同様の演算を行い、第二の相対位置信号Ｉｎｃ２を演算する。ここで第二パターン２０３ｂは、スケールの全長Ｌｍａｘに対して３９周期となるパターン列である。従って、第二の相対位置信号Ｉｎｃ２は、図６の（ｂ）に示すような、スケールの全長ＬＭａｘに対して３９周期ののこぎり波となる。従って、周期Ｐ２の第二パターン２０３ｂの位相に一対一に対応する第二の相対位置信号Ｉｎｃ２が、ＡＢＳ／ＩＮＣ演算部１０２（位相演算部）によって演算される。ここで図６の横軸はスケールの全長Ｌｍａｘに対しての位置を示し、縦軸はその時の信号レベルを示す。
【００４０】
Ｓ５０５で第二の相対位置信号Ｉｎｃ２を演算すると、Ｓ５０６に進む。
Ｓ５０６に進むと、第一の相対位置信号Ｉｎｃ１と第二の相対位置信号Ｉｎｃ２の差分を計算し、差分が負の値の時にＶｍａｘを加算する計算を行うことにより、図６の（ｃ）に示すような、バーニア信号Ｐｖ１が得られる。ここで、第一の相対位置信号Ｉｎｃ１と第二の相対位置信号Ｉｎｃ２との全長Ｌｍａｘに対して周期の差は１であるため、バーニア信号Ｐｖ１は全長Ｌｍａｘに対して１周期ののこぎり波となる。
Ｓ５０６でバーニア信号Ｐｖ１を演算すると、Ｓ５０７に進む。
Ｓ５０７で絶対位置値Ｐａｂｓを演算する。
【００４１】
ここで、Ｓ１ｒＡ、Ｓ１ｒＢ、Ｓ２ｒＡ、Ｓ２ｒＢ、には外乱等によりノイズ成分が存在するため、Ｓ１ｒＡ、Ｓ１ｒＢ、Ｓ２ｒＡ、Ｓ２ｒＢ、から演算された相対位置信号Ｉｎｃ１と第二の相対位置信号Ｉｎｃ２にもノイズ成分が存在する。第一の相対位置信号Ｉｎｃ１と第二の相対位置信号Ｉｎｃ２は、同時に取得されたＳ１ｒＡ、Ｓ１ｒＢ、Ｓ２ｒＡ、Ｓ２ｒＢに基づくものではないため信号取得遅延がある。この信号取得遅延時間に、可動要素２１が移動している場合には信号に位相ズレが発生する。このノイズ成分及び位相ズレ量による誤差成分Ｅを補正するため、バーニア信号Ｐｖ１と第一の相対位置信号Ｉｎｃ１との同期演算を行う。同期演算によって、上位信号であるバーニア信号Ｐｖ１と下位信号である第一の相対位置信号Ｉｎｃ１を用いて合成した信号が絶対位置を示す信号レベルＶａｂｓとして演算される。ＶａｂｓからＰａｂｓが演算される。ＶａｂｓからＰａｂｓを演算する方法については後述する。
【００４２】
図７は上記同期演算により波形がどのように変化しているのかを示している。
図７において横軸はスケールの全長Ｌｍａｘに対しての位置を示し、縦軸はその時の信号レベルを示す。また、信号レベルの最大値をＶｍａｘで示す。また、Ｎ１はスケール開始点から何周期目の領域であることを示し、周期の最大をＮ１ｍａｘと定義している。本実施例では、第一パターン列２０３ａは、スケールの全長Ｌｍａｘに対して４０周期となるため、Ｎ１ｍａｘは４０であり、Ｎ１は１から４０までの自然数となる。
【００４３】
図７の（ａ）はＩｎｃ１、Ｐｖ１、Ｉｎｃ１／Ｎ１ｍａｘの波形を示している。Ｐｖ１の波形からＰｖ１と傾きが同じとなるＩｎｃ１／Ｎ１ｍａｘの差分を取ると、図７の（ｂ）に示す誤差成分Ｅを持つ階段上の波形が生成される。図７の（ｂ）に示す波形の信号レベルＶｂ´は、以下の式（１３）のように表わされる。ここで階段上の波形の一段の信号レベルはＶｍａｘ／Ｎ１ｍａｘとなる。
Vb´＝Pv1-（Inc1/N1max）  ・・・（１３）
【００４４】
次に図７の（ｂ）に示す波形の誤差成分Ｅを四捨五入により除去すると、図７の（ｃ）に示す波形となる。図７の（ｃ）に示す波形の信号レベルＶｂは、以下の式（１４）のように表わされる。
Vb＝Round[{Pv1-(Inc1/N1max)｝×(N1max/Vmas)]×(Vmas/N1max)  ・・・（１４）
ここでRound[]は、小数第１位を四捨五入する関数である。
また、誤差成分Ｅは、式（１５）で表わすことができる。
E={Pv1-(Inc1/N1max)}-Vb  ・・・（１５）
【００４５】
図７の（ｃ）に示す波形にInc1/N1maxの波形を加算することで、図７の（ｄ）に示す、誤差成分Ｅが除去された絶対位置を示す信号レベルＶａｂｓが生成される。
この同期演算は、以下の式（１６）に表わす演算により実施される。
Vabs=Vb+(Inc1/N1max)  ・・・（１６）
絶対位置の信号レベルＶａｂｓから、絶対位置値Ｐａｂｓは式（１７）で表わされる。
Pabs=Vabs×（Lmax/Vmax）  ・・・（１７）
【００４６】
Ｓ５０７で絶対位置値Ｐａｂｓを演算すると、Ｓ５０８に進み処理を終了する。
以上により絶対位置値Ｐａｂｓを演算することができる。
【００４７】
上記の処理フローによって、一端、絶対位置値Ｐａｂｓが得られると、相対位置を取得するために、ＡＢＳ／ＩＮＣ演算部１０２は、第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢを出力するように、読取パターン切替え部103に指令を行う。一般に、相対位置は例えばインクリメンタルエンコーダ等で得ることができる。この場合、発生するパルスの細かさ（読取りパターンの細かさ）で分解能が決まる。本発明においては、周期信号である第一の相対位置信号Ｉｎｃ１を使用することにより、パルスカウントに加え、パルス一周期内での位相も取得可能なため、パルス一周期内での位置も特定することができる。ＡＢＳ／ＩＮＣ演算部１０２は、第一のＡ相変位信号Ｓ１ｒＡ及び第一のＢ相変位信号Ｓ１ｒＢを元に前述の方法で第一の相対位置信号Ｉｎｃ１を演算し、第一の相対位置信号Ｉｎｃ１及び式（１７）で絶対位置値Ｐａｂｓの演算に用いた第一の相対位置信号Inc1の値により、相対位置値Ｐｉｎｃを定期的に演算する。Ｐａｂｓを演算した時の第一の相対位置信号Ｉｎｃ１をＩｎｃ１＿ｂａｓｅ、相対位置演算時の第一の相対位置信号Ｉｎｃ１をＩｎｃ１＿ｃｕｒｒｅｎｔ、第一の相対位置信号Ｉｎｃ１がＶｍａｘと０の間で切り替わった回数（パルス回数）（但し、Ｖｍａｘから０への切り替わり回数を正、０からＶｍａｘへの切り替わり回数を負とする）の累積をＮ＿Ｉｎｃ１とすると、Ｐａｂｓを基準とする相対的な変位量である相対位置値Ｐｉｎｃは式（１８）で表わされる。
Pinc={(Inc1_Current-Inc1_base)/Vmax＋N_Inc1}×Lmax/N1max・・・（１８）
【００４８】
以上により、絶対位置値Ｐａｂｓを演算している時以外は、ＡＢＳ／ＩＮＣ演算部１０２は、常に相対位置値Ｐｉｎｃを演算する。なお、本実施例では、第一の相対位置信号Inc1を使用した相対位置値の演算を記載したが、本発明はこれに限定されることはない。既知の相対位置を測定できる方法であれば、どのような手段を用いた相対位置でも本発明に適用することができる。
【００４９】
ＡＢＳ異常検出部１０６が絶対位置値Ｐａｂｓが正しくないと判断する方法について説明する。
【００５０】
図８の（ａ）〜（ｃ）は、本実施形態におけるスケール部２０２の平面図における、ある絶対位置におけるパターン読み取り範囲８０１とスケール部２０２上にある異物８０２の状態を示している。本実施例では、パターン読み取り範囲８０１はパターン列２０３ａのパターンの４周期分に相当するため、パターン読み取り範囲８０１のＸ方向の幅ＬｐｓはＰ１×４の長さとなる。図８の（ａ）は、パターン読み取り範囲８０１に異物８０２が接し、且つパターン読み取り範囲８０１に異物８０２が入っていない状態を示している。図８の（ｂ）は、パターン読み取り範囲８０１に異物８０２が入っている状態を示している。図８の（ｃ）は、図８の（ａ）とは逆側のパターン読み取り範囲８０１に異物８０２が接し、且つパターン読み取り範囲８０１に異物８０２が入っていない状態を示している。また、図８の（ａ）から（ｃ）のパターン読み取り範囲８０１の移動量をＬｍｓで示す。可動要素２１がＸ方向に移動し、図８の（ａ）から（ｃ）にパターン読み取り範囲８０１が移動した場合、パターン読み取り範囲８０１の移動量Ｌｍｓの移動範囲において、図４の受光部２０４ａで受光する光が異物８０２の影響を受ける。この結果、正しいパターンの信号を読み取れず、絶対位置値Ｐａｂｓを正しく演算できない不具合が発生する。ここで、異物のＸ軸方向の幅（異常発生範囲の移動方向の長さ）をＬｐｄとすると、移動量Ｌｍｓは、式（１９）のように表わされる。
Lms = Lps + Lpd  ・・・（１９）
【００５１】
従って、ある絶対位置において、パターン読み取り範囲８０１内のいずれかの位置に異物８０２がある場合、移動量Ｌｍｓ以上動いた絶対位置においては、パターン読み取り範囲８０１内に異物８０２が存在しない状態となる。つまり、移動量Ｌｍｓ以上離れた２つの絶対位置において、いずれかの絶対位置の絶対位置値Ｐａｂｓは、異物８０２の影響を受けず正しい絶対位置値Ｐａｂｓを演算することとなる。
ここで、許容する異物のＸ軸方向の幅Ｌｐｄの最大値をＬｐｄｍａｘと定義すると、異物８０２の影響を確実に受けない位置まで移動するための最小移動量（異常回復変位量）Ｌｍｓｍｉｎは、式（２０）のように表わされる。
Lmsmin = Lps + Lpdmax  ・・・（２０）
【００５２】
許容する異物のＸ軸方向の幅の最大値Ｌｐｄｍａｘは、アブソリュートエンコーダ製造時に混入する最大の異物の大きさで予め決定され、これに対応する最小移動量ＬｍｓｍｉｎがＡＢＳ異常検出部１０６に保持される。
【００５３】
以上により、最小移動量Ｌｍｓｍｉｎ離れた２点の位置における絶対位置値Ｐａｂｓの差と相対位置値Ｐｉｎｃの差が一致していれば、２点の位置における絶対位置値Ｐａｂｓの何れも正しい絶対位置値を演算したと判断できる。また、ある２点の位置における絶対位置値Ｐａｂｓの差と相対位置値Ｐｉｎｃとの差が一致してなければ、前記２点の何れの位置よりも最小移動量Ｌｍｓｍｉｎ以上離れた位置で絶対位置値Ｐａｂｓを演算する。前記３点の位置の絶対位置の組合せの内、絶対位置値Ｐａｂｓの差と相対位置値Ｐｉｎｃが一致している２点の位置における絶対位置値Ｐａｂｓは、何れも正しい絶対位置値を演算したと判断できる。
【００５４】
次に絶対位置の誤検出情報Ｅｉｎｆｏについて説明する。
【００５５】
図９の（ａ）及び（ｂ）は実際の可動要素位置ＰｌとＡＢＳ／ＩＮＣ演算部１０２が演算した絶対位置値Ｐａｂｓの関係を示している。横軸が実際の可動要素位置Ｐｌを示し、縦軸が演算して得られる絶対位置値Ｐａｂｓを示している。便宜上、可動要素位置Ｐｌと絶対位置値Ｐａｂｓは１対１の関係であることを前提に説明する。Ｌｎは、可動要素位置Ｐｌに対して、正しい絶対位置値Ｐａｂｓが演算できた時の可動要素位置Ｐｌと絶対位置値Ｐａｂｓとの関係を示す線である。一方、Ｌｅは、可動要素位置Ｐｌに対して誤った絶対位置値Ｐａｂｓを演算した時（以下、誤演算と記す）の可動要素位置Ｐｌと絶対位置値Ｐａｂｓとの関係を示すグラフである。ここで式（１４）に示した演算により、誤差成分Ｅが四捨五入の丸め演算により除去できる範囲外の値の場合、Ｌｎから異常変位量Ｓｅ分だけシフトした値として絶対位置値Ｐａｂｓを誤って演算する。誤演算により、図７の（ｃ）に示す波形の一周期分シフトした位置に可動要素位置Ｐｌがあると誤演算した場合、異常変位量Ｓｅは以下の式（２０）で表わされる。
Se = Lmax/N1max  ・・・（２０）
【００５６】
以下、誤演算により図７の（ｃ）に示す波形の一周期分シフトした位置に可動要素位置Ｐｌがあると誤演算した場合について説明する。
【００５７】
図９の（ａ）は可動要素位置Ｐｌにおける正しく演算した絶対位置値Ｐａｂｓ１と異物８０２の影響を受けて正しく演算できなかった絶対位置値Ｐａｂｓ１’の関係を示している。ここで絶対位置値Ｐａｂｓ１と絶対位置値Ｐａｂｓ１’との差はＳｅとなる。
【００５８】
先に説明した通り、移動量Ｌｍｓの範囲内においては、異物８０２の影響を受けて正しい絶対位置値Ｐａｂｓを演算できないと判断できる。従って、Ｐａｂｓ１’を基点に±Ｌｍｓの範囲内は、異物８０２の影響を受けて正しい絶対位置値Ｐａｂｓを演算できない可能性がある範囲と判断できる。
【００５９】
図９の（ｂ）は絶対位置値ＰａｂｓがＰａｂｓ１’を基点に±Ｌｍｓの範囲内であるＰａｂｓ２において、正しくＰａｂｓ２が演算された時の可動要素位置Ｐｌ２と、異物８０２の影響を受けて正しく演算できなかった時の可動要素位置Ｐｌ２’との関係を示している。ここで、Ｐａｂｓ１’を基点に±Ｌｍｓの範囲内である絶対位置値Ｐａｂｓは、異物８０２の影響を受けた場合と異物８０２の影響を受けてない場合の二つの可動要素位置でも同じ値を示し、正しく可動要素位置を演算できないことを示している。
【００６０】
従って、正しく演算できなかった絶対位置値Ｐａｂｓ１’を基点として±Ｌｍｓの範囲を異常範囲としてメモリ１０７に記録することで、次回、絶対位置値Ｐａｂｓを演算した時に絶対位置値Ｐａｂｓの信頼性を判断することができる。具体的には、演算して得られた対位置値Ｐａｂｓが絶対位置値Ｐａｂｓ１’を基点として±Ｌｍｓの範囲にある場合は、絶対位置値Ｐａｂｓを誤演算した可能性があると判断することができる。
【００６１】
従って誤検出情報Ｅｉｎｆｏとして、過去の誤演算された絶対位置の前記異常範囲を保存することにより、次回演算した絶対位置値Ｐａｂｓが誤検出情報Ｅｉｎｆｏの範囲外であることを条件とすることにより、演算された絶対位置値Ｐａｂｓの信頼性を確認することができる。
【００６２】
図１０は本実施例における誤検出情報Ｅｉｎｆｏを保存する時のフローを示している。
誤検出情報Ｅｉｎｆｏは、ＡＢＳ異常検出部１０６で検出され、メモリ１０７に保存される。
【００６３】
Ｓ１００１で処理を開始し、Ｓ１００２に進む。
Ｓ１００２では、相対位置値Ｐｉｎｃｃを初期化し、Ｓ１００３に進む。以下、Ｓ１００２における絶対位置を相対位置の初期位置とし、初期位置からの相対位置変位量として相対位置値Ｐｉｎｃｃが更新される。
Ｓ１００３では、現在位置を位置１として、現在の相対位置値Ｐｉｎｃｃを位置１における相対位置値Ｐｉｎｃ１として保持し、Ｓ１００４に進む。
【００６４】
Ｓ１００４では、位置１における絶対位置値Ｐａｂｓを演算する。演算した絶対位置値Ｐａｂｓを絶対位置値Ｐａｂｓ１として保持し、Ｓ１００５に進む。
Ｓ１００５では、現在位置における相対位置値Ｐｉｎｃｃを更新し、Ｓ１００６に進む。
【００６５】
Ｓ１００６では、位置１又は後述の絶対位置値Ｐａｂｓｃを演算する位置から所定移動量Ｍｐｂだけ移動していなければＳ１００５に戻り、移動していればＳ１００７に進む。ここで所定移動量Ｍｐｂは、最小移動量Ｌｍｓｍｉｎ以下の任意の値とする。
Ｓ１００７では、現在位置における絶対位置値Ｐａｂｓを演算する。演算した絶対位置値Ｐａｂｓを絶対位置値Ｐａｂｓｃ´として保持し、Ｓ１００８に進む。
【００６６】
Ｓ１００８では、現在位置の絶対位置値Ｐａｂｓｃ´と位置１の絶対位置値Ｐａｂｓ１との差が、現在位置の相対位置値Ｐｉｎｃｃと位置１の相対位置値Ｐｉｎｃ１との差と一致しているか否か確認する。一致している場合はＳ１００９へ進み、一致していない場合はＳ１０１０へ進む。
ここで絶対位置値の差と、相対位置値の差が一致していない場合は、現在位置または位置１のいずれかの絶対位置値の演算に異常が発生したと判断できる。つまり現在位置又は位置１におけるパターン読み取り範囲８０１内のいずれかの位置に異物８０２があると判断できる。
【００６７】
Ｓ１００９では、現在位置が、位置１から最小移動量Ｌｍｓｍｉｎ以上移動したか否かを判断し、最小移動量Ｌｍｓｍｉｎ以上移動した場合はＳ１０１７に進み、処理を終了する。すなわち、演算された絶対位置値Ｐａｂｓ１と絶対位置値Ｐａｂｓｃ´がいずれも正しい値であることが確認できた状態である。最小移動量Ｌｍｓｍｉｎ以上移動していない場合は、演算された絶対位置値が正しい値であるか否かを確認しきれていない状態であるので、Ｓ１００５に戻る。
【００６８】
Ｓ１０１０では、現在位置における相対位置値Ｐｉｎｃｃを位置２における相対位置値Ｐｉｎｃ２として保持する。更に現在位置における絶対位置値Ｐａｂｓｃ´を位置２における絶対位置値Ｐａｂｓ２として保持し、Ｓ１０１１に進む。
Ｓ１０１１では、現在位置における相対位置値Ｐｉｎｃｃを更新し、Ｓ１０１２に進む。
【００６９】
Ｓ１０１２では、相対位置値Ｐｉｎｃｃと相対位置Ｐｉｎｃ１との差がＬｍｓｍｉｎ以上で且つ相対位置値Ｐｉｎｃｃと相対位置Ｐｉｎｃ２との差がＬｍｓｍｉｎ以上の時にＳ１０１３に進む。すなわち、現在位置が、位置１と位置２のいずれからも所定の変位量以上離間している（Ｌｍｓｍｉｎ以上離間している）場合は、Ｓ１０１３に進む。現在位置が相対位置値Ｐｉｎｃｃと相対位置Ｐｉｎｃ１との差がＬｍｓｍｉｎ以上で且つ相対位置値Ｐｉｎｃｃと相対位置Ｐｉｎｃ２との差がＬｍｓｍｉｎ以上でなければＳ１０１１に戻る。すなわち、現在位置が、位置１又は位置２から所定の変位量以上離間していない（Ｌｍｓｍｉｎ以上離間していない）場合は、Ｓ１０１１に戻る。
【００７０】
Ｓ１０１３では、現在位置における絶対位置値Ｐａｂｓを演算する。演算した絶対位置値Ｐａｂｓを絶対位置値Ｐａｂｓｃ´として保持し、Ｓ１０１４に進む。
Ｓ１０１４では、現在位置の絶対位置値Ｐａｂｓｃ´と位置２の絶対位置値Ｐａｂｓ２との差が、現在位置の相対位置値Ｐｉｎｃｃと位置２の相対位置値Ｐｉｎｃ２との差と一致していることを確認する。一致していたらＳ１０１５に進む。一致していなければＳ１０１６に進む。
【００７１】
ここで絶対位置値の差と相対位置値の差とが一致していれば、絶対位置値Ｐａｂｓ２と絶対位置値Ｐａｂｓｃ´が正しく、絶対位置値Ｐａｂｓ１が正しくない絶対位置値と判断できる。つまり位置１におけるパターン読み取り範囲８０１内のいずれかの位置に異物８０２があると判断できる。一方、一致していなければ、絶対位置値Ｐａｂｓ１と絶対位置値Ｐａｂｓｃ´が正しく、絶対位置値Ｐａｂｓ２が正しくない絶対位置値と判断できる。つまり絶対位置２におけるパターン読み取り範囲８０１内のいずれかの位置に異物８０２があると判断できる。
【００７２】
Ｓ１０１５では、絶対位置値Ｐａｂｓ２が正しくないと判断し、誤検出情報Ｅｉｎｆｏとして絶対位置値Ｐａｂｓ２±Ｌｍｓの範囲をメモリ１０７に保存しＳ１０１７に進む。
Ｓ１０１６では、絶対位置値Ｐａｂｓ１が正しくないと判断し、誤検出情報Ｅｉｎｆｏとして絶対位置値Ｐａｂｓ２±Ｌｍｓの範囲をメモリ１０７に保存しＳ１０１７に進む。
Ｓ１０１６で処理を終了する。
【００７３】
以後、基準絶対位置値Ｐａｂｓｂを正しいと判断した絶対位置値Ｐａｂｓ、基準相対位置値Ｐｉｎｃｂを正しいと判断した時の相対位置値Ｐｉｎｃとして設定する。その後、基準絶対位置値Ｐａｂｓｂと基準相対位置値Ｐｉｎｃｂと現在の相対位置値Ｐｉｎｃｃを元に現在の絶対位置値Ｐａｂｓｃを決定する。現在の絶対位置値Ｐａｂｓｃは式（２２）のように表わされる
Pabsc = Pabsb + (Pincc - Pincb)   ・・・（２２）
【００７４】
次にＡＢＳ決定部１０１が絶対位置を決定する方法について説明する。
図１１は本実施例における誤検出情報Ｅｉｎｆｏを用いた絶対位置決定フローを示している。
【００７５】
Ｓ１１０１で処理を開始し、Ｓ１１０２に進む。
Ｓ１１０２では、相対位置値Ｐｉｎｃｃを初期化し、Ｓ１１０３に進む。以下Ｓ１１０２における絶対位置を相対位置の初期位置とし、初期位置からの相対位置変位量として相対位置値Ｐｉｎｃｃが更新される。
Ｓ１１０３では、現在の相対位置値Ｐｉｎｃｃを更新し、Ｓ１１０４に進む。
【００７６】
Ｓ１１０４では、現在の絶対位置値Ｐａｂｓｃを演算し、Ｓ１１０５に進む。
Ｓ１１０５では、現在の絶対位置値Ｐａｂｓｃが誤検出情報Ｅｉｎｆｏに記録されている異常範囲内であるか否かを判断し、異常範囲外であれば正しい絶対位置値の演算が行えたと判断し、Ｓ１１０６に進む。異常範囲内であれば、Ｓ１１０３に戻る。
【００７７】
Ｓ１１０６では現在の絶対位置値Ｐａｂｓｃを基準絶対位置値Ｐａｂｓｂとして設定し、現在の相対位置値Ｐｉｎｃｃを基準相対位置値Ｐｉｎｃｂとして設定し、Ｓ１１１７に進む。
Ｓ１１１７で処理を終了する。
以後、基準絶対位置値Ｐａｂｓｂと基準相対位置値Ｐｉｎｃｂと現在の相対位置値Ｐｉｎｃｃを元に現在の絶対位置値Ｐａｂｓｃを決定する。
【００７８】
以上により、バーニア型位置検出装置において、スケール上にゴミやキズがある場合でも、誤った絶対位置演算を防ぐことを可能とした、信頼性の高い絶対位置を演算することができる。
【実施例２】
【００７９】
次に、図１２を用いて、本発明の第２の実施例を説明する。
図１２は本実施例の構成ブロック図であり、図１と同様の構成のものは同符号を付す。
【００８０】
ＡＢＳ決定部１２０１は、ＡＢＳ／ＩＮＣ演算部１０２が演算した絶対位置値Ｐａｂｓ及び相対位置値Ｐｉｎｃを元に、現在の絶対位置Ｐａｂｓｃを決定する絶対位置決定部であり、ＡＢＳ決定部１０１とは動作が異なる。駆動制御部１２０２は可動要素１２０４の駆動制御を行う駆動制御部である。モータ１２０３は可動要素１２０４を駆動させるモータであり、例えばＤＣモータやステッピングモータである。可動要素１２０４はＡＢＳセンサー１０４の絶対位置検出対象となる可動要素である。表示部１２０５は誤検出情報Ｅｉｎｆｏを外部に表示するための表示部であり、例えば液晶ディスプレイである。
【００８１】
次に本実施例の動作について説明する。
図１３は本実施例における誤検出情報Ｅｉｎｆｏ更新フローを示している。
【００８２】
誤検出情報Ｅｉｎｆｏ更新フローとしては、可動要素１２０４を負方向の端位置から正方向の端位置まで駆動し、各絶対位置における絶対位置値が正しく演算されているかを検出し、検出結果を元に誤検出情報Ｅｉｎｆｏを更新する。本実施例の動作は、不図示のスイッチ等のトリガにより、使用者が誤検出情報Ｅｉｎｆｏの更新を指示した時に実施される。
【００８３】
以下に誤検出情報Ｅｉｎｆｏを更新するフローを説明する。
【００８４】
Ｓ１３０１で処理を開始し、Ｓ１３０２に進む。
Ｓ１３０２では、ＡＢＳ決定部１２０１は駆動制御部１２０２に対し、負方向の端位置へ駆動する指示を行いＳ１３０３に進む。駆動制御部１２０２は、指示に従い、モータ１２０３を駆動し、可動要素１２０４を負方向の端位置へ駆動させる。
Ｓ１３０３では、可動要素１２０４が負方向の端位置へ到達したかを確認し、到達していればＳ１３０４に進む。到達していなければＳ１３０２に戻る。
【００８５】
Ｓ１３０４では、相対位置値Ｐｉｎｃｃを初期化し、Ｓ１３０５に進む。具体的には相対位置値Ｐｉｎｃｃを０とする。以下Ｓ１３０４における絶対位置を相対位置の初期位置とし、初期位置からの相対位置変位量として相対位置値Ｐｉｎｃｃが更新される。
Ｓ１３０５では、負方向の端位置における絶対位置値Ｐａｂｓを設定する。可動要素２１の位置は端の位置であるため、絶対位置を演算することなく所定の絶対位置値を絶対位置値Ｐａｂｓｉとして保持し、Ｓ１３０６に進む。
【００８６】
Ｓ１３０６では、ＡＢＳ決定部１２０１は、駆動制御部１２０２に対し、正方向に所定駆動量Ｍｐｂ分だけ駆動する指令を行い、Ｓ１３０７に進む。ここで所定移動量Ｍｐｂは、最小移動量Ｌｍｓｍｉｎ以下の任意の値とする。
Ｓ１３０７では、可動要素１２０４が、所定移動量Ｍｐｂ駆動し、且つ停止していることを確認する。可動要素１２０４が所定移動量Ｍｐｂ駆動し、且つ停止している時はＳ１３０８に進む。可動要素１２０４が所定移動量Ｍｐｂ駆動していない、又は停止していなければＳ１３０７に戻る。
【００８７】
Ｓ１３０８では、現在位置における絶対位置値Ｐａｂｓを演算する。演算した絶対位置値Ｐａｂｓを絶対位置値Ｐａｂｓｃ´として保持し、Ｓ１３０９に進む。
Ｓ１３０９では、現在位置の絶対位置値Ｐａｂｓｃ´と絶対位置値Ｐａｂｓｉとの差が相対位置値Ｐｉｎｃｃと一致していることを確認する。一致していたらＳ１３１１へ進む。一致していなければＳ１３１０に進む。
Ｓ１３１０では、現在位置の絶対位置値Ｐａｂｓｃ´が正しくないと判断し、誤検出情報Ｅｉｎｆｏとして絶対位置値Ｐａｂｓｃ´±Ｌｍｓの範囲をメモリ１０７に保存し、Ｓ１３１３に進む。
【００８８】
Ｓ１３１１では、Ｓ１３０９での判定が、２回連続でＹｅｓであったかどうかを判定する。すなわち、最小移動量Ｌｍｓｍｉｎ以下の任意の値である所定移動量Ｍｐｂ分だけ離れている位置における絶対位置の演算値が両方共に正しい値であったか否かを判定し、判定が正であれば、Ｓ１３１２に進み、否であれば、Ｓ１３１３に進む。
Ｓ１３１２では、前回の絶対位置値Ｐａｂｓｃ´から前回の絶対位置値Ｐａｂｓｃ´までの範囲が、誤検出情報Ｅｉｎｆｏに入っていれば、その部分を誤検出情報Ｅｉｎｆｏから削除し、Ｓ１３１３に進む。
【００８９】
Ｓ１３１３では、正方向の端位置に到達しているかを確認し、正方向の端位置に到達していればＳ１３１４に進む。到達していなければ、Ｓ１３０６に戻る。
Ｓ１３１４では、ＡＢＳ決定部１２０１はメモリ１０７に保存されている誤検出情報Ｅｉｎｆｏを読み出し、誤検出情報Ｅｉｎｆｏに保持された情報を表示部１２０５に表示し、Ｓ１３１５に進む。
Ｓ１３１５で処理を終了させる。
【００９０】
本実施例では、最小移動量Ｌｍｓｍｉｎ以下の任意の値である所定移動量Ｍｐｂ分だけ離れている位置における絶対位置値が両方共に正しい場合は、その範囲を誤検出情報Ｅｉｎｆｏから削除する。但し、この時に可動要素１２０４を駆動させ、全ての異常範囲において、現在位置の絶対位置値Ｐａｂｓｃ´が正しいと判断した場合に、絶対位置値Ｐａｂｓｃ´を含む異常範囲を誤検出情報Ｅｉｎｆｏから削除しても良い。
【００９１】
また、本実施例では、可動要素１２０４が停止している時に絶対位置値Ｐａｂｓを演算している。但し絶対位置値Ｐａｂｓの精度を向上させるための処置であるため、対位置値Ｐａｂｓの精度が確保できているのであれば、可動要素１２０４が駆動状態の時に絶対位置値Ｐａｂｓを演算しても良い。
【００９２】
また、本実施例では、正方向の端から、負方向の端に駆動させて誤検出情報Ｅｉｎｆｏを更新する例を示しているが、駆動方向に関しては、何れの方向でも良い。また、通常の使用時において、可動要素１２０４が停止したことを検出した後、Ｓ１３０７からＳ１３１２の処理と同等の処理で誤検出情報Ｅｉｎｆｏを更新しても良い。この場合Ｓ１３０４とＳ１３０５の処理を起動位置において実施する。
【００９３】
また、本実施例では、最初に端まで移動してから全可動範囲について誤検出位置を確認する手順としたが、本発明はこれに限定されることはない。最初に端まで移動させることなく、実施例１の方法等に従って正しい絶対位置値を得ることができた位置での絶対位置値を基準として、端位置ではなく正しい絶対位置値を得ることができた位置を開始位置として、図１３に示したフローチャートに倣って、両端まで移動することにより、同様の効果を得ることができる。
【００９４】
また、本実施例で、ここで誤検出情報Ｅｉｎｆｏとして異常範囲を保持している。更に誤検出情報Ｅｉｎｆｏとして、異常検出に必要な情報を保持しても良い。具体的には、異常と判断した絶対位置値Ｐａｂｓ１’、検証した絶対位置値Ｐａｂｓ及び検証した絶対位置値Ｐａｂｓの異常か否かの情報を保持しても良い。更に検証した絶対位置値Ｐａｂｓを演算した時の誤差成分Ｅ、現在位置の絶対位置値Ｐａｂｓｃ´と絶対位置値Ｐａｂｓｉとの差を保持しても良い。
【００９５】
演算された絶対位置値が、誤検出として検出された絶対位置値から移動量Ｌｍｓの範囲内に入っている状態において、電源を切る場合、固定要素と可動要素がそのままの位置の状態で次に電源投入された場合、その直後にＡＢＳ／ＩＮＣ演算部１０２によって演算される絶対位置値は、ゴミが移動していない限り、誤検出として検出される。本発明の位置検出装置においては、誤検出情報Ｅｉｎｆｏとして誤検出を記録した絶対位置値はメモリに記憶されているため、演算された絶対位置値が、誤検出として検出された絶対位置値から移動量Ｌｍｓの範囲内に入っている状態において電源を切る場合には、誤検出情報Ｅｉｎｆｏに記録されている誤検出位置としての絶対位置から移動量Ｌｍｓの範囲外に、可動要素を駆動手段によって移動させてから電源をオフにするとよい。これにより、次回の電源投入時には、電源投入直後から誤検出することなく、絶対位置の検出ができるようになる。
【００９６】
以上により、バーニア型位置検出装置において、予めスケール上にゴミやキズの影響を確認することができる。
【００９７】
また、上記の実施例においては、エンコーダとして光学式のエンコーダを使用する実施例を例示したが、本発明はこれに限定されるものではなく、磁気式或いは静電容量式のエンコーダを使用してもよい。
【００９８】
上記の実施例の位置検出装置を、可動光学部材を有するレンズ装置に適用し、可動光学部材の位置を検出するように構成することで、本発明の効果を享受することができるレンズ装置を実現することができる。また、上記の実施例の位置検出装置を、可動光学部材を有するレンズ装置及びカメラ装置を備える撮影装置に適用し、可動光学部材の位置を検出するように構成することで、本発明の効果を享受することができる撮影装置を実現することができる。
【符号の説明】
【００９９】
１０１、１２０１  ＡＢＳ決定部（絶対位置決定手段）
１０２  ＡＢＳ／ＩＮＣ演算部（絶対位置演算手段）
１０３  読取パターン切替え部（位置信号取得手段）
１０４  ＡＢＳセンサー（位置信号取得手段）
１０６  ＡＢＳ異常検出部（誤検出判断手段）
１０７  メモリ（記憶手段）
【図１】
2015094677.tif 000003
【図２】
2015094677.tif 000004
【図３】
2015094677.tif 000005
【図４】
2015094677.tif 000006
【図５】
2015094677.tif 000007
【図６】
2015094677.tif 000008
【図７】
2015094677.tif 000009
【図８】
2015094677.tif 000010
【図９】
2015094677.tif 000011
【図１０】
2015094677.tif 000012
【図１１】
2015094677.tif 000013
【図１２】
2015094677.tif 000014
【図１３】
2015094677.tif 000015