(57)【特許請求の範囲】
【請求項１】
検出対象の位置を表す検出信号を検出する検出部と、
前記検出部が検出した検出信号に基づいて、離散的なサンプリングタイミングで、前記検出対象の位置を表す第１ビット幅の第１位置データを算出する第１位置データ算出部と、
前記第１位置データ算出部が算出した第１位置データを、前記第１ビット幅のデータ範囲を超えた際に生じるデータの離隔を是正するように、前記第１ビット幅よりも長い第２ビット幅の第２位置データに変換する第１データ変換部と、
連続した２以上の前記サンプリングタイミングにおいて前記第１データ変換部が変換した２以上の第２位置データに基づいて、タイミングデータが入力されると位置データを導出する近似関数を算出する近似部と、
前記近似部が算出した近似関数に基づいて、出力タイミングにおける検出対象の位置を表す第３位置データを算出する第３位置データ算出部と、
を有し、
前記第１データ変換部は、
前記第１位置データ算出部が算出した第１位置データに基づいて、前記検出対象の移動速度を表す速度データを算出する速度データ算出部と、
前記速度データ算出部が算出した速度データに基づいて、前記検出対象の位置を前記第２ビット幅で表す第２位置データを算出する第２位置データ算出部と、
を有する、エンコーダ。
【請求項２】
前記第２位置データ算出部は、
最新のサンプリングタイミングにおける前記速度データが算出されると、基準となるｍ（ｍは２以上の整数）個前のサンプリングタイミングにおける前記第１位置データを、第２ビット幅の基準第２位置データに変換し、
前記基準第２位置データと、ｍ−１個前から最新のサンプリングタイミングそれぞれにおける速度データとに基づいて、ｍ−１個前から最新のサンプリングタイミングそれぞれにおける第２位置データを前記第２ビット幅で算出し、
前記近似部は、
ｍ個前のサンプリングタイミングにおける前記基準第２位置データと、ｍ−１個前から最新のサンプリングタイミングそれぞれにおける第２位置データとに基づいて、前記近似関数を算出する、請求項１に記載のエンコーダ。
【請求項３】
前記第３位置データ算出部は、前記第３位置データを、前記第１ビット幅よりも長い第３ビット幅で算出し、
前記エンコーダは、前記第３位置データを前記第１ビット幅の位置データに変換する第２データ変換部を更に有する、請求項１または２に記載のエンコーダ。
【請求項４】
検出対象を移動させるモータと、
前記モータが移動させた検出対象の位置を検出するエンコーダと、
前記エンコーダが検出した位置データに基づいて、前記モータを制御する制御装置と、
を有し、
前記エンコーダは、
前記検出対象の位置を表す検出信号を検出する検出部と、
前記検出部が検出した検出信号に基づいて、離散的なサンプリングタイミングで、前記検出対象の位置を表す第１ビット幅の第１位置データを算出する第１位置データ算出部と、
前記第１位置データ算出部が算出した第１位置データを、前記第１ビット幅のデータ範囲を超えた際に生じるデータの離隔を是正するように、前記第１ビット幅よりも長い第２ビット幅の第２位置データに変換する第１データ変換部と、
連続した２以上の前記サンプリングタイミングにおいて前記第１データ変換部が変換した２以上の第２位置データに基づいて、タイミングデータが入力されると位置データを導出する近似関数を算出する近似部と、
前記近似部が算出した近似関数に基づいて、出力タイミングにおける検出対象の位置を表す第３位置データを算出する第３位置データ算出部と、
を有し、
前記第１データ変換部は、
前記第１位置データ算出部が算出した第１位置データに基づいて、前記検出対象の移動速度を表す速度データを算出する速度データ算出部と、
前記速度データ算出部が算出した速度データに基づいて、前記検出対象の位置を前記第２ビット幅で表す第２位置データを算出する第２位置データ算出部と、
を有する、サーボユニット。
【請求項５】
検出対象の位置を表す検出信号を検出する検出ステップと、
前記検出ステップで検出した検出信号に基づいて、離散的なサンプリングタイミングで、前記検出対象の位置を表す第１ビット幅の第１位置データを算出する第１位置データ算出ステップと、
前記第１位置データ算出ステップで算出した第１位置データを、前記第１ビット幅のデータ範囲を超えた際に生じるデータの離隔を是正するように、前記第１ビット幅よりも長い第２ビット幅の第２位置データに変換する第１データ変換ステップと、
連続した２以上の前記サンプリングタイミングにおいて前記第１データ変換ステップで変換した２以上の第２位置データに基づいて、タイミングデータが入力されると位置データを導出する近似関数を算出する近似ステップと、
前記近似ステップで算出した近似関数に基づいて、出力タイミングにおける検出対象の位置を表す第３位置データを算出する第３位置データ算出ステップと、
を有し、
前記第１データ変換ステップは、
前記第１位置データ算出ステップが算出した第１位置データに基づいて、前記検出対象の移動速度を表す速度データを算出する速度データ算出ステップと、
前記速度データ算出ステップが算出した速度データに基づいて、前記検出対象の位置を前記第２ビット幅で表す第２位置データを算出する第２位置データ算出ステップと、
を有する、位置データ算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エンコーダ、サーボユニット及び位置データ算出方法に関する。
【背景技術】
【０００２】
回転角度や直線位置等の位置データを測定する装置としてエンコーダが使用される。このエンコーダは、検出原理により光学式や磁気式等に大別されるが、その検出原理による検出部からの検出信号を、信号処理等により位置データに変換する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１１６２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、上記位置データを生成する信号処理が実行されるタイミングや検出信号が取得されるタイミング（サンプリングタイミングともいう。）は、不連続である。よって、サンプリングタイミング間の位置データは、例えば、特許文献１に記載のように回帰直線を求めるなどの外挿処理や内挿処理等により算出される。
【０００５】
しかし、検出されて信号処理が行われる検出信号は、一定の大きさ毎に繰り返される繰り返し信号となる。よって、繰り返し点が間に挟まれる場合には、正確な回帰直線等を導出することが難しく、正確な位置データを測定することが難しい。
【０００６】
そこで、本発明は、このような問題に鑑みてなされたものであり、本発明の目的とするところは、より正確な位置データを測定することが可能な、エンコーダ、サーボユニット及び位置データ算出方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のある観点によれば、検出対象の位置を表す検出信号を検出する検出部と、
上記検出部が検出した検出信号に基づいて、離散的なサンプリングタイミングで、上記検出対象の位置を表す第１ビット幅の第１位置データを算出する第１位置データ算出部と、
上記第１位置データ算出部が算出した第１位置データを、上記第１ビット幅のデータ範囲を超えた際に生じるデータの離隔を是正するように、上記第１ビット幅よりも長い第２ビット幅の第２位置データに変換する第１データ変換部と、
連続した２以上の上記サンプリングタイミングにおいて上記第１データ変換部が変換した２以上の第２位置データに基づいて、タイミングデータが入力されると位置データを導出する近似関数を算出する近似部と、
上記近似部が算出した近似関数に基づいて、出力タイミングにおける検出対象の位置を表す第３位置データを算出する第３位置データ算出部と、
を有し、
上記第１データ変換部は、
上記第１位置データ算出部が算出した第１位置データに基づいて、上記検出対象の移動速度を表す速度データを算出する速度データ算出部と、
上記速度データ算出部が算出した速度データに基づいて、上記検出対象の位置を上記第２ビット幅で表す第２位置データを算出する第２位置データ算出部と、
を有する、エンコーダが提供される。
【０００９】
また、上記第２位置データ算出部は、
最新のサンプリングタイミングにおける上記速度データが算出されると、基準となるｍ（ｍは２以上の整数）個前のサンプリングタイミングにおける上記第１位置データを、第２ビット幅の基準第２位置データに変換し、
上記基準第２位置データと、ｍ−１個前から最新のサンプリングタイミングそれぞれにおける速度データとに基づいて、ｍ−１個前から最新のサンプリングタイミングそれぞれにおける第２位置データを上記第２ビット幅で算出し、
上記近似部は、
ｍ個前のサンプリングタイミングにおける上記基準第２位置データと、ｍ−１個前から最新のサンプリングタイミングそれぞれにおける第２位置データとに基づいて、上記近似関数を算出してもよい。
【００１０】
また、上記第３位置データ算出部は、上記第３位置データを、上記第１ビット幅よりも長い第３ビット幅で算出し、
上記エンコーダは、上記第３位置データを上記第１ビット幅の位置データに変換する第２データ変換部を更に有してもよい。
【００１１】
また、上記課題を解決するために、本発明の別の観点によれば、検出対象を移動させるモータと、
上記モータが移動させた検出対象の位置を検出するエンコーダと、
上記エンコーダが検出した位置データに基づいて、上記モータを制御する制御装置と、
を有し、
上記エンコーダは、
上記検出対象の位置を表す検出信号を検出する検出部と、
上記検出部が検出した検出信号に基づいて、離散的なサンプリングタイミングで、上記検出対象の位置を表す第１ビット幅の第１位置データを算出する第１位置データ算出部と、
上記第１位置データ算出部が算出した第１位置データを、上記第１ビット幅のデータ範囲を超えた際に生じるデータの離隔を是正するように、上記第１ビット幅よりも長い第２ビット幅の第２位置データに変換する第１データ変換部と、
連続した２以上の上記サンプリングタイミングにおいて上記第１データ変換部が変換した２以上の第２位置データに基づいて、タイミングデータが入力されると位置データを導出する近似関数を算出する近似部と、
上記近似部が算出した近似関数に基づいて、出力タイミングにおける検出対象の位置を表す第３位置データを算出する第３位置データ算出部と、
を有し、
上記第１データ変換部は、
上記第１位置データ算出部が算出した第１位置データに基づいて、上記検出対象の移動速度を表す速度データを算出する速度データ算出部と、
上記速度データ算出部が算出した速度データに基づいて、上記検出対象の位置を上記第２ビット幅で表す第２位置データを算出する第２位置データ算出部と、
を有する、サーボユニットが提供される。
【００１２】
また、上記課題を解決するために、本発明の別の観点によれば、検出対象の位置を表す検出信号を検出する検出ステップと、
上記検出ステップで検出した検出信号に基づいて、離散的なサンプリングタイミングで、上記検出対象の位置を表す第１ビット幅の第１位置データを算出する第１位置データ算出ステップと、
上記第１位置データ算出ステップで算出した第１位置データを、上記第１ビット幅のデータ範囲を超えた際に生じるデータの離隔を是正するように、上記第１ビット幅よりも長い第２ビット幅の第２位置データに変換する第１データ変換ステップと、
連続した２以上の上記サンプリングタイミングにおいて上記第１データ変換ステップで変換した２以上の第２位置データに基づいて、タイミングデータが入力されると位置データを導出する近似関数を算出する近似ステップと、
上記近似ステップで算出した近似関数に基づいて、出力タイミングにおける検出対象の位置を表す第３位置データを算出する第３位置データ算出ステップと、
を有し、
上記第１データ変換ステップは、
上記第１位置データ算出ステップが算出した第１位置データに基づいて、上記検出対象の移動速度を表す速度データを算出する速度データ算出ステップと、
上記速度データ算出ステップが算出した速度データに基づいて、上記検出対象の位置を上記第２ビット幅で表す第２位置データを算出する第２位置データ算出ステップと、
を有する、位置データ算出方法が提供される。
【発明の効果】
【００１３】
以上説明したように本発明によれば、より正確な位置データを測定することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態に係るサーボユニットの構成について説明するための説明図である。
【図２】同実施形態に係るエンコーダの構成について説明するための説明図である。
【図３】同実施形態に係るエンコーダにおける処理について説明するための説明図である。
【図４】同実施形態に係るエンコーダにおける処理について説明するための説明図である。
【図５】同実施形態に係るエンコーダにおける処理について説明するための説明図である。
【図６】同実施形態に係るエンコーダにおける処理について説明するための説明図である。
【図７】同実施形態に係るエンコーダの動作について説明するための説明図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、本発明の実施の形態について詳細に説明する。なお、本明細書及び図面では、実質的に同一の機能を有する構成要素は、原則として同一の符号で表す。そして、これらの構成要素についての重複説明は、適宜省略する。
【００１６】
本発明の各実施形態に係るエンコーダ等について具体的に説明する前に、該実施形態が関連するエンコーダにおける処理の概要について説明する。
【００１７】
エンコーダは、位置の検出対象の一例であるモータの位置（モータが駆動する対象（例えばシャフト等）の位置）を、所定の検出原理（例えば、光学原理・磁気原理・機械的原理など）を利用して、検出信号に変換する。そして、エンコーダは、その検出信号を、所定の信号処理により位置データに変換する。
【００１８】
一方、エンコーダ内で位置データを処理する信号処理の過程において、処理されるデータは、少なくとも部分的には、デジタルデータとして扱われる。デジタルデータは、例えば「型（データ型ともいう。）」が決められ、そのデータ型で処理される。データ型は、１のデータのビット数であるビット幅（データ長ともいう。）や、そのデータが小数点や符号を含むか否かなどを規定する。
【００１９】
例えば、Ｃ言語などのプログラミング言語が使用される場合、ビット幅が１６ｂｉｔで符号なし整数のデータ型は、符号なし短長整数型（ｕｎｓｉｇｎｅｄ  ｓｈｏｒｔ  ｉｎｔ）となり、ビット幅が３２ｂｉｔで符号なし整数のデータ型は、符号なし倍長整数型（ｕｎｓｉｇｎｅｄ  ｌｏｎｇ  ｉｎｔ）となる。また、ビット幅が１６ｂｉｔで符号あり整数のデータ型は、符号つき短長整数型（ｓｉｇｎｅｄ  ｓｈｏｒｔ  ｉｎｔ）となり、ビット幅が３２ｂｉｔで符号あり整数のデータ型は、符号つき倍長整数型（ｓｉｇｎｅｄ  ｌｏｎｇ  ｉｎｔ）となる。
【００２０】
そして、それぞれのデータ型のデータは、ビット幅に応じて取り得る範囲が決まっている。
例えば、
ｕｎｓｉｇｎｅｄ  ｓｈｏｒｔ  ｉｎｔのデータは、０〜６５５３５の値を取り、
ｕｎｓｉｇｎｅｄ  ｌｏｎｇ  ｉｎｔのデータは、０〜４２９４９６７２９５の値を取る。
【００２１】
また、データ型が符号付きである場合、最上位ビット（ＭＳＢｉｔ：Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）は、符号を表すため、取り得る範囲が符号付きデータ型と異なる。
例えば、
ｓｉｇｎｅｄ  ｓｈｏｒｔ  ｉｎｔのデータは、−３２７６８〜３２７６７の値を取り、
ｓｉｇｎｅｄ  ｌｏｎｇ  ｉｎｔのデータは、−２１４７４８３６４８〜２１４７４８３６４７の値を取る。
【００２２】
そして、各信号処理回路では、その回路が物理的な回路であろうとソフトウェアとして処理される回路であろうと、その回路で処理されるデータのデータ型が予め決められており、各データは、その型に応じたビット数のデータとして取り扱われる。
【００２３】
一方、エンコーダ内の位置を表すデータは、位置の変化に応じて連続的に変化する。この際、エンコーダは、位置を表す検出信号の検出タイミングや検出信号から位置データを算出する処理タイミングなどのサンプリングタイミングが時間的に離隔している。従って、所望の出力タイミングにおける位置データを出力するには、過去のサンプリングタイミングにおいて算出した位置データから近似関数を求め、その近似関数から所望の出力タイミングにおける位置データを算出する場合がある。
【００２４】
しかし、デジタル処理される位置データが表す値の範囲は上述の通りデータ型によって限定される結果、時系列に並んだデータは、単調に増加又は減少するだけでなく、その範囲の上限又は下限値を超えたところで、大きく離隔し、単調な増加又は減少から外れた挙動を示す（例えば、ｕｎｓｉｎｇｅｄ  ｓｈｏｒｔ  ｉｎｔの場合、上限値の６５５３５から１増加すると０となる。）。この挙動は、時系列で連続したデータから近似関数等を求める際の妨げとなる。
【００２５】
このような妨げとなる位置データの制限値によって生じる過度な離隔を、本発明の各実施形態に係るエンコーダ等は、適切に抑制してより正確な位置データを生成することが可能である。ただし、各実施形態に係るエンコーダの効果は、この例に限定されるものではなく、各実施形態に係るエンコーダは、その他、各実施形態の説明において詳細に説明する通りである。
【００２６】
なお、以下では説明の便宜上、各実施形態に係るサーボユニットは、回転型（ロータリタイプ）のモータ及びエンコーダ等を備える場合について説明する。しかしながら、本発明は、かかる例に限定されるものではなく、例えば直動型（リニアタイプ）や他のタイプのモータ及びエンコーダ等であってもよいことを付言しておく。以下、この本発明の各実施形態に係るエンコーダ等について詳しく説明する。
【００２７】
＜第１実施形態＞
（サーボユニットの構成）
まず、図１を参照しつつ、本発明の第１実施形態に係るサーボユニットの構成について説明する。図１は、本発明の第１実施形態に係るサーボユニットの構成について説明するための説明図である。
【００２８】
図１に示すように、本実施形態に係るサーボユニットＳＵは、サーボモータＳＭと、制御装置ＣＴとを有する。また、サーボモータＳＭは、エンコーダ１００と、モータＭとを有する。
【００２９】
モータＭは、エンコーダ１００を含まない動力発生源の一例である。このモータＭ単体をサーボモータという場合もあるが、本実施形態では、エンコーダ１００を含む構成をサーボモータＳＭということにする。モータＭは、シャフトＳＨを有し、このシャフトＳＨを回転軸ＡＸ周りに回転させることにより、シャフトＳＨの一端（出力端）から回転力を出力する。
【００３０】
なお、モータＭは、位置データに基づいて制御されるモータであれば特に限定されるものではないが、説明の便宜上、以下ではモータＭが電動式モータである場合について説明する。しかし、モータＭは、動力源として電気を使用する電動式モータである場合に限られるものではなく、例えば、油圧式モータ、エア式モータ、蒸気式モータ等の他の動力源を使用したモータであってもよい。
【００３１】
エンコーダ１００は、モータＭのシャフトＳＨの出力端とは逆側の測定端に配置され、シャフトＳＨに連結される。そして、このエンコーダ１００は、シャフトＳＨの位置を検出することにより、回転力が出力されるシャフトＳＨの位置（回転角度θ、モータＭの位置ｘ等ともいう。）を検出し、その位置を表す位置データＸを出力する。
【００３２】
エンコーダ１００は、測定した位置データを常時又は任意のタイミングで制御装置ＣＴに出力することも可能である。しかし、説明の便宜上、本実施形態に係るエンコーダ１００は、リクエスト信号Ｒを制御装置ＣＴから取得した場合、そのリクエスト信号Ｒを取得したタイミング（出力タイミングの一例。リクエストタイミングｔｒともい。）における位置データＸを、制御装置ＣＴに出力する。
【００３３】
なお、エンコーダ１００の配置位置は、本実施形態に示す例に特に限定されるものではない。例えば、エンコーダ１００は、出力側のシャフトＳＨに直接連結されるように配置されてもよく、また、減速機や回転方向変換機などの他の機構を介してシャフトＳＨ等の移動体に連結されてもよい。
【００３４】
制御装置ＣＴは、上述の通り、本実施形態ではリクエスト信号Ｒをエンコーダ１００に出力し、そのリクエスト信号Ｒに応答してエンコーダ１００から出力される位置データＸを取得する。そして、制御装置ＣＴは、当該位置データＸに基づいて、モータＭの回転を制御する。従って、モータＭとして電動式モータが使用される本実施形態では、制御装置ＣＴは、位置データに基づいて、モータＭに印加する電流又は電圧等を制御することにより、モータＭの回転を制御する。更に、制御装置ＣＴは、上位制御装置（図示せず）から上位制御信号を取得して、当該上位制御信号に表された位置又は速度等がモータＭのシャフトＳＨから出力されるように、モータＭを制御することも可能である。なお、モータＭが、油圧式、エア式、蒸気式などの他の動力源を使用する場合には、制御装置ＣＴは、それらの動力源の供給を制御することにより、モータＭの回転を制御することが可能である。
【００３５】
（エンコーダの構成）
次に、図２〜図６を参照しつつ、本実施形態に係るエンコーダ１００の構成について説明する。図２は、本実施形態に係るエンコーダの構成について説明するための説明図である。図３〜図６は、本実施形態に係るエンコーダにおける処理について説明するための説明図である。
【００３６】
図２に示すように、本実施形態に係るエンコーダ１００は、検出部１１０と、第１位置データ算出部１２０と、第１データ変換部１３０と、近似部１４０と、第３位置データ算出部１５０と、第２データ変換部１６０とを有する。
【００３７】
検出部１１０は、モータＭのシャフトＳＨに連結された回転体等から、機械的・電気的・磁気的・光学的などの原理を使用して、モータＭの位置に応じて変化するアナログの検出信号Ｄ（タイミングｔｎにおけるものを検出信号Ｄｎとする。ｎは整数。）を検出する。なお、この検出部１１０による検出原理及び検出信号Ｄの種類や形状等は、特に限定されるものではない。
【００３８】
検出部１１０の具体的な構成例について、検出原理として光学式の検出を行う場合について説明すると、以下の通りである。つまり、例えば、モータＭが回転させるシャフトＳＨには、光を透過・反射・回折等する複数のスリットを有する回転ディスク（図示せず）が連結される。そして、固定された光源が、スリットに光を照射し、そのスリットを透過等した光を、同じく固定された受光素子で電気信号に変換する。この電気信号が、直接にか、又は、増幅等の処理が施された後に、検出信号Ｄとして出力される。この検出信号Ｄは、ディスクの回転にともない増減することとなり、その増減が、モータＭの位置（この場合正確には位置の変化量）を表す。ただし、検出信号Ｄは、１つに限られず、例えば、回転方向を検出するために９０°位相差のある２の信号を含んでもよく、偏心誤差等を低減するために１８０°位相差のある信号を含んでもよい。また、検出信号Ｄは、絶対位置を算出するための原点信号を含んでもよく、それ自体が絶対位置を表す信号であってもよい。
【００３９】
ただし、ここで挙げた構成例は、あくまで検出部１１０の一例であり、検出部１１０は、モータＭの位置を表し、次に説明する第１位置データ算出部１２０が位置を表す位置データを算出可能な信号を、検出信号Ｄとして検出可能である構成であれば、特に限定されるものではない。
【００４０】
第１位置データ算出部１２０は、検出部１１０が検出した検出信号Ｄを取得して、その検出信号Ｄから、モータＭの位置を表す位置データ（この位置データを「第１位置データＡ」ともいう。）を算出する。
【００４１】
第１位置データ算出部１２０による第１位置データの算出方法は、特に限定されるものではないが、上記光学的な原理が使用される場合における位置データの算出方法の一例について説明すれば、例えば以下のような方法が挙げられる。つまり、上述の例の場合、検出部１１０が検出した検出信号Ｄは、スリットを透過等した光となるため、例えば、ディスクの回転にともない振幅が変化するパルス状又は正弦波状等のアナログの信号となる。そこで、第１位置データ算出部１２０は、まず、検出信号Ｄをアナログ−デジタル変換する。そして、第１位置データ算出部１２０は、例えば、デジタル化された信号を逓倍処理して周波数を増加させることにより、分解能を向上させる。一方、第１位置データ算出部１２０は、所定の基準位置を通過した後に、逓倍された信号の検出数をカウントすることで、第１位置データＡを算出することができる。位置データの算出方法の他の例としては、例えば、Ａ相及びＢ相の２つの正弦波の検出信号の除算結果をａｒｃｔａｎ演算することにより電気角φを算出する方法、トラッキング回路を用いて２つの正弦波の検出信号を電気角φに変換する方法、及び、予め作成されたテーブルにおいてＡ相及びＢ相の信号の値に対応付けられた電気角φを特定する方法などが挙げられる。
【００４２】
第１位置データ算出部１２０は、第１位置データＡ（タイミングｔｎにおけるものを第１位置データＡｎとする。ｎは整数。）を、第１ビット幅（例えば１６ｂｉｔ）のデジタルデータとして算出する。なお、第１位置データＡはモータＭの位置を表し、かつ、その位置は通常正の整数値で示されるため、第１位置データＡは本実施形態では第１ビット幅の符号なし整数のデータ型で算出される。ただし、第１位置データＡのデータ型は特に限定されるものではない。図３に、第１位置データＡの時間変化の例を示す。
【００４３】
図３に示すように、この第１位置データＡは、第１ビット幅のデータであるため、モータＭの位置の変化に応じて、例えば０〜Ａｍａｘ（１６ｂｉｔの場合０〜６５５３５）までの範囲の増減を繰り返す値となる。図３では、１の方向にある程度の定速でモータＭが回転することにより、時間ｔの経過にともない、第１位置データＡが単調に増加している場合を例示している。モータＭの回転が逆になれば、時間ｔの経過にともない、第１位置データＡは、今度は減少に転じることになる。第１位置データＡが減少する場合は、増加する場合と同様に処理可能であるため、以下では説明の便宜上、第１位置データＡが単調に増加する場合を例に説明する。
【００４４】
本実施形態の場合、Ａ＝０がモータＭの基準位置であり、Ａ＝Ａｍａｘを超えるとモータＭが一回転してＡ＝０に戻る場合を示している。つまり、第１位置データＡは、０〜Ａｍａｘの間の値を取り、それよりも減少又は増加すると、０〜Ａｍａｘの値が繰り返されることとなる。このようにデータが取り得る値の範囲を、ここではデータ範囲という。このデータ範囲は、通常、モータＭの位置分解能と一致するように選択される。つまり、第１ビット幅が１６ｂｉｔの場合、データ範囲は０〜６５５３５となる。そして、これに対応して、モータＭの一回転が、０〜６５５３５に対応付けられ、第１位置データＡの値がモータＭの絶対位置を表すことになる。
【００４５】
一方、この第１位置データＡは、図３に示すように、時間的に離隔した不連続の断続的に算出される。この第１位置データＡの算出タイミングを「サンプリングタイミング」ともいう。なお、サンプリングタイミングｔｎ（ｎは整数）の間隔は、検出信号Ｄの検出タイミング、アナログ−デジタル変換の変換タイミング、位置データ算出処理に要する時間等に依存するが、特に限定されるものではない。
【００４６】
以上のように、第１位置データ算出部１２０は、サンプリングタイミングｔｎ毎に、上記第１ビット幅に応じたデータ範囲の第１位置データＡを順次算出する。そして、本実施形態の場合、この第１位置データＡは、モータＭの一回転内の位置（１Ｘアブソリュートポジション）を表し、上記データ範囲内で繰り返す値となる。以下では、適宜、第１位置データＡが「符号なし短長整数型（ｕｎｓｉｇｎｅｄ  ｓｈｏｒｔ）」のデータ型として処理される場合（つまり１６ｂｉｔのビット幅）を例示しつつ説明する。
【００４７】
ただし、第１位置データ算出部１２０による第１位置データＡの算出方法、第１位置データＡのビット幅、第１位置データＡが繰り返されることにより表すモータＭの位置の範囲（上記例では１回転）等は、特に限定されるものではない。換言すれば、第１位置データ算出部１２０は、検出信号Ｄに基づいて、第１位置データＡとして、検出対象のＭの位置をデジタルに表し、所定のビット幅で繰り返される値を取るデータを算出する構成であれば、特に限定されるものでないことを付言しておく。
【００４８】
ここで、エンコーダ１００から最終的な位置データＸが出力されるタイミングである出力タイミングｔｒ等について説明する。上述の通り、第１位置データＡは、離散的なサンプリングタイミングｔｎで算出される。しかしながら、制御装置ＣＴが必要とする位置は、このサンプリングタイミングｔｎにおける位置とは限らない。そこで、制御装置ＣＴは、リクエスト信号Ｒをエンコーダ１００に出力する。このリクエスト信号Ｒが出力されたタイミング又はリクエスト信号Ｒに表されたタイミングを、ここでは出力タイミングｔｒともいう。出力タイミングｔｒとサンプリングタイミングｔｎとの間に時差がある場合、エンコーダ１００は、過去のサンプリングタイミングで算出した位置データ等に基づいて、タイミングが入力されると位置データを導出する近似関数（例えば回帰直線等）を求める。そして、エンコーダ１００は、この近似関数と出力タイミングｔｒとから、その出力タイミングｔｒにおける位置データＸを算出して、制御装置ＣＴに出力する。
【００４９】
しかしながら、図３に示すように、近似関数を算出するための過去の複数のサンプリングタイミングにおいて、第１位置データＡがデータ範囲を超えてデータが大きく離隔するようなデータ変化点Ｔｉが含まれる場合が生じえる。この場合、これらのデータから算出される近似関数ＦＡは、図３に示すように実際の第１位置データＡを表さない。従って、この場合、エンコーダ１００は、正確な位置データＸを制御装置ＣＴに出力できない恐れがある。
【００５０】
このような誤検出を防止して、安定的に正確な位置データＸを出力するために、エンコーダ１００は、第１データ変換部１３０等により、正確な近似関数を算出する。そこで、以下では、この第１データ変換部１３０等について詳細に説明する。
【００５１】
第１データ変換部１３０は、第１データ変換部の一例であって、より正確な近似関数を求めるために、第１位置データＡを、その第１位置データＡよりもビット幅が長い第２位置データＢに変換する（例えばキャスト処理等）。そして、後述する近似部１４０が、第１データ変換部１３０で変換した複数のサンプリングタイミングｔｎ−ｍ，ｔｎ−ｍ＋１，…，ｔｎ（＝ｔ０，ｔ１，…，ｔｍ）における第２位置データＢｎ−ｍ，Ｂｎ−ｍ＋１，…，Ｂｎ（＝Ｂ０，Ｂ１，…，Ｂｍ）に基づいて、近似関数を求めることになる。
【００５２】
なお、ここでは、最新のサンプリングタイミングをにおけるデータを、添字ｎで表し、過去ｍ個のデータから、近似関数を求める場合を例に説明する。つまり、最新のサンプリングタイミングはｔｎであり、その際の第１位置データ及び第２位置データはそれぞれＡｎ及びＢｎとなる一方、ｍ個前のサンプリングタイミングはｔｎ−ｍであり、その際の第１位置データ及び第２位置データはそれぞれＡｎ−ｍ及びＢｎ−ｍとなる。
【００５３】
第１データ変換部１３０は、図２に示すように、ビット幅の変換を行うために、一例として、速度データ算出部１３１と、位置メモリ１３２と、第２位置データ算出部１３３と、速度メモリ１３４とを有する。
【００５４】
第１位置データ算出部１２０で算出された第１位置データＡを取得した第１データ変換部１３０は、その第１位置データＡを位置メモリ１３２に記録する。
この際、位置メモリ１３２には、少なくとも過去にさかのぼってｍ個の第１位置データＡｎ−ｍ〜Ａｎ−１が記録される。そして、最新の第１位置データＡｎが算出されると、最新の第１位置データＡｎが過去の第１位置データとして位置メモリ１３２に記録され、第１位置データＡｎ−ｍが不要なデータとして位置メモリ１３２から消去される。ただし、位置メモリ１３２は、ある程度のバッファを有して、不要となったデータ（つまり、ｍ以上の数前のサンプリングタイミングにおける第１位置データ）を、例えば記憶したままにしてもよい。
【００５５】
速度データ算出部１３１は、第１位置データ算出部１２０が算出した第１位置データに基づいて、モータＭの速度を算出する。この速度データ算出部１３１が算出した速度を表すデータを、ここでは速度データＶともいう。図４に、速度データＶの時間変化の例を示す。速度データ算出部１３１は、最新の第１位置データＡｎが第１位置データ算出部１２０で算出されると、そのサンプリングタイミングｔｎにおけるモータＭの速度Ｖｎを算出する。なお、速度Ｖｎの算出にあたり、速度データ算出部１３１は、位置メモリ１３２に記録された過去の位置Ａｎ−ｍ〜Ａｎ−１を利用することが可能である。
【００５６】
速度データ算出部１３１による速度データＶの算出方法は、様々な方法が考えられる。例えば、最新のサンプリングタイミングｔｎの速度データＶｎを算出する場合、最新の第１位置データＡｎから、１つ前のサンプリングタイミングｔｎ−１における第１位置データＡｎ−１を減算することで、速度データＶｎを算出できる。この場合、速度データＶｎは、サンプリングタイミング間隔あたりの変化量となる。よって、他のサンプリングタイミングにおける第１位置データＡを使用して速度データＶｎを求める場合に比べて、両サンプリングタイミングの時間間隔を考慮する必要がないため、処理が容易である。また、この場合、速度データＶを、第１位置データ算出部１２０が第１位置データＡを算出するたびに順次算出することが可能である。
【００５７】
なお、速度データ算出部１３１は、速度データＶを、回転方向を符号（＋／−）で表した符号付きのデータとして算出する。そのために、速度データ算出部１３１は、第１ビット幅の符号なしデータ同士の第１位置データＡｎから第１位置データＡｎ−１を減算し、ＭＳＢｉｔを符号ビットとすることで、減算結果を、第１ビット幅の符号付きデータとして取り扱う。速度データＶのデータ範囲（Ｖｍｉｎ〜Ｖｍａｘ）は、１６ｂｉｔの場合−３２７６８〜３２７６７となる。
【００５８】
算出された速度データＶｎは、第２位置データ算出部１３３に出力されると共に、順次速度メモリ１３４に記録される。
速度メモリ１３４には、少なくとも過去にさかのぼってｍ−２個の速度データＶｎ−ｍ＋１〜Ｖｎ−１が記録される。そして、最新の速度データＶｎが算出されると、最新の速度データＶｎが過去の速度データとして速度メモリ１３４に記録され、速度データＶｎ−ｍ＋１が不要なデータとして速度メモリ１３４から消去される。ただし、速度メモリ１３４は、ある程度のバッファを有して、不要となったデータ（つまり、ｍ−１以上の数前のサンプリングタイミングにおける速度データ）を、例えば記憶したままにしてもよい。
【００５９】
第２位置データ算出部１３３は、位置メモリ１３２に記録された基準となるｍ個前のサンプリングタイミングｔｎ−ｍにおける第１位置データＡｎ−ｍ（第１ビット幅）を取得して、その第１位置データＡｎ−ｍを少なくとも２ｂｉｔ以上ビット幅が長い第２ビット幅の符号付きデータ（「第２位置データＢ」ともいう。）に変換する。この変換後のデータを第２位置データＢｎ−ｍとする。
【００６０】
そして、第２位置データ算出部１３３は、速度メモリ１３４及び速度データ算出部１３１から、サンプリングタイミングｔｎ−ｍ＋１〜ｔｎまでの速度データＶｎ−ｍ＋１〜Ｖｎを取得する。その後、第２位置データ算出部１３３は、これらの速度データを第２ビット幅の符号付きデータに変換する。
【００６１】
次に、第２位置データ算出部１３３は、基準となるサンプリングタイミングｔｎ−ｍにおける第２位置データＢｎ−ｍに、速度データＶｎ−ｍ＋１〜Ｖｎを順次加算していくことにより、サインプリングタイミングｔｎ−ｍ＋１〜ｔｎにおける第２位置データＢｎ−ｍ＋１〜Ｂｎを算出する。従って、第２位置データ算出部１３３は、第２ビット幅でモータＭの位置を表した第２位置データＢｎ−ｍ〜Ｂｎを近似部１４０に出力することができる。なお、第２位置データＢｎ−ｍ〜Ｂｎの例を図５に示す。図５に示すように、第２ビット幅が１８ｂｉｔの場合、第２位置データＢのデータ範囲（Ｂｍｉｎ〜Ｂｍａｘ）は、−１３１０７１〜１３１０７０となる。
【００６２】
なお、ここでは第２位置データＢの第２ビット幅が第１ビット幅よりも２ｂｉｔ以上長い場合について説明しているが、１ｂｉｔのみのビット幅の延長の場合には、符号なしでプラス側、符号付きでマイナス側だけデータ範囲を拡張することになる。従って、例えば回転方向が一定であるような場合などは、プラス側又はマイナス側のみが拡張されれば済むため、１ｂｉｔのビット幅の延長でも良い。ただし、本実施形態のように、２ｂｉｔ以上の符号付きデータを第２位置データＢとする場合には、プラス側及びマイナス側の両側のデータ範囲を適切に拡張することとなり、安定性を倍増させることが可能である。
【００６３】
近似部１４０は、連続した２以上のサンプリングタイミングｔｎ−ｍ〜ｔｎにおける第２位置データＢｎ−ｍ〜Ｂｎを回帰分析して、タイミング（時間）を表すタイミングデータが入力されると位置データ（「第３位置データＣ」ともいう。）を導出する近似関数ＦＢを算出する。つまり、近似部１４０は、サンプリングタイミングｔｎにおいて、第２位置データＢｎ−ｍ〜Ｂｎのｍ個の位置データを回帰分析して、近似関数ＦＢの定数（例えば回帰直線の場合傾き及び切片）を求める。この近似部１４０が算出した近似関数ＦＢのイメージを図５に示す。
【００６４】
本実施形態では、回帰分析の一例として、直線回帰分析が使用される場合について説明するが、回帰分析の他の例として、より高次の回帰分析を使用することも可能である。また、回帰分析方法の一例として、本実施形態では、最小二乗法が使用可能であるが、回帰分析方法は、線形であれば線形関数が導出でき、非線形であれば非線形関数が導出できる方法であれば特に限定されるものではない。
【００６５】
新たなサンプリングたミングｔｎが到来すると、第１位置データ算出部１２０は新たな第１位置データＡを算出して、第１データ変換部１３０はｍ個前のサンプリングたミングｔｎ−ｍまでの新たな第２位置データＢのセットを出力することになるが、近似部１４０は、そのセットを取得するたびに、近似関数ＦＢを更新する。
【００６６】
第３位置データ算出部１５０は、制御装置ＣＴからリクエスト信号Ｒを取得すると、そのリクエスト信号Ｒを取得したタイミング又はリクエスト信号Ｒに表されたタイミング（出力タイミング、リクエストタイミング）ｔｒを表すタイミングデータを、近似関数ＦＢに入力して、リクエストタイミングｔｒにおけるモータＭの位置データ（「第３位置データＣ」ともいう。）を導出する。第３位置データ算出部１５０は、第３位置データＣを、第２位置データＢと同様の第２ビット幅の符号付きデータとして導出する。
【００６７】
第２データ変換部１６０は、第２データ変換部の一例であって、図６に示すように、第３位置データ算出部１５０が導出した第３位置データＣを変換して、制御装置ＣＴが要求するデータ型へと変換する（例えばキャスト処理。）。この際、第１位置データ算出部１２０が算出するデータのデータ型は、制御装置ＣＴが要求するデータ型と等しい場合が多い。そこで、本実施形態の場合、第２データ変換部１６０は、第１位置データと同じデータ型、つまり第１ビット幅の符号なしデータに変換する。この変換後のデータを、出力位置データＸともいう。
【００６８】
なお、例えば、第３位置データＣが例えば１８ｂｉｔの符号付きデータであり、出力位置データＸが１６ｂｉｔの符号なしデータである場合、第３位置データＣから出力位置データＸへの変換は、上位２ｂｉｔ（１８ｂｉｔ−１６ｂｉｔ）を削除することにより行うことが可能である。
【００６９】
（エンコーダ等の動作）
以上、本実施形態に係るエンコーダ１００等の構成について説明した。
次に、図７を参照しつつ、本実施形態に係るエンコーダ１００等の動作について説明する。図７は、本実施形態に係るエンコーダの動作について説明するための説明図である。
【００７０】
図７に示すように、エンコーダ１００は、まずステップＳ０１を処理する。
このステップＳ０１（検出ステップの一例）では、検出部１１０が、モータＭの位置を検出してその位置を表す検出信号Ｄを取得する。そして、ステップＳ０３に進む。
【００７１】
ステップＳ０３（第１位置データ算出ステップの一例）では、第１位置データ算出部１２０が、検出部１１０が検出した検出信号Ｄに基づいて、モータＭの位置を第１ビット幅で表す第１位置データＡを算出する。そして、ステップＳ０５に進む。
【００７２】
ステップＳ０５（第１データ変換ステップの一例）では、第１データ変換部１３０が、第１位置データＡを、それよりも長い第２ビット幅の第２位置データＢに変換する。なお、このステップＳ０５は、より詳しくは、ステップＳ０５１と、ステップＳ０５２とに分けられ、ステップＳ０５１が先に処理される。
【００７３】
ステップＳ０５１（速度データ算出ステップの一例）では、速度データ算出部１３１が、ステップＳ０３で算出されたサンプリングタイミングｔｎの第１位置データＡｎと、それよりも１つ前のサンプリングタイミングｔｎ−１における第１位置データＡｎ−１とに基づいて、サンプリングタイミングｔｎにおける速度データＶｎを算出する。そして、ステップＳ０５２に進む。
【００７４】
ステップＳ０５２（第２位置データ算出ステップの一例）では、第２位置データ算出部１３３が、ステップＳ０５１で算出された過去分を含む速度データＶｎ−ｍ＋１〜Ｖｎと、ステップＳ０３で過去に算出された第１位置データＡｎ−ｍとに基づいて、モータＭの位置を第２ビット幅で表す複数のサンプリングタイミングｔｎ−ｍ〜ｔｎにおける第２位置データＢｎ−ｍ〜Ｂｎを、算出する。そして、ステップＳ０７に進む。
【００７５】
ステップＳ０７（近似ステップの一例）では、近似部１４０が、ステップＳ０５２で算出されたデータセット（第２位置データＢｎ−ｍ〜Ｂｎ）を、回帰分析して近似関数ＦＢを算出する。そして、ステップＳ０９に進む。
【００７６】
ステップＳ０９では、次のサンプリングタイミングｔｎ＋１が到来したか否かが確認される。そして、次のサンプリングタイミングｔｎ＋１になっていれば、ステップＳ０１以降の処理が繰り返され、未だ次のサンプリングタイミングｔｎ＋１に至っていなければ、ステップＳ１１に進む。
【００７７】
ステップＳ１１では、第２位置データ算出部１５０が、制御装置ＣＴから、リクエスト信号Ｒを取得したか否かを確認する。リクエスト信号Ｒが取得されていなければ、ステップＳ０９が繰り返し処理される一方、リクエスト信号Ｒが取得されていれば、ステップＳ１３が処理される。
【００７８】
ステップＳ１３（第３位置データ算出ステップの一例）では、第３位置データ算出部１５０が、リクエスト信号Ｒを取得したタイミングやそれに表されたタイミング（出力タイミング、リクエストタイミング）ｔｒのタイミングデータを、ステップＳ０７で算出された近似関数ＦＢに入力して、その出力タイミングｔｒにおけるモータＭの位置を第２ビット幅で表した第３位置データＣを算出する。そして、ステップＳ１５に進む。
【００７９】
ステップＳ１５（第２データ変換ステップの一例）では、第２データ変換部１６０が、ステップＳ１３で導出した第３位置データＣを、制御装置ＣＴが要求するデータ型（例えば第１ビット幅のデータ）に変換して、その変換後の出力位置データＸを、制御装置ＣＴに出力する。このステップＳ１５で、１つの出力位置データＸの吐き出しまでの流れは、終了するが、通常、ステップＳ１５の処理後に次のサンプリングタイミングｔｎ＋１が到来すると、ステップＳ０１以降の処理が繰り返されることになる。
【００８０】
（本実施形態による効果の例）
以上、本実施形態に係るエンコーダ１００等について説明した。
このエンコーダ１００等によれば、近似関数を求める際に、第１位置データ算出部１２０が算出した第１位置データを、その第１ビット幅よりも長い第２ビット幅の第２位置データに変換し、その第２位置データから近似関数を算出する。従って、データ範囲が広がり、データ範囲の上限又は下限における制限による影響を受けない正確な位置データを導出できる。
【００８１】
また、この際、エンコーダ１００によれば、ビット幅を増やす際に、各位置データにおける速度データを使用して、データ変換を行う。従って、近似関数の導出に使用するデータセットを、データが大きく変化するデータ変化点Ｔｉが含まないデータセットへと変更することが可能である。よって、より正確な近似関数を求めることが可能である。
【００８２】
以上、添付図面を参照しながら本発明の実施の形態について詳細に説明した。しかしながら、本発明の技術的思想の範囲は、ここで説明した実施の形態に限定されないことは言うまでもない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された本発明の技術的思想の範囲内において、様々な変更や修正、組み合わせなどを行うことに想到できることは明らかである。従って、これらの変更や修正、組み合わせなどの後の技術も、当然に本発明の技術的思想の範囲に属するものである。
【００８３】
なお、本明細書において、フローチャートに記述されたステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的に又は個別的に実行される処理をも含む。また時系列的に処理されるステップでも、場合によっては適宜順序を変更することが可能であることは言うまでもない。
【符号の説明】
【００８４】
ＳＵ                      サーボユニット
ＳＭ                      サーボモータ
ＣＴ                      制御装置
Ｍ                        モータ
ＳＨ                      シャフト
１００                    エンコーダ
１１０                    検出部
１２０                    第１位置データ算出部
１３０                    第１データ変換部
１３１                    速度データ算出部
１３２                    位置メモリ
１３３                    第２位置データ算出部
１３４                    速度メモリ
１４０                    近似部
１５０                    第３位置データ算出部
１６０                    第２データ変換部
Ｄ                        検出信号
Ａ                        第１位置データ
Ｂ                        第２位置データ
Ｃ                        第３位置データ
Ｒ                        リクエスト信号
Ｘ                        出力位置データ
Ｖ                        速度データ
ｔｎ                      サンプリングタイミング
ｔｒ                      リクエストタイミング
【図１】
0005251960.tif 000002
【図２】
0005251960.tif 000003
【図３】
0005251960.tif 000004
【図４】
0005251960.tif 000005
【図５】
0005251960.tif 000006
【図６】
0005251960.tif 000007
【図７】
0005251960.tif 000008