(57)【要約】【課題】  装置やモータの起動直後など、パルス信号の１周期の区間が検出されるまでは精度の良い速度情報を取得することができなかった。一方で、常に１／４周期のパルス信号に基づいて速度情報を得ようとすると、パルス信号に劣化が生じたときに算出される速度情報の精度が良くないため、あまり好ましくない。【解決手段】エンコーダの両相両エッジをカウントし、１周期に満たない際はカウント値に応じて補間演算を行うことで駆動速度を取得して、高精度なモータ制御を可能とする。【選択図】  図２
2012125116.tif 000002
【特許請求の範囲】
【請求項１】
モータの駆動速度に対応する第１のパルス信号を出力する第１の出力工程と、
前記モータの駆動速度に対応し、前記第１のパルス信号と位相がずれている第２のパルス信号を出力する第２の出力工程と、
前記第１のパルス信号と前記第２のパルス信号のエッジの数をカウントする検出工程と、
前記第１のパルス信号の立ち上がりエッジから他のエッジまでの所要時間と当該他のエッジに対応するカウント値に基づいて、前記モータの速度を演算する演算工程とを有することを特徴とするモータ制御方法。
【請求項２】
前記第１のパルス信号と前記第２のパルス信号は１／４周期位相がずれていることを特徴とする請求項１に記載のモータ制御方法。
【請求項３】
前記検出工程で検出したエッジの検出回数を記憶する記憶工程を更に有することを特徴とする請求項１又は２に記載のモータ制御方法。
【請求項４】
前記記憶工程では、前記第１のパルス信号の立ち上がりエッジから前記検出工程で検出した他のエッジまでの所要時間を其々記憶することを特徴とする請求項３に記載のモータ制御方法。
【請求項５】
前記演算工程では、前記記憶工程によって記憶した所要時間と前記カウントに対応した値とを用いて演算を行うことを特徴とする請求項４に記載のモータ制御方法。
【請求項６】
前記演算工程では、最後に記憶した所要時間と前記検出工程で１つ前のエッジを検出した時に記憶した所要時間との比と、前記記憶工程によって記憶した各所要時間の合計値とを用いて演算を行うことを特徴とする請求項４又は５に記載のモータ制御方法。
【請求項７】
前記演算工程では、最後に記憶した所要時間と前記検出工程で１つ前のエッジを検出した時に記憶した所要時間との比と、直前に前記検出工程で検出した際に記憶した所要時間とを用いて演算を行うことを特徴とする請求項４又は５に記載のモータ制御方法。
【請求項８】
前記第１又は第２の出力工程において１周期のパルス信号を出力した後は、前記演算工程をスキップすることを特徴とする請求項１乃至６のいずれか１項に記載のモータ制御方法。
【請求項９】
前記検出工程では前記第１のパルス信号の立ち上がりエッジ及び立ち下がりエッジと、前記第２のパルス信号の立ち上がりエッジ及び立ち下がりエッジとをカウントすることを特徴とする請求項１又は２に記載のモータ制御方法。
【請求項１０】
モータの駆動速度に対応する第１のパルス信号を発生する第１の出力手段と、
前記モータの駆動速度に対応し、前記第１のパルス信号と位相がずれている第２のパルス信号を発生する第２の出力手段と、
前記第１のパルス信号と前記第２のパルス信号のエッジの数をカウントする検出手段と、
前記第１のパルス信号の立ち上がりエッジから他のエッジまでの所要時間と当該他のエッジに対応するカウント値に基づいて、前記モータの速度を演算する演算手段とを有することを特徴とするモータ制御装置。
【請求項１１】
コンピュータを、
モータの駆動速度に対応する第１のパルス信号を発生する第１の出力手段と、
前記モータの駆動速度に対応し、前記第１のパルス信号と位相がずれている第２のパルス信号を発生する第２の出力手段と、
前記第１のパルス信号と前記第２のパルス信号のエッジの数をカウントする検出手段と、
前記第１のパルス信号の立ち上がりエッジから他のエッジまでの所要時間と当該他のエッジに対応するカウント値に基づいて、前記モータの速度を演算する演算手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータを制御するために使用するエンコーダから出力されるパルス信号の立ち上がりタイミング及び立ち下がりタイミングを用いてモータの速度を検出するモータ制御装置及びモータ制御方法、プログラムに関する。
【背景技術】
【０００２】
モータを制御する際の制御情報を得るためにエンコーダ（回転検出器）を使用するのが一般的である。エンコーダから出力されるパルス信号の１周期の長さ（所要時間）は、その時点の速度情報に対応する。よって、一般にパルス信号の立ち上がりから次の立ち上がりまでの１周期をカウントして使用する片エッジサンプル方式が用いられる。しかし、モータ制御方法は高精度化の要求が進んでおり、片エッジサンプル方式だけでは、求められる要求性能を満たすことは難しくなりつつある。そこで、精度を出すため両相両エッジ（位相差が約１／４周期である２つのパルス信号のエッジ）の情報を使う方式が採用されつつある。両相両エッジの情報を使う方式において、１周期に満たない状態でのエンコーダから出力されるパルス信号からの速度情報の算出は、エンコーダの両相両エッジを順次検出することで、スリット間隔の１／４に対応する時間と距離に基づいて行っている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−２１９６１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
図１（ａ）は、エンコーダの両相両エッジを順次検出することで、１／４周期のパルス信号の発生毎に速度情報を算出するモデル（特許文献１）を示している。例えば、装置やモータの起動直後など、パルス信号の１周期の区間が検出されるまでは精度の良い速度情報を取得することができなかった。一方で、常に１／４周期のパルス信号に基づいて速度情報を得ようとすると、パルス信号に劣化が生じたときにパルス信号のデューティー比がくずれ算出される速度情報の精度が良くない場合があるため、あまり好ましくない。本発明はこのような問題点に鑑みてなされたものであって、パルス信号が１周期に満たない状態での高精度なモータ駆動制御を目的とするモータ制御方法を提供するものである。
【課題を解決するための手段】
【０００５】
上記課題を解決するために本発明に係るモータ制御方法は、モータの駆動速度に対応する第１のパルス信号を発生する第１の信号発生工程と、前記モータの駆動速度に対応し、前記第１のパルス信号と位相がずれている第２のパルス信号を発生する第２の信号発生工程と、前記第１のパルス信号と前記第２のパルス信号のエッジの数をカウントする検出工程と、前記第１のパルス信号の立ち上がりエッジから他のエッジまでの所要時間と当該他のエッジに対応するカウント値に基づいて、前記モータの速度を演算する演算工程とを有することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、エンコーダから出力される１周期のパルス信号が検出される前に、速度情報を得ることが可能になり、１／２周期区間（３つのエッジが検出された区間）、３／４周期区間（４つのエッジが検出された区間）ではこれまでの速度情報を用いて１周期分に補間演算するので、１／４周期区間（２つのエッジが検出された区間）のパルス信号の劣化の影響を受けることなく、精度の良くモータの速度情報を取得することが可能になる。
【図面の簡単な説明】
【０００７】
【図１】（ａ）従来のエンコーダ波形モデル、（ｂ）実施形態１における速度情報を補間算出するエンコーダ波形モデル、（ｃ）実施形態２と３における速度情報を補間算出するエンコーダ波形モデルを示すタイミングチャートである。
【図２】実施形態１と実施形態２のブロック図である。
【図３】実施形態１における速度情報演算処理のフローチャートである。
【図４】実施形態２における速度情報演算処理のフローチャートである。
【図５】実施形態３における速度情報演算処理のフローチャートである。
【発明を実施するための形態】
【０００８】
＜実施形態１＞
以下、本発明に係る一実施形態について、図面を参照しながら説明する。
【０００９】
図２は、本発明に係るモータ制御装置の概略構成を示すブロック図である。エンコーダ１０１はモータ１１３が駆動されることによりＡ相のパルス信号（第１のパルス信号、以下、単にＡ相と称す）と、Ａ相から１／４周期位相がずれているＢ相のパルス信号（第２のパルス信号、以下、単にＢ相と称す）２つの信号をエンコーダ信号制御部１０２へ出力する（第１の出力工程、第２の出力工程）。２つのパルス信号はモータの駆動速度に対応して周期が変化する。エンコーダ信号制御部１０２内にはエンコーダ信号のエッジを検出するエッジ検出部１０３が配置されている。
【００１０】
エッジ検出部１０３では、各相の各エッジ、つまりＡ相の立ち上がりエッジ検出１０４、Ａ相の立ち下がりエッジ検出１０５、Ｂ相の立ち上がりエッジ検出１０６、Ｂ相の立ち下がりエッジ検出１０７が独立に行われ、各エッジに同期した信号を生成する。そして、各エッジに同期した信号はエッジ間隔カウント部１０８と周期情報記憶部１０９に送られる。
【００１１】
エッジ間隔カウント部１０８では、Ａ相の立ち上がりエッジ及び立ち下がりエッジと、Ｂ相の立ち上がりエッジ及び立ち下がりエッジの４種類のエッジ区間の組み合わせから１／４周期毎にエッジ間隔を其々カウントする。周期情報記憶部１０９では、１／４周期毎にエッジの検出回数を加算して上書き保持する。従って、Ａ相の立ち上がりから他のエッジまでの所要時間を其々記憶していることに相当する。
【００１２】
速度情報記憶部１１０は速度情報を記憶する。ここで、パルス信号を出力するエンコーダの構成によって１周期および１／４周期毎のモータの回転角は定められるので、１周期又は１／４周期モータを回転するのに要する所要時間はモータの速度と対応関係がある。ただし、所要時間が大きくなるほどモータの速度は低下する。以下の説明では、１周期に対応する回転角だけモータを回転させる所要時間を速度情報として、１／４〜３／４周期に対応する回転角だけモータを回転させる所要時間を部分速度情報として説明する。
【００１３】
また、速度情報記憶部１１０では、まず周期情報記憶部１０９からエッジの検出回数を読み出し、Ａ相若しくはＢ相が１周期のパルス信号を生成する前であるか判断する。１周期のパルス信号に満たない場合は、４種類のエッジ区間の組み合わせから１／４周期毎にエッジ間隔をカウントした値を加算して上書き保持する。
【００１４】
Ａ相若しくはＢ相が１周期のパルス信号を生成した後は、１／４周期毎のエッジ間隔が確定するたびに、更新された１周期分のエッジ間隔をカウントした値を上書き保持する（速度情報演算部１１１による演算をスキップする）。
【００１５】
図３は、速度情報演算部１１１による処理のフローチャートである。速度情報演算部１１１では、まず周期情報記憶部１０９からエッジの検出回数を読み出し、Ａ相若しくはＢ相が１周期のパルス信号を生成する前であるか判断する（Ｓ１０１ステップ）。１周期のパルス信号に満たない場合、３／４周期区間（４つのエッジが検出された区間）が経過したか判断する（Ｓ１０２ステップ）。３／４周期区間が経過している場合、速度情報記憶部１１０に保持される部分速度情報に４／３を乗算し、補間演算を行う（Ｓ１０３ステップ）。
【００１６】
３／４周期区間を経過していない場合、１／２周期区間（３つのエッジが検出された区間）が経過したか判断する（Ｓ１０４ステップ）。１／２周期区間が経過している場合、速度情報記憶部１１０に保持される部分速度情報に２を乗算し、補間演算を行う（Ｓ１０５ステップ）。
【００１７】
１／２周期区間を経過していない場合、１／４周期区間（２つのエッジが検出された区間）が経過したか判断する（Ｓ１０６ステップ）。１／４周期区間が経過している場合、速度情報記憶部１１０に保持される部分速度情報に４を乗算し、補間演算を行う（Ｓ１０７ステップ）。１／４周期区間を経過していない場合、補間演算は行わない。
【００１８】
また、Ｓ１０３、１０５、１０７ステップで補間演算した結果の速度情報は速度情報記憶部１１０に保持する。Ａ相若しくはＢ相が１周期のパルス信号を生成した後は、補間演算は行わなくてもよい。
【００１９】
図１（ｂ）は、１／４周期のパルス信号の発生毎に得られる各速度情報から補間演算するモデルを示している。例えば、Ａ相の立ち上がりエッジからＢ相の立ち上がりエッジの１／４周期区間（２つのエッジが検出された区間）では速度情報Ｖ１を取得し、Ｖ１に４を乗算し、補間速度情報Ｖｉを得る。そして、Ａ相の立ち上がりエッジからＡ相の立ち下がりエッジの１／２周期区間（３つのエッジが検出された区間）では速度情報Ｖ２を取得し、Ｖ２に２を乗算し、補間速度情報Ｖｉを得る。また、Ａ相の立ち上がりエッジからＢ相の立ち下がりエッジの３／４周期区間（４つのエッジが検出された区間）では速度情報Ｖ３を取得し、Ｖ３に４／３を乗算し、補間速度情報Ｖｉを得る。
【００２０】
サーボコントローラ１１２は、所定間隔のサーボ周期になるとサーボに必要な速度情報を得るために速度情報記憶部１１０に保持される速度情報を読み出す。サーボコントローラ１１２は得られた速度情報を基に演算を行い、モータ制御情報をモータドライバ１１３に出力する。モータドライバ１１２は入力された制御情報に従ってモータ１１４に出力を行い、モータ１１４は駆動される。
【００２１】
＜実施形態２＞
以下、本発明に係るモータ制御装置及び制御方法並びにそのモータ制御方法を実施する実施の一形態について、図面を参照しながら説明する。なお、実施形態１と同一機能を有する構成には同一符号を付すとともに、構成的、機能的に変わらないものについてはその説明を省略する。本実施形態では、最後に記憶した部分速度情報と１つ前のエッジを検出した時に記憶した部分速度情報との比と、各エッジを検出した際に記憶した各部分速度情報の合計値とを用いて速度情報の演算を行う。
【００２２】
実施形態２の速度情報記憶部１１０では、４種類のエッジ区間の組み合わせから１／４周期毎にエッジ間隔をカウントした値を保持する。また保持する周期毎のカウント値は１／４周期目、１／２周期目、３／４周期目、１周期目以降の４種類とする。１周期目以降のカウント値には、１／４周期毎のエッジ間隔が確定するたびに、更新された１周期分のエッジ間隔をカウントした値を上書き保持する。
【００２３】
図４は、速度情報演算部１１１における処理のフローチャートである。図１（ｃ）は、１／４周期のパルス信号の発生毎に得られる各速度情報から補間演算するモデルを示している。
【００２４】
速度情報演算部１１１では、まず周期情報記憶部１０９からエッジの検出回数を読み出し、Ａ相若しくはＢ相が１周期のパルス信号を生成する前であるか判断する（Ｓ２０１ステップ）。１周期のパルス信号に満たない場合、３／４周期区間（４つのエッジが検出された区間）が経過したか判断する（Ｓ２０２ステップ）。
【００２５】
３／４周期区間が経過している場合、速度情報記憶部１０９に保持される部分速度情報を読み出し、以下の式で速度値を補間する（Ｓ２０３ステップ）。
Ｖｉ  ＝  （Ａ＋Ｂ＋Ｃ）＋（Ａ＋Ｂ＋Ｃ）／３×Ｃ／Ｂ  ……（１）
Ｖｉ：補間速度情報
Ａ：１／４周期目の部分速度情報
Ｂ：１／２周期目の部分速度情報
Ｃ：３／４周期目の部分速度情報
【００２６】
ここで、（１）式の補間演算について説明する。第１項では３／４周期までの部分速度情報を加算し、第２項では、１／４周期の平均値を出し、その値に１つ前の部分速度情報（１／２周期目）に対しての現在の部分速度情報（３／４周期目）の比を乗算し、補正された１／４周期分の部分速度情報を得ている。第１項と第２項の加算で１周期に補間演算を行っている。
【００２７】
３／４周期区間を経過していない場合、１／２周期区間（３つのエッジが検出された区間）が経過したか判断する（Ｓ２０４ステップ）。
なお、１／２周期区間が経過している場合、速度情報記憶部１０９に保持される部分速度情報を読み出し、以下の式で速度値を補間する（Ｓ２０５ステップ）。
Ｖｉ  ＝  （Ａ＋Ｂ）＋（Ａ＋Ｂ）×Ｂ／Ａ  ……（２）
Ｖｉ：補間速度情報
Ａ：１／４周期目の部分速度情報
Ｂ：１／２周期目の部分速度情報
【００２８】
ここで、（２）式の補間演算について説明する。第１項では１／２周期までの部分速度情報を加算し、第２項では、１／４周期と１／２周期を加算し、その値に１つ前の部分速度情報（１／４周期目）に対しての現在の部分速度情報（１／２周期目）の比を乗算し、補正された１／２周期分の部分速度情報を得ている。第１項と第２項の加算で１周期に補間演算を行っている。
【００２９】
１／２周期区間を経過していない場合、１／４周期区間（２つのエッジが検出された区間）が経過したか判断する（Ｓ２０６ステップ）。１／４周期区間が経過している場合、速度情報記憶部１１０に保持される１／４周期目の部分速度情報Ａに４を乗算し、補間演算を行う（Ｓ２０７ステップ）。なお、１／４周期区間を経過していない場合、補間演算は行わない。また、Ｓ２０３、２０５、２０７ステップで補間演算した結果の値は速度情報記憶部１１０に保持される１周期以降の速度情報に上書き保持する。Ａ相若しくはＢ相が１周期のパルス信号を生成した後は、補間演算を行なわなくてもよい。
【００３０】
サーボコントローラ１１２は、所定間隔のサーボ周期になるとサーボに必要な速度情報を得るために速度情報記憶部１１０に保持される速度情報を読み出す。サーボコントローラ１１２は得られた速度情報を基に演算を行い、モータ制御情報をモータドライバ１１３に出力する。モータドライバ１１２は入力された制御情報に従ってモータ１１４に出力を行い、モータ１１４は駆動される。
【００３１】
＜実施形態３＞
以下、本発明に係るモータ制御装置及び制御方法並びにそのモータ制御方法を実施する実施の一形態について、図面を参照しながら説明する。なお、実施形態１、２と同一機能を有する構成には同一符号を付すとともに、構成的、機能的に変わらないものについてはその説明を省略する。本実施形態では、最後に記憶した部分速度情報と１つ前のエッジを検出した時に記憶した部分速度情報との比と、直前に検出した際に記憶した部分速度情報とを用いて演算を行う。
【００３２】
図４は、速度情報演算部１１１における処理のフローチャートである。図１（ｃ）は、１／４周期のパルス信号の発生毎に得られる各部分速度情報から補間演算するモデルを示している。
【００３３】
速度情報演算部１１１では、まず周期情報記憶部１０９からエッジの検出回数を読み出し、Ａ相若しくはＢ相が１周期のパルス信号を生成する前であるか判断する（Ｓ３０１ステップ）。１周期のパルス信号に満たない場合、３／４周期区間（４つのエッジが検出された区間）が経過したか判断する（Ｓ３０２ステップ）。
３／４周期区間が経過している場合、速度情報記憶部１０９に保持される部分速度情報を読み出し、以下の式で速度値を補間する（Ｓ３０３ステップ）。
Ｖｉ  ＝  （Ａ＋Ｂ＋Ｃ）＋Ｃ×Ｃ／Ｂ  ……（３）
Ｖｉ：補間速度情報
Ａ：１／４周期目の部分速度情報
Ｂ：１／２周期目の部分速度情報
Ｃ：３／４周期目の部分速度情報
【００３４】
ここで、（３）式の補間演算について説明する。第１項では３／４周期までの部分速度情報を加算し、第２項では、現在の部分速度情報（３／４周期目）に１つ前の部分速度情報（１／２周期目）に対しての現在の部分速度情報（３／４周期目）の比を乗算し、補正された１／４周期分の部分速度情報を得ている。第１項と第２項の加算で１周期に補間演算を行っている。
【００３５】
３／４周期区間を経過していない場合、１／２周期区間（３つのエッジが検出された区間）が経過したか判断する（Ｓ３０４ステップ）。
１／２周期区間が経過している場合、速度情報記憶部１０９に保持される部分速度情報を読み出し、以下の式で速度値を補間する（Ｓ３０５ステップ）。
Ｖｉ  ＝  （Ａ＋Ｂ）＋Ｂ×Ｂ／Ａ×２  ……（４）
Ｖｉ：補間速度情報
Ａ：１／４周期目の部分速度情報
Ｂ：１／２周期目の部分速度情報
【００３６】
ここで、（４）式の補間演算について説明する。第１項では１／２周期までの部分速度情報を加算し、第２項では、現在の部分速度情報（１／２周期目）に１つ前の部分速度情報（１／４周期目）に対しての現在の部分速度情報（１／２周期目）の比を乗算し、その値に２を乗算し、補正された１／２周期分の部分速度情報を得ている。第１項と第２項の加算で１周期に補間演算を行っている。
【００３７】
１／２周期区間を経過していない場合、１／４周期区間（２つのエッジが検出された区間）が経過したか判断する（Ｓ３０６ステップ）。１／４周期区間が経過している場合、速度情報記憶部１１０に保持される１／４周期目の部分速度情報Ａに４を乗算し、補間演算を行う（Ｓ３０７ステップ）。１／４周期区間を経過していない場合、補間演算は行わない。
【００３８】
また、Ｓ３０３、３０５、３０７ステップで補間演算した結果の値は速度情報記憶部１１０に保持される１周期以降の速度情報に上書き保持する。Ａ相若しくはＢ相が１周期のパルス信号を生成した後は、補間演算を行わなくてもよい。
【００３９】
上述の実施形態のモータ制御装置の各部の概略構成図は、回路や機能手段の関係を説明するためのものであって、各構成の位置関係を制限するものではない。
【００４０】
また、前述の各実施例の処理は、複数のハードウェアとソフトウエアの協同によって実現するようにしてもよい。この場合、ネットワーク又は各種記憶媒体を介して取得したソフトウエア（プログラム）をコンピュータ等の処理装置（ＣＰＵ、プロセッサ）にて実行することで実現できる。
【００４１】
また、本発明は前述した実施例の機能をコンピュータに実現させるプログラムを記憶した記憶媒体を、システム或いは装置に供給することによって実現してもよい。
【図１】
2012125116.tif 000003
【図２】
2012125116.tif 000004
【図３】
2012125116.tif 000005
【図４】
2012125116.tif 000006
【図５】
2012125116.tif 000007