JP5079346B2 - 波形補正装置および波形補正方法 - Google Patents

波形補正装置および波形補正方法 Download PDF

Info

Publication number
JP5079346B2
JP5079346B2 JP2007019682A JP2007019682A JP5079346B2 JP 5079346 B2 JP5079346 B2 JP 5079346B2 JP 2007019682 A JP2007019682 A JP 2007019682A JP 2007019682 A JP2007019682 A JP 2007019682A JP 5079346 B2 JP5079346 B2 JP 5079346B2
Authority
JP
Japan
Prior art keywords
signal
value
calculation
amplitude
correction
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.)
Active
Application number
JP2007019682A
Other languages
English (en)
Other versions
JP2008185474A (ja
Inventor
野 竜 二 青
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.)
Shibaura Machine Co Ltd
Original Assignee
Toshiba Machine Co Ltd
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 Toshiba Machine Co Ltd filed Critical Toshiba Machine Co Ltd
Priority to JP2007019682A priority Critical patent/JP5079346B2/ja
Priority to DE102008006526A priority patent/DE102008006526B4/de
Priority to US12/021,493 priority patent/US8219603B2/en
Priority to TW097103314A priority patent/TW200842315A/zh
Priority to KR1020080009026A priority patent/KR100978423B1/ko
Publication of JP2008185474A publication Critical patent/JP2008185474A/ja
Application granted granted Critical
Publication of JP5079346B2 publication Critical patent/JP5079346B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D5/00Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable
    • G01D5/12Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means
    • G01D5/244Mechanical means for transferring the output of a sensing member; Means for converting the output of a sensing member to another variable where the form or nature of the sensing member does not constrain the means for converting; Transducers not specially adapted for a specific variable using electric or magnetic means influencing characteristics of pulses or pulse trains; generating pulses or pulse trains
    • G01D5/24471Error correction
    • G01D5/2448Correction of gain, threshold, offset or phase control
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/01Shaping pulses

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Transmission And Conversion Of Sensor Element Output (AREA)

Description

