(57)【要約】【課題】位置検出用の２相信号の誤差成分を高精度に補正する。【解決手段】位置信号補正装置は、位置検出器から出力された互いに位相差を有する２相の周期信号に対応する２相入力信号のそれぞれに対して誤差係数を用いた誤差補正演算を行う誤差補正部１１，１２と、該誤差補正演算後の２相入力信号に対してアークタンジェント演算を行うことにより位相情報を生成するアークタンジェント演算部１３と、該位相情報に対して回帰演算を行い、回帰予測値を基準位相として誤差補正演算後の２相入力信号のそれぞれをフーリエ変換する回帰演算／フーリエ変換部１７，１８，２１と、該フーリエ変換により得られたフーリエ係数を用いて誤差係数を補正する誤差係数更新部２４とを有する。回帰演算／フーリエ変換部は、複数周期の位相範囲で得られた位相情報の回帰誤差を演算し、該回帰誤差が最も小さい位相範囲においてフーリエ変換を行う。【選択図】図１
2011117834.tif 000002
【特許請求の範囲】
【請求項１】
位置検出器から出力された互いに位相差を有する２相の周期信号に対応する２相入力信号のそれぞれに対して誤差係数を用いた誤差補正演算を行う誤差補正部と、
該誤差補正演算後の２相入力信号に対してアークタンジェント演算を行うことにより位相情報を生成するアークタンジェント演算部と、
該位相情報に対して直線回帰演算を行い、回帰予測値を基準位相として前記誤差補正演算後の２相入力信号のそれぞれをフーリエ変換する回帰演算／フーリエ変換部と、
該フーリエ変換により得られたフーリエ係数を用いて前記誤差係数を補正する誤差係数更新部とを有し、
前記回帰演算／フーリエ変換部は、複数周期の位相範囲で得られた前記位相情報の回帰誤差を演算し、該回帰誤差が最も小さい位相範囲において前記フーリエ変換を行うことを特徴とする位置信号補正装置。
【請求項２】
位置検出器から出力された互いに位相差を有する２相の周期信号に対応する２相入力信号のそれぞれに対して誤差係数を用いた誤差補正演算を行うステップと、
前記誤差補正演算後の２相入力信号に対してアークタンジェント演算を行うことにより位相情報を生成するステップと、
該位相情報に対して直線回帰演算を行い、回帰予測値を基準位相として前記誤差補正演算後の２相入力信号のそれぞれをフーリエ変換する演算ステップと、
該フーリエ変換により得られたフーリエ係数を用いて前記誤差係数を補正するステップとを有し、
前記演算ステップにおいて、複数周期の位相範囲で得られた前記位相情報の回帰誤差を演算し、該回帰誤差が最も小さい位相範囲において前記フーリエ変換を行うことを特徴とする位置信号補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダやレーザ干渉計等の検出器が出力する位置信号（２相の周期信号）に含まれる誤差を計測および補正する装置および方法に関する。
【背景技術】
【０００２】
上記のような２相信号（アナログ信号）をＡＤ変換器によりデジタル信号に変換してアークタンジェント演算を行うことにより、微細な位置情報を得ることができる。ＡＤ変換器には、１２〜１８ビットの分解能を有するものがあり、これを用いれば、２相信号の１周期を数千〜数十万分割する位置情報を得ることも可能である。ただし、こうして得られる位置情報は、その元となる２相信号に含まれる歪成分および信号処理回路のドリフト等に起因する誤差を含む。
【０００３】
２相信号に含まれる誤差成分を除去する技術として、特許文献１にて開示された方法が知られている。この方法は、２相信号における各相信号の最大値と最小値からオフセット誤差と振幅の誤差（相関の不一致）を計測し、これを補正する。
また、オフセット誤差（誤差の０次成分）と振幅誤差（誤差の１次成分）以外の誤差を検出および補正する方法が特許文献２に開示されている。特許文献２に開示された方法は、２相信号における各相信号の最大値と最小値に加えて、該２相信号の和信号と差信号のそれぞれの最大値と最小値を利用する。これにより、オフセット誤差と振幅の誤差に加え、位相差誤差（２相信号の相間の位相差のπ／２からの誤差）、２次歪および３次歪成分を計測および補正する。
【０００４】
位置信号に含まれる誤差成分としては、低次の誤差成分があるが、デジタル処理による信号の細分化に伴って、低次の誤差成分以外の高次の誤差成分も無視できなくなってきている。ただし、２相信号の最大値と最小値を用いる従来の誤差計測方法では、該２相信号を直交座標のそれぞれの軸に割当てて軌跡を描かせた図形（リサージュ図形）の半径（リサージュ半径）情報に基づく誤差の計測に相当する。この方法では、原理的に高次の誤差成分を計測することは不可能である。
【０００５】
すなわち、２相信号（ｘ，ｙ）は、これをフーリエ展開することにより次式で表すことができる。Σはｋに関する０から無限大までの総和である。
【０００６】
ｘ＝ｃｏｓθ＋Σ（ａｋｃｏｓ（ｋθ）＋ｄｋｓｉｎ（ｋθ））
ｙ＝ｓｉｎθ＋Σ（ｅｋｃｏｓ（ｋθ）＋ｂｋｓｉｎ（ｋθ））
また、Ａ、Ｂ相信号のｋ次の誤差成分（ａｋ，ｄｋ，ｅｋ，ｂｋ）に起因するリサージュ半径の変動Ｒｋは次式で表される。
Ｒｋ＝０．５（ａｋ＋ｂｋ）ｃｏｓ（ｋ−１）θ
＋０．５（ｄｋ−ｅｋ）ｓｉｎ（ｋ−１）θ
＋０．５（ａｋ−ｂｋ）ｃｏｓ（ｋ＋１）θ
＋０．５（ｄｋ＋ｅｋ）ｓｉｎ（ｋ＋１）θ
上式から明らかなように、２相信号に含まれるｋ次の誤差成分は、リサージュ半径のｋ＋１次とｋ−１次の周期誤差を引き起こす。このため、リサージュ半径の変動を解析しても、それがｋ＋１次の効果によるものであるのかｋ−１次の効果によるものであるのかを判別できず、位置信号に含まれる誤差要因を特定することができない。
【０００７】
従来の信号の最大値と最小値を用いる誤差補正手法が可能であったのは、誤差の０次成分と１次成分が他の成分にない特殊な性質を持っているからである。
０次の誤差成分（オフセット誤差）に関しては、サイン成分が存在せず、０次誤差によって生じるリサージュ半径のｋ−１次（すなわち−１次）の変動成分は折り返しにより１次の変動成分として現れｋ＋１次成分に重なることから可能となる。ただし、２次の誤差成分が元信号に含まれている場合は、このｋ‐１次成分が１次のリサージュ半径の変動成分として現れ、これを分離することはできない。したがって、２次の誤差成分が無視できる場合に、この手法は成立する。
また、１次の成分（＝振幅誤差）については、ａ１とｂ１が振幅の誤差であってａ１＝−ｂ１の関係に制約されること、およびｄ１とｅ１が位相差の誤差であってｅ１＝ｄ１の関係に制約されることから、リサージュ半径の変動は全てｋ＋１次側に現れる。
ここで説明を補足すると、誤差成分の位相誤差（もしくはリサージュ半径誤差）に与える影響は、誤差ベクトルと接線方向の単位ベクトル（もしくは半径方向の単位ベクトル）との内積で与えられる。式で書けば、（ａｋｃｏｓ（ｋθ）＋ｄｋｓｉｎ（ｋθ），（ｅｋｃｏｓ（ｋθ）＋ｂｋｓｉｎ（ｋθ））・（−ｓｉｎθ，ｃｏｓθ）となる。ここでｋ次の成分にさらにｓｉｎ関数が乗算されることにより±１次の成分が発生する。
このため、リサージュ半径の２次の変動から元信号に含まれる１次の誤差成分の特定が可能となる。ただし、この場合も、元信号に含まれる３次の誤差成分によるｋ−１次成分が２次のリサージュ半径の変動成分として現れ、これを分離することはできない。
リサージュ半径を用いた０次、１次の誤差成分の計測は、いずれも元信号が２次以上の誤差成分を含んでいないことが前提となる。特許文献２にて開示された方法は、信号処理回路の歪であれば基本波成分とピークが一致する誤差成分のみを含むとの仮定により、２次および３次の誤差成分の位相を予め決めることで、各次の誤差成分の計測を可能としている。ただし、この仮定は近似的に成り立っているに過ぎず、２相信号に含まれる全ての誤差を検出および補正するには不十分である。
特許文献３には、２相信号のそれぞれをフーリエ変換することにより誤差成分を検出および補正する方法が開示されている。特許文献３に開示されている方法は、計測装置を予めマイクロメータ等の角度設定器を用いて既知の角度に設定した状態で信号の位相を計測し、これから誤差を求める。このため、装置の実使用中の誤差を自動的に計測するには適さない。
特許文献４には、２相信号から算出される位相情報が、スケールを一定速度で移動させたとき直線状の変動をすることを元に、その直線からの外れを誤差として求める方法を開示している。しかし誤差補正を高次歪成分の係数に直目した一般式（多項式）にて行うことは開示されていないこと、誤差補正データの採取と補正は別々に行うこと  によって誤差補正が不十分な場合がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】米国特許４，４５８，３２２号明細書
【特許文献２】米国特許５，５８１，４８８号明細書
【特許文献３】特公平０６−０４３８９２号公報
【特許文献４】特開２００３−０２５４７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、特に誤差補正を更に高精度に行わせるため、第一に高次誤差成分の係数を算出し補正を一般式（多項式）にて行えるようにすること、第二に高次誤差成分の係数の算出と補正を連続的、継続的に行えるアルゴリズムを提供することを課題とする。
【００１０】
特許文献３にて開示された２相信号のそれぞれをフーリエ変換する方法を応用すれば、高次の誤差の振幅係数を独立に計測することが可能であり、そのまま装置の実使用中の誤差を自動的に計測および補正する目的に使用することも可能なように思われる。
【００１１】
しかしながら、この場合、フーリエ変換の演算に使用する位相情報をどのようにして得るかが問題となる。
【００１２】
一般に、２相信号に含まれる誤差成分は非常に少ない（例えば信号振幅の１％以下である）ことが期待される。このため、誤差を含む２相信号にアークタンジェント演算を施して得られる位相情報をこの目的に使用できるようにも思われる。
しかしながら、このようにして得られた位相情報には、入力された２相信号に含まれる誤差成分のために生ずる位相の誤差(アークタンジェントの計算値の誤差)を含む。この結果、フーリエ変換演算が位相の誤差をもって行なわれる。
即ちフーリエ変換は原理的に、信号にｓｉｎｋθ、ｃｏｓｋθを乗算して１周期にわたって積分することにより行われるが、このときのθに誤差がある場合にはフーリエ変換の工程で誤差を発生する。
２相信号の基本波成分（ａ１，ｂ１，ａ２，ｂ２，ａ３，ｂ３，…  ）と位相誤差関与成分（ｄ１，ｅ１，ｄ２，ｅ２，ｄ３，ｅ３，…  ）の相乗作用により、フーリエ演算結果には偽の（見掛け上の）位相θの誤差成分が現れる。
この現象について、以下詳しく説明する。
ｋ次の誤差成分は、次式に示す位相誤差δｋを生じる（記号は前と同じ）。
下式より２相信号のｋ次成分歪はｋ−１次とｋ＋１次の周期誤差成分になることがわかる。
δｋ＝（（ａｋ＋ｂｋ）／２）ｓｉｎ（ｋ−１）θ
＋（（ｅｋ−ｄｋ）／２）ｃｏｓ（ｋ−１）θ
＋（（ｂｋ−ａｋ）／２）ｓｉｎ（ｋ＋１）θ
＋（（ｄｋ＋ｅｋ）／２）ｃｏｓ（ｋ＋１）θ
位相に誤差δｋがある場合、採取される信号には信号の位相に対する微係数に−δｋを乗じた量の誤差が含まれる。この結果生じる見掛け上の誤差は、誤差係数の二乗以上の項を無視して近似すれば、次のようになる。
コサイン信号に重畳される誤差は次式で表される。
δｋｓｉｎθ＝
−（ａｋ／２）ｃｏｓｋθ−（ｄｋ／２）ｓｉｎｋθ
＋（（ａｋ＋ｂｋ）／４）ｃｏｓ（ｋ−２）θ
−（（ｅｋ−ｄｋ）／４）ｓｉｎ（ｋ−２）θ
＋（（ａｋ−ｂｋ）／４）ｃｏｓ（ｋ＋２）θ
＋（（ｅｋ＋ｄｋ）／４）ｓｉｎ（ｋ＋２）θ
サイン信号に重畳される誤差は次式で表される。
−δｋｃｏｓθ＝
−（ｅｋ／２）ｃｏｓｋθ−（ｂｋ／２）ｓｉｎ  ｋθ
−（（ｅｋ−ｄｋ）／４）ｃｏｓ（ｋ−２）θ
−（（ａｋ＋ｂｋ）／４）ｓｉｎ（ｋ−２）θ
−（（ｅｋ＋ｄｋ）／４）ｃｏｓ（ｋ＋２）θ
＋（（ａｋ−ｂｋ）／４）ｓｉｎ（ｋ＋２）θ
すなわち、２相信号に含まれる誤差成分によって生じる位相の誤差により、元々存在していた誤差成分は１／２に圧縮されると同時に、±２次離れた部分に１／４の大きさの偽の誤差を生み出す。
それぞれの次数のそれぞれの係数（ａｋ，ｄｋ，ｅｋ，ｂｋ）の誤差成分によって発生する偽の誤差（見掛け上の誤差）の大きさを表１および表２に示す。表１および表２では、ａｋとｂｋ、ｄｋとｅｋに分けている。即ち、表１は振幅誤差に関係する成分ａｋ、ｂｋのみ考慮した表であり、表２は位相誤差に関係する成分ｄｋとｅｋのみ考慮した表である。ただし、元信号に含まれる誤差成分のうちａｋおよびｂｋは、計測される誤差成分のｄｋ，ｅｋには影響を与えず、元信号のｄｋおよびｅｋも、計測されるａｋ、ｂｋには影響を与えない。
真の誤差に対する偽の誤差の発生量が既知であることから、表１および表２の逆行列を予め求めておくことができれば、計測された誤差から元信号に含まれる誤差を逆算することができる。しかしながら、偽誤差を発生させる行列は非正則行列であり、逆行列は存在しない。よってリサージュ波形の周期誤差を用いて例えばｋが０〜６までのｋ次の歪成分係数（ａｋ，ｄｋ，ｅｋ，ｂｋ）を解析的に算出することはできない。
そこで本発明は、スケールを一定速度で移動させて、計測された２相の周期信号を直線回帰演算することで、基準となる位相（A，B相より算出されるアークタンジェントの値）のデータ群を形成する。そして、これらを用いてフーリエ変換を行うことで、見掛け上の誤差を発生させずに高次の誤差成分までを正確に計測し、補正できる装置および方法を提供する。
即ち、フーリエ変換の演算に際してアークタンジェントを計算した結果を使用し、直線回帰演算を行うことで、「偽の誤差」の影響を排除する。なお、スケールの速度は高分解能エンコーダの場合は特に意識しなくても隣接の数周期の間は一定速度と見なすことができる。
【課題を解決するための手段】
【００１３】
本発明の一側面としての位置信号補正装置は、位置検出器から出力された互いに位相差を有する２相の周期信号に対応する２相入力信号のそれぞれに対して誤差係数を用いた誤差補正演算を行う誤差補正部と、該誤差補正演算後の２相入力信号に対してアークタンジェント演算を行うことにより位相情報を生成するアークタンジェント演算部と、該位相情報に対して直線回帰演算を行い、回帰予測値を基準位相として誤差補正演算後の２相入力信号のそれぞれをフーリエ変換する回帰演算／フーリエ変換部と、該フーリエ変換により得られたフーリエ係数を用いて誤差係数を補正する誤差係数更新部とを有する。そして、回帰演算／フーリエ変換部は、複数周期の位相範囲で得られた位相情報の回帰誤差を演算し、該回帰誤差が最も小さい位相範囲においてフーリエ変換を行うことを特徴とする。
また、本発明の他の一側面としての位置信号補正方法は、位置検出器から出力された互いに位相差を有する２相の周期信号に対応する２相入力信号のそれぞれに対して誤差係数を用いた誤差補正演算を行うステップと、誤差補正演算後の２相入力信号に対してアークタンジェント演算を行うことにより位相情報を生成するステップと、該位相情報に対して直線回帰演算を行い、回帰予測値を基準位相として誤差補正演算後の２相入力信号のそれぞれをフーリエ変換する演算ステップと、該フーリエ変換により得られたフーリエ係数を用いて誤差係数を補正するステップとを有する。そして、演算ステップにおいて、複数周期の位相範囲で得られた位相情報の回帰誤差を演算し、該回帰誤差が最も小さい位相範囲においてフーリエ変換を行うことを特徴とする。
【発明の効果】
【００１４】
本発明になる装置を用いれば、２相信号に含まれる誤差成分を高次のものまで正確に測定し、かつ補正することができ、位置の計測を高い精度で行うことが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例の位置信号補正装置の構成を示すブロック図。
【図２】実施例に使用されるカルマンフィルタの構成を示すブロック図。
【図３】実施例の誤差補正部の構成を示すブロック図。
【図４】実施例に使用される開平器の構成を示すブロック図。
【図５】実施例に使用されるメモリー部の構成を示す模式図。
【図６】実施例での処理を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、本発明の実施例について図面を参照しながら説明する。
【実施例１】
【００１７】
図１には、本発明の実施例である位置信号補正装置の構成を示している。本装置には、位置検出対象物の位置を検出するために用いられるエンコーダやレーザ干渉計等の位置検出器から出力された互いに位相差を有する２相の周期信号（アナログ信号：位置信号ともいう）に対応する２相デジタル信号（２相入力信号）が入力される。位置検出器からの２相の周期信号は、増幅やフィルタリング等の電子的処理を施された後、さらにデジタル信号に変換され、２相デジタル信号としてのコサイン信号（ｘｉｎ）およびサイン信号（ｙｉｎ）が誤差補正部１１，１２に入力される。これらコサイン信号およびサイン信号を、以下まとめて２相信号ともいい、またコサイン信号およびサイン信号のそれぞれを各相信号ともいう。
コサイン信号（ｘｉｎ）およびサイン信号（ｙｉｎ）に対しては、誤差補正部１１，１２によって次式に示す誤差補正演算が施され、既知の誤差が除去される。
【００１８】
ｘ＝ｘｉｎ−ｓΣ（Ａｋｃｏｓ（ｋθ）＋Ｄｋｓｉｎ（ｋθ））
ｙ＝ｙｉｎ−ｓΣ（Ｅｋｃｏｓ（ｋθ）＋Ｂｋｓｉｎ（ｋθ））
ただし、ｓは信号の振幅であり、次式で与えられる。
【００１９】
ｓ＝√(ｘ２＋ｙ２)
Ａｋ，Ｄｋ，Ｅｋ，Ｂｋは、これまでの誤差計測のための演算により求められた各次数（ｋ）の誤差係数であり、初期値はゼロである。誤差係数Ａｋ，Ｄｋ，Ｅｋ，Ｂｋは、後述する各次数の誤差係数補正値ａｋ，ｄｋ，ｅｋ，ｂｋにより逐次補正される。θはアークタンジェント演算部１３で得られた前回までの位相情報を、予測器２３にてカルマンフィルタで処理することにより得られる最新のサンプルに対する位相の予想値である。
図２に、カルマンフィルタの構成を示す。ＤＰは最新位相の前回位相に対する変化量である。これを所定のｎビットだけ右シフトするためにＰを乗じてレジスタＰＤＰに格納する。ここでＰは２−ｎである。レジスタＦＸの値からレジスタＰＤＰの値を減算した値は、レジスタＱに格納される。
次に、レジスタＱの値にＰを乗じてｎビットだけ右シフトした値をレジスタＰＱに格納する。また、レジスタＱの値からレジスタＰＱの値を減算した値がレジスタＦＸに格納される。
レジスタＰＱの値にレジスタＶＸの値を加算した値は、レジスタＢに格納される。レジスタＢはサンプリングインターバルにおける位相の変化量を平均化した値を示しており、次回のサンプリング時点における位相を予測するために使用される。
レジスタＢの値にＰを乗じてｎビットだけ右シフトした値は、レジスタＰＢに格納され、レジスタＢの値からレジスタＰＢの内容を減算した値が、レジスタＶＸに格納される。
レジスタＦＸの値からレジスタＶＸの値を減算した値Ｃは、回帰式の定数項となる。この定数項は、最後に計測された位相に含まれるノイズを意味する。
これを用いて最後に計測された位相からノイズを除去し、サンプリングインターバルにおける移動量Ｂを加えることにより、次回のサンプリングに際しての位相予想値が算出される。
カルマンフィルタの内部で行なわれている演算は、位相変化量Δｘが得られたとき、内部に保持された値ＦＸおよびＶＸを用いて次式のように行なわれる。これらの演算により、速度ＢおよびノイズＣが求められ、内部に保持する値ＦＸおよびＶＸが更新される。ここで、「’」は前回演算されたことを示している。また、Ｐは２−ｎであり、最新の位相角に対する重み係数を示している。通常、ｎは４〜６程度で充分な精度が得られる。
【００２０】
Ｑ＝ＦＸ’−ＰΔｘ
Ｂ＝ＶＸ’＋ＰＱ
ＶＸ＝（１−Ｐ）Ｂ
ＦＸ＝（１−Ｐ）Ｑ
Ｃ＝ＦＸ−ＶＸ
図１において、アークタンジェント演算部１３は、誤差補正部１１，１２から出力された補正済み２相信号（誤差補正演算後の２相入力信号）に対してアークタンジェント演算を行う。これにより、該補正済み２相信号を位相情報に変換する（すなわち、位相情報を生成する）。位相情報および補正済み２相信号は、少なくとも各相信号の１周期以上にわたってメモリー１４，１５，１６に蓄積される。計測インターバルに対して移動量が小さい場合は、各メモリーへの蓄積を間引きして行うことも可能である。高次の誤差成分の推定に充分な精度を得るためには、各メモリーに蓄積されるサンプル数は百点ないし数百点とすることが好ましい。
次に、メモリー１４に蓄積された位相情報に対して回帰演算部２１にて回帰演算を行い、回帰演算により得られる回帰予測値を基準位相２２として出力する。後述するフーリエ変換部１７，１８によるフーリエ変換演算は信号周期の整数倍（２ｍπ：ｍは自然数）の範囲で行われるため、回帰演算も同じ範囲の位相情報に対して行うことが好ましい。回帰演算は、通常の場合には線形回帰演算でもよいし、信号に含まれるノイズが小さい場合は単に始点と終点を結んだ直線を回帰式とする演算でもよい。回帰式は、メモリーアドレスを独立変数とし、メモリーアドレスを与えて位相を予測する形とする。
回帰演算部２１とフーリエ変換部１７，１８とにより、回帰演算／フーリエ変換部が構成される。
次に、メモリー１５，１６に蓄積された補正済み２相信号に対して、基準位相２２を用いた、フーリエ変換部１７，１８によるフーリエ変換演算が行われる。フーリエ変換演算のアルゴリズムとしては、ＦＦＴ（高速フーリエ変換）アルゴリズムが知られている。しかし、２相信号に含まれる高次の誤差成分を求めるためのフーリエ変換に対しては、次数が少なく（通常は１０以下）、また周期を等分割する点のサンプル値が得られていないことから、数値積分によるフーリエ変換を行うことが好ましい。
数値積分によるフーリエ変換を行うために、信号周期の整数倍（位相として０〜２ｍπ）の範囲において以下の積算を行う。ここで、関数ｔ（ｉ）は、メモリーアドレスｉに対する回帰式で与えられる位相の予想値である。また、Σは、ｉをフーリエ変換範囲の２番目のアドレスからフーリエ変換範囲の終点までの範囲で積算することを示す。
ak=Σ{((x[i-1]+x[i])/2)cos(k(t(i-1)+t(i))/2)(t(i)-t(i-1))} 
dk=Σ{((x[i-1]+x[i])/2)sin(k(t(i-1)+t(i))/2)(t(i)-t(i-1))}
ek=Σ{((y[i-1]+y[i])/2)cos(k(t(i-1)+t(i))/2)(t(i)-t(i-1))}
bk=Σ{((y[i-1]+y[i])/2)sin(k(t(i-1)+t(i))/2)(t(i)-t(i-1))}
積算の終点位相は、開始点から正確に２ｍπ離れている必要がある。このため、ｔ（ｉ）が終点を越えた際には、ｔ（ｉ）に代えて、正確な終了点である、開始点の位相に２ｍπを加算した値を用いて上記演算を行うことが好ましい。終了点の信号値に関しても、メモリーに蓄積された値を用いて内挿演算を行うことで該終了点における正確な信号値が得られる。ただし、終了点における信号値に誤差があっても位相の誤差ほどの影響を与えないため、終了点を超えた信号値をそのまま用いても差し支えない。
サイン関数およびコサイン関数は、それらの値のテーブルデータをＲＯＭに格納し、これを読み出す形とするとよい。
フーリエ変換によってフーリエ係数としての誤差係数補正値ａｋ，ｄｋ，ｅｋ，ｂｋの算出が終了すると、全体の信号振幅の影響を排除するため、誤差係数更新部２４，２５は、振幅ｓを用いて誤差係数補正値ａｋ，ｄｋ，ｅｋ，ｂｋの規格化を行なう。振幅ｓは１次のフーリエ係数ａ１とｂ１の平均値で与えられる。
【００２１】
ｓ＝（ａ１＋ｂ１）／２
得られた全ての誤差係数補正値ａｋ，ｄｋ，ｅｋ，ｂｋをｓで除すことにより規格化が完了する。
【００２２】
ａｋ＝ａｋ／ｓ
ｄｋ＝ｄｋ／ｓ
ｅｋ＝ｅｋ／ｓ
ｂｋ＝ｂｋ／ｓ
１次のフーリエ係数ａ１およびｂ１には基本波成分が含まれるため、これから１を差し引く。また、ｄ１およびｅ１は位相差誤差であり、これらの値は等しいことが要求される。（等しくないことを許すと位相のゼロ点が移動してしまう。）そこで、ｄ１とｅ１の平均値を求め、双方に平均値をセットする。
【００２３】
最後に、誤差係数更新部２４，２５は、これらの誤差係数補正値ａｋ，ｄｋ，ｅｋ，ｂｋを用いて、内部に保持されている誤差係数Ａｋ，Ｄｋ，Ｅｋ，Ｂｋを修正（補正）することで、内部に保持されている誤差係数をより適正なものに更新する。この修正（補正）は、次式に示すように、０以上１未満のパラメータＰを用いて、部分的に行なうことが好ましい。
Ａｋ＝Ａｋ＋Ｐａｋ
Ｄｋ＝Ｄｋ＋Ｐｄｋ
Ｅｋ＝Ｅｋ＋Ｐｅｋ
Ｂｋ＝Ｂｋ＋Ｐｂｋ
パラメータＰは定数とすることもできるが、米国特許４，４８８，１１７号明細書にて説明されている手法を援用して、位相を回帰演算した際の誤差分散ＶＮを用いて、次式の演算で定めるのが好ましい。  
Ｐ＝（ＶＣ＋ＶＴ）／（ＶＣ＋ＶＴ＋ＶＮ）
ただし、ＶＣは推定値の誤差分散を代表する量で、上式でＰが定まった後に次式により更新される（初期値は０とする）。  
【００２４】
ＶＣ＝Ｐ２ＶＮ＋（１−Ｐ）２（ＶＣ＋ＶＴ）
ただし、ＶＴは誤差係数の経時変化を代表する量であり、誤差係数の保持値の経時変化が滑らかな変化となるように適宜定められる。具体的には、ＶＴ値を小さくすると経時変化が緩やかになってノイズの影響を受け難くなる代わりに、誤差の変動に対する応答性が悪化する。
【００２５】
速度が一定でない場合は、線形回帰によって予想される位相は大きな誤差を含む。この場合は、ＶＮが極端に大きな値をとることから、Ｐは非常に小さな値となり、内部に保持された誤差係数はほとんど変化しない。ＶＮのＶＣに対する比率が寄与度を決めることから、内部に保持された誤差係数に期待される誤差分散ＶＣが小さい場合もＰは小さい値となる。
【００２６】
図３には、図１における誤差補正部１１，１２の構成例を示している。誤差補正部１１，１２は、高速演算処理が要求されるため、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレー）を用いて構成される。
前述した検出器から出力されて所定の電子的処理が施された２相の周期信号は、アナログ・デジタル変換器（ＡＤＣ）によりデジタル信号に変換される。該２相のデジタル信号は、誤差補正部１１，１２のレジスタＸＩＮおよびＹＩＮに格納される。これら双方のレジスタの内容はそれぞれ乗算器（×）により二乗された後、加算器（＋）により二乗和が演算され、開平演算モジュールＳＱＲＴにより二乗和平方根が演算される。
開平演算モジュールの詳細を図４に示す。作業用レジスタＴおよび結果格納用のレジスタＲはゼロに初期化される。また、レジスタＳは入力値が置かれるレジスタであり、上位に余裕が設けられている。例えば３２ビットの整数から１６ビットの平方根を演算する場合は、上位に１４ビットの余裕（ゼロで初期化される）が設けられ、下位３２ビットに入力値が格納される。この場合、レジスタＴおよびレジスタＲは１６ビット長とする。
開平演算の手順は、上記ビット長の場合、次のように進行する。まず、レジスタＳの上位１６ビットから、レジスタＴを１ビット左シフトして１を加算した値を減算する。減算に際してボロー（繰り下がり：減算結果がマイナスになる場合に発生する）が発生した場合は、レジスタＳの内容を２ビット左シフトした値が信号線ｗＳに出力され、レジスタＴの内容を１ビット左シフトした値が信号線ｗＴに出力される。
減算に際してボローが発生しない場合は、減算結果にレジスタＳの下位３０ビットを連結した値を２ビット左シフトした値が信号線ｗＳ２出力され、レジスタＴを１ビット左シフトして２を加算した値が信号線ｗＴに出力される。
演算を１ビットずつ行う場合はクロック毎に、信号線ｗＳの内容をレジスタＳに、信号線ｗＴの内容をレジスタＴにロードし、ボローの論理を反転した信号をレジスタＲの下位からシフトインする。この操作を１６回行うことで３２ビット整数の開平演算が完了する。
開平演算モジュールは、直列に接続して１クロックで複数のビットを同時に行うことができる。これを行うには、図４の破線内の論理回路を複数設け、出力線ｗＴおよびｗＳを次段のレジスタＴおよびＳの出力に代えて接続すればよい。ボローｂはそれぞれ独立に出力し、複数ビットの結果をまとめて結果レジスタにシフトインすればよい。
例えば、４桁の開平演算を１クロックで実行するには、破線内の論理回路を４段に接続し、クロック毎に結果レジスタを４ビット左シフトし、下位４ビットにそれぞれの桁のボローを反転した値をセットする。この場合には、３２ビットの開平演算が４クロックで完了する。
３２ビットの開平演算を４段構成の開平モジュールで行なう論理を、ＦＰＧＡの一例として、アルテラ社のＥＰ２Ｓ３０Ｆ６７２Ｃ４に組み込んだ際の上限クロック周波数は９０ＭＨｚであった。  
一般的な位置の計測および制御にはサンプリング周波数が数百ｋＨｚないし数ＭＨｚのＡＤ変換器が利用される。このため、信号処理のクロックレートを数十ＭＨｚとすれば、一つのＡＤ変換結果の処理に１０以上のクロック周期を使用することが可能となり、演算に複数クロックを使用した簡素な論理回路が構成可能となる。
図３において、それぞれの次数の誤差係数は、ＥＣＸおよびＥＣＹで示すＲＡＭに格納されている。これらの係数と二乗和平方根との積を演算することにより入力信号の振幅に合せた後、ＲＯＭより順次読み出されるｃｏｓｋθおよびｓｉｎｋθの値と乗算し、各誤差係数に対応する信号の誤差を算出する。
各信号値ＸＩＮおよびＹＩＮは、最初のクロックでレジスタＸおよびレジスタＹにセットされる。次いで、各誤差係数に対応する信号の誤差が算出される毎に、これらをレジスタＸおよびレジスタＹの内容に加算する。
全ての次数の誤差の加算が完了した後、これらの内容を図中にＸＲＡＭ、ＹＲＡＭと示したＲＡＭに、サンプリングごとにアドレスを変えて格納する。また、それぞれの信号を用いてアークタンジェント演算ＡＴＡＮを行い、この結果も図中にＴＲＡＭと示したＲＡＭに格納する。これらのＲＡＭは、誤差の演算に充分な数の結果を格納する必要があり、例えば１ｋサンプルの結果を格納するに十分な領域とする。
アークタンジェント演算の結果の最新値と前回値の差は、モジュールＫＬＭＮに導かれ、前述したカルマンフィルタ演算が行なわれ、次回サンプリングの際の位相θが演算される。θは一旦レジスタＰＨＳに格納された後、レジスタＩＤＸに加算される。レジスタＩＤＸは、初期値としてゼロにリセットした後、順次レジスタＰＨＳを加算することにより各次数の誤差計算に必要なアドレスｋθを生成する。
図３において、誤差係数格納用のＥＣＸおよびＥＣＹ、一連の位置を格納するＸＲＡＭおよびＹＲＡＭと一連の位相情報を格納するＴＲＡＭは、いずれもデュアルポートＲＡＭ（読み書きポートを二組持つランダムアクセスメモリ）で構成される。デュアルポートＲＡＭの一方のポートは、先に説明したＦＰＧＡの論理によりアクセスされる。また、他方のポートは、図１に示した、誤差補正部１１，１２以外の各部を構成するマイクロプロセッサ、デジタルシグナルプロセッサまたはホストコンピュータ等の誤差係数更新システムに接続されている。誤差係数更新システムは、ＸＲＡＭ、ＹＲＡＭ、ＴＲＡＭを読み込んで、前述した回帰演算、フーリエ変換および誤差係数の更新演算を行い、その結果をＥＣＸ、ＥＣＹに書き込む。
上記誤差係数更新システムの動作は、一般にはＦＰＧＡの動作に比べると非常に遅い。しかし、誤差係数の変動は緩やかであるため、その更新処理にはさほどの速度は要求されない。よって、無駄な演算は極力省き、誤差係数更新システムの演算能力を誤差係数の更新処理に有効に利用することが好ましい。
本実施例では、位置検出対象物の移動速度が一定であるとの仮定に基づいて基準位相を回帰演算（直線回帰演算）により求めている。このため、データ採取期間に大きな速度変動がある場合には、誤差係数の演算結果に大きな誤差が含まれる。このため、ＦＰＧＡの論理に、有効性の高いデータを保存する機能を設けることが好ましい。このための回路構成の一例を図５に示す。
図５において、位相情報のデータ（位相データ）を格納するためのＲＡＭは２セット設けられており、一方のＲＡＭに最良の（位相の線形回帰誤差が最も小さい）位相データの組みが格納され、他方のＲＡＭには新たな位相データが蓄積される。
新たな位相データが蓄積されるＴＲＡＭから複数周期の位相範囲（例えば、３２点の位相）での位相データを読み出し、線形回帰モジュールＲＥＧにより線形回帰演算を行って回帰誤差を求める。この際の回帰演算は、ＲＡＭの全領域を対象として行ってよい。
回帰誤差は、モジュールＭＩＮにより、保持されている最小回帰誤差と比較される。そして、新しく得られた回帰誤差が最小回帰誤差よりも小さい場合は、新しく得られた回帰誤差を最小回帰誤差にセットするとともに、新たなデータを蓄積するＲＡＭ領域と最良データを格納するＲＡＭ領域を切替える。
上記誤差係数更新システムによるＲＡＭからのデータの取り込みは、最良のデータの組に対して行い、これが行われている間はＲＡＭ領域の切替えを停止する。また、誤差係数更新システムによるＲＡＭデータの取り込みが行なわれた際には、最小の回帰誤差はリセットされる（最新の回帰誤差を最小回帰誤差にセットする）。  
【００２７】
こうすることで、誤差係数更新システムが読み込むデータの組は、前回の読み込み後に取り込まれた最良のデータの組となり、効率的な誤差係数の計測が可能となる。
【００２８】
図６のフローチャートには、誤差係数更新システムでの処理（位置信号補正方法）を示す。誤差係数更新システムは、以下の処理をコンピュータプログラムに従って実行する。
ＦＰＧＡ上のＲＡＭに蓄えられた信号は、通信回線により誤差係数更新システムに取り込まれ（ステップＳ１０１）、回帰演算部２１による位相情報の直線回帰演算が行われる（ステップＳ１０３）。
ＲＡＭは、低速移動の際にも必要な範囲のデータが採取できるよう、通常の計測に対しては過剰な容量を有する。これを利用して、直線回帰演算を、演算可能な全ての位相範囲（複数周期の位相範囲）、すなわちそれぞれの始点から２ｍπの範囲にて行い（ステップＳ１０２，Ｓ１０３）、回帰誤差が最小も小さい位相範囲を求める（ステップＳ１０４）。そして、フーリエ変換部１７，１８によるフーリエ変換演算を、このようにして得られた回帰誤差が最も小さい位相範囲に対して行う（ステップＳ１０５）。このような演算ステップ（Ｓ１０２〜Ｓ１０５）によって、より良好な誤差係数補正値（つまりは更新後の誤差係数）の演算精度が得られる。
このように本実施例によれば、２相信号に対して回帰演算を行うことで基準位相を生成し、該基準位相を用いたフーリエ変換により得られた誤差係数補正値を用いて誤差補正演算を行うための誤差係数を補正（更新）する。これにより、見掛け上の誤差を発生させずに高次の誤差成分までを正確に計測し、補正することができる。
以上説明した実施例は代表的な例にすぎず、本発明の実施に際しては、実施例に対して種々の変形や変更が可能である。
【００２９】
【表１】
2011117834.tif 000003
【００３０】
【表２】
2011117834.tif 000004
【産業上の利用可能性】
【００３１】
位置信号としての２相の周期信号に含まれる誤差成分を高次のものまで計測および補正することが可能な位置信号補正装置を提供できる。
【符号の説明】
【００３２】
１１，１２  誤差補正部
１３  アークタンジェント演算部
１７  フーリエ変換部
２１  回帰演算部
２４，２５  誤差係数更新部
【図１】
2011117834.tif 000005
【図２】
2011117834.tif 000006
【図３】
2011117834.tif 000007
【図４】
2011117834.tif 000008
【図５】
2011117834.tif 000009
【図６】
2011117834.tif 000010