JP2011180073A - エンコーダパルス生成装置、エンコーダパルス生成方法、及び、コンピュータプログラム - Google Patents

エンコーダパルス生成装置、エンコーダパルス生成方法、及び、コンピュータプログラム Download PDF

Info

Publication number
JP2011180073A
JP2011180073A JP2010046643A JP2010046643A JP2011180073A JP 2011180073 A JP2011180073 A JP 2011180073A JP 2010046643 A JP2010046643 A JP 2010046643A JP 2010046643 A JP2010046643 A JP 2010046643A JP 2011180073 A JP2011180073 A JP 2011180073A
Authority
JP
Japan
Prior art keywords
angle
data
encoder
pulse
pulse signal
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
Application number
JP2010046643A
Other languages
English (en)
Inventor
Hiroyuki Horii
博之 堀井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2010046643A priority Critical patent/JP2011180073A/ja
Publication of JP2011180073A publication Critical patent/JP2011180073A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Transmission And Conversion Of Sensor Element Output (AREA)

Abstract

【課題】 エンコーダで得られたアナログエンコーダ信号に基づいて検出された角度に応じて生成されるエンコーダパルス信号のエッジが乱れることを容易に且つ確実に抑制する。
【解決手段】 擬似正弦波として入力されたアナログエンコーダ信号102、104に基づいて、エンコーダで検出した角度を示す角度データ152を導出し、導出した角度データ152に基づいてエンコーダパルスのデータを順次生成する。この際に、出力したエンコーダパルスのデータをラッチしておく。そして、逓倍設定値に基づくエンコーダパルスの変化点からα度の範囲では、それまでにラッチしておいたデータを使用し、その他の角度の範囲では、生成したデータを使用する。
【選択図】 図1

Description