本発明は、波形補正装置および波形補正方法に関し、例えば、回転運動または往復運動を行う運動体の位置検出器に用いられる波形補正装置および波形補正方法に関する。
一般に、機械の高精度な運動制御のために、ロータリエンコーダが回転運動を行う運動体(例えば、サーボモータ)の位置検出器として用いられ、あるいは、リニアスケールが直線往復運動を行う運動体の位置検出器として用いられる。位置検出器の出力信号は、周期的にアナログ−デジタル変換(サンプリング)された後、角度あるいは位置を示す値に変換されて用いられる。運動体の角度あるいは位置を高精度に検出するためには、サンプリングにより得られたデジタル信号(sin信号およびcos信号)のオフセットを除去し、かつ、sin信号およびcos信号の各振幅を基準値に補正する必要がある。
従来、オペレータがこのデジタル信号の補正を目視で行っていた。具体的には、sin信号およびcos信号をシンクロスコープに入力し、X−Y平面上にリサージュと呼ばれる円を表示させる。オペレータは、オフセットを除去し、かつ、振幅を補正するために、このリサージュの位置および大きさを肉眼で観測しながら、出力回路あるいは入力回路を調整していた。これは、sin信号およびcos信号の正規化作業である。正規化とは、サンプリングで得られたリサージュを所定の規格に沿った形状に調節することである。
杉本 英彦等"ACサーボシステムの理論と設計の実際"総合電子出版社 (P142〜P149)
目視によってsin信号およびcos信号を正規化する場合、勿論、シンクロスコープおよび人手が必要となる。このため、コスト高となり、かつ、時間も長く掛かる。さらに、目視で正規化するため、熟練者であっても高精度な正規化を行うことは難しい。これは、位置検出精度または速度検出制度を悪化させる原因となっていた。
位置検出器の出力回路内部の応答速度が遅いと、位置検出器において単位時間あたりに変化可能な電圧幅(スルーレート)が小さくなる。従って、位置検出器の入出力信号の周波数が高くなると、sin信号およびcos信号の振幅が動的に低下するという現象がある。このような場合には、目視では正規化させることが不可能である。
そこで、本発明の目的は、波形信号をサンプリングして得られたデジタル信号を、低コスト、高速かつ高精度に補正することができる波形補正回路および波形補正方法を提供することである。
本発明に係る実施形態に従った波形補正装置は、回転運動または往復運動を行う運動体の位置を示す波形信号を周期的にサンプリングし、この信号をデジタル化して得られたデジタル信号を補正する波形補正装置であって、
或る時点のデジタル信号とそれ以前のサンプリングで得られたデジタル信号とを用いて該デジタル信号の最大値および最小値を検出する最大値・最小値検出部と、前記波形信号の中間値として予め設定された基準電位から前記デジタル信号の最大値と最小値との中間値までのオフセット値を算出する第1の演算部と、前記デジタル信号の最大値または最小値に対して該オフセット値を減算または加算することによって前記デジタル信号の実際の振幅を算出する第2の演算部と、前記或る時点のデジタル信号から前記オフセット値を減算または加算して第1の補正信号を生成する第3の演算部と、前記実際の振幅を予め設定された基準振幅に収束させるために、前記実際の振幅の桁をシフトした値を、前記実際の振幅に対して加算または減算する第4の演算部と、前記第4の演算部における加算または減算の実行と同時に、前記第1の補正信号を第2の補正信号へ収束させるために、前記第1の補正信号の桁を前記実際の振幅のシフト量と同量だけシフトした値を、前記第1の補正信号に対して加算または減算する第5の演算部と、を備えている。
前記第4の演算部は、
=Ai−1Ay×2−i (式1)
=Ai−1Ay×2−i (式2)
(但し、i=1、2・・・nである。AAyである。Ayは前記実際の振幅である。)
予め設定された基準振幅に前記Aが収束するまで、あるいは、次のサンプリングが実行されるまで、式1または式2を繰り返し演算し、
前記第5の演算部は、
=yi−1yc×2−i (式3)
=yi−1yc×2−i (式4)
(但し、i=1、2・・・nである。y=yである。yは前記第1の補正信号である。)
予め設定された基準振幅に前記Aが収束するまで、あるいは、次のサンプリングが実行されるまで、式3または式4を繰り返し演算する。
前記実際の振幅が前記基準振幅よりも小さい場合、前記第4の演算部は式1を演算し、かつ前記第5の演算部は式3を演算し、前記実際の振幅が前記基準振幅よりも大きい場合、前記第4の演算部は式2を演算し、かつ前記第5の演算部は式4を演算する。
前記デジタル信号はsin信号およびcos信号で表され、前記第1から前記第5の演算部は、前記sin信号および前記cos信号のそれぞれに対応して設けられ、前記sin信号および前記cos信号のそれぞれについて演算を実行する。
当該装置は、前記sin信号または前記cos信号のいずれか一方の符号が一定である期間の間にサンプリングされた複数の前記デジタル信号のうち、cos信号の最大値xmax、cos信号の最小値xmin、sin信号の最大値ymaxおよびsin信号の最小値yminを保持する最大値・最小値レジスタをさらに備えている。
前記第1の演算部は、前記デジタル信号の最大値と最小値とを加算し、その値の桁を1桁だけシフトさせる加算器である。
当該装置は、前記最大値・最小値レジスタと前記第2の演算部との間に設けられた第1の低域通過フィルタと、前記第1の演算部と前記第2の演算部との間に設けられた第2の低域通過フィルタとをさらに備えている。
当該装置は、前記第4の演算部の演算結果を保持する第1の計算値レジスタと、前記第5の演算部の演算結果を保持する第2の計算値レジスタと、前記サンプリング直後の最初の演算において前記実際の振幅を前記第4の演算部へ送信し、それ以降の演算においては、前記第1の計算値レジスタに保持されたデータを前記第4の演算部へ送信する第1の選択部と、前記サンプリング直後の最初の演算において前記第1の補正信号を前記第5の演算部へ送信し、それ以降の演算においては、前記第2の計算値レジスタに保持されたデータを前記第5の演算部へ送信する第2の選択部と、前記第1の選択部で選択された前記実際の振幅または前記第1の計算値レジスタに保持されたデータを前記基準振幅と比較し、その比較結果に応じて前記第4の演算部および前記第5の演算部の実行する演算として加算または減算のいずれかを決定する比較部と、前記実際の振幅の桁をシフトする第1のシフティング部と、前記第1の補正信号の桁をシフトする第2のシフティング部と、前記第2の補正信号を保持する補正値レジスタとをさらに備えている。
前記デジタル信号はsin信号およびcos信号で表され、前記第1から前記第5の演算部、前記第1および前記第2の計算値レジスタ、前記第1および前記第2の選択部、前記第1および前記第2のシフティング部、および、前記補正値レジスタは、前記sin信号および前記cos信号のそれぞれに対応して設けられている。
本発明に係る実施形態に従った波形補正方法は、回転運動または往復運動を行う運動体の位置を示す波形信号を周期的にサンプリングし、この信号をデジタル化して得られたデジタル信号を補正する波形補正方法であって、
或る時点のデジタル信号とそれ以前のサンプリングで得られたデジタル信号とを用いて前記デジタル信号の最大値および最小値を検出し、前記波形信号の中間値として予め設定された基準電位から前記デジタル信号の最大値と最小値との中間値までのオフセット値を算出し(第1の演算)、前記デジタル信号の最大値または最小値に対して該オフセット値を減算または加算することによって前記デジタル信号の実際の振幅を算出し(第2の演算)、前記或る時点のデジタル信号から前記オフセット値を減算または加算して第1の補正信号を生成し(第3の演算)、予め設定された基準振幅に前記実際の振幅を収束させるために、前記実際の振幅の桁をシフトした値を、前記実際の振幅に対して加算または減算し(第4の演算)、前記第4の演算における加算または減算の実行と同時に、前記第1の補正信号を第2の補正信号へ収束させるために、前記第1の補正信号の桁を前記実際の振幅のシフト量と同量だけシフトした値を、前記第1の補正信号に対して加算または減算する(第5の演算)、ことを具備する。
前記第4の演算では、
=Ai−1Ay×2−i (式1)
=Ai−1Ay×2−i (式2)
(但し、i=1、2・・・nである。Ayは前記実際の振幅である。AAyである。)
予め設定された基準振幅に前記Aが収束するまで、あるいは、次のサンプリングが実行されるまで、式1または式2を繰り返し実行し、
前記第5の演算では、
=yi−1yc×2−i (式3)
=yi−1yc×2−i (式4)
(但し、i=1、2・・・nである。ycは前記第1の補正信号である。yycである。)
予め設定された基準振幅に前記yが収束するまで、あるいは、次のサンプリングが実行されるまで、式3または式4を繰り返し実行する。
前記実際の振幅が前記基準振幅よりも小さい場合、前記第4の演算では式1を実行し、かつ前記第5の演算では式3を実行し、前記実際の振幅が前記基準振幅よりも大きい場合、前記第4の演算では式2を実行し、かつ前記第5の演算では式4を実行する。
前記デジタル信号はsin信号およびcos信号で表され、前記第1から前記第5の演算は、前記sin信号および前記cos信号のそれぞれについて実行される。
本発明による波形補正回路および波形補正方法は、波形信号をサンプリングして得られたデジタル信号を、低コスト、高速かつ高精度に補正することができる。
以下、図面を参照して本発明に係る実施形態を説明する。本実施形態は、本発明を限定するものではない。
図1は、本発明に係る実施形態に従った波形補正装置100のブロック図である。図7には波形補正装置100の動作フローを示す。ロータリエンコーダまたはリニアスケール10は、回転運動または往復運動を行う運動体の位置を示すアナログ正弦波信号(sin波,cos波)を出力する。sin波,cos波は、直交位相の正弦波の値である。運動体は、等速運動を行うとは限らないので、sin波,cos波の周波数は変化する。
A/Dコンバータ20は、ロータリエンコーダまたはリニアスケール10からのsin波およびcos波を周期的にサンプリングし、これをデジタル信号へ変換する。これにより、デジタル化された座標の信号(sin信号,cos信号)が生成される(S10)。
波形補正装置100は、振幅検出部30と、第3の演算部としての減算器40、41と、波形整形部50とを備えている。波形補正装置100は、A/Dコンバータ20からsin信号およびcos信号を受信し、このsin信号およびcos信号をそれぞれ補正して、正規化されたsin信号および正規化されたcos信号を出力するように構成されている。振幅検出部30、減算器40、41および波形整形部50は、好ましくは、デジタルロジック回路で構成されている。振幅検出部30、減算器40、41および波形整形部50は、例えば、ASIC(Application Specific Integrated Circuit)等のようなカスタムLSIでもよく、FPGA(Field Programmable Gate Array)でもよい。振幅検出部30、減算器40、41および波形整形部50は、汎用CPUおよびプログラムで構成されてもよい。波形補正装置100は、例えば、回転運動または往復運動を行う運動体を備えた機械に配設される。運動体は、例えば、工作機械に配備されたサーボモータのロータまたは往復運動するアーム等である。
振幅検出部30は、sin信号およびcos信号を受け取り、sin信号の最大値および最小値、並びに、cos信号の最大値および最小値を検出する(S20)。また、振幅検出部30は、最大値および最小値を用いてsin信号のオフセット値およびcos信号のオフセット値を算出する(S30)。ここで、オフセット値とは、予め設定された基準電位(例えば、ゼロボルト)からデジタル信号の最大値と最小値との中間値までの電位差である。振幅検出部30は、オフセット値を用いてsin信号の振幅およびcos信号の振幅を算出する(S40)。振幅検出部30は、図4に示すように、乗算器および除算器を用いることなく、加算器および減算器で構成されている。
図2は、振幅検出部30の機能を示す概念図である。図2には、複数のサンプリングで得られたcos信号およびsin信号をリサージュ図形で示している。縦軸Yaがsin信号の値を示し、横軸Xaがcos信号の値を示している。或る時点でサンプリングされた現実の座標(cos信号、sin信号)は(xa、ya)で示されている。
現実の座標(xa、ya)は、A/Dコンバータ20においてサンプリングされた円周上の座標であり、運動体の現実の位置または角度を示す。XaおよびYaは、現実の座標に対する軸(実際の軸)である。XoおよびYoは、目標となる基準軸である。XoおよびYoの原点0が基準電位に対応する。基準座標は、(xmax、0)、(0、ymax)、(xmin、0)および(0、ymin)である。基準座標は、リサージュ図形と実際の軸Xa、Yaとの交点である。
基準軸(Xo,Yo)と実際の軸(Xa、Ya)との差がオフセット値である。振幅検出部30は、xmax、ymax、xminおよびyminを用いて、cos信号のオフセット値OSx、sin信号のオフセット値OSy、cos信号の実際の振幅Ax、および、sin信号の実際の振幅Ayを算出する。
減算器40は、sin信号のオフセット値OSyを、A/Dコンバータ20から得た現実のsin信号yaから減算する。これにより、sin信号からオフセット値を除いた補正信号yc(yc=ya−OSy)が得られる(S50)。減算器41は、cos信号のオフセット値OSxを、A/Dコンバータ20から得た現実のcos信号xaから減算する。これにより、cos信号からオフセット値を除いた補正信号xc(xc=xa−OSx)が得られる。即ち、減算器40は、オフセット値を用いて、実際の軸Xa、Yaを基準軸Xo、Yoに適合させるようにリサージュ図形を平行移動させる機能を有する。尚、オフセット値の符号を反転させた場合、減算器に代えて加算器を40および41として採用してもよい。
波形整形部50は、sin信号の補正信号ycおよびcos信号の補正信号xcを受け取る。波形整形部50は、補正信号ycを比率Dyで縮小または拡大した正規化信号ycn(ycn=yc*Dy)を実質的に求める。また、波形整形部50は、補正信号xcを比率Dxで縮小または拡大した正規化信号xcn(=xc*Dx)を実質的に求める。比率Dyは、予め設定された基準振幅ARyとsin信号の実際の振幅Ayとの比(ARy/Ay)である。比率Dxは、予め設定された基準振幅ARxとcos信号の実際の振幅Axとの比(ARx/Ax)である。基準振幅ARx、ARyは、標準的な規格で定められた目標の振幅であり、同種の複数の装置に対して共通に用いられる基準である。
図3は波形整形部50の機能を示す概念図である。波形整形部50は、実際の振幅Ax、Ayを基準振幅ARx、ARyに適合するように実質的に拡大または縮小し、この拡大または縮小と同じ比率で補正信号xc、ycを実質的に拡大または縮小するように構成されている。これにより、補正信号xcおよびycは、それぞれ正規化信号xcnおよびycnに補正される。波形整形部50は、実際には、乗算(yc*Dy、xc*Dx)および除算(ARy/Ay、ARx/Ax)を実行することなく、加算および減算のみで正規化信号を演算するように構成されている。
このように、振幅検出部30は、現実の信号ya、xaの各オフセット値および各振幅を検出する。減算器40,41は、現実の信号ya、xaからオフセットを除去する。波形整形部50は、実際の振幅が基準振幅に適合するように、現実の信号ya、xaを拡大または縮小する。これにより、現実の信号ya、xaは、正規化信号xcnおよびycnに補正される。規格化信号xcn、ycnは、位置検出および速度検出に用いられ得る。
一般に、除算器および乗算器は、デジタル回路で実現することが困難な回路である。これを実現するためには加算器および乗算器に比べてかなり大規模なデジタル回路を用いる必要がある。従って、除算および乗算をデジタルロジックで実現すると、回路規模が大きくなり、コスト高となる。よって、除算や乗算を安価なFPGA等で実現することは困難であった。
本実施形態による波形補正装置100は、除算器および乗算器を用いることなく、加算器および減算器で構成されている。従って、波形補正装置100全体の回路規模は、非常に小さいものとなる。また、除算器および乗算器がないので、本実施形態による波形補正装置100は、安価なFPGA等のロジック回路で実現しやすい。その結果、波形補正装置100は、低コストで製造可能になる。さらに、本実施形態による波形補正装置100は、単純な加減算を繰り返し実行する。FPGAおよびASICのようなロジック回路は、汎用CPUおよびプログラムと比べ、このような単純作業を高速で繰り返し実行することに適している。従って、波形補正装置100は、正規化信号を短時間に演算することができる。勿論、波形補正装置100は、オペレータよりも短時間かつ高精度でsin信号およびcos信号を正規化することができる。
図4は、振幅検出部30の内部構成を示すブロック図である。振幅検出部30は、基準検出回路101と、符号変化レジスタ102〜104と、遷移検出回路105と、最大・最小検出回路(以下、単に、検出回路ともいう)Dymax、Dymin、Dxmax、Dxminと、第1の演算部としての加算器110、111と、第2の演算部としての減算器120、121と、オフセットレジスタRos1、Ros2と、低域通過フィルタLPF1〜LPF4とを備えている。
基準検出回路101は、現実の座標(cos信号、sin信号)=(xa、ya)を受け取る。基準検出回路101は、運動体が4つの基準座標(xmax、0)、(0、ymax)、(xmin、0)および(0、ymin)を通過したことを検出する。基準座標の通過は、sin信号およびcos信号の符号の変化によって検出することができる。符号変化レジスタ102〜104は、運動体が基準座標を通過したときに変化する現実の座標(xa、ya)の符号の変化を保持する。3つの符号変化レジスタ102〜104は、現実の座標(xa、ya)の符号の過去3回の履歴を保持することができる。
遷移検出回路105は、符号変化レジスタ102〜104に保持された符号の遷移に基づいて、最大・最小検出回路へ指令を送る。例えば、現実の座標が0、π/2、πの順に回転した場合、符号変化レジスタ102〜104は、(xaの符号、yaの符号)としてそれぞれ(+、+)、(−、+)、(−、−)のデータを保持する。遷移検出回路105は、符号変化レジスタ102〜104のデータによって、運動体の現実の座標が第1象限、第2象限、第3象限へと移動していることを識別することができる。現実の座標がπ/2、π、(3/2)πの順に回転した場合、符号変化レジスタ102〜104は、それぞれ(−、+)、(−、−)、(+、−)のデータを保持する。遷移検出回路105は、符号変化レジスタ102〜104のデータによって、運動体の現実の座標が第2象限、第3象限、第4象限へと移動していることを識別することができる。現実の座標がπ、(3/2)π、0の順に回転した場合、符号変化レジスタ102〜104は、それぞれ(−、−)、(+、−)、(+、+)のデータを保持する。遷移検出回路105は、符号変化レジスタ102〜104のデータによって、運動体の現実の座標が第3象限、第4象限、第1象限へと移動していることを識別することができる。現実の座標が(3/2)π、0、π/2の順に回転した場合、符号変化レジスタ102〜104は、それぞれ(+、−)、(+、+)、(−、+)のデータを保持する。遷移検出回路105は、符号変化レジスタ102〜104のデータによって、現実の座標が第4象限、第1象限、第2象限へと移動していることを識別することができる。尚、上記具体例は、運動体が反時計回りCCWに回転している場合の具体例である。同様に、運動体が時計回りCWに回転している場合も、遷移検出回路105は、運動体の現実の座標の遷移を検出することができる。
検出回路Dymax、Dymin、Dxmax、Dxminは、現実の座標xaまたはyaのいずれか一方の符号が一定である期間の間にサンプリングされた複数の現実の座標(xa、ya)のうちxaの最大値xmax、xaの最小値xmin、yaの最大値ymaxおよびyaの最小値yminを保持するように構成されている。
例えば、検出回路Dymaxは、現実の座標(xa、ya)のyaの符号が正(+)である期間にサンプリングされた複数の現実の座標のうちyaの最大値ymaxを保持するように構成されている。より詳細には、検出回路Dymaxは、yaの仮の最大値を保持する仮レジスタPR1と、仮レジスタのデータと現実の座標yaとを比較する比較器COMP1と、最大値ymaxを保持するレジスタRymaxとを備えている。
仮レジスタPR1は、まず、最初にサンプリングされた現実の座標yaを保持する。比較器COMP1は、次にサンプリングされた現実の座標yaと以前のサンプリングで得られ仮レジスタPR1に格納されたデータとを比較し、より大きい値を仮レジスタPR1へ戻す。これを繰り返すことによって、仮レジスタPR1に格納された値は、サンプリングごとに更新され、最大値ymaxに次第に近づいてゆく。
レジスタRymaxは、遷移検出回路105からの保持指令によって仮レジスタPR1の値を保持する。この保持指令は、yaの符号が正(+)である期間の終了時に出力される。この時、運動体の1回転または1往復において、仮レジスタPR1に格納された値が最大となっているからである。レジスタRymaxに格納された値は、運動体が1回転または1往復するごとに更新される。
運動体が高速に動作している場合、cos波およびsin波の周波数は高くなる。サンプリングは或る一定期間を置いて周期的に実行されるため、運動体が高速動作すると、サンプリングが相対的に粗くなる。従って、レジスタRymaxに格納された最大値ymaxは、sin波のほぼ頂点を示すが、必ずしも厳密にその頂点の値を示すものではなく、運動体の回転または往復ごとに幾分変化する。そこで、低域通過フィルタLPF1が、レジスタRymaxと減算器120との間に設けられている。低域通過フィルタLPF1は、そのカットオフ周波数が正弦波(sin波、cos波)の周波数よりも低く、従って、レジスタRymaxから出力される最大値ymaxを安定化させる。
仮レジスタPR1は、遷移検出回路105からのリセット指令によってリセットされる。リセット指令は、保持指令と同時、あるいは、その直後に出力される。これにより、レジスタRymaxが仮レジスタPR1の値を保持した後に、仮レジスタPR1をリセットすることができる。
検出回路Dyminは、yaの符号が負(−)である期間にサンプリングされた複数の現実の座標のうちyaの最小値yminを保持するように構成されている。より詳細には、検出回路Dyminは、yaの仮の最小値を保持する仮レジスタPR2と、仮レジスタのデータと現実の座標yaとを比較する比較器COMP2と、最小値yminを保持するレジスタRyminとを備えている。
仮レジスタPR2は、最初にサンプリングされた現実の座標のyaを保持する。比較器COMP2は、次にサンプリングされたyaと以前のサンプリングで得られ仮レジスタPR2に格納されたデータとを比較し、より小さい値を仮レジスタPR2へ戻す。これを繰り返すことによって、仮レジスタPR2に格納された値は、サンプリングごとに更新され、最小値yminに次第に近づいてゆく。
レジスタRyminは、遷移検出回路105からの保持指令によって仮レジスタPR2の値を保持する。この保持指令は、yaの符号が負(−)である期間の終了時に出力される。この時、運動体の1回転または1往復において、仮レジスタPR2に格納された値が最小となっているからである。レジスタRyminに格納された値は、運動体が1回転または1往復するごとに更新される。
加算器110は、レジスタRymax、RyminとオフセットレジスタRos1との間に接続されている。加算器110は、ymaxとyminとを加算し、その結果得られた値を2分の1にする。これにより、オフセット値が算出される。例えば、ymax=10、ymin=−8とすれば、オフセット値OSyは、1となる。尚、実際の計算は、2進数のデジタル値で実行される。2進数のデジタル値を2分の1にするためには、そのデジタル値の桁を1桁だけ右シフトさせればよい。右シフトとは、或る数値がより小さい値になる方向へ桁をシフトさせることである。従って、加算器110は、単に、ymaxとyminとを加算し、その加算値の桁を1桁だけ右シフトさせればよい。
加算器110で算出されたオフセット値OSyは、オフセットレジスタRos1に格納される。オフセットレジスタRos1は、遷移検出回路105からの保持指令を受けたときに、オフセット値OSyを保持する。
オフセット値OSyも、ymaxと同様に、運動体の回転または往復ごとに幾分変化する。そこで、低域通過フィルタLPF2が、オフセットレジスタRos1と減算器120との間に設けられている。低域通過フィルタLPF2は、そのカットオフ周波数が正弦波(sin波、cos波)の周波数よりも低く、従って、オフセットレジスタRos1から出力されるオフセット値OSyを安定化させる。
減算器120は、最大値ymaxからオフセット値OSyを減算する。これにより、sin信号の実際の振幅Ayが得られる。本実施形態では、減算器120は、最大値ymaxからオフセット値OSyを減算している。しかし、減算器120は、オフセット値OSyから最小値yminを減算してもよい。このように演算しても、振幅Ayを算出することができるからである。
現実の座標xa(cos信号)についても、現実の座標ya(sin信号)と同様に演算される。それにより、オフセットOSxおよびcos信号の実際の振幅Axが得られる。例えば、検出回路Dxmaxは、現実の座標(xa、ya)のxaの符号が正(+)である期間にサンプリングされた複数の現実の座標のうちxaの最大値xmaxを保持するように構成されている。より詳細には、検出回路Dxmaxは、xaの仮の最大値を保持する仮レジスタPR3と、仮レジスタのデータと現実の座標xaとを比較する比較器COMP3と、最大値xmaxを保持するレジスタRxmaxとを備えている。
仮レジスタPR3は、まず、最初にサンプリングされた現実の座標xaを保持する。比較器COMP3は、次にサンプリングされた現実の座標xaと以前のサンプリングで得られ仮レジスタPR3に格納されたデータとを比較し、より大きい値を仮レジスタPR3へ戻す。これを繰り返すことによって、仮レジスタPR3に格納された値は、サンプリングごとに更新され、最大値xmaxに次第に近づいてゆく。
レジスタRxmaxは、遷移検出回路105からの保持指令によって仮レジスタPR3の値を保持する。この保持指令は、xaの符号が正(+)である期間の終了時に出力される。この時、運動体の1回転または1往復において、仮レジスタPR3に格納された値が最大となっているからである。
仮レジスタPR3は、遷移検出回路105からのリセット指令によってリセットされる。リセット指令は、保持指令と同時、あるいは、その直後に出力される。これにより、レジスタRxmaxが仮レジスタPR3の値を保持した後に、仮レジスタPR3をリセットすることができる。
低域通過フィルタLPF3は、レジスタRxmaxと減算器121との間に設けられている。低域通過フィルタLPF3は、他の低域通過フィルタと同様に、レジスタRxmaxから出力される最大値xmaxを安定化させる。
検出回路Dxminは、xaの符号が負(−)である期間にサンプリングされた複数の現実の座標のうちxaの最小値xminを保持するように構成されている。より詳細には、検出回路Dxminは、xaの仮の最小値を保持する仮レジスタPR4と、仮レジスタのデータと現実の座標xaとを比較する比較器COMP4と、最小値xminを保持するレジスタRxminとを備えている。
仮レジスタPR4は、最初にサンプリングされた現実の座標のxaを保持する。比較器COMP4は、次にサンプリングされたxaと以前のサンプリングで得られ仮レジスタPR4に格納されたデータとを比較し、より小さい値を仮レジスタPR4へ戻す。これを繰り返すことによって、仮レジスタPR4に格納された値は、サンプリングごとに更新され、最小値xminに次第に近づいてゆく。
レジスタRxminは、遷移検出回路105からの保持指令によって仮レジスタPR4の値を保持する。この保持指令は、xaの符号が負(−)である期間の終了時に出力される。この時、運動体の1回転または1往復において、仮レジスタPR4に格納された値が最小となっているからである。レジスタRxminに格納された値は、運動体が1回転または1往復するごとに更新される。
加算器111は、レジスタRxmax、RxminとオフセットレジスタRos2との間に接続されている。加算器111は、xmaxとxminとを加算し、その結果得られた値を2分の1にする。これにより、オフセット値が算出される。実際には、加算器111は、単に、xmaxとxminとを加算し、その加算値の桁を1桁だけ右シフトさせればよい。
加算器111で算出されたオフセット値OSxは、オフセットレジスタRos2に格納される。オフセットレジスタRos2は、遷移検出回路105からの保持指令を受けたときに、オフセット値OSxを保持する。
オフセット値OSxも、レジスタRxmax内の最大値xmaxと同様に、運動体の回転または往復ごとに幾分変化する。そこで、低域通過フィルタLPF4が、オフセットレジスタRos2と減算器121との間に設けられている。低域通過フィルタLPF4は、オフセットレジスタRos2から出力されるオフセット値OSxを安定化させる。
減算器121は、最大値xmaxからオフセット値OSyを減算する。これにより、sin信号の実際の振幅Ayが得られる。本実施形態では、減算器121は、最大値xmaxからオフセット値OSxを減算している。しかし、減算器120は、オフセット値OSxから最小値xminを減算してもよい。このように演算しても、振幅Axを算出することができるからである。
図5は、現実の座標(xa、ya)の遷移に関して、保持指令の対象レジスタおよびリセット指令の対象レジスタを示した表である。現実の座標が0、π/2、πの順に遷移する場合、あるいは、π、π/2、0の順に遷移する場合、yaの符号は正(+)である。よって、現実の座標がこの順に遷移した後、遷移検出回路105は、レジスタRymaxへ保持指令を出力する。レジスタRymaxは、保持指令を受けて、仮レジスタPR1に格納された値をymaxとして保持する。この時、あるいは、この直後、遷移検出回路105は、仮レジスタPR1へリセット指令を出力する。これにより、仮レジスタPR1に格納された値はリセットされる。
現実の座標がπ、(3/2)π、0の順に遷移する場合、あるいは、0、(3/2)π、πの順に遷移する場合、yaの符号が負(−)である。よって、現実の座標が遷移した後、遷移検出回路105は、レジスタyminへ保持指令を出力する。レジスタyminは、保持指令を受けて、仮レジスタPR2に格納された値をyminとして保持する。この時、あるいは、この直後、遷移検出回路105は、仮レジスタPR2へリセット指令を出力する。これにより、仮レジスタPR2に格納された値はリセットされる。
現実の座標が(3/2)π、0、π/2の順に遷移する場合、あるいは、π/2、0、(3/2)πの順に遷移する場合、xaの符号が正(+)である。よって、現実の座標が遷移した後、遷移検出回路105は、レジスタRxmaxへ保持指令を出力する。レジスタRxmaxは、保持指令を受けて、仮レジスタPR3に格納された値をxmaxとして保持する。この時、あるいは、この直後、遷移検出回路105は、仮レジスタPR3へリセット指令を出力する。これにより、仮レジスタPR3に格納された値はリセットされる。
現実の座標がπ/2、π、(3/2)πの順に遷移する場合、あるいは、(3/2)π、π、π/2の順に遷移する場合、xaの符号が負(−)である。よって、現実の座標がこの順に遷移した後、遷移検出回路105は、レジスタRxminへ保持指令を出力する。レジスタRxminは、保持指令を受けて、仮レジスタPR4に格納された値をxminとして保持する。また、この時、あるいは、この直後、遷移検出回路105は、仮レジスタPR4へリセット指令を出力する。これにより、仮レジスタPR4に格納された値はリセットされる。
運動体は、一定速度で一定方向に回転しているとは限らない。従って、レジスタRymaxの更新頻度とRyminの更新頻度とは等しくならない場合がある。レジスタRxmaxの更新頻度とRxminの更新頻度も等しくならない場合がある。例えば、Rymaxの更新頻度がRyminの更新頻度よりも少ない場合、Rymaxの更新期間が長くなる。その期間にオフセット量または運動体の速度が変化すると最大値ymaxが最小値yminに比べ不正確な値となってしまう。このような問題を回避するため、振幅検出部30は、レジスタRyminおよびRymaxをペアで更新し、レジスタRxmaxおよびRxminをペアで更新することが好ましい。
図1を再度参照し、減算器40および41の機能を説明する。減算器40は、振幅検出部30と波形整形部50との間に設けられている。減算器40は、現実の座標yaからオフセット値OSyを減算する。オフセット値OSyが正数である場合、現実の座標yaは、基準軸Yoに対してプラス側にずれている。オフセット値OSyが負数である場合、現実の座標yaは、基準軸Yoに対してマイナス側にずれている。従って、減算器40が(ya−OSy)を演算することによって、オフセット成分が現実の座標yaから除かれる。これにより、第1の補正信号としてのycが得られる。
減算器41も、振幅検出部30と波形整形部50との間に設けられている。減算器41は、現実の座標xaからオフセット値OSxを減算する。オフセット値OSxが正数である場合、現実の座標xaは、基準軸Xoに対してプラス側にずれている。オフセット値OSxが負数である場合、現実の座標xaは、基準軸Xoに対してマイナス側にずれている。従って、減算器40が(xa−OSx)を演算することによって、オフセット成分が現実の座標xaから除かれる。これにより、第1の補正信号としてのxcが得られる。
尚、オフセット値OSy、OSxの符号が反転している場合には、減算器に代えて加算器を第3の演算器40、41として採用すればよい。オフセット値OSy、OSxの符号が反転している場合とは、例えば、オフセットレジスタRos1、Ros2から第3の演算器40、41までの間に、インバータ(図示せず)がバッファとして介在している場合である。
図6は、波形整形部50の内部構成を示すブロック図である。尚、波形整形部50は、独立かつ同一の処理をsin信号およびcos信号のそれぞれに対して実行する。従って、図6では、sin信号に関する波形整形部50を示し、cos信号に関する波形整形部については省略する。図7は、本発明に係る実施形態に従った波形補正装置100の動作を示すフロー図である。
波形整形部50は、第4の演算部51と、第5の演算部52と、第1の選択部56と、第2の選択部57と、第1の計算値レジスタR11と、第2の計算値レジスタR21と、補正値レジスタR31と、比較部COMPと、第1のシフティング部SFT1と、第2のシフティング部SFT2と、シフト量カウンタSCとを備えている。
波形整形部50は、実際の振幅Ayおよび第1の補正信号としてycを受信する。実際の振幅Ayおよび補正信号ycは、それぞれ第1の選択部56および第2の選択部57へ送信される。また、実際の振幅Ayおよび補正信号ycは、それぞれ第1および第2のシフティング部SFT1、SFT2へ送信される。
第1の選択部56は、或る時点のサンプリング直後、最初に実際の振幅Ayを選択し、実際の振幅Ayを比較部COMPおよび第4の演算部51へ送信する。その後、第1の選択部56は、次のサンプリングまで第1の計算値レジスタR11に保持されたデータを比較部COMPおよび第4の演算部51へ送信する。
第2の選択部57は、或る時点のサンプリング直後、最初に補正信号ycを選択し、補正信号ycを第5の演算部52へ送信する。その後、第2の選択部57は、次のサンプリングまで第2の計算値レジスタR21に保持されたデータを第5の演算部52へ送信する。
一方、第1のシフティング部SFT1は、2進数のデジタル値で表現された実際の振幅Ayの桁を右シフトし、シフト後の値を第4の演算部51へ送る。第2のシフティング部SFT2は、2進数のデジタル値で表現された補正信号ycの桁を右シフトし、シフト後の値を第5の演算部52へ送る。
シフト量カウンタSCは、第1および第2のシフティング部SFT1、SFT2においてシフトされるシフト量(桁数)を決定する。サンプリング直後において、シフト量iは1である。その後、第4および第5の演算部51、52の演算の実行ごとに1ずつインクリメントされる。即ち、シフト量iは、演算回数と等しい値である。尚、第1および第2のシフティング部SFT1、SFT2は、それぞれ実際の振幅Ayおよび補正信号ycを同量だけシフトさせる。
比較部COMPは、第1の選択部56で選択された実際の振幅Ayまたは第1の計算値レジスタR11に保持されたデータのいずれかと基準振幅ARyとを比較する。さらに、比較部COMPは、その比較結果に応じて、第4および第5の演算部51,52が実行する演算式として加算または減算のいずれかを決定する。第4および第5の演算部51,52が実行する演算種(加算または減算)は、同一である。即ち、第4の演算部51が加算を実行する場合には、第5の演算部52も加算を実行し、第4の演算部51が減算を実行する場合には、第5の演算部52も減算を実行する。
第4の演算部51は、実際の振幅Ayを基準振幅ARyに収束させるために、第1のシフティング部SFT1で実際の振幅Ayの桁を右シフトした値を、実際の振幅Ayに対して加算または減算する(S60)。尚、第4のおよび第5の演算部51、52の詳細な演算については後述する。第4の演算部51は、この加算または減算によって得られた結果値を第1の計算値レジスタR11へ送る。第1の計算値レジスタR11は、第4の演算部51が演算を実行するごとに更新され、その結果値で以前の結果値を置き換える(S70)。
第5の演算部52は、第4の演算部51と同期して、補正信号ycを正規化信号ycnに収束させるために、補正信号ycの桁を実際の振幅Ayのシフト量と同量だけシフトした値を、補正信号ycに対して加算または減算する(S61)。第5の演算部52は、この加算または減算によって得られた結果値を第2の計算値レジスタR21へ送る。第2の計算値レジスタR21は、第5の演算部52が演算を実行するごとに更新され、その結果値で以前の結果値を置き換える(S71)。
第4および第5の演算部51、52は、実際の振幅Ayの桁の右シフトの量および補正信号ycの桁の右シフトの量を1,2,3・・・と増大させつつ、演算を繰り返し実行する。
実際の振幅Ayまたは第1の計算値レジスタR11に保持されたデータが基準振幅ARyよりも大きい場合には、比較部COMPは、第4および第5の演算部51、52が実行する演算の種類を減算に決定する。実際の振幅Ayまたは第1の計算値レジスタR11に保持されたデータが基準振幅ARyよりも小さい場合には、比較部COMPは、第4および第5の演算部51、52が実行する演算の種類を加算に決定する。これにより、第4の演算部51が演算を繰り返すことによって、第1の計算値レジスタR11に保持されたデータは、基準振幅ARyに収束する。また、第5の演算部52が演算を繰り返すことによって、第2の計算値レジスタR21に保持されたデータは、正規化された信号ycnに収束する。
第4および第5の演算部51、52の演算は、第1の計算値レジスタR11に保持されたデータが基準振幅ARyに収束するまで、あるいは、次のサンプリングが実行されるまで、繰り返し実行される(S80)。第4および第5の演算部51、52の演算の終了後、補正値レジスタR31は、第2の計算値レジスタR21に保持されたデータを補正値レジスタR31に格納する。この補正値レジスタR31に格納されたデータは正規化信号ycnとして位置検出回路や速度検出回路等へ出力される。
次に、第4および第5の演算部51、52の演算を詳細に説明する。補正信号ycは、正規化するために、yc×Dyを実質的に算出する必要がある。ここで、比率Dyは、Dy=Σ((D(i)−BD(i))×2-i)のように2進数で表すことができる。ここで、iは、Dyを2進数で表したときのビット番号を示している。D(1)が最上位ビットの値を示し、iが大きくなるに従って下位ビットの値を示す。BD(i)は、i番目のビットの値を反転した値を示している。従って、(D(i)−BD(i))は、1または−1のいずれかの値を取り得る。つまり、比率Dyは、Dy=±2-1±2-2±2-3・・・のように、2-iの加算または減算を繰り返すことで得られる。この事実を利用することによって、次のように第4および第5の演算部51、52の演算式を求めることができる。
第4の演算部51は、式1または式2のいずれかを実行する。
=Ai−1Ay×2−i (式1)
=Ai−1Ay×2−i (式2)
但し、i=1、2・・・nである。A=Ayである。第4の演算部51は、基準振幅ARyに実際の振幅Ayが収束するまで、あるいは、次のサンプリングが実行されるまで、式1または式2を繰り返し演算する。
実際の振幅Ayが基準振幅ARyよりも小さい場合、比較部COMPは、第4の演算部51の演算式として式1を選択する。実際の振幅Ayが基準振幅ARyよりも大きい場合、比較部COMPは、第4の演算部51の演算式として式2を選択する。これにより、概念的には、第4の演算部51は、Ay±Ay/2±Ay/4±Ay/8±Ay/16・・・を計算する。
第5の演算部52は、式3または式4のいずれかを実行する。
=yi−1yc×2−i (式3)
=yi−1yc×2−i (式4)
但し、y=yである。第5の演算部52は、基準振幅ARyに実際の振幅Ayが収束するまで、あるいは、次のサンプリングが実行されるまで、式3または式4を繰り返し演算する。
実際の振幅Ayが基準振幅ARyよりも小さい場合、比較部COMPは、第5の演算部52の演算式として式3を選択する。実際の振幅Ayが基準振幅ARyよりも大きい場合、比較部COMPは、第5の演算部52の演算式として式4を選択する。これにより、概念的には、第5の演算部52は、ya±ya/2±ya/4±ya/8±ya/16・・・を計算する。
第4および第5の演算部51、52が同期して演算を繰り返すことによって、Aiが基準振幅ARyへ収束すると同時に、yiは、正規化信号ycnへ収束する。
ここで、式1〜式4は、2−iの乗算項を含む。しかし、2−iの乗算は、2進数の値をiビットだけ右シフトすることと等価である。従って、第4および第5の演算部51、52は、実際には、乗算器および除算器を含まず、単に、加算器、減算器およびデジタル値を右シフトさせる回路で構成され得る。
第4および第5の演算部51、52による“収束の精度”は、演算回数に依存する。収束の精度は、yiとycnとの差を示し、その差が小さい方が高精度であると言える。演算回数iを増大させると、収束の精度は高くなり、逆に演算回数iを減少させると、収束の精度は低くなる。シフト量カウンタSCに所定値を演算回数として格納してもよい。この場合、iが制限値に達したときに、第4および第5の演算部51、52の演算は終了する。制限値を任意に設定することによって、収束の精度を任意に設定することができる。
一方、演算が次のサンプリングまで続行され、演算回数iが次のサンプリングまで不定の場合には、次のサンプリング時に、演算回数iは、補正値レジスタR31に正規化信号ycnとともに格納される。演算回数iによって、収束精度を知ることができるからである。
波形整形部50は、sin信号およびcos信号のそれぞれに対応して設けられている。それにより、波形整形部50は、sin信号およびcos信号のそれぞれについて正規化信号ycn、xcnを算出する。即ち、第4および第5の演算部51、52、比較器COMP、第1および第2の計算値レジスタR11、R21、第1および第2の選択部56、57、第1および第2のシフティング部SFT1、SFT2、シフト量カウンタSC、補正値レジスタR31は、sin信号およびcos信号のそれぞれに対応して設けられている。基準振幅はsin信号およびcos信号のそれぞれについて設定されてもよいが、好ましくは、基準振幅はsin信号およびcos信号のについて共通(同一)である。
本実施形態による波形補正装置は、上述のように、乗算器および除算器を有さず、加算器および減算器で構成されている。従って、ロジック回路で構成し易く、また、回路全体の規模が非常に小さいものとなる。さらに、ロジック回路は、反復演算を演算することに適している。従って、本実施形態による波形補正装置をロジック回路で構成することによって、演算速度を高速化することができる。
本実施形態による波形補正装置は、オペレータの目視に頼ることなく、sin信号およびcos信号の正規化を自動で行うことができる。このため、sin信号およびcos信号の高精度な正規化を低コストで短時間に実行することができる。さらに、sin信号およびcos信号の振幅が動的に変化しても、本実施形態による波形補正装置は、その振幅の変換に自動的に素早く追従して、sin信号およびcos信号を正規化することができる。
本発明に係る実施形態に従った波形補正装置100のブロック図。 振幅検出部30の機能を示す概念図。 波形整形部50の機能を示す概念図。 振幅検出部30の内部構成を示すブロック図。 現実の座標(xa、ya)の遷移に関して、保持指令の対象レジスタおよびリセット指令の対象レジスタを示した表。 波形整形部50の内部構成を示すブロック図。 本発明に係る実施形態に従った波形補正装置100の動作を示すフロー図。
符号の説明
100…波形補正装置
20…A/Dコンバータ
10…ロータリエンコーダまたはリニアスケール
30…振幅検出部
40、41…減算器(第3の演算部)
50…波形整形部
101…基準検出回路
102〜104…符号変化レジスタ
105…遷移検出回路
Dymax、Dymin、Dxmax、Dxmin…最大・最小検出回路
110、111…加算器(第1の演算部)
120、121…減算器(第2の演算部)
Ros1、Ros2…オフセットレジスタ
LPF1〜LPF4…低域通過フィルタ
51…第4の演算部
52…第5の演算部
56…第1の選択部
57…第2の選択部
R11…第1の計算値レジスタ
R21…第2の計算値レジスタ
R31…補正値レジスタ
COMP…比較部
SFT1…第1のシフティング部
SFT2…第2のシフティング部
SC…シフト量カウンタ

