(57)【特許請求の範囲】
【請求項１】
位置検出器の検出誤差補正値を周期性関数の級数で近似した補正関数で表現した場合の当該補正関数を特定する補正パラメータを予め第１の記憶手段に記憶しておく第１のステップ、上記第１の記憶手段から上記補正パラメータを読み出し検出位置に対応する検出誤差補正値を演算し第２の記憶手段に記憶する第２のステップ、および上記位置検出器からの位置検出値に対応する検出誤差補正値を上記第２の記憶手段から読み出し上記位置検出値の誤差を補正した補正位置検出値を演算する第３のステップを備えた位置検出誤差補正方法であって、
上記検出位置をθとしたとき、上記補正関数Ｃ（θ）は、周期性関数Ｇ（θ）をθのベキ関数として、以下の（１）式で表現するものとし、
更に、上記位置検出器が、それぞれ、回転位置を検出するものであるときは１回転分の位置検出範囲を基本周期Ｌとし直線位置を検出するものであるときは全検出位置範囲を基本周期Ｌとし、上記補正関数Ｃ（θ）の検出位置θとして、θをＬで割った余りθｍを適用することを特徴とする位置検出誤差補正方法。
【数１】
0004602411.tif 000021
但し、ｎ：次数
Ａｎ：補正パラメータとしての振幅成分
Ｂｎ：補正パラメータとしての位相成分
Ｄ：補正パラメータとしてのオフセット
【請求項２】
上記位置検出器が、上記基本周期Ｌの検出要素と上記基本周期Ｌ×（１／（２のベキ乗））の短周期Ｌ１の検出要素とを備えており、
上記位置検出器による位置検出値と真値位置との差である位置検出誤差データに基づき上記補正パラメータを演算する方法であって、
上記基本周期Ｌを比較的長周期の間隔で複数の領域に区分し、上記長周期間隔毎に抽出した上記位置検出誤差データに基づき長周期の補正パラメータを演算する第４のステップ、上記長周期の補正パラメータを使用して上記基本周期Ｌにわたる補正関数を演算する第５のステップ、この第５のステップで演算した補正関数と上記位置検出誤差データとから上記各領域内での短周期誤差を演算する第６のステップ、およびこの第６のステップで演算した上記各領域内での短周期誤差につき、各領域毎に、上記補正関数Ｃ（θ）の検出位置θとして、θを上記短周期Ｌ１で割った余りθｍ１を適用することにより短周期の補正パラメータを演算する第７のステップを備え、上記長周期の補正パラメータと上記短周期の補正パラメータとを適用して上記補正関数を演算することを特徴とする請求項１記載の位置検出誤差補正方法。
【請求項３】
上記第６のステップで演算された短周期誤差の各領域毎の最大値および上記領域毎の最大値の全領域における平均値を求め、（上記最大値／上記平均値）が所定の値を越えたとき、上記第４のステップに戻り、上記領域毎最大値が大きい部分は上記領域が比較的小さく、上記領域毎最大値が小さい部分は上記領域が比較的大きくなるよう、上記領域を再区分し、以下、上記第５、６のステップを再実行し、更に上記第７のステップを実行することを特徴とする請求項２記載の位置検出誤差補正方法。
【請求項４】
上記第７のステップで演算された短周期の補正パラメータを適用して位置検出値を補正した後の残誤差を演算する第８のステップ、および上記第４のステップで区分した各領域を更に細分化した細領域毎の上記残誤差の最大値を大きさ順にソートし、大きい順から所定の個数の細領域を選定する第９のステップを備え、上記選定された細領域では当該細領域毎に上記第７のステップを実行して演算した当該細領域毎の短周期の補正パラメータを適用し、選定されなかった細領域では上記第９のステップで細分化する前の領域毎に上記第７のステップで演算された短周期の補正パラメータを適用することを特徴とする請求項２記載の位置検出誤差補正方法。
【請求項５】
上記第１の記憶手段に不揮発性メモリを使用し、上記第２の記憶手段にランダムアクセスメモリを使用したことを特徴とする請求項１ないし４のいずれかに記載の位置検出誤差補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、回転位置や直線位置を検出する位置検出器の検出誤差を補正する位置検出誤差補正方法に関するものである。
【背景技術】
【０００２】
従来の位置検出誤差補正装置では、誤差をフーリエ級数展開して得られた各周期成分を不揮発性メモリに予め記憶し、起動時に各周期成分を逆フーリエ変換して誤差補正値をランダムアクセスメモリに記憶し、検出位置に対応する誤差補正値を読み出して検出位置を補正している（例えば、特許文献１参照）。【０００３】
【特許文献１】特許第２５４３２４５号公報（２頁右段２〜１４行、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このような位置検出誤差補正装置にあっては、起動時に逆フーリエ変換を行うため複数回の三角関数演算を行う必要があり、その計算時間が長大化して起動が遅れるという問題点があった。三角関数演算を緩和するため、例えば、予めランダムアクセスメモリに記憶した表を用いて三角関数演算を近似する場合には、三角関数演算のためにランダムアクセスメモリが使用され、その分、位置検出誤差補正値を記憶するためのランダムアクセスメモリの容量が減少し、高精度な補正ができないという問題点があった。
さらに、一つの位置検出誤差補正値で補正を行う検出位置の範囲が、全位置検出範囲で均等であるため、誤差の変化が急峻な部分では高精度な補正が困難であるという問題点があった。【０００５】
この発明は、上記のような問題点を解決するためになされたものであり、起動時に単純な四則演算を用いて位置検出誤差補正値を計算することにより、起動時間の遅れや記憶手段の容量の消費を抑制することができ、また、誤差の変化が急峻な部分が含まれる場合にも、限られた記憶容量で高精度な補正が出来る位置検出誤差補正方法を得ることを目的としている。
【課題を解決するための手段】
【０００６】
この発明に係る位置検出誤差補正方法は、位置検出器の検出誤差補正値を周期性関数の級数で近似した補正関数で表現した場合の当該補正関数を特定する補正パラメータを予め第１の記憶手段に記憶しておく第１のステップ、第１の記憶手段から補正パラメータを読み出し検出位置に対応する検出誤差補正値を演算し第２の記憶手段に記憶する第２のステップ、および位置検出器からの位置検出値に対応する検出誤差補正値を第２の記憶手段から読み出し位置検出値の誤差を補正した補正位置検出値を演算する第３のステップを備えた位置検出誤差補正方法であって、
検出位置をθとしたとき、補正関数Ｃ（θ）は、周期性関数Ｇ（θ）をθのベキ関数として、以下の（１）式で表現するものとし、
更に、位置検出器が、それぞれ、回転位置を検出するものであるときは１回転分の位置検出範囲を基本周期Ｌとし直線位置を検出するものであるときは全検出位置範囲を基本周期Ｌとし、補正関数Ｃ（θ）の検出位置θとして、θをＬで割った余りθｍを適用するものである。
【０００７】
【数１】
0004602411.tif 000002
【０００８】
但し、ｎ：次数
Ａｎ：補正パラメータとしての振幅成分
Ｂｎ：補正パラメータとしての位相成分
Ｄ：補正パラメータとしてのオフセット
【発明の効果】
【０００９】
この発明は、以上のように、検出誤差補正値を、検出位置θのベキ関数からなる周期性関数Ｇ（θ）で表し、第１の記憶手段に記憶された補正パラメータを使って四則演算で再現できるので、従来の三角関数を用いた場合に比べて計算時間が短く、短時間で起動が可能となる。また、三角関数の代わりに数値テーブルを参照する場合に比べても、第２の記憶手段の使用量が少なくなるため、誤差補正値により多くの記憶容量を割り当てることが可能となり、高精度な補正を実現することができ、更に、誤差補正値の演算が画一的に処理できるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１における位置検出誤差補正方法を実現する位置検出誤差補正装置の構成を示すブロック図である。
【図２】位置検出値θの１次関数で表した周期性関数Ｇ（θ）を図示したグラフである。
【図３】位置検出の源となる正弦波信号とｂｉｔとの合成による位置検出値の算出法を説明する図である。
【図４】予め不揮発性メモリ１に記憶しておく補正パラメータＰの計算法について説明するフローチャートである。
【図５】短周期誤差θ２（θ）と対応する分割領域を示す図である。
【図６】位置検出誤差補正値計算部２において起動時に生成する位置検出誤差補正値の計算について説明するフローチャートである。
【図７】位置検出誤差補正部４における補正計算について説明するフローチャートである。
【図８】ｆｌｏｏｒ関数を使って、任意の検出位置θｍに最も近いθｋを求める方法を説明する模式図である。
【図９】短周期誤差補正用の領域を２段階で細分化する処理を示すフローチャートである。
【図１０】２段階領域細分化における領域の分割の様子を示す模式図である。
【図１１】位置検出値θの２次関数で表した周期性関数Ｇ（θ）を図示したグラフである。
【図１２】位置検出値θの３次関数で表した周期性関数Ｇ（θ）を図示したグラフである。
【図１３】位置検出値θの０次関数で表し矩形波状となる周期性関数Ｇ（θ）を図示したグラフである。
【符号の説明】
【００１１】
１  不揮発性メモリ
２  位置検出誤差補正値計算部
３  ランダムアクセスメモリ
４  位置検出誤差補正部
５  位置検出誤差補正装置
６  位置検出器
【発明を実施するための最良の形態】
【００１２】
実施の形態１．
図１は、この発明の実施の形態１における位置検出誤差補正方法を実現する位置検出誤差補正装置５の構成を示すブロック図である。
第１の記憶手段としての不揮発性メモリ１には、予め位置検出誤差を周期性関数の級数で近似した補正関数で表現した場合の当該補正関数を特定する補正パラメータＰが記憶されており、起動時にこの補正パラメータＰを読み出して、位置検出誤差補正値計算部２に出力する。
なお、この補正パラメータＰの演算要領については後段で詳述する。
位置検出誤差補正値計算部２は、式１を用いて補正パラメータＰ（Ａｎ，Ｂｎ，Ｄ）から位置検出値θに対応する補正関数である位置検出誤差補正値Ｃ（θ）を計算して、第２の記憶手段としてのランダムアクセスメモリ３に出力する。
なお、補正パラメータＰを使って位置検出誤差補正値Ｃ（θ）を演算する要領については後段で詳述する。【００１３】
ここで、補正パラメータである、それぞれ、Ａｎは周期性関数Ｇの振幅成分、Ｂｎは位相成分、Ｄはオフセットである。また、ｎは、周期性関数Ｇ（θ）の級数を構成する各項の次数である。【００１４】
【数２】
0004602411.tif 000003
【００１５】
また、周期性関数Ｇ（θ）は、θのベキ関数、即ち、θｍ（ｍは、正の整数）の関数で表現する。
ｍ＝１、従って、周期性関数Ｇ（θ）をθの１次関数で表した場合を、式２、そして、それを図示したものを図２に示す。この場合、図のように、のこぎり波状となる。【００１６】
【数３】
0004602411.tif 000004
【００１７】
ここで、θｍは、θを基本周期Ｌで割った余りである。例えば、位置検出器６がロータリーエンコーダのような回転位置を検出するものの場合には、位置検出誤差は、１回転の周期で発生するので、１回転分の検出範囲を基本周期Ｌとする。位置検出器６が直線位置を検出するものであるときは全検出位置範囲を基本周期Ｌとする。
後段の図３による位置検出器の検出原理から理解されるように、基本周期Ｌは、一般に、２のベキ数で表現されるため、θをＬで割った余りθｍは、いわゆる、ビットのＡＮＤ演算で、また、４θｍ／Ｌは、いわゆるビットシフトで計算可能であり、テーブルなどを参照することなく、短時間で計算可能である。【００１８】
起動完了後は、位置検出誤差補正部４に位置検出器６から位置検出値θが入力される毎に、位置検出値θに対応する位置検出誤差補正値Ｃ（θ）をランダムアクセスメモリ３から読み出し、式３に示す演算にて、補正位置検出値θｃを出力する。【００１９】
【数４】
0004602411.tif 000005
【００２０】
なお、図１では、位置検出誤差補正装置５を独立の装置として表現しているが、位置検出器６の内部に設ける、あるいは、補正位置検出値θｃを受け取る図示されていないコントローラやサーボアンプ内部に設けることも可能である。【００２１】
次に、予め不揮発性メモリ１に記憶しておく補正パラメータＰの計算法について図４のフローチャートに沿って説明する。ここでは、図３に示すような、３個の２相正弦波信号から絶対位置を検出する位置検出器の誤差を補正する場合を例に取って説明する。図３には、２相正弦波の一方のみを描画してあり、もう一方は９０度位相のずれた信号となる。なお、この種の位置検出器には、光学式と磁気式があるが、その構造動作原理は周知であるので、その説明は省略する。
ここでは、図３に示すように、基本周期Ｌを周期とする基本波、その１６倍波、そして、短周期Ｌ１を周期とする２５６倍波から構成される２相正弦波からそれぞれ８ｂｉｔの分解能で位置検出値を逆正接演算を用いて計算し、基本波からの上位４ｂｉｔ、１６倍波からの上位４ｂｉｔ、２５６倍波からの全８ｂｉｔを合成して１６ｂｉｔの位置検出値を出力する。【００２２】
先ず、位置検出器６より高精度な基準位置検出器を用意し当該基準位置検出器による検出値を真値位置として、位置検出器６の誤差と検出位置θとの関係を示す、位置検出誤差データである位置検出誤差ｅ（θ）を計測する（Ｓｔｅｐ１）。次に、レヴェンバーグ＝マーカート法などの非線形最小２乗法を用いて、式４に示す評価関数Ｅが最小となる比較的長周期の補正パラメータＰ０（Ａｎ，Ｂｎ，Ｄ１）を計算する（Ｓｔｅｐ２）。
即ち、基本周期Ｌを比較的長周期の均等間隔で複数の領域に区分し、例えば、１６の領域に均等分割し、この長周期間隔毎に抽出した位置検出誤差ｅ（θ）に基づき長周期の補正パラメータを演算する。【００２３】
【数５】
0004602411.tif 000006
【００２４】
ここで、θｋは位置検出値θの中でｋ番目の計測値を表し、Ｋは全計測データ数を表す。また、級数の次数ｎは、例えば、ｎ＝１、２、．．．、８（Ｎ＝８）とする。
次に、以上で演算された長周期の補正パラメータを使用して基本周期Ｌにわたる位置検出誤差補正値を演算し、当該補正値と位置検出誤差ｅ（θ）とから、式５により、各均等分割領域内での短周期誤差ｅ２（θ）を求める（Ｓｔｅｐ３）。【００２５】
【数６】
0004602411.tif 000007
【００２６】
次に、均等分割した各領域における短周期誤差ｅ２（θ）の絶対値の最大値を求める（Ｓｔｅｐ４）。各領域毎の最大値の中の最大値と、各領域毎の最大値を全領域にわたって平均した平均値を比較し、予め定めた倍率ｑ（例えば、２倍）を越えるかどうか判断する（Ｓｔｅｐ５）。ｑ倍を越えた場合には（Ｓｔｅｐ５でｙｅｓ）、局所的に大きな誤差があるものと判断し、予め用意した非均等領域に分割する（Ｓｔｅｐ６ａ）。ｑ倍以下の場合には（Ｓｔｅｐ５でｎｏ）、誤差は均等であるものと判断し、既に処理した均等領域分割を踏襲する（Ｓｔｅｐ６ｂ）。【００２７】
図５に、領域分割例を示す。図５（ａ）の短周期誤差ｅ２（θ）が均等な場合には、位置検出範囲である３６０ｄｅｇを１／１６ずつ均等に分割する。図５（ｂ）の局所的に短周期誤差ｅ２（θ）が大きい場合には、最大誤差の位置を中心に１／６４の領域を８個設け、他の領域を８個の７／６４領域に分割する。ここで、細分化し始めた領域の番号として、領域分割番号Ｒ＝３を記憶しておく。均等に分割した場合には、Ｒ＝０とする。
次に、分割された領域内で、Ｓｔｅｐ２と同様に非線形最小２乗法を用いて式６に示す評価関数Ｅｉが最小となる短周期の補正パラメータＰｉ（Ａｉｊ，Ｂｉｊ，Ｄｉ）を計算する（Ｓｔｅｐ７）。ここで、ｉは分割された領域の番号、ｊ（例えば、２５６，５１２，７６８，１０２４など）は周期の倍数、Ｋｉは領域ｉ内の計測データ数を表す。【００２８】
【数７】
0004602411.tif 000008
【００２９】
最後に、長周期の補正パラメータＰ０と短周期の補正パラメータＰｉおよび領域分割番号Ｒを不揮発性メモリ１に記憶する（Ｓｔｅｐ８）。【００３０】
次に、図６のフローチャートに沿って位置検出誤差補正値計算部２において起動時に生成する位置検出誤差補正値Ｃ（θ）の計算について説明する。先ず、不揮発性メモリ１から位置検出誤差の長周期の補正パラメータＰ０を読み出し（Ｓｔｅｐ１１）、式７を用いて長周期位置検出誤差補正値Ｃ０（θｋ）を計算して（Ｓｔｅｐ１２）、ランダムアクセスメモリ３に記憶する（Ｓｔｅｐ１３）。【００３１】
【数８】
0004602411.tif 000009
【００３２】
ここで、θｋは、位置検出範囲を等間隔で分割した代表位置である。例えば、１６ｂｉｔ＝６５５３６ｐｕｌｓｅ／ｒｅｖの分解能を持つ角度検出器で１２８点の長周期位置検出誤差補正値を用意する場合には、６５５３６／１２８＝５１２ｐｕｌｓｅ毎に長周期位置検出誤差補正値を計算する。次に、不揮発性メモリ１から領域分割番号Ｒを読み出し（Ｓｔｅｐ１４）、領域分割番号Ｒが０かどうかを判断し（Ｓｔｅｐ１５）、Ｒ＝０であれば均等間隔で領域の境の位置Ｆｉを式８を用いて計算し（Ｓｔｅｐ１６ａ）、Ｒ≠０であれば不均等間隔で領域の境の位置Ｆｉを式９を用いて計算する（Ｓｔｅｐ１６ｂ）。【００３３】
【数９】
0004602411.tif 000010
【００３４】
ここで、Ｉは、領域分割数（例えば１６）である。【００３５】
【数１０】
0004602411.tif 000011
【００３６】
ここで、式９は、領域を図５（ｂ）に示すように、８個の１／６４領域と８個の７／６４領域に分割する場合の領域の境の位置の計算式である。領域の非均等分割をこの場合と異なる領域数や領域の大きさに分割する場合には、それに応じて計算式を用意する。計算した領域の境の位置Ｆｉをランダムアクセスメモリ３に記憶する（Ｓｔｅｐ１７）。次に、分割された各領域毎に不揮発性メモリ１から短周期の補正パラメータＰｉ（Ａｉ，Ｂｉ，Ｄｉ）を読み出し（Ｓｔｅｐ１９）、式１０を用いて短周期位置検出誤差補正値Ｃｉ（θ１ｋ）を計算して（Ｓｔｅｐ２０）、ランダムアクセスメモリ３に記憶する（Ｓｔｅｐ２１）。【００３７】
【数１１】
0004602411.tif 000012
【００３８】
ここで、θ１ｋは、位置検出範囲を等間隔に分割した代表位置である。例えば、１６ｂｉｔ＝６５５３６ｐｕｌｓｅ／ｒｅｖの分解能を持つ角度検出器において、短周期の２相正弦波が基本波の２５６倍で、３２点の短周期位置検出誤差補正値を用意する場合には、６５５３６／（３２＊２５６）＝８ｐｕｌｓｅ毎に短周期位置検出誤差補正値を計算する。
【００３９】
次に、位置検出誤差補正部４における補正計算について図７のフローチャートに沿って説明する。先ず、位置検出器６から位置検出値θが入力され（Ｓｔｅｐ３１）、基本周期Ｌで割った商ｖと余りθｍを計算する（Ｓｔｅｐ３２）。次に、式１１を用いて基本周期Ｌの剰余θｍに最も近い長周期位置検出誤差補正値の代表位置θｋを計算する（Ｓｔｅｐ３３）。【００４０】
【数１２】
0004602411.tif 000013
【００４１】
ここで、Δ０は、長周期位置検出誤差補正値の代表位置の間隔（例えば、５１２ｐｕｌｓｅ）、ｆｌｏｏｒは、引数を超えない最大の整数を示す関数である。
なお、式１１は、位置検出誤差補正値Ｃが一定間隔の位置θｋでしか用意されていないため、任意の検出位置θｍに最も近いθｋを求めるものである。例えば、図８において、
Δ０＝１０、θｋ＝０、１０、２０、３０、・・・、θｍ＝１７
の場合、
Δ０・ｆｌｏｏｒ｛（θｍ＋０．５・Δ０）／Δ０｝
＝１０・ｆｌｏｏｒ｛（１７＋５）／１０｝＝１０・ｆｌｏｏｒ（２．２）＝２０
となり、θｍ＝１７に最も近いθｋ＝２０が求まるわけである。【００４２】
Δ０が２のベキ数であれば、上式での割り算は、高速なビットシフト演算で可能である。続いて、ランダムアクセスメモリ３からθｋに対応する長周期位置検出誤差補正値Ｃ０（θｋ）を読み出し（Ｓｔｅｐ３４）、式１２に示す通り位置検出値θから減算して長周期位置検出誤差補正済み位置検出値θ０を計算する（Ｓｔｅｐ３５）。【００４３】
【数１３】
0004602411.tif 000014
【００４４】
次に、ランダムアクセスメモリ３から分割領域の境の位置Ｆ１〜ＦＩを読み出して（Ｓｔｅｐ３６）、式１３を満たす分割領域の境の位置Ｆｉを探索する（Ｓｔｅｐ３７〜３９）。【００４５】
【数１４】
0004602411.tif 000015
【００４６】
そして、式１３を満たすｉが、長周期位置検出誤差補正済み位置検出値θ０が該当する分割領域である。次に、長周期位置検出誤差補正済み位置検出値θ０を短周期Ｌ１で割った余りθ１を計算する（Ｓｔｅｐ４０）。図３に示す位置検出器６の場合、短周期Ｌ１は基本周期Ｌ（６５５３６）を短周期信号の周波数２５６で割った２５６になる。短周期Ｌ１が２のベキ数である場合、短周期Ｌ１による剰余演算は、高速なビットのＡＮＤ演算で実行可能である。次に、式１４を用いて短周期Ｌ１の剰余θ１に最も近い短周期位置検出誤差補正値の代表位置θ１ｋを計算する（Ｓｔｅｐ４１）。【００４７】
【数１５】
0004602411.tif 000016
【００４８】
ここで、Δ１は短周期位置検出誤差補正値の代表位置の間隔（例えば８ｐｕｌｓｅ）である。次に、ランダムアクセスメモリ３から、分割領域ｉの短周期位置検出誤差補正値の代表位置θｉｋに該当する短周期位置検出誤差補正値Ｃｉ（θ１ｋ）を読み出して（Ｓｔｅｐ４２）、式１５に示すように、長周期位置検出誤差補正済み位置検出値θ０から短周期位置検出誤差補正値Ｃｉ（θ１ｋ）を減算して補正位置検出値θｃを計算する（Ｓｔｅｐ４３）。【００４９】
【数１６】
0004602411.tif 000017
【００５０】
最後に、補正位置検出値と基本周期の整数倍の和（θｃ＋ｖＬ）を外部に出力する（Ｓｔｅｐ４４）。【００５１】
以上のように、この発明の実施の形態１においては、起動時に不揮発性メモリ１から読み出した補正パラメータＰから、式１および式２に示す単純な四則演算を用いて誤差補正値Ｃ（θ）を計算するため、従来の三角関数を用いる場合に比べて計算時間が短く、短時間で起動が可能となる。また、三角関数の代わりに数値テーブルを参照する場合に比べても、ランダムアクセスメモリ３の使用量が少なくなるため、誤差補正値Ｃ（θ）の記憶により多くのランダムアクセスメモリ３を割り当てることが可能となり、高精度な補正を実現することができるという効果を奏する。【００５２】
また、検出範囲の一部に誤差が大きい部分が存在する場合、図５（ｂ）に示すように誤差の大きい部分を細かい領域に分割して短周期検出位置誤差補正値Ｃｉ（θ１ｋ）を用意するため、均等に領域分割した場合に比べて、限られたランダムアクセスメモリ３の容量に対して、より高精度な補正が可能となるという効果を奏する。【００５３】
実施の形態２．
先の実施の形態１では、短周期誤差を補正する領域分割は、一旦均等分割し、領域毎の誤差最大値のばらつきが大きいとき、誤差が大きい部分では細かく分割し誤差が小さい部分では粗く分割するよう、領域分割をあらためて行う方式を採用したが、この実施の形態２では、領域分割を２段階で進めることで、円滑な領域細分化を実現する方式について説明する。【００５４】
以下、図９のフローチャートおよび図１０の分割模式図に従って２段階領域細分化について説明する。先ず、図１０（ａ）に示すように、全位置検出範囲を均等に粗く（例えば、図では５領域に）分割する（Ｓｔｅｐ５１）。なお、図１０（ａ）の波形は、この粗分割領域の間隔毎に抽出した位置検出誤差に基づき長周期の補正パラメータを先の式４により算出し、更に、この長周期の補正パラメータを使用して、先の式５により計算した、各粗分割領域内での短周期誤差で、ここでは補正前誤差と称している。
次に、各粗分割領域内のデータから、先の式６により、短周期の補正パラメータを計算する（Ｓｔｅｐ５２）。次に、全位置検出範囲を、図１０（ｂ）に示すように、一旦、均等に細かく（例えば、図では、各粗分割領域を更に４個に分割して、計５×４＝２０領域に）分割する（Ｓｔｅｐ５３）。
次に、Ｓｔｅｐ５２で計算した短周期の補正パラメータを使って位置検出値を補正した後の残誤差を演算する（Ｓｔｅｐ５４）。なお、図１０（ｂ）の波形は、この残誤差を示す。【００５５】
次に、上記残誤差を各細分割領域毎に評価し、各細分割領域毎での最大の残誤差を計算して（Ｓｔｅｐ５５）、最大の残誤差の大きい順にソートする（Ｓｔｅｐ５６）。次に、図１０（ｃ）に示すように、ソートした順に予め決められた数（この数は、メモリの容量から設定されるもので、ここでは、６としている）だけ細分化領域を選定する（Ｓｔｅｐ５７）。但し、図１０（ｃ）の左から２個目の粗領域のように、粗領域内がすべて細分化されてしまった場合には（Ｓｔｅｐ５８でＹｅｓ）、消滅してしまった粗領域の数だけ細分化領域を追加採用する（Ｓｔｅｐ５９）。
即ち、元の粗領域が全て細分化されると、当該元の粗領域は、すべて細分化された領域に基づいて新たに誤差の演算がなされ、元の粗領域で必要とされたデータは不要となるので、当該元の粗領域のデータ記憶のために確保された記憶場所でのデータの上書きが可能となり、従って、ここでは、細分化可能な数が１個増えて７となるわけである。
最後に、選定された細分化領域では、当該領域毎に新たに短周期の補正パラメータを演算し、選定されなかった細分化領域では、細分化する前の粗領域毎に演算された短周期の補正パラメータを採用し、各補正パラメータを不揮発性メモリに記憶する（Ｓｔｅｐ６０）。
なお、図１０（ｄ）の波形は、Ｓｔｅｐ６０で求めた各補正パラメータを使用して位置検出値を補正した後の残誤差を示す。【００５６】
以上のように、この発明の実施の形態２においては、誤差の大きい領域のみを細分化して短周期誤差補正値を用意しているため、限られた不揮発性メモリを用いて、高精度に誤差を補正することが可能となる。また、全位置検出領域内の複数の箇所に局所的な大きい誤差が存在する場合でも、高精度な補正が可能となる。【００５７】
実施の形態３．
先の形態例では、検出位置θのベキ関数である周期性関数Ｇ（θ）を、θの１次関数で表すようにしたが、以下では、その変形例を紹介する。
即ち、誤差を近似する計算の簡単な周期性関数として、式２の、のこぎり波状の関数の代わりに、式１６に示す２次関数を用いても良い。ここでは、周期性関数をｆ（θ）とし、Ｌは位置検出の基本周期、θｍは位置検出値θをＬで割った余りを示す。図１１に、位置検出値θと関数ｆ（θ）の関係を表すグラフを示す。【００５８】
【数１７】
0004602411.tif 000018
【００５９】
この場合も、簡単な分岐処理と積和演算で計算可能であるため、位置検出誤差補正装置の起動を短時間で実行できる。あるいは、ランダムアクセスメモリを消費しないため、その分位置検出誤差補正値をきめ細かく用意することにより、高精度な誤差補正が可能となる。【００６０】
実施の形態４．
同様に、式１７は、周期性関数として、θの３次関数を用いたものである。図１２に、位置検出値θと関数ｆ（θ）の関係を表すグラフを示す。【００６１】
【数１８】
0004602411.tif 000019
【００６２】
この場合も同様に、簡単な積和演算で計算可能であるため、位置検出誤差補正装置の起動を短時間で実行できる。あるいは、ランダムアクセスメモリを消費しないため、その分位置検出誤差補正値をきめ細かく用意することにより、高精度な誤差補正が可能となる。【００６３】
実施の形態５．
更なる変形例として、式１８は、周期性関数として、θの０次関数を用いたもので、矩形波状となる。図１３に、位置検出値θと関数ｆ（θ）の関係を表すグラフを示す。【００６４】
【数１９】
0004602411.tif 000020
【００６５】
この場合も同様に、簡単な分岐処理で計算可能であるため、位置検出誤差補正装置の起動を短時間で実行できる。あるいは、ランダムアクセスメモリを消費しないため、その分位置検出誤差補正値をきめ細かく用意することにより、高精度な誤差補正が可能となる。【００６７】
また、この発明の各変形例において、位置検出器が、基本周期Ｌの検出要素と基本周期Ｌ×（１／（２のベキ乗））の短周期Ｌ１の検出要素とを備えており、
位置検出器による位置検出値と真値位置との差である位置検出誤差データに基づき補正パラメータを演算する方法であって、
基本周期Ｌを比較的長周期の間隔で複数の領域に区分し、長周期間隔毎に抽出した位置検出誤差データに基づき長周期の補正パラメータを演算する第４のステップ、長周期の補正パラメータを使用して基本周期Ｌにわたる補正関数を演算する第５のステップ、この第５のステップで演算した補正関数と位置検出誤差データとから各領域内での短周期誤差を演算する第６のステップ、およびこの第６のステップで演算した各領域内での短周期誤差につき、各領域毎に、補正関数Ｃ（θ）の検出位置θとして、θを短周期Ｌ１で割った余りθｍ１を適用することにより短周期の補正パラメータを演算する第７のステップを備え、長周期の補正パラメータと短周期の補正パラメータとを適用して補正関数を演算するので、記憶手段の限られた容量の中で、短時間で高精度の誤差補正が可能となる。
【００６８】
また、第６のステップで演算された短周期誤差の各領域毎の最大値および領域毎の最大値の全領域における平均値を求め、（最大値／平均値）が所定の値を越えたとき、第４のステップに戻り、領域毎最大値が大きい部分は領域が比較的小さく、領域毎最大値が小さい部分は領域が比較的大きくなるよう、領域を再区分し、以下、第５、６のステップを再実行し、更に第７のステップを実行するので、検出範囲に一部に誤差が大きい部分が存在する場合にも、記憶手段の限られた容量の中で、合理的で高精度な誤差補正が可能となる。【００６９】
また、第７のステップで演算された短周期の補正パラメータを適用して位置検出値を補正した後の残誤差を演算する第８のステップ、および第４のステップで区分した各領域を更に細分化した細領域毎の残誤差の最大値を大きさ順にソートし、大きい順から所定の個数の細領域を選定する第９のステップを備え、選定された細領域では当該細領域毎に第７のステップを実行して演算した当該細領域毎の短周期の補正パラメータを適用し、選定されなかった細領域では第９のステップで細分化する前の領域毎に第７のステップで演算された短周期の補正パラメータを適用するので、検出範囲に一部に誤差が大きい部分が存在する場合にも、記憶手段の限られた容量の中で、合理的で高精度な誤差補正が可能となる。【００７０】
また、第１の記憶手段に不揮発性メモリを使用し、第２の記憶手段にランダムアクセスメモリを使用したので、一般に高価な不揮発性メモリを最小限の容量のものにとどめ、経済性の高い、誤差補正装置を実現することができる。
【図１】
0004602411.tif 000022
【図２】
0004602411.tif 000023
【図３】
0004602411.tif 000024
【図４】
0004602411.tif 000025
【図５】
0004602411.tif 000026
【図６】
0004602411.tif 000027
【図７】
0004602411.tif 000028
【図８】
0004602411.tif 000029
【図９】
0004602411.tif 000030
【図１０】
0004602411.tif 000031
【図１１】
0004602411.tif 000032
【図１２】
0004602411.tif 000033
【図１３】
0004602411.tif 000034