本発明は、エンコーダパルス生成装置、エンコーダパルス生成方法、及び、コンピュータプログラムに関し、特に、測定対象物の回動の角度を検出するために用いて好適なものである。
従来から、エンコーダで得られたアナログの信号(以下の説明では、この信号を、必要に応じてアナログエンコーダ信号と称する)より、エンコーダの測定対象物(モータ等)の角度情報や位置情報を検出する方法としていくつかの手法が提案されている。
特許文献1では、AD変換されたアナログエンコーダ信号より、arctan(逆正接)を計算して角度情報を得る方法が開示されている。
特許文献2では、アナログエンコーダ信号をAD変換した後にノイズの影響を抑えるためにヒステリシスを与える方法が開示されている。
特開平8−145719号公報 特開平8−201111号公報
しかしながら、特許文献1では、測定対象物の角度情報を計算することは開示されているが、角度情報の利用の仕方は開示されていない。特許文献1に記載の技術では、AD変換したアナログエンコーダ信号より、arctanを計算して角度情報を得る際に、アナログエンコーダ信号のノイズによって、計算した角度情報にもノイズが含まれている。モータ等が低速で駆動している時には、アナログエンコーダ信号の角速度が遅くなるため、角度値の進みが遅くなり、この結果、アナログエンコーダ信号のノイズに対して角度値のノイズを抑えることが難しくなってきている。また、2相のインクリメンタルエンコーダで発生したパルスを角度情報より単純に生成しようとすると、特に、モータ等が低速で駆動している時には、角度情報の進み方が遅く、生成したエンコーダパルスのエッジに、ばたつきが発生してしまう。このエンコーダエッジにばたつきが発生すると、2相のエンコーダパルスより進行方向、速度、及び位置を計算しているエンコーダカウンタにおいて、速度カウンタが速度値を誤検出してしまう虞がある。エンコーダカウンタが速度値を誤検出すると、この速度値を元にモータ等のメカトロ系を制御する際に、制御値を誤ってしまうことになる。すなわち、エンコーダエッジにばたつきが発生すると、メカトロ系の制御を適切に行うことが困難になる。
特許文献2に記載の技術は、前述したエンコーダで発生したパルスのエッジにばたつきが生じることを防止した従来技術である。特許文献2では、アナログエンコーダ信号をAD変換した後、内挿処理を行う前に、AD変換した値に対してヒステリシスをかける方法が開示されている。
アナログエンコーダ信号は、元々2相の擬似正弦波であり、2相のエンコーダ信号の角度により信号の傾きが変る。すなわちアナログエンコーダ信号の微分信号が一定ではなく、微分信号もまた擬似正弦波(90度位相がずれる)である。このために、アナログエンコーダ信号に対してヒステリシスをかけた場合、エンコーダの角度によりヒステリシスの効果が変ってしまう。さらに、微分信号が"0"の近辺になる際にヒステリシスをかけると、アナログエンコーダ信号の値が正しく後段の内挿処理に伝わらなくなってしまう虞がある。このために、特許文献2に記載の技術では、擬似正弦波で入力されたアナログエンコーダ信号の領域によってヒステリシスの効果が変ってしまうことと、一部領域(微分信号が"0"の近辺のところ)において、正しく内挿処理が行われない、という問題があった。
また、エンコーダパルスのエッジのばたつきを抑える方法として、2値信号に対するフィルターを構成する方法が考えられる。この方法では、エンコーダパルスのエッジに対して数クロック程度のノイズであれば、十分にノイズの除去が可能である。しかしながら、モータ等が低速で駆動している時に、アナログエンコーダ信号より得た角度情報よりエンコーダパルスを生成すると、エンコーダの角速度が非常に低速になるため、エンコーダパルスのエッジのノイズ分が数10クロックと大きくなってしまう。このために、ノイズフィルターとして非常に大きなものを必要とし、現実的ではないと共に、フィルターによる信号の遅延が大きくなってしまう。
本発明は、このような問題点に鑑みてなされたものであり、エンコーダで得られたアナログの信号に基づいて検出された角度に応じて生成されるパルス信号のエッジが乱れることを容易に且つ確実に抑制することを目的とする。
本発明のエンコーダパルス生成装置は、測定対象物の回動の角度を検出するエンコーダから出力された信号に基づいて、当該角度を検出する検出手段と、前記角度に基づいて、角度に応じて値が変化するパルス信号のデータを生成する生成手段と、出力されるパルス信号のデータをラッチするラッチ手段と、前記生成されたパルス信号のデータ、及び、前記ラッチされたパルス信号のデータの何れかを、出力するデータとして選択する選択手段と、を有し、前記選択手段は、前記パルス信号の値を変更する角度閾値から、設定された範囲の角度までは、前記ラッチされたパルス信号のデータを選択し、当該範囲と異なる角度については、前記生成されたパルス信号のデータを選択することを特徴とする。
本発明によれば、パルス信号のデータの生成に際し、角度閾値から、設定された範囲の角度までを不感帯にした。したがって、エンコーダで得られたアナログの信号に基づいて検出された角度に応じて生成されるパルス信号のエッジが乱れることを容易に且つ確実に抑制することができる。
エンコーダパルス生成装置の構成を示すブロック図である。 生エンコーダデータを示す図である。 領域分割部、arctan計算部、及び角度計算部の処理を説明する図である。 第1の実施形態に係るエンコーダパルスの生成方法を説明する図である。 2相のエンコーダパルスを示す図である。 第1の実施形態に係る2相パルス生成部の詳細な構成を示す図である。 ノイズを含む角度値と、A相のエンコーダパルスを示す図である。 第2の実施形態に係る2相パルス生成部の詳細な構成を示す図である。 第3の実施形態に係るエンコーダパルスの生成方法を説明する図である。
以下に、本発明の実施形態を、図面に基づいて詳細に説明する。
(第1の実施形態)
まず、本発明の第1の実施形態について説明する。
図1は、エンコーダパルス生成装置の構成の一例を示すブロック図である。エンコーダパルス生成装置は、擬似正弦波としてエンコーダから入力されたアナログエンコーダ信号に基づいてarctanの計算を行い、その結果に基づいて角度値を計算して、任意の角度間隔により2相のエンコーダパルスを生成する。エンコーダは、例えば、モータの回動の角度を検出するものである。エンコーダは、公知の技術で実現できるので、ここでは、その詳細な説明を省略する。
図1において、AD変換器100は、A相及びB相の2相のアナログエンコーダ信号102、104(擬似正弦波)を、AD変換するためのものである。ADIF110は、AD変換器100を制御し、AD変換器100でデジタル化された2相の生エンコーダデータ112(A相)、114(B相)を読み出すためのものであり、AD変換器100とのインターフェース部である。前処理部120は、AD変換された2相の生エンコーダデータ112、114のノイズ分を、デジタルフィルターにより除去する。さらに、前処理部120は、擬似正弦波の最大値と最小値とを検出してその中心値を計算する。そして、前処理部120は、計算した中心値からのオフセット分を2相の生エンコーダデータ112、114から除去して、2相の生エンコーダデータ112、114を2の補数で表現された2相の正負エンコーダデータ122(A相)、124(B相)に変換する。
領域分割部130は、A相、B相の正負エンコーダデータ122、124について、符号と絶対値の大きさとを比較し、擬似正弦波で入力された2相のアナログエンコーダ信号102、104の0〜360度(°)の領域を8つの領域に分けるためのものである。また、領域分割部130は、A相、B相の正負エンコーダデータ122、124のうち、大きさの絶対値が小さい(又は等しい)方のデータの大きさの絶対値を示すXデータ132を生成して出力する。また、領域分割部130は、A相、B相の正負エンコーダデータ122、124のうち、大きさの絶対値が大きい(又は等しい)方のデータの大きさの絶対値を示すYデータ134を生成して出力する。arctan計算部140は、領域分割部130により8つの領域に分けられた0−45度の範囲で、各相のエンコーダデータの絶対値に大きさに基づくarctan(逆正接)を計算する。本実施形態では、arctan計算部140は、tan-1X/Yを計算する。これにより、計算した角度を表す角度データ142(0〜45度)が出力される。
角度計算部150は、arctan計算部140により計算された0−45度の範囲の値の角度と、領域分割部130により分割された8つの領域の情報とに従って、arctan計算部140で計算された角度を、0〜360度の範囲の値の角度に変換する。これにより、変換した角度を表す角度データ152(0〜360度)が出力される。2相パルス生成部160は、角度計算部150により計算された角度データ152と、当該角度データ152に対して設定された逓倍数(逓倍設定値)とに基づいて2相のエンコーダパルス(パルス信号)162(A相)、164(B相)を生成して出力する。
前述したように、2相のアナログエンコーダ信号102、104は、AD変換器100に入力されデジタル化される。AD変換器100とのインターフェース部であるADIF110の制御のもと、デジタル化されたA相、B相の生エンコーダデータ112、114がAD変換器100より取り込まれると、前処理部120により、次の処理が行われる。すなわち、前処理部120により、ノイズ除去のためのデジタルローパスフィルター処理が行われる。また、前処理部120により、各相の擬似正弦波の最大値と最小値とを検出してその中間値を計算する。そして、前処理部120は、その中心値からのオフセット分を2相の生エンコーダデータ112、114から除去して、2相の生エンコーダデータ112、114を2の補数で表現された2相の正負エンコーダデータ122(A相)、124(B相)に変換する。
図2(a)は、A相の生エンコーダデータ112と、B相の生エンコーダデータ114の一例を示す図である。また、図2(b)は、A相の正負エンコーダデータ122と、B相の正負エンコーダデータ124の一例を示す図である。図2では、横軸に角度をとっているが、ある方向に一定速度で測定対象物が動いているという前提では、横軸を時間とみなしてもよい。通常、エンコーダスケール1周期に対してアナログエンコーダ信号も1周期、すなわち、360度進む。
前処理部120で処理が行われたA相、B相の正負エンコーダデータ122、124について、符号と、大きさの絶対値との比較が領域分割部130により行われ、45度毎に区画された8つの領域に分割される。図3は、領域分割部130、arctan計算部140、及び角度計算部150による処理の一例を説明するための図である。
図3(a)は、A相、B相の正負エンコーダデータ122、124の振幅値の一例を示す図である。図3(a)において、A軸は、A相の正負エンコーダデータ122の振幅値を示し、B軸は、B相の正負エンコーダデータ124の振幅値を示し、A軸及びB軸にそれらの値をプロットすると、位相を表す円301が得られる。ここでは、A軸の正の方向の軸を基準として、45度間隔で、円301を8つの領域に分ける。
図3(b)は、図3(a)に示す8つの領域のそれぞれにおけるA相、B相の正負エンコーダデータ122、124の符号(A、B)、絶対値の大小関係(絶対値)、sign(符号)X、Y、加算する角度(+)、計算される角度の関係を示す図である。尚、図3(b)に示す領域0〜7は、それぞれ図3(a)に示す"0"〜"7"に対応する。
8つに分割された領域を示す8分割領域データ136は、角度計算部150に送られる。また、領域分割部130は、A相、B相の正負エンコーダデータ122、124の符号を除去し、それらのうち、大きさが大きい(又は等しい)データをYデータ134とし、小さい(又は等しい)データをXデータ132としてarctan計算部140に出力する。
arctan計算部140は、arctan(X/Y)の計算を行う。まず、X/Yの計算は、Yの逆数をテーブルにて求め、Xと乗算を行う(X×(1/Y)を計算する)ことにより実行される。次に、arctanの計算は、テーブルを用いることにより実行される。ここで、A相、B相の正負エンコーダデータ122、124の位相を表す円301を45度毎の領域に分割し、また、X<=Yという条件がある。このために、0<=arctan(X/Y)<=1という関係が成り立つ。よって、0〜1の間に対してテーブルを用意すれば、arctanの計算を行うことができる。このようにして、0〜45度の範囲の角度を示す角度データ142が得られる。
arctan計算部140により計算された0〜45度の範囲の角度を示す角度データ142と、領域分割部130により得られた8分割領域データ136とに基づいて、角度計算部150により、0〜360度の範囲の角度を示す角度データ152が計算される。計算された角度データ152に基づいて、2相パルス生成部160により、2相のエンコーダパルス(A相のエンコーダパルス162、B相のエンコーダパルス164)が生成され、出力される。以下に、ここで生成される2相のエンコーダパルスの生成方法の一例について詳述する。
図4は、角度の不感帯(ヒステリシス)を設けてエンコーダパルス162、164のエッジを生成する方法の一例を説明するための図である。図4においては、A相、B相の正負エンコーダデータ122、124の角度に基づいて2相のエンコーダパルス162、164のエッジを生成する方法の一例を示している。尚、図4の縦軸と横軸は、図3に示したものと同じである。2相パルス生成部160は、角度計算部150により計算された角度データ152が示す角度と、エンコーダパルスの変化点の情報とに基づいて、2相のエンコーダパルスを生成する。図4では、説明の容易化のために、45度ずつにパルスエッジを生成する場合、すなわち、180度でA相、B相が1周期(4エッジ)となり、360度で2逓倍のパルスを生成する(45度ずつパルスエッジを生成)する場合を例に挙げて示している。実際には、例えば、8逓倍のパルスを生成(11.25度ずつパルスエッジを生成)したり、16逓倍のパルスを生成(5.625度ずつパルスエッジを生成)したりする。しかしながら、これでは、角度が細かすぎてしまい図で表現しにくい。そこで、ここでは、説明を分かり易くするために、2逓倍のパルスを生成する(45度ずつパルスエッジを生成する)場合について説明を行う。
図4において、アナログエンコーダ信号102、104が、CW方向(正の方向)200に進んでいる場合、パルス変化点210に対しては"+α"度のヒステリシスを設けて、点212をパルス変化点とする。同様に、パルス変化点220に対しても"+α"度のヒステリシスを設けて、点222をパルス変化点とする。以下同様に、基準となるパルス変化点に対して"+α"度のヒステリシスを設けた角度をパルス変化点とする。また、アナログエンコーダ信号102、104がCCW方向(負の方向)202に進んでいる場合、パルス変化点210に対しては"−α"度のヒステリシスを設けて、点214をパルス変化点とする。同様に、パルス変化点220に対しても"−α"度のヒステリシスを設けて、点224をパルス変化点とする。以下同様に、基準となるパルス変化点に対して"−α"度のヒステリシスを設けた角度をパルス変化点とする。すなわち、角度値に対して±αのヒステリシスを設けたことになる。この結果として、モータ等が低速で駆動している時におけるアナログエンコーダ信号102、104の角速度が低速になる。よって、角度値の進みが遅くなったときに、計算された角度データ152にノイズが載っているときにも、生成した2相のエンコーダパルス162、164のエッジにばたつきが生じることなくなる。そして、後段のエンコーダカウンタ(図示せず)においても、速度データの誤検出をすることがなくなる。
図5は、角度値に対してヒステリシスを設けて生成した2相のエンコーダパルス162、164の一例を示す図である。図5に示すように、2相のエンコーダパルス162、164のエッジにばたつきがないことが分かる。
図6は、2相パルス生成部160の詳細な構成の一例を示す図である。本実施形態では、角度値より2相のエンコーダパルス162、164のデータ(2bitの0/1信号)を生成する方法としてLUT(ルックアップテーブル)方式を用いている。2相のエンコーダパルス162、164を生成する際にヒステリシスを設ける方法として、2つのLUTを設けている。LUT300は、パルス変化点210、220、・・・に+α度を加算した点214、224、・・・を角度閾値とし、その点で2相のエンコーダパルス162、164が変化するようにするためのルックアップテーブルである。LUT310は、パルス変化点210、220、・・・に−α度を加算した点212、222、・・・を角度閾値とし、その点で2相のエンコーダパルス162、164が変化するようにするためのルックアップテーブルである。比較器(CMP)320は、LUT300と、LUT310の出力を比較する。セレクタ(SEL)330は、LUT300の出力と出力ラッチ(D)340の出力とを切り替える。出力ラッチ(D)340は、セレクタ330の出力をラッチするためのものである。図6において、LUT300、310の出力と、比較器320の入力と、セレクタ330の入出力と、出力ラッチ340の入出力は、各2ビットである。
図6において、2相パルス生成部160に入力される角度データ152に基づく角度値は、LUT300、310に入力される。LUT300は、CW用のルックアップテーブルであり、前述したように、図4に示したヒステリシス"+α"を含んだ変化点214、224、・・・において、A相、B相のパルスが順次変化するテーブルである。また、LUT310は、CCW用のルックアップテーブルであり、図4で示したヒステリシス"−α"を含んだ変化点212、222、・・・において、A相、B相のパルスが順次変化するテーブルである。
比較器320は、これらのLUT300とLUT310の出力とを比較する。LUT300とLUT310の出力とを比較すると、パルス変化点210、220、・・・の前後±α度の範囲(点212、214の間、点222、224の間、・・・)では、LUT300とLUT310の出力は一致しない。一方、パルス変化点の前後±α度の範囲と異なるところでは、LUT300とLUT310の出力は一致する。比較器320は、この一致した(又は一致しない)という信号をセレクタ330に送る。セレクタ330は、比較器320により、2つのLUT300、310の出力が一致したか、しないかによって出力を切替える。すなわち、セレクタ330は、2つのLUT300、310の出力が一致した際には、LUT300の出力を選択する。一方、セレクタ330は、2つのLUT300、310の出力が一致しないときには、角度±αのヒステリシス内ということで、出力データを更新せずにその前のデータ(出力ラッチ340)の出力を選択する。このようにして、角度±αのヒステリシスを設ける。別の表現をすると、角度±αの区間、不感帯を設けることになる。
図7は、ノイズを含む角度値と、A相のエンコーダパルスの一例を示す図である。図7では、A相のエンコーダパルスが、角度値2度毎にパルスが反転する状況でのグラフである。これは、90逓倍に相当するが、逓倍は、一例である。図7において、横軸は時間経過を表し、縦軸はエンコーダの角度と、A相のエンコーダパルスの値(0/1)を表している。
図7(a)は、ノイズを含んだ角度値(角度データ152)と、ヒステリシスを用いずに生成されたA相のエンコーダパルス701の波形を示した図である。図7(a)では、エンコーダの角度が、0〜10〜0°と変化しているときに、ノイズを含んだ角度値(角度データ152)が得られている状態を示している。
A相のエンコーダパルス701が、角度値2度毎に反転する。このために、角度値が2度、4度、6度、8度、10度を角度閾値として、A相のエンコーダパルス701が反転する。しかし、角度値(角度データ152)にノイズが乗っているために、A相のエンコーダパルス701のエッジにバタツキが生じている。
図7(b)は、ノイズを含んだ角度値と、ヒステリシスを用いて生成されたA相のエンコーダパルス162の波形を示した図である。図7(b)でも、図7(a)と同様に、エンコーダの角度が、0〜10〜0°と変化しているときに、ノイズを含んだ角度値(角度データ152)が得られている状態を示している。
本実施形態では、このノイズを含んだ角度値(角度データ152)に対して、CW方向に対しては"+α度"のヒステリシスを、CCW方向に対しては"−α度"のヒステリシスをそれぞれ設けて、A相のエンコーダパルス162を生成している。A相のエンコーダパルス162は、角度値2度毎に反転するのであるが、ヒステリシスがついている。このために、CW方向(角度値が0〜10度に上がっている方向)では、2+α度、4+α度、6+α度、8+α度が角度閾値となり、この角度閾値でA相のエンコーダパルス162が反転している。ここで、角度値(角度データ152)が10+α度を超えていないために、10度近辺では、A相のエンコーダパルス162は反転していない。同様に、CCW方向(角度値が10〜0度に下がっている方向)では、8−α度、6−α度、4−α度、2−α度が角度閾値となり、この角度閾値でA相のエンコーダパルス162が反転している。このように、ノイズを含んだ角度値(角度データ152)に対してヒステリシスを設けることにより、A相のエンコーダパルスのエッジにばたつきがなく、正しいエンコーダパルスを生成していることがわかる。
以上のように本実施形態では、擬似正弦波として入力されたアナログエンコーダ信号102、104に基づいて、エンコーダで検出した角度を示す角度データ152を導出し、導出した角度データ152に基づいてエンコーダパルスのデータを順次生成する。この際に、出力したエンコーダパルスのデータをラッチしておく。そして、逓倍設定値に基づくエンコーダパルスの変化点からα度の範囲では、それまでにラッチしておいたデータを使用し、その他の角度の範囲では、生成したデータを使用する。したがって、生成したエンコーダパルス162、164エッジのばたつきを抑えることを、容易に且つ確実に実現することができる。特に、本実施形態では、モータ等が低速で駆動している時に、アナログエンコーダ信号102、104の角速度が低速になった時にも、エンコーダパルス162、164のエッジのばたつきを抑えることが可能になる。更に、生成したエンコーダパルス162、164のばたつきを抑えることができたために、後段のエンコーダカウンタにおいて速度値の誤検出を防止することが可能となる。このために、モータ等のメカトロ制御での制御異常を防止することが可能になる。
本実施形態においては、LUT300、310をCPU(図示せず)から書込み可能とすることで、ヒステリシス量"±α"度を任意に変えることが可能である。この際に、2つのLUT300、310を両方書き替える事でもよいが、結果的に"±α"分のヒステリシスを確保すればよいために、片方のみの書き替えることでもヒステリシスの量を任意に設定することが可能である。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第1の実施形態では、LUTを2つ用いた場合を例に挙げて説明した。これに対し、本実施形態では、LUTを1つのみとし、レジスタを用いてヒステリシスを設定する。このように本実施形態と第1の実施形態とは、エンコーダパルス(ヒステリシス)を生成する処理の一部が主として異なる。したがって、本実施形態の説明において、第1の実施形態と同一の部分については、図1〜図7に付した符号と同一の符号を付す等して詳細な説明を省略する。
以下、図8を参照して、ヒステリシスをつける別の実施形態について説明する。
図8は、2相パルス生成部の詳細な構成の一例を示す図である。
図8において、データ400は、ヒステリシスなしに相当する"0"を示すデータである。レジスタ(D)410は、ヒステリシスの量(2α)をCPU(図示せず)からの指令により設定する。セレクタ420は、データ400とレジスタ410の出力との何れかを選択する。加算器430は、2相パルス生成部に入力された角度データ152に基づく角度値に対してセレクタ420により選択された値を加算する。LUT440は、2相パルス生成部に入力された角度データ152に基づく角度値に対するエンコーダパルスを格納するルックアップテーブルである。尚、本実施形態では、LUT440には、A相用のものと、B相用のものとがある。
第1のラッチ(D)450は、LUT440の出力をラッチするためのものである。第2のラッチ(D)460は、第1のラッチ450の出力をラッチするためのものである。比較器(CMP)470は、第1のラッチ450と第2のラッチ460の出力を比較するためのものである。セレクタ(SEL)480は、第2のラッチ460の出力と、出力ラッチ490の出力とを切り替える。出力ラッチ490は、セレクタ480の出力をラッチするためのものである。
図8において、LUT440の出力と、比較器470の入力と、第1のラッチ450、第2のラッチ460、セレクタ480、及び出力ラッチ490の入出力は各2ビットである。図8では、2相パルス生成部に入力される角度データ152に基づく角度値(1データ)に対して、当該角度値と、これに対してヒステリシスの量(=2α)を加算した角度値との2データの処理を倍速で行い、A相、B相のエンコーダパルスを出力する。
まず、2相パルス生成部に入力された角度データ152に基づく角度値に対して、セレクタ420により、ヒステリシスなしに相当するデータ400("0")が選択される。そして、2相パルス生成部に入力された角度データ152に基づく角度値は、加算器430でデータ400と加算される(ただし、データ400は"0"なので、加算器430からは当該角度値が出力される)。そして、LUT440によって、当該角度値がエンコーダパルスに変換されて出力され、第1のラッチ450にラッチされる。
次に、第1のラッチ450の出力が第2のラッチ460にラッチされる。これと共に、2相パルス生成部160に入力された角度データ152に基づく角度値と同じ角度値に対して、セレクタ420により、ヒステリシスの量に相当するレジスタ410の値(=2α)が選択される。そして、加算器430により、当該角度値にヒステリシスの量が加算される。ヒステリシスの量が加算された角度値が、LUT440によってエンコーダパルスに変換されて出力され、第1のラッチ450にラッチされる。この状態により、第2のラッチ460には、2相パルス生成部に入力された角度データ152に基づく角度値に対するエンコーダパルスのデータがラッチされる。また、第1のラッチ450には、2相パルス生成部に入力された角度データ152に基づく角度値にヒステリシスの量が加算された角度値に対するエンコーダパルスのデータがラッチされる。
これらの2つのラッチ450、460の出力を比較器470により比較し、2つのデータが等しいか否かの判断を行う。この判断の結果、2つのラッチ450、460から出力されたデータが等しい場合には、セレクタ480により、第2のラッチ460の出力が選択されて、出力ラッチ490にラッチされる。一方、2つのラッチから出力されたデータが等しくない場合には、セレクタ480により、出力ラッチ490の出力が選択されて、出力ラッチ490の内容は変化しない。
先に説明した第1の実施形態では、LUTを2つ使用したものであり、ヒステリシスの量を加味したテーブルを作成する必要があった。これに対して、本実施形態では、LUTは1つのみである。基本的に角度値に対してエンコーダパルスを生成する、A相、B相のエンコーダパルスのテーブルを持つ。このテーブルに対して、ヒステリシスの量に相当する角度をレジスタ410で設定する。このために、テーブルの量を半分にすることができるとともに、レジスタの設定値を書き替えるだけで、ヒステリシスの量を変更することができる、というメリットを持つ。
(第3の実施形態)
次に、本発明の第3の実施形態について説明する。第1、第2の実施形態では、ヒステリシスが一定である場合を例に挙げて説明した。これに対し、本実施形態では、ヒステリシスの量を制御する場合について説明する。このように、本実施形態と、第1、第2の実施形態とは、ヒステレシスを設定する構成の一部が主として異なる。したがって、本実施形態の説明において、第1、第2の実施形態と同一の部分については、図1〜図8に付した符号と同一の符号を付す等して詳細な説明を省略する。
(第1の例)
図9は、角度の不感帯(ヒステリシス)を設けてエンコーダパルス162、164のエッジを生成する方法の一例を説明するための図である。ここでは、2相のエンコーダパルスを22.5度ごとに変化させ、360度で4逓倍のパルスを生成する場合を例に挙げて示している。前述したように、実際には、例えば、8逓倍、16逓倍のパルスを生成するが、これでは、角度が細かすぎてしまい図で表現しにくいので、ここでは、4逓倍のパルスを生成する場合について説明を行う。尚、図9の縦軸と横軸は、図3に示したものと同じである。
第1の実施形態(図4)では、2相のエンコーダパルスを45度毎に変化させ、これに対して±αのヒステリシスを設けた場合を例に挙げて説明を行った。これに対し、図9においては、2相のエンコーダパルス(パルス変化点510、520、530、・・・)を22.5度毎に変化させ、これに対して±α1のヒステリシスを設ける。図9に示す例では、基準となるパルス変化点510、520、530に対して、"+α1"度のヒステリシスを設けて、点514、524、534をパルス変換点とする。同様に、基準となるパルス変化点510、520、530に対して、"−α1"度のヒステリシスを設けて、点512、522、532をパルス変換点とする。すなわち、本例では、生成するエンコーダパルス162、164の角度間隔に応じてヒステリシス量を制御する形態である。このようにすると、生成するエンコーダパルス162、164の角度間隔の大きい時には、ヒステリシスの量を大きく、小さい時にはヒステリシスの量を小さく制御することにより、エンコーダパルス162、164のエッジのばたつきを、より適切に抑えられる。このような処理を実現するために、例えば、エンコーダパルスの角度間隔と、ヒステリシスの量との対応関係を記憶したテーブルを予め記憶しておく。そして、CPUが、生成するエンコーダパルス162、164の角度間隔に対応するヒステリシスの量を読み出して、LUT300、310やレジスタ410に設定することにより実現できる。
(第2の例)
また、生成するエンコーダパルス162、164の角度間隔だけではなく、入力された擬似正弦波である2相のアナログエンコーダ信号102、104のサンプリング周期に応じて、ヒステリシスの量を制御することも可能である。2相のアナログエンコーダ信号102、104のサンプリング周期が大きい時には、ヒステリシスの量を大きく、小さい時にはヒステリシスの量を小さく制御する。これによって、サンプリング周期によるノイズの影響によらずに、エンコーダパルスのエッジのばたつきを抑えたエンコーダパルス162、164の生成が可能になる。このような処理を実現するために、例えば、2相のアナログエンコーダ信号102、104のサンプリング周期と、ヒステリシスの量との対応関係を記憶したテーブルを予め記憶しておく。そして、CPUが、ADIF110等からサンプリング周期を取得し、取得したサンプリング周期に対応するヒステリシスの量を読み出して、LUT300、310やレジスタ410に設定する。
(第3の例)
更に、測定対象となるターゲットメカ(図示せず)の移動速度、すなわち、アナログエンコーダ信号102、104の角速度に応じて、ヒステリシス量を変更することも可能である。アナログエンコーダ信号102、104の角速度が速い時にはヒステリシス量を小さく、アナログエンコーダ信号102、104の角速度が遅い時にはヒステリシス量を大きくする。これにより、モータ等が低速で駆動している時に、アナログエンコーダ信号102、104の角速度が低速になっても、生成するエンコーダパルス162、164のエッジのばたつきを抑えることができる。さらに、アナログエンコーダ信号102、104の角速度が高速になっても、生成するエンコーダパルス162、164のエッジのパルス抜けを防止することが可能となる。このことにより、低速時、高速時ともに、適正なエンコーダパルス162、164の生成が可能となる。このような処理を実現するために、例えば、アナログエンコーダ信号102、104の角速度と、ヒステリシスの量との対応関係を記憶したテーブルを予め記憶しておく。そして、CPUが、エンコーダ(図示せず)等から、アナログエンコーダ信号102、104の角速度を取得し、取得した角速度に対応するヒステリシスの量を読み出して、LUT300、310やレジスタ410に設定する。また、アナログエンコーダ信号102、104の角速度の代わりに、角度計算部150で得られた角度データ152の角速度を用いるようにしてもよい。
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
(その他の実施例)
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア(コンピュータプログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)が当該コンピュータプログラムを読み出して実行する。
130 領域分割部、150 角度計算部、160 2相パルス生成部

