(57)【特許請求の範囲】
【請求項１】
ステッピングモータのマイクロステップ駆動を行うステッピングモータ駆動装置において、
ステッピングモータの移動量を指示する指示手段と、
該指示手段により指示されたモータ移動量に応じた個数のモータ駆動パルスを出力する制御手段と、
前記モータ駆動パルスに応じてステッピングモータを駆動するモータドライブ回路と、
ステッピングモータのフルステップ角度内の各マイクロステップ角度に対する実移動角度と理想移動角度との差に基づいて、当該理想移動角度に最も近い角度の実移動角度を呈するモータ駆動パルス数を当該マイクロステップ角度に対応する補正パルス数として記憶する補正パルス数記憶手段とを備え、
前記制御手段は、ステッピングモータのフルステップ角度より小さいマイクロステップ角度のマイクロステップ駆動のために、当該マイクロステップ角度に対応して前記補正パルス数記憶手段に記憶された補正パルス数のモータ駆動パルスを前記モータドライブ回路へ出力し、
前記補正パルス数記憶手段は、各位相位置に対応して、当該位相位置から次のフルステップ境界までの移動に要する第１の補正パルス数と、フルステップ境界から当該位相位置までの移動に要する第２の補正パルス数とを記憶すること
を特徴とするステッピングモータ駆動装置。
【請求項２】
前記モータドライブ回路は、現在の位相位置を表す位相検出信号を前記制御手段に供給し、前記制御手段は、前記位相検出信号に基づいて前記移動量を、現在の位相位置から次のフルステップ境界位置までのマイクロステップ角度である第１の角度と、フルステップ角度の整数倍の角度である第２の角度と、残りの角度であるマイクロステップ角度である第３の角度とに分割し、該第１および第３の角度について前記補正パルス数記憶手段を参照して補正パルス数を求めること
を特徴とする請求項１に記載のステッピングモータ駆動装置。
【請求項３】
１フルステップ角度内の各位相位置における理想移動角度に対する実移動角度を検出する手段と、該手段により得られた理想移動角度と実移動角度の差に基づいて前記補正パルス数を決定する手段とを備えたこと
を特徴とする請求項１または２に記載のステッピングモータ駆動装置。
【請求項４】
前記補正パルス数を決定する手段は、ステッピングモータの電源投入時ごとに前記補正パルス数を決定すること
を特徴とする請求項３に記載のステッピングモータ駆動装置。
【請求項５】
前記補正パルス数記憶手段は、前記実移動角度を検出する手段により得られた前記理想移動角度と実移動角度の差に基づいて決定された前記補正パルス数を記憶すること
を特徴とする請求項３または４に記載のステッピングモータ駆動装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ステッピングモータの駆動装置に関し、特に、マイクロステップ駆動を行うステッピングモータの回転位置精度を向上させることができるステッピングモータの駆動装置に関する。
【０００２】
【従来の技術】
従来、ステッピングモータを駆動する際、移動角度の分解能の向上および振動防止の為にマイクロステップ駆動を行う場合がある。マイクロステップ駆動とは、モータの各相の巻線電流を段階的に制御する駆動方式である。
【０００３】
このマイクロステップ駆動について、２相励磁バイポーラ駆動の場合を例にして、説明する。図１（ａ）（ｂ）にマイクロステップ時のＡ相およびＢ相巻線電流、図１（ｃ）に移動角度のグラフを示す。
【０００４】
ステッピングモータのトルクおよびび角度特性が正弦波状であれば、図１（ａ）（ｂ）に示すように、制御回路によって１フルステップを幾つかに分割した正弦波の巻線電流を流すことにより、移動角度の分解能を上げ、滑らかな回転を実現することが可能になる。
【０００５】
【発明が解決しようとする課題】
しかし、実際には、モータの巻線構造の違い、モータと巻線電流制御回路との相性などの様々の原因により、１フルステップを等分に分割して正確な正弦波に従う巻線電流を流しても、図３のグラフに示すように必ずしもステッピングモータは１周期を等分に分割したステップ角での動作は行わない。図３では、理想的な動作を破線のグラフで示し、実際の動作を実線のグラフで示している。図から判るように、実際の動作は理想的な動作からずれている。
【０００６】
このようなズレに起因して、オープン制御では精度がでにくくなるといった問題やまた、クローズド制御などではハンチングが発生したり、収束が遅くなったりするという不具合が生じる。
【０００７】
したがって、本発明は、このような不具合を解消するために、マイクロステップ駆動の際にマイクロステップ移動角度を補正することができるステッピングモータ駆動装置を提供することにある。
【０００８】
【課題を解決するための手段】
本発明によるステッピングモータ駆動装置は、ステッピングモータのマイクロステップ駆動を行うステッピングモータ駆動装置において、
ステッピングモータの移動量を指示する指示手段と、該指示手段により指示されたモータ移動量に応じた個数のモータ駆動パルスを出力する制御手段と、前記モータ駆動パルスに応じてステッピングモータを駆動するモータドライブ回路と、ステッピングモータのフルステップ角度内の各マイクロステップ角度に対する実移動角度と理想移動角度との差に基づいて、当該理想移動角度に最も近い角度の実移動角度を呈するモータ駆動パルス数を当該マイクロステップ角度に対応する補正パルス数として記憶する補正パルス数記憶手段とを備え、
前記制御手段は、ステッピングモータのフルステップ角度より小さいマイクロステップ角度のマイクロステップ駆動のために、当該マイクロステップ角度に対応して前記補正パルス数記憶手段に記憶された補正パルス数のモータ駆動パルスを前記モータドライブ回路へ出力し、前記補正パルス数記憶手段は、各位相位置に対応して、当該位相位置から次のフルステップ境界までの移動に要する第１の補正パルス数と、フルステップ境界から当該位相位置までの移動に要する第２の補正パルス数とを記憶することを特徴とする。
【０００９】
このように、本発明によるステッピングモータ駆動装置は、フルステップより小さい移動量のマイクロステップ動作において、実際の移動量が理想の移動量により近似するようにモータ駆動パルスの出力個数を補正するものである。例えば、モータ駆動パルス３個による理想移動角度を得ようとする場合に、実際にはパルス３個により得られる実移動角度よりもパルス２個により得られる実移動角度の方が近い場合には、当該マイクロステップ角度を得るための補正パルス数として記憶手段に「２」を記憶しておく。実際のモータ駆動動作時に、該当するマイクロステップ角度の駆動に対して、モータ駆動パルス２個を出力する。これにより、マイクロステップ動作の誤差をより理想に近づけることができる。
【００１０】
前記ステッピングモータ駆動装置において、フルステップ角度内の各マイクロステップ角度に対する実移動角度と理想移動角度との差は、各フルステップにおいて相関関係を有するので、前記補正パルス数記憶手段は、１フルステップの範囲内の各マイクロステップ角度についてのみ補正パルス数を記憶すればよい。これにより、記憶手段の必要な記憶容量を低減するとともに、その参照を容易とすることができる。
【００１２】
前記モータドライブ回路は、現在の位相位置を表す位相検出信号を前記制御手段に供給し、前記制御手段は、前記位相検出信号に基づいて前記移動量を、現在の位相位置から次のフルステップ境界位置までのマイクロステップ角度である第１の角度と、フルステップ角度の整数倍の角度である第２の角度と、残りの角度であるマイクロステップ角度である第３の角度とに分割し、該第１および第３の角度について前記補正パルス数記憶手段を参照して補正パルス数を求める。これにより、指示された移動量に対する総補正パルス数を容易に算出することができ、本発明によるモータ駆動の応答速度の低下を防止することが可能になる。
【００１３】
前記補正パルス数記憶手段に記憶する補正パルス数は予め求められたものを繰り返し利用するものであるが、１フルステップ角度内の各位相位置における理想移動角度に対する実移動角度を検出する手段と、該手段により得られた理想移動角度と実移動角度の差に基づいて前記補正パルス数を決定する手段とを備えて、所定の時点で、例えば電源投入時ごとに補正パルス数を求めたものを再記憶するようにしてもよい。これにより、モータや駆動回路の特性の経時的変化に対応して、常に、高精度なマイクロステップ駆動を提供することができる。
【００１４】
【発明の実施の形態】
以下、本発明の好適な実施の形態について、詳細に説明する。本実施の形態では、マイクロステップ駆動をカメラの自動焦点調節のためのレンズ位置制御に利用する場合を想定している。しかし、本発明は、ステッピングモータによる微細な位置決め調整を行う任意の他の用途に利用することができる。
【００１５】
図２は、本発明によるステッピングモータ駆動装置の一実施の形態の概略構成を示す。この駆動装置は、ステッピングモータ１を駆動するモータドライブ回路２と、モータ１の移動角度の指示を含むコントロール信号を出力するモータコントロール部５と、このコントロール信号を受けてモータドライブ回路２を制御するＣＰＵ３と、ＣＰＵ３が参照するメモリ４とにより構成される。モータドライブ回路２は、モータ１の各巻線電流を制御することにより、モータ１を指示された移動角度（移動量）だけ回転させる。モータドライブ回路２は、また、後述する位相検出信号を発生し、これをＣＰＵ３へ供給する。メモリ４は、ＣＰＵ３が実行するプログラムを格納する他、後述する補正データを格納する。
【００１６】
図２の装置において、ＣＰＵ３は、モータコントロール部５で設定されたコントロール信号により指示された移動量に基づいて、メモリ４内の補正データを参照し、指示された移動量の回転に必要なモータ駆動パルス数を求める。ＣＰＵ３は、このパルス数分のモータ駆動パルスをモータドライブ回路２に送出することによりステッピングモータ１を回転させる構造になっている。
【００１７】
モータドライブ回路２はＣＰＵ３に送出する位相検出信号は、初期状態（電源投入時）において、ＣＰＵ３がモータ１のマイクロステップ駆動の現在の位相位置を認識するためのものである。「位相位置」とは、現在のモータ位置が１フルステップ内の何番目の位相位置にあるかということであり、例えば、フルステップを８分割するマイクロステップ駆動の場合の位相位置は０／８から７／８の８通り存在する。位相位置０／８は、フルステップ位置、すなわちフルステップ間の境界位置に相当する。
【００１８】
再度、図３を参照し、このフルステップ８分割の例においてステッピングモータ駆動のパルス数を補正する場合を説明する。この場合、１フルステップ角度の移動（回転）には８個のモータ駆動パルスを必要とする。以下に、０から８個の各パルス数で得られる実際のモータ１の移動角度と、理想の移動角度とを並べて示す。ここでは、フルステップの移動角度を１８°で正規化した例を示す。
【００１９】
パ  ル  ス  数  ０   １    ２    ３     ４     ５     ６     ７     ８
実際の移動角度  ０  3.83  6.75  8.78  10.58  11.46  12.38  13.95  18.00
理想の移動角度  ０  2.25  4.50  6.75   9.00  11.25  13.50  15.75  18.00
このようにマイクロステップ角度は理想のマイクロステップ角度と異なった角度で動作する。
【００２０】
上記の実際の移動量を理想の移動量とを比較し、理想の移動量に近似できるように、パルス数の補正を行うと下記の様になる。
【００２１】
理想パルス数  ０   １    ２    ３    ４     ５     ６     ７     ８
補正パルス数  ０   １    １    ２    ３     ５     ７     ７     ８
補正移動角度  ０  3.83  3.83  6.76  8.78  11.46  13.95  13.95  18.00
理想移動角度  ０  2.25  4.50  6.75  9.00  11.25  13.50  15.75  18.00
各理想パルス数に対する「補正移動角度」の値は、先に示した実際の移動角度の複数の値のうち当該理想パルス数に対する理想移動角度に最も近いものを選択したものである。例えば、通常、２個のパルス（理想パルス数「２」）によれば位相位置２／８である４．５０゜の理想移動角度が得られるべきところ、実際の移動角度は理想移動角度４．５０゜に近いものとして３．８３゜（パルス数「１」に対応）と６．７５゜（パルス数「２」に対応）であるのみである。したがって、理想移動角度４．５０゜により近い方の３．８３゜を呈するパルス数「１」が補正パルス数として選択される。同様にして、理想パルス数「３」に対応する位相位置３／８である理想移動角度６．７５゜を得るためには補正パルス数は「３」ではなく「２」となる。理想パルス数「５」に対応する位相位置５／８では理想パルス数と補正パルス数が共に「５」となっている。理想パルス数「６」に対応する位相位置６／８では補正パルス数は、理想パルス数「６」より多い「７」となっている。
【００２２】
前述した図３の下部に、モータ移動角度の１フルステップの各位相位置に対する理想パルス数と補正パルス数の関係を示したので、再度参照されたい。
【００２３】
なお、これらの数値例は単なる説明のためのものであり、実際にはステッピングモータ１の型によって異なり、また、同じ型のモータであっても個々のモータおよびモータドライブ回路によりある程度変動しうるものである。
【００２４】
図６に、ステッピングモータ１の個々のフルステップ内におけるマイクロステップの理想移動角度に対する実際の移動角度のズレを表すグラフを示す。このグラフを見ると、Ｎ番目のフルステップとＮ＋ｎ番目（ｎは整数）のフルステップのズレ量には相関関係がある。本実施の形態は、この各フルステップ内での各位相位置でのズレ量がほぼ一致していることに着目し、１フルステップ分のズレ量に対応する補正データのみを記憶しておき、これに基づいてモータ１に与えるパルス数を補正するものである。
【００２５】
図５は、補正データ（補正パルス数）を決定するための基礎データとしての前記ズレ量、すなわち、フルステップ内における各位相位置の理想移動角度に対する実際の移動角度のズレ量、を求めるための装置構成を示す。ここでは、エンコーダ６を使用し、これにより、モータ１の逐次の位相位置における理想移動角度に対する実際の移動角度を検出する。他の構成は、図２の装置構成と同様である。具体的な動作としては、リセット時またはモータ１の初期駆動時に、エンコーダ６により、各理想パルス数に対するモータ１の実移動角度を測定し、ＣＰＵ３にてこの実移動角度と理想移動角度との差をズレ量として求める。そこで、ＣＰＵ３は、各理想パルス数に対応する理想移動角度に最も近い実移動角度を呈する実際のパルス数をその理想移動角度（に最も近い移動角度）を得るための補正パルス数と決定する。得られた補正パルス数は、各理想パルス数（すなわち各位相位置）に対応してメモリ４に格納しておく。
【００２６】
このようにして一旦得られた補正パルス数がメモリ４に記憶された後は、メモリ４が不揮発性のもの（ＲＯＭ、磁気ディスク等）であれば、エンコーダ６による再度の実移動角度の測定は必要ないが、電源投入時等の所定の時機毎に実移動角度の測定を行うようにしてもよい。
【００２７】
同様のズレ特性を有する同一の型のステッピングモータには、同一の補正データを記憶したメモリ４を用いることにより、図２の構成のように、エンコーダ６を持たない構成とすることができる。但し、厳密には同一の型のモータにおいてもマイクロステップ角度のズレは個々のモータにより異なるので、より正確なズレ量補正を行うには、個々のモータについてエンコーダ６によるズレ量測定を行うことが好ましい。
【００２８】
図７に、図２の装置構成におけるＣＰＵ３の動作フローチャートを示す。本装置の電源投入によりこのフローはスタートする。
【００２９】
まず、モータコントロール部５から駆動制御データを読み込む（７１）。この駆動制御データは、前述したように、どの方向にどれだけ移動（回転）させるかを指示するものである。得られた駆動制御データに対応する個数のモータ駆動パルスをモータドライブ回路２に出力する（７２）。モータドライブ回路２は、このモータ駆動パルスに応じてモータ１の巻線電流を制御し、指定された角度だけ回転させる。ついで、ＣＰＵ３は、モータドライブ回路２から位相検出信号を読み込む（７３）。この位相検出信号は、ステップ７２におけるモータ駆動パルス出力に応じたモータ回転後にモータの停止した位相位置を表す信号である。この位相位置の検出は、電源投入後の最初のモータ駆動により行える。したがって、ステップ７２におけるモータ駆動パルスは未補正のものである。但し、この動作は実際には初期化動作時等に行う動作であるため、本発明の制御には直接影響はない。
【００３０】
続くステップ７４〜７６は、無限ループとなっている。まず、モータコントロール部５からの次の駆動制御データを読み込み（７４）、この駆動制御データをメモリ４からの補正データと比較し、補正パルス数を決定する（７５）。この具体的な決定方法については、後述する。得られた補正パルス数分の補正パルスをモータドライブ回路２に出力する（７６）。以後、ステップ７４に戻って、ステップ７４〜７６を繰り返し実行する。
【００３１】
ステップ７３において、モータドライブ回路２から位相検出信号を読み込む理由を説明する。マイクロステップ駆動の場合、モータ１の駆動がフルステップ間の境界位置（例えば８分割の場合の０／８）から他のフルステップ間の境界位置までの移動であれば、パルス数の補正は必要ない。例えば、１０フルステップ分の角度だけ移動する際、８分割の場合であれば、単に１０×８＝８０個のパルスを出力すればよい。しかし、モータ１の駆動開始時あるいは停止時の現在のマイクロステップ駆動の位相位置が１フルステップ内の中間位置（例えば１／８、２／８、・・・、７／８）にある場合、フルステップのパルス数をその位相位置に応じて比例配分したのでは前記ズレ量がそのまま移動位置に反映されてしまうので、メモリ４に格納された補正データを用いて、個々にそのフルステップ角度の一部分であるマイクロステップ角度にふさわしい適正なパルス数を求める必要がある。
【００３２】
図３の例に戻って考えると、この例における補正データは図４に示すとおりとなる。図４は、各位相位置４１について、当該位相位置から次のフルステップ境界までの移動に必要な第１の補正パルス数４２と、フルステップ境界位置から当該位相位置までの移動に必要な第２の補正パルス数４３とを対応づけて記憶した、メモリ４内の補正パルス数テーブル４０を示す。例えば現在の位相位置が２／８である場合に、その位置から次のフルステップ境界を越えて移動する場合、その位相位置から当該フルステップ境界まで移動するのに必要な第１の補正パルス数４２は「７」である。なお、１つのフルステップ内の補正パルス数は、どのフルステップにおいても同じ「８」である。また、移動の停止位置が２／８の位相位置である場合には、フルステップ境界位置から当該位相位置までの移動に必要な第２の補正パルス数４３は「１」である。さらにまた、例えば位相位置４／８から次のフルステップ境界位置までの移動に必要な第１の補正パルス数４２は「５」であり、フルステップ境界位置から当該位相位置までの移動に必要な第２の補正パルス数４３は「３」である。したがって、例えば、移動開始位置の位相位置を２／８として、｛１１＋（２／８）｝フルステップ分の角度だけ移動する指示を受けたとき、ＣＰＵ３は、まず、この移動量を次のように分割する。
【００３３】
｛１１＋（２／８）｝＝（６／８）  ＋  １０  ＋  （４／８）
右辺第１項の（６／８）は、位相位置２／８から次のフルステップ境界位置までの移動量に対応し、右辺第２項および第３項は、残りの１０フルステップと余りの（４／８）フルステップ分の移動量に対応する。したがって、第１項の移動量である（６／８）フルステップに対応する補正パルス数は図４のテーブル４０の位相位置２／８の第１の補正パルス数４２から「７」が得られる。同様に、第３項の移動量である（４／８）フルステップに対応して同テーブル４０の位相位置４／８の第２の補正パルス数４３から補正パルス数「３」が得られる。第２項の１０フルステップに対応する補正パルス数は前述のように「８０」なので、
総補正パルス数＝７＋８０＋３＝９０
となる。したがって、９０個の補正パルスをモータドライブ回路２に与えることにより、前記指示された理想移動量に最も近似した実移動量でモータ１を駆動することができる。
【００３４】
このようにして、マイクロステップ角度の誤差をあらかじめ補正ステップ数の計算に組み入れることができるため、駆動、測距等の誤差を軽減することができる。
【００３５】
次に、図８に、図５の装置構成におけるＣＰＵ３の動作フローチャートを示す。
【００３６】
まず、モータコントロール部５から駆動制御データを読み込む（８０）。この駆動制御データは１パルス分の移動量に相当するものである。次に、この駆動制御データに対応するモータ駆動パルスをモータドライブ回路２に出力する（８１）。ついで、モータドライブ回路２から位相検出信号を読み込む（８２）。さらに、エンコーダ６から現在の位置情報を読み込む（８３）。そこで、前述した手法により、実移動角度と理想移動角度とを比較演算し、補正データを作成する（８４）。但し、図８の処理がスタートして最初のステップ８４の実行では、その直前のステップ８３で初めて位相位置が判明するので、補正データの作成は行えず、再度ステップ８０に戻った後の次回のステップ８４の処理から補正データの作成を行う。ステップ８０〜８４は、１フルステップ内の測定が終了するまで繰り返して実行する（８５）。
【００３７】
このようにして得られた補正データはメモリ４に書き込む（８６）。図４では、この補正データをテーブル４０の形式で示したが、その記憶の形式は自由である。このようなテーブルとしてデータを持つのではなく、実際のモータ制御プログラム（例えば、カメラの自動焦点調節制御プログラム）の中に定数として組み込んで用いるようにしてもよい。
【００３８】
以下のステップ８７、８８、８９は、それぞれ図７のステップ７４、７５、７６と同じなので、その説明は省略する。
【００３９】
以上、補正データは、モータの正転の場合のみについて説明したが、モータの逆転の場合は、同じ様に補正を行うが、正方向から逆方向にモータ動作する場合、ヒステリシスを生じる為、そのヒステリシス分を補正するパルスを加えて、補正を行う。
【００４０】
なお、本発明は、１フルステップ分を補正データとしてメモリに記憶するようにしたが、特にこれに限定するものではなく、数フルステップ分をメモリに記憶してもよい。例えば、モータの励磁のパターンを単位として補正データを作成してもよい。
【００４１】
【発明の効果】
本発明によれば、ステッピングモータのマイクロステップ駆動の駆動精度を向上することができ、また、クローズド制御において、収束速度が向上し、オーバーシュートや、ハンチングなどを防止することができる。
【図面の簡単な説明】
【図１】図１は、ステッピングモータのマイクロステップ駆動を説明するためのグラフである。
【図２】本発明によるステッピングモータの駆動装置の構成例を示すブロック図である。
【図３】ステッピングモータのマイクロステップ駆動における駆動誤差を説明するグラフである。
【図４】本発明の実施の形態における補正パルス数データの説明図である。
【図５】本発明によるステッピングモータの駆動装置の他の構成例を示すブロック図である。
【図６】ステッピングモータのマイクロステップ駆動における駆動誤差の周期的出現を示すグラフである。
【図７】図２の装置におけるＣＰＵ動作を示すフローチャートである。
【図８】図５の装置におけるＣＰＵ動作を示すフローチャートである。
【符号の説明】
１…モータ、２…モータドライブ回路、３…ＣＰＵ、４…メモリ、５…モータコントロール部、６…エンコーダ。
【図１】
0003806985.tif 000002
【図２】
0003806985.tif 000003
【図３】
0003806985.tif 000004
【図４】
0003806985.tif 000005
【図５】
0003806985.tif 000006
【図６】
0003806985.tif 000007
【図７】
0003806985.tif 000008
【図８】
0003806985.tif 000009