"スケールと、前記スケールに光を照射すると共に供給される電流に応じて光量を変化させる光源と、前記スケールにより反射された光を受光すると共に位相のずれた2相正弦波状信号を出力する受光部とを備えるエンコーダであって、前記2相正弦波状信号によって形成されるリサージュ波形に含まれる理想的リサージュ波形からの振幅誤差を含む誤差を検出し、検出された誤差を累積演算して新たな補正値とすることで、動的に前記補正値を更新する誤差検出部と、前記振幅誤差に基づく補正値に応じて前記光源に供給する電流を調整する光源駆動処理部とを備えることを特徴とするエンコーダ。前記誤差検出部は、前記2相正弦波状信号によって形成されるリサージュ波形のX軸及びY軸を横切る4つのゼロクロス点P12,P23,P34,P41から、X軸及びY軸方向の振幅補正値の変化分Δka1,Δkb1を累積演算することにより、前記振幅誤差を検出することを特徴とする請求項1記載のエンコーダ。本発明は、このような問題点に鑑みされたもので、リサージュ信号の検出を停止した場合にも、測定精度の低下を抑制可能なエンコーダを提供することを目的とする。本発明に係るエンコーダは、スケールと、前記スケールに光を照射すると共に供給される電流に応じて光量を変化させる光源と、前記スケールにより反射された光を受光すると共に位相のずれた2相正弦波状信号を出力する受光部とを備えるエンコーダであって、前記2相正弦波状信号によって形成されるリサージュ波形に含まれる理想的リサージュ波形からの振幅誤差を含む誤差を検出し、検出された誤差を累積演算して新たな補正値とすることで、動的に前記補正値を更新する誤差検出部と、前記振幅誤差に基づく補正値に応じて前記光源に供給する電流を調整する光源駆動処理部とを備えることを特徴とする。この発明によれば、リサージュ信号の検出を停止した場合にも、測定精度の低下を抑制可能なエンコーダを提供できる。次に、本発明の実施の形態を、図面を参照して説明する。図1は、実施の形態に係るエンコーダ1の基本構成を示すブロック図である。エンコーダ1は、図1に示すように、スケール11、光源12、及び受光部13を有する。スケール11は、所謂、インクリメンタルスケールである。光源12は、スケール11に光を照射し、供給される電流に比例してその光量を変化させる。受光部13は、スケール11により反射された光を受光する。光源12及び受光部13は、スケール11に対して相対的に移動可能に構成される。受光部13は、検出された光に基づきA相正弦波状信号A0、B相正弦波状信号B0を出力する。A相正弦波状信号、B相正弦波状信号A0、B0は、互いにπ/4の位相差を有し、且つ振幅誤差、位相誤差、オフセット、及び3次高調波歪み等を含む。更に、エンコーダ1は、図1に示すように、A/Dコンバータ20、21、オフセット振幅位相補正部30、オフセット振幅位相検出部31、3次高調波歪補正部40、3次高調波演算検出部41、r-θ変換部50、及び光源駆動処理部60を有する。これら構成20~60により、出力信号A0、B0から誤差が除去される。A/Dコンバータ20、21は、それぞれ、信号A0、B0を所定の周波数でサンプリングした後ディジタル信号A1、B1に変換し、それら信号A1、B1をオフセット振幅位相補正部30に入力する。オフセット振幅位相補正部30は、オフセット振幅位相検出部31により演算された補正係数に基づいて、ディジタル信号A1、B1のオフセット、振幅及び位相を補正して出力信号A4、B4を出力する。オフセット振幅位相検出部31は、出力信号A4、B4に基づいてオフセット振幅位相補正部30における補正係数を演算する。補正係数の演算手法については後述する。出力信号A4、B4は、振幅、位相、及びオフセットが補正された正弦波状の出力信号である。しかし、出力信号A4、B4は3次高調波を含む高調波成分を依然として含んでいる。このため、3次高調波歪補正部40は、出力信号A4、B4の3次高調波成分を補正して出力信号A7、B7を出力する。3次高調波歪補正部40は、3次高調波演算検出部41から与えられる補正係数に基づいて補正を行なう。ここで、補正係数は、基本波の振幅a1、3次高調波の振幅a3、及び3次高調波の位相φ3等であり、その詳細については後述する。r-θ変換部50は、出力信号A7、B7からリサージュ波形を生成し、このリサージュ波形の位相θごとの半径rを演算する。3次高調波演算検出部41は、この位相θ、半径rに基づいて各補正係数を算出する。光源駆動処理部60は、オフセット振幅位相検出部31により演算された振幅に関する補正係数ka1、kb1に応じて光源12に供給する電流を調整する。次に、このように構成されたエンコーダ1の補正処理の詳細について説明する。図2は、補正処理を示すフローチャートである。図2に示すように、先ず、光量が制御され、受光部13から出力されるA相正弦波状信号A0、B相正弦波状信号B0の振幅が補正されるS11。この光量の制御は、後述する振幅補正S14に基づいて、光源12及び光源駆動処理部60によりなされる。次に、信号A0、B0は、AD変換されS12、ディジタルのA相正弦波状信号、B相正弦波状信号A1、B1となる。この信号A1,B1は、下記数式1、数式2のように表すことができる。ここで、a0、b0はA相及びB相のオフセット誤差を示す。a1、b1はA相及びB相の振幅誤差を示す。φ1はA相に対するB相の位相誤差を示す。a3,b3はA相及びB相の3次高調波の振幅を示す。φ3は3次高調波の基本波に対する位相誤差を示す。uはu=2πx/λと定義され、xは変位、λは信号ピッチをそれぞれ示す。これらの誤差のうちオフセット誤差a0、b0、振幅誤差a1、b1及び位相誤差φ1は、オフセット振幅位相補正部30及びオフセット振幅位相検出部31により実行されるオフセット補正処理ステップS13、振幅補正処理ステップS14及び位相補正処理ステップS15で順次除去される。3次高調波歪みは、3次高調波歪み補正部40及び3次高調波演算検出部41により実行される3次高調波歪み補正ステップS16にて除去される。最後に、誤差が除去された2相正弦波状信号A7,B7を用いてr-θ変換部50で出力信号θが求められるS17。この実施形態では、上述した各補正処理ステップS11、S13~S16において、それぞれ漸化式を用いた動的補正を行う。信号A1、B1のオフセット補正]次に、図3を参照して、信号A1、B1のオフセット補正S13について具体的に説明する。図3は補正処理ステップS11、S13~S15の詳細を示す。図3においては、図4に示すように、A相及びB相の正弦波状信号A1、B1から一周分のリサージュ波形が得られたものとして説明を行なう。先ず、リサージュ波形のうちのX軸及びY軸を横切る4つのゼロクロス点P12、P23、P34、P41から、X軸及びY軸方向のオフセット補正値の変化分Δda1,Δdb1が次の数式3及び数式4ように求められるS111。ここで求められたΔda1、Δdb1は、オフセット誤差a0、b0に近いが、振幅誤差及び位相誤差があるため、完全には一致していない。そこで、フィードバック処理を数回繰り返すことにより、この誤差を徐々に収束させていく。すなわち、補正値da1、db1を累積加算値として、下記数式5及び数式6のように求めるS112。そして、下記数式7及び数式8により信号A1,B1からオフセット誤差を除去するための補正処理が実行されるS113。[信号A1、B1の振幅補正]次に、図3を参照して、信号A1、B1の振幅補正S14について説明する。この振幅補正S14においては、上記と同様に、リサージュ波形のX軸及びY軸を横切る4つのゼロクロス点P12,P23,P34,P41から、X軸及びY軸方向の振幅補正値の変化分Δka1、Δkb1が次の数式9及び数式10ように求められるS121。この場合にも、フィードバック処理を数回繰り返すことにより、誤差を徐々に収束させていく。すなわち、補正値ka1、kb1を累積除算値として、下記数式11及び数式12のように求めるS122。そして、下記数式13及び数式14により信号A2,B2から振幅誤差を除去するための補正処理が実行されるS123。[信号A0、B0の振幅補正]次に、図3を参照して、信号A0、B0の振幅補正S11について説明する。上記信号A1、B1の振幅補正のみでは、信号A0、B0のデジタル化により生じる量子化誤差を抑制できない。そこで、本実施の形態は、信号A0、B0の振幅補正S11を行なう。この振幅補正S11においては、上記ステップS121、S122により、補正値ka1又はkb1が求められる。そして、以下に示す数式15又は数式16に基づき、補正値ka1又はkb1に応じて光源12に供給する電流Ifが調整されるS124。なお、数式15及び数式16において、Kpは一定の係数である。上述したように光源12は、供給される電流に比例して光量を変化させる。したがって、数式15、数式16に基づく制御により、光源駆動処理部60は、A相正弦波状信号A0、B相正弦波状信号B0の振幅を補正できる。これにより、信号A0、B0のS/N比は向上し、信号A0、B0のデジタル化に生じる量子化誤差は小さくなる。また、光源12の光量制御は、オフセット振幅位相検出部31に格納された補正値ka1、kb1に基づき行なわれる。したがって、リサージュ信号の検出を停止した場合にも、光源12の光量制御は可能であるため、その測定精度の低下は抑制される。[信号A1、B1の位相補正]次に、図3を参照して、信号A1、B1の位相補正S15について説明する。この位相補正においては、上記と同様に、リサージュ波形のX軸及びY軸に対して45°の直線y=x,y=-xを横切る4つの点P1,P2,P3,P4から、A相及びB相の位相補正値の変化分Δkp1が次の数式17ように求められるS131。この場合にも、フィードバック処理を数回繰り返すことにより、誤差を徐々に収束させていく。すなわち、補正値kp1を累積乗算値として、下記数式18~数式20のように求めるS132。そして、下記数式21及び数式22により信号A3,B3から位相誤差を除去するための補正処理が実行されるS133。[3次高調波歪み補正]次に、3次高調波歪み補正について説明する。出力信号A4、B4は、振幅、位相、及びオフセットが補正された正弦波状の出力信号であるが、3次高調波を含む高調波成分を依然として含んでいる。すなわち、3次高調波の振幅及び位相が等しいとして、基本波の振幅をa1=b1、3次高調波の振幅をa3=b3、3次高調波の位相をφ3とすると、出力信号A4、B4は、次の数式23及び数式24で表される。従って、信号A4、B4のリサージュ半径rは、次の数式25のように求められる。上記式から明らかなように、リサージュ半径rは、最大値rmax=a1a3、最小値rmin=a1-a3の間を周期λ/4、位相3φ3で変化する。従って、a1,a3及びφ3が求まれば、3次高調波歪を補正することができる。][方法1:φ3=0の場合]先ず、図5に簡便な第1の方法を示す。上述のように、リサージュ波形の半径rは、3次高調波歪によりλ/4の周期で変化し、その最大値rmaxはrmax=a1a3、最小値rminはrmin=a1-a3となる図6参照。従って、a1、a3は、rmax、rminを用いて、次の数式26及び数式27ように演算できる。また、簡単のため、ここでは位相φ3=0と見なせることを前提としている。例えば、X,Y軸上に半径の最小値rmin、X,Y軸に対して45°をなす線上に最大値rmaxが存在すると仮定すると、rmax,rminは、次の数式28及び数式29ように求めることが出来るS151。こちらも、フィードバック処理を数回繰り返すことにより、誤差を徐々に収束させていく。すなわち、補正値a1、a3を累積加算値として、下記の数式30及び数式31のように求めるS152。そして、下記数式32及び数式33により信号A4,B4から3次高調波歪みを除去するための補正処理が実行されるS153。[方法2:φ3が任意の場合]図7に、φ3が任意の場合の方法2を示す。方法1は簡易で計算機の負荷が小さくて済むが、φ3が任意の場合、3次高調波成分の振幅a3が小さくなると、位相φ3の検出精度が低下する可能性がある。次に説明する方法2は、φ3をより厳密に演算することができる方法である。以下、この方法2を説明する。この方法2では、フーリエ解析を用いて振幅a1、a3及び位相φ3を演算する。すなわち、リサージュ波形に含まれる波長λ/4空間周波数42π/λの信号成分のフーリエ変換の実部をRe、虚部をImとし、動的補正をおこなうため、補正後の波形で検出した実部と虚部から数式34、数式35で示されるdRe、dImを求めS154、数式36、数式37の漸化式でReとImを更新するS155。この更新を数回繰り返すことにより、Re、Imは一定の値に収束するので、その値をRe、Imとして決定する。a1が次に示す数式38のように求められると共に、上記数式36及び数式37で決定されたRe、Imに基づいて、a3、φ3がそれぞれRe、Imで特定される複素空間上の座標の原点からの距離と角度として、次の数式39、数式40により求められる。ここで、数式39で係数√2が掛けられているのは、フーリエ変換で得られる信号の大きさは実効値であり、振幅はその√2倍であるためである。3次高調波歪補正処理においては、次に示す数式41の演算を行うことにより、図8の左に示すような、信号A4、B4のリサージュ波形L4を、3次高調波の位相に対応する角度φ3だけ反時計周りに回転させ、図8の右に示すような、信号A5、B5に対応するリサージュ波形L5を生成するものである。この角度φ3の回転を行うのは、リサージュ波形上において、3次高調波の位相が0°又は90°である状態を作り、この状態で振幅補正処理を実行するためである。この状態で、図9のA相又はB相の電圧対3次高調波の電圧の関係曲線に基づいて、基本波の振幅a1及び3次高調波の振幅a3を用いて、3次高調波の位相が0°又は90°である出力信号A5、B5から3次高調波成分を以下の数式42、数式43により除去する方向の補正を行う。最後に、次の数式44に基づく演算を行うことにより、信号A6、B6のリサージュ波形を逆回転角度-φ3だけ回転させ、信号A7、B7を生成するS156。角度-φ3だけ回転されたリサージュ波形即ち出力信号A7、B7は、元の出力信号A4、B4の基本波と同一の基本波を含み、かつ3次高調波成分が減算されている。なお、本実施形態では、収束を早くするため、ka1,kb1については除算、kphについては乗算の漸化式を用いたが、加減算による方法でも可能である。また、以上の各補正処理は、リサージュが少なくとも1回転以上してから実行する必要がある。信号のノイズ除去を考慮すると、N回転の平均で求めるようにすることも考えられる。所要回転している間は、先に検出した補正値da1,db1,...,Imで補正演算を行う。従って、最初は初期値全て0、補正無しの状態から始める。そして、所定回転したことを検知し、前述のda1,db1,...,Imで補正演算を行い、規定回転数までこの補正値で補正演算を行う。この補正されたリサージュ信号は、より誤差の小さな値となるため、その値を出発点として、次の補正検出を行う。すなわち、Δda1,Δdb1,...,ΔImを求め、da1,db1,...,Imに積算する。以上の手順を無限に繰り返すことで、補正値da1,db1,...,Imは真値に近づき、やがて検出分解能まで収束する。なお、3次高調波歪み補正について2つの方法を示したが、何れの方法も漸化式は加減乗除の何れでも可能である。計算速度や収束条件などで最適な方法を選択すれば良い。図10は、本発明の他の実施形態に係るエンコーダ2の基本構成を示すブロック図である。この実施形態では、オフセット振幅位相検出部31及び3次高調波演算検出部41で動的に補正された補正係数を記憶するメモリ70を有する。メモリ70への補正係数を格納するタイミングとしては、1外部スイッチが押されたとき、2電源オフ時終了時、3常時動作クロックに従うか、又は各補正係数が補正部30,40へ更新されたとき等が考えられる。また、再起動時には、このメモリ70から補正係数を読み出して、これを検出部31,41に初期値としてストアするようにしても良い。その後の処理は、上述した動的補正と同様である。また、動的な補正係数の更新動作を無効とする動的補正無効指示手段を備え、この動的補正無効指示手段が動的補正の無効を指示しているときには、補正部30、40が、メモリ70から読み出した補正係数を使用して2相正弦波状信号を補正するようにしても良い。以上、発明の実施の形態を説明したが、本発明はこれらに限定されるものではなく、発明の趣旨を逸脱しない範囲内において、種々の変更、追加等が可能である。例えば、上記実施の形態では、A相、B相正弦波状信号に対し、最初にオフセット、振幅及び位相の補正を行い、続いて3次高調波の補正を実行していたが、この順序は入れ替えることが可能である。すなわち、3次高調波の補正を先に実行し、後からオフセット、振幅及び位相の補正を実行するようにしてもよい。また、上記の実施の形態では、振幅や位相等の補正をディジタル回路により実行したが、DSPやソフトウエア等により同様の処理を行ってもよい。"