(57)【要約】      （修正有）【課題】エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、精度よく角度計算を行うことが可能なエンコーダ装置を提供する。【解決手段】Ｚ相パルス信号が入力される毎に、パルス信号のパルス数の最大カウント値を取得して、複数の最大カウント値を保持する取得部１１と、複数の最大カウント値を用いて平滑化処理を行う平滑化処理部１２と、平滑化された補正最大カウント値を用いて角度計算を行う角度計算部１３とを備えるエンコーダ１０。【選択図】図２
2020190499.tif 000002
【特許請求の範囲】
【請求項１】
Ｚ相パルス信号が入力される毎に、パルス信号のパルス数の最大カウント値を取得して、複数の最大カウント値を保持する取得部と、
複数の前記最大カウント値を用いて平滑化処理を行う平滑化処理部と、
平滑化された補正最大カウント値を用いて角度計算を行う角度計算部と、
を備える、
エンコーダ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダ装置に関する。
【背景技術】
【０００２】
一般に、ロボットの関節の駆動には、ブラシレスＤＣサーボモータ等の回転モータであるサーボモータが用いられる。ロボットの関節の角度制御は、サーボモータの出力軸に直結されたエンコーダで、サーボモータの出力軸の回転角度を検出して行われる。
【０００３】
このようなモータの回転角度を検出する技術として、例えば、特許文献１に記載された技術がある。特許文献１では、検出対象の角度情報を検出する多極光学式エンコーダと、多極光学式エンコーダからのアナログの電気角情報を予め設定した分解能のデジタルの電気角情報に変換する逓倍回路とを含む角度検出装置が開示されている。角度検出装置は、更に、逓倍回路からのデジタルの電気角情報（θｅｄ）に基づき、該電気角情報（θｅｄ）に含まれる誤差成分を補正すると共に、検出対象のデジタル機械角情報（θｍｄ）を演算する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−３８３０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＨＳＲ（Human Support Robot）などのサービスロボットでは、家庭内で人と協調して作業をするために、静粛性が求められる。そのため、モータは正弦波駆動が必要であり、モータには１回転あたり１０００パルス以上のパルス数のパルス信号を出力するエンコーダが取り付けられる。
【０００６】
一方、多関節構造とサーボモータによって動作するマニピュレータを備えるロボットは関節の数（軸数）が多いため、安価なモータが求められる。そのため、安価で高出力パルス数のエンコーダが必要となる。しかしながら、この場合、エンコーダから出力されるパルス信号にノイズが乗りやすくなる。このような高ノイズ環境下では、しばしばエンコーダからのパルス信号のパルス抜けが発生する。
【０００７】
特許文献１では、エンコーダにおいて検出された電気角情報を逓倍し、逓倍した電気角情報に含まれる誤差成分を補正している。しかし、上記のように、エンコーダからのパルス信号にパルス抜けが発生した場合、誤差の補正精度が悪化し、正確な角度情報を得ることができない。
【０００８】
本発明は、このような問題に鑑みてなされたものであり、本発明の目的は、エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、精度よく角度計算を行うことが可能なエンコーダ装置を提供することである。
【課題を解決するための手段】
【０００９】
本発明の一態様に係るエンコーダ装置は、Ｚ相パルス信号が入力される毎に、パルス信号のパルス数の最大カウント値を取得して、複数の最大カウント値を保持する取得部と、複数の前記最大カウント値を用いて平滑化処理を行う平滑化処理部と、平滑化された補正最大カウント値を用いて角度計算を行う角度計算部とを備えるものである。
【発明の効果】
【００１０】
本発明によれば、エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、精度よく角度計算を行うことが可能なエンコーダ装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態に係るエンコーダとＢＬＤＣモータとアンプとが接続されている状態を示すブロック図である。
【図２】実施の形態に係るエンコーダの構成を示すブロック図である。
【図３】実施の形態の最大カウント値補正処理の一例を示すフロー図である。
【図４】実施の形態の角度計算処理を示すフロー図である。
【図５】実施の形態の最大カウント値補正処理の他の例を示すフロー図である。
【図６】エンコーダから出力される正常なパルス信号の波形を示す図である。
【図７】エンコーダから出力されるパルス信号にノイズがのった場合の波形を示す図である。
【図８】エンコーダのパルス信号のカウント値と、３相モータ電流の関係を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。各図における同等の構成要素には同一の符号を付し、重複する説明を省略する。
【００１３】
実施の形態は、例えば、ロボットの関節を駆動するブラシレスＤＣサーボモータ等のモータ制御に必要なロータ角度を検出するエンコーダ装置に関する。図１は、実施の形態に係るエンコーダ１０とＢＬＤＣモータとアンプとの接続状態を示すブロック図である。ここでは、モータの一例として、ブラシレスＤＣサーボモータ（以下、ＢＬＤＣモータ）２０が用いられる。ＢＬＤＣモータ２０は、例えば、三相ブラシレスＤＣサーボモータである。
【００１４】
ＢＬＤＣモータ２０は、ロータ、ステータ等を備える一般的な構成のものを用いることができる。ＢＬＤＣモータ２０においては、永久磁石タイプのロータが回転軸と一体に形成される。これらは、ブラシレスＤＣサーボモータのハウジングに設けられた軸受により、回転自在に保持される。ＢＬＤＣモータ２０の３相（Ｕ相、Ｖ相、Ｗ相）の各ステータコイルには、駆動トルクや速度指令等に応じて電流の制御された電力が供給される。各ステータコイルに供給される電流の位相を制御することで、ロータが回転する。ＢＬＤＣモータ２０の駆動電流の波形には正弦波が用いられる。周波数、振幅、位相を制御することによりＢＬＤＣモータ２０が効率よく駆動される。
【００１５】
ＢＬＤＣモータ２０の出力軸の一端には、エンコーダ１０が接続される。エンコーダ１０は、出力軸の回転に伴うインクリメンタルな信号（Ａ相パルス信号、Ｂ相パルス信号）を出力するロータリーエンコーダである。エンコーダ１０は、例えば、ＢＬＤＣモータ２０に連結された回転軸にスリットを有する回転板が取り付けられた、周知の光学式のインクリメンタル形ロータリーエンコーダとして構成され得る。
【００１６】
エンコーダ１０は、位相が９０度ずれたＡ相パルス信号、Ｂ相パルス信号をロータの回転に同期して出力する。Ａ相パルス信号とＢ相パルス信号の位相関係によって、ＢＬＤＣモータ２０が正転か逆転かを知ることができる。Ａ相パルス信号、Ｂ相パルス信号は回転角度に応じた数のパルスを含む。エンコーダ１０は、Ａ相パルス信号、Ｂ相パルス信号のパルス数をカウントしたカウント値を生成する。また、エンコーダ１０は、ロータが規定の基準位置に到達した際にＺ相パルス信号を出力する。Ｚ相パルス信号は、ＢＬＤＣモータ２０のロータが１回転する毎に１回出力されるインデックスパルスである。
【００１７】
エンコーダ１０は、Ａ相パルス信号及びＢ相パルス信号に基づいて基準角度からの回転量を、Ｚ相信号に基づいてロータの絶対位置を計算する。より具体的に説明すると、エンコーダ１０は、Ａ相パルス信号及びＢ相パルス信号のエッジをカウントし、そのカウント値に基づいて、基準角度からの回転量、ひいては、現在の回転角度を算出する。また、エンコーダ１０は、Ｚ相パルス信号を受信したとき、Ａ相パルス信号及びＢ相パルス信号のカウント値をリセットし、回転角度も基準角度にリセットする。ここでは、パルス信号の予め設定される設定最大カウント値は、一例として、１０００であるものとする。
【００１８】
エンコーダ１０、ＢＬＤＣモータ２０には、バッテリー（不図示）とアンプ３０が接続される。アンプ３０は、エンコーダ１０により算出されるＢＬＤＣモータ２０のロータ角度及び角速度に基づいて、ＢＬＤＣモータ２０を制御する。すなわち、アンプ３０は、エンコーダ１０により算出される角度に応じて予め規定された処理を行う。
【００１９】
ここで、図６〜８を参照して、実施の形態において解決すべき問題点について説明する。図６は、エンコーダから出力される正常なパルス信号の波形を示す図であり、図７は、パルス信号にノイズがのった場合の波形を示す図である。図６、図７において、上側から順に、Ａ相パルス信号、Ｂ相パルス信号、Ｚ相パルス信号の波形が示されている。なお、図６、図７に示す例は、同一のモータを用いて、同一の制御を行ったものであるが、異なるエンコーダを用いている。図７に示す例で用いたエンコーダが、図６に示す例で用いたものよりも、出力パルス数が多いものである。
【００２０】
ＢＬＤＣモータ２０のロータ角度は、通常、パルス信号をカウントしたカウント値を設定最大カウント値（１０００）で除算し、２πを乗算することで得られる。これにより、ＢＬＤＣモータ２０のロータが０〜２πのいずれの位置にあるのかがわかる。図６に示すように、正常な状態では、Ａ相パルス信号とＢ相パルス信号のＨ、Ｌが交互になっている。この場合、Ｚ相パルス信号の受信によってカウント値がリセットされた後、Ａ相、Ｂ相パルス信号のカウント値が順次インクリメントされる。そのため、パルス信号が正常に入力された場合、カウント値が０のときロータの位置は「０」であり、カウント値が最大値である１０００のときロータの位置は「２π」である。
【００２１】
これに対し、図７に示すように、ノイズの影響により、Ａ相パルス信号、Ｂ相パルス信号が正確に受信されず、パルス抜けが発生したとする。この場合、パルス信号のエッジのカウントが行われない。この場合、カウント値が設定最大カウント値（１０００）になる前にＺ相パルス信号が入力され、カウント値が０にリセットされる。
【００２２】
パルス抜けが発生している間は、エンコーダ１０において、角度の更新が行なわれない。その結果、実際のロータの角度は変化しているにも関わらず、エンコーダ１０から出力される角度は一定値を保ったままとなる。パルス抜けが解消されて、Ａ相、Ｂ相パルス信号が正確に受信できるようになると、再度、エンコーダ１０において角度の更新が行なわれるが、パルス抜けの間に生じた実際の角度と算出された角度との誤差は、そのまま残存する。
【００２３】
図８は、エンコーダ１０のパルス信号のカウント値と、３相モータ電流の関係を示す。図８において、上側から順に、エンコーダ１０におけるパルス信号のカウント値、該カウント値をＢＬＤＣモータ２０の誘起電圧の位相に合わせてオフセットしたオフセットカウント値が示されている。なお、ここでは、オフセットカウント値は、Ｕ相のステータコイルの誘起電圧のゼロクロスを０度に合わせたものである。また、図８の最下部には、ＢＬＤＣモータ２０の３相（Ｕ相、Ｖ相、Ｗ相）の電流の波形が示されている。
【００２４】
図８中矢印で示すように、パルス抜けが発生した分だけカウント値が連続的に増加しない部分が発生すると、３相電流波形に大きな乱れが発生してしまう。また、パルス抜けが発生したカウント値と設定最大カウント値を用いて算出されるロータ角度と実際のロータ角度との間に誤差が発生する。そこで、本発明者は、このような問題点を解決すべく、以下の構成を考案した。
【００２５】
図２は、実施の形態に係るエンコーダ１０の構成を示すブロック図である。実施の形態に係るエンコーダ１０は、Ｚ相パルス信号が入力される毎に、パルス信号のパルス数の最大カウント値を取得して、複数の最大カウント値を保持する取得部１１と、複数の最大カウント値を用いて平滑化処理を行う平滑化処理部１２と、平滑化された補正最大カウント値を用いて角度計算を行う角度計算部１３とを備えるものである。このように、設定最大カウント値の代わりに、複数の最大カウント値を平滑化した補正最大カウント値を用いて角度計算を行うことで、エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、精度よく角度計算を行うことが可能となる。
【００２６】
図３は、実施の形態の最大カウント値補正処理の一例を示すフロー図である。図３に示すように、まず、Ｚ相パルス信号が入力されたか否かが判断される（ステップＳ１１）。Ｚ相パルス信号が入力されていない場合（ステップＳ１１、ＮＯ）、処理は終了する。この場合、上述したように、設定最大カウント値を用いてロータ角度の計算が行われる。
【００２７】
一方、Ｚ相パルス信号が入力された場合（ステップＳ１１、ＹＥＳ）、Ａ相、Ｂ相パルス信号のパルス数の最大カウント値が取得される（ステップＳ１２）。取得部１１では、Ｚ相パルス信号が入力される毎に、最大カウント値が取得され、複数の最大カウント値が保持される。
【００２８】
なお、Ｚ相パルス信号入力時の最大カウント値が設定大カウント値と等しい場合、パルス抜けは０である。この最大カウント値が設定最大カウント値より小さい場合、パルス抜けが発生したことを示している。例えば、ここでは、５つの最大カウント値が保持されるものとする。設定最大カウント値を１０００としたときにおいて、各最大カウント値が以下の値であったときのパルス抜けの回数は、以下の通りである。
（１）９９５    パルス抜け５回
（２）１０００  パルス抜け０回
（３）９９８    パルス抜け２回
（４）９９７    パルス抜け３回
（５）１０００  パルス抜け０回
【００２９】
次に、取得部１１において保持される複数の最大カウント値を用いて平滑化処理を行う（ステップＳ１３）。ここでは、平滑化処理の一例として、単純平均処理を行うものとする。上記の（１）〜（５）の平均値は、９９８となる。なお、平滑化処理としては、単純平均処理に限定されず、移動平均処理やローパスフィルタ処理を行ってもよい。そして、平滑化された最大カウント値を補正最大カウント値として更新する（ステップＳ１４）。
【００３０】
次に、最大カウント値補正処理を行った後の、ロータ角度の計算処理について説明する。図４は、実施の形態の角度計算処理を示すフロー図である。図４に示すように、まず、パルス信号のカウント値が入力される（ステップＳ２１）。そして、入力されたカウント値を図３のフローで得られた補正最大カウント値（９９８）で除算する（ステップＳ２２）。この値に２πを乗算する（ステップＳ２３）ことで、ロータ角度が得られる。
【００３１】
このように、ロータ角度の計算に、複数の最大カウント値を平均した補正最大カウント値を用いることで、角度の急変を最小化することができる。なお、次にＺ相パルス信号が入力されるまでは、補正最大カウント値の更新は行われず、当該補正最大カウント値を用いて、ロータ角度の計算が行われる。
【００３２】
図５は、実施の形態の最大カウント値補正処理の他の例を示すフロー図である。図５において、図３と同一の処理には同一の符号を付している。図５に示す例では、図３に示す例のステップＳ１４の後に、補正最大カウント値を不揮発性メモリに保存する処理（ステップＳ１５）が追加されている。
【００３３】
図３に示す例では、電源を再投入した場合、ロータ角度の計算には予め設定された設定最大カウント値が用いられる。これに対し、図５に示す例では、補正最大アカウント値の更新が行われた後に（ステップＳ１４）、該補正最大カウント値が不揮発性メモリに保持される（ステップＳ１５）。これにより、次回の電源投入時には、不揮発性メモリに保持された、複数の最大アカウント値を平滑化した補正最大アカウント値を用いて、ロータ角度の計算を行うことができる。
【００３４】
以上説明したように、本発明によれば、エンコーダから出力されるパルス信号にパルス抜けが発生した場合でも、パルス抜けに合わせて角度計算を行うことができる。このように、精度よく角度計算を行うことで、モータを搭載したロボットに振動などが発生しないようにできる。
【００３５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。実施の形態は、電気自動車やハイブリッド自動車における駆動用モータのロータ角度検出に用いることも可能である。
【符号の説明】
【００３６】
１０  エンコーダ
１１  取得部
１２  平滑化処理部
１３  角度計算部
２０  ＢＬＤＣモータ
３０  アンプ
【図１】
2020190499.tif 000003
【図２】
2020190499.tif 000004
【図３】
2020190499.tif 000005
【図４】
2020190499.tif 000006
【図５】
2020190499.tif 000007
【図６】
2020190499.tif 000008
【図７】
2020190499.tif 000009
【図８】
2020190499.tif 000010