JP2015094668A - エンコーダ、これを用いた装置、エンコーダ信号処理方法およびエンコーダ信号処理プログラム - Google Patents
エンコーダ、これを用いた装置、エンコーダ信号処理方法およびエンコーダ信号処理プログラム Download PDFInfo
- Publication number
- JP2015094668A JP2015094668A JP2013234210A JP2013234210A JP2015094668A JP 2015094668 A JP2015094668 A JP 2015094668A JP 2013234210 A JP2013234210 A JP 2013234210A JP 2013234210 A JP2013234210 A JP 2013234210A JP 2015094668 A JP2015094668 A JP 2015094668A
- Authority
- JP
- Japan
- Prior art keywords
- phase
- predetermined time
- pulses
- pulse
- encoder
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
【課題】可動部材の速度が急変したような場合でも実際の速度変化に近いパルス幅の変化が得られるエンコーダを提供する。【解決手段】エンコーダは、スケール10との相対移動が可能であり、スケールの周期パターン11を検出して周期信号を出力するセンサ20と、周期信号の位相を第1の所定時間ごとに検出する位相検出手段32と、該位相として検出された第1および第2の位相との差に応じた生成パルス数を算出するパルス数算出手段33と、該生成パルス数を、第1の所定時間よりも長い第2の所定時間で平滑化して第1の所定時間ごとの出力パルス数を算出するパルス数平滑化手段34と、出力パルス数に応じたパルス信号を第1の所定時間内において生成するパルス生成手段35とを有する。パルス数平滑化手段は、pi=CEIL[(qi−1+ri)/c],qi=qi−1+ri−piで表される出力パルス数piを算出する。【選択図】図4
Description
本発明は、光学機器等の各種装置に用いられて、該装置内の可動部材の移動に応じたスケールとセンサとの相対移動に伴って該可動部材の位置を示す信号を出力するエンコーダに関する。
可動部材の位置や速度を検出するために使用されるエンコーダは、周期パターンが設けられたスケールと、該スケールとの相対移動に伴い、周期パターンに応じて周期的に変化する周期信号を出力するセンサとを有する。また、エンコーダには、センサから出力された周期信号からパルス信号を生成して出力するものがある。このエンコーダからのパルス信号を受け取った上位システムは、該エンコーダからのパルス信号の数や周期から、可動部材の位置や速度を算出し、該可動部材の駆動を制御する。
このようなパルス出力機能を持つエンコーダとして、特許文献1には、分解能の向上のために、内挿回路を用いて離散的に周期信号の位相を求め、単位時間毎の位相の差分に相当する数のパルスのパルス幅を単位時間ごとに平均化して出力するものが開示されている。
しかしながら、特許文献1にて開示されたエンコーダのように、単位時間毎の位相の差分に相当する数のパルスのパルス幅を平均化して出力する構成を採った場合、可動部材の速度が急変した際に、実際の速度変化以上にパルス幅が急変することがある。このため、エンコーダからのパルス信号を受け取る上位システムにおいて、パルス幅の急変が外乱として扱われたり可動部材の位置や速度が誤算出されたりして、可動部材の駆動を制御するための動作が不安定となるおそれがある。
本発明は、可動部材の速度が急変したような場合でも、可動部材の実際の速度変化に近いパルス幅の変化が得られるようにしたエンコーダを提供することを目的とする。
本発明の一側面としてのエンコーダは、周期パターンが設けられたスケールと、該スケールとの相対移動が可能であり、周期パターンを検出して該周期パターンに応じた変化周期を有する周期信号を出力するセンサと、該周期信号の位相を第1の所定時間ごとに検出する位相検出手段と、該位相として検出された第1の位相とその次に該位相として検出された第2の位相の差に応じた生成パルス数を算出するパルス数算出手段と、該生成パルス数を、第1の所定時間よりも長い第2の所定時間で平滑化して第1の所定時間ごとの出力パルス数を算出するパルス数平滑化手段と、出力パルス数に応じたパルス信号を第1の所定時間内において生成するパルス生成手段とを有する。そして、iを0を含み、第1の所定時間ごとの順番を示す自然数とし、cを正の定数とし、riをi番目に算出される生成パルス数とし、piをi番目の第1の所定時間内での出力パルス数とし、qi−1をi−1番目に保持されてi番目にriに加算されるパルス数とし、q0=0とし、CEIL[x]をx以上の最小の整数とするとき、パルス数平滑化手段が算出する出力パルス数が、
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とする。
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とする。
なお、上記エンコーダと、該エンコーダのスケールおよびセンサのうち一方が設けられ、移動が可能な可動部材と、該エンコーダから出力されるパルス信号を用いて前記可動部材の位置または移動を制御する制御手段とを有することを特徴とする装置も、本発明の他の一側面を構成する。
また、本発明の他の一側面としてのエンコーダ信号処理方法は、周期パターンが設けられたスケールと、該スケールとの相対移動が可能であり、周期パターンを検出して該周期パターンに応じた変化周期を有する周期信号を出力するセンサとを有するエンコーダに対して用いられる。該エンコーダ信号処理方法は、周期信号の位相を第1の所定時間ごとに検出し、該位相として検出された第1の位相とその次に該位相として検出された第2の位相の差に応じた生成パルス数を算出し、生成パルス数を、第1の所定時間よりも長い第2の所定時間で平滑化して第1の所定時間ごとの出力パルス数を算出し、該出力パルス数に応じたパルス信号を第1の所定時間内において生成する。そして、iを0を含み、第1の所定時間ごとの順番を示す自然数とし、cを正の定数とし、riをi番目に算出される生成パルス数とし、piをi番目の第1の所定時間内での出力パルス数とし、qi−1をi−1番目に保持されてi番目にriに加算されるパルス数とし、q0=0とし、CEIL[x]をx以上の最小の整数とするとき、生成パルス数の平滑化により算出される出力パルス数が、
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とする。
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とする。
さらに、本発明の他の一側面としてのエンコーダ信号処理プログラムは、周期パターンが設けられたスケールと、該スケールとの相対移動が可能であり、周期パターンを検出して該周期パターンに応じた変化周期を有する周期信号を出力するセンサとを有するエンコーダにおいて用いられるコンピュータプログラムである。該プログラムは、コンピュータに、周期信号の位相を第1の所定時間ごとに検出させ、該位相として検出された第1の位相とその次に該位相として検出された第2の位相の差に応じた生成パルス数を算出させ、該生成パルス数を、第1の所定時間よりも長い第2の所定時間で平滑化して第1の所定時間ごとの出力パルス数を算出させ、該出力パルス数に応じたパルス信号を第1の所定時間内において生成させる。そして、iを0を含み、第1の所定時間ごとの順番を示す自然数とし、cを正の定数とし、riをi番目に算出される生成パルス数とし、piをi番目の第1の所定時間内での出力パルス数とし、qi−1をi−1番目に保持されてi番目にriに加算されるパルス数とし、q0=0とし、CEIL[x]をx以上の最小の整数とするとき、コンピュータに生成パルス数の平滑化により算出させる出力パルス数が、
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とする。
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とする。
本発明によれば、第1および第2の位相との差(移動量)に応じた生成パルス数を平滑化して第1の所定時間での出力パルス数を算出するので、可動部材の速度が急変したような場合でも実際の可動部材の速度変化に近いパルス幅の変化が得られる。これにより、該エンコーダを備えた装置において、可動部材の駆動の安定した制御を行うことができる。
以下、本発明の実施例について図面を参照しながら説明する。
図1には、本発明の実施例1であるエンコーダの構成を示している。エンコーダは、トラック11が設けられたスケール10と、発光部22および受光部21を有するセンサ20と、信号処理部30とにより構成されている。本実施例のエンコーダは、スケール10とセンサ20との直線方向での相対移動量(位置)に応じた2相パルス信号を信号処理部30から出力する反射型光学式リニアエンコーダである。
以下、本実施例のエンコーダを搭載した装置において、該エンコーダによる位置または移動(速度)の制御対象である可動部材にスケール10が取り付けられ、装置の不動部(固定部)にセンサ20が取り付けられている場合について説明する。つまり、センサ20に対してスケール10が移動し、可動部材に取り付けられたスケール10の位置を検出する場合について説明する。ただし、可動部材にセンサを、不動部にスケールをそれぞれ取り付けてセンサがスケールに対して移動するようにして、センサの位置を検出するようにしてもよい。
図2に詳しく示すように、スケール10のトラック11には、スケール10とセンサ20の相対移動方向に延びる周期パターンが設けられている。各周期パターンには、反射部(図中の黒色の部分)と非反射部(図中の白抜き部分)とが、該相対移動方向に周期的に交互に配置されている。トラック11、つまりは周期パターンの周期(ピッチ)は、P10である。また、スケール10とセンサ20の相対移動方向(周期パターンの周期方向)を、以下の説明では位置検出方向という。
また、図1に示すように、センサ20の発光部22と受光部21とは同一平面上に配置されており、発光部22からトラック11に向けて照射された光のうち反射部にて反射した光を受光部21で受光する。
受光部21には、図3に示すように、複数の受光素子21a,21b,21c,21dが周期パターンの周期P10の半分のピッチP10/2で位置検出方向に並んで配置されている。具体的には、4つの受光素子21a,21b,21c,21dが循環的に(図3では4回循環するように)位置検出方向に並んでいる。スケール10がセンサ20に対して移動すると(スケール10とセンサ20とが相対移動すると)、各受光素子にて受光される反射光の強度が変化する。このとき、4つの受光素子21a,21b,21c,21dの出力はそれぞれ、センサ20内でA(+),B(+),A(−),B(−)として扱われる。そして、A=A(+)−A(−)およびB=B(+)−B(−)によって、互いに位相が異なり、トラック11の周期パターン(の周期P10)に応じた変化周期を有する2相の擬似正弦波信号(以下、周期信号という)A,Bが生成される。この2相の周期信号A,Bは、信号処理部30に出力される。
また、本実施例では、発光部22に用いられている光源はLED等の発散光光源であり、前述したように発光部22と受光部21とが同一平面上に配置された反射光学系が構成されている。このため、発光部22からトラック11に照射され、ここで反射した光により受光部21上に投影される周期パターンは2倍に拡大される。したがって、受光部21上での位置検出方向におけるP10/2の幅は、トラック11上ではP10/4に相当する。つまり、スケール10がセンサ20に対してP10だけ移動すると、受光部21上に投影される周期パターンは2×P10だけ移動する。2×P10は4つの受光素子21a,21b,21c,21d1からなる受光素子群の幅と同じであるため、スケール10のセンサ20に対するP10の移動によって1周期の2相周期信号A,Bが生成および出力される。また、2相周期信号A,Bの検出位置の重心はそれぞれ、受光部21上のB(+)の受光素子21bとA(−)の受光素子21cに相当し、これらは相対的にP10/2ずれているため、位相に換算すると、2相周期信号A,Bはπ/2だけずれていることになる。
信号処理部30は、図4に示すように、ADコンバータ31と、位相検出処理部32と、パルス数算出部33と、パルス数平滑化部34と、パルス生成部35と、パルス幅平滑化部36とにより構成されている。信号処理部30は、センサ20からの出力信号(2相周期信号A,B)を用いてパルス生成処理を行い、生成した2相パルス信号を出力する。
図8には、信号処理部30が行うパルス生成処理(エンコーダ信号処理方法)の流れをフローチャートに示しており、以下の説明におけるステップ1〜6が該フローチャート中のS1〜S6に相当する。
信号処理部30において、ADコンバータ31は、センサ20から出力された2相周期信号をサンプリングしてデジタル信号に変換する(ステップ1)。ADコンバータ31は、第1の所定時間ごとに動作し、センサ20からの出力信号を離散的にデジタル信号に変換する。以下の説明では、この第1の所定時間を時間tとして説明する。
2相周期信号(擬似正弦波信号)A,Bはそれぞれ、位相をθとすると、sinθおよびcosθとして表される。このため、これらに対してarctan演算を行うことにより、θ(0≦θ<2π)を求めることができる。位相検出処理部32は、ADコンバータ31によりサンプリングされた2相周期信号A,Bのそれぞれに対してarctan演算を行い、これらの位相を求める(ステップ2)。前述したように2相周期信号はADコンバータ31によって時間tごとにサンプリングされるため、位相検出処理部32も、時間tごとに新たな位相を求める。以下、パルス生成処理の開始時からi番目(i回目)にサンプリングされた2相周期信号A,Bの位相をθiとして説明する。ただし、iは0を含み、時間tごとの順番を示す自然数(非負整数ともいう)であり、0≦θi<2πとする。
パルス数算出部33は、今回(最新のi番目にサンプリングされた2相周期信号A,Bから)求められた位相θiと、前回(i−1番目にサンプリングされた2相周期信号A,Bから)求められた位相θi−1との差である位相差を移動量として求める(ステップ3)。位相θi−1が第1の位相に相当し、その次に検出される位相θiが第2の位相に相当する。
そして、パルス数算出部33は、該移動量から、求められているパルス分解能に応じて、生成するパルス信号の数である生成パルス数を算出する(ステップ4)。つまり、上記位相差から求められた移動量に対応した生成パルス数を算出する。この処理も位相が更新されるごと(時間tごと)に行われ、最新の位相がθi+1に更新された際にはθi+1とθiとの差が移動量として算出される。
本実施例では、θiとθi−1との位相差を以下の式(1)に示すように、−πから+πの範囲に正規化し、それをΔθiと表す。ただし、θ0=0とし、MOD(x,y)はxを被除数とし、yを除数としたときの剰余を表す。
そして、Δθiから、求められているパルス分解能に応じた生成パルス数riを求める。Iを内挿数とすると、生成パルス数は2πあたりIパルスとなるため、riは以下の式(2)で求められる。なお、2πの位相変化はP10の変位に相当するため、このときパルス分解能はP10/Iとなる。
ただし、位相θiの分解能がパルス分解能に対して高い場合は、端数が生じてriが整数値とならないことがある。この場合は、θiをパルス分解能にあわせて丸めたり、端数を記憶して次回のri+1の算出時に端数を加算したりして対処することができる。
次にパルス数平滑化部34は、t時間ごとに更新される生成パルス数riから、t時間内(第1の所定時間内)に出力するパルス信号の数である出力パルス数piを求める(ステップ5)。本実施例では、t時間の間のスケール10の移動量に相当する生成パルス数riを時間tよりも長い時間である第2の所定時間で平滑化して出力する。具体的には、パルス数平滑化部34は、図5(A)に示す処理を行う。すなわち、今回(i番目)の生成パルス数riを入力とし、今回の出力パルス数piを出力とするとき、今回の生成パルス数riと前回(i−1番目)の出力パルス数pi−1との和の半分を出力パルス数piとする。なお、p0=0とし、Z−1は遅延を表す。
このような処理を行うパルス数平滑化部34は、図5(B)に示すように、加算部341と、シフト部(除算手段)342と、記憶部343とにより構成することができる。処理の開始時には、記憶部343には初期値0が記憶されている。加算部341に初回の生成パルス数r1が入力されると、該加算部341は、この入力された生成パルス数r1と記憶部343に記憶された初期値0とを加算する。続いて、シフト部342は、加算部341での加算結果であるr1を1ビット右シフトし、該シフトの結果にr1の最下位ビットを加算した結果を出力パルス数p1として出力する。ここで、1ビット右シフトの演算は2を除数とした除算と同義であり、riの最下位ビットは2を除数とした除算の剰余である。また、シフト部342は、加算結果r1から出力パルス数p1を減じた値を記憶部343に記憶する。例えばr1が8(偶数)であれば、出力パルス数p1として4が出力され、記憶部343には4が記憶される。また、r1が9(奇数)であれば、出力パルス数p1として5が出力され、記憶部343には4が記憶される。
パルス数平滑化部34は、2回目以降の生成パルス数ri(i≧2)が入力されたときも同様の処理を行う。パルス数平滑化部34が行う処理(演算)は、以下の式(3),(4)により表される。ただし、piはi番目に算出される出力パルス数であり、qi−1はi−1番目に記憶部343に記憶(保持)されてi番目にriに加算されるパルス数である。q0=0である。なお、qiは、i番目までの生成パルス数の積算値とi番目までの出力パルス数との差分に相当する。また、cは正の定数であり、CEIL(x)はx以上の最小の整数を表す天井関数である。
pi=CEIL[(qi−1+ri)/c] ・・・(3)
qi=qi−1+ri−pi ・・・(4)
続いて、パルス生成部35は、パルス数平滑化部34により算出された出力パルス数piに対応する数の2相パルス信号を生成する(ステップ6)。パルス生成部35は、図6に示すように、符号分離部351と、加算部352と、パルス生成判定部353と、記憶部354と、カウンタ355と、パルス変換部356とにより構成されている。符号分離部351に出力パルス数piが入力されると、該符号分離部351は、パルス信号の出力方向を検出する。カウンタ355は出力する2相パルス信号の状態と対応する2ビット(初期値は0)のバイナリカウンタであり、検出された符号が正であればカウンタ355の値を1増加し、検出された符号が負であればカウンタ355の値を1減少させる。また、出力パルス数piが0であればカウンタ355の値は増減されない。そして、符号分離部351は、出力パルス数piの絶対値を加算器352に入力する。
pi=CEIL[(qi−1+ri)/c] ・・・(3)
qi=qi−1+ri−pi ・・・(4)
続いて、パルス生成部35は、パルス数平滑化部34により算出された出力パルス数piに対応する数の2相パルス信号を生成する(ステップ6)。パルス生成部35は、図6に示すように、符号分離部351と、加算部352と、パルス生成判定部353と、記憶部354と、カウンタ355と、パルス変換部356とにより構成されている。符号分離部351に出力パルス数piが入力されると、該符号分離部351は、パルス信号の出力方向を検出する。カウンタ355は出力する2相パルス信号の状態と対応する2ビット(初期値は0)のバイナリカウンタであり、検出された符号が正であればカウンタ355の値を1増加し、検出された符号が負であればカウンタ355の値を1減少させる。また、出力パルス数piが0であればカウンタ355の値は増減されない。そして、符号分離部351は、出力パルス数piの絶対値を加算器352に入力する。
本実施例では、出力パルス数の算出周期に対して、n倍(nは自然数)の周期でパルス生成の判定を行う。このため、加算器352は、t/n時間ごとに記憶部354の値と出力パルス数piの絶対値とを加算する。ただし、記憶部354は、出力パルス数piが入力されるごとに、つまりは時間tごとに0にリセットされる。
パルス生成判定部353は、加算部352の出力がn以上か否かを判定し、n以上であれば上述したように符号に応じてカウンタ355の値を1増加または1減少させ、加算器352の出力からnだけ減じた値を記憶部354に記憶させる。加算器352の出力がn以上でなければ、加算器352の出力をそのまま記憶部354に記憶させる。
ところで、時間t内で出力するパルス数をpとするとき、時間t/pごとにパルス信号を生成することが理想的である。しかし、パルス生成判定部353においてパルス信号を生成するか否かの判定は時間t/nごとに離散的にしか行えない。そこで、本実施例では、パルス生成判定部353を、判定時に時間m×t/pを超えていればパルス信号を生成するように構成している。ただし、mは時間t内で出力するパルス数のうち既に生成したパルス数を表す。これは判定回数をjとして、jが以下の式(5)を満たしたタイミングでパルス信号を生成していくことを意味する。
したがって、式(5)に示される判定を回路に実装すればよいのであるが、除算器は乗算器と比較して回路規模が大きく、また乗算器は加算器と比較して回路規模が大きい。そこで、本実施例では、式(5)と等価である以下の式(6)に示される判定を回路に実装し、式(5)の乗算を全て加算器で実現できるように構成している。
記憶部354に記憶されている値が式(6)の左辺に相当し、加算器352の出力が式(6)の右辺に相当する。そして、式(6)は、k=j,j+1として、以下の式(7)に示される判定を2回行うことと同義である。kの値は判定ごとに1ずつ増加するため、同じkの値の判定を省略することにより、パルス生成判定部353では1回の判定のみを行う。
カウンタ355は、前述したように2ビットのバイナリカウンタであるので、上位ビットをCOUNTER[1]、下位ビットをCOUNTER[0]としてパルス変換部356において以下の式(8),(9)示す演算を行う。ただし、XORは排他的論理和を示す。
DA1=COUNTER[1] XOR COUNTER[0] ・・・(8)
DB1=COUNTER[1] ・・・(9)
このようにして求めたDA1,DB1が2相パルス信号である。
DA1=COUNTER[1] XOR COUNTER[0] ・・・(8)
DB1=COUNTER[1] ・・・(9)
このようにして求めたDA1,DB1が2相パルス信号である。
i,ri,pi,DA1およびDB1の対応関係を、図7を例として説明する。図7は、iとriが与えられたときのpi、DA1およびDB1の状態を表している。本実施例では、生成パルス数riを平滑化しているため、riにおいて20や15といった極大値に対応する出力パルス数piの値はそれぞれ12や10となり、それらとその前後の値との差は小さくなっている。また、ri=0となるi≧7の範囲においても、piはすぐに0とならず、0に向かって徐々に減少する。これらにより、本実施例のエンコーダは、可動部材の実際の速度変化に近いパルス数の変化(つまりはパルス幅の変化)を示すようにパルス信号を生成している。
本実施例では、パルス生成部35が出力パルス数の算出周期に対してn倍(nは自然数)の周期でパルス生成の判定を行う場合について説明した。しかし、必ずしもnが自然数である必要はない。nが自然数でない場合にはパルス生成の判定回数がCEIL(n)回またはCEIL(n)−1回となるため、それに応じて判定条件を修正すればよい。ただし、算出周期を自然数倍とすることで、回路を小型化することができるというメリットが得られる。
さらに、本実施例では、図4に示したパルス幅平滑化部36が、DA1またはDB1が変化する時刻の間隔を用いてDA1およびDB1のパルス幅(DA1,DB1が変化する時間間隔)を平滑化することにより、2相パルス信号DA2,DB2を出力する。具体的には、kを自然数とし、k番目にDA1またはDB1が変化した時刻をskとする。そしてkが2以上の場合において、k番目とk−1番目のDA1またはDB1が変化した時刻の差をΔskとし、平滑化後のk番目とk−1番目のパルス変化の時刻差をdkとし、平滑化後のk番目にパルス信号を変化させる時刻をukとする。また、Δs1=∞、d1=0およびu1=s1として、以下の式(10),(11),(12)からukを求める。
ここで、Δskはパルス信号が変化した時刻の差であるため、パルス幅に相当する。したがって、(Δsk+Δsk−1)/2を求めることでパルス幅が平滑化される。
ただし、これだけでは平滑化前のパルス信号が変化する時刻skと平滑化後のパルス信号が変化する時刻ukとの時刻差が大きくなることがある。例えば、可動部材が静止状態から移動を開始したときのように、Δsk−1がΔskに対して非常に大きい場合には、単純に平均すると、平均した値もΔskに対して非常に大きくなる。そこで、本実施例では、3Δsk<Δsk−1となる場合はdk=2Δskとして、平滑化前のパルス信号が変化する時刻skと平滑化後のパルス信号が変化する時刻ukとの時刻差の拡大を抑制している。
なお、パルス幅平滑化部36において行われる演算はこれに限定されるものではなく、3つ以上の時刻差を使って時刻ukを求めてもよい。また、2つの時刻差が連続していなくてもよい。また、パルス幅を平滑化する効果が得られる条件であれば、本実施例における3Δsk<Δsk−1といった制約条件を変更してもよい。
そして、パルス幅平滑化部36は、時刻skでの2相パルス信号DA1,DB1の変化と同じように時刻ukに2相パルス信号DA2,DB2を変化させる。例えば、時刻skにDA1が立ち上がった場合は時刻ukにDA2を立ち上げる。パルス幅平滑化部36は、このようにして生成したパルスDA2,DB2を最終的なパルス出力とする。
パルス幅平滑化部36におけるDA1,DB1からDA2,DB2を生成する処理を、図7を例として説明する。表1には、図7に示した時刻sk,uk,時刻差Δsk,dkおよび2相パルス信号DA1,DB1の数値を示す。DA1,DB1が与えられると、パルス幅平滑化部36は、上述した式(10)〜(12)を用いてDA2,DB2を変化させる時刻ukを求め、2相パルス信号DA2,DB2を生成する。図7において時刻5t前後に特に示されるように、DA2,DB2はDA1,DB1と比較して、パルス幅が変化する境界部分において、パルス幅が平滑化されている。
なお、実施例1は反射型光学式リニアエンコーダについて説明したが、実施例1にて説明した処理(エンコーダ信号処理方法)と同様の処理は、透過型光学式エンコーダや、磁気式 静電容量式等の光学式以外のエンコーダや、ロータリエンコーダにも適用できる。言い換えれば、上記処理は、離散的に位相を求め、位相の変化量をパルス信号として出力するエンコーダであれば適用することができる。
また、実施例1では、パルス数算出部33において位相の差分からパルス数を求め、それ以降の処理を行う場合について説明した。しかし、位相の差分のまま処理を行ってパルス信号の出力時にパルス数を求めるようにしてもよい。これにより、パルス信号の出力時に端数を繰り越す等の処理が必要となるが、より高精度に平滑化を行うことができる。
さらに、実施例1では、パルス数平滑化部34において出力パルス数を算出する際に2を除数とする除算を行う場合について説明したが、除数は任意に設定することができる。ただし、特に除数が2のべき乗である場合には、回路を小さくすることができるというメリットがある。
また、信号処理部30をCPU,MPU等のコンピュータにより構成し、図8にフローチャートで示したパルス生成処理を該信号処理部30がコンピュータプログラム(エンコーダ信号処理プログラム)に従って行うようにしてもよい。
図9には、上述した実施例1のエンコーダを搭載した装置の一例として、デジタルスチルカメラやビデオカメラ等の撮像装置(光学機器)を示している。この撮像装置では、エンコーダをレンズ鏡筒内での光学素子の位置を検出するために用いている。
図9において、10,20は実施例1のエンコーダを構成するスケールおよびセンサを示す。また、44は実施例1のエンコーダを構成する信号処理部30を含み、撮像装置のシステム全体を制御する制御部(CPU)を示す。スケール10は、レンズ鏡筒内において光軸回りで回転する円筒形状のカム環50の内周面に取り付けられている。カム環50は、不図示のアクチュエータによって回転駆動される。
レンズ鏡筒内には、撮影光学系41が収容されている。撮影光学系41は、カム環50が回転することで、該カム環50に形成されたカムによって光軸方向に移動可能な可動部材としての光学素子(例えば、変倍レンズやフォーカスレンズ)42を含む。
45は撮影光学系41により形成された被写体像を光電変換するイメージセンサ(撮像素子)であり、CCDセンサやCMOSセンサ等の光電変換素子により構成されている。
光学素子42を移動させるためにカム環50が回転すると、エンコーダによりカム環50の回転位置(つまりは光学素子42の位置)が検出され、その情報が制御部44に出力される。
制御部44は、その回転位置の情報に基づいてカム環50を回転させるアクチュエータを駆動し、光学素子42の位置や移動(速度)を制御する。
なお、実施例1のエンコーダは、上述した撮像装置に限らず、プリンタ(光学機器)における印字ヘッドや給紙ローラの位置検出、複写機(光学機器)の感光ドラムの回転位置検出をはじめ、ロボットアームの位置検出等、様々な装置に適用することができる。
以上説明した各実施例は代表的な例にすぎず、本発明の実施に際しては、各実施例に対して種々の変形や変更が可能である。
可動部材の速度変化に対して安定したパルス信号を出力可能なエンコーダを提供できる。
10 スケール
11 トラック
20 センサ
30 信号処理部
11 トラック
20 センサ
30 信号処理部
Claims (8)
- 周期パターンが設けられたスケールと、
該スケールとの相対移動が可能であり、前記周期パターンを検出して該周期パターンに応じた変化周期を有する周期信号を出力するセンサと、
前記周期信号の位相を第1の所定時間ごとに検出する位相検出手段と、
前記位相として検出された第1の位相とその次に前記位相として検出された第2の位相の差に応じた生成パルス数を算出するパルス数算出手段と、
前記生成パルス数を、前記第1の所定時間よりも長い第2の所定時間で平滑化して前記第1の所定時間ごとの出力パルス数を算出するパルス数平滑化手段と、
前記出力パルス数に応じたパルス信号を前記第1の所定時間内において生成するパルス生成手段とを有し、
iを0を含み、前記第1の所定時間ごとの順番を示す自然数とし、cを正の定数とし、riをi番目に算出される前記生成パルス数とし、piをi番目の前記第1の所定時間内での前記出力パルス数とし、qi−1をi−1番目に保持されてi番目にriに加算されるパルス数とし、q0=0とし、CEIL[x]をx以上の最小の整数とするとき、前記パルス数平滑化手段が算出する前記出力パルス数が、
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とするエンコーダ。 - パルス数平滑化手段は、
qi−1の値を記憶する記憶手段と、
qi−1+riに相当する演算を行う加算手段と、
(qi−1+ri)/cに相当する演算を行うとともにCEIL[(qi−1+ri)/c]の値を出力する除算手段とを有することを特徴とする請求項1に記載のエンコーダ。 - 前記正の定数であるcは、2のべき乗であることを特徴とする請求項1または2に記載のエンコーダ。
- 前記パルス信号が変化する時間間隔を平滑化するパルス幅平滑化手段を有することを特徴とする請求項1から3のいずれか一項に記載のエンコーダ。
- 請求項1から4のいずれか一項に記載のエンコーダと、
前記スケールまたは前記センサが設けられ、移動が可能な可動部材と、
前記エンコーダから出力されるパルス信号を用いて前記可動部材の位置または移動を制御する制御手段とを有することを特徴とする装置。 - 前記可動部材として光学素子を有する光学機器であることを特徴とする請求項5に記載の装置。
- 周期パターンが設けられたスケールと、該スケールとの相対移動が可能であり、前記周期パターンを検出して該周期パターンに応じた変化周期を有する周期信号を出力するセンサとを有するエンコーダに対して用いられる信号処理方法であって、
前記周期信号の位相を第1の所定時間ごとに検出し、
前記位相として検出された第1の位相とその次に前記位相として検出された第2の位相の差に応じた生成パルス数を算出し、
前記生成パルス数を、前記第1の所定時間よりも長い第2の所定時間で平滑化して前記第1の所定時間ごとの出力パルス数を算出し、
前記出力パルス数に応じたパルス信号を前記第1の所定時間内において生成し、
iを0を含み、前記第1の所定時間ごとの順番を示す自然数とし、cを正の定数とし、riをi番目に算出された前記生成パルス数とし、piをi番目の前記第1の所定時間内での前記出力パルス数とし、qi−1をi−1番目に保持されてi番目にriに加算されるパルス数とし、q0=0とし、CEIL[x]をx以上の最小の整数とするとき、
前記生成パルス数の平滑化により算出される前記出力パルス数が、
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とするエンコーダ信号処理方法。 - 周期パターンが設けられたスケールと、該スケールとの相対移動が可能であり、前記周期パターンを検出して該周期パターンに応じた変化周期を有する周期信号を出力するセンサとを有するエンコーダにおいて用いられるコンピュータプログラムであって、コンピュータに、
前記周期信号の位相を第1の所定時間ごとに検出させ、
前記位相として検出された第1の位相とその次に前記位相として検出された第2の位相の差に応じた生成パルス数を算出させ、
前記生成パルス数を、前記第1の所定時間よりも長い第2の所定時間で平滑化して前記第1の所定時間ごとの出力パルス数を算出させ、
前記出力パルス数に応じたパルス信号を前記第1の所定時間内において生成させ、
iを0を含み、前記第1の所定時間ごとの順番を示す自然数とし、cを正の定数とし、riをi番目に算出された前記生成パルス数とし、piをi番目の前記第1の所定時間内での前記出力パルス数とし、qi−1をi−1番目に保持されてi番目にriに加算されるパルス数とし、q0=0とし、CEIL[x]をx以上の最小の整数とするとき、
前記コンピュータに前記生成パルス数の平滑化により算出させる前記出力パルス数が、
pi=CEIL[(qi−1+ri)/c]
qi=qi−1+ri−pi
を満足することを特徴とするエンコーダ信号処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013234210A JP2015094668A (ja) | 2013-11-12 | 2013-11-12 | エンコーダ、これを用いた装置、エンコーダ信号処理方法およびエンコーダ信号処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013234210A JP2015094668A (ja) | 2013-11-12 | 2013-11-12 | エンコーダ、これを用いた装置、エンコーダ信号処理方法およびエンコーダ信号処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015094668A true JP2015094668A (ja) | 2015-05-18 |
Family
ID=53197160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013234210A Pending JP2015094668A (ja) | 2013-11-12 | 2013-11-12 | エンコーダ、これを用いた装置、エンコーダ信号処理方法およびエンコーダ信号処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015094668A (ja) |
-
2013
- 2013-11-12 JP JP2013234210A patent/JP2015094668A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5932285B2 (ja) | エンコーダおよびこれを備えた装置 | |
JP6071181B2 (ja) | エンコーダおよびこれを備えた装置 | |
JP5968062B2 (ja) | 位置検出エンコーダおよびこれを用いた装置 | |
US9476737B2 (en) | Encoder, apparatus including the encoder, encoder calculation method and storage medium storing encoder calculation program | |
EP2848898B1 (en) | Encoder and apparatus using encoder | |
JPWO2011074103A1 (ja) | ロータリエンコーダ及びそれを有する回転機構 | |
US8912929B2 (en) | Correction value derivation apparatus, displacement amount derivation apparatus, control apparatus, and correction value derivation method | |
JP6150462B2 (ja) | 位置検出エンコーダおよびこれを用いた装置 | |
US10215596B2 (en) | Position detection apparatus, lens apparatus, image pickup system, machine tool apparatus, exposure apparatus, position detection method, and non-transitory computer-readable storage medium which are capable of detecting reference position with high accuracy | |
US10393550B2 (en) | Encoder and apparatus having the same | |
JP6289192B2 (ja) | 位置検出装置及びそれを有するレンズ装置及び光学操作装置 | |
JP2013234852A (ja) | 位置検出エンコーダおよびこれを用いた装置 | |
JP2015094668A (ja) | エンコーダ、これを用いた装置、エンコーダ信号処理方法およびエンコーダ信号処理プログラム | |
JP2011011504A5 (ja) | ||
US11079223B2 (en) | Absolute rotary encoder and apparatus | |
JP2015094682A (ja) | エンコーダ、エンコーダを備えた装置、位置検出方法および位置検出処理プログラム | |
JP5984364B2 (ja) | 光学式エンコーダおよびこれを備えた装置 | |
JP2016136131A (ja) | 位置検出装置、レンズ装置、撮像システム、工作装置、露光装置、位置検出方法、プログラム、記憶媒体 | |
JP6432129B2 (ja) | 角度検出装置および角度検出方法 | |
JP7120535B2 (ja) | 反射型フォトセンサを用いた位置検出装置および位置検出方法 | |
JP2016080547A (ja) | 位置制御装置 |