Claims (13)

  1. 回転運動または往復運動を行う運動体の角度または位置を示す波形信号を周期的にサンプリングし、この信号をデジタル化して得られたデジタル信号を補正する波形補正装置であって、
    或る時点のデジタル信号とそれ以前のサンプリングで得られたデジタル信号とを用いて該デジタル信号の最大値および最小値を検出する最大値・最小値検出部と、
    前記波形信号の中間値として予め設定された基準電位から前記デジタル信号の最大値と最小値との中間値までのオフセット値を算出する第1の演算部と、
    前記デジタル信号の最大値または最小値に対して該オフセット値を減算または加算することによって前記デジタル信号の実際の振幅を算出する第2の演算部と、
    前記或る時点のデジタル信号から前記オフセット値を減算または加算して第1の補正信号を生成する第3の演算部と、
    前記実際の振幅を予め設定された基準振幅に収束させるために、前記実際の振幅の桁を下げる方向へシフトした値を、前記実際の振幅に対して加算または減算する第4の演算部と、
    前記第4の演算部における加算または減算の実行と同時に、前記第1の補正信号を第2の補正信号へ収束させるために、前記第1の補正信号の桁を前記実際の振幅のシフト量と同量だけシフトした値を、前記第1の補正信号に対して前記第4の演算部の演算と同様に加算または減算する第5の演算部と、を備えた波形補正装置。
  2. 前記第4の演算部は、
    =Ai−1Ay×2−i (式1)
    =Ai−1Ay×2−i (式2)
    (但し、i=1、2・・・nである。AAyである。Ayは前記実際の振幅である。)
    予め設定された基準振幅に前記Aが収束するまで、あるいは、次のサンプリングが実行されるまで、式1または式2を繰り返し演算し、
    前記第5の演算部は、
    =yi−1+y×2−i (式3)
    =yi−1−y×2−i (式4)
    (但し、i=1、2・・・nである。y=yである。yは前記第1の補正信号である。)
    予め設定された基準振幅に前記Aが収束するまで、あるいは、次のサンプリングが実行されるまで、式3または式4を繰り返し演算することを特徴とする請求項1に記載の波形補正装置。
  3. 前記実際の振幅が前記基準振幅よりも小さい場合、前記第4の演算部は式1を演算し、かつ前記第5の演算部は式3を演算し、前記実際の振幅が前記基準振幅よりも大きい場合、前記第4の演算部は式2を演算し、かつ前記第5の演算部は式4を演算することを特徴とする請求項2に記載の波形補正装置。
  4. 前記デジタル信号はsin信号およびcos信号で表され、
    前記第1から前記第5の演算部は、前記sin信号および前記cos信号のそれぞれに対応して設けられ、前記sin信号および前記cos信号のそれぞれについて演算を実行することを特徴とする請求項1から請求項3のいずれかに記載の波形補正装置。
  5. 前記sin信号または前記cos信号のいずれか一方の符号が一定である期間の間にサンプリングされた複数の前記デジタル信号のうち、cos信号の最大値xmax、cos信号の最小値xmin、sin信号の最大値ymaxおよびsin信号の最小値yminを保持する最大値・最小値レジスタをさらに備えたことを特徴とする請求項4に記載の波形補正装置。
  6. 前記第1の演算部は、前記デジタル信号の最大値と最小値とを加算し、その値の桁を1桁だけシフトさせる加算器であることを特徴とする請求項1に記載の波形補正装置。
  7. 前記最大値・最小値レジスタと前記第2の演算部との間に設けられた第1の低域通過フィルタと、
    前記第1の演算部と前記第2の演算部との間に設けられた第2の低域通過フィルタとをさらに備えたことを特徴とする請求項5に記載の波形補正装置。
  8. 前記第4の演算部の演算結果を保持する第1の計算値レジスタと、
    前記第5の演算部の演算結果を保持する第2の計算値レジスタと、
    前記サンプリング直後の最初の演算において前記実際の振幅を前記第4の演算部へ送信し、それ以降の演算においては、前記第1の計算値レジスタに保持されたデータを前記第4の演算部へ送信する第1の選択部と、
    前記サンプリング直後の最初の演算において前記第1の補正信号を前記第5の演算部へ送信し、それ以降の演算においては、前記第2の計算値レジスタに保持されたデータを前記第5の演算部へ送信する第2の選択部と、
    前記第1の選択部で選択された前記実際の振幅または前記第1の計算値レジスタに保持されたデータを前記基準振幅と比較し、その比較結果に応じて前記第4の演算部および前記第5の演算部の実行する演算として加算または減算のいずれかを決定する比較部と、
    前記実際の振幅の桁をシフトする第1のシフティング部と、
    前記第1の補正信号の桁をシフトする第2のシフティング部と、
    前記第2の補正信号を保持する補正値レジスタとをさらに備えたことを特徴とする請求項1に記載の波形補正装置。
  9. 前記デジタル信号はsin信号およびcos信号で表され、
    前記第1から前記第5の演算部、前記第1および前記第2の計算値レジスタ、前記第1および前記第2の選択部、前記第1および前記第2のシフティング部、および、前記補正値レジスタは、前記sin信号および前記cos信号のそれぞれに対応して設けられていることを特徴とする請求項8に記載の波形補正装置。
  10. 回転運動または往復運動を行う運動体の位置を示す波形信号を周期的にサンプリングし、この信号をデジタル化して得られたデジタル信号を補正する波形補正方法であって、
    或る時点のデジタル信号とそれ以前のサンプリングで得られたデジタル信号とを用いて前記デジタル信号の最大値および最小値を検出し、
    前記波形信号の中間値として予め設定された基準電位から前記デジタル信号の最大値と最小値との中間値までのオフセット値を算出し(第1の演算)、
    前記デジタル信号の最大値または最小値に対して該オフセット値を減算または加算することによって前記デジタル信号の実際の振幅を算出し(第2の演算)、
    前記或る時点のデジタル信号から前記オフセット値を減算または加算して第1の補正信号を生成し(第3の演算)、
    予め設定された基準振幅に前記実際の振幅を収束させるために、前記実際の振幅の桁を下げる方向へシフトした値を、前記実際の振幅に対して加算または減算し(第4の演算)、
    前記第4の演算における加算または減算の実行と同時に、前記第1の補正信号を第2の補正信号へ収束させるために、前記第1の補正信号の桁を前記実際の振幅のシフト量と同量だけシフトした値を、前記第1の補正信号に対して前記第4の演算と同様に加算または減算する(第5の演算)、ことを具備した波形補正方法。
  11. 前記第4の演算では、
    =Ai−1Ay×2−i (式1)
    =Ai−1Ay×2−i (式2)
    (但し、i=1、2・・・nである。Ayは前記実際の振幅である。AAyである。)
    予め設定された基準振幅に前記Aが収束するまで、あるいは、次のサンプリングが実行されるまで、式1または式2を繰り返し実行し、
    前記第5の演算では、
    =yi−1+y×2−i (式3)
    =yi−1−y×2−i (式4)
    (但し、i=1、2・・・nである。yは前記第1の補正信号である。y=yである。)
    予め設定された基準振幅に前記yが収束するまで、あるいは、次のサンプリングが実行されるまで、式3または式4を繰り返し実行することを特徴とする請求項10に記載の波形補正方法。
  12. 前記実際の振幅が前記基準振幅よりも小さい場合、前記第4の演算では式1を実行し、かつ前記第5の演算では式3を実行し、前記実際の振幅が前記基準振幅よりも大きい場合、前記第4の演算では式2を実行し、かつ前記第5の演算では式4を実行することを特徴とする請求項11に記載の波形補正方法。
  13. 前記デジタル信号はsin信号およびcos信号で表され、
    前記第1から前記第5の演算は、前記sin信号および前記cos信号のそれぞれについて実行されることを特徴とする請求項10から請求項12のいずれかに記載の波形補正方法。