Claims (6)

  1. 測定対象物の回動の角度を検出するエンコーダから出力された信号に基づいて、当該角度を検出する検出手段と、
    前記角度に基づいて、角度に応じて値が変化するパルス信号のデータを生成する生成手段と、
    出力されるパルス信号のデータをラッチするラッチ手段と、
    前記生成されたパルス信号のデータ、及び、前記ラッチされたパルス信号のデータの何れかを、出力するデータとして選択する選択手段と、を有し、
    前記選択手段は、前記パルス信号の値を変更する角度閾値から、設定された範囲の角度までは、前記ラッチされたパルス信号のデータを選択し、当該範囲と異なる角度については、前記生成されたパルス信号のデータを選択することを特徴とするエンコーダパルス生成装置。
  2. 前記角度閾値の間隔が大きいときほど、前記範囲が大きくなるように、前記角度閾値の間隔に応じて、前記範囲を変更する変更手段を有することを特徴とする請求項1に記載のエンコーダパルス生成装置。
  3. 測定対象物の回動の角度を検出するエンコーダから出力されたアナログの信号をデジタルの信号に変換する変換手段と、
    前記範囲を変更する変更手段と、を有し、
    前記検出手段は、前記変換手段により変換されたデジタルの信号をサンプリングした信号に基づいて、前記角度を検出し、
    前記変更手段は、前記サンプリングの周期が大きいときほど、前記範囲が大きくなるように、前記サンプリングの周期に応じて、前記範囲を変更することを特徴とする請求項1に記載のエンコーダパルス生成装置。
  4. 測定対象物の回動の角度を検出するエンコーダから出力されたアナログの信号をデジタルの信号に変換する変換手段を有し、
    前記アナログの信号から得られる角速度、又は、前記検出手段により検出された角速度が速いときほど、前記範囲が小さくなるように、前記アナログの信号から得られる角速度、又は、前記検出手段により検出された角速度に応じて、前記範囲を変更することを特徴とする請求項1に記載のエンコーダパルス生成装置。
  5. 測定対象物の回動の角度を検出するエンコーダから出力された信号に基づいて、当該角度を検出する検出工程と、
    前記角度に基づいて、角度に応じて値が変化するパルス信号のデータを生成する生成工程と、
    出力されるパルス信号のデータをラッチするラッチ工程と、
    前記生成されたパルス信号のデータ、及び、前記ラッチされたパルス信号のデータの何れかを、出力するデータとして選択する選択工程と、を有し、
    前記選択工程は、前記パルス信号の値を変更する角度閾値から、設定された範囲の角度までは、前記ラッチされたパルス信号のデータを選択し、当該範囲と異なる角度については、前記生成されたパルス信号のデータを選択することを特徴とするエンコーダパルス生成方法。
  6. 測定対象物の回動の角度を検出するエンコーダから出力された信号に基づいて、当該角度を検出する検出工程と、
    前記角度に基づいて、角度に応じて値が変化するパルス信号のデータを生成する生成工程と、
    出力されるパルス信号のデータをラッチするラッチ工程と、
    前記生成されたパルス信号のデータ、及び、前記ラッチされたパルス信号のデータの何れかを、出力するデータとして選択する選択工程と、をコンピュータに実行させ、
    前記選択工程は、前記パルス信号の値を変更する角度閾値から、設定された範囲の角度までは、前記ラッチされたパルス信号のデータを選択し、当該範囲と異なる角度については、前記生成されたパルス信号のデータを選択することを特徴とするコンピュータプログラム。
