(57)【特許請求の範囲】
【請求項１】
エンコーダと、前記エンコーダが出力する処理前位置データを処理して処理後位置データを生成する位置データ処理部とを備え、
前記位置データ処理部は、
所定のサンプリング周期ごとに取得される前記処理前位置データのうちの、今回、取得された前記処理前位置データと、前記サンプリング周期において、前回、生成された前記処理後位置データとの差分値である処理前後１階差分値データを算出するとともに、
前記処理前後１階差分値データが所定の基準値を超えていると、前記サンプリング周期において、前回までに算出された所定個数の前記処理前後１階差分値データの平均値を、今回の前記処理前後１階差分値データと推定し、前記平均値を用いて、今回の前記処理後位置データを生成し、
前記処理前後１階差分値データが前記基準値以内であると、前記サンプリング周期において、今回、算出された前記処理前後１階差分値データを用いて、今回の前記処理後位置データを生成することを特徴とするエンコーダ装置。
【請求項２】
前記位置データ処理部は、
前記処理前後１階差分値データが前記基準値を超えていると、前記サンプリング周期において、前回までに算出された所定個数の前記処理前後１階差分値データの平均値と、前回までに算出された前記処理前後１階値差分値データとの総和を算出して、今回の前記処理後位置データを生成し、
前記処理前後１階差分値データが前記基準値以内であると、前記サンプリング周期において、今回、算出された前記処理前後１階差分値データと、前回までに算出された前記処理前後１階値差分値データとの総和を算出して、今回の前記処理後位置データを生成することを特徴とする請求項１記載のエンコーダ装置。
【請求項３】
前記位置データ処理部は、
前記サンプリング周期ごとに取得される前記処理前位置データの差分値である処理前１階差分値データを算出し、
前記サンプリング周期ごとに前記処理前１階差分値データの差分値である２階差分値データを算出し、
前記処理前１階差分値データが所定の第１基準範囲内にあり、かつ、前記２階差分値データが所定の第２基準範囲内にあるときに、前記処理前位置データは正常であると判定し、
前記処理前１階差分値データが前記第１基準範囲から外れているとき、および／または、前記２階差分値データが前記第２基準範囲から外れているときに、前記処理前位置データが異常であると判定することを特徴とする請求項１または２記載のエンコーダ装置。
【請求項４】
前記位置データ処理部は、
前記処理前後１階差分値データが前記基準値以内であり、かつ、前記処理前位置データが正常であると判定すると、前記サンプリング周期において、今回、算出された前記処理前後１階差分値データを用いて、今回の前記処理後位置データを生成し、
前記処理前後１階差分値データが前記基準値以内であっても、前記処理前位置データが異常であると判定すると、前記サンプリング周期において、前回までに算出された所定個数の前記処理前後１階差分値データの平均値を、今回の前記処理前後１階差分値データと推定し、前記平均値を用いて、今回の前記処理後位置データを生成することを特徴とする請求項３記載のエンコーダ装置。
【請求項５】
前記位置データ処理部は、
前記処理前後１階差分値データが前記基準値以内であり、かつ、前記処理前位置データが正常であると判定すると、前記サンプリング周期において、今回、算出された前記処理前後１階差分値データと、前回までに算出された前記処理前後１階値差分値データとの総和を算出して、今回の前記処理後位置データを生成し、
前記処理前後１階差分値データが前記基準値以内であっても、前記処理前位置データが異常であると判定すると、前記サンプリング周期において、前回までに算出された所定個数の前記処理前後１階差分値データの平均値と、前回までに算出された前記処理前後１階値差分値データとの総和を算出して、今回の前記処理後位置データを生成することを特徴とする請求項４記載のエンコーダ装置。
【請求項６】
エンコーダと、前記エンコーダが出力する処理前位置データを処理して処理後位置データを生成する位置データ処理部とを備えるエンコーダ装置における位置データの生成方法であって、
所定のサンプリング周期ごとに取得される前記処理前位置データのうちの、今回、取得された前記処理前位置データと、前記サンプリング周期において、前回、生成された前記処理後位置データとの差分値である処理前後１階差分値データを算出する１階差分値算出ステップと、
前記処理前後１階差分値データが所定の基準値を超えている場合に、前記サンプリング周期において、前回までに算出された所定個数の前記処理前後１階差分値データの平均値を、今回の前記処理前後１階差分値データと推定し、前記平均値を用いて、今回の前記処理後位置データを生成し、前記処理前後１階差分値データが前記基準値以内である場合に、前記サンプリング周期において、今回、算出された前記処理前後１階差分値データを用いて、今回の前記処理後位置データを生成する処理後位置データ生成ステップとを備えることを特徴とする位置データの生成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回転体の回転角度等を検出するためのエンコーダ装置に関する。また、本発明は、回転体の回転角度等を検出するためのエンコーダ装置における位置データの生成方法に関する。
【背景技術】
【０００２】
従来、モータの回転角度を検出するためのエンコーダと、エンコーダで検出された位置データに基づいてモータを制御するＡＣサーボドライバとが広く利用されている。エンコーダで検出された位置データは、エンコーダからＡＣサーボドライバへ送られる際の電磁ノイズ等の影響で、ビット誤りが生じて、誤った位置データとなることがある。ＡＣサーボドライバへ送られる位置データが誤った位置データであると、回転中のモータの挙動が不安定になり、モータの回転ムラや振動が発生するおそれがある。
【０００３】
そこで、従来、エンコーダからＡＣサーボドライバへ送られる際の電磁ノイズ等の影響で、エンコーダで検出された位置データが誤った位置データになったことを検出して（すなわち、位置データの異常を検出して）、正しい位置データを推定することが可能となる検出位置データのビット誤り検出・推定方法が提案されている（たとえば、特許文献１参照）。
【０００４】
特許文献１に記載のビット誤り検出・推定方法では、使用時におけるモータの最大回転数とエンコーダ分解能Ｎとからサンプリング周期ｈの間の最大位置変化量を算出するとともに、今回のサンプリング時の位置データｐｏｓ＃ｂと前回のサンプリング時の位置データｐｏｓ＃ａとの変化量（差分）の絶対値であるｐｏｓ＃ｓ１と、エンコーダの分解能Ｎとｐｏｓ＃ｓ１との変化量の絶対値であるｐｏｓ＃ｓ２とを算出している。そして、ｐｏｓ＃ｓ１およびｐｏｓ＃ｓ２がサンプリング周期ｈ間の最大位置変化量を超えている場合には、ｐｏｓ＃ｂの中に大きなビット誤りがあると判定している。すなわち、ｐｏｓ＃ｓ１およびｐｏｓ＃ｓ２がサンプリング周期ｈ間の最大位置変化量を超えているか否かを判定することで、エンコーダからＡＣサーボドライバへ送られる際の電磁ノイズ等の影響で、位置データに異常が生じたことを検出している。
【０００５】
また、このビット誤り検出・推定方法では、位置データに異常が生じたことが検出されると、前回のサンプリング時の位置データｐｏｓ＃ａと、前回のサンプリング周期ｈ間の速度Ｖｂと、サンプリング周期ｈとを用いた下記の式に基づいて、正しい位置データｐｏｓ＃ｂｓを推定している。
ｐｏｓ＃ｂｓ＝ｐｏｓ＃ａ＋Ｖｂ×ｈ
また、ＡＣサーボドライバは、推定された位置データｐｏｓ＃ｂｓに基づいてモータを制御している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３７２４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載のビット誤り検出・推定方法のように、位置データに異常が生じたことが検出されたときに、位置データを推定し、推定した位置データに基づいてモータを制御することで、モータを滑らかに回転させることが可能になる。しかしながら、推定された位置データが実際にエンコーダで検出された位置データから大きくかけ離れてしまうと、その後、正常な位置データがエンコーダからＡＣサーボドライバへ送られたときに、モータの制御に使用される位置データが急激に変動して、モータを滑らかに回転させることが困難になるおそれがある。
【０００８】
そこで、本発明の課題は、エンコーダが出力する位置データに異常が生じた場合等に推定される位置データと正しい位置データとの差異を抑制することが可能なエンコーダ装置を提供することにある。また、本発明の課題は、エンコーダが出力する位置データに異常が生じた場合等に推定される位置データと正しい位置データとの差異を抑制することが可能となる位置データの生成方法を提案することにある。
【課題を解決するための手段】
【０００９】
上記の課題を解決するため、本発明のエンコーダ装置は、エンコーダと、エンコーダが出力する処理前位置データを処理して処理後位置データを生成する位置データ処理部とを備え、位置データ処理部は、所定のサンプリング周期ごとに取得される処理前位置データのうちの、今回、取得された処理前位置データと、サンプリング周期において、前回、生成された処理後位置データとの差分値である処理前後１階差分値データを算出するとともに、処理前後１階差分値データが所定の基準値を超えていると、サンプリング周期において、前回までに算出された所定個数の処理前後１階差分値データの平均値を、今回の処理前後１階差分値データと推定し、この平均値を用いて、今回の処理後位置データを生成し、処理前後１階差分値データが基準値以内であると、サンプリング周期において、今回、算出された処理前後１階差分値データを用いて、今回の処理後位置データを生成することを特徴とする。
【００１０】
今回算出された処理前後１階差分値データが所定の基準値を超えている場合（すなわち、今回算出された処理前後１階差分値データが想定した値よりも大きくなっている場合）には、今回取得された処理前位置データが異常であることが想定されるとともに、前回生成された処理後位置データが推定値であり、この推定された処理後位置データが正常な処理前位置データに対して大きくかけ離れた値となっていることが想定される。推定された前回のサンプリング時の処理後位置データが正常な処理前位置データに対して大きくかけ離れた値となっている場合に、推定された前回のサンプリング時の処理後位置データに基づいて算出される今回の処理前後１階差分値データに基づいて、今回の処理後位置データが生成されると、生成された今回の処理後位置データが正しい処理後位置データからさらに大きくかけ離れた値になるおそれがある。
【００１１】
本発明のエンコーダ装置では、今回算出された処理前後１階差分値データが所定の基準値を超えている場合に、サンプリング周期において、前回までに算出された所定個数の処理前後１階差分値データの平均値を、今回の処理前後１階差分値データと推定し、この平均値を用いて、今回の処理後位置データを生成している。そのため、本発明では、推定された今回の処理後位置データが正しい処理後位置データからさらに大きくかけ離れるのを防止することが可能になる。すなわち、本発明では、推定された処理後位置データと正しい処理後位置データとの差異を抑制することが可能になる。したがって、推定された処理後位置データを正常な処理前位置データに追従させることが可能になり、推定された処理後位置データが正常な処理前位置データに対して大きくずれるのを抑制することが可能になる。その結果、たとえば、エンコーダによってモータの回転角度が検出される場合には、モータの挙動を安定させることが可能になる。
【００１３】
本発明において、位置データ処理部は、たとえば、処理前後１階差分値データが基準値を超えていると、サンプリング周期において、前回までに算出された所定個数の処理前後１階差分値データの平均値と、前回までに算出された処理前後１階値差分値データとの総和を算出して、今回の処理後位置データを生成し、処理前後１階差分値データが基準値以内であると、サンプリング周期において、今回、算出された処理前後１階差分値データと、前回までに算出された処理前後１階値差分値データとの総和を算出して、今回の処理後位置データを生成する。
【００１４】
本発明において、位置データ処理部は、サンプリング周期ごとに取得される処理前位置データの差分値である処理前１階差分値データを算出し、サンプリング周期ごとに処理前１階差分値データの差分値である２階差分値データを算出し、処理前１階差分値データが所定の第１基準範囲内にあり、かつ、２階差分値データが所定の第２基準範囲内にあるときに、処理前位置データは正常であると判定し、処理前１階差分値データが第１基準範囲から外れているとき、および／または、２階差分値データが第２基準範囲から外れているときに、処理前位置データが異常であると判定することが好ましい。
【００１５】
このように構成すると、処理前位置データの差分値である処理前１階差分値データに加え、処理前１階差分値データの差分値である２階差分値データを用いて、処理前位置データの異常を検出しているため、処理前１階差分値データのみを用いて処理前位置データの異常を検出する場合と比較して、処理前位置データの異常検出の精度を高めることが可能になる。
【００１６】
本発明において、位置データ処理部は、処理前後１階差分値データが基準値以内であり、かつ、処理前位置データが正常であると判定すると、サンプリング周期において、今回、算出された処理前後１階差分値データを用いて、今回の処理後位置データを生成し、処理前後１階差分値データが基準値以内であっても、処理前位置データが異常であると判定すると、サンプリング周期において、前回までに算出された所定個数の処理前後１階差分値データの平均値を、今回の処理前後１階差分値データと推定し、この平均値を用いて、今回の処理後位置データを生成することが好ましい。
【００１７】
このように構成すると、処理前位置データが正常であれば、今回、取得された処理前位置データに基づいて、今回の処理後位置データが生成されるため、たとえば、エンコーダによってモータの回転角度が検出される場合には、モータの回転特性に悪影響が及ぶのを防止することが可能になる。また、このように構成すると、処理前位置データが異常であれば、前回までに算出された所定個数の処理前後１階差分値データの平均値に基づいて、今回の処理後位置データが生成されるため、たとえば、エンコーダによってモータの回転角度が検出される場合には、異常な処理前位置データに基づいて生成される処理後位置データに起因してモータの挙動が不安定になるといった現象（具体的には、モータの振れや振動等）の発生を防止することが可能になる。
【００１８】
本発明において、位置データ処理部は、たとえば、処理前後１階差分値データが基準値以内であり、かつ、処理前位置データが正常であると判定すると、サンプリング周期において、今回、算出された処理前後１階差分値データと、前回までに算出された処理前後１階値差分値データとの総和を算出して、今回の処理後位置データを生成し、処理前後１階差分値データが基準値以内であっても、処理前位置データが異常であると判定すると、サンプリング周期において、前回までに算出された所定個数の処理前後１階差分値データの平均値と、前回までに算出された処理前後１階値差分値データとの総和を算出して、今回の処理後位置データを生成する。
【００１９】
また、上記の課題を解決するため、本発明の位置データの生成方法は、エンコーダと、エンコーダが出力する処理前位置データを処理して処理後位置データを生成する位置データ処理部とを備えるエンコーダ装置における位置データの生成方法であって、所定のサンプリング周期ごとに取得される処理前位置データのうちの、今回、取得された処理前位置データと、サンプリング周期において、前回、生成された処理後位置データとの差分値である処理前後１階差分値データを算出する１階差分値算出ステップと、処理前後１階差分値データが所定の基準値を超えている場合に、サンプリング周期において、前回までに算出された所定個数の処理前後１階差分値データの平均値を、今回の処理前後１階差分値データと推定し、この平均値を用いて、今回の処理後位置データを生成し、処理前後１階差分値データが基準値以内である場合に、サンプリング周期において、今回、算出された処理前後１階差分値データを用いて、今回の処理後位置データを生成する処理後位置データ生成ステップとを備えることを特徴とする。
【００２０】
本発明の位置データの生成方法では、処理後位置データ生成ステップにおいて、今回算出された処理前後１階差分値データが所定の基準値を超えている場合に、サンプリング周期において、前回までに算出された所定個数の処理前後１階差分値データの平均値を、今回の処理前後１階差分値データと推定し、この平均値を用いて、今回の処理後位置データを生成している。そのため、本発明では、推定された今回の処理後位置データが正しい処理後位置データからさらに大きくかけ離れるのを防止することが可能になる。すなわち、本発明では、推定された処理後位置データと正しい処理後位置データとの差異を抑制することが可能になる。したがって、推定された処理後位置データを正常な処理前位置データに追従させることが可能になり、推定された処理後位置データが正常な処理前位置データに対して大きくずれるのを抑制することが可能になる。その結果、たとえば、エンコーダによってモータの回転角度が検出される場合には、モータの挙動を安定させることが可能になる。
【発明の効果】
【００２２】
以上のように、本発明のエンコーダ装置では、エンコーダが出力する位置データに異常が生じた場合等に推定される位置データと正しい位置データとの差異を抑制することが可能になる。また、本発明の位置データの生成方法によれば、エンコーダが出力する位置データに異常が生じた場合等に推定される位置データと正しい位置データとの差異を抑制することが可能になる。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施の形態にかかるエンコーダ装置の概略構成を説明するためのブロック図である。
【図２】図１に示すエンコーダの概略構成を説明するための図である。
【図３】図１に示す位置データ処理部の概略構成を説明するためのブロック図である。
【図４】図３に示す位置データ処理部における処理前位置データの異常検出方法を説明するためのフローチャートである。
【図５】図３に示す位置データ処理部における処理後位置データの生成方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００２４】
以下、図面を参照しながら、本発明の実施の形態を説明する。
【００２５】
（エンコーダ装置の構成）
図１は、本発明の実施の形態にかかるエンコーダ装置１の概略構成を説明するためのブロック図である。図２は、図１に示すエンコーダ３の概略構成を説明するための図である。図３は、図１に示す位置データ処理部４の概略構成を説明するためのブロック図である。
【００２６】
本形態のエンコーダ装置１は、回転体の回転角度（回転位置）を検出するための装置であり、具体的には、たとえば、サーボモータ２のロータの回転角度を検出するための装置である。このエンコーダ装置１は、図１に示すように、エンコーダ３と、位置データ処理部４とを備えている。位置データ処理部４は、エンコーダ３の出力側に接続されている。位置データ処理部４の出力側は、サーボモータ２を駆動制御するモータ制御部（モータドライバ）５に接続されている。
【００２７】
エンコーダ３は、アブソリュートエンコーダ（絶対値エンコーダ）である。また、本形態のエンコーダ３は、磁気式のロータリーエンコーダであり、図２に示すように、サーボモータ２のロータを構成する回転軸７等に固定されるセンサ磁石８と、センサ磁石８に対向配置される磁気抵抗素子９および２個のホール素子１０とを備えている。
【００２８】
センサ磁石８は、円板状に形成された永久磁石である。センサ磁石８の、磁気抵抗素子９およびホール素子１０との対向面には、その周方向において、Ｎ極とＳ極とが１極ずつ形成されている。磁気抵抗素子９は、回転軸７の軸方向から見たときにセンサ磁石８の中心と磁気抵抗素子９の中心とが略一致するように配置されている。磁気抵抗素子９には、互いに略直交する方向に配置される磁気抵抗パターンが形成されている。２個のホール素子１０は、回転軸７の軸方向から見たときに、センサ磁石８の中心に対して互いに９０°ずれた位置に配置されている。
【００２９】
エンコーダ３は、磁気抵抗素子９での検出結果に基づいて、回転体（ロータ）の１回転（３６０°）の範囲内の回転角度を示す位置データ（１回転データ）を生成して、この位置データを位置データ処理部４に向かって出力する。また、エンコーダ３は、ホール素子１０での検出結果に基づいて、所定の原点位置から回転体が何回転しているのかを示す多回転データを生成して、この多回転データを位置データ処理部４に向かって出力する。さらに、エンコーダ３は、エンコーダ３のエラー状態を示すエラー状態データを位置データ処理部４に向かって出力する。たとえば、エンコーダ３から出力されるべき位置データ等が出力されないときに、エンコーダ３は、エラー状態データを出力する。また、エンコーダ３は、位置データ処理部４と一定のサンプリング周期で通信を行う。すなわち、位置データ処理部４は、一定のサンプリング周期で、位置データや多回転データ等を取得する。
【００３０】
位置データ処理部４は、マイクロプロセッサ（ＭＰＵ）である。この位置データ処理部４は、エンコーダ３が出力する処理前の位置データ（１回転データ）に所定の処理を行って処理後の位置データ（機械角）を生成する。すなわち、位置データ処理部４は、エンコーダ３が出力する処理前位置データを処理して処理後位置データを生成する。この位置データ処理部４は、図３に示すように、処理前位置データが入力されるスケーリング部１５を備えている。スケーリング部１５は、処理前位置データをスケーリングする。
【００３１】
スケーリング部１５の出力側には、一定のサンプリング周期ごとに取得されるスケーリング後の処理前位置データの差分値である処理前１階差分値データを算出する１階差分値算出部１６が接続されている。１階差分値算出部１６は、サンプリング周期において、今回取得された処理前位置データと、前回取得された処理前位置データとの差分（すなわち、今回のサンプリング時の処理前位置データと、前回のサンプリング時の処理前位置データとの差分）を取る後退差分によって処理前１階差分値データを算出する。すなわち、１階差分値算出部１６は、処理前１階差分値データを一定のサンプリング周期で算出する。処理前１階差分値データは、今回のサンプリング時の回転体の回転速度に相当するデータである。１階差分値算出部１６の出力側には、処理前１階差分値データを値域変換する値域変換部１７が接続されている。
【００３２】
値域変換部１７の出力側には、処理前１階差分値データが所定の基準範囲（第１基準範囲）内にあるか否かを評価するためのリミッタ部１８が接続されている。リミッタ部１８の出力側には、論理和回路１９が接続されている。リミッタ部１８は、処理前１階差分値データが第１基準範囲から外れている場合に、論理和回路１９へ信号を出力し、処理前１階差分値データが第１基準範囲内である場合には、論理和回路１９へ信号を出力しない。第１基準範囲の上限値は、サーボモータ２の最高回転速度（最高回転数）よりも高い値であり、経験的に設定される値である。また、第１基準範囲の上限値および下限値は、通常のサーボモータ２の回転時には生じえない値である。
【００３３】
また、値域変換部１７の出力側には、サンプリング周期ごとに処理前１階差分値データの差分値である２階差分値データを算出する２階差分値算出部２０が接続されている。２階差分値算出部２０は、サンプリング周期において、今回算出された処理前１階差分値データと、前回算出された処理前１階差分値データとの差分（すなわち、今回のサンプリング時の処理前１階差分値データと、前回のサンプリング時の処理前１階差分値データとの差分）を取る後退差分によって２階差分値データを算出する。すなわち、２階差分値算出部２０は、２階差分値データを一定のサンプリング周期で算出する。２階差分値データは、今回のサンプリング時の回転体の加速度に相当するデータである。
【００３４】
２階差分値算出部２０の出力側には、２階差分値データが所定の基準範囲（第２基準範囲）内にあるか否かを評価するためのリミッタ部２１が接続されている。リミッタ部２１の出力側には、論理和回路１９が接続されている。リミッタ部２１は、２階差分値データが第２基準範囲から外れている場合に、論理和回路１９へ信号を出力し、２階差分値データが第２基準範囲内である場合には、論理和回路１９へ信号を出力しない。第２基準範囲の上限値は、サーボモータ２の最大加速度よりも高い値であり、経験的に設定される値である。また、第２基準範囲の上限値および下限値は、通常のサーボモータ２の回転時には生じえない値である。
【００３５】
論理和回路１９の出力側には、論理和回路２２が接続されている。論理和回路１９は、リミッタ部１８およびリミッタ部２１の少なくともいずれか一方から信号が入力されると、論理和回路２２に向かって信号を出力する。
【００３６】
また、スケーリング部１５の出力側には、サンプリング周期において、今回取得されたスケーリング後の処理前位置データと、前回生成された処理後位置データとの差分値（すなわち、今回のサンプリング時の処理前位置データと、前回のサンプリング時に生成された処理後位置データとの差分値）である処理前後１階差分値データを算出する１階差分値算出部２５が接続されている。１階差分値算出部２５は、処理前後１階差分値データを一定のサンプリング周期で算出する。１階差分値算出部２５の出力側には、処理前後１階差分値データを値域変換する値域変換部２６が接続されている。
【００３７】
値域変換部２６の出力側には、値域変換後の処理前後１階差分値データが所定の基準値（第３基準値）を超えているか否かを評価するためのリミッタ部２７が接続されている。また、値域変換部２６の出力側には、データ切替部２８が接続されている。
【００３８】
リミッタ部２７の出力側には、論理和回路２２が接続されている。リミッタ部２７は、処理前後１階差分値データが第３基準値を超えている場合に、論理和回路２２へ信号を出力し、処理前後１階差分値データが第３基準値以内である場合には、論理和回路２２へ信号を出力しない。第３基準値は、サーボモータ２の最高回転速度（最高回転数）よりも高い値であり、経験的に設定される値である。また、第３基準値は、通常のサーボモータ２の回転時には生じえない値である。なお、本形態の第３基準値は、第１基準範囲の上限値と同じ値であるが、第３基準値は、第１基準範囲の上限値と異なっていても良い。
【００３９】
また、リミッタ部２７の出力側には、データ切替部２８およびローパスフィルタ２９が接続されている。リミッタ部２７は、処理前後１階差分値データが第３基準値を超えている場合に、第３基準値のデータを処理前後１階差分値データとして、データ切替部２８およびローパスフィルタ２９へ出力する。すなわち、リミッタ部２７は、飽和処理を行って、飽和処理後の処理前後１階差分値データをデータ切替部２８およびローパスフィルタ２９へ出力する。また、リミッタ部２７は、処理前後１階差分値データが第３基準値以内である場合には、データ切替部２８およびローパスフィルタ２９へ処理前後１階差分値データを出力しない。ローパスフィルタ２９の出力側には、データ切替部２８が接続されている。ローパスフィルタ２９は、リミッタ部２７から出力された飽和処理後の処理前後１階差分値データから高周波成分を除去し、高周波成分除去後の処理前後１階差分値データを出力する。
【００４０】
データ切替部２８の出力側には、データ切替部３０が接続されている。データ切替部２８は、値域変換部２６から出力される処理前後１階差分値データ、リミッタ部２７から出力される処理前後１階差分値データ、および、ローパスフィルタ２９から出力される処理前後１階差分値データの中からいずれかの処理前後１階差分値データを、所定の条件に応じて選択して、データ切替部３０へ出力する。
【００４１】
論理和回路２２の出力側には、論理和回路３１が接続されている。論理和回路２２は、論理和回路１９およびリミッタ部２７の少なくともいずれか一方から信号が入力されると、論理和回路３１に向かって信号を出力する。また、論理和回路１９およびリミッタ部２７の少なくともいずれか一方から論理和回路２２に信号が入力されると、データ異常信号が位置データ処理部４から出力される。
【００４２】
論理和回路３１には、エンコーダ３が出力するエラー状態データが入力可能となっている。論理和回路３１は、論理和回路２２からの信号およびエンコーダ３からのエラー状態データの少なくともいずれか一方が入力されると、データ切替部３０に向かって信号を出力する。
【００４３】
データ切替部３０は、論理和回路３１から信号が入力されると、前回のサンプリング時までに算出された所定個数の処理前後１階差分値データの平均値（すなわち、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値）を今回の処理前後１階差分値データと推定し、この平均値を今回の処理前後１階差分値データとして出力する。すなわち、本形態では、処理前１階差分値データが第１基準範囲から外れている状況、２階差分値データが第２基準範囲から外れている状況、処理前後１階差分値データが第３基準値を超えている状況、および、エンコーダ３からエラー状態データが出力された状況の少なくともいずれか１つの状況が発生している場合に、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値がデータ切替部３０から出力される今回の処理前後１階差分値データとなる。
【００４４】
また、データ切替部３０は、論理和回路３１から信号が入力されない場合には、データ切替部２８から出力された処理前後１階差分値データを今回の処理前後１階差分値データとして出力する。ここで、処理前後１階差分値データが第３基準値以内である場合には、論理和回路３１からデータ切替部３０に信号は入力されない。また、リミッタ部２７は、処理前後１階差分値データが第３基準値以内である場合には、データ切替部２８およびローパスフィルタ２９へ飽和処理後の処理前後１階差分値データを出力しない。そのため、論理和回路３１からデータ切替部３０に信号が入力されない場合には、データ切替部３０は、値域変換部２６から出力される処理前後１階差分値データを今回の処理前後１階差分値データとして出力する。すなわち、本形態では、論理和回路３１からデータ切替部３０に信号が入力されない場合、今回のサンプリング時に算出された処理前後１階差分値データがデータ切替部３０から出力される今回の処理前後１階差分値データとなる。
【００４５】
データ切替部３０から出力される今回の処理前後１階差分値データは、位置データ処理部４から機械角差分値データとして出力される。
【００４６】
データ切替部３０の出力側には、累積加算部３５が接続されている。累積加算部３５は、データ切替部３０から出力された今回の処理前後１階差分値データと、前回のサンプリング時までに算出された処理前後１階値差分値データとの総和を算出して総和値のデータを出力する。この総和値のデータは、位置データ処理部４から機械角積算値データとして出力される。
【００４７】
また、データ切替部３０の出力側には、累積加算部３６が接続されている。累積加算部３６の出力側には、値域変換部３７が接続されている。累積加算部３６は、データ切替部３０から出力された今回の処理前後１階差分値データと、前回のサンプリング時までに算出された処理前後１階値差分値データとの総和を算出し、値域変換部３７は、この総和を値域変換する。値域変換部３７から出力されるデータは、位置データ処理部４によって生成される処理後位置データである。この処理後位置データは、位置データ処理部４から機械角データとして出力される。値域変換部３７の出力側には、１階差分値算出部２５が接続されており、値域変換部３７で生成された処理後位置データは、１階差分値算出部２５に入力される。
【００４８】
また、データ切替部３０の出力側には、処理前後１階差分値データの移動平均値を算出する移動平均値算出部３８が接続されている。本形態の移動平均値算出部３８は、単純移動平均によって、処理前後１階差分値データの移動平均値を算出する。移動平均値算出部３８で算出された移動平均値は、データ切替部３０に入力される。論理和回路３１からデータ切替部３０へ信号が入力されると、前回のサンプリング時に移動平均値算出部３８で算出された移動平均値がデータ切替部３０から今回の処理前後１階差分値データとして出力される。
【００４９】
値域変換部３７の出力側および移動平均値算出部３８の出力側には、機械角を電気角へ変換する電気角変換部３９が接続されている。電気角変換部３９は、正規化された電気角データおよび電気角データを生成して出力する。電気角変換部３９で生成されたこれらのデータは、位置データ処理部４から出力される。
【００５０】
（処理前位置データの異常検出方法）
図４は、図３に示す位置データ処理部４における処理前位置データの異常検出方法を説明するためのフローチャートである。
【００５１】
位置データ処理部４に入力される処理前位置データは、エンコーダ３から位置データ処理部４へ送られる際の電磁ノイズ等の影響で、ビット誤りが生じて、誤った処理前位置データとなることがある。すなわち、エンコーダ３から位置データ処理部４へ送られる際の電磁ノイズ等の影響で、位置データ処理部４に入力される処理前位置データに異常が生じることがある。また、本形態のエンコーダ３は、磁気式のエンコーダであるため、電磁ノイズの影響を受けやすく、ノイズが重畳した誤った処理前位置データがエンコーダ３から出力されることがある。すなわち、エンコーダ３の内部で、位置データ処理部４に入力される処理前位置データに異常が生じることもある。
【００５２】
本形態の位置データ処理部４では、以下のように、位置データ処理部４に入力される処理前位置データの異常を検出している。すなわち、一定のサンプリング周期で、位置データ処理部４が処理前位置データを取得すると、１階差分値算出部１６は、処理前１階差分値データを算出し（ステップＳ１）、２階差分値算出部２０は、２階差分値データを算出する（ステップＳ２）。その後、位置データ処理部４は、リミッタ部１８を用いて、処理前１階差分値データが第１基準範囲内にあるか否かを評価し（ステップＳ３）、リミッタ部２１を用いて、２階差分値データが第２基準範囲内にあるか否かを評価する（ステップＳ４）。
【００５３】
処理前１階差分値データが第１基準範囲内にあり、かつ、２階差分値データが第２基準範囲内にある場合（ステップＳ３において“Ｙｅｓ”であり、かつ、ステップＳ４において“Ｙｅｓ”である場合）には、想定内の処理前位置データが今回のサンプリング時に取得されていると推定されるため、位置データ処理部４は、今回のサンプリング時の処理前位置データは正常であると判定する（ステップＳ５）。
【００５４】
一方、処理前１階差分値データが第１基準範囲から外れている場合（ステップＳ３で“Ｎｏ”である場合）、または、２階差分値データが第２基準範囲から外れている場合（ステップＳ４で“Ｎｏ”である場合）には、想定外の処理前位置データが今回のサンプリング時に取得されていると推定されるため、位置データ処理部４は、今回のサンプリング時の処理前位置データは異常であると判定する（ステップＳ６）。すなわち、位置データ処理部４は、処理前１階差分値データが第１基準範囲から外れているとき、または、２階差分値データが第２基準範囲から外れているときに、今回のサンプリング時の処理前位置データが異常であることを検出する。
【００５５】
（処理後位置データの生成方法）
図５は、図３に示す位置データ処理部４における処理後位置データの生成方法を説明するためのフローチャートである。
【００５６】
位置データ処理部４では、以下のように、処理後位置データを生成している。すなわち、一定のサンプリング周期で、位置データ処理部４が処理前位置データを取得すると、１階差分値算出部２５は、処理前後１階差分値データを算出する（ステップＳ１１）。その後、位置データ処理部４は、リミッタ部２７を用いて、処理前後１階差分値データが第３基準値以内であるか否かを評価する（ステップＳ１２）。
【００５７】
処理前後１階差分値データが第３基準値以内である場合（ステップＳ１２で“Ｙｅｓ”である場合）には、位置データ処理部４は、上述の処理前位置データの異常検出処理で、今回のサンプリング時の処理前位置データが正常であると判定されたか否かを判定する（ステップＳ１３）。処理前後１階差分値データが第３基準値以内であり、かつ、今回のサンプリング時の処理前位置データが正常であると判定される場合（ステップＳ１３で“Ｙｅｓ”である場合）には、論理和回路３１からデータ切替部３０に信号が入力されないため、今回のサンプリング時に算出された処理前後１階差分値データが今回の処理前後１階差分値データとして、データ切替部３０から出力される（ステップＳ１４）。
【００５８】
一方、処理前後１階差分値データが第３基準値を超える場合（ステップＳ１２で“Ｎｏ”である場合）、あるいは、今回のサンプリング時の処理前位置データが異常であると判定される場合（ステップＳ１３で“Ｎｏ”である場合）には、論理和回路３１からデータ切替部３０に信号が入力されるため、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値が今回の処理前後１階差分値データと推定され、この平均値が今回の処理前後１階差分値データとして、データ切替部３０から出力される（ステップＳ１５）。
【００５９】
その後、累積加算部３６および値域変換部３７は、累積加算等を行って、処理後位置データを生成する（ステップＳ１６）。ステップＳ１６では、今回のサンプリング時に算出された処理前後１階差分値データが今回の処理前後１階差分値データとしてデータ切替部３０から出力される場合には、累積加算部３６および値域変換部３７は、今回のサンプリング時に算出された処理前後１階差分値データを用いて、今回の処理後位置データを生成する。具体的には、累積加算部３６および値域変換部３７は、今回のサンプリング時に算出された処理前後１階差分値データと、前回までに算出された処理前後１階値差分値データとの総和を算出して、今回の処理後位置データを生成する。この場合には、位置データ処理部４は、今回のサンプリング時にエンコーダ３から入力された実際の処理前位置データに基づく処理前後１階値差分値データに基づいて算出された処理後位置データをモータ制御部５へ出力し、モータ制御部５は、この処理後位置データに基づいてサーボモータ２を制御する。
【００６０】
また、ステップＳ１６では、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値が今回の処理前後１階差分値データとして、データ切替部３０から出力される場合には、累積加算部３６および値域変換部３７は、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値を用いて、今回の処理後位置データを生成する。具体的には、累積加算部３６および値域変換部３７は、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値と、前回までに算出された処理前後１階値差分値データとの総和を算出して、今回の処理後位置データを生成する。この場合には、位置データ処理部４は、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値（すなわち、処理前後１階値差分値データの推定値）に基づいて算出された処理後位置データをモータ制御部５へ出力し、モータ制御部５は、この処理後位置データに基づいてサーボモータ２を制御する。
【００６１】
本形態のステップＳ１１は、所定のサンプリング周期ごとに取得される処理前位置データのうちの、今回、取得された処理前位置データと、サンプリング周期において、前回、生成された処理後位置データとの差分値である処理前後１階差分値データを算出する１階差分値算出ステップである。また、ステップＳ１６は、処理前後１階差分値データが所定の基準値を超えている場合に、サンプリング周期において、前回までに算出された所定個数の処理前後１階差分値データの平均値を用いて、今回の処理後位置データを生成し、処理前後１階差分値データが基準値以内である場合に、サンプリング周期において、今回、算出された処理前後１階差分値を用いて、今回の処理後位置データを生成する処理後位置データ生成ステップである。
【００６２】
（本形態の主な効果）
以上説明したように、本形態では、１階差分値算出部２５で算出された処理前後１階差分値データが第３基準値を超えていると、位置データ処理部４は、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値を用いて、処理後位置データを生成している。１階差分値算出部２５で算出された処理前後１階差分値データが第３基準値を超えている場合には、今回のサンプリング時に取得された処理前位置データが異常であることが想定されるとともに、前回生成された処理後位置データが推定値であり、この推定された処理後位置データが正常な処理前位置データに対して大きくかけ離れた値となっていることが想定される。推定された前回のサンプリング時の処理後位置データが正常な処理前位置データに対して大きくかけ離れた値となっている場合に、推定された前回のサンプリング時の処理後位置データに基づいて算出される今回の処理前後１階差分値データに基づいて、今回の処理後位置データが生成されると、生成された今回の処理後位置データが正しい処理後位置データからさらに大きくかけ離れた値になるおそれがある。
【００６３】
しかしながら、本形態では、１階差分値算出部２５で算出された処理前後１階差分値データが第３基準値を超えている場合に、位置データ処理部４が、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値を用いて、処理後位置データを生成しているため、推定された今回の処理後位置データが正しい処理後位置データからさらに大きくかけ離れるのを防止することが可能になる。すなわち、本形態では、推定された今回の処理後位置データと正しい処理後位置データとの差異を抑制することが可能になる。したがって、推定された処理後位置データを正常な処理前位置データに追従させることが可能になり、推定された処理後位置データが正常な処理前位置データに対して大きくずれるのを抑制することが可能になる。その結果、本形態では、処理後位置データに基づいて制御されるサーボモータ２の挙動を安定させることが可能になる。
【００６４】
本形態では、位置データ処理部４は、処理前１階差分値データと２階差分値データとを算出し、処理前１階差分値データが第１基準範囲から外れているとき、または、２階差分値データが第２基準範囲から外れているときに、処理前位置データが異常であると判定しており、処理前位置データの差分値である処理前１階差分値データに加え、処理前１階差分値データの差分値である２階差分値データを用いて、処理前位置データの異常を検出している。すなわち、本形態では、処理前位置データに基づいて算出される回転体の回転速度に急激な変化がある場合だけでなく、処理前位置データに基づいて算出される回転体の加速度に急激な変化がある場合にも、処理前位置データの異常を検出している。そのため、本形態では、処理前１階差分値データのみを用いて処理前位置データの異常を検出する場合と比較して、処理前位置データの異常検出の精度を高めることが可能になる。
【００６５】
本形態では、位置データ処理部４は、今回のサンプリング時の処理前位置データが正常であると判定すると、今回のサンプリング時に算出された処理前後１階差分値データを用いて、今回の処理後位置データを生成している。そのため、本形態では、正常な処理前位置データに基づいて生成された処理後位置データによってサーボモータ２を制御することが可能になり、サーボモータ２の回転特性に悪影響が及ぶのを防止することが可能になる。また、本形態では、位置データ処理部４は、今回のサンプリング時の処理前位置データが異常であると判定すると、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値を用いて、今回の処理後位置データを生成している。そのため、本形態では、異常な処理前位置データに基づいて生成される処理後位置データに起因してサーボモータ２の挙動が不安定になるといった現象の発生を防止することが可能になる。
【００６６】
（他の実施の形態）
上述した形態は、本発明の好適な形態の一例ではあるが、これに限定されるものではなく本発明の要旨を変更しない範囲において種々変形実施が可能である。
【００６７】
上述した形態では、位置データ処理部４は、処理前１階差分値データと２階差分値データとを用いて、処理前位置データの異常を検出している。この他にもたとえば、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）コード等のチェックコードを用いて、処理前位置データの異常を検出しても良い。
【００６８】
上述した形態では、処理後位置データを生成する際に、ステップＳ１３で、今回のサンプリング時の処理前位置データが正常であると判定されたか否かを判定している。この他にもたとえば、処理後位置データを生成する際に、ステップＳ１３を省略しても良い。すなわち、ステップＳ１２で“Ｙｅｓ”の場合に、ステップＳ１４へ進んでも良い。今回のサンプリング時の処理前位置データが異常である場合には、１階差分値算出部２５で算出された処理前後１階差分値データが第３基準値を超えている可能性が高くなるため、ステップＳ１３を省略しても、ステップＳ１６で、前回のサンプリング時までに算出された処理前後１階差分値データの移動平均値を用いて、今回の処理後位置データが生成される可能性が高くなる。したがって、ステップＳ１３を省略しても、異常な処理前位置データに基づいて生成される処理後位置データに起因してサーボモータ２の挙動が不安定になるといった現象の発生を防止することが可能になる。
【００６９】
上述した形態では、図４のフローチャートに示すように、位置データ処理部４は、処理前１階差分値データが第１基準範囲内にあるか否かを評価した後に、２階差分値データが第２基準範囲内にあるか否かを評価している。この他にもたとえば、位置データ処理部４は、２階差分値データが第２基準範囲内にあるか否かを評価した後に、処理前１階差分値データが第１基準範囲内にあるか否かを評価しても良いし、処理前１階差分値データが第１基準範囲内にあるか否かの評価と２階差分値データが第２基準範囲内にあるか否かの評価とを同時に行っても良い。
【００７０】
上述した形態では、位置データ処理部４は、処理前後１階差分値データが第３基準値以内であるか否かを評価した後に、今回のサンプリング時の処理前位置データが正常であると判定されたか否かを判定している。この他にもたとえば、位置データ処理部４は、今回のサンプリング時の処理前位置データが正常であると判定されたか否かを判定した後に、処理前後１階差分値データが第３基準値以内であるか否かを評価しても良いし、処理前後１階差分値データが第３基準値以内であるか否かの評価と、今回のサンプリング時の処理前位置データが正常であると判定されたか否かの判定とを同時に行っても良い。
【００７１】
上述した形態では、エンコーダ３は、アブソリュートエンコーダであるが、エンコーダ３は、インクリメンタルエンコーダであっても良い。また、上述した形態では、エンコーダ３は、磁気式のエンコーダであるが、エンコーダ３は、たとえば、発光素子および受光素子と、発光素子からの光を受光素子へ透過するスリットが形成されたスリット板とを備える光電式のエンコーダであっても良い。また、エンコーダ３は、磁気式または光電式以外の他の形式のエンコーダであっても良い。また、上述した形態では、エンコーダ３は、ロータリーエンコーダであるが、エンコーダ３は、リニアエンコーダであっても良い。
【符号の説明】
【００７２】
１  エンコーダ装置
３  エンコーダ
４  位置データ処理部
Ｓ１１  １階差分値算出ステップ
Ｓ１６  処理後位置データ生成ステップ
【図１】
0005943671.tif 000002
【図２】
0005943671.tif 000003
【図３】
0005943671.tif 000004
【図４】
0005943671.tif 000005
【図５】
0005943671.tif 000006