(57)【要約】      （修正有）【課題】回転円盤の面ぶれに起因する誤差を自己校正ができるロータリエンコーダを提供する。【解決手段】ロータリエンコーダ１００の光源は複数の発光素子を備え、第１の発光素子３１は回転角θに相当する位置に配置され、第２の発光素子３２は、第１の発光素子３１から所定距離ｘＬ離間して配置され、回転円盤２の回転角をθとし、回転角θから検出器４上の読取範囲内の角度をφとし、第１の発光素子３１の場合の検出器４上の読取範囲内の読取値ｆI（θ＋φ）及びｆI（θ）と、第２の発光素子３２の場合の検出器４上の読取値ｆＩＩ（θ＋φ）を得て、読取値ｆＩＩ（θ＋φ）と読取値ｆI(θ+φ)の差ｈ(θ+φ)に基づいて、角度θ＋φにおける面ぶれによる読取値の誤差ΔφＩを算出し、読取値の誤差ΔφＩを反映して読取値ｆI(θ+φ)とｆI(θ)との差ｇI（θ，φ）を求め、差ｇI（θ，φ）の変化から読取値ｆI(θ)を自己校正する。【選択図】図４
2020056618.tif 000002
【特許請求の範囲】
【請求項１】
角度コードが付された回転円盤と、前記角度コードを照射する光源と、前記角度コードを読み取る検出器と、該検出器で読み取った角度コードから読取値ｆ（θ）を得る演算部を備えるロータリエンコーダであって、
前記光源は、複数の発光素子を備え、第１の発光素子は前記回転角θに相当する位置に配置され、第２の発光素子は、前記第１の発光素子から所定距離ｘＬ離間して配置され、
前記演算部は、前記回転円盤を所定角度回転させる度に、前記回転円盤の回転角をθとし、該回転角θから検出器上の読取範囲内の任意の角度をφとするとき、前記第１の発光素子を用いた場合の前記検出器上の読取範囲内の読取値ｆI（θ＋φ）及びｆI（θ）と、前記第２の発光素子を用いた場合の前記検出器上の読取値ｆＩＩ（θ＋φ）を得て、前記読取値ｆＩＩ（θ＋φ）と前記読取値ｆI(θ+φ)との差ｈ(θ+φ)に基づいて、角度θ＋φにおける面ぶれによる読取値の誤差ΔφＩを算出し、前記読取値の誤差ΔφＩを反映して前記読取値ｆI(θ+φ)とｆI(θ)との差ｇI（θ，φ）を求め、前記差ｇI（θ，φ）の変化から前記読取値ｆI(θ)を自己校正することを特徴とするロータリエンコーダ。
【請求項２】
前記光源は、前記第１の発光素子に関して前記第２の発光素子と対称な位置に配置された第３の発光素子を備え、
前記演算部は、前記第１の発光素子を用いた場合の前記検出器上の読取範囲内の読取値ｆＩ（θ−φ）および前記第３の発光素子を用いた場合の前記検出器上の読取値ｆＩＩＩ（θ−φ）を得て、前記読取値ｆＩＩＩ（θ−φ）と前記読取値ｆI(θ−φ)との差ｈ(θ−φ)に基づいて、角度θ−φにおける面ぶれによる読取値の誤差Δ（−φＩ）を算出し、前記読取値の誤差Δ（−φＩ）を反映して前記読取値ｆI(θ−φ)とｆI(θ)との差ｇI（θ，−φ）を求め、前記差ｇI（θ，φ）および前記差ｇI（θ，−φ）の変化を平均化して、前記読取値ｆI(θ)を自己校正することを特徴とする請求項１に記載のロータリエンコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロータリエンコーダに関し、より詳細には、自己校正可能なロータリエンコーダに関する。
【背景技術】
【０００２】
測量機に用いられるロータリエンコーダは、望遠鏡とともに回転する回転円盤、およびこの回転円盤の周方向に沿って付された目盛または角度コードを示すスリットを読む検出器を用いて、水平角と鉛直角とを測定する。
【０００３】
ロータリエンコーダの測定値に誤差を生じる主要な原因として、回転円盤の回転軸への取り付けが偏心していることや、目盛や角度コードを完全に等間隔に付されていないこと等が挙げられる。
【０００４】
このような誤差を取り除くために、特許文献１は、回転円盤を所定角度回転させる度に、回転円盤の回転角をθとし、該回転角θから検出器上の読取範囲内の任意の角度をφとするとき、前記検出器上の読取範囲内の読取値ｆ（θ＋φ）及びｆ（θ）が得られるものとし、前記回転円盤を１回転させたときの前記読取値ｆ（θ＋φ）とｆ（θ）との差ｇ（θ，φ）の変化から、前記読取値ｆ（θ）を自己校正可能なロータリエンコーダを開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４８２４４１５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１のロータリエンコーダでは、回転円盤の回転時に、光源に対して、近づいたり遠ざかったりするようにぶれること（以下、「面ぶれ」という。）で生じる誤差は考慮されておらず、特に、高精度の測定が求められる測量機用ロータリエンコーダでは、校正精度が十分でない場合があるという問題があった。
【０００７】
本発明は、係る事情を鑑みてなされたものであり、回転円盤の面ぶれに起因する誤差を考慮して高精度に自己校正することができるロータリエンコーダを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の１つの態様に係るロータリエンコーダは、角度コードが付された回転円盤と、前記角度コードを照射する光源と、前記角度コードを読み取る検出器と、該検出器で読み取った角度コードから読取値ｆ（θ）を得る演算部を備えるロータリエンコーダであって、前記光源は、複数の発光素子を備え、第１の発光素子は前記回転角θに相当する位置に配置され、第２の発光素子は、前記第１の発光素子から所定距離ｘＬ離間して配置され、前記演算部は、前記回転円盤を所定角度回転させる度に、前記回転円盤の回転角をθとし、該回転角θから検出器上の読取範囲内の任意の角度をφとするとき、前記第１の発光素子を用いた場合の前記検出器上の読取範囲内の読取値ｆI（θ＋φ）及びｆI（θ）と、前記第２の発光素子を用いた場合の前記検出器上の読取値ｆＩＩ（θ＋φ）を得て、前記読取値ｆＩＩ（θ＋φ）と前記読取値ｆI(θ+φ)との差ｈ(θ+φ)に基づいて、角度θ＋φにおける面ぶれによる読取値の誤差ΔφＩを算出し、前記読取値の誤差ΔφＩを反映して前記読取値ｆI(θ+φ)とｆI(θ)との差ｇI（θ，φ）を求め、前記差ｇI（θ，φ）の変化から前記読取値ｆI(θ)を自己校正することを特徴とする。
【０００９】
上記態様において、前記光源は、前記第１の発光素子に関して前記第２の発光素子と対称な位置に配置された第３の発光素子を備え、前記演算部は、前記第１の発光素子を用いた場合の前記検出器上の読取範囲内の読取値ｆＩ（θ−φ）および前記第３の発光素子を用いた場合の前記検出器上の読取値ｆＩＩＩ（θ−φ）を得て、前記読取値ｆＩＩＩ（θ−φ）と前記読取値ｆI(θ−φ)との差ｈ(θ−φ)に基づいて、角度θ−φにおける面ぶれによる読取値の誤差Δ（−φＩ）を算出し、前記読取値の誤差Δ（−φＩ）を反映して前記読取値ｆI(θ−φ)とｆI(θ)との差ｇI（θ，−φ）を求め、前記差ｇI（θ，φ）および前記差ｇI（θ，−φ）の変化を平均化して、前記読取値ｆI(θ)を自己校正することも好ましい。
【発明の効果】
【００１０】
上記の態様によれば、回転円盤の面ぶれに起因する誤差を考慮して高精度に自己校正することができるロータリエンコーダを提供することを目的とする。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施の形態に係るロータリエンコーダの構成ブロック図である。
【図２】（ａ）は、同形態に係るロータリエンコーダの検出器付近の平面図であり、（ｂ）は、（ａ）のＩＩＢ−ＩＩＢ線に沿う断面図である。
【図３】同形態のロータリエンコーダにおいて、面ぶれに起因する誤差の計算方法を説明する図であり、第１の発光素子を発光した場合の、（ａ）は平面図であり、（ｂ）は、（ａ）のＩＩIＢ−ＩIＩＢ線に沿う断面図である。
【図４】同形態のロータリエンコーダにおいて、面ぶれに起因する誤差の計算方法を説明する図であり、第２の発光素子を発光した場合の、図３（ｂ）と同様の断面図である。
【図５】同形態のロータリエンコーダにおける、自己校正の手順を示すフローチャートである。
【図６】（ａ）は、本発明の第２の実施の形態に係るロータリエンコーダの検出器付近の平面図であり、（ｂ）は、（ａ）のＶＩＢ−ＶＩＢ線に沿う断面図である。
【図７】同形態のロータリエンコーダにおける、自己校正の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の好適な実施の形態について、図面を参照して説明するが、本発明はこれに限定されるものではない。また、各実施の形態において、同一の構成には、同一の符号を付し、重複する説明は省略する。
【００１３】
（第１の実施の形態）
１．  ロータリエンコーダの構成
実施の形態に係るロータリエンコーダ（以下、単に「エンコーダ」という）１００は、いわゆるアブソリュートエンコーダである。エンコーダ１００は、回転軸（図示せず）に固設された回転円盤２と、回転軸の軸受（図示せず）に固設された光源３と、光源３からの光を、回転円盤２を介して受光する検出器４と、変換部５と、演算部６と表示部７とを備える。
【００１４】
回転円盤２は、ドーナツ状の円盤であり、周縁部に、０を意味する細線（スリット）と、１を意味する太線（スリット）とからなる角度を示す角度コードを形成するスリット２１が設けられている。
【００１５】
光源３は、第１の発光素子３１と第２の発光素子３２とを備え、発光素子は、例えばＬＥＤである。発光素子３１，３２は、回転円盤２のスリット２１と対向するように、所定距離ＨＤL離間して配置されている（図２（ｂ））。また、第１の発光素子３１と第２の発光素子３２とは、回転円盤の直径と直交する方向に所定距離ｘＬ離間して配置されている。
【００１６】
検出器４は、例えばＣＣＤリニアセンサであり、回転円盤２に関して、光源３と反対側に、所定距離ＨＤＣ離間して光源３と対向するように配置されている（図２（ｂ））。
【００１７】
変換部５は、Ａ／Ｄ変換器であり、検出器４からの検出信号をデジタル信号に変換して、演算部６に出力する。
【００１８】
演算部６は、ＣＰＵにＲＯＭ，ＲＡＭ等を実装したマイクロコントローラであり、光源３の発光を制御し、変換部５から入力された検出信号から角度コードを解読し、公知の内挿処理を行うことにより角度を算出し、液晶ディスプレイ等の表示部７に出力する。
【００１９】
図２に示すように、検出器４は、回転円盤２の直径に対して直交する位置に、スリット２１と対向するように配置されている。検出器４に対して回転円盤２の中心Ｏから引いた垂線の足をＡとする。また検出器４の検出範囲に入る、回転円盤２の適当な点をＢとする。Ｍは角度コードが０°を示す方向であり、Ａ点のＭ方向からなす真の角度をθ、角ＡＯＢの真の角度をφとする。従ってＡ点の位置が角度θの位置であり、Ｂ点の位置が角度θ＋φの位置である。
【００２０】
この時、第１の発光素子３１は、点Ａと対応する位置に配置されており、第２の発光素子３２は、第１の発光素子３１から、検出器４が延びる方向に、所定距離ｘＬだけ離間して配置されている。
【００２１】
図２（ｂ）に示すように、面ぶれを考慮しない場合、第１の発光素子３１から出射され、点Ａに入射した光は検出器４の読取位置ＡＣＩに入射する。また、点Ｂに入射した光は検出器４の読取位置ＢＣＩに入射する。演算部６は、読取位置置ＡＣＩおよびＢＣＩで、Ａ点およびＢ点における角度コードをそれぞれ読み、内挿処理を行ってＡ点およびＢ点でのそれぞれの角度の読取値ｆＩ（θ）およびｆＩ（θ＋φ）を求めることができる。通常の角度測定においては、Ａ点における角度の読取値ｆＩ（θ）が測定値となる。
【００２２】
読取値ｆＩ（θ）およびｆＩ（θ＋φ）は、３６０°を周期とする周期関数であるので、フーリエ級数を用いてそれぞれ式１、式２のように表すことができる。
ｆＩ（θ）＝θ＋ΣＡi＊ｓｉｎ（ｉθ＋αｉ）        （１）
ｆＩ（θ＋φ）＝（θ+φ）＋ΣＡｉ＊ｓｉｎ（ｉ（θ＋φ）＋αｉ）          （２）
（ここで、ｉは高調波の次数を表す自然数（１，２，３，・・・Ｍ／２）、Ａｉは、第ｉ高調波の振幅、αｉは、第ｉ高調波の初期位相であり、Ｍは目盛数であり偶数である。）
【００２３】
また、図２（ｂ）に示すように、面ぶれを考慮しない場合、第２の発光素子３２から出射され、Ｂ点に入射した光は、検出器４の読取位置ＢＣＩＩに入射する。演算部６は、検出器４で、Ｂ点の角度コードを読み、内挿処理を行って、Ｂ点での角度の読取値ｆＩＩ（θ＋φ）を求める。読取値ｆＩＩ（θ＋φ）の詳細については後述する。
【００２４】
２．  面ぶれ誤差の計算
次に、角度の読取値における面ぶれの影響を、図３を参照して説明する。面ぶれとは、回転円盤２が回転により、光源３に対して、近づいたり遠ざかったりするように変位することである。図３では、光源に近づく方向の面ぶれが生じた場合について検討する。
【００２５】
面ぶれΔＨが生じると、角度θ＋φを検出するために第１の発光素子３１から出射された光の回転円盤２への入射位置は、Ｂ点から距離ΔｘＤＩだけずれた、Ｂ´点となる。したがって、読取位置ＢＣＩでは、Ｂ点ではなく、Ｂ´点の角度コードが読み取られる。このため、読取値ｆＩ（θ＋φ）は、（θ＋φ）+ΔφＩとなる（図３（ａ））。すなわち−ΔφＩが、回転円盤の面ぶれによって生ずる誤差である。
【００２６】
角度θ+φの位置での、面ぶれ誤差ΔφＩは以下の通り計算できる。
図３（ｂ）より、面ぶれΔＨ、面ぶれΔＨによる入射位置のずれΔｘＤＩ、第１の発光素子３１から検出器４までの距離ＨＬＣ、および読取位置ＡＣＩＢＣＩ間の距離ｘＣＩの関係は式３の通りである。
ｘＣＩ/ＨＬＣ＝ΔｘＤＩ／ΔＨ        （３）
【００２７】
したがって、入射位置のずれΔｘＤＩ、は、式４で表せる。
ΔｘＤＩ＝ΔＨ／ＨＬＣ・ｘＣＩ      （４）
【００２８】
また、図３（ａ）より、角度φの正接は、ＡＢ間の距離ｘＤと、回転円盤の中心Ｏから点Ａに引いた垂線の長さｌを用いて、式５で表せる。
tanφ＝ｘＤ／ｌ      （５）
【００２９】
また、（φ+ΔφＩ）の正接は、入射位置のずれΔｘＤＩを用いて式６のように表される。
ｔａｎ（φ+ΔφＩ）＝（ｘＤ-ΔｘＤＩ）／ｌ        （６）
【００３０】
したがって、ΔφＩが十分に小さければ、式７の通り近似できる。
ΔφＩ≒−（ΔｘＤＩ）／ｌ＝−（ΔＨ／ＨＬＣ）（ｘＣＩ／ｌ）        （７）
【００３１】
ここで、面ぶれも３６０°を周期とする周期関数であるから、フーリエ級数を用いて式８の通り表される。
ΔφＩ＝Σ（ΔＨｉ／ＨＬＣ）（ｘＣＩ／ｌ）＊ｓｉｎ{ｉ（θ＋φ）+βｉ}      （８）
【００３２】
これを式１に追加して、面ぶれを考慮した、Ｂ点（角度θ＋φ）での測角値ｆＩ（θ+φ）は、式９の通り表せる。
ｆＩ（θ＋φ）＝θ＋φ＋ΣＡｉ＊ｓｉｎ｛ｉ（θ＋φ）＋αｉ｝＋Σ（ΔＨｉ／ＨＬＣ）（ｘＣＩ／ｌ）＊ｓｉｎ{ｉ（θ＋φ）+βｉ}        （９）
【００３３】
なお、φ＝０の場合は、ｘＣＩ＝０であり、式１０の通り面ぶれによる誤差は生じない。すなわち面ぶれによる誤差は、角度θの測定自体には影響を及ぼさない。
ｆＩ（θ）＝θ＋ΣＡｉ＊ｓｉｎ（ｉθ＋αｉ）        （１０）
【００３４】
次に、第２の発光素子３２を発光させ、点ＢＣＩＩでの角度の読取値ｆＩＩ（θ＋φ）を求める場合の面ぶれΔＨの影響について検討する。第２の発光素子３２から出射された光の回転円盤２への入射位置は、Ｂ点から距離ΔｘＤＩＩずれた、Ｂ”点となる。
【００３５】
θ+φの位置における、第１の発光素子３１と第２の発光素子３２間の距離ｘＬ，読取位置ＡＣＩＢＣIＩ間の距離（角度読取位置）ｘＣＩＩ，第２の発光素子３２から検出器４までの距離ＨＬＣ、面ぶれΔＨによる入射位置のずれΔｘＤＩI、および面ぶれΔＨの関係は、図４より、式１１で表せる。
（ｘＬ-ｘＣＩＩ）／ＨＬＣ＝−ΔｘＤＩＩ／ΔＨ        （１１）
【００３６】
したがって、入射位置のずれΔｘＤＩＩは、式１２で表せる。
ΔｘＤＩＩ＝（ΔＨ／ＨＬＣ）（ｘＣＩＩ-ｘＬ）        （１２）
【００３７】
よって、第１の発光素子３１を発光させた場合と同様、θ＋φの位置における点ＢＣＩＩでの角度の読取値ｆＩＩ（θ＋φ）は、式１３で表せる。
ｆＩＩ（θ＋φ）＝θ＋φ＋ΣＡｉ＊ｓｉｎ｛ｉ（θ＋φ）＋αｉ｝＋Σ（ΔＨｉ／ＨＬＣ）（ｘＣＩＩ−ｘL）／ｌ＊ｓｉｎ{ｉ（θ＋φ）+βｉ}        （１３）
【００３８】
したがって、第２の発光素子３２による読取値ｆＩＩ（θ＋φ）と第１の発光素子３１による読取値ｆＩ（θ＋φ）との差ｈ（θ＋φ）は式１４の通り表せる。
ｈ（θ＋φ）＝ｆＩＩ（θ＋φ）−ｆＩ（θ＋φ）
＝Σ（ΔＨｉ／ＨＬＣ）（ｘＣＩＩ−ｘＣＩ−ｘＬ）/ｌ*ｓｉｎ｛ｉ（θ＋φ）＋βｉ｝        （１４）
【００３９】
式８より、Σ（ΔＨｉ／ＨＬＣ）＊｛ｓｉｎ{ｉ（θ＋φ）+βｉ}＝ΔφＩ／（ｘＣＩ／ｌ）であるから、θ＋φの位置における、面ぶれによる角度読取値の誤差ΔφＩは、式１５で表せる。
ΔφＩ＝ｘＣＩ/（ｘＣＩＩ−ｘＣＩ−ｘＬ）＊ｈ（θ＋φ）        （１５）
以上により、誤差の影響を考慮した角度読取値が、ｆＩ（θ＋φ）−ΔφＩで求められる。
【００４０】
ここで、第１の発光素子３１と第２の発光素子３２の間の距離ｘＬは既知であり、読取位置ＡＣＩＢＣＩ間の距離（角度読取位置）ｘＣＩ、読取位置ＡＣＩＢＣＩＩ間の距離（角度読取位置）ｘＣＩＩも取得可能であるので、角度θ＋φの位置における面ぶれによる角度読取値の誤差ΔφＩを求めることができる。
【００４１】
３．  自己校正の方法
本実施の形態に係る、エンコーダ１００の自己校正の方法は、θ＋φの位置における読取値ｆＩ（θ＋φ）の取得に際して、面ぶれによる角度読取値の誤差ΔφＩを考慮する点を除き、特許文献１に記載された方法と同様であり、概略は以下のとおりである。
【００４２】
まず、読取値ｆＩ（θ＋φ）とｆＩ（θ）の差ｇＩ（θ，φ）は、式１、式２から、特許文献１に記載された方法により、式１６のようにフーリエ級数で表せる。
ｇＩ（θ，φ）＝φ＋ΣＡｉ*ｓｉｎ（ｉθ/２）＊ｃｏｓ｛i（θ＋φ／２）＋αｉ｝
＝Ｂ０+ΣＢｉ*ｓｉｎ｛ｉθ＋γｉ｝        （１６）
ただし、
φ＝Ｂｏ        （１７）
Ａｉ＝Ｂｉ*ｓｉｎ（ｉφ／２）        （１８）
αｉ＝γｉ-ｉφ／２＋π／２        （１９）
である。
【００４３】
そこで、３６０°をＮ等分し所定角度（例えば、５°）ずつ回転円盤２を回転させた回転角θｊの位置で、Ａ点とＢ点での読取値ｆＩ（θｊ），ｆＩ（θｊ+φ）を取得する。ここで、ｊ＝１，２，３，・・・Ｎ−１である。所定角度θｊごとにｇＩ（θｊ，φ）＝ｆＩ（θｊ+φ）−ｆＩ（θｊ）を算出すると、周知の方法により式１６のフーリエ級数の各係数Ｂｏ，Ｂｉ，γｉが算出でき、式１７,式１８，式１９によりφ，Ａｉ，αｉが算出できる。したがって、真の角度θは、式１を変形した式２０から求めることができる。
θ＝ｆ（θ）−ΣＡｉ＊ｓｉｎ（ｉθ＋αｉ）＝ｆ（θ）−Ｅ(θ)        （２０）
なお、Ｅ(θ)は誤差関数でありＥ(θ)＝ΣＡｉ＊ｓｉｎ（ｉθ＋αｉ）である。
【００４４】
４．  自己校正の手順
次に、本実施の形態に係るエンコーダ１００による自己校正の手順を、図５を参照しながら説明する。以下の自動校正の処理は、通常は、演算部６が行う。
【００４５】
自己校正が開始すると、ステップＳ１０１で、第１の発光素子３１を発光させ、検出器４上の読取位置ＡＣＩ，ＢＣＩの読取値ｆＩ（θｊ）、ｆＩ（θｊ＋φ），およびＡＣＩＢＣＩ間の距離（角度読取位置）ｘＣＩｊを取得し、これを所定回数行う。測定後、第１の発光素子３１の発光を停止する。
【００４６】
次に、ステップＳ１０２で、第２の発光素子３２を発光させ、検出器４上の読取位置ＢＣＩＩの読取値ｆＩＩ（θｊ＋φ）およびＡＣＩＢＣＩＩ間の距離（角度読取位置）ｘｃＩＩを取得し、これを所定回数行う。測定後、第２の発光素子３２の発光を停止する。
【００４７】
次に、ステップＳ１０３で、読取値ｆＩ（θｊ）、ｆＩ（θｊ＋φ），ｆＩＩ（θｊ＋φ）およびＡＣＩＢＣＩ間の距離（角度読取位置）ｘＣＩ，ＡＣＩＢＣＩＩ間の距離（角度読取位置）ｘｃＩＩの平均を算出する。
【００４８】
次に、ステップＳ１０４で、θ＋φでの読取値ｆＩＩ（θｊ＋φ），ｆＩ（θｊ＋φ）の差ｈ（θｊ＋φ）＝ｆＩＩ（θｊ＋φ）−ｆＩ（θｊ＋φ）を算出して記憶する。
【００４９】
次に、ステップＳ１０５で、式１５により、θ＋φの位置における、面ぶれによる角度読取値の誤差ΔφＩを算出して記憶する。
【００５０】
次に、ステップＳ１０６で、面ぶれの影響を考慮した読取値ｆＩ（θｊ＋φ）-ΔφＩと読取値ｆＩ（θ）の差ｇＩ（θｊ，φ）を算出して記憶する。
【００５１】
次に、ステップＳ１０７で、予定の全データを取得したかどうか、すなわち所定角度θｊ毎のｇ（θｊ，φ）を取得したかどうかを判断する。例えば、θを５°間隔で３６０°にわたってｇＩ（θｊ，φ）を取得したかどうかを判断する。
【００５２】
予定の全データ取得がされていない場合（Ｎｏ）、ステップＳ１０７に進み、回転円盤２を手動または自動で所定角度回転させて、ステップＳ１０１に戻る。以下、ステップＳ１０１〜Ｓ１０７を繰り返し、所定角度θｊ毎のｇＩ（θｊ，φ）を求めて記憶する。
【００５３】
ステップＳ１０９で所定回数のデータ取得が完了している場合（Ｙｅｓ）、ステップＳ１０８に進んで、所定角度θｊ毎のｇＩ（θｊ，φ）から、式１６に示すｇＩ（θ，φ）のフーリエ級数の係数Ｂ０、Ｂｎ、γｎを算出する。
【００５４】
次に、ステップＳ１１０で、係数Ｂ０、Ｂｎ、γｎから、読取値ｆ（θ）の誤差関数Ｅ（θ）のフーリエ級数の係数Ａｎ、αｎを算出する。
【００５５】
次に、ステップＳ１１１で、ステップＳ１１０で得られた係数から誤差関数Ｅ（θ）を求め、これに記憶し処理を終了する。
【００５６】
このようにエンコーダ１００を自動校正することにより、以後の測定において、読取値ｆ（θ）から真の角度θを、式１を用いて正確に求めることができる。
【００５７】
本実施の形態に係るエンコーダ１００によれば、回転円盤の回転角をθとし、該回転角θから検出器上の読取範囲内の任意の角度をφとするときに、回転角θを測定するための第１の発光素子の他に、第２の発光素子を所定距離離間して配置したことにより、角度θ＋φの位置における第１の発光素子３１を用いた角度読取値ｆＩ（θ＋φ）、第２の発光素子３２を用いた角度読取値ｆＩＩ（θ＋φ）、およびそれぞれの検出器４における角度読取位置を測定することが可能になる。これらの測定値および、既知の発光素子間の距離を用いれば、角度θ＋φにおける、角度θ＋φの位置における面ぶれによる角度読取値の誤差ΔφＩを求めることができる。
【００５８】
従って、面ぶれによる角度読取値の誤差ΔφＩを考慮した読取値ｆＩ（θｊ＋φ）-ΔφＩを用いて、誤差関数を算出し、これにより自己校正を行うことができるので、高精度な自己校正が可能となる。
【００５９】
（第２の実施の形態）
図６は第２の実施の形態に係る、エンコーダ１００ａを示す。エンコーダ１００ａは、第１の実施の形態に係るエンコーダ１００と略同様の構成を有するが、光源３ａが、さらに第３の発光素子３３を有する点で異なる。第３の発光素子３３は、第１の発光素子３１、すなわち回転円盤２の中心Ｏから点Ａに下ろした垂線に関して、第２の発光素子３２と対称に配置されている。
【００６０】
第３の発光素子３３は、点Ａから、点Ｂと反対方向に角度φ離れた位置、すなわち、角度θ−φの位置の角度を読取るために用いられる。角度θ−φにおける面ぶれによる角度読取値の誤差Δ（−φＩ）も、ΔφＩと同様の手法で算出される。
【００６１】
次に、本実施の形態に係るエンコーダ１００aによる自己校正の手順を、図７を参照しながら説明する。基本的な処理は、第１の実施の形態に係る手順と同様であるので、同じ処理については引用して説明を省略する。
【００６２】
自己校正を開始すると、ステップＳ２０１では、ステップＳ１０１の処理に加えて、角度読取値ｆＩ（θｊ−φ）およびＡＣＩＣＣＩ間の距離（角度読取位置）ｘＣＩ’を取得し、これを所定回数行う。測定後、第１の発光素子３１の発光を停止する。
【００６３】
次に、ステップＳ２０２で、ステップＳ１０２と同様に第２の発光素子による測定を行う。
【００６４】
次に、ステップＳ２０３で、第３の発光素子３３を発光させ、検出器４上の読取位置ＣＣＩIＩの読取値ｆＩＩＩ（θｊ＋φ）およびＡＣＩＣＣＩＩＩ間の距離（角度読取位置）ｘｃＩＩＩを取得し、これを所定回数行う。測定後、第３の発光素子３３の発光を停止する。
【００６５】
次に、ステップＳ２０４で、ステップＳ２０１〜Ｓ２０３で取得した、角度読取値ｆＩ（θｊ），ｆＩ（θｊ＋φ），ｆＩ（θｊ−φ），ｆII（θｊ＋φ），ｆIII（θｊ−φ）および角度読取位置ｘｃI, ｘＣＩ’の平均を算出する。
【００６６】
次に、ステップＳ２０５では、ステップＳ１０４と同様に、ｈ（θｊ＋φ），ｈ（θｊ−φ）を算出して記憶する。
【００６７】
次に、ステップＳ２０６で、ステップＳ１０５と同様に、θ＋φ，θ−φの位置それぞれの、面ぶれによる角度読取値の誤差ΔφＩ，Δ（−φＩ）を算出して記憶する。
【００６８】
次に、ステップＳ２０７で、ステップＳ１０６と同様に、ｇＩ（θｊ，φ），ｇＩ（θｊ，φ）を算出して記憶する。
【００６９】
その後ステップＳ１０７〜Ｓ１１０と同様にしてステップＳ２０８〜ステップＳ２１１の処理を進め、θ＋φ、θ-φそれぞれから求められるｆＩ（θ）の誤差関数を算出する。
【００７０】
そしてステップＳ２１２で誤差関数を平均化し、ステップＳ２１３で、誤差関数を記憶して処理を終了する。
【００７１】
本実施の形態によれば、角度θ＋φおよびθ-φでの読取値における読取誤差を平均化できるので、さらに高い校正精度を実現できる。
【００７２】
以上、本発明の好ましい実施の形態について述べたが、上記の実施の形態は本発明の一例であり、これらを当業者の知識に基づいて組み合わせることが可能であり、そのような形態も本発明の範囲に含まれる。
【符号の説明】
【００７３】
２  回転円盤
３，３ａ  光源
３１  第１の発光素子
３２  第２の発光素子
３３  第３の発光素子
４  検出器
６  演算部
１００，１００ａ  ロータリエンコーダ
【図１】
2020056618.tif 000003
【図２】
2020056618.tif 000004
【図３】
2020056618.tif 000005
【図４】
2020056618.tif 000006
【図５】
2020056618.tif 000007
【図６】
2020056618.tif 000008
【図７】
2020056618.tif 000009