(57)【要約】      （修正有）【課題】エンコーダに形成されるスリット毎のパルス信号に基づいてモータの回転速度を検出するので、スリットの機械的なばらつきに影響されることなくモータの回転速度を正確に制御すること。【解決手段】モータ制御回路１４は、ＣＰＵから入力される目標値と、エンコーダ１６から出力される応答パルス信号に基づいて、モータ３０をフィードバック制御する。速度検出回路５６は、応答パルス信号を、エンコーダの回転部材に形成されたスリット毎の複数のエッジパルス信号に分離し、分離した複数のエッジパルス信号において連続する２つのパルス間の時間に基づいてモータの回転速度を検出し、検出した回転速度をフィードバックする。【選択図】図２
2018011434.tif 000002
【特許請求の範囲】
【請求項１】
モータをフィードバック制御するモータ制御回路であって、
目標値とフィードバックされる前記モータの回転速度に基づいて当該モータの駆動電圧を生成し、当該モータに印加する生成部と、
前記モータが駆動されることによりエンコーダから出力される第１パルス信号を検出するパルス信号検出部と、
前記パルス信号検出部によって検出された前記第１パルス信号を前記エンコーダの回転部材に形成されるスリット部毎の複数の第２パルス信号に分離する分離部と、
前記分離部によって分離された前記スリット部毎の複数の第２パルス信号のうちの少なくとも１つの当該第２パルス信号において連続する２つのパルス間の時間に基づいて前記回転速度を検出し、前記生成部にフィードバックする速度検出部を備える、モータ制御回路。
【請求項２】
前記速度検出部は、前記複数の第２パルス信号の各々において連続する２つのパルス間の時間に基づいて前記回転速度を検出し、各々の当該回転速度を前記生成部にフィードバックする、請求項１記載のモータ制御回路。
【請求項３】
前記分離部は、
前記第１パルス信号の立ち上がりエッジまたは立下りエッジを検出するエッジ検出部と、
前記エッジ検出部によって検出された立ち上がりエッジまたは立下りエッジに応じて論理状態が変化する第３パルス信号を生成する第３パルス信号生成部と、
前記パルス信号生成部によって生成された前記第３パルス信号を前記スリット部毎に分離して前記複数の第２パルス信号を生成する第２パルス信号生成部を含む、請求項１または２記載のモータ制御回路。
【請求項４】
前記分離部は、前記第１パルス信号の立ち上がりエッジおよび立下りエッジを検出するエッジ検出部と、
前記エッジ検出部によって検出された立ち上がりエッジおよび立下りエッジに応じて論理状態が変化する第３パルス信号を生成する第３パルス信号生成部と、
前記パルス信号生成部によって生成された前記第３パルス信号を前記スリット部毎であり、各々の当該スリット部において前記立ち上がりエッジおよび前記立下りエッジ別に分離して前記複数の第２パルス信号を生成する第２パルス信号生成部を含む、請求項１または２記載のモータ制御回路。
【請求項５】
前記速度検出部は、特定の１または複数の前記スリット部に対応する１または複数の前記第２パルス信号を選択する選択部を含み、
前記選択部によって選択された１または複数の前記第２パルス信号において連続する２つのパルス間の時間に基づいて前記回転速度を検出する、請求項１記載のモータ制御回路。
【請求項６】
前記速度検出部は、
すべての前記スリット部の各々の前記第２パルス信号において連続する２つのパルス間の時間に基づいて前記回転速度を検出し、検出した当該スリット部毎の当該回転速度に基づいて当該スリット部毎の異常の有無を検出する異常検出部と、
前記異常検出部によって異常が有ることを検出した前記スリット部についての前記第２パルス信号を用いた前記回転速度の検出を停止する停止部を含む、請求項１記載のモータ制御回路。
【請求項７】
モータをフィードバック制御するモータ制御方法であって、
（ａ）目標値とフィードバックされる前記モータの回転速度に基づいて当該モータの駆動電圧を生成し、当該モータに印加するステップと、
（ｂ）前記モータが駆動されることによりエンコーダから出力される第１パルス信号を検出するステップと、
（ｃ）前記ステップ（ｂ）において検出した前記第１パルス信号を前記エンコーダの回転部材に形成されるスリット部毎の複数の第２パルス信号に分離するステップと、
（ｄ）前記ステップ（ｃ）において分離した前記スリット部毎の複数の第２パルス信号のうちの少なくとも１つの当該第２パルス信号において連続する２つのパルス間の時間に基づいて前記回転速度を検出し、前記生成部にフィードバックするステップを含む、モータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、モータ制御回路およびモータ制御方法に関し、特にたとえば、モータの回転速度を制御する、モータ制御装置およびモータ制御方法に関する。
【背景技術】
【０００２】
背景技術の一例が特許文献１に開示される。この特許文献１に開示されるモータ制御装置は、制御部と、ドライバと、エンコーダとを有し、制御部から出力される駆動指令信号に従い、ドライバが駆動電圧を生成してモータを駆動する。エンコーダは、モータの回転に応じてエンコード信号を出力する。制御部は、このエンコード信号に基づき、モータの回転位置および回転速度のうち少なくとも一方を制御するＰＷＭ信号のような駆動指令信号を生成する。
【０００３】
この特許文献１のモータ制御装置では、エンコーダは、例えばモータの回転軸に円盤状部材を取り付け、この円盤状部材の円周上に等間隔のスリットを設けている。エンコード信号は、所定の位置に取り付けられた光源からのスリット透過光を光電変換器で検出することにより生成される。また、特許文献１では、モータが回転モータであって、エンコード信号がモータ軸の回転角に応じて周期的に変化する信号であるものとしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１７６１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、円盤状部材に設けられる複数のスリットの間隔は機械的なバラツキ（スリットずれ）を有していることが多いため、スリット間の時間から回転速度を算出すると、算出した回転速度と実際の回転速度との間で誤差を生じてしまい、誤った回転速度でフィードバックをかけてしまうため、目標とする回転速度が得られない問題がある。
【０００６】
このようなスリットずれを補正するための手法として、高精度の比較用エンコーダを用いることも考えられるが、コストが高くなってしまう。
【０００７】
それゆえに、この発明の主たる目的は、新規な、モータ制御回路およびモータ制御方法を提供することである。
【０００８】
また、この発明の他の目的は、安価な構成で出来る限り正確に目標の回転速度になるようにモータの回転速度を制御できる、モータ制御回路およびモータ制御方法を提供することである。
【課題を解決するための手段】
【０００９】
第１の発明は、モータをフィードバック制御するモータ制御回路であって、生成部と、パルス信号検出部と、分離部と、速度検出部を備える。生成部は、目標値とフィードバックされるモータの回転速度に基づいて当該モータの駆動電圧を生成し、当該モータに印加する。パルス信号検出部は、モータが駆動されることによりエンコーダから出力される第１パルス信号を検出する。分離部は、パルス信号検出部によって検出された第１パルス信号をエンコーダの回転部材に形成されるスリット部毎の複数の第２パルス信号に分離する。速度検出部は、分離部によって分離されたスリット部毎の複数の第２パルス信号のうちの少なくとも１つの当該第２パルス信号において連続する２つのパルス間の時間に基づいて回転速度を検出し、生成部にフィードバックする。
【００１０】
第１の発明によれば、エンコーダの回転部材に形成されるスリット部毎に分離したパルス信号において連続する２つのパルス間の時間に基づいてモータの回転速度を検出するので、スリットの機械的なばらつきによる影響を受けずにモータの回転速度を検出することができる。したがって、正確にモータの回転速度を制御することができる。
【００１１】
第２の発明は、第１の発明に従属し、速度検出部は、複数の第２パルス信号の各々において連続する２つのパルス間の時間に基づいて回転速度を検出し、各々の当該回転速度を生成部にフィードバックする。
【００１２】
第２の発明によれば、すべてのスリットに対応する第２パルス信号の各々から回転速度を検出し、フィードバックするので、フィードバックされる回転速度の更新頻度を高くすることができる。
【００１３】
第３の発明は、第１または第２の発明に従属し、分離部は、エッジ検出部と、第３パルス信号生成部と、第２パルス信号生成部とを含む。エッジ検出部は、第１パルス信号の立ち上がりエッジまたは立下りエッジを検出する。第３パルス信号生成部は、エッジ検出部によって検出された立ち上がりエッジまたは立下りエッジに応じて論理状態が変化する第３パルス信号を生成する。第２パルス信号生成部は、パルス信号生成部によって生成された第３パルス信号をスリット部毎に分離して複数の第２パルス信号を生成する第２パルス信号生成部を含む。
【００１４】
第３の発明によれば、第１パルス信号の立ち上がりエッジまたは立ち下がりエッジについての第２パルス信号から回転速度を検出することができる。
【００１５】
第４の発明は、第１または第２の発明に従属し、分離部は、エッジ検出部と、第３パルス信号生成部と、第２パルス信号生成部とを含む。エッジ検出部は、第１パルス信号の立ち上がりエッジおよび立下りエッジを検出する。第３パルス信号生成部は、エッジ検出部によって検出された立ち上がりエッジおよび立下りエッジに応じて論理状態が変化する第３パルス信号を生成する。第２パルス信号生成部は、パルス信号生成部によって生成された第３パルス信号をスリット部毎であり、各々の当該スリット部において立ち上がりエッジおよび立下りエッジ別に分離して複数の第２パルス信号を生成する。
【００１６】
第４の発明によれば、第１パルス信号の立ち上がりエッジまたは立ち下がりエッジについての第２パルス信号から回転速度を検出することができる。したがって、フィードバックされる回転速度の更新頻度をさらに多くすることができる。このため、比較的短時間で、モータの回転速度を目標値に一致させることができる。
【００１７】
第５の発明は、第１の発明に従属し、速度検出部は、特定の１または複数のスリット部に対応する１または複数の第２パルス信号を選択する選択部を含み、選択部によって選択された１または複数の第２パルス信号において連続する２つのパルス間の時間に基づいて回転速度を検出する。
【００１８】
第５の発明によれば、１または複数の第２のスリット部に対応する１または複数の第２パルス信号を選択するので、たとえば、モータの回転速度が安定したと判断した後では、フィードバックする回転速度の更新頻度を減らすことにより、計算処理の負荷を軽減することができる。
【００１９】
第６の発明は、第１の発明に従属し、速度検出部は、異常検出部と、停止部を含む。異常検出部は、すべてのスリット部の各々の第２パルス信号において連続する２つのパルス間の時間に基づいて回転速度を検出し、検出した当該スリット部毎の当該回転速度に基づいて当該スリット部毎の異常の有無を検出する。停止部は、異常検出部によって異常が有ることを検出したスリット部についての第２パルス信号を用いた回転速度の検出を停止する。
【００２０】
たとえば、エンコーダの回転部材にゴミが付着することにより、スリット部に異常が発生している場合には、当該スリット部についての第２パルス信号を用いた回転速度の検出を停止するので、誤った回転速度に基づいてモータがフィードバック制御されるのを防止することができる。
【００２１】
第７の発明は、モータをフィードバック制御するモータ制御方法であって、（ａ）目標値とフィードバックされるモータの回転速度に基づいて当該モータの駆動電圧を生成し、当該モータに印加するステップと、（ｂ）モータが駆動されることによりエンコーダから出力される第１パルス信号を検出するステップと、（ｃ）ステップ（ｂ）において検出した第１パルス信号をエンコーダに形成されるスリット部毎の複数の第２パルス信号に分離するステップと、（ｄ）ステップ（ｃ）において分離したスリット部毎の複数の第２パルス信号のうちの少なくとも１つの当該第２パルス信号において連続する２つのパルス間の時間に基づいて回転速度を検出し、生成部にフィードバックするステップを含む、モータ制御方法である。
【００２２】
第７の発明においても、第１の発明と同様に、モータの回転速度を正確に制御することができる。
【発明の効果】
【００２３】
この発明によれば、同じ位置に形成されたスリットに対応するパルス間の速度をモータの回転速度として検出するので、スリットの機械的なばらつきの影響を受けずにモータの回転速度を正確に制御することができる。また、高精度の比較用エンコーダなどを設ける必要がないため、安価である。
【００２４】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２５】
【図１】図１は第１実施例のモータ制御装置の一例を示すブロック図である。
【図２】図２は図１に示すモータ制御回路の一例を示すブロック図である。
【図３】図３（Ａ）は理想的なエンコーダ応答パルスの時間変化の一例を示すタイミングチャートであり、図３（Ｂ）は実際のエンコーダ応答パルスの時間変化の一例を示すタイミングチャートである。
【図４】、図４（Ａ）は実際のエンコーダ応答パルスの時間変化の他の例を示すタイミングチャートであり、図４（Ｂ）は或るスリットについてのパルスのエッジ間隔をカウントするための基準クロックの時間変化の一例を示すタイミングチャートである。
【図５】図５は図２に示した速度検出回路の具体的な内容の一例を示す図解図である。
【図６】図６は図５に示すエッジ検出回路の具体的な内容の一例を示す回路図である。
【図７】図７（Ａ）はエンコーダ応答パルスの時間変化の一例を示すタイミングチャートであり、図７（Ｂ）はＤ−ＦＦ１００の出力の時間変化の一例を示すタイミングチャートであり、図７（Ｃ）はＤ−ＦＦ１０２の出力の時間変化の一例を示すタイミングチャートであり、図７（Ｄ）はＤ−ＦＦ１０４の出力の時間変化の一例を示すタイミングチャートであり、図７（Ｅ）はＤ−ＦＦ１０４の出力のハイレベルとローレベルを反転させた場合の時間変化の一例を示すタイミングチャートであり、図７（Ｆ）はＡＮＤ回路１０６の出力（エッジパルス信号）の時間変化の一例を示すタイミングチャートである。
【図８】図８は図５に示す振分回路の具体的な内容の一例を示す回路図である。
【図９】図９（Ａ）はエッジ検出回路８０から入力されたエッジパルス信号の時間変化の一例を示すタイミングチャートであり、図９（Ｂ）はエッジカウンタ１３０のカウント値の時間変化の一例を示すタイミングチャートであり、図９（Ｃ）はスリット０のエッジパルス信号の時間変化の一例を示すタイミングチャートであり、図９（Ｄ）はスリット１のエッジパルス信号の時間変化の一例を示すタイミングチャートである。
【図１０】図１０は図５に示すパルス数算出回路の具体的な内容の一例を示す回路図である。
【図１１】図１１（Ａ）は特定のスリットのエッジパルス信号の時間変化を示すタイミングチャートであり、図１１（Ｂ）は基準カウンタのカウント値の時間変化を示すタイミングチャートであり、図１１（Ｃ）は格納カウント値の時間変化を示すタイミングチャートであり、図１１（Ｄ）はパルス数イネーブル信号の時間変化を示すタイミングチャートであり、図１１（Ｅ）は一周のカウント値の時間変化を示すタイミングチャートである。
【図１２】図１２はエッジ検出回路の具体的な内容の他の例を示す回路図である。
【図１３】図１３（Ａ）はエンコーダ応答パルスの時間変化の一例を示すタイミングチャートであり、図１３（Ｂ）はＤ−ＦＦ１００の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｃ）はＤ−ＦＦ１０２の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｄ）はＤ−ＦＦ１０４の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｅ）はＤ−ＦＦ１０４の出力のハイレベルとローレベルを反転させた場合の時間変化の一例を示すタイミングチャートであり、図１３（Ｆ）はＡＮＤ回路１０６の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｇ）はＤ−ＦＦ１０２の出力のハイレベルとローレベルを反転させた場合の時間変化の一例を示すタイミングチャートであり、図１３（Ｈ）はＡＮＤ回路１０８の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｉ）はＯＲ回路１１０の出力の時間変化の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００２６】
［第１実施例］
図１は、この発明の第１実施例のモータ制御装置１０の一例を示すブロック図である。図１を参照して、モータ制御装置１０は、たとえば、マイクロコンピュータであり、ＣＰＵ１２を含み、ＣＰＵ１２にはモータ制御回路１４が接続される。このモータ制御回路１４にモータ３０が接続され、モータ制御回路１４から出力される駆動パルス（駆動電圧）に従ってモータ３０が駆動される。また、モータ制御装置１０は、エンコーダ１６を含み、エンコーダ１６には上記のモータ３０が接続（連結）される。たとえば、モータ３０の駆動電圧は、ＰＷＭ(Pulse Width Modulation)信号である。
【００２７】
ＣＰＵ１２は、ホストコンピュータからの指示の下、モータ制御回路１４を制御して、モータ３０を制御する。この第１実施例では、モータ３０の駆動、回転速度（加速、減速）および停止が制御される。
【００２８】
モータ制御回路１４は、モータ３０を所定の回転速度（目標値）で駆動するための電圧（駆動電圧）を生成し、生成した駆動電圧をモータ３０に印加する。
【００２９】
モータ３０は、たとえば、汎用のＤＣモータであり、モータ制御回路１４（後述するモータ駆動パルス生成回路５４）から駆動電圧が印加されることによってモータ軸が回転される。
【００３０】
エンコーダ１６は、モータ３０の回転軸の回転角度（回転量）を検出し、検出結果に応じたパルス信号（エンコーダ応答パルス）をモータ制御回路１４に入力（フィードバック）するロータリーエンコーダである。モータ制御回路１４は、入力されたパルス信号に基づいて、モータ３０の回転軸の回転速度（以下、単に「モータ３０の回転速度」という）を検出（算出）する。
【００３１】
図２は図１に示すモータ制御回路１４の一例を示すブロック図である。図２に示すように、モータ制御回路１４は端子５０を含み、この端子５０には、ＣＰＵ１２からの目標の回転速度（目標値）が入力されるとともに、速度検出回路５６から出力されるモータ３０の実際の回転速度（以下、「検出速度」ということがある）が反転して入力される。端子５０では、目標値から検出速度を減算した偏差が算出され、算出された偏差が演算回路５２に入力される。
【００３２】
演算回路５２では、偏差に基づいて操作量が算出され、算出された操作量がモータ駆動パルス生成回路５４に入力される。モータ駆動パルス生成回路５４は、演算回路５２から入力された操作量に応じた駆動パルスを生成する。駆動パルスは、ＰＷＭ信号（駆動電圧）であり、モータ駆動パルス生成回路５４では、ＰＷＭ信号におけるハイレベルの期間とローレベルの期間のデューティ比が決定され、デューティ比が決定されたＰＷＭ信号がモータ３０に出力される。したがって、モータ３０は、ＰＷＭ信号に従って駆動される。
【００３３】
エンコーダ１６は、たとえば、光を透過させない円盤状の板部材（以下、「回転部材」という）を含み、この回転部材（コードホイール）がモータ３０の回転軸に取り付けられる。また、回転部材には、その外周部分において円周上に等間隔で並ぶように複数の細長い孔（スリットまたはスロットと呼ばれる）が形成される。ただし、スリットの長手方向は、回転部材の中心から当該回転部材の面に沿って放射状に延びる方向である。
【００３４】
エンコーダ１６は、回転部材に設けられた複数のスリットの有無を検出可能に固定的に設けられた光学センサを含み、光学センサの発光部（ＬＥＤ発光素子）から出力される光がスリットを透過して光学センサの受光部（フォトダイオード）で受光され、フォトダイオードの出力が光学センサの信号変換部（受光ＩＣ）でパルス信号（エンコーダ応答パルス）に変換される。たとえば、信号変換部は、発光部からの光を受光部で受光している場合にハイレベルとなり、発光部からの光を受光部で受光していない場合にローレベルになるパルス信号を生成する。
【００３５】
エンコーダ１６から出力されるパルス信号（以下、「応答パルス信号」ということがある）は速度検出回路５６に入力される。速度検出回路５６は、応答パルス信号に基づいてモータ３０の回転速度を検出（計測）し、検出した回転速度すなわち検出速度を出力する。したがって、上述したように、検出速度が端子５０に反転入力される。
【００３６】
このようにして、モータ３０はフィードバック制御されるが、一般的な速度検出回路では、パルス信号の隣接する（時間的に連続する）２つのパルス間の時間に基づいて回転速度が検出される。
【００３７】
図３（Ａ）は理想的なエンコーダ応答パルスの時間的な変化を示すタイミングチャートであり、図３（Ｂ）は実際のエンコーダ応答パルスの時間的な変化の一例を示すタイミングチャートである。
【００３８】
モータ３０の回転軸が或る一定の回転速度で回転しており、エンコーダ１６の回転部材に形成された複数のスリットが同じ大きさで等間隔である場合には、エンコーダ１６から出力される応答パルス信号は、図３（Ａ）に示すように、各パルスのパルス幅が同じであり、各パルスが一定の時間間隔で現れる。したがって、理想的なエンコーダ応答パルスが生成される場合には、回転部材に形成されるスリットの総数は既知であるため、スリットの総数と連続する２つのパルス間の時間に基づいてモータ３０の回転速度を検出することができる。
【００３９】
しかし、現実には、回転部材に設けられる複数のスリットの間隔は機械的なばらつき（スリットずれ）を有することが多いため、実際の応答パルス信号は、各パルスのパルス幅は均一でなく、連続する２つのパルス間の時間にはばらつきがある。具体的には、図３（Ｂ）に示すように、各パルスは一定時間毎に現れないため、０番目と１番目のパルス間の時間ｔＥＮＣ０と１番目と２番目のパルス間の時間ｔＥＮＣ１とでは長さが異なる。ここでは、連続する２つのパルスの立ち上がりエッジ間の時間がパルス間の時間ｔＥＮＣｎである。ただし、同じパルス間の時間であっても、連続する２つのパルスの立ち上がりエッジ間の時間と、連続する２つのパルスの立下りエッジ間の時間とは同じとは限らない。図示は省略するが、他のパルス間の時間についても同様にばらつきが生じている。
【００４０】
ただし、各パルスの立ち上がりエッジは、エンコーダ１６の回転部材が回転する方向において、各スリットの先頭（前端）の位置に対応し、各パルスの立下りエッジは、エンコーダ１６の回転部材が回転する方向において、各スリットの末尾（後端）の位置に対応する。
【００４１】
また、図３（Ｂ）においては、応答パルス信号のうち、最初に生成されたパルスを０番目（先頭）のパルスとし、この０番目のパルスの立ち上がりエッジをＥＮＣ０の文字列で示してあり、次に生成されたパルスを１番目のパルスとし、この１番目のパルスの立ち上がりエッジをＥＮＣ１の文字列で示してある。他のパルスについても同様であり、回転部材が一周回転された場合の末尾に生成されたパルスをｍ番目のパルスとし、このｍ番目のパルスの立ち上がりエッジをＥＮＣｍの文字列で示してある。ｍ番目のパルスの次には、次の周における０番目のパルスが生成される。
【００４２】
また、先頭のパルスが生成されたときに検知された回転部材のスリットを先頭（０番目）のスリットとし、次のパルスが生成されたときに検知された回転部材のスリットを１番目のスリットとする。他のスリットについても同様であり、末尾に検知されたパルスが生成されたときに検知された回転部材のスリットをｍ番目のスリットとする。
【００４３】
なお、上述した立ち上がりエッジおよび立下りエッジの特定方法と、上述したパルスの番目およびスリットの番目の決定方法については、この明細書において同じである。したがって、スリット自体に予め番号が付されているのではなく、エンコーダ１６によって回転部材に形成されたスリットを検知したことに応じて生成されたパルスに番号（番目）が決定され（付され）、当該パルスに対応するスリットの番目（番号）が決定される。
【００４４】
上述したように、連続する２つのパルス間の時間にはばらつきがあるため、或るパルス間の時間からモータ３０の回転速度を算出すると、算出した回転速度と実際の回転速度との間で誤差を生じてしまい、誤った回転速度でフィードバックをかけてしまうことになる。その結果、目標とする回転速度が得られないという問題がある。
【００４５】
一例として、スリットずれを補正するための手法として、高精度の比較用エンコーダを用いることも考えられるが、コストが高くなってしまう。
【００４６】
ここで、同じスリットに対応するパルス間の時間は、回転部材が一周する時間と一致するため、スリットに機械的なばらつきがある場合であっても、モータ３０が一定速度で回転している場合には、他のスリットに対応するパルス間の時間との間に誤差が生じることはない。たとえば、図３（Ｂ）に示すように、先頭（０番目）のスリットに対応するパルス間の時間ＴＥＮＣ０と、次（１番目）のスリットに対応するパルス間の時間ＴＥＮＣ１は、いずれも回転部材が一周する時間であるため、一致する。図示等は省略するが、他のスリットに対応するパルス間の時間についても同様である。
【００４７】
そこで、この第１実施例では、同じスリットに対応するパルス間の時間を、スリット毎に検出し、スリット毎に検出したパルス間の時間の各々に基づいて回転速度を算出するようにしてある。
【００４８】
図４（Ａ）は実際のエンコーダ応答パルスの他の例を示すタイミングチャートであり、図４（Ｂ）は同じスリットに対応するパルス間の長さ（時間）をカウントするための基準のクロック（エッジ間隔カウント用クロック）の時間変化を示すタイミングチャートである。
【００４９】
簡単に説明すると、図４（Ａ）に示すように、ｎ（ｎ＝０，１，２，…，ｍ）番目のスリットに対応するパルス間（隣接する立ち上がりエッジＥＮＣｎ間）の時間ＴＥＮＣｎは、図４（Ｂ）に示すエッジ間隔カウント用クロックのパルス数ＴＥＮＣｎ＿ｃｏｕｎｔに相当する。ただし、図４（Ｂ）からも分かるように、この第１実施例では、エッジ間隔カウント用クロックすなわち基準のクロック（基準クロック）のパルス間の時間は、応答パルス信号のパルス間の時間よりも短く設定される。このようなパルス数ＴＥＮＣｎ＿ｃｏｕｎｔをスリット毎（各スリットに対応するパルス毎）に検出し、モータ３０の回転速度を検出（測定）するのである。
【００５０】
図５は図２に示した速度検出回路５６の具体的な内容の一例を示す回路図である。図５に示すように、速度検出回路５６は、エッジ検出回路８０を含み、エッジ検出回路８０には、エンコーダ１６からの応答パルス信号（エンコーダ応答パルス）が入力されるとともに、基準クロックが入力される。図示は省略するが、基準クロックは、水晶振動子などを用いた発振回路で発生され、入力される。たとえば、この発振回路は、モータ制御装置１０またはモータ制御回路１４に設けられる。
【００５１】
エッジ検出回路８０の詳細については後述するが、このエッジ検出回路８０は、エンコーダ１６から出力されたエンコーダ応答パルスのエッジを検出し、エッジを検出する度にハイレベルになるパルスを含むパルス信号（以下、「エッジパルス信号」という）を出力する。エッジパルス信号は、振分回路８２に入力される。また、振分回路８２には、基準クロックも入力される。振分回路８２の詳細については後述するが、この振分回路８２は、エッジ検出回路８０から与えられたエッジパルス信号をスリット毎に振り分ける。つまり、応答パルス信号が、スリット毎のエッジパルス信号（以下、「スリット別パルス信号」ということがある）に分離される。上述したように、応答パルス信号の先頭のパルスから順に０番目，１番目，…，ｍ番目のパルスとし、各パルスに対応するスリットも同じ番号で識別するようにしてあるため、エッジパルス信号のうち、振分回路８２で最初に検出されたパルスを０番目のスリットに対応するパルスとし、次に検出されたパルスを１番目のスリットに対応するパルスとし、同様に、ｍ番目のスリットに対応するパルスまで振分が行われる。
【００５２】
エッジパルス信号のパルスがスリット毎に振り分けられると、振り分けられたスリット毎のパルス（スリット別パルス信号）は、各スリットに対応して設けられるパルス数算出回路８６（８６ａ，８６ｂ，８６ｃ，…、８６ｎ）にそれぞれ入力される。
【００５３】
また、速度検出回路５６は、基準カウンタ８４を含み、基準カウンタ８４には、基準クロックが入力される。基準カウンタ８４は、基準クロックのパルス数をカウントするカウンタであり、カウント値（以下、「基準カウント値」という）を各パルス数算出回路８６に入力する。たとえば、基準カウンタ８４は、少なくとも、モータ３０の回転軸すなわちエンコーダ１６の回転部材の一周分の基準クロックのパルス数をカウント可能なカウンタである。
【００５４】
パルス数算出回路８６の詳細については後述するが、このパルス数算出回路８６では、対応するスリットｎについての連続する２つのパルス間における基準クロックのパルス数ＴＥＮＣｎ＿ｃｏｕｎｔが算出される。つまり、着目するスリットｎについてのモータ３０の回転軸（回転部材）の一周毎のクロックのパルス数ＴＥＮＣｎ＿ｃｏｕｎｔをカウントする。
【００５５】
各パルス数算出回路８６で算出されたパルス数ＴＥＮＣｎ＿ｃｏｕｎｔは、それぞれ、マルチプレクサ８８に入力される。また、各パルス数算出回路８６は、パルス数ＴＥＮＣｎ＿ｃｏｕｎｔを算出したことに応じて、イネーブル信号（選択信号）を出力する。この選択信号は、マルチプレクサ８８に入力される。したがって、マルチプレクサ８８は、選択信号を出力したパルス数算出回路８６から入力されたパルス数ＴＥＮＣｎ＿ｃｏｕｎｔを選択して、回転速度算出回路９０に出力する。
【００５６】
回転速度算出回路９０は、マルチプレクサ８８から入力されたパルス数ＴＥＮＣｎ＿ｃｏｕｎｔを用いて回転速度を算出する。また、回転速度算出回路９０には、基準クロックが入力される。図示は省略するが、回転速度算出回路９０は、プロセッサ（演算装置）およびメモリ（ＲＡＭ）を含み、プロセッサは、マルチプレクサ８８から入力されたパルス数ＴＥＮＣｎ＿ｃｏｕｎｔをメモリに一旦記憶する。また、プロセッサは、基準クロックの周波数ｆ［Ｈｚ］を算出（検出）し、算出した周波数ｆとメモリに記憶したパルス数ＴＥＮＣｎ＿ｃｏｕｎｔから数１に従ってモータの回転速度を算出する。
【００５７】
［数１］
回転速度［ｒｐｍ］＝周波数ｆ／（パルス数ＴＥＮＣｎ＿ｃｏｕｎｔ）×６０
図６は図５に示したエッジ検出回路８０の具体的な内容の一例を示す回路図である。図６に示すように、エッジ検出回路８０は、Ｄフリップフロップ（Ｄ−ＦＦ）１００を含み、Ｄ−ＦＦ１００の入力端子（Ｄ端子）には、応答パルス信号（エンコーダ応答パルス）が入力される。Ｄ−ＦＦ１００の出力端子（Ｑ端子）はＤ−ＦＦ１０２の入力端子に接続され、Ｄ−ＦＦ１０２の出力端子はＤ−ＦＦ１０４の入力端子に接続されるとともに、ＡＮＤ回路１０６の一方入力端子に接続される。また、Ｄ−ＦＦ１０４の出力端子は、ＡＮＤ回路１０６の他方入力端子に接続される。Ｄ−ＦＦ１００、１０２および１０４の各々のクロック端子（ＣＬＫ端子）には、上述した基準クロック（図４（Ｂ）参照）が入力される。
【００５８】
Ｄ−ＦＦ１００（後述するＤ−ＦＦ１０２および１０４も同じ）は、基準クロックがハイレベルのときの入力端子への入力値（ここでは、エンコーダ応答パルスの値）をラッチし、ラッチした入力値と同じ出力値を出力端子から出力する。ただし、Ｄ−ＦＦ１００では、基準クロックがローレベルときには、入力端子への入力が遮断され、ハイレベルのときの出力値が維持される。したがって、基準クロックがハイレベルのときにしか出力値は変動しない。
【００５９】
Ｄ−ＦＦ１００の出力は、Ｄ−ＦＦ１０２の入力端子に入力される。Ｄ−ＦＦ１０２の出力は、Ｄ−ＦＦ１０４の入力端子およびＡＮＤ回路１０６の一方入力端子の各々に入力される。Ｄ−ＦＦ１０４の出力は、ＡＮＤ回路１０６の他方入力端子に反転して入力される。
【００６０】
図７（Ａ）はエンコーダ応答パルスの時間変化の一例を示すタイミングチャートであり、図７（Ｂ）はＤ−ＦＦ１００の出力の時間変化の一例を示すタイミングチャートであり、図７（Ｃ）はＤ−ＦＦ１０２の出力の時間変化の一例を示すタイミングチャートであり、図７（Ｄ）はＤ−ＦＦ１０４の出力の時間変化の一例を示すタイミングチャートであり、図７（Ｅ）はＤ−ＦＦ１０４の出力のハイレベルとローレベルを反転させた場合の時間変化の一例を示すタイミングチャートであり、図７（Ｆ）はＡＮＤ回路１０６の出力（エッジパルス信号）の時間変化の一例を示すタイミングチャートである。
【００６１】
なお、図７では省略するが、上述したように、ＡＮＤ回路１００、１０２および１０４のクロック端子には、図４（Ｂ）に示した基準クロックが入力される。
【００６２】
図７（Ａ）に示すような時間変化を示すエンコーダ応答パルスがＤ−ＦＦ１００の入力端子に入力されると、Ｄ−ＦＦ１００において、基準クロックで同期化される。したがって、図７（Ｂ）に示すように、エンコーダ応答パルスと同期したパルス信号がＤ−ＦＦ１００の出力端子から出力される。
【００６３】
なお、図７（Ａ）および図７（Ｂ）に示す各パルス信号は完全に同期しているように示してあるが、実際には、基準クロックのパルス幅程度の時間だけ、Ｄ−ＦＦ１００の出力（パルス信号）はエンコーダ応答パルス（応答パルス信号）よりも遅延する。
【００６４】
Ｄ−ＦＦ１００、１０２および１０４は直列的に接続されるため、図７（Ｃ）および図７（Ｄ）に示すように、Ｄ−ＦＦ１０２のおよび１０４の出力はＤ−ＦＦ１００の出力が時間的にずれた（遅れた）パルス信号となる。
【００６５】
ＡＮＤ回路１０６の一方入力端子には、図７（Ｃ）に示すようなＤ−ＦＦ１０２の出力が入力され、ＡＮＤ回路１０６の他方入力端には、図７（Ｅ）に示すようなＤ−ＦＦ１０４の出力を反転させたパルス信号が入力される。したがって、ＡＮＤ回路１０６からは、図７（Ｆ）に示すように、両方の入力がハイレベルとなる場合にハイレベルとなるパルス信号が出力される。つまり、エッジ検出回路８０は、エンコーダ応答パルスの立ち上がりエッジを検出し、この立ち上がりエッジについてのパルス信号（エッジパルス信号）を出力（生成９する。
【００６６】
図８は図５に示した振分回路８２の具体的な内容の一例を示す回路図である。図８に示すように、振分回路８２は、エッジカウンタ１３０およびデマルチプレクサ１３２を含み、エッジカウンタ１３０およびデマルチプレクサ１３２のそれぞれには、エッジ検出回路８０から出力されたエッジパルス信号が入力される。
【００６７】
エッジカウンタ１３０は、エッジパルス信号に含まれるパルスの数をカウントするためのカウンタであり、エッジパルス信号がローレベルからハイレベルに変化するときにカウント値を１加算する。ただし、エッジカウンタ１３０のカウント値の初期値は０に設定される。この第１実施例では、エッジカウンタ１３０は、エッジパルス信号に含まれる各パルスの立ち上がりエッジを検出する毎に、現在のカウント値が示す番号のスリットｎに対応するパルスとして振り分けるための選択信号をデマルチプレクサ１３２に出力するとともに、カウント値を１加算する。
【００６８】
したがって、デマルチプレクサ１３２は、入力されるエッジパルス信号に含まれるパルスの出力先として、選択信号が示すスリットｎについてのパルス数算出回路８６を選択する。このような処理が繰り返され、エッジ検出回路８０から出力されたエッジパルス信号が、振分回路８２によって、スリット毎のスリット別エッジパルス信号に振り分けられる（分離される）。ただし、エッジカウンタ１３０は、スリットの総数ｍ＋１をカウントすると、リセット（初期値に設定）される。
【００６９】
図９（Ａ）はエッジ検出回路８０から出力され振分回路８２に入力されたエッジパルス信号の時間変化の一例を示すタイミングチャートであり、図９（Ｂ）はエッジカウンタ１３０のカウント値の時間変化の一例を示すタイミングチャートであり、図９（Ｃ）はスリット０のエッジパルス信号（スリット別エッジパルス信号）の時間変化の一例を示すタイミングチャートであり、図９（Ｄ）はスリット１のエッジパルス信号の時間変化の一例を示すタイミングチャートである。
【００７０】
図９（Ａ）に示すようなエッジパルス信号が振分回路８２に入力されると、エッジカウンタ１３０は、最初（０番目）のパルスを検出し、その立ち上がりエッジで、スリット０のパルス数算出回路８６ａを選択するための選択信号をデマルチプレクサ１３２に出力し、図９（Ｂ）に示すように、カウント値を１加算する。したがって、図９（Ｃ）に示すようなスリット０のエッジパルス信号がパルス数算出回路８６ａに出力される。
【００７１】
ただし、図９（Ａ）および（Ｃ）からも分かるように、デマルチプレクサ１３２から出力されるスリット０のエッジパルス信号のパルスは、エッジカウンタ１３０からの選択信号に応じてデマルチプレクサ１３２で選択されるため、時間遅れを生じる。したがって、スリット０のエッジパルス信号のパルスは、エッジ検出回路８０から入力されるエッジパルス信号のパルスよりも時間的に遅れている。このことは、他のスリットのエッジパルス信号についても同じである。
【００７２】
続いて、エッジカウンタ１３０は、エッジ検出回路８０から入力されるエッジパルス信号において、１番目（次）のパルスを検出し、その立ち上がりエッジで、スリット１のパルス数算出回路８６ｂを選択するための選択信号をデマルチプレクサ１３２に出力し、図９（Ｂ）に示すように、カウント値を１加算する。したがって、図９（Ｄ）に示すようなスリット１のエッジパルス信号がパルス数算出回路８６ｂに出力される。
【００７３】
なお、図示は省略するが、エッジ検出回路８０から入力されるエッジパルス信号における２番目以降のパルスについても同様に振り分けられる。
【００７４】
図１０はパルス数算出回路８６の具体的な内容の一例を示す回路図である。パルス数算出回路８６（８６ａ，８６ｂ，…，８６ｎ）は、カウント値格納部１５０を含み、カウント値格納部１５０には、特定のスリットｎのエッジパルス信号が入力されるとともに、基準カウント値が入力される。また、パルス数算出回路８６は、Ｄ−ＦＦ１５２を含み、Ｄ−ＦＦ１５２の入力端子にも、特定のスリットｎのエッジパルス信号が入力される。このＤ−ＦＦ１５２のクロック端子には、基準クロックが入力される。さらに、パルス数算出回路８６は、減算器１５６を含み、減算器１５６にも、基準カウント値が入力される。
【００７５】
カウント値格納部１５０は、エッジパルス信号がローレベルからハイレベルに変化するとき、現在の基準カウント値を記憶（更新）する。また、カウント値格納部１５０は、基準カウント値を記憶（更新）するとき、更新する直前まで記憶していた前回の基準カウント値を出力する。
【００７６】
前回の基準カウント値および現在のカウント値は減算器１５４に入力され、減算器１５４は、現在の基準カウント値から前回の基準カウント値を減算した減算値を出力する。カウント値格納部１５０の基準カウント値は、特定のスリットｎのエッジパルス信号がローレベルからハイレベルに変化されるときに更新されるため、減算器１５４から出力される減算値は、モータ３０の回転軸（エンコーダ１６の回転部材）の一周のパルス数ＴＥＮＣｎ＿ｃｏｕｎｔに相当する。
【００７７】
また、Ｄ−ＦＦ１５２の出力端子からは、特定のスリットｎのエッジパルス信号に同期したパルス信号が出力され、マルチプレクサ８８に入力される。このパルス信号は、図５に示したマルチプレクサ８８の選択信号であり、ローレベルからハイレベルに変化するとき、当該特定のスリットｎのパルス数算出回路８６から出力されるパルス数ＴＥＮＣｎ＿ｃｏｕｎｔを選択することが指示される。つまり、選択信号（パルス信号）の変化によって、特定のスリットｎのパルス数算出回路８６から出力されるパルス数ＴＥＮＣｎ＿ｃｏｕｎｔが更新されたことがマルチプレクサ８８に通知される。
【００７８】
図１１（Ａ）は特定のスリットｎのエッジパルス信号の時間変化の一例を示すタイミングチャートであり、図１１（Ｂ）は図５に示した基準カウンタ８４から出力される基準カウント値の時間変化の一例を示すタイミングチャートであり、図１１（Ｃ）はカウント値格納部１５０に格納された基準カウント値（格納カウント値）の時間変化の一例を示すタイミングチャートであり、図１１（Ｄ）はパルス数算出回路８６から出力される選択信号の時間変化を示すタイミングチャートであり、図１１（Ｅ）はパルス数算出回路８６から出力される一周のパルス数ＴＥＮＣｎ＿ｃｏｕｎｔの時間変化の一例を示すタイミングチャートである。
【００７９】
図１１（Ａ）に示すように、特定のスリットｎのエッジパルス信号が変化する場合に、上述したように、パルスが検出される度にカウント値格納部１５０の現在の基準カウント値が更新される。基準カウンタ８４は、基準クロックをカウントする毎に基準カウント値を出力し、したがって、図１１（Ｂ）に示すように、基準クロックに同期して、基準カウント値が変化する。ただし、図１１（Ｂ）では、特定のスリットｎのエッジパルス信号がローレベルからハイレベルに変化するときの基準カウント値を、アルファベットを用いて示してある。また、特定のスリットｎのエッジパルス信号がローレベルからハイレベルに変化するとき以外の基準カウント値は、点を表示することにより、省略してある。
【００８０】
上述したように、カウント値格納部１５０に記憶される基準カウント値は、特定のスリット０のエッジパルス信号がローレベルからハイレベルに変化するときに更新されます。したがって、図１１（Ｃ）に示す例では、格納カウント値は、特定のスリットｎのエッジパルス信号が最初にローベルからハイレベルに変化するときに、ｉからｊに変化され、特定のスリットｎのエッジパルス信号が次にローベルからハイレベルに変化するときに、ｊからｋに変化される。
【００８１】
図１１（Ｄ）に示すように、基準カウント値が更新されるときに、ハイレベルになるパルス信号（選択信号）が出力されるとともに、図１１（Ｅ）に示すように、一周のパルス数ＴＥＮＣｎ＿ｃｏｕｎｔが出力される。図１１（Ｅ）に示すように、選択信号がローレベルからハイレベルに変化するときに、現在の基準カウント値から前回の基準カウント値が減算されることにより、一周のパルス数ＴＥＮＣｎ＿ｃｏｕｎｔが算出（更新）され、算出された一周のパルス数ＴＥＮＣｎ＿ｃｏｕｎｔがマルチプレクサ８８に出力される。一周のパルス数ＴＥＮＣｎ＿ｃｏｕｎｔは、次に選択信号がローレベルからハイレベルに変化するまで維持される。
【００８２】
第１実施例によれば、エンコーダ１６の回転部材に形成される各スリットが一周する毎の回転速度を算出するので、スリットに機械的なばらつきがあっても正確なモータ３０の回転速度を検出することができる。したがって、モータ３０の回転速度を正確に制御することができる。
【００８３】
また、第１実施例によれば、高精度の比較用エンコーダなどの高価な装置を用いる必要がないため、安価である。
【００８４】
なお、この第１実施例では、エンコーダ１６から出力されるエンコーダ応答パルスの立ち上がりエッジを検出して、回転速度を検出するようにしたが、エンコーダ応答パルスの立下りエッジを検出して、回転速度を検出するようにしてもよい。
【００８５】
また、この第１実施例では、エンコーダ１６の回転部材（コードホイール）にスリットを形成するようにしたが、これに限定される必要はない。たとえば、光を透過する透明な材料で回転部材を形成し、その外周部分に光を透過させない塗料を塗布し、スリットに代えて、当該塗料を除去（エッチング）するようにしてもよい。たとえば、第１実施例で説明したスリットおよびスリットに代えて塗料を除去した部分をまとめて、スリット部と呼ぶ。
【００８６】
さらに、この第１実施例では、透過型の光学センサを用いるようにしたが、反射型の光学センサを用いるようにしてもよい。かかる場合には、回転部材の表面を鏡面加工し、発光部から発光される光を回転部材の表面で反射するように構成し、反射される光の有無に応じて応答パルス信号が生成される。この場合、スリットでは、光が反射されないため、たとえば、光が反射されない場合にハイレベルとなり、光が反射される場合にローレベルとなる応答パルス信号が生成される。
【００８７】
さらにまた、この第１実施例では、スリットと光学センサを用いてエンコーダ応答パルスを生成するようにしたが、磁気的にエンコーダ応答パルスを生成するようにしてもよい。
【００８８】
［第２実施例］
第２実施例のモータ制御装置１０は、エンコーダ１６から出力されるエンコーダ応答パルスの立ち上がりエッジおよび立下りエッジの両方を検出して、回転速度を検出するようにした以外は、第１実施例のモータ制御装置１０と同じであるため、異なる内容について説明し、重複した内容については説明を省略する、または、簡単に説明することにする。
【００８９】
図１２は第２実施例のエッジ検出回路８０の具体的な内容を示す回路図である。図１２に示すように、第２実施例のエッジ検出回路８０は、第１実施例のエッジ検出回路８０において、ＡＮＤ回路１０８およびＯＲ回路１１０がさらに設けられる。
【００９０】
ＡＮＤ回路１０８の一方入力端子には、Ｄ−ＦＦ１０２の出力端子が接続される。また、ＡＮＤ回路１０８の他方入力端子には、Ｄ−ＦＦ１０４の出力端子が接続される。
【００９１】
この第２実施例のエッジ検出回路８０では、Ｄ−ＦＦ１０２の出力は、Ｄ−ＦＦ１０４およびＡＮＤ回路１０６に加えて、ＡＮＤ回路１０８の一方入力端子に反転して入力される。また、Ｄ−ＦＦ１０４の出力は、ＡＮＤ回路１０６に加えて、ＡＮＤ回路１０８の他方入力端子に入力される。ＡＮＤ回路１０６の出力は、ＯＲ回路１１０の一方入力端子に入力され、ＡＮＤ回路１０８の出力は、ＯＲ回路１１０の他方入力端子に入力される。
【００９２】
図１３（Ａ）はエンコーダ応答パルスの時間変化の一例を示すタイミングチャートであり、図１３（Ｂ）はＤ−ＦＦ１００の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｃ）はＤ−ＦＦ１０２の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｄ）はＤ−ＦＦ１０４の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｅ）はＤ−ＦＦ１０４の出力のハイレベルとローレベルを反転させた場合の時間変化の一例を示すタイミングチャートであり、図１３（Ｆ）はＡＮＤ回路１０６の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｇ）はＤ−ＦＦ１０２の出力のハイレベルとローレベルを反転させた場合の時間変化の一例を示すタイミングチャートであり、図１３（Ｈ）はＡＮＤ回路１０８の出力の時間変化の一例を示すタイミングチャートであり、図１３（Ｉ）はＯＲ回路１１０の出力の時間変化の一例を示すタイミングチャートである。
【００９３】
なお、図１３（Ａ）〜図１３（Ｆ）は、図７（Ａ）〜図７（Ｆ）に示したタイミングチャートと同じであるため、重複した説明は省略する。
【００９４】
ＡＮＤ回路１０８の一方入力端子には、図１３（Ｇ）に示すようなＤ−ＦＦ１０２の出力を反転させたパルス信号が入力され、ＡＮＤ回路１０８の他方入力端には、図１３（Ｄ）に示すようなＤ−ＦＦ１０４の出力が入力される。したがって、ＡＮＤ回路１０８からは、図１３（Ｈ）に示すように、両方の入力がハイレベルとなる場合にハイレベルとなるパルス信号が出力される。つまり、エンコーダ応答パルスの立下りエッジを検出し、この立下りエッジについてのエッジパルス信号が出力される。
【００９５】
したがって、ＯＲ回路１１０は、図１３（Ｉ）に示すように、ＡＮＤ回路１０６の出力がハイレベルである場合と、ＡＮＤ回路１０８の出力がハイレベルである場合に、ハイレベルとなるパルス信号（エッジパルス信号）を出力する。
【００９６】
このように、第２実施例では、エッジ検出回路８０で、エンコーダ応答パルスの立ち上がりエッジと立下りエッジについてのエッジパルス信号が生成される。したがって、第２実施例においては、エッジ検出回路８０の後段の振分回路８２は、各スリットのみならず、各スリットについて、立ち上がりエッジおよび立下りエッジのそれぞれのパルスに振り分ける。したがって、第２実施例においては、各スリットに対応して、立ち上がりエッジについてのエッジパルス信号の一周のパルス数を算出するパルス数算出回路８６および立下りエッジについてのエッジパルス信号の一周のパルス数を算出するパルス数算出回路８６が必要である。したがって、各スリットについての立ち上がりエッジに対応する一周のパルス数が算出されるとともに、各スリットについての立下りエッジに対応する一周のパルス数が算出される。このため、マルチプレクサ８８では、これらのパルス数が選択的に回転速度算出回路９０に出力される。
【００９７】
第２実施例においても、第１実施例と同様に、モータ３０の回転速度を正確に制御することができる。
【００９８】
また、第２実施例によれば、エンコーダ応答パルスの立ち上がりエッジおよび立下がりエッジの両方についてのエッジパルス信号を生成し、各スリットにおいて、立ち上がりエッジについてのエッジパルス信号および立下りエッジについてのエッジパルス信号のそれぞれに基づいて回転速度を算出するので、第１実施例に比べて、フィードバックされる回転速度の更新頻度を２倍にすることができる。したがって、モータ３０の回転速度の変化に対して迅速に対応することができる。このため、比較的短時間で、モータ３０の回転速度を目標値に一致させることができる。
【００９９】
なお、第１実施例では、エンコーダ応答パルスの立ち上がりエッジに代えて、立下りエッジに基づいて回転速度を検出してもよいことについて言及したが、この場合には、図１２に示したエッジ検出回路８０において、ＡＮＤ回路１０６およびＯＲ回路１１０を省略したエッジ検出回路８０を第１実施例の速度検出回路５６に適用し、ＡＮＤ回路１０８の出力を振分回路８２に入力するようにすればよい。
【０１００】
［第３実施例］
第３実施例のモータ制御装置１０は、選択した特定の１または複数のスリットについてのスリット別エッジパルス信号に基づいて回転速度を算出するようにした以外は、第１実施例と同じであるため、重複した説明は省略する。
【０１０１】
第３実施例の回転速度算出回路９０は、予め選択された特定の１または複数のスリットに対応するパルス数算出回路８６から出力される一周のパルス数ＴＥＮＣｎ＿ｃｏｕｎｔに基づいて回転速度を検出する。たとえば、いずれのパルス数算出回路８６の出力（パルス数ＴＥＮＣｎ＿ｃｏｕｎｔ）を選択するかについては、ＣＰＵ１２から指示される。
【０１０２】
この場合、すべてのスリットについてのパルス数算出回路８６の出力に基づいて回転速度を検出する場合に比べてフィードバックされる回転速度の個数が少なくなるため、駆動電圧の更新頻度は減少するが、フィードバックされる回転速度はスリットの機械的なばらつきに影響されない。
【０１０３】
つまり、この第３実施例においても、第１実施例と同様に、モータ３０の回転速度を正確に制御することができる。
【０１０４】
たとえば、ＣＰＵ１２からの指示に従って、モータ３０を制御するモードを変更可能に構成しておき、モータ３０の駆動を開始した当初は、第１実施例で示したように、すべてのスリットについてのエッジパルス信号についての回転速度を算出する。そして、モータ３０の駆動を開始してから一定時間が経過し、モータ３０の回転速度が安定したと判断した場合に、一部のスリットについてのスリット別エッジパルス信号についてのみ回転速度を算出する。このように、モータ制御回路１４（速度検出回路５６、回転速度算出回路９０）の動作（モード）を切り替えることができる。つまり、計算処理の負荷を軽減することができる。また、モータ３０の制御の自由度を上げることができる。
【０１０５】
この場合、特定の１または複数のスリットは、任意に選択することができる。たとえば、複数のスリットを選択する場合には、振分回路８２でエンコーダ応答パルスをスリット毎に振り分けた場合のスリットｎの番号ｎが奇数または偶数を選択することができる。または、スリットｎの番号ｎを所定数飛ばしで選択することもできる。
【０１０６】
なお、第３実施例では、モータ３０の駆動を開始してから一定時間が経過したときに、モータ３０の回転速度が安定したとＣＰＵ１２が判断し、動作を切り替えるようにしたが、これに限定される必要はない。
【０１０７】
たとえば、回転速度算出回路９０においてプロセッサが算出した回転速度を時系列に従ってメモリに記憶しておき、メモリに記憶された回転速度が一定値またはほぼ一定値に収束した場合に、プロセッサがモータ３０の回転速度が判定したと判断して、動作を切り替えるようにしてもよい。
【０１０８】
また、第２実施例の変形は、第３実施例にも適用可能である。かかる場合には、スリットのみならず、立ち上がりエッジまたは立下りエッジについても選択可能である。
【０１０９】
［第４実施例］
第４実施例のモータ制御装置１０は、回転速度からスリットの異常を判断し、異常であることを判断したスリットについてのスリット別エッジパルス信号に基づく回転速度の検出を停止するようにした以外は、第１実施例と同じであるため、重複した説明は省略する。
【０１１０】
たとえば、エンコーダ１６の回転部材にごみ（塵）が付着すると、スリットの全部または一部を塞いでしまうことがある。この場合、エンコーダ応答パルスにおいて、当該スリットに対応するパルスに異常が発生する。
【０１１１】
したがって、第４実施例では、回転速度算出回路９０では、算出した回転速度がスリット毎にメモリに記憶される。回転速度算出回路９０のプロセッサは、時間的に前後する回転速度と比較して所定値以上異なる値を示す回転速度を検出すると、当該回転速度の算出に使用したパルス数ＴＥＮＣｎ＿ｃｏｕｎｔに対応するスリットｎに異常が発生していると判断する。プロセッサは、スリットｎに異常が発生していると判断した後では、このスリットｎに対応するパルス数ＴＥＮＣｎ＿ｃｏｕｎｔを用いた回転速度の算出を行わない（停止する）。ただし、回転速度を算出するが、算出した回転速度のフィードバックを停止するようにしてもよい。
【０１１２】
第４実施例においても、第１実施例と同様に、モータ３０の回転速度を正確に制御することができる。
【０１１３】
また、第４実施例によれば、スリットｎに異常が発生した場合には、当該スリットｎのエッジパルス信号に基づいて回転速度を算出するのを停止するため、誤って検出された回転速度に基づいてモータ３０の回転速度がフィードバック制御されるのを防止することができる。
【０１１４】
なお、第４実施例では、算出した現在の回転速度を前後の回転速度と比較することにより、現在の回転速度に対応するスリットｎに異常が発生していることを検出するようにしたが、これに限定される必要はない。算出した現在の回転速度を直前に算出した回転速度と比較して、所定値以上の変化があった場合に、現在の回転速度に対応するスリットｎに異常が発生していることを検出するようにしてもよい。
【０１１５】
また、第２実施例の変形は、第４実施例に適用することができる。かかる場合には、たとえば、スリットｎの立ち上がりエッジまたは／および立下りエッジのエッジパルス信号に基づく回転速度に基づいて当該スリットｎに異常が発生したことが判断される。
【０１１６】
なお、上述の各実施例で挙げた具体的な数値および信号波形等は一例であり、実際の製品に応じて適宜変更することが可能である。たとえば、モータ３０の駆動電圧を除くパルス信号の波形は、ハイレベルとローレベルが逆であってもよい。
【符号の説明】
【０１１７】
１０  …モータ制御装置
１２  …ＣＰＵ
１４  …モータ制御回路
１６  …エンコーダ
３０  …モータ
５２  …演算回路
５４  …モータ駆動パルス生成回路
５６  …速度検出回路
【図１】
2018011434.tif 000003
【図２】
2018011434.tif 000004
【図３】
2018011434.tif 000005
【図４】
2018011434.tif 000006
【図５】
2018011434.tif 000007
【図６】
2018011434.tif 000008
【図７】
2018011434.tif 000009
【図８】
2018011434.tif 000010
【図９】
2018011434.tif 000011
【図１０】
2018011434.tif 000012
【図１１】
2018011434.tif 000013
【図１２】
2018011434.tif 000014
【図１３】
2018011434.tif 000015