JP2010046643A 2010-03-03 2010-03-03 エンコーダパルス生成装置、エンコーダパルス生成方法、及び、コンピュータプログラム Pending JP2011180073A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010046643A JP2011180073A (ja) 2010-03-03 2010-03-03 エンコーダパルス生成装置、エンコーダパルス生成方法、及び、コンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010046643A JP2011180073A (ja) 2010-03-03 2010-03-03 エンコーダパルス生成装置、エンコーダパルス生成方法、及び、コンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2011180073A true JP2011180073A (ja) 2011-09-15

Family

ID=44691714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010046643A Pending JP2011180073A (ja) 2010-03-03 2010-03-03 エンコーダパルス生成装置、エンコーダパルス生成方法、及び、コンピュータプログラム

Country Status (1)

Country Link
JP (1) JP2011180073A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002032A (ja) * 2012-06-18 2014-01-09 Canon Inc 信号処理装置および信号処理方法
WO2017099000A1 (ja) * 2015-12-08 2017-06-15 旭化成エレクトロニクス株式会社 回転情報検出装置、角度検出回路、回転情報検出方法、および回転情報検出プログラム
JP2017120182A (ja) * 2015-12-28 2017-07-06 Tdk株式会社 移動検出装置
JP2017138143A (ja) * 2016-02-02 2017-08-10 Tdk株式会社 変位検出装置および角速度検出装置
US10509385B2 (en) 2015-08-03 2019-12-17 Lsis Co., Ltd. Method of controlling encoder principle axis speed synchronization

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014002032A (ja) * 2012-06-18 2014-01-09 Canon Inc 信号処理装置および信号処理方法
US10509385B2 (en) 2015-08-03 2019-12-17 Lsis Co., Ltd. Method of controlling encoder principle axis speed synchronization
WO2017099000A1 (ja) * 2015-12-08 2017-06-15 旭化成エレクトロニクス株式会社 回転情報検出装置、角度検出回路、回転情報検出方法、および回転情報検出プログラム
JPWO2017099000A1 (ja) * 2015-12-08 2018-08-02 旭化成エレクトロニクス株式会社 回転情報検出装置、角度検出回路、回転情報検出方法、および回転情報検出プログラム
JP2017120182A (ja) * 2015-12-28 2017-07-06 Tdk株式会社 移動検出装置
JP2017138143A (ja) * 2016-02-02 2017-08-10 Tdk株式会社 変位検出装置および角速度検出装置
CN107101653A (zh) * 2016-02-02 2017-08-29 Tdk株式会社 位移检测装置和角速度检测装置

