(57)【特許請求の範囲】
【請求項１】
ロータリエンコーダが回転体の回転に応じて出力するパルス信号のレベル値の切替わりのうち、該切替わり後に事前に設定された所定のチャタリング排除時間の期間内で該レベル値を復帰させる切替わりを伴う切替わりを、チャタリング現象又は瞬時的なノイズに起因する除外対象切替わりとして除外してなる該レベル値の切替わりである検知対象切替わりの発生を検知する切替わり検知処理を実行しつつ、前記回転体の回転状態を把握するために用いる前記パルス信号の波形を認識する信号処理方法であって、
前記ロータリエンコーダが出力したパルス信号を観測しつつ、前記チャタリング排除時間を用いて前記切替わり検知処理を実行する切替わり検知ステップと、
前記検知対象切替わりの発生を検知してから、次の前記検知対象切替わりの発生を検知するまでの経過時間を計時する計時ステップと、
前記検知対象切替わりの発生を検知する毎に、以後の前記切替わり検知処理に使用する前記チャタリング排除時間を可変的に設定するチャタリング排除時間設定ステップと、
前記検知対象切替わりの発生を検知する毎に、今回の検知対象切替わりの発生を検知したときの前記切替わり検知処理で使用した前記チャタリング排除時間の設定値と、前回の検知対象切替わりの発生を検知したときの前記切替わり検知処理で使用した前記チャタリング排除時間の設定値との偏差に応じて、前回の検知対象切替わりの発生を検知してから今回の検知対象切替わりの発生を検知するまでに前記計時ステップで計時した前記経過時間を補正することにより、今回の検知対象切替わりの発生の直前における前記パルス信号のパルス幅を推定するパルス幅推定ステップとを備え、
前記チャタリング排除時間設定ステップでは、前記検知対象切替わりの発生を検知する毎に、前記回転体の回転速度が速いほど、前記チャタリング排除時間を短くするように、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの少なくとも最新値に応じて前記チャタリング排除時間を可変的に設定することを特徴とするロータリエンコーダの信号処理方法。
【請求項２】
請求項１記載のロータリーエンコーダの信号処理方法において、
前記切替わり検知ステップは、前記ロータリエンコーダが出力したパルス信号の実際のレベル値の切替わりを検知する第１ステップと、該検知後、前記チャタリング排除時間の期間が経過した直後における該パルス信号の実際のレベル値を観測する第２ステップとを備え、第２ステップで観測したレベル値が、第１ステップでの切替わりの検知の直前における前記パルス信号の実際のレベル値と異なるレベル値であるか否かを判断し、該判断結果が肯定的である場合に、前記検知対象切替わりの発生を検知することを特徴とするロータリエンコーダの信号処理方法。
【請求項３】
請求項１記載のロータリーエンコーダの信号処理方法において、
前記切替わり検知ステップは、前記ロータリエンコーダが出力したパルス信号の実際のレベル値を所定の周期で逐次観測しつつ、前記チャタリング排除時間の期間分の該レベル値の複数の観測値が互いに同一の値であるか否かを判断する処理を逐次実行し、該判断結果が否定的となる状況から肯定的となる状況に変化した場合に、前記検知対象切替わりの発生を検知することを特徴とするロータリエンコーダの信号処理方法。
【請求項４】
請求項１〜３のいずれか１項に記載のロータリエンコーダの信号処理方法において、
前記チャタリング排除時間設定ステップでは、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値により示される前記回転体の回転速度が速いほど、前記チャタリング排除時間を短くするように該最新値に応じて該チャタリング排除時間を設定することを特徴とするロータリエンコーダの信号処理方法。
【請求項５】
請求項１〜３のいずれか１項に記載のロータリエンコーダの信号処理方法において、
前記チャタリング排除時間設定ステップでは、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値とそれ以前の少なくとも１つの過去値とを基に、前記今回の検知対象切替わりの発生の検知以後の前記回転体の将来の回転速度、又は該回転速度に対応する前記パルス信号のパルス幅、又は該回転速度もしくはパルス幅と一定の相関関係を有するパラメータ値を予測し、その予測値が示す前記回転体の回転速度が速いほど、前記チャタリング排除時間を短くするように、該予測値に応じて該チャタリング排除時間を設定することを特徴とするロータリエンコーダの信号処理方法。
【請求項６】
請求項４又は５記載のロータリエンコダーの信号処理方法において、
前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値により示される前記回転体の回転速度が所定値以上の高速であるか否かを判断するステップをさらに備え、該判断結果が肯定的である場合には、前記切替わり検知ステップで検知した検知対象切替わりを反映させて認識されるパルス信号の波形に基づいて前記回転体の回転状態を把握する処理を禁止することを特徴とするロータリエンコーダの信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロータリエンコーダが出力するパルス信号の処理方法に関する。
【背景技術】
【０００２】
種々様々の回転体の回転状態（回転速度や回転角度位置、回転方向など）を観測するために用いられるロータリエンコーダは、例えば、特許文献１に見られるように、回転体が所定の角度だけ回転する毎に、レベル値（電圧値）が切替わるパルス信号を生成して出力する。なお、特許文献１のものは、回転体の回転に応じて、所定の回転角度毎に、摺動部材と金属との接触導通及びその遮断を行なう接触式のロータリエンコーダであるが、光学式のロータリエンコーダも従来より一般に知られている。
【０００３】
この種のロータリエンコーダが出力するパルス信号は、そのレベル値の切替わりの近辺等において、チャタリング現象あるいはバウンス現象あるいは瞬時的なノイズが発生する場合がある。ここで、「チャタリング現象」は、より詳しくは、オンされている接点が外部からの原因により開閉を反復する現象である。また、「バウンス現象」は、接点をオンまたはオフさせるときに生じる好ましくない間欠的開閉現象である。なお、本明細書では、以降、特にことわらない限り、「チャタリング現象」という用語は、便宜上、本来の意味でのチャタリング現象の他、バウンス現象も含むものとして使用する。
【０００４】
そして、上記のようなチャタリング現象又は瞬時的なノイズが発生すると、回転体の回転角度位置がほとんど変化していなくても、短い時間内でパルス信号のレベル値の複数回の切替わりが発生してしまい、パルス信号のレベル値の切替わりと回転体の実際の回転角度位置との対応関係が崩れてしまう。
【０００５】
このため、ロータリエンコーダが出力するパルス信号から直接的にＣＰＵ等の演算処理装置により回転体の回転状態を把握するようにすると、該回転状態を正しく認識することができなくなる。
【０００６】
そこで、従来は、ロータリエンコーダが出力するパルス信号をＣＰＵ等の演算処理装置に入力して、該演算処理装置により回転体の回転状態を把握するような場合には、ロータリエンコーダが回転体の回転に応じて出力するパルス信号のレベル値の切替わりのうち、該切替わり後に事前に設定された所定のチャタリング排除時間の期間内で該レベル値を復帰させる切替わりを伴う切替わり（チャタリング排除時間の期間内に含まれる短いパルス幅を有する１つ又は複数のパルスによる切替わり）を、チャタリング現象又は瞬時的なノイズに起因する除外対象切替わりとして除外してなる該レベル値の切替わりである検知対象切替わりの発生を検知する切替わり検知処理を演算処理装置で実行することで、ロータリエンコーダが出力したパルス信号から上記除外対象切替わりを除去した形態のパルス信号波形を認識するようにして、このパルス信号波形から、前記回転体の回転状態を把握することが行なわれていた。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００５−１９５５７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、回転体の回転速度が高速になると、該回転体の回転角度位置に依存して発生するパルス信号のレベル値の切替わり（上記検知対象切替わり）は、短い時間間隔で繰り返されることとなる。
【０００９】
一方、従来における前記切替わり検知処理では、前記チャタリング排除時間は、一定値（固定値）の時間に設定されていた。そして、この一定値は、実際に発生し得るチャタリング現象の継続時間が該チャタリング排除時間の期間内に確実に収まるように、長めの時間に設定されていた。
【００１０】
このため、従来の切替わり検知処理では、回転体の回転速度が高速になると、検知対象切替わりとして検知されるべきパルス信号のレベル値の本来の切替わり（回転体の回転角度位置が、ロータリエンコーダの構造によって規定される所定の角度位置であるとき発生すべき切替わり）が、前記チャタリング排除時間の期間内で繰り返されることとなる場合がある。そして、このような場合には、当該本来の切替わりが、チャタリング現象又は一時的なノイズに起因するものと同じように除外対象切替わりとして除外されることとなる。
【００１１】
従って、従来は、回転体の高速回転時において、回転体の実際の回転状態に対応するパルス信号波形を正しく認識することができない場合があり、ひいては、該回転体の回転状態を正しく把握することができない場合があった。
【００１２】
本発明は、かかる背景に鑑みてなされたものであり、回転体の回転状態に応じてロータリエンコーダが出力するパルス信号を基に該回転体の回転状態を把握する場合に、回転体の回転速度が高速である場合を含む幅広い速度範囲において、回転体の実際の回転状態に整合したパルス信号のレベル値の切替わりを検知することができ、ひいては、回転体の回転状態の把握を高い信頼性で行なうことができる信号処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明のロータリエンコーダの信号処理方法は、かかる目的を達成するために、ロータリエンコーダが回転体の回転に応じて出力するパルス信号のレベル値の切替わりのうち、該切替わり後に事前に設定された所定のチャタリング排除時間の期間内で該レベル値を復帰させる切替わりを伴う切替わりを、チャタリング現象又は瞬時的なノイズに起因する除外対象切替わりとして除外してなる該レベル値の切替わりである検知対象切替わりの発生を検知する切替わり検知処理を実行しつつ、前記回転体の回転状態を把握するために用いる前記パルス信号の波形を認識する信号処理方法であって、
前記ロータリエンコーダが出力したパルス信号を観測しつつ、前記チャタリング排除時間を用いて前記切替わり検知処理を実行する切替わり検知ステップと、
前記検知対象切替わりの発生を検知してから、次の前記検知対象切替わりの発生を検知するまでの経過時間を計時する計時ステップと、
前記検知対象切替わりの発生を検知する毎に、以後の前記切替わり検知処理に使用する前記チャタリング排除時間を可変的に設定するチャタリング排除時間設定ステップと、
前記検知対象切替わりの発生を検知する毎に、今回の検知対象切替わりの発生を検知したときの前記切替わり検知処理で使用した前記チャタリング排除時間の設定値と、前回の検知対象切替わりの発生を検知したときの前記切替わり検知処理で使用した前記チャタリング排除時間の設定値との偏差に応じて、前回の検知対象切替わりの発生を検知してから今回の検知対象切替わりの発生を検知するまでに前記計時ステップで計時した前記経過時間を補正することにより、今回の検知対象切替わりの発生の直前における前記パルス信号のパルス幅を推定するパルス幅推定ステップとを備え、
前記チャタリング排除時間設定ステップでは、前記検知対象切替わりの発生を検知する毎に、前記回転体の回転速度が速いほど、前記チャタリング排除時間を短くするように、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの少なくとも最新値に応じて前記チャタリング排除時間を可変的に設定することを特徴とする（第１発明）。
【００１４】
この第１発明によれば、前記チャタリング排除時間設定ステップによって、前記チャタリング排除時間が可変的に設定される。そして、前記切替わり検知ステップでは、この設定されたチャタリング排除時間を使用し、ロータリエンコーダが回転体の回転に応じて出力するパルス信号のレベル値の切替わりのうち、該切替わり後に事前に設定された所定のチャタリング排除時間の期間内で該レベル値を復帰させる切替わりを伴う切替わりを、チャタリング現象又は瞬時的なノイズに起因する除外対象切替わりとして除外してなる該レベル値の切替わりである検知対象切替わりの発生を検知する切替わり検知処理を実行する。
【００１５】
なお、この切替わり検知処理で検知する検知対象切替わりは、チャタリング現象やノイズが無い場合に、ロータリエンコーダから出力されるはずの本来のパルス信号（回転体の既定の回転角度位置でのみレベル値が切替わるパルス信号）のレベル値の切替わりを意味するものである。
【００１６】
また、本発明における前記「チャタリング現象」は、前記した通り、本来の意味でのチャタリング現象の他、バウンス現象も含むものである。
【００１７】
ここで、本願発明者の各種実験、検討に基づく知見によれば、パルス信号のチャタリング現象や瞬時的なノイズは、一般に、前記回転体の実際の回転角度位置が、本来のパルス信号のレベル値の切替わりの近辺のある角度範囲内にあるときに発生し易いので、それらのチャタリング現象等が発生し得る時間幅は、前記回転体の回転速度が高速になるほど、短くなる。
【００１８】
そこで、第１発明では、前記チャタリング排除時間設定ステップでは、前記回転体の回転速度が速いほど、前記チャタリング排除時間を短くするように設定することを、該チャタリング排除時間の設定の基本的な指針とする。
【００１９】
この場合、前記回転体の回転速度が速くなるほど、本来のパルス信号のパルス幅（パルス信号のレベル値の検知対象切替わりと次の検知対象切替わりとの間の時間幅）は短くなる。
【００２０】
また、該パルス幅は、前記検知対象切替わりの発生を検知する毎に、前記パルス幅推定ステップの処理によって推定することが可能である。すなわち、今回の検知対象切替わりの発生を検知したときの前記切替わり検知処理で使用した前記チャタリング排除時間の設定値と、前回の検知対象切替わりの発生の検知したときの前記切替わり検知処理で使用した前記チャタリング排除時間の設定値との偏差に応じて、前回の検知対象切替わりの発生を検知してから今回の検知対象切替わりの発生を検知するまでに前記計時ステップで計時した前記経過時間を補正することにより、今回の検知対象切替わりの発生の直前における前記パルス信号のパルス幅を推定することができる。
【００２１】
この場合、より具体的には、今回の検知対象切替わりの発生を検知したときの前記切替わり検知処理で使用した前記チャタリング排除時間の設定値をＴc1、前回の検知対象切替わりの発生を検知したときの前記切替わり検知処理で使用した前記チャタリング排除時間の設定値をＴc0とし、それらの偏差を（Ｔc0−Ｔc1）とすると、この偏差（Ｔc0−Ｔc1）を、前回の検知対象切替わりの発生を検知してから今回の検知対象切替わりの発生を検知するまでに前記計時ステップで計時した前記経過時間に加算する（換言すれば、該経過時間から（Ｔc1−Ｔc0）を減算する）ことによって、前記パルス幅を推定することができる。
【００２２】
なお、前記計時ステップで計時した前記経過時間を、上記の如く補正するのは、今回及び前回の検知対象切替わりの発生の検知は、それぞれ、パルス信号の実際のレベル値の切替わりから互いに異なるチャタリング排除時間の設定値Ｔc0、Ｔc1の時間分、遅れたタイミングで行なわれるからである。
【００２３】
そこで、第１発明では、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの少なくとも最新値に応じて前記チャタリング排除時間を可変的に設定する。この場合、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値は、今回の検知対象切替わりの発生の直前における前記パルス信号のパルス幅の推定値であるので、前記回転体の概ね現状の回転速度を反映したものとなる。
【００２４】
従って、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの少なくとも最新値に応じて前記チャタリング排除時間を可変的に設定することによって、前記回転体の回転速度が速いほど、前記チャタリング排除時間を短くするように該チャタリング排除時間を設定することを適切に実現できることとなる。
【００２５】
なお、前記チャタリング排除時間の設定に反映させる前記パルス幅の推定値は、最新値だけでもよいが、後述するように、この最新値とそれ以前の１つ以上の推定値に応じて（換言すれば、該パルス幅の推定値の履歴を反映させて）、前記チャタリング排除時間を設定するようにしてもよい。
【００２６】
そして、第１発明は、前記切替わり検知処理を、上記のように設定されたチャタリング排除時間を用いて行なうので、回転体が比較的高速で回転し、前記本来のパルス信号のパルス幅（検知対象切替わりと次の検知対象切替わりとの間の時間幅）が、比較的短くなるような場合であっても、チャタリング現象や瞬時的なノイズに起因するパルス信号のレベル値の切替わりを、検知対象切替わりとして検知してしまうのを防止しつつ、本来のパルス信号のレベル値の切替わりを、検知対象切替わりとして検知するようにすることができる。
【００２７】
換言すれば、本来のパルス信号のレベル値の切替わりを検知対象切替わりとして正常に検知し得る回転体の回転速度の上限を高めることができる。
【００２８】
また、回転体が比較的低速で回転している場合であっても、チャタリング現象や瞬時的なノイズに起因するパルス信号のレベル値の切替わりを、検知対象切替わりとして誤検知してしまうのを防止しつつ、本来のパルス信号のレベル値の切替わりを、検知対象切替わりとして検知するようにすることができる。
【００２９】
従って、第１発明によれば、回転体の回転速度が高速である場合を含む幅広い速度範囲において、回転体の実際の回転状態に整合したパルス信号のレベル値の切替わり（検知対象切替わり）を検知することができ、ひいては、回転体の回転状態の把握を高い信頼性で行なうことができる。
【００３０】
前記切替わり検知ステップで実行する切替わり検知処理は、前記チャタリング排除時間の時間内に含まれることとなるような短いパルス幅の１つ又は複数のパルスにおけるレベル値の切替わりを除外対象切替わりとして除外するようにして、前記検知対象切替わりを検知し得る手法であればどのような手法を用いてもよいが、代表的な手法としては、例えば次のような手法を採用することができる。
【００３１】
その１つの手法では、前記切替わり検知ステップは、前記ロータリエンコーダが出力したパルス信号の実際のレベル値の切替わりを検知する第１ステップと、該検知後、前記チャタリング排除時間の期間が経過した直後における該パルス信号の実際のレベル値を観測する第２ステップとを備え、第２ステップで観測したレベル値が、第１ステップでの切替わりの検知の直前における前記パルス信号の実際のレベル値と異なるレベル値であるか否かを判断し、該判断結果が肯定的である場合に、前記検知対象切替わりの発生を検知する（第２発明）。
【００３２】
あるいは、他の１つの手法では、前記切替わり検知ステップは、前記ロータリエンコーダが出力したパルス信号の実際のレベル値を所定の周期で逐次観測しつつ、前記チャタリング排除時間の期間分の該レベル値の複数の観測値が互いに同一の値であるか否かを判断する処理を逐次実行し、該判断結果が否定的となる状況から肯定的となる状況に変化した場合に、前記検知対象切替わりの発生を検知する（第３発明）。
【００３３】
上記第２発明又は第３発明によれば、簡易な手法で、前記除外対象切替わりが検知対象切替わりとして検知されないようにしつつ、前記切替わり検知処理を適切に実行できる。
【００３４】
また、以上の第１〜第３発明では、前記チャタリング排除時間設定ステップのより具体的な態様の一例としては、次のような態様を採用できる。すなわち、前記チャタリング排除時間設定ステップでは、例えば、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値により示される前記回転体の回転速度が速いほど、前記チャタリング排除時間を短くするように該最新値に応じて該チャタリング排除時間を設定する（第４発明）。
【００３５】
この第４発明によれば、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値に応じてチャタリング排除時間を設定するので、回転体の現状の回転速度に整合するチャタリング排除時間を設定できる。また、パルス幅の推定値のうちの最新値だけを使用するので、チャタリング排除時間の設定処理を容易に行うことができる。
【００３６】
また、第１〜第３発明では、前記チャタリング排除時間設定ステップの態様のより好ましい例としては、次のような態様を採用することが好適である。すなわち、前記チャタリング排除時間設定ステップでは、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値とそれ以前の少なくとも１つの過去値とを基に、前記今回の検知対象切替わりの発生の検知以後の前記回転体の将来の回転速度、又は該回転速度に対応する前記パルス信号のパルス幅、又は該回転速度もしくはパルス幅と一定の相関関係を有するパラメータ値を予測し、その予測値が示す前記回転体の回転速度が速いほど、前記チャタリング排除時間を短くするように、該予測値に応じて該チャタリング排除時間を設定する（第５発明）。
【００３７】
なお、上記パラメータ値としては、典型的には、前記回転速度もしくはパルス幅と比例関係にあるパラメータ値を使用することができる。
【００３８】
この第５発明によれば、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値とそれ以前の少なくとも１つの過去値とを基に、予測した回転体の将来の回転速度、又は該回転速度に対応する前記パルス信号のパルス幅、又は該回転速度もしくはパルス幅と一定の相関関係を有するパラメータ値の予測値に応じて前記チャタリング排除時間を設定するので、前記今回の検知対象切替わりの発生の検知以後の将来の前記切替わり検知処理で使用するチャタリング排除時間を、回転体の将来の回転速度に整合するように設定することができることとなる。
【００３９】
このため、回転体の回転速度が急増するような場合であっても、パルス信号のレベル値の検知対象切替わりの発生時刻近辺での回転体の実際の回転速度に対して、既に設定されたチャタリング排除時間が長くなり過ぎるものとなって、該検知対象切替わりが検知されることから除外されてしまうような事態が生じるのを防止することができる。
【００４０】
従って、第５発明によれば、回転体の回転速度のより幅広い速度範囲において、回転体の実際の回転状態に整合したパルス信号のレベル値の切替わり（検知対象切替わり）を検知することができる。ひいては、回転体の回転状態の把握をより一層高い信頼性で行なうことができる。
【００４１】
また、以上説明した第１〜第５発明では、前記パルス幅推定ステップで推定されたパルス幅の推定値のうちの最新値により示される前記回転体の回転速度が所定値以上の高速であるか否かを判断するステップをさらに備え、該判断結果が肯定的である場合には、前記切替わり検知ステップで検知した検知対象切替わりを反映させて認識されるパルス信号の波形に基づいて前記回転体の回転状態を把握する処理を禁止するようにしてもよい（第６発明）。
【００４２】
すなわち、回転体の回転速度が非常に速い速度になると、本来のパルス信号の検知対象切替わりと次の検知対象切替わりとの間のパルス幅が微小なものとなるため、チャタリング現象や、瞬時的なノイズに起因するパルスとの区別がつき難くなる。
【００４３】
そこで、第６発明では、前記回転体の回転速度が所定値以上の高速であるか否かの判断結果が肯定的である場合には、前記切替わり検知ステップで検知した検知対象切替わりを反映させて認識されるパルス信号の波形に基づいて前記回転体の回転状態を把握する処理を禁止する。これにより、回転体の回転状態が誤って把握させることを防止することができる。
【図面の簡単な説明】
【００４４】
【図１】本発明の実施形態におけるロータリエンコーダの回路構成を示す図。
【図２】図１に示すスイッチに係わるロータリエンコーダの機構的構造の概略を示す図。
【図３】図１に示すＣＰＵの第１実施形態における演算処理を示すフローチャート。
【図４】図３のＳＴＥＰ１、２の処理の第１の例を説明するための図。
【図５】図３のＳＴＥＰ１、２の処理の第２の例を説明するための図。
【図６】図３のＳＴＥＰ７の処理を説明するための図。
【図７】図３のＳＴＥＰ２９でのチャタリング排除時間の設定例を示す図。
【図８】図１に示すＣＰＵの第１実施形態における演算処理を示すフローチャート。
【図９】図８のＳＴＥＰ２９でのチャタリング排除時間の設定例を示す図。
【発明を実施するための形態】
【００４５】
［第１実施形態］
本発明の第１実施形態を以下に図１〜図７を参照して説明する。
【００４６】
まず、図１及び図２を参照して本実施形態におけるロータリーエンコーダ１の概略構成を説明する。このロータリーエンコーダ１は、３相の接触式ロータリエンコーダであり、Ａ相、Ｂ相、Ｃ相の３相分のパルス信号を生成するためのスイッチ３ａ，３ｂ，３ｃを構成するスイッチ機構部２を備える。
【００４７】
スイッチ機構２の各スイッチ３ａ，３ｂ，３ｃ（以下、これらを区別する必要がないときは、総称的にスイッチ３という）は、図２に概略的に示す機構的構造によって、回転体４の回転に応じて電気的な導通・遮断が行なわれるスイッチである。
【００４８】
なお、図２は、１つの相のスイッチ３の機構的構造を代表的に示している。そして、図２では、図示の便宜上、回転体４及びこれと一体に回転する部分と、回転しない固定部分とを区別するために、前者を破線で表し、後者を実線で表している。
【００４９】
図２に示す如く、各スイッチ３は、回転体４に取付けられた金属等の導体材質の摺動子５と、この摺動子５を摺接させる部分として、回転体４の回転軸４ａと同軸心に固定部６に形成された円環状部７とを備え、摺動子５が、円環状部７に摺接しつつ、回転体４と一体に固定部６に対して回転するようになっている。
【００５０】
上記円環状部７には、所定弧長の複数の円弧状の導体部分８（金属等の導体材質の部分）が周方向に一定間隔で配列されており、周方向に隣合う導体部分８，８の間の部分９が絶縁体部分（樹脂等の絶縁体材質の部分）となっている。
【００５１】
このため、各スイッチ３の摺動子５は、回転体４が時計周り方向及び反時計周り方向のいずれか一方向に回転したとき、一定の回転角度周期で導体部分８及び絶縁体部分９に交互に摺接するようになっている。これにより、回転体４が時計周り方向及び反時計周り方向のいずれかに回転したとき、各スイッチ３の電気的な導通（摺動子５と導体部分８との接触）と、電気的な遮断（摺動子５と絶縁体部分９との接触）とが交互に行なわれることとなる。
【００５２】
また、このとき、各スイッチ３の電気的な導通は、回転体４と一体に回転する摺動子５の回転角度位置が、円環状部７の周方向での導体部分８の配置位置及び該導体部分８の弧長により規定される所定の角度範囲に在るときに行なわれ、同様に、各スイッチ３の電気的な遮断は、摺動子５の回転角度位置が、円環状部７の周方向での絶縁体部分９の配置位置及び該絶縁体部分９の弧長により規定される所定の角度範囲に在るときに行なわれるようになっている。
【００５３】
なお、各スイッチ３の導体部分８の弧長又はその配置位置、あるいは、摺動子５の配置位置（回転体４に対する周方向での配置位置）は、スイッチ３ａ，３ｂ，３ｃの相互間で異なるものとされている。このため、各スイッチ３の電気的な導通と遮断とがそれぞれ行なわれる回転体４の回転角度位置の範囲又はその範囲の幅は、スイッチ３ａ，３ｂ，３ｃの相互間で異なるものとなっている。
【００５４】
また、図２では、図示の便宜上、各スイッチ３の導体部分８及び絶縁体部分９の弧長を長めに記載したが、実際には、それらの弧長は、より短いものとされる。
【００５５】
また、回転体４の回転角度範囲が所定の範囲に制限されるような場合には、前記円環状部７のうちの所定の角度範囲の領域にだけ、導体部分８及び絶縁体部分９の配列を形成するようにしてもよい。そして、この場合、円環状部７の所定の角度範囲の領域以外の領域に、接地電極等を形成するようにしてもよい。
【００５６】
図１に戻って、各スイッチ３の摺動子５及び導体部分８のいずれか一方（スイッチ３の一端）は接地され、他方は（スイッチ３の他端）は、図示しない直流電源（電池等）から直流電圧が印加される電源電圧入力部１０に、抵抗１１及びコンデンサ１２の並列回路を介して接続されている。これにより、電源電圧入力部１０に直流電圧を印加した状態で、回転体４が一方向に回転して、各スイッチ３の導通・遮断が交互に行なわれると、上記並列回路と各スイッチ３との間の信号出力部１３から、高低２値レベルのパルス信号が出力されるようになっている。
【００５７】
図示例では、各スイッチ３に対応する信号出力部１３から出力されるパルス信号のレベル値は、該スイッチ３が導通状態（ＯＮ状態）であるとき、低レベル（接地レベル）、該スイッチ３が遮断状態（ＯＦＦ状態）であるとき、高レベルとなる。但し、該スイッチ３が導通状態（ＯＮ状態）であるときのパルス信号のレベル値が高レベル、該スイッチ３が遮断状態（ＯＦＦ状態）であるときのパルス信号のレベル値が低レベルとなるようにしてもよい。また、パルス信号を生成するための回路は、図１に示す回路構成に限られず、例えば、上記コンデンサ１２を省略することも可能である。
【００５８】
以上が、本実施形態におけるロータリエンコーダ１の概略構成である。
【００５９】
本実施形態では、上記ロータリエンコーダ１の各相の信号出力部１３は、回転体４の回転状態（回転速度や回転方向）を把握するための演算処理を行う演算処理装置としてのＣＰＵ２０に接続され、該信号出力部１３から出力されるパルス信号が、ＣＰＵ２０に入力されるようになっている。
【００６０】
このＣＰＵ２０は、本発明を適用した演算処理を、あらかじめＲＯＭ（図示省略）に実装されたプログラムに従って実行する。
【００６１】
以下、このＣＰＵ２０の演算処理を詳細に説明する。
【００６２】
本実施形態では、ＣＰＵ２０は、前記各相のパルス信号のレベル値を観測（サンプリング）しつつ、図３のフローチャートに示す処理を所定の演算処理周期で逐次実行する。
【００６３】
ＣＰＵ２０は、ロータリエンコーダ１から入力される各相のパルス信号毎に、検知対象切替わりの発生を検知する切替わり検知処理をＳＴＥＰ１で実行する。そして、ＣＰＵ２０は、この切替わり検知処理の結果を基に、ＳＴＥＰ２において、パルス信号のレベル値（回転体４の回転状態を把握するために使用するレベル値）を確定し、パルス信号の整形波形を認識する。
【００６４】
ここで、検知対象切替わりは、ＣＰＵ２０にロータリエンコーダ１から入力される各相毎の実際のパルス信号のレベル値の切替わりのうち、回転体４の回転角度位置に応じて規定される前記摺動子５の円環状部７に対する接触位置が、チャタリング現象（バウンス現象を含む）や、瞬時的なノイズに起因する切替わりとしての除外対象切替わりを除外したものを意味する。
【００６５】
この検知対象切替わりは、換言すれば、チャタリング現象や、瞬時的なノイズが発生しない場合に、回転体４の回転角度位置の変化（摺動子５の円環状部７に対する接触位置の変化）に依存してロータリエンコーダ１から出力されるはずのパルス信号（すなわち、摺動子５の接触位置が導体部分８及び絶縁体部分９の一方から他方に移行する瞬間にだけレベル値が切替わるパルス信号）のレベル値の切替わりを意味する。そして、パルス信号の整形波形というのは、その波形のレベル値の切替わりが検知対象切替わりだけから構成されるパルス信号（実際のパルス信号から除外対象切替わりを除去したパルス信号）の波形を意味する。
【００６６】
上記ＳＴＥＰ１の切替わり検知処理は、種々様々の手法で実行することが可能であるが、本実施形態では、代表的な２種類の例をＳＴＥＰ２の処理と併せて以下に説明する。
【００６７】
ＳＴＥＰ１の切替わり検知処理の第１の例では、ＣＰＵ２０は、入力されたパルス信号の実際のレベル値のステップ状の切替わりとしてのエッジ（実際のパルス信号の波形の立ち上がり又は立下り）を検出し、そのエッジ検出に応じて次のような割り込み処理を実行することによって、検知対象切替わりの発生を検知する。
【００６８】
すなわち、ＣＰＵ２０は、エッジが検出された後、現在設定されているチャタリング排除時間が経過した直後の時点でパルス信号の実際のレベル値を観測（サンプリング）する。なお、現在設定されているチャタリング排除時間は、ＣＰＵ２０が今回の切替わりの検知処理の以前に既に実行した切替わり検知処理で、検知対象切替わりの発生を検知した場合に、後述の処理によって設定された時間のうちの最新値である。該チャタリング排除時間は、基本的には、チャタリング現象や瞬時的なノイズに起因して発生する１つ又は連続する複数のパルス（幅が短いパルス）が該チャタリング排除時間の時間幅内に収まるように設定されたものである。
【００６９】
そして、ＣＰＵ２０は、ＳＴＥＰ１の切替わり検知処理では、チャタリング排除時間が経過した直後の時点で取得したパルス信号のレベル値の観測値が、エッジ検出の直前のレベル値と同じである場合（換言すれば、エッジ検出の直後のレベル値と異なる場合）には、上記エッジが検出されてから、チャタリング排除時間が経過するまでの期間内で発生したパルス信号のレベル値の切替わりが、検出されたエッジを含めて、チャタリング現象又は瞬時的なノイズに起因する除外対象切替わりであるとし、検知対象切替わりが発生していないものとみなす。
【００７０】
そして、この場合には、ＣＰＵ２０は、ＳＴＥＰ２において、上記チャタリング排除時間の期間内でのパルス信号のレベル値が、エッジ検出の直前のレベル値と同じレベル値に保持されていたものとして、パルス信号の整形波形を認識する。
【００７１】
例えば図４を参照して、図４の上段に示すような波形のパルス信号がＣＰＵ２０に入力された場合を想定する。そして、時刻t10でこのパルス信号のエッジが検出され、その後、チャタリング排除時間が経過するまでの期間内の時刻t11で実際のパルス信号のレベル値の切替わり（レベル値が時刻t10の直前のレベル値に復帰する切替わり）が発生し、該チャタリング排除時間の経過直後の時刻t12で観測したパルス信号のレベル値が、エッジを検出した時刻t10の直前のレベル値と同じになったものとする。
【００７２】
この場合には、ＣＰＵ２０は、ＳＴＥＰ１の切替わり検知処理では、時刻t10でのパルス信号のレベル値の切替わり（エッジ）と、時刻t11でのパルス信号のレベル値の切替わりとを除外対象切替わりとみなし、時刻t10からt12までのチャタリング排除時間の期間内（t10を含む）で、検知対象切替わりは発生していないものとみなす。
【００７３】
この場合には、ＣＰＵ２０は、ＳＴＥＰ２の処理では、時刻t10からチャタリング排除時間の経過直後の時刻t12までの期間におけるパルス信号のレベル値が時刻t10の直前のレベル値と同じレベル値に保たれているものとみなして、図４の下段に示す如く、パルス信号の整形波形を認識する。
【００７４】
一方、現在設定されているチャタリング排除時間が経過した直後の時点で取得したパルス信号のレベル値の観測値が、エッジ検出の直前のレベル値と異なる場合（換言すれば、エッジ検出の直後のレベル値と同じである場合）には、ＣＰＵ２０は、パルス信号のレベル値の除外対象切替わりでない切替わり、すなわち、検知対象切替わりが発生したものとみなす（検知対象切替わりの発生を検知する）。
【００７５】
例えば図４を参照して、時刻t13でエッジが検出され、その後、チャタリング排除時間が経過した直後の時刻t14で観測したパルス信号のレベル値が、エッジを検出した時刻t13の直前のレベル値と異なる場合を想定する。この場合には、ＣＰＵ２０は、ＳＴＥＰ１の切替わり検知処理では、検知対象切替わりが発生したことを時刻t14で検知する。
【００７６】
そして、この場合には、ＣＰＵ２０は、ＳＴＥＰ２の処理では、図４の下段に示す如く、時刻t14でレベル値が切替わったものとして、パルス信号の整形波形を認識する。
【００７７】
切替わり検知処理の第１の例では、以上説明した処理によって、実際のレベル値の切替わり後にチャタリング排除時間の期間内で該レベル値を復帰させる切替わりを伴う切替わり、すなわち、チャタリング現象や瞬時的なノイズに起因して発生するような短い幅のパルスによる切替わりは、検知対象切替わりとしては検知されないこととなり、回転体４の回転角度位置に依存する本来の切替わり（摺動子５の接触位置が導体部分８及び絶縁体部分９の一方側から他方側に移行する瞬間にだけ生じる切替わり）を検知対象切替わりとして検知できることとなる。
【００７８】
なお、上記第１の例でのＳＴＥＰ１の切替わり検知処理は、エッジが検出されてから、チャタリング排除時間の経過直後の時点までの期間で行なわれ、それ以外の期間では省略される。
【００７９】
次に、切替わり検知処理の第２の例では、ＣＰＵ２０は、入力されたパルス信号の実際のレベル値を所定の演算処理周期で逐次観測（サンプリング）し、以下に説明するようなポーリング形式の処理によって検知対象切替わりの発生を検知する。
【００８０】
すなわち、ＳＴＥＰ１の切替わり検知処理では、ＣＰＵ２０は、現在設定されているチャタリング排除時間の期間分のパルス信号のレベル値の複数の観測値を上記演算処理周期毎に逐次更新しつつ記憶保持する。そして、そのチャタリング排除時間の期間分のレベル値の複数の観測値の全てが同一のレベル値であるか否かを判断し、この判断結果が否定的である場合には、チャタリング排除時間の期間内で検知対象切替わりが発生していないものとみなす。
【００８１】
さらに、この場合には、ＣＰＵ２０は、ＳＴＥＰ２において、上記チャタリング排除時間の期間内でのパルス信号のレベル値が、該チャタリング排除時間の期間の直前のレベル値と同じレベル値に保持されていたものとして、パルス信号の整形波形を認識する。
【００８２】
また、ＣＰＵ２０は、上記判断結果が否定的から肯定的に変化したときに、検知対象切替わりが発生したものとみなす（検知対象切替わりの発生を検知する）。
【００８３】
例えば、ＣＰＵ２０に入力される実際のパルス信号の波形が図５の上段に示す如く変化した場合を想定し、現在設定されているチャタリング排除時間が、ＣＰＵ２０の逐次観測の周期（サンプリング周期）の２周期分の時間であるとする。この場合には、チャタリング排除時間の期間分のパルス信号の観測値の個数は３個である。なお、図５中の時刻t20〜t25は、演算処理周期毎のレベル値の観測時刻を示しており、それらの時刻t20〜t25の互いに隣合う２つの時刻間の時間幅が、上記演算処理周期である。
【００８４】
この場合、時刻t20からt22まで、t21からt23まで、及びt22からt24までの各期間（チャタリング排除時間の期間）において、該期間におけるパルス信号のレベル値の３個の観測値が、互いに同一のレベル値とはなっていないので、時刻t24までは、ＳＴＥＰ１の切替わり検知処理において、ＣＰＵ２０は、検知対象切替わりが発生していないものとみなす。そして、この場合、ＣＰＵ２０は、ＳＴＥＰ２の処理において、パルス信号のレベル値が、時刻t20の直前のレベル値と同じレベル値に保たれているものとみなして、図５の下段に示す如くパルス信号の整形波形を認識する。
【００８５】
また、時刻t23からt25までの期間におけるパルス信号のレベル値の３個の観測値が、互いに同一のレベル値となるので、ＣＰＵ２０は、時刻t25の演算処理周期におけるＳＴＥＰ１の切替わり検知処理において、検知対象切替わりの発生を検知する。そして、この場合には、ＣＰＵ２０は、ＳＴＥＰ２の処理において、図５の下段に示す如く、時刻t25でレベル値が切替わるパルス信号として、パルス信号の整形波形を認識する。
【００８６】
切替わり検知処理の第２の例では、以上説明した処理によって、第１の例の場合と同様に、実際のレベル値の切替わり後にチャタリング排除時間の期間内で該レベル値を復帰させる切替わりを伴う切替わり、すなわち、チャタリング現象や瞬時的なノイズに起因して発生するような短いパルス幅のパルスによる切替わりは、検知対象切替わりとしては検知されないこととなり、回転体４の回転角度位置に依存する本来の切替わりを検知対象切替わりとして検知できることとなる。
【００８７】
図３のフローチャートの説明に戻って、ＣＰＵ２０は、ＳＴＥＰ２の処理に続くＳＴＥＰ３において、パルス信号の整形波形のレベル値の切替わりが発生したか否かを判断する。この判断結果は、ＳＴＰＥ１の切替わり検知処理で、検知対象切替わりの発生が検知された場合に肯定的とされ、該検知対象切替わりの発生が検知されない場合に否定的とされる。
【００８８】
そして、このＳＴＥＰ３の判断結果が否定的である場合には、ＣＰＵ２０は、ＳＴＥＰ３の判断結果が肯定的となってから、次に肯定的となるまでの経過時間（時間幅）を計時するための幅カウンタのカウント値を、所定の刻み値（例えば“１”）だけ増加させるカウントアップをＳＴＥＰ１０で実行し、今回の演算処理周期の処理を終了する（次回の演算処理周期まで待機する）。
【００８９】
ＳＴＥＰ３の判断結果が肯定的となった場合には、ＣＰＵ２０は、幅カウンタの現在のカウント値を基に、ＳＴＥＰ１で検知した検知対象切替わりに対応する実際のパルス信号の切替わりの直前における該パルス信号のパルス幅を推定する処理をＳＴＥＰ４で実行した後、ＳＴＥＰ５において、幅カウンタのカウント値を“０”に初期化（リセット）する。
【００９０】
ここで、ＳＴＥＰ４の推定処理を図６を参照して説明する。実際のパルス信号が、例えば図６の上段に示すように時刻t30，t32でレベル値の切替わりが発生するパルス信号である場合を想定する。なお、ここでは、理解の便宜上、実際のパルス信号には、除外対象切替わりは含まれていないものとし、該パルス信号におけるレベル値の切替わりは、いずれも、検知対象切替わりであるものとする。
【００９１】
そして、時刻t30，t32でそれぞれ設定されているチャタリング排除時間が、それぞれＴc0、Ｔc1であるとする（図示例では、Ｔc0＜Ｔc1）。
【００９２】
この場合、幅カウンタのカウント値から認識されるパルス幅のパルス信号の波形は、図６の下段に示す如き波形となる。すなわち、時刻t30，t32での実際のパルス信号の検知対象切替わりが、それぞれ、時刻t31，t33で検知され、これらの時刻t31，t33でレベル値の切替わりが生じる波形が幅カウンタのカウント値から認識されるパルス幅のパルス信号の波形である。
【００９３】
このような状況において、検知対象切替わりが検知される時刻t33の演算処理周期において、前記ＳＴＥＰ４の推定処理を行なう場合を例にとって説明する。
【００９４】
時刻t33の演算処理周期において、ＣＰＵ２０が、ＳＴＥＰ４の推定処理で推定しようとするパルス幅は、実際のパルス信号のレベル値の切替わりのうち、時刻t31の演算処理周期で検知された時刻t30での検知対象切替わり（前回の検知対象切替わり）と、時刻t33の演算処理周期で検知された時刻t32での検知対象切替わり（今回の検知対象切替わり）との間のパルス幅、すなわち、図６のパルス幅Ｗdである。
【００９５】
また、ＳＴＥＰ４の推定処理で使用するカウント値は、前回の検知対象切替わりの発生を検知した演算処理周期の時刻t31から、今回の検知対象切替わりの発生を検知した演算処理周期の時刻t33までの期間における前記演算処理周期毎のカウント値であるから、時刻t31から時刻t33までの時間幅Ｗdcを示すものとなる。その時間幅Ｗdcは、幅カウンタのカウントアップの刻み幅を、“１”とした場合、ＳＴＥＰ４の推定処理で使用するカウント値に演算処理周期の時間を乗じたものとなる。
【００９６】
ここで、実際のパルス信号における前記パルス幅Ｗdの始端側の検知対象切替わりは、その発生時刻t30からチャタリング排除時間Ｔc0の経過直後の時刻t31の演算処理周期で検知され、また、パルス幅Ｗdの終端側の検知対象切替わりは、その発生時刻t32からチャタリング排除時間Ｔc1の経過直後の時刻t33の演算処理周期（今回の演算処理周期）で検知されることとなる。
【００９７】
この場合、上記チャタリング排除時間Ｔc0とＴc1とが同一である場合には、パルス幅Ｗdは、時刻t31から時刻t33までの時間幅Ｗdcに一致することとなる。従って、この場合には、今回の演算処理周期での前記幅カウンタのカウント値が、パルス幅Ｗdを示すものとなる。
【００９８】
但し、本実施系形態では、チャタリング排除時間は、検知対象切替わりの発生が検知される毎に、後述の処理によって可変的に設定されるため、Ｔc0とＴc1とは同一であるとは限らない。
【００９９】
そして、このようにＴc0とＴc1とが同一でない場合には、時刻t31から時刻t33までの時間幅Ｗdcは、実際のパルス信号のパルス幅Ｗdに対して、図６中に示す如く、Ｔc0とＴc1との偏差分のずれを生じる。
【０１００】
そこで、ＣＰＵ２０は、ＳＴＥＰ４の推定処理では、今回の検知対象切替わりの発生を検知した切替わり検知処理で使用したチャタリング排除時間Ｔc1と、前回の検知対象切替わりの発生を検知した切替わり検知処理で使用したチャタリング排除時間Ｔc0との偏差分だけ、今回の演算処理周期での幅カウンタのカウント値が示す時間幅Ｗdcを補正することにより、実際のパルス信号におけるパルス幅Ｗd（最新の検知対象切替わりと、その１つ前の検知対象切替わりとの間のパルス幅）を推定する。
【０１０１】
より詳しくは、ＣＰＵ２０は、次式（１）により、Ｗdcを、Ｔc0とＴc1との偏差に応じて補正することにより、実際のパルス信号のパルス幅をＷdを推定する。
【０１０２】
Ｗd＝Ｗdc＋（Ｔc0−Ｔc1）      ……（１）
以上がＳＴＥＰ４の推定処理の詳細である。
【０１０３】
なお、本実施形態では、上記の如くパルス幅Ｗdを推定するようにしたが、別の形態として、次のようにしてもよい。すなわち、ＳＴＥＰ４に続くＳＴＥＰ５において、幅カウンタの初期値を、今回の検知対象切替わりの発生を検知した切替わり検知処理で使用したチャタリング排除時間に相当するカウント値（該チャタリング排除時間を演算処理周期で除算した値）に設定するようにする。
【０１０４】
このようにした場合には、今回の演算処理周期でのＳＴＥＰ４で使用する幅カウンタのカウント値は、式（１）における（Ｗdc＋Ｔc0）の時間幅を示すものとなる。従って、そのカウント値が示す時間幅（Ｗdc＋Ｔc0）から今回の検知対象切替わりの発生を検知した切替わり検知処理で使用したチャタリング排除時間Ｔc1を減じることによって、実際のパルス信号のパルス幅Ｗdの推定値を求めるようにしてもよい。
【０１０５】
以上の如くＳＴＥＰ４，５の処理を実行した後、ＣＰＵ２０は、回転体４の回転速度の変化が発生したか否かをＳＴＥＰ６で判断する。
【０１０６】
具体的には、ＣＰＵ２０は、今回算出したパルス幅の推定値により示される回転体４の回転速度と、前回算出したパルス幅の推定値により示される回転体４の回転速度とを比較する。そして、ＣＰＵ２０は、前者の回転速度が後者の回転速度と異なる場合には、ＳＴＥＰ６の判断結果が肯定的であるとし、両者が同一である場合には、ＳＴＥＰ６の判断結果が否定的であるとする。なお、両者の回転速度が同一であるか否かは、両者の回転速度の差の絶対値が、あらかじめ定めた“０”近傍の所定値（＞０）よりも小さいか否かによって判断するようにしてもよい。
【０１０７】
ここで、回転体４の回転速度が一定に維持されている状況であっても、各相のパルス信号のレベル値が高レベルとなる期間のパルス幅と、低レベルとなる期間のパルス幅とは一般には異なる。従って、ＳＴＥＰ６の判断処理では、ＣＰＵ２０は、今回のパルス幅の推定値（又はこれを演算処理周期で除算してなるカウント値）と、前回のパルス幅の推定値（又はこれを演算処理周期で除算してなるカウント値）とを、それぞれ、当該パルス幅に対応するレベル値が低レベルであるか高レベルであるかで各別にあらかじめ設定した演算式又はマップ（パルス幅と回転体４の回転速度との間の関係（反比例関係）を表す演算式又はマップ）によって、回転体４の回転速度に換算し、それらの換算した回転速度を比較する。
【０１０８】
但し、回転体４の回転速度が一定に維持されている状況で、いずれかの相のパルス信号のレベル値が高レベルとなる期間のパルス幅と、低レベルとなる期間のパルス幅とが同じになるようにロータリエンコーダ１が構成されているような場合（円環状部７の導体部分８の弧長と絶縁体部分９の弧長とが同じに設定されている場合）には、その相のパルス信号についてのＳＴＥＰ６の判断処理では、今回のパルス幅の推定値（又はこれを演算処理周期で除算してなるカウント値）と、前回のパルス幅の推定値（又はこれを演算処理周期で除算してなるカウント値）とを比較するようにしてもよい。
【０１０９】
回転体４の回転速度が一定に維持されている状況で、低レベルとなる期間のパルス幅と高レベルとなる期間のパルス幅との比率に応じて、一方のパルス幅を他方のパルス幅相当のパルス幅に換算し、当該一方のパルス幅の換算値と、他方のパルス幅とを比較するようにすることも可能である。
【０１１０】
上記ＳＴＥＰ６の判断結果が肯定的である場合には、ＣＰＵ２０は、チャタリング排除時間の設定値を更新する処理をＳＴＥＰ７で実行した後に、ＳＴＥＰ８の処理を実行する。また、ＳＴＥＰ６の判断結果が否定的である場合には、ＣＰＵ２０は、チャタリング排除時間の設定値を更新することなく（現状に維持したまま）、ＳＴＥＰ８の処理を実行する。なお、本実施形態では、ＳＴＥＰ７の処理（チャタリング排除時間の設定値の更新処理）をＳＴＥＰ６の判断結果が肯定的である場合にだけ行なうが、ＳＴＥＰ６の判断処理を省略し（回転体４の回転速度の変化の発生の有無によらずに）、ＳＴＥＰ７の処理を実行するようにしてもよい。
【０１１１】
ＳＴＥＰ７でチャタリング排除時間の設定値を更新する処理は、次のように行なわれる。
【０１１２】
すなわち、ＣＰＵ２０は、基本的指針として、今回のパルス幅の推定値（最新の推定値）により示される回転体４の回転速度が速いほど、チャタリング排除時間を短くするように該チャタリング排除時間を設定する。
【０１１３】
より具体的には、ＣＰＵ２０は、今回のパルス幅の推定値（又はこれを演算処理周期で除算してなるカウント値）を、前記ＳＴＥＰ６に関して説明した如く、所定の演算式又はマップによって回転体４の回転速度に換算する。そして、ＣＰＵ２０は、この換算した回転速度から、あらかじめ設定された所定の演算式又はマップ（回転速度とチャタリング排除時間との間の関係を表す演算式又はマップ）を用いて新たなチャタリング排除時間を決定する。
【０１１４】
この場合、チャタリング排除時間を決定するために使用する演算式又はマップは、回転速度の増加に伴い、それに反比例して、チャタリング排除時間が短くなるように設定されたものである。
【０１１５】
あるいは、次のようにしてチャタリング排除時間を設定するようにしてもよい。すなわち、ＣＰＵ２０は、今回のパルス幅の推定値（又はこれを演算処理周期で除算してなるカウント値）から、あらかじめ設定された所定の演算式又はマップ（パルス幅又はこれに対応するカウント値と、チャタリング排除時間との間の関係を表す演算式又はマップ）を用いて新たなチャタリング排除時間を決定する。
【０１１６】
なお、この場合の上記演算式又はマップは、回転体４の回転速度が一定に維持されている状況で、パルス信号のレベル値が高レベルとなる期間のパルス幅と、低レベルとなる期間のパルス幅とが異なるものとなる場合には、パルス幅が低レベルのパルス幅であるか、高レベルのパルス幅であるかに応じて各別に設定される。あるいは、例えば、パルス幅が低レベルのパルス幅である場合と、高レベルのパルス幅である場合とのいずれか一方の場合に対応する演算式又はマップだけを設定しておき、推定したパルス幅が他方のレベル値のパルス幅である場合には、そのパルス幅の推定値を一方のレベル値のパルス幅相当のパルス幅に換算したものから、上記演算式又はマップを用いて新たなチャタリング排除時間を決定するようにすることも可能である。
【０１１７】
以上のように、チャタリング排除時間を決定することにより、今回のパルス幅の推定値（最新の推定値）により示される回転体４の回転速度が速いほど、それに反比例して、チャタリング排除時間を短くするように該チャタリング排除時間が設定されることとなる。
【０１１８】
例えば図７の上段で示すような波形の実際のパルス信号がＣＰＵ２０に入力された場合を想定する。なお、ここでは、理解の便宜上、実際のパルス信号には、除外対象切替わりは含まれていないものとしている。
【０１１９】
なお、図示の例では、時刻t42から時刻t46までの期間で回転体４の回転速度が増加しているものとする。また、この例では、理解の便宜上、回転体４の回転速度が一定である場合のパルス幅は、レベル値が高レベルである場合と低レベルである場合とで同じであるとしている。
【０１２０】
この場合、時刻t40からt42までの期間での実際のパルス信号のパルス幅Ｗd0と、時刻t42からt44までの期間での実際のパルス信号のパルス幅Ｗd1（＜Ｗd0）と、時刻t44からt46までの期間での実際のパルス信号のパルス幅Ｗd2（＜Ｗd1）とが、それぞれ、時刻t43の演算処理周期、時刻t45の演算処理周期、時刻t47の演算処理周期において推定される。このとき、それぞれのパルス幅Ｗd0，Ｗd1，Ｗd2の推定値により示される回転体４の回転速度が、図７の下段で示すように、ω0，ω1，ω2（ω0＜ω1＜ω２）となる。
【０１２１】
そして、パルス幅Ｗd0，Ｗd1，Ｗd2のそれぞれを推定した時刻t43の演算処理周期、時刻t45の演算処理周期、時刻t47の演算処理周期において、それぞれ、チャタリング排除時間が更新される。
【０１２２】
この場合、時刻t43の演算処理周期での更新後のチャタリング排除時間は、図７に示すチャタリング排除時間Ｔc0〜Ｔc4のうちのＴc2（時刻t44での検知対象切替わりの検知に使用されるチャタリング排除時間）、時刻t45の演算処理周期での更新後のチャタリング排除時間は、図７のＴc3（時刻t46での検知対象切替わりの検知に使用されるチャタリング排除時間）、時刻t47の演算処理周期での更新後のチャタリング排除時間は、図７のＴc4（時刻t48での検知対象切替わりの検知に使用されるチャタリング排除時間）となる。
【０１２３】
そして、この場合、上記チャタリング排除時間Ｔc2、Ｔc3、Ｔc4は、それぞれ、回転速度ω0，ω1，ω2に応じた値に設定され、回転速度ω0，ω1，ω2が速いほど、チャタリング排除時間Ｔc2、Ｔc3、Ｔc4が短くなるように（Ｔc2＞Ｔc3＞Ｔc4となるように）、それらのチャタリング排除時間Ｔc2、Ｔc3、Ｔc4が決定されることとなる。
【０１２４】
図３の説明に戻って、次に、ＳＴＥＰ８においては、ＣＰＵ２０は、回転体４の回転速度が高速回転であるか否かを判断する。この場合ＣＰＵ２０は、今回のパルス幅の推定値（又はこれを演算処理周期で除算してなるカウント値）が、低レベルのパルス幅と高レベルのパルス幅とで各別にあらかじめ設定された所定の下限値よりも小さい場合、あるいは、該パルス幅の推定値から換算した回転体４の回転速度が、あらかじめ設定された所定の上限値よりも大きい場合に、回転体４の回転速度が高速回転であると判断する。
【０１２５】
ここで、回転体４の回転速度が非常に速い場合には、検知対象切替わりの発生の時間間隔のパルス幅が微小なものとなるため、そのパルス幅のパルスと、チャタリング現象や瞬時的なノイズに起因するパルスとを高い信頼性で区別しつつ、検知対象切替わりの発生の時間間隔のパルス幅を推定することが困難となる。
【０１２６】
このため、本実施形態では、ＳＴＥＰ８の判断結果が肯定的となる場合には、回転体４の回転状態（回転速度や回転方向）の最終的な把握を省略し、今回の演算処理周期の処理を終了する。なお、この場合には、今回の演算処理周期でＳＴＥＰ２において認識されたパルス信号の整形波形に基づく、回転体４の回転状態の最終的な把握は禁止される。そして、回転体４の現在の回転状態は、例えば前回の演算処理周期での状態に維持されているものと見なされる。
【０１２７】
一方、ＳＴＥＰ８の判断結果が否定的である場合には、ＣＰＵ２０は、ＳＴＥＰ９において、回転体４の回転速度や回転方向等の回転状態を最終的に把握（特定）し、今回の演算処理周期の処理を終了する。なお、この場合、回転方向は、各相のパルス信号の検知対象切替わりが、各相間でどのような順番で発生するか等に基づき特定される。
【０１２８】
以上が、本実施形態でＣＰＵ２０が実行する処理である。
【０１２９】
以上説明した実施形態によれば、回転体４の回転速度が速いほど、チャタリング排除時間を短くするように該チャタリング排除時間を随時、更新しつつ設定するので、パルス信号のレベル値の本来の切替わり（検知対象切替わり）の発生を高い信頼性で検知することができる。ひいては、回転体４の回転状態の把握を高い信頼性で行なうことができる。
【０１３０】
ここで、本実施形態と本発明との対応関係を補足しておく。本実施形態では、ＳＴＥＰ１、ＳＴＥＰ４、ＳＴＥＰ７、ＳＴＥＰ１０の処理によって、それぞれ、本発明における切替わり検知ステップ、パルス幅推定ステップ、チャタリング排除時間設定ステップ、計時ステップが実現される。また、ＳＴＥＰ８の処理によって、回転体の回転速度が高速であるか否かを判断するステップが実現される。
【０１３１】
［第２実施形態］
次に、本発明の第２実施形態を図８及び図９を参照して説明する。なお、本実施形態は、ＣＰＵ２０の演算処理の一部だけが、第１実施形態と相違するものである。このため、本実施形態の説明では、第１実施形態と同一の構成については、第１実施形態と同一の参照符号を用い、詳細な説明を省略する。
【０１３２】
前記第１実施形態では、回転体４の回転速度が急上昇すると、パルス信号のレベル値の検知対象切替わりが発生する時刻で設定されているチャタリング排除時間が、該時刻の付近での実際の回転体４の回転速度に比して長めの時間になり、検知対象切替わりが除外対象切替わりとして検知から除外されてしまう恐れがある。
【０１３３】
例えば図７の時刻t42以後の回転体４の回転速度が、急上昇すると、時刻t42以後のパルス信号のパルス幅（Ｗd1，Ｗd2等）が、該パルス幅の始端側の検知対象切替わりの発生時刻で既に設定されているチャタリング時間（Ｔc1，Ｔc2等）よりも短くなってしまう場合もある。
【０１３４】
そこで、本実施形態では、パルス信号のレベル値の検知対象切替わりの発生を検知する毎に、既に過去に推定したパルス幅のうちの直近側の複数のパルス幅の推定値、例えば最新のパルス幅の推定値と、その１つ前のパルス幅の推定値との２つの推定値を用いて、将来の（次の検知対象切替わりが発生する時刻近辺での）回転体４の回転速度を予測し、その予測値に応じてチャタリング排除時間を更新・設定する。
【０１３５】
このようにチャタリング排除時間を更新・設定するために、本実施形態では、ＣＰＵ２０は、第１実施形態で説明した図３のフローチャートに示した演算処理の代わりに、図８のフローチャートに示す演算処理を所定の演算処理周期で逐次実行する。
【０１３６】
以下説明すると、ＣＰＵ２０は、図３のＳＴＥＰ１〜３の各処理と同じ処理（切替わり検知処理等）を、それぞれ、ＳＴＥＰ２１，２２，２３で実行する。そして、ＳＴＥＰ２３の判断結果が否定的である場合には、ＣＰＵ２０は、図３のＳＴＥＰ１０と同じ処理をＳＴＥＰ３２で実行し、今回の演算処理周期の演算処理を終了する。
【０１３７】
一方、本実施形態では、ＳＴＥＰ２３の判断結果が肯定的である場合には、ＣＰＵ２０は、パルス幅の前回の推定値をバックアップメモリ（図示省略）に記憶保持する（バックアップする）ことをＳＴＥＰ２４で実行する。ここで、「パルス幅の前回の推定値」というのは、前回の検知対象切替わり（今回の検知対象切替わりの１つ前の検知対象切替わり）の発生が検知された時刻での演算処理周期におけるＳＴＥＰ２５の処理によって推定したパルス幅である。
【０１３８】
次いで、本実施形態では、ＣＰＵ２０は、図３のＳＴＥＰ４と同じ処理をＳＴＥＰ２５で実行し、今回の演算処理周期で検知した検知対象切替わりの直前におけるパルス信号のパルス幅を推定する。さらに、ＣＰＵ２０は、図３のＳＴＥＰ５と同じ処理をＳＴＥＰ２６で実行することで、幅カウンタのカウント値をリセットした後、ＳＴＥＰ２７の処理を実行し、回転体４の将来の回転速度を予測する。
【０１３９】
この予測は、次のように行なわれる。すなわち、ＣＰＵ２０は、ＳＴＥＰ２４でバックアップしたパルス幅の前回の推定値（又はこれを演算処理周期で除算してなるカウント値）と、ＳＴＥＰ２５で推定したパルス幅の今回の推定値（又はこれを演算処理周期で除算してなるカウント値）とを、それぞれ、回転体４の回転速度に換算する。この換算は、第１実施形態におけるＳＴＥＰ６の処理に関して説明した場合と同様に、所定の演算式又はマップを用いて行なわれる。
【０１４０】
そして、ＣＰＵ２０は、前回のパルス幅の推定値から換算した回転速度（以降、これをωaとおく）と、今回のパルス幅の推定値から換算した回転速度（以降、これをωbとおく）とから、線形補間の手法によって、次回の検知対象切替わりが検知される時刻近辺の回転体４の将来の回転速度（以降、これをωcとおく）を予測する。
【０１４１】
具体的には、次式（２）により、将来の回転速度ωcの予測値を算出する。
【０１４２】
ωc＝ωb＋（ωb−ωa）×α      ……（２）
この式（２）におけるαは、回転体４の加速度を加味する割合いとしてあらかじめ設定した係数である。
【０１４３】
このように算出される回転速度ωcの予測値は、回転体４の回転速度が増速している状況（ωb＞ωa）では、今回のパルス幅の推定値が示す回転速度ωbよりも速い回転速度となり、回転体４の回転速度が減速している状況（ωb＜ωa）では、今回のパルス幅の推定値が示す回転速度ωbよりも遅い回転速度となる。また、回転体４の回転速度が一定に維持されている状況（ωb＝ωa）では、回転速度ωcの予測値は、当該一定の回転速度（＝ωb＝ωa）となる。
【０１４４】
上記の如く将来の回転速度ωcを予測した後、次に、ＣＰＵ２０は、現在時刻以後に予測される回転体４の回転速度が変化するか否かをＳＴＥＰ２８で判断する。
【０１４５】
具体的には、ＣＰＵ２０は、ＳＴＥＰ２７で算出した将来の回転速度ωcの予測値と、今回のパルス幅の推定値から換算した回転体４の回転速度ωbとを比較する。そして、ＣＰＵ２０は、前者の回転速度が後者の回転速度と異なる場合には、ＳＴＥＰ２８の判断結果が肯定的であるとし、両者が同一である場合には、ＳＴＥＰ２８の判断結果が否定的であるとする。なお、両者の回転速度が同一であるか否かは、両者の回転速度の差の絶対値が、あらかじめ定めた“０”近傍の所定値（＞０）よりも小さいか否かによって判断するようにしてもよい。
【０１４６】
補足すると、回転体４の回転速度が一定に維持されている状況で、いずれかの相のパルス信号のレベル値が高レベルとなる期間のパルス幅と、低レベルとなる期間のパルス幅とが同じになるようにロータリエンコーダ１が構成されているような場合には、その相のパルス信号についてのＳＴＥＰ２７の処理で、前記式（２）の右辺のωb，ωaをそれぞれ、今回のパルス幅の推定値と前回のパルス幅の推定値とに置き換えた式（又は今回のパルス幅の推定値と前回のパルス幅の推定値とのそれぞれを演算処理周期で除算してなるカウント値に置き換えた式）によって、将来のパルス幅（又はこれを演算処理周期で除算してなるカウント値）を予測してもよい。
【０１４７】
さらに、ＳＴＥＰ２８の判断処理は、図３のＳＴＥＰ６の処理に関して説明した場合と同様の仕方で、将来の回転速度の予測値に対応するパルス幅（又はこれを演算処理周期で除算したカウント値）と、今回のパルス幅の推定値（又はこれを演算処理周期で除算したカウント値）との比較によって行なうようにしてもよい。
【０１４８】
上記ＳＴＥＰ２８の判断結果が肯定的である場合には、ＣＰＵ２０は、チャタリング排除時間の設定値を更新する処理をＳＴＥＰ２９で実行した後に、ＳＴＥＰ３０の処理を実行する。また、ＳＴＥＰ２８の判断結果が否定的である場合には、ＣＰＵ２０は、チャタリング排除時間の設定値を更新することなく（現状に維持したまま）、ＳＴＥＰ３０の処理を実行する。なお、本実施形態では、ＳＴＥＰ２９の処理（チャタリング排除時間の設定値の更新処理）をＳＴＥＰ２８の判断結果が肯定的である場合にだけ行なうが、ＳＴＥＰ２８の判断処理を省略し（回転体４の回転速度の変化の発生の有無によらずに）、ＳＴＥＰ２９の処理を実行するようにしてもよい。
【０１４９】
ＳＴＥＰ２９でチャタリング排除時間の設定値を更新する処理は、次のように行なわれる。
【０１５０】
すなわち、ＣＰＵ２０は、ＳＴＥＰ２７で求めた回転体４の将来の回転速度ωcの予測値が速いほど、チャタリング排除時間を短くするように該チャタリング排除時間を設定する。
【０１５１】
より具体的には、ＣＰＵ２０は、将来の回転速度ωcの予測値から、あらかじめ設定された所定の演算式又はマップ（回転速度とチャタリング排除時間との間の関係を表す演算式又はマップ）を用いて新たなチャタリング排除時間を決定する。この場合に使用する演算式又はマップは、図３のＳＴＥＰ７で使用するものと同じでよい。
【０１５２】
なお、ＳＴＥＰ２７では、図３のＳＴＥＰ７の処理に関して説明した場合と同様の仕方で、将来の回転速度ωcの予測値に相当するパルス幅（低レベル又は高レベルのパルス幅）の予測値、又は、これを演算処理周期で除算してなるカウン値の予測値から、あらかじめ設定された所定の演算式又はマップ（パルス幅又はカウント値と、チャタリング排除時間との関係を表す演算式又はマップ）を用いてチャタリング排除時間を決定するようにしてもよい。
【０１５３】
以上のように、チャタリング排除時間を決定することにより、今回のパルス幅の推定値（パルス信号のパルス幅の最新の推定値）が示す回転速度ωbと前回のパルス幅の推定値が示す回転速度ωaとから予測される将来の回転速度ωcの予測値が速いほど、それに反比例して、チャタリング排除時間を短くするように該チャタリング排除時間が設定されることとなる。
【０１５４】
例えば図９の上段で示すような波形の実際のパルス信号がＣＰＵ２０に入力された場合を想定する。なお、ここでは、理解の便宜上、実際のパルス信号には、除外対象切替わりは含まれていないものとしている。
【０１５５】
なお、図示例では、時刻t52から回転体４の回転速度が増加しているものとする。また、この例では、理解の便宜上、回転体４の回転速度が一定である場合のパルス幅は、レベル値が高レベルである場合と低レベルである場合とで同じであるとしている。
【０１５６】
この場合、時刻t50からt52までの期間での実際のパルス信号のパルス幅Ｗd0と、時刻t52からt54までの期間での実際のパルス信号のパルス幅Ｗd1（＜Ｗd0）と、時刻t54からt56までの期間での実際のパルス信号のパルス幅Ｗd2（＜Ｗd1）とが、それぞれ、時刻t53の演算処理周期、時刻t55の演算処理周期、時刻t57の演算処理周期において推定される。このとき、それぞれのパルス幅Ｗd0，Ｗd1，Ｗd2の推定値により示される回転体４の回転速度が、図９の下段で示すように、ω0，ω1，ω2（ω0＜ω1＜ω２）となる。なお、図９の例では、時刻t50の前の実際のパルス信号のパルス幅は、パルス幅Ｗd0と同じであるとしている。
【０１５７】
そして、パルス幅Ｗd0，Ｗd1，Ｗd2のそれぞれを推定した時刻t53の演算処理周期、時刻t55の演算処理周期、時刻t57の演算処理周期において、回転体４の将来の回転速度の予測値が算出される。
【０１５８】
この場合、時刻t53の演算処理周期では、この演算処理周期で算出したパルス幅Ｗd0の推定値から換算した回転速度ω0と、１つ前のパルス幅の推定値（＝Ｗd0）から換算した回転速度（＝ω0）とをそれぞれ、前記式（２）右辺のωb、ωaに代入してなる演算式によって、図９の中段に示す将来の回転速度ωcの予測値ωc0が算出される。この予測値ωc0は、図９の例ではω0に一致する。そして、この予測値ωc0に応じて、図９に示すチャタリング排除時間Ｔc0〜Ｔc4のうちのＴc2が設定される。
【０１５９】
また、時刻t55の演算処理周期では、この演算処理周期で算出したパルス幅Ｗd1の推定値から換算した回転速度ω1と、１つ前のパルス幅Ｗd0の推定値から換算した回転速度ω1とをそれぞれ、前記式（２）右辺のωb、ωaに代入してなる演算式によって、将来の回転速度ωcの予測値ωc1が算出される。この予測値ωc1は、図９の例ではωc1＞ω1となる。そして、この予測値ωc1に応じて、図９に示すチャタリング排除時間Ｔc3が設定される。
【０１６０】
また、時刻t57の演算処理周期では、この演算処理周期で算出したパルス幅Ｗd2の推定値から換算した回転速度ω2と、１つ前のパルス幅Ｗd1の推定値から換算した回転速度ω2とをそれぞれ、前記式（２）右辺のωb、ωaに代入してなる演算式によって、将来の回転速度ωcの予測値ωc2が算出される。この予測値ωc2は、図９の例ではωc2＞ω2となる。そして、この予測値ωc2に応じて、図９に示すチャタリング排除時間Ｔc4が設定される。
【０１６１】
そして、この場合、上記の如く設定されるチャタリング排除時間Ｔc2、Ｔc3、Ｔc4は、それぞれ、回転速度の予測値ωc0，ωc1，ωc2が速いほど、チャタリング排除時間Ｔc2、Ｔc3、Ｔc4が短くなるように（Ｔc2＞Ｔc3＞Ｔc4となるように）決定されることとなる。
【０１６２】
図８の説明に戻って、次に、ＳＴＥＰ３０においては、ＣＰＵ２０は、図３のＳＴＥＰ８と同じ判断処理を実行し、回転体４の回転速度が高速回転であるか否かを判断する。そして、ＳＴＥＰ３０の判断結果が肯定的となる場合には、回転体４の回転状態（回転速度や回転方向）の最終的な把握を省略し、今回の演算処理周期の処理を終了する。
【０１６３】
一方、ＳＴＥＰ３０の判断結果が否定的である場合には、ＣＰＵ２０は、図３のＳＴＥＰ９と同じ処理をＳＴＥＰ３１で実行し、今回の演算処理周期の処理を終了する。
【０１６４】
以上が、本実施形態でＣＰＵ２０が実行する処理である。
【０１６５】
以上説明した実施形態によれば、実際のパルス信号のレベル値の検知対象切替わりを検知する毎に、将来の回転体４の回転速度を予測し、その予測値が速いほど、チャタリング排除時間を短くするように該チャタリング排除時間を随時、更新しつつ設定するので、回転体４の回転速度が急減に上昇するような場合であっても、パルス信号のレベル値の本来の切替わり（検知対象切替わり）が、除外対象切替わりとして検知されなくなるようなことを極力防止することができる。このため、パルス信号のレベル値の本来の切替わりの発生をより一層高い信頼性で検知することができる。ひいては、回転体４の回転状態の把握をより一層高い信頼性で行なうことができる。
【０１６６】
ここで、本実施形態と本発明との対応関係を補足しておく。本実施形態では、ＳＴＥＰ２１、ＳＴＥＰ２５、ＳＴＥＰ２９、ＳＴＥＰ３２の処理によって、それぞれ、本発明における切替わり検知ステップ、パルス幅推定ステップ、チャタリング排除時間設定ステップ、計時ステップが実現される。また、ＳＴＥＰ３０の処理によって、回転体の回転速度が高速であるか否かを判断するステップが実現される。また、パルス幅に対応するカウント値が、本発明におけるパラメータ値に相当する。
【０１６７】
なお、本実施形態では、パルス幅の推定値のうちの最新値により示される回転体４の回転速度ωbと、その１つ前のパルス幅の推定値により示される回転体４の回転速度ωaとから将来の回転速度ωcを予測するようにしたが、直近側の３つ以上のパルス幅の推定値を基に、将来の回転速度ωc（または、これに対応するパルス幅もしくはカウント値）を予測するようにしてもよい。この場合、将来の回転速度ωc（または、これに対応するパルス幅もしくはカウント値）を、２次関数等、１次関数（線形関数）よりもより高次の関数パターンで予測するようにしてもよい。
【０１６８】
また、前記各実施形態では、ロータリエンコーダ１が３相のパルス信号を生成するロータリエンコーダである場合を例にとって説明したが、本発明におけるロータリエンコーダは、例えば１相または２相のパルス信号を生成するロータリエンコーダであってもよい。
【０１６９】
また、前記各実施形態では、ロータリエンコーダ１が接触式のロータリーエンコーダである場合を例にとって説明したが、光学式のロータリエンコーダであっても、本発明を適用できる。
【符号の説明】
【０１７０】
１…ロータリエンコーダ、ＳＴＥＰ１，２１…切替わり検知ステップ、ＳＴＥＰ４，２５…パルス幅推定ステップ、ＳＴＥＰ７，２９…チャタリング排除時間設定ステップ、ＳＴＥＰ１０，３２…計時ステップ。
【図１】
0005580185.tif 000002
【図２】
0005580185.tif 000003
【図３】
0005580185.tif 000004
【図４】
0005580185.tif 000005
【図５】
0005580185.tif 000006
【図６】
0005580185.tif 000007
【図７】
0005580185.tif 000008
【図８】
0005580185.tif 000009
【図９】
0005580185.tif 000010