(57)【特許請求の範囲】
【請求項１】
単位パルス当たりの回転角度が相互に異なる複数の回転モードに基づいて回転するパルスモータの制御を、前記複数の回転モードを動的に切り換えながら行うパルスモータの制御方法であって、
前記回転モードの切り換え前の単位時間当たりのパルス数を前記切り換え前後の前記回転角度の比率に応じて除算を行い、当該除算結果の整数部分を用いて前記切り換え後の単位時間当たりのパルス数を決定し、
前記回転モードの切り換え後に、前記除算結果の小数点部分を累積し、当該累積結果が１に達した時点で、前記単位時間のパルス数に加算する
パルスモータの制御方法。
【請求項２】
単位パルス当たりの回転角度が相互に異なる複数の回転モードに基づいて回転するパルスモータの制御を、前記複数の回転モードを動的に切り換えながら行うパルスモータの制御装置であって、
前記回転モードの切り換え前の単位時間当たりのパルス数を前記切り換え前後の前記回転角度の比率に応じて除算を行い、当該除算結果の整数部分を用いて前記切り換え後の単位時間当たりのパルス数を決定するパルス数決定手段と、
前記回転モードの切り換え後に、前記除算結果の小数点部分を累積し、当該累積結果が１に達した時点で、前記単位時間のパルス数に加算する加算手段と
を有するパルスモータの制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、パルスモータの制御方法およびその装置に関する。
【０００２】
【従来の技術】
近年、パルスモータを採用した水平多関節ロボット（以下、単にロボットとも記す）の開発がなされている。このようなロボットにおいては、短タクト化および高精度化を図ることが重要である。かかる手法としては、例えばμ−ステップモードを採用したロボットが知られている。μ−ステップモードには複数の倍速モードが備えられているが、従来の水平関節ロボットでは、単一の倍速モードを選択し、この倍速モードを継続して用いてパルスモータの制御を行っている。尚、複数の倍速モードは、パルスモータの制御における速度および精度の特性が相互に相違している。
【０００３】
【発明が解決しようとする課題】
しかしながら、前述した従来のロボットでは、単一の倍速モードのみを用いてパルスモータの制御を行っていることから、パルスモータの能力を十分に発揮させることができず、高速性（短タクトタイム）と高精度性との双方を同時に満足することができないという問題がある。
また、従来のロボットでは、パルスモータのステップ周期（周波数）とロボットの機械系の共振周波数が近づくと、機械系が共振してしまい、走行精度の確保が困難になり、振動音の発生など動作上の不都合が生じることがある。かかる問題を解決するために、共振発生時にユーザが速度を変更するなどの手法があるが、ユーザの負担が大きいという問題がある。
【０００４】
本発明は、上述した従来技術に鑑みてなされ、高速かつ高精度な特性を有するパルスモータの制御方法およびその装置を提供することを目的とする。
また、本発明は、ユーザに負担をかけることなく、機械系の共振発生を抑制できるパルスモータの制御方法およびその装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上述した従来技術の問題点を解決し、上述した目的を達成するために、本発明のパルスモータの制御方法は、単位パルス当たりの回転角度が相互に異なる複数の回転モードに基づいて回転するパルスモータの制御を、前記複数の回転モードを動的に切り換えながら行うパルスモータの制御方法であって、前記回転モードの切り換え前の単位時間当たりのパルス数を前記切り換え前後の前記回転角度の比率に応じて除算を行い、当該除算結果の整数部分を用いて前記切り換え後の単位時間当たりのパルス数を決定し、前記回転モードの切り換え後に、前記除算結果の小数点部分を累積し、当該累積結果が１に達した時点で、前記単位時間のパルス数に加算する。
【０００６】
また、本発明のパルスモータの制御装置は、単位パルス当たりの回転角度が相互に異なる複数の回転モードに基づいて回転するパルスモータの制御を、前記複数の回転モードを動的に切り換えながら行うパルスモータの制御装置であって、前記回転モードの切り換え前の単位時間当たりのパルス数を前記切り換え前後の前記回転角度の比率に応じて除算を行い、当該除算結果の整数部分を用いて前記切り換え後の単位時間当たりのパルス数を決定するパルス数決定手段と、前記回転モードの切り換え後に、前記除算結果の小数点部分を累積し、当該累積結果が１に達した時点で、前記単位時間のパルス数に加算する加算手段とを有する。
【００１１】
【発明の実施の形態】
以下、本発明の実施形態に係わるにパルスモータの制御方法およびその装置について説明する。
第１実施形態
図１は本実施形態に係わるパルスモータの制御方法およびその装置における制御信号の生成手法を説明するための図、図２は図１において示した符号の意味を説明するための図である。
本実施形態に係わるパルスモータの制御方法およびその装置では、μ−ステップ方式を用いて制御信号を生成し、この制御信号を用いてパルスモータの制御を行う。また、本実施形態では、複数のμ−ステップモード相互間で制御フローをダイナミック（動的）にジャンプさせることで、ロボット動作の高速化および高精度化を図ると共に、ジャンプ補正制御を行うことで、ジャンプ時およびジャンプ後における動作の脱調を防止する。
【００１２】
先ず、μ−ステップ方式について概説する。
図３はコイル相電流とロータの位置との関係を示し、４相パルスモータの各相に、所定の電流比で電流が流れている状況下でのコイルに発生する磁界のベクトルをベクトルＣA Ｃn で、又、着磁されたロータの持っている磁界ベクトルをベクトルＭA Ｍn で表している。尚、実際には、ベクトルＣA Ｃn ，ベクトルＭA Ｍn は、一本ではない。但し、Ａ，Ａ￣相及びＢ，Ｂ￣相の電流は、各々は同じであり、各々をＩ（ＡＡ￣），Ｉ（ＢＢ￣）と表す。尚、ベクトルＸＹは、点Ｘから点Ｙへの向きを有し、大きさが（Ｘ2 ＋Ｙ2 ）1/2 のベクトルを示す。
【００１３】
このとき、ベクトルＭA Ｍn とベクトルＣA Ｃn とが一致するロータの位置が安定点である。従って、ベクトルＭA Ｍn を時間と共に回転させれば、ベクトルＣA Ｃn つまりロータは、ベクトルＭA Ｍn にと共に回転する。これがパルスモータの基本原理である。
今、電流Ｉ（ＡＡ￣），Ｉ（ＢＢ￣）を所定の比で流すと、ベクトルＣA Ｃn は所定の方向を向き、ロータも当該方向に移動して停止する。このようなパルスモータのドライバーでは、電流Ｉ（ＡＡ￣），Ｉ（ＢＢ￣）との値に応じてロータ安定点を細かく設定できる。この様な機能を持つドライバーをμ−ステップ機能付きドライバーと呼ぶ。
【００１４】
上述したμ−ステップ方式を採用したドライーでは、図３が示すように、各相に流す電流値は制御により、ベクトルＭA Ｍn のステップ角、つまりロータのステップ角（δθ）を以下に示す例えば５種類持てるようになっている。つまり、パルスモータ（ドライバー）に１パルスを入力したときのモータ軸の回転角がステップ角（δθ）である。
【００１５】
この５種類のモードは、例えば図４に示すようにまとめることができる。
図４に示す例では、μ−ステップ方式のモードは５種類あるが、ロボットはタクトすなわち速度を重視する場合が多いので、以下速度から見たモード名を用いる。これは、ＶＴＲの早送りの速度を言い表すのに似ている。
よって、×１倍速モードは最も遅く、精度は最も良く３２００歯相当である。一方、×３２倍速モードは最も速いが、精度が最も悪く１００歯相当である。このため、本実施形態では、コントローラの位置指令は×１倍速モードを基準として、すなわちロータリーエンコーダにおいて３２００（３６０°／０．１１２５°）歯を基準として全て計算される。
【００１６】
次に、上述したμ−ステップモードとＴＮ特性の関係を調べる。
この関係は、図５のように示される。
ここで、ＴＮ特性とは、モータトルク（Ｔ）と速度（Ｎ）との関係に応じて決定される特性をいい、例えば図５に示すようにθ”を横軸とし、θ’を縦軸としたＴＮ線図を用いて表される。θ’はロータの回転角θの１階微分を示し、θ”は回転角θの２階微分を示している。
【００１７】
ドライバー及びパルスモータを含めたロボットのアクチュエータにおける最高トルク、最高速度および動作許容領域などの性能はＴＮ線図を用いて示され、ロボットの動作はかかるＴＮ線図が示す限界ラインの範囲内において決定されなければならない。すなわち、ＴＮ線図が示す限界ラインを越えた制御を行おうとすると、脱調などが生じ、ロボットの機能そのものが損なわれてしまう。
ドライブ電流が一定の場合、μ−ステップ速度モードによってＴＮ特性Ｏ￣ＡＢＣＤは皆同じである。ただ、その最高速度のみが各種類によって制限される。従って、ハードウェア構成によって、×１倍速モードがＴＮ特性Ｏ￣ＡＢＣＤを全部カバーしてしまうこともあり得る。本実施形態では、θ’（ＭＡＸ）ができるだけ大きくなるように、パルス発生器およびモータ電源電圧を設計し、短タクトタイム（高速性）を実現している。
【００１８】
以下、本実施形態に係わるパルスモータの制御方法における制御信号の生成手法について説明する。
ところで、ステップモータを採用したロボットの動作種類には、（１）ＰＴＰ動作  （２）ＣＰ動作  （３）トラッキング動作  （４）（１）〜（３）の特殊動作などが考えられるが、いずれも短タクト、高精度が要求される。
一方、ＴＮ特性は例えば図５に示すように、一般的には、×２n 倍速モード毎に最高速度、最高精度が異なる。
よって、短タクト、高精度動作をパルスモータにさせる場合、μ−ステップの×２n 倍速モードを必要に応じ、ダイナミックに選択して動作させる必要がでてくる。
本実施形態では、このように、μ−ステップの×２n 倍速モードを自由に選択ジャンプする場合、移動量に過不足を生じさせず、かつジャンプ時点で脱調せず、機械的な衝撃を与えないμ−ステップモード間ジャンプ補正制御を行う。
【００１９】
μ−ステップモード間ジャンプ補正制御を説明する前に、当該制御において考慮すべき事項について概説する。
前述した（１）〜（４）のいずれの動作においても、サンプリング時間Ｔｓの間にパルスモータに何パルス分回転して欲しいのかコントローラは算出し、これをサンプリング時間Ｔｓ毎にドライバーに送る。今、例えば×２n 倍速モード（ｎ＝０〜５）が選択されているとき、サンプリング時間Ｔｓ間にＫパルス動作する指令値が連続して出力されていれば、モータは定速回転をしていることとなる。このような動作中に例えばμ−ステップモードを×２n'（ｎ’＞ｎ）倍速モードに変更した場合、同時にＫをＫ×２n-n'に変更しないとモータは速度が変化し、周期的なトルクリップルを発生させることとなる。例えば、Ｋが素数だった場合を考えれば後述するように明らかである。特に、ＰＴＰ動作のように、目標移動量が決まっている場合、モード間をジャンプすると目標位置がずれるおそれがある。
【００２０】
従って、μ−ステップモード×１倍速〜×３２倍速間をどのようにモードジャンプしても目標位置をずれずかつトルクリップルをも発生しない制御が必要になる。
具体例的に述べると、
〔１〕定速回転動作
×１倍速モードで、サンプリング時間Ｔｓ毎にＫパルスをドライバーに送ってパルスモータを定速回転させているときに、何らかの必要が生じて×４倍速モードにジャンプさせた場合におけるサンプリング時間Ｔｓ毎のパルス列（数）を考えてみると、図６のように表すことができる。
パルスモータドライバーにサンプリング時間Ｔｓ毎にＫパルスを送る（書込む）と、サンプリング時間Ｔｓ毎にＫパルス分だけ、ロボットの動作を駆動するロータが回転する。さて、図６において、Ｐ−Ｐのタイミングで×１倍速モードから×４倍速モードへのジャンプが発生すると、ｍｏｄ（Ｋ／４）＝０，１／４，２／４，３／４の４つの場合が生じるが、０を除いて整数値ではないため、この情報はパルスモータにおいてパルス列に反映することはできない。そのため、モータの回転数が、この分だけ変化してしまう。また、図６に示すＰ’−Ｐ’にて×４倍速モードから×１倍速モードに戻る場合、ｍｏｄ（Ｋ／４）による影響も加味してＫを復元しないと、さらに回転速度が変化してしまう。
【００２１】
〔２〕ＰＴＰ，ＣＰ，トラッキング動作
前述した〔１〕の例では定速回転であるから、パルスのＫが決まればｍｏｄ（Ｋ／４）も決まるため、種々の工夫をすることによってモードジャンプ時の速度変化を防ぐ方法が考えられる。しかし、ロボットでは、ＰＴＰ，ＣＰ，トラッキング動作などがあり、これらの動作では、Ｋが時々刻々と変化するため、ｍｏｄ（Ｋ／４）もランダムに変化する。さらに、モードジャンプが×１倍速から×４倍速ばかりではなく、５種類のうち任意のモードから他の任意のモードへのジャンプは、１２０通りもあり、ｍｏｄ（Ｋ／２n ）は、０，１／２，１／４，２／４，３／４，１／８，２／８，３／８，４／８，５／８，６／８，７／８，１／１６，２／１６，．．．，１／３２，２／３２，．．．，３１／３２など、計５８種類ものケースが考えられる。この結果、各モード間ジャンプ個々に対応した補正アルゴリズムでなく、共通な一般的な制御が必要になる。
【００２２】
次に、μ−ステップモード間ジャンプ補正制御について説明する。
μ−ステップモード間ジャンプ補正制御では、上述した〔１〕，〔２〕の事項を考慮して、μ−ステップモード間ジャンプによって発生するパルス数エラー対策を行う。
先ず、μ−ステップモード間ジャンプ補正制御を説明するにあたって使用する記号の意味について説明する。
【００２３】
・Ｎ：正整数であり、現サンプリング時刻（ｔ＝ｉＴｓ）の次のサンプリングタイミング（ｔ＝（ｉ＋１）Ｔｓ）までにモータが移動して欲しい×１倍速モードでのパルス数を表す。このＮの値は、コントローラにて必要に応じて計算される。μ−ステップモード間ジャンプ補正制御では、Ｎに対して後述する操作を施す。
【００２４】
・×２n'，×２n"
ｎ’，ｎ”共に、０，１，２，３，５の各値をとる。これは速度モードを示し、この値は後述する操作の結果に応じて同時にドライバーに送られる。尚、一般性を損なうことなく、ｎ’≦ｎ”とする。
【００２５】
・〔ｘ〕：ガウスの記号を示し、実数ｘを越えない最大の整数を表す。例えば〔３．１〕＝〔３．９〕＝３である。尚、〔ｘ〕はシグナル図では図２に示すように表す。
【００２６】
・ｍ：０≦ｍ＜１であり、μ−ステップモード間ジャンプ補正制御の主役となるパラメータでイニシャル時に０にリセットされる。演算途中で瞬間的にｍ≧１となるが、最終的には０≦ｍ＜１となる。
【００２７】
・ｍｏｄ（Ｘ）：実数ｘの小数点部分を表す。例えばｍｏｄ（３．１）＝ｍｏｄ（５．１）＝０．１である。シグナル図では図２に示すように表す。
・Ｚ-1：遅延子を示し、これを用いることで積分はシグナル図で図２に示すように表す。
【００２８】
２n'倍速モードでのμ−ステップモード間ジャンプ補正制御は、モード間ジャンプ時の境界処理もあるが、一度、２n'倍速モードに入った後の処理も重要である。
μ−ステップモード間ジャンプ補正制御における２n'倍速モードに入った後の処理について説明する。
この場合の処理のシグナル図を図１に示す。
図１に示すように、当該処理においては、コントローラからのモード切換信号Ｓ１および指令値Ｓ３がパルスモータドライバーに出力される。また、バーチャルモータＶＭは、コントローラから入力した×１倍速モード信号Ｓ２に対して、整定改善と脱調対策としての所定のフィルタリング処理を行い、Ｎを生成する。パルスモータドライバーには、モード切換信号Ｓ１とＮ’を示す信号Ｓ３出力される。
【００２９】
最初に、図１に示す各ノードの意味および働きを説明する。
・ノードｎ1 （実数値）：図１に示すように、ｎ1 ＝Ｎ／２n'であり、この値は実数値である。
【００３０】
・ノードｎ2 ：０≦ｎ2 ＜１の実数値であり、図１に示すように、ｎ2 ＝ｍｏｄ（ｎ1 ）＝ｍｏｄ（Ｎ／２n'）となる。ここで、ｎ2 は割り算の結果の小数点部分となっている。例えば、ｍｏｄ（１３／２）＝ｍｏｄ（６．５）＝０．５である。
【００３１】
・ノードｎ3 ：ｎ3 ＝０又は１である。図１に示すように、ｎ3 ＝〔ｍ〕＝０又は１である。ｎ3 ＝０又は１は以下に説明するｍの性質による。
・ｍ：０≦ｍ＜１である。但し、ｍは瞬間的に１を越えることがある。図１を用いて説明すると、先ず、ｎ2 を積分した結果に対して〔  〕をとる。その結果、下記式（１）のようになる。
【００３２】
【数１】
ｎ3 ＝０（０≦ｍ＜１の場合）                          （１）
ｎ3 ＝１（ｍ≧１の場合）
【００３３】
そして、ｎ3 の値をｍから引くつまり、０又は１を引く。これによって、最終的にｍは０≦ｍ＜１となる。尚、ｎ3 はＮ’に加算される。
・Ｎ’：Ｎ’は×２n'倍速モードにおけるパルスモータへの指令値である。図１より、下記式３−６に基づいて処理される。
【００３４】
【数２】
0003658819.tif 000002
【００３５】
ｎ1 ＝Ｎ／２n'は実数で、この値そのものをパルスモータに送ることができれば簡単であるが、パルスモータはパルス数、つまり整数値でしか動作でいないので、整数化する。ここで、必ずｎ1 以下の整数値をとる〔ｎ1 〕にｎ3 を加算してＮ’とし、ドライバーに送る。そして、この一連の操作で捨ててしまった小数点部分ｎ1 −〔ｎ1 〕を貯めておいて（積分して）、この積分値ｍが「１」をオーバーした時点で、つまり後からこの「１」を〔ｎ1 〕に加えることで捨ててしまった小数点部分を取り戻す。この１は定速動作では周期的に、その他の動作では非周期的に生じる。
【００３６】
以上説明した、２n'倍速モードを例に用いて、μ−ステップモード間ジャンプ補正制御を時間軸から見て説明する。
実際の応用では、Ｎはサンプリング時間Ｔｓ毎にダイナミックに変化し、同様に、ｎ’もその値を変えていく。そのあらゆる場合について説明することはできないので、ここでは、Ｎ＝１３（一定），ｎ’＝２（一定）のケースについて図７に示すタイムチャートを用いて説明する。
【００３７】
図７に示すように、タイミングｔ1 ，ｔ2 ，．．の時、積分値ｍは丁度「１」に達するため、〔ｍ〕＝ｎ3 ＝１となり、この「１」をＮ’に加え、ｍから差し引いていることを表している。つまり、エラー分ｎ2 は積分されｍとなり、ｍが「１」をオーバーする度にＮ’に補正がかかる仕組みである。このケースの場合、エラー補正周期は４Ｔｓ（≒４０ｍｓｅｃ＝２５ＨＺ）であり、この周期をリミッターサイクルとも言う。
【００３８】
これまでは、モード間ジャンプ後の補正について説明したが、ここでは、μ−ステップモード間ジャンプの直後の補正制御を説明する。
モード間ジャンプは、常に、２つのモード×２n'倍速モードと×２n"倍速モードとの間でのみ行われ、０≦ｎ’＜５，０≦ｎ”＜５である。また、説明を一般化するために、ｎ’＝ｎ”つまりジャンプ無しの場合を含むと考える。また、ｎ’≦ｎ”と決めても一般性は損なわれない。まとめると下記式（３）に示す条件でのジャンプ直後の補正について述べる。
【００３９】
【数３】
０≦ｎ’≦５
０≦ｎ”≦５
ｎ’≦ｎ”                                          （３）
【００４０】
μ−ステップモード間ジャンプの直後の補正制御について、×２n'倍速モードから×２n"倍速モードへのジャンプを例として用いて説明する。
これは、高速モードへとジャンプする場合であり、この場合の補正制御処理のシグナル図は図８のようになる。
【００４１】
図８に示すように、当該処理においては、コントローラからのモード切換信号Ｓ１１および指令値Ｓ１３がパルスモータドライバーに出力される。また、バーチャルモータＶＭは、コントローラから入力した×１倍速モード信号Ｓ１２に対して、整定改善と脱調対策としての所定のフィルタリング処理を行い、Ｎを生成する。パルスモータドライバーには、モード切換信号Ｓ１とＮ’を示す信号Ｓ１３出力される。スイッチＳＷ１の切り換えは、モード切換信号Ｓ１１に基づいて行われる。
【００４２】
図８において、所定のサンプリングタイミングにてスイッチＳＷ１を１／２n"側に倒す直前にノードｍに対して下記式（４）で示される操作を施す。
【００４３】
【数４】
ｍ＝ｍ／２n"-n'                                     （４）
【００４４】
このとき、下記式（５）が成り立つ。
【数５】
ｎ3 ＝〔ｍ〕＝０（∵ｎ”≧ｎ’）                      （５）
【００４５】
そのため、Ｎ’は何の影響も受けない。
次に、スイッチＳＷ１を１／２n 側に倒し、後は、前述したモードジャンプ補正アルゴリズムを実行する。尚、スイッチＳＷ１を倒した後からｎ1 は下記式（６）に示すように変化する。
【００４６】
【数６】
ｎ1 ＝ｎ1 ／２n"-n'                                   （６）
【００４７】
すなわち、スイッチＳＷ１が倒れる前後で２n"-n' 倍の段差が発生するが、同時にパルスモータドライバーのドライブモードも×２n"倍速モードに変更をかけるのでパルスモータ軸の速度は変わらない。
【００４８】
次に、μ−ステップモード間ジャンプの直後の補正制御について、×２n"倍速モードから×２n'倍速モードへのジャンプを例として用いて説明する。
図８にて、所定のサンプリングタイミングにてスイッチＳＷ１を１／２n'側に倒す直前にノードｍに対して下記式（７）で示される操作を施す。
【００４９】
【数７】
ｍ＝ｍ／２n'-n"                                       （７）
【００５０】
整数値ｎ3 ＝〔ｍ〕は、ｎ’−ｎ”の大小によってとり得る値は変わるが、ｎ”−ｎ’＝５の時、最大値は３１にもなる。
しかし、実用上、下記式（８）が成り立つ、
【００５１】
【数８】
ｎ”＝ｎ＋１                                          （８）
【００５２】
つまり隣りのμステップモード間のジャンプを考えるのが普通であるから、下記式（９）が成り立つ。
【００５３】
【数９】
ｎ3 ＝〔ｍ〕＝０又は１                                （９）
【００５４】
そのため、この値をＮ’に加算し、ｍからこの値を差し引き、後は、図１を用いて前述したμ−ステップモード間ジャンプ補正制御を実行する。よって、スイッチＳＷ１が、×２n"倍速モードから×２n'モード倍速に切り換えられるタイミングではＮ’は、上記式（２）による「＋１」と、上記式（９）による「＋１」の計「＋２」が発生する可能性がある。
しかし、このとき、パルスモータのモードも×２n'に変更されているので、パルスモータ軸の角度は×２n"倍速モードの１パルスと同じであるから、実用に殆ど問題ないと思われる。
尚、式（８）の条件は必ずしも必要ではなく、例えば〔ｍ〕＝３１をそのままＮ’に加算しても良い。これは、パルスモータのモードも×２n'倍速モードに変更されるためである。
【００５５】
次に、μ−ステップモード間ジャンプ補正制御におけるμ−ステップモードの切換タイミングについて説明する。
図５でも説明したように、パルスモータドライバーのモータ電圧ＶCCM が充分に高くかつパルス発生ハードウェアが充分に高い周波数のパルス列ｆｐを発生可能であれば、ＴＮ特性の速度軸（θ’）はμ−ステップモード毎に帯状に領域分けされる。ＶCCM が小さかったりパルス列ｆｐを充分大きくできないと、図５に示す各領域が重なってくる。このことは、ベアリング寿命も関係してくる。いずれにしても、ある倍速モードが出し得る最大速度は、パルスモータ＋ドライバーシステムで一意的に決定される。この状況を図９に示す。尚、図９に示す特性は、パルスモータの電圧および電流を一定にした場合のものである。
【００５６】
図９に示す実測データが得られたら各倍速モードでの最高速度をコントローラはデータベースとして持ち指令速度θｒ’が与えられたとき、θｒ’を実現できる最も低速モードで動作するように、具体的には、θｒ’より大きいθ’（ｍａｘ）×２n のうち最小の最高速度の倍速モードを選択するように、ダイナミックにモードを切り換えていけば精度上最も好ましい。こうすることで、短タクト高精度動作がロボットのどんな動作（ＰＴＰ，ＣＰ，トラッキング）でも可能となる。
また、本実施形態に係わるパルスモータの制御方法およびその装置によれば、パルスモータのＴＮ特性をフルに利用した制御が可能になり、その性能をさらに高めることができる。
【００５７】
第２実施形態
本実施形態に係わるμ−ステップモード間ジャンプ補正制御は、上述した第１実施形態に係わるパルスモータの制御方法において、機械的な共振発生を防止するものである。基本的な構成は、上述した第１実施形態と同じである。
図１０は、本実施形態に係わるパルスモータの制御方法およびその装置における制御信号の生成処理を説明するための図である。
図１０に示すように、当該処理においては、コントローラからのモード切換信号Ｓ２１および指令値Ｓ２３がパルスモータドライバーに出力される。また、バーチャルモータＶＭは、コントローラから入力した×１倍速モード信号Ｓ２２に対して、整定改善と脱調対策としての所定のフィルタリング処理を行い、Ｎを生成する。パルスモータドライバーには、モード切換信号Ｓ２１とＮ’を示す信号Ｓ２３出力される。スイッチＳＷ２の切り換えは、モード切換信号Ｓ２１に基づいてサンプリング時間Ｔｓ毎に行われる。
【００５８】
先ず、本実施形態に係わるパルスモータの制御方法を説明する前に、考慮すべき事項について説明する。
パルスモータロボットの問題点の一つに、走行時における機械的共振の問題がある。このような機械的共振が発生すると、走行精度の確保が難しくなり、振動音が発生し、動作上好ましくない。
かかる機械的共振の発生原理は、単純で、パルスモータのステップ周期（周波数）と、パルスモータロボットの機械系の共振周波数が近づき（時には一致し）、機械を揺するというものである。
【００５９】
かかる問題点を解決するために、従来では、主に次の対策を講じてきた。
（１）速度や負荷について使用仕様内に共振点を持たないように機械設計を行う。
（２）共振が発生したら、ユーザにμ−ステップモードを変更してもらう。
（３）共振が発生したら、ユーザに速度を変更してもらう。
（４）共振が発生したら、ユーザに負荷を変更してもらう。
以上のうち、（１）ではロボットの速度が１００〜１％間を１％刻みで変更でき、しかも負荷も２〜１０ｋｇ程変わり得るため、極めて困難である。
また、（２）は、共振の発生を抑制することが可能であるが、ユーザの負担が大きいと共に、μ−ステップモードの変更で精度が悪化するおそれがある。
さらに、（３），（４）は、原理上、最も優れているが、ユーザの負荷が大きいと共に、速度又は負荷の変更ができない場合の方が多いという問題がある。
尚、この機械的共振の問題は、パルスモータロボット固有の問題ではなく、パルスモータを採用する各種機器（ＦＡ，ＯＡ）などに共通の問題である。
【００６０】
次に、機械的共振の発生メカニズムについて説明する。
パルスモータを定速回転させる場合、図１１に示すように、サンプリング時間Ｔｓ間に一定数のパルス数Ｎを与え続ける。
図１１の場合、Ｔｓ間に３個のパルスが発生することから、１秒間に３／Ｔｓ発、つまり周波数３／Ｔｓ〔Ｈｚ〕の成分でモータ軸がステップ的に回転するから、モータ軸にもし３／Ｔｓ〔Ｈｚ〕及びその高調波を持つ機械的共振系が存在したら、かかる機械的共振系が強制持続振動してしまう。これが機械的共振発生メカニズムである。周波数特性的に言えば、図１２に示すｆ特（周波数特性）を持つ機械系がパルスモータのモータ軸に直結されている場合、上記パルス周波数Ｎ／Ｔｓ〔Ｈｚ〕＝ｆｐが下記式（１０）のようになったときに、機械的共振が発生する。ここで、ｆｒは共振周波数を示している。
【００６１】
【数１０】
ｆｐ≒ｆｒ                                            （１０）
【００６２】
ｆｐ＝Ｎ／Ｔｓは、Ｎの値と共に、つまりロボット速度で変化するため、ある速度で式（１０）の関係が成り立ってしまう。さらに、ｆｒ自身はロボットのワーク等の重量で、こちらも変化するため、やはり、式（１０）の関係が成立してしまう。
このように上記式（１０）の関係がある速度、ある負荷で成立してしまうのは宿命的とも言え、機械設計だけで、この問題を解決するのは困難である。
【００６３】
本実施形態に係わるパルスモータの制御方法は、上述したような問題を考慮しており、機械的共振の発生を効果的に抑制するものである。
以下、本実施形態に係わるパルスモータの制御方法における機械的共振対策手法について説明する。
本実施形態では、以下の（１）〜（３）の事項を考慮して機械的共振を抑制している。
（１）パルスモータ動作精度はできるだけ高くする。つまり、×２0 ，×２1 ，．．，×２n ，．．モード中ｎはできるだけ小さくする。すなわち、ステップ角を小さくする。
（２）ユーザへの負担をできるだけ小さくする。
（３）ロボット機構、ロボット速度・負荷毎に異なった対策をとらない。
【００６４】
図１０を用いて、本実施形態に係わるパルスモータの制御方法を説明する。
本実施形態では、μ−ステップモードにおける×２0 倍速モードと×２1 倍速モードとをアトランダムに切り換える。このとき、μ−ステップモード間ジャンプ補正制御を併用する。
図１０において、
・ｒａｎｄｏｍ（  ）：サンプリング時間Ｔｓ毎にランダムな値を計算する関数であり、その計算結果に応じて生成されたランダムモード切換信号によってパルスモータのモードおよびスイッチＳＷの切り換えが制御される。
・同時に、図８を用いて前述したμ−ステップ補正アルゴリズムを働かせる。
【００６５】
本実施形態に係わるパルスモータの制御方法における機械的共振防止原理について説明する。
図１０のように、μ−ステップモードをアトランダムに切り換えると、パルス周波数（×２0 倍速モード時ｆｐ２0 、×２1 倍速モード時ｆｐ２1 ）は、図１３に示すようにアトランダムに揺すられる。その結果、もし、いずれかが共振周波数ｆｒと一致しても機械的共振が成長する前に共振周波数ｆｒからずれることとなり、機械的共振が成長できない。
従って、本実施形態によれば、共振周波数ｆｒが何処にあっても構わないこととなる。つまり、機械設計時共振対策に多くの時間とコストをかける必要がなくなる。
【００６６】
尚、図１０では、×２0 倍速モードと×２1 倍速モードとの間でスイッチＳＷによる切り換えを行う場合であるがモードをもっと増やして×２0 ，×２1 ，×２2 間のアトランダムスイッチＳＷを用いても精度が許せば構わない。さらに、Ｍ系列発生回路をドライバー側に内蔵してモードを切り換える方式も考えられる。
仮に、図１０をアンチ機械共振ドライブと呼んだ場合、通常動作では、このアンチ機械共振ドライブは使わず、機械共振が気になってきた段階で、このアンチ機械共振ドライブができるように、速度ピーク到達時間Ｔｐ若しくはロボット言語で対応できるようにしておくのが好ましい。
【００６７】
【発明の効果】
以上説明したように、本発明のパルスモータの制御方法およびその装置によれば、短タクトタイムで高精度な動作をモータに行わせることができる。
また、本発明のパルスモータの制御方法およびその装置によれば、パルスモータのＴＮ特性をフルに利用した制御が可能になり、その性能をさらに高めることができる。
さらに、本発明のパルスモータの制御方法およびその装置によれば、ロボットなどのモータによる駆動対象の機械共振を抑制することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係わるパルスモータの制御方法を説明するための図である。
【図２】図１において示した符号の意味を説明するための図である。
【図３】パルスモータの原理を説明するための図である。
【図４】μ−ステップモードの種類を説明するための図である。
【図５】μ−ステップモードとＴＮ特性の関係を示す図である。
【図６】μ−ステップモード間ジャンプ補正制御において考慮すべき事項を説明するための図である。
【図７】μ−ステップモード間ジャンプ補正制御を時間軸から見て説明するための図である。
【図８】μ−ステップモード間ジャンプの直後の補正制御を説明するための図である。
【図９】μ−ステップモードの切換タイミングを説明するための図である。
【図１０】本発明の第２実施形態に係わるパルスモータの制御方法を説明するための図である。
【図１１】パルスモータを定速回転させた場合に、サンプリング時間Ｔｓ間に発生するパルスを説明するための図である。
【図１２】機械共振が発生する周波数を説明するための図である。
【図１３】図１０に示すパルスモータの制御方法における周波数を説明するための図である。
【符号の説明】
Ｓ１，Ｓ１１，Ｓ１２…  モード切換信号
Ｓ２，Ｓ１２，Ｓ２２…  ×１倍速モード信号
ＶＭ…  バーチャルモータ
【図１】
0003658819.tif 000003
【図２】
0003658819.tif 000004
【図３】
0003658819.tif 000005
【図４】
0003658819.tif 000006
【図５】
0003658819.tif 000007
【図６】
0003658819.tif 000008
【図７】
0003658819.tif 000009
【図８】
0003658819.tif 000010
【図９】
0003658819.tif 000011
【図１０】
0003658819.tif 000012
【図１１】
0003658819.tif 000013
【図１２】
0003658819.tif 000014
【図１３】
0003658819.tif 000015