JP2007019682A 2007-01-30 2007-01-30 波形補正装置および波形補正方法 Active JP5079346B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2007019682A JP5079346B2 (ja) 2007-01-30 2007-01-30 波形補正装置および波形補正方法
DE102008006526A DE102008006526B4 (de) 2007-01-30 2008-01-29 Wellenform-Korrekturvorrichtung und Wellenform-Korrekturverfahren
US12/021,493 US8219603B2 (en) 2007-01-30 2008-01-29 Waveform correction apparatus and waveform correction method
TW097103314A TW200842315A (en) 2007-01-30 2008-01-29 Waveform correction apparatus and waveform correction method
KR1020080009026A KR100978423B1 (ko) 2007-01-30 2008-01-29 파형 보정 장치 및 파형 보정 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007019682A JP5079346B2 (ja) 2007-01-30 2007-01-30 波形補正装置および波形補正方法

Publications (2)

Publication Number Publication Date
JP2008185474A JP2008185474A (ja) 2008-08-14
JP5079346B2 true JP5079346B2 (ja) 2012-11-21

Family

ID=39564174

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007019682A Active JP5079346B2 (ja) 2007-01-30 2007-01-30 波形補正装置および波形補正方法

Country Status (5)

Country Link
US (1) US8219603B2 (ja)
JP (1) JP5079346B2 (ja)
KR (1) KR100978423B1 (ja)
DE (1) DE102008006526B4 (ja)
TW (1) TW200842315A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5190644B2 (ja) * 2008-09-24 2013-04-24 日本電産サンキョー株式会社 エンコーダの誤差補正方法
DE102009022084B4 (de) * 2009-05-20 2015-07-09 Sew-Eurodrive Gmbh & Co Kg Verfahren zur Bestimmung der Winkelstellung eines drehbaren Teils
JP5602420B2 (ja) 2009-12-10 2014-10-08 キヤノン株式会社 変位測定装置、露光装置、及び精密加工機器
JP6222425B2 (ja) * 2013-04-24 2017-11-01 セイコーエプソン株式会社 物理量検出回路、物理量検出装置、電子機器及び移動体
JP6940955B2 (ja) * 2017-02-14 2021-09-29 日本電産サンキョー株式会社 ロータリエンコーダ
JP2022111803A (ja) * 2021-01-20 2022-08-01 キヤノン株式会社 被検物の位置又は角度を算出する算出方法、プログラム、情報処理装置及びシステム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4458322A (en) * 1981-06-19 1984-07-03 Manhattan Engineering Co., Inc. Control of page storage among three media using a single channel processor program and a page transfer bus
JPH06167354A (ja) 1992-11-27 1994-06-14 Sony Magnescale Inc スケールの内挿処理装置
JPH07218288A (ja) * 1994-01-28 1995-08-18 Mitsubishi Electric Corp 絶対位置検出装置及びその誤差補正方法
JP2002243501A (ja) 2001-02-16 2002-08-28 Canon Inc エンコーダ出力信号の自動調整装置
TW579424B (en) 2001-07-09 2004-03-11 Shell Int Research Vibration analysis for predictive maintenance in machinery
JP2004045286A (ja) * 2002-07-12 2004-02-12 Denso Corp レゾルバ補正方法
EP1471332A1 (en) * 2003-04-17 2004-10-27 Dialog Semiconductor GmbH Digital interface for an angular sensor
DE10334869B3 (de) * 2003-07-29 2004-09-16 Tech3 E.K. Drehwinkelsensor
CN1882822A (zh) * 2003-11-18 2006-12-20 皇家飞利浦电子股份有限公司 位置确定
JP2005208028A (ja) * 2003-12-22 2005-08-04 Minebea Co Ltd バリアブルリラクタンスレゾルバ用角度演算方法とそのための角度演算装置
JP4429888B2 (ja) 2004-12-16 2010-03-10 アルプス電気株式会社 補償機能を備えた角度検出センサ
JP4524652B2 (ja) 2005-07-06 2010-08-18 ソニー株式会社 Ad変換装置並びに半導体装置
JP4453758B2 (ja) * 2006-06-19 2010-04-21 パナソニック株式会社 エンコーダ信号の位相補正回路
JP4987448B2 (ja) * 2006-12-05 2012-07-25 東芝機械株式会社 速度検出装置
JP2010164541A (ja) * 2009-01-19 2010-07-29 Canon Inc 処理装置

