JP2020190499A - エンコーダ装置 - Google Patents
エンコーダ装置 Download PDFInfo
- Publication number
- JP2020190499A JP2020190499A JP2019096460A JP2019096460A JP2020190499A JP 2020190499 A JP2020190499 A JP 2020190499A JP 2019096460 A JP2019096460 A JP 2019096460A JP 2019096460 A JP2019096460 A JP 2019096460A JP 2020190499 A JP2020190499 A JP 2020190499A
- Authority
- JP
- Japan
- Prior art keywords
- pulse signal
- encoder
- count value
- angle
- maximum count
- 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.)
- Withdrawn
Links
Images
Landscapes
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
【課題】エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、精度よく角度計算を行うことが可能なエンコーダ装置を提供する。【解決手段】Z相パルス信号が入力される毎に、パルス信号のパルス数の最大カウント値を取得して、複数の最大カウント値を保持する取得部11と、複数の最大カウント値を用いて平滑化処理を行う平滑化処理部12と、平滑化された補正最大カウント値を用いて角度計算を行う角度計算部13とを備えるエンコーダ10。【選択図】図2
Description
本発明は、エンコーダ装置に関する。
一般に、ロボットの関節の駆動には、ブラシレスDCサーボモータ等の回転モータであるサーボモータが用いられる。ロボットの関節の角度制御は、サーボモータの出力軸に直結されたエンコーダで、サーボモータの出力軸の回転角度を検出して行われる。
このようなモータの回転角度を検出する技術として、例えば、特許文献1に記載された技術がある。特許文献1では、検出対象の角度情報を検出する多極光学式エンコーダと、多極光学式エンコーダからのアナログの電気角情報を予め設定した分解能のデジタルの電気角情報に変換する逓倍回路とを含む角度検出装置が開示されている。角度検出装置は、更に、逓倍回路からのデジタルの電気角情報(θed)に基づき、該電気角情報(θed)に含まれる誤差成分を補正すると共に、検出対象のデジタル機械角情報(θmd)を演算する。
HSR(Human Support Robot)などのサービスロボットでは、家庭内で人と協調して作業をするために、静粛性が求められる。そのため、モータは正弦波駆動が必要であり、モータには1回転あたり1000パルス以上のパルス数のパルス信号を出力するエンコーダが取り付けられる。
一方、多関節構造とサーボモータによって動作するマニピュレータを備えるロボットは関節の数(軸数)が多いため、安価なモータが求められる。そのため、安価で高出力パルス数のエンコーダが必要となる。しかしながら、この場合、エンコーダから出力されるパルス信号にノイズが乗りやすくなる。このような高ノイズ環境下では、しばしばエンコーダからのパルス信号のパルス抜けが発生する。
特許文献1では、エンコーダにおいて検出された電気角情報を逓倍し、逓倍した電気角情報に含まれる誤差成分を補正している。しかし、上記のように、エンコーダからのパルス信号にパルス抜けが発生した場合、誤差の補正精度が悪化し、正確な角度情報を得ることができない。
本発明は、このような問題に鑑みてなされたものであり、本発明の目的は、エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、精度よく角度計算を行うことが可能なエンコーダ装置を提供することである。
本発明の一態様に係るエンコーダ装置は、Z相パルス信号が入力される毎に、パルス信号のパルス数の最大カウント値を取得して、複数の最大カウント値を保持する取得部と、複数の前記最大カウント値を用いて平滑化処理を行う平滑化処理部と、平滑化された補正最大カウント値を用いて角度計算を行う角度計算部とを備えるものである。
本発明によれば、エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、精度よく角度計算を行うことが可能なエンコーダ装置を提供することができる。
以下、図面を参照して本発明の実施形態について説明する。各図における同等の構成要素には同一の符号を付し、重複する説明を省略する。
実施の形態は、例えば、ロボットの関節を駆動するブラシレスDCサーボモータ等のモータ制御に必要なロータ角度を検出するエンコーダ装置に関する。図1は、実施の形態に係るエンコーダ10とBLDCモータとアンプとの接続状態を示すブロック図である。ここでは、モータの一例として、ブラシレスDCサーボモータ(以下、BLDCモータ)20が用いられる。BLDCモータ20は、例えば、三相ブラシレスDCサーボモータである。
BLDCモータ20は、ロータ、ステータ等を備える一般的な構成のものを用いることができる。BLDCモータ20においては、永久磁石タイプのロータが回転軸と一体に形成される。これらは、ブラシレスDCサーボモータのハウジングに設けられた軸受により、回転自在に保持される。BLDCモータ20の3相(U相、V相、W相)の各ステータコイルには、駆動トルクや速度指令等に応じて電流の制御された電力が供給される。各ステータコイルに供給される電流の位相を制御することで、ロータが回転する。BLDCモータ20の駆動電流の波形には正弦波が用いられる。周波数、振幅、位相を制御することによりBLDCモータ20が効率よく駆動される。
BLDCモータ20の出力軸の一端には、エンコーダ10が接続される。エンコーダ10は、出力軸の回転に伴うインクリメンタルな信号(A相パルス信号、B相パルス信号)を出力するロータリーエンコーダである。エンコーダ10は、例えば、BLDCモータ20に連結された回転軸にスリットを有する回転板が取り付けられた、周知の光学式のインクリメンタル形ロータリーエンコーダとして構成され得る。
エンコーダ10は、位相が90度ずれたA相パルス信号、B相パルス信号をロータの回転に同期して出力する。A相パルス信号とB相パルス信号の位相関係によって、BLDCモータ20が正転か逆転かを知ることができる。A相パルス信号、B相パルス信号は回転角度に応じた数のパルスを含む。エンコーダ10は、A相パルス信号、B相パルス信号のパルス数をカウントしたカウント値を生成する。また、エンコーダ10は、ロータが規定の基準位置に到達した際にZ相パルス信号を出力する。Z相パルス信号は、BLDCモータ20のロータが1回転する毎に1回出力されるインデックスパルスである。
エンコーダ10は、A相パルス信号及びB相パルス信号に基づいて基準角度からの回転量を、Z相信号に基づいてロータの絶対位置を計算する。より具体的に説明すると、エンコーダ10は、A相パルス信号及びB相パルス信号のエッジをカウントし、そのカウント値に基づいて、基準角度からの回転量、ひいては、現在の回転角度を算出する。また、エンコーダ10は、Z相パルス信号を受信したとき、A相パルス信号及びB相パルス信号のカウント値をリセットし、回転角度も基準角度にリセットする。ここでは、パルス信号の予め設定される設定最大カウント値は、一例として、1000であるものとする。
エンコーダ10、BLDCモータ20には、バッテリー(不図示)とアンプ30が接続される。アンプ30は、エンコーダ10により算出されるBLDCモータ20のロータ角度及び角速度に基づいて、BLDCモータ20を制御する。すなわち、アンプ30は、エンコーダ10により算出される角度に応じて予め規定された処理を行う。
ここで、図6〜8を参照して、実施の形態において解決すべき問題点について説明する。図6は、エンコーダから出力される正常なパルス信号の波形を示す図であり、図7は、パルス信号にノイズがのった場合の波形を示す図である。図6、図7において、上側から順に、A相パルス信号、B相パルス信号、Z相パルス信号の波形が示されている。なお、図6、図7に示す例は、同一のモータを用いて、同一の制御を行ったものであるが、異なるエンコーダを用いている。図7に示す例で用いたエンコーダが、図6に示す例で用いたものよりも、出力パルス数が多いものである。
BLDCモータ20のロータ角度は、通常、パルス信号をカウントしたカウント値を設定最大カウント値(1000)で除算し、2πを乗算することで得られる。これにより、BLDCモータ20のロータが0〜2πのいずれの位置にあるのかがわかる。図6に示すように、正常な状態では、A相パルス信号とB相パルス信号のH、Lが交互になっている。この場合、Z相パルス信号の受信によってカウント値がリセットされた後、A相、B相パルス信号のカウント値が順次インクリメントされる。そのため、パルス信号が正常に入力された場合、カウント値が0のときロータの位置は「0」であり、カウント値が最大値である1000のときロータの位置は「2π」である。
これに対し、図7に示すように、ノイズの影響により、A相パルス信号、B相パルス信号が正確に受信されず、パルス抜けが発生したとする。この場合、パルス信号のエッジのカウントが行われない。この場合、カウント値が設定最大カウント値(1000)になる前にZ相パルス信号が入力され、カウント値が0にリセットされる。
パルス抜けが発生している間は、エンコーダ10において、角度の更新が行なわれない。その結果、実際のロータの角度は変化しているにも関わらず、エンコーダ10から出力される角度は一定値を保ったままとなる。パルス抜けが解消されて、A相、B相パルス信号が正確に受信できるようになると、再度、エンコーダ10において角度の更新が行なわれるが、パルス抜けの間に生じた実際の角度と算出された角度との誤差は、そのまま残存する。
図8は、エンコーダ10のパルス信号のカウント値と、3相モータ電流の関係を示す。図8において、上側から順に、エンコーダ10におけるパルス信号のカウント値、該カウント値をBLDCモータ20の誘起電圧の位相に合わせてオフセットしたオフセットカウント値が示されている。なお、ここでは、オフセットカウント値は、U相のステータコイルの誘起電圧のゼロクロスを0度に合わせたものである。また、図8の最下部には、BLDCモータ20の3相(U相、V相、W相)の電流の波形が示されている。
図8中矢印で示すように、パルス抜けが発生した分だけカウント値が連続的に増加しない部分が発生すると、3相電流波形に大きな乱れが発生してしまう。また、パルス抜けが発生したカウント値と設定最大カウント値を用いて算出されるロータ角度と実際のロータ角度との間に誤差が発生する。そこで、本発明者は、このような問題点を解決すべく、以下の構成を考案した。
図2は、実施の形態に係るエンコーダ10の構成を示すブロック図である。実施の形態に係るエンコーダ10は、Z相パルス信号が入力される毎に、パルス信号のパルス数の最大カウント値を取得して、複数の最大カウント値を保持する取得部11と、複数の最大カウント値を用いて平滑化処理を行う平滑化処理部12と、平滑化された補正最大カウント値を用いて角度計算を行う角度計算部13とを備えるものである。このように、設定最大カウント値の代わりに、複数の最大カウント値を平滑化した補正最大カウント値を用いて角度計算を行うことで、エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、精度よく角度計算を行うことが可能となる。
図3は、実施の形態の最大カウント値補正処理の一例を示すフロー図である。図3に示すように、まず、Z相パルス信号が入力されたか否かが判断される(ステップS11)。Z相パルス信号が入力されていない場合(ステップS11、NO)、処理は終了する。この場合、上述したように、設定最大カウント値を用いてロータ角度の計算が行われる。
一方、Z相パルス信号が入力された場合(ステップS11、YES)、A相、B相パルス信号のパルス数の最大カウント値が取得される(ステップS12)。取得部11では、Z相パルス信号が入力される毎に、最大カウント値が取得され、複数の最大カウント値が保持される。
なお、Z相パルス信号入力時の最大カウント値が設定大カウント値と等しい場合、パルス抜けは0である。この最大カウント値が設定最大カウント値より小さい場合、パルス抜けが発生したことを示している。例えば、ここでは、5つの最大カウント値が保持されるものとする。設定最大カウント値を1000としたときにおいて、各最大カウント値が以下の値であったときのパルス抜けの回数は、以下の通りである。
(1)995 パルス抜け5回
(2)1000 パルス抜け0回
(3)998 パルス抜け2回
(4)997 パルス抜け3回
(5)1000 パルス抜け0回
(1)995 パルス抜け5回
(2)1000 パルス抜け0回
(3)998 パルス抜け2回
(4)997 パルス抜け3回
(5)1000 パルス抜け0回
次に、取得部11において保持される複数の最大カウント値を用いて平滑化処理を行う(ステップS13)。ここでは、平滑化処理の一例として、単純平均処理を行うものとする。上記の(1)〜(5)の平均値は、998となる。なお、平滑化処理としては、単純平均処理に限定されず、移動平均処理やローパスフィルタ処理を行ってもよい。そして、平滑化された最大カウント値を補正最大カウント値として更新する(ステップS14)。
次に、最大カウント値補正処理を行った後の、ロータ角度の計算処理について説明する。図4は、実施の形態の角度計算処理を示すフロー図である。図4に示すように、まず、パルス信号のカウント値が入力される(ステップS21)。そして、入力されたカウント値を図3のフローで得られた補正最大カウント値(998)で除算する(ステップS22)。この値に2πを乗算する(ステップS23)ことで、ロータ角度が得られる。
このように、ロータ角度の計算に、複数の最大カウント値を平均した補正最大カウント値を用いることで、角度の急変を最小化することができる。なお、次にZ相パルス信号が入力されるまでは、補正最大カウント値の更新は行われず、当該補正最大カウント値を用いて、ロータ角度の計算が行われる。
図5は、実施の形態の最大カウント値補正処理の他の例を示すフロー図である。図5において、図3と同一の処理には同一の符号を付している。図5に示す例では、図3に示す例のステップS14の後に、補正最大カウント値を不揮発性メモリに保存する処理(ステップS15)が追加されている。
図3に示す例では、電源を再投入した場合、ロータ角度の計算には予め設定された設定最大カウント値が用いられる。これに対し、図5に示す例では、補正最大アカウント値の更新が行われた後に(ステップS14)、該補正最大カウント値が不揮発性メモリに保持される(ステップS15)。これにより、次回の電源投入時には、不揮発性メモリに保持された、複数の最大アカウント値を平滑化した補正最大アカウント値を用いて、ロータ角度の計算を行うことができる。
以上説明したように、本発明によれば、エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、パルス抜けに合わせて角度計算を行うことができる。このように、精度よく角度計算を行うことで、モータを搭載したロボットに振動などが発生しないようにできる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。実施の形態は、電気自動車やハイブリッド自動車における駆動用モータのロータ角度検出に用いることも可能である。
10 エンコーダ
11 取得部
12 平滑化処理部
13 角度計算部
20 BLDCモータ
30 アンプ
11 取得部
12 平滑化処理部
13 角度計算部
20 BLDCモータ
30 アンプ
Claims (1)
- Z相パルス信号が入力される毎に、パルス信号のパルス数の最大カウント値を取得して、複数の最大カウント値を保持する取得部と、
複数の前記最大カウント値を用いて平滑化処理を行う平滑化処理部と、
平滑化された補正最大カウント値を用いて角度計算を行う角度計算部と、
を備える、
エンコーダ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019096460A JP2020190499A (ja) | 2019-05-23 | 2019-05-23 | エンコーダ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019096460A JP2020190499A (ja) | 2019-05-23 | 2019-05-23 | エンコーダ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020190499A true JP2020190499A (ja) | 2020-11-26 |
Family
ID=73453673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019096460A Withdrawn JP2020190499A (ja) | 2019-05-23 | 2019-05-23 | エンコーダ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020190499A (ja) |
-
2019
- 2019-05-23 JP JP2019096460A patent/JP2020190499A/ja not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8471506B2 (en) | Motor control apparatus | |
JP5494662B2 (ja) | 回転角検出装置 | |
JP4483009B2 (ja) | モータ制御装置 | |
JP5172998B2 (ja) | 永久磁石同期電動機の永久磁石の不可逆減磁が発生したか否かを検出する制御装置 | |
WO2012008107A1 (ja) | 位相ずれ検出装置、モータ駆動装置、およびブラシレスモータ、並びに位相ずれ検出方法 | |
US6121744A (en) | Control apparatus for position control motor | |
JP6344151B2 (ja) | 位置推定装置、モータ駆動制御装置、位置推定方法及びプログラム | |
US7696712B2 (en) | Motor controller providing position feedback correction | |
CN109863683B (zh) | 电动机驱动装置以及电动机驱动装置的控制方法 | |
EP1821401B1 (en) | Improved method and apparatus for movable element position detection in an electrically commutated machine | |
CN110661469B (zh) | 电动机控制装置 | |
JP6844617B2 (ja) | モータモジュール、モータステップ動作制御システム、およびモータ制御装置 | |
JP3690338B2 (ja) | モータ制御装置 | |
KR101655297B1 (ko) | 리니어 홀 센서 위치보정장치 및 그 위치보정방법 | |
JP6780855B2 (ja) | サーボアクチュエータ | |
JP2020190499A (ja) | エンコーダ装置 | |
JP2017073942A (ja) | モータ制御装置 | |
JP2021025960A (ja) | エンコーダ装置 | |
JP2941790B1 (ja) | パルス計数器 | |
JPH0854205A (ja) | 回転電機の回転位置検出装置 | |
JP6340899B2 (ja) | 位相検出装置、モータ駆動制御装置およびモータ装置 | |
JP3288822B2 (ja) | ブラシレスモータの制御方式 | |
KR100630991B1 (ko) | 영구자석형 동기전동기 초기 전기각 보정 장치 | |
JP2005137080A (ja) | モータ制御装置 | |
JP2007166687A (ja) | モータ装置及びモータ駆動制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20211224 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20220829 |