Similar Documents

Publication Publication Date Title
US7253614B2 (en) Proximity detector having a sequential flow state machine
JP5058334B2 (ja) 回転角度検出装置
JP6005781B2 (ja) レゾルバ装置
US8004434B2 (en) RD converter and angle detecting apparatus
US10355717B2 (en) Encoder signal processing device, encoder, and signal processing method and recording medium
JP2011180073A (ja) エンコーダパルス生成装置、エンコーダパルス生成方法、及び、コンピュータプログラム
JP4119460B2 (ja) エンコーダの出力信号の振幅算出装置及びエンコーダの出力信号の振幅算出プログラム
KR20190065302A (ko) 모터 포지션 검출기들과의 오프셋 및 게인 드리프트 관련 각도 오차들의 보정
JP4422757B2 (ja) リファレンス信号生成回路、角度変換器及び角度検出装置
JP2005257565A (ja) レゾルバディジタル角度変換装置および方法ならびにプログラム
JP2014238331A (ja) 角度検出装置および角度検出方法
JP5149820B2 (ja) コントローラおよび加工装置
JP2016001103A (ja) 位置検出装置
JP2010078340A (ja) エンコーダの誤差補正方法
Karabeyli et al. Enhancing the accuracy for the open-loop resolver to digital converters
JP5125320B2 (ja) エンコーダの補正値制御方法
JP2006214972A (ja) 回転検出装置の信号処理装置
JP5376338B2 (ja) 回転角検出装置
JPH02251720A (ja) エンコーダの内挿方式
JP2020016452A (ja) 回転角センサの信号処理回路および回転角センサの信号処理方法
WO2019017042A1 (ja) 回転角センサ-デジタルコンバータおよび回転角センサ-デジタル変換方法
JP2009244022A (ja) 位相検出回路
JP4519183B2 (ja) Ab相信号発生器、rdコンバータ及び角度検出装置
JP2007017385A (ja) アブソリュートエンコーダ
KR100969582B1 (ko) 정현파 엔코더의 출력신호를 이용한 회전자의 정밀위치검출방법