Also Published As

Publication number Publication date
KR100978423B1 (ko) 2010-08-26
KR20080071507A (ko) 2008-08-04
DE102008006526B4 (de) 2011-06-30
TWI359940B (ja) 2012-03-11
JP2008185474A (ja) 2008-08-14
US8219603B2 (en) 2012-07-10
DE102008006526A1 (de) 2008-07-31
TW200842315A (en) 2008-11-01
US20080215661A1 (en) 2008-09-04

Similar Documents

Publication Publication Date Title
JP5079346B2 (ja) 波形補正装置および波形補正方法
JP4768248B2 (ja) エンコーダ出力信号補正装置及び方法
JP4713123B2 (ja) エンコーダ出力信号補正装置
KR0169550B1 (ko) 절대위치 검출장치 및 그 에러 보정방법
TWI438408B (zh) 偵測裝置
CN109959400B (zh) 绝对编码器参数计算的方法、装置及终端设备
EP3529880B1 (en) Correcting offset and gain drift related angle errors with motor position detectors
CN108375391B (zh) 正余弦信号处理方法及系统
JP2010216961A (ja) エンコーダ出力信号補正装置及び方法
US11788867B2 (en) Incremental encoder position interpolation
JP5249158B2 (ja) エンコーダーのオフセット値補正方法
JP2017151061A (ja) 内挿方法及び内挿装置
JP2014025871A (ja) エンコーダ出力信号補正装置
JP4757328B2 (ja) 逆正接演算装置及び逆正接演算プログラム
KR100959215B1 (ko) 속도 검출 장치
JP2005257565A (ja) レゾルバディジタル角度変換装置および方法ならびにプログラム
JP5190644B2 (ja) エンコーダの誤差補正方法
JP2003222534A (ja) 位相差誤差検出装置及びそれを用いた内挿誤差見積装置
JP4987269B2 (ja) 速度検出装置およびサーボモータ
US8401817B2 (en) Velocity detection device and servomotor
JP4713117B2 (ja) エンコーダの出力信号補正装置及び方法
JP2008185486A (ja) 振幅検出装置
JP2020016452A (ja) 回転角センサの信号処理回路および回転角センサの信号処理方法
JP2021012052A (ja) 座標データ回転演算装置及び座標データ回転演算方法
JP3967963B2 (ja) アブソリュート変位検出装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091125

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111122

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120803

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120829

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5079346

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350