(57)【要約】      （修正有）【課題】物理理論に基づいた演算によりステッピングモータの速度制御を実行するとともに、回路規模及び処理時間を抑えられるようにする。【解決手段】ステップ時間演算部２０２は、ステッピングモータの加速期間又は減速期間でのパラメータを表現する物理理論式に基づいて、ステッピングモータに対するパルス信号の印加時間であるステップ時間を算出するために、ｎステップ（ｎは正整数）目の距離に対する時間を求める。ステップ時間演算部２０２は、物理理論式に含まれる時間の関数である距離ｘ＝ｆx（t）に対してニュートン法を適用することにより、導関数ｆ'x（t）の逆数を用いて表わされる、ｎステップ目の距離に対する時間を求める。その際に、導関数ｆ'x（t）の逆数に対してニュートン法を適用することにより、導関数の逆数を求める。【選択図】図２
2018182895.tif 000002
【特許請求の範囲】
【請求項１】
ステッピングモータを制御するモータ制御装置であって、
前記ステッピングモータの加速期間又は減速期間でのパラメータを表現する物理理論式に基づいて、前記ステッピングモータに対するパルス信号の印加時間であるステップ時間を算出するために、ｎステップ（ｎは正整数）目の距離に対する時間を求めるステップ時間演算手段を備え、
前記ステップ時間演算手段は、
前記物理理論式に含まれる時間の関数である距離に対してニュートン法を適用することにより、前記関数の導関数の逆数を用いて表わされる、前記ｎステップ目の距離に対する時間を求める第一の演算手段と、
前記第一の演算手段で前記ｎステップ目の距離に対する時間を求める際に、前記導関数の逆数に対してニュートン法を適用することにより、前記導関数の逆数を求める第二の演算手段とを備えることを特徴とするモータ制御装置。
【請求項２】
前記ステップ時間演算手段は、前記ステップ時間を、前記ｎステップ目の距離に対する時間と、（ｎ−１）ステップ目の距離に対する時間との差分として算出することを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記第一の演算手段は、ニュートン法を適用する際に、（ｎ−１）ステップ目の距離に対する時間を初期値として設定することを特徴とする請求項１又は２に記載のモータ制御装置。
【請求項４】
前記第二の演算手段は、ニュートン法を適用する際に、前記第一の演算手段によるニュートン法の前回のループ演算で得られた速度の逆数を初期値として設定することを特徴とする請求項１乃至３のいずれか１項に記載のモータ制御装置。
【請求項５】
前記加速期間又は前記減速期間は、加速度が増加する増加速領域、加速度が一定となる定加速領域、加速度が低下する減加速領域を有することを特徴とする請求項１乃至４のいずれか１項に記載のモータ制御装置。
【請求項６】
ステッピングモータを制御するモータ制御装置であって、
前記ステッピングモータの加速期間又は減速期間でのパラメータを表現する物理理論式に基づいて、前記ステッピングモータに対するパルス信号の印加時間であるステップ時間を算出するために、ｎステップ（ｎは正整数）目の距離に対する時間を求めるステップ時間演算手段を備え、
前記ステップ時間演算手段は、
前記物理理論式に含まれる時間の関数である距離に対してニュートン法を適用することにより、前記関数の導関数の逆数を用いて表わされる、前記ｎステップ目の距離に対する時間を求める演算手段を備え、
前記演算手段で前記ｎステップ目の距離に対する時間を求める際に、前記導関数の逆数に、前記演算手段によるニュートン法のループ演算中に得られる時間と（ｎ−１）ステップ目の距離に対する時間との差分を与えることを特徴とするモータ制御装置。
【請求項７】
ステッピングモータを制御するモータ制御方法であって、
前記ステッピングモータの加速期間又は減速期間でのパラメータを表現する物理理論式に基づいて、前記ステッピングモータに対するパルス信号の印加時間であるステップ時間を算出するために、ｎステップ（ｎは正整数）目の距離に対する時間を求めるステップ時間演算手順を有し、
前記ステップ時間演算手順は、
前記物理理論式に含まれる時間の関数である距離に対してニュートン法を適用することにより、前記関数の導関数の逆数を用いて表わされる、前記ｎステップ目の距離に対する時間を求める第一の演算手順と、
前記第一の演算手順で前記ｎステップ目の距離に対する時間を求める際に、前記導関数の逆数に対してニュートン法を適用することにより、前記導関数の逆数を求める第二の演算手順とを有することを特徴とするモータ制御方法。
【請求項８】
ステッピングモータを制御するモータ制御方法であって、
前記ステッピングモータの加速期間又は減速期間でのパラメータを表現する物理理論式に基づいて、前記ステッピングモータに対するパルス信号の印加時間であるステップ時間を算出するために、ｎステップ（ｎは正整数）目の距離に対する時間を求めるステップ時間演算手順を有し、
前記ステップ時間演算手順は、
前記物理理論式に含まれる時間の関数である距離に対してニュートン法を適用することにより、前記関数の導関数の逆数を用いて表わされる、前記ｎステップ目の距離に対する時間を求める演算手順を有し、
前記演算手順で前記ｎステップ目の距離に対する時間を求める際に、前記導関数の逆数に、前記演算手順によるニュートン法のループ演算中に得られる時間と（ｎ−１）ステップ目の距離に対する時間との差分を与えることを特徴とするモータ制御方法。
【請求項９】
請求項１乃至６のいずれか１項に記載のモータ制御装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステッピングモータ（パルスモータ）を制御するモータ制御装置、方法及びプログラムに関する。
【背景技術】
【０００２】
ステッピングモータは、パルス信号により駆動され、パルス信号の周波数に応じた回転速度で、パルス信号のパルス数に応じた角度だけ回転する。したがって、ステッピングモータの速度制御を行うためには、パルス信号の周波数及びパルス数を制御する必要があり、指令速度に基づいて、パルス信号の印加時間を算出する必要がある。
例えば特許文献１には、パルスモータの加速時又は減速時にマイクロステップ駆動におけるマイクロステップ間隔をパルスモータの駆動電流の１／４周期毎に変化させることが開示されている。これにより、移動物体の加速時又は減速時の速度分解能が細かくなり、移動物体の加減速をなめらかに行うことができる。
【０００３】
ステッピングモータにおいては、図８（ａ）に示すように、時間に対する速度を台形状に制御する台形制御が行われる。台形制御では、ステッピングモータの加減速時に、加速度を一定とし、回転速度を徐々に上昇又は低下させる。台形制御に関して、例えば特許文献２には、パルス列の発生タイミングを漸化式で計算する構成が開示されている。
また、台形制御における加速度変化を抑える方式として、図８（ｂ）に示すように、Ｓ字制御が知られている。Ｓ字制御では、ステッピングモータの加減速時に、加速度を台形状に変化させる。
【０００４】
また、パルス信号を様々な加減速パターンに変化させるために、各種の速度曲線の加減速パターンデータを記憶するパターンメモリを用いた加減速パルス発生装置が提案されている。この加減速パルス発生装置は、パターンメモリに記憶された加減速パターンデータを順次読み出し、並直列変換回路により直列データに変換してパルス信号として出力するものである。
【０００５】
また、特許文献３には、簡単な漸化式を用いて、複数の直線からなる速度パターンを演算し、加速度変化点においては、漸化式に代入する加速度を次の直線の加速度又は前の直線の加速度とすることにより、加速度の変化を抑制する手法が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１１９９９７号公報
【特許文献２】特開平７−１６３１９５号公報
【特許文献３】特開２０００−１３９０９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ステッピングモータの速度制御を行う場合に、ステッピングモータの挙動を表現する物理理論に基づいた演算によるのが理想的であるが、物理理論式によっては平方根や立方根等の演算が必要となり、それを解くためには回路規模及び処理時間が増大する。
一方、ステッピングモータの速度制御を近似計算で行う場合、回路規模及び処理時間の点ではメリットとなるが、近似計算の精度によっては、理論通りの速度パターンが得られず、また、様々な速度パターンに対応できないことがある。そのため、例えば加速度の急激な変化を最適に抑制することができず、振動が発生してしまう、或いは振動を抑制するための加速時間や減速時間が長くせざるをえないといった問題がある。また、加減速パターンデータ等をメモリに記憶させる場合、加減速期間が長くなる場合、さらには加減速パターンの増加やマイクロステップ駆動の精度増大に従って、必要なメモリの容量が増大するという問題がある。これでは、例えばダイナミックに位置や速度をジョイスティックで制御するようなロボットハンド（例えば医療用ロボット・ダヴィンチ）には対応困難である。
【０００８】
本発明的は上記のような点に鑑みてなされたものであり、物理理論に基づいた演算によりステッピングモータの速度制御を実行するとともに、回路規模及び処理時間を抑えられるようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明のモータ制御装置は、ステッピングモータを制御するモータ制御装置であって、前記ステッピングモータの加速期間又は減速期間でのパラメータを表現する物理理論式に基づいて、前記ステッピングモータに対するパルス信号の印加時間であるステップ時間を算出するために、ｎステップ（ｎは正整数）目の距離に対する時間を求めるステップ時間演算手段を備え、前記ステップ時間演算手段は、前記物理理論式に含まれる時間の関数である距離に対してニュートン法を適用することにより、前記関数の導関数の逆数を用いて表わされる、前記ｎステップ目の距離に対する時間を求める第一の演算手段と、前記第一の演算手段で前記ｎステップ目の距離に対する時間を求める際に、前記導関数の逆数に対してニュートン法を適用することにより、前記導関数の逆数を求める第二の演算手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、物理理論に基づいた演算によりステッピングモータの速度制御を実行するとともに、回路規模及び処理時間を抑えることができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係るモータ制御装置の構成を示す図である。
【図２】第１の実施形態における駆動制御部の詳細な構成を示す図である。
【図３】第１の実施形態における駆動制御部のステップ時間演算部の詳細な構成を示す図である。
【図４】第１の実施形態においてニュートン法を二段階に適用して到達時間及び導関数の逆数を求める処理を示すフローチャートである。
【図５】Ｓ字制御における加速制御のパラメータを示す図である。
【図６】１−２相励磁駆動の駆動波形パターン例を示す図である。
【図７】第２の実施形態における駆動制御部のステップ時間演算部の詳細な構成を示す図である。
【図８】ステッピングモータの速度制御の例を説明するための図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して、本発明の好適な実施形態について説明する。
［第１の実施形態］
第１の実施形態に係るモータ制御装置及びモータ制御方法について説明する。
（モータ制御装置の構成）
図１は、第１の実施形態に係るモータ制御装置の構成を示す図である。
駆動指令部１０１は、例えば上位の制御手段から与えられる駆動条件に基づいて、加速形状情報である加速形状パラメータ１を算出して、駆動制御部１０２に出力する。
本実施形態では、図８（ｂ）で説明したＳ字制御における加速制御を説明する。図５に、Ｓ字制御における加速制御の駆動条件となるパラメータ、及び加速形状パラメータ１の関係を示す。駆動条件となるパラメータは、初速度（ｖ0）、到達速度（ｖmax）、到達距離（ｘmax）、到達時間（ｔmax）、最大加速度（ａ＝ａmax）である。また、Ｓ字制御における加速制御を実施する加速期間では、加速度が増加する増加速領域（領域１）、加速度が一定となる定加速領域（領域２）、加速度が低下する減加速領域（領域３）が設定され、加速形状パラメータ１は、各領域１〜３における加速度傾きｋ1〜ｋ3、加速度ａ1〜ａ3、速度ｖ1〜ｖ3、距離（ステップ位置）ｘ1〜ｘ3、到達時間ｔ1〜ｔ3である。駆動条件の中に加速形状パラメータそのものが含まれていてもよいが、駆動条件は、少なくとも加速形状パラメータを算出するのに必要十分な情報があればよい。なお、Ｓ字制御における減速制御及びそれを実施する減速期間は、駆動条件や加速形状パラメータが異なるだけで、加速制御及び加速期間と同様であり、その説明は省略する。
【００１３】
駆動制御部１０２は、駆動指令部１０１から出力される加速形状パラメータ１に基づいて、ステッピングモータ１０４を駆動するためのパルス信号の印加時間（本願では「ステップ時間」とも呼ぶ）を算出して、それに応じて駆動波形信号２を駆動部１０３に出力する。
【００１４】
駆動部１０３は、駆動制御部１０２から出力される駆動波形信号２に基づいて、実際にステッピングモータ１０４を駆動するのに必要な電圧及び電流を駆動信号３としてステッピングモータ１０４に供給するアナログ回路である。
【００１５】
ステッピングモータ１０４は、駆動部１０３から出力される駆動信号３のパルス数に基づいて、モータ構造から決定されるステップ角単位で回転する。ステッピングモータ１０４の回転速度は、駆動信号３の周波数に対応する。ステッピングモータの構造やマイクロステップ駆動を含めた駆動方式の詳細は割愛するが、一例として図６に１−２相励磁駆動の駆動波形パターン例を示す。
【００１６】
（Ｓ字制御における加速制御）
以下では、駆動制御部１０２の構成、及び駆動制御部１０２において加速形状パラメータ１に基づいてステップ時間を算出する処理の詳細を説明する。
図２に、駆動制御部１０２の詳細な構成を示す。図２に示すように、駆動制御部１０２は、駆動波形生成部２０１と、ステップ時間演算部２０２とを備える。
駆動波形生成部２０１は、例えば上位の制御手段から駆動開始指令が入ると、演算指令４をステップ時間演算部２０２に出力する。ステップ時間演算部２０２は、駆動波形生成部２０１から受け取った演算指令４をトリガとして、後述するアルゴリズムでステップ時間５を算出し、ステップ時間５を駆動波形生成部２０１に出力する。駆動波形生成部２０１は、ステップ時間演算部２０２から受け取ったステップ時間５に基づいて駆動波形を生成し、駆動波形信号２を出力する。
【００１７】
具体的には、駆動波形生成部２０１は、ステップ時間５の時間、所定のパターンの駆動波形（例えば図６に記載のＡ，Ｂ，ＮＡ，ＮＢ）を保持する。また、次回のパターンは、ステップ時間５が経過したときに切り替える必要があるため、駆動波形生成部２０１は、現在の駆動波形信号２を出力すると同時に、次回のステップ時間５を演算するための演算指令４をステップ時間演算部２０２に出力する。この動作を到達速度（ｖmax）や到達距離（ｘmax）に到達するまで、或いは到達時間（ｔmax）経過するまで繰り返して、ステッピングモータ１０４を加速させる。ステッピングモータ１０４の加速が終了した後は、速度を維持するために一定のステップ時間で駆動波形信号２を生成し続ける。このステップ時間は、概ね加速が終了した最終ステップ時間を用いる。その後、上位の制御手段から減速指令又は再加速指令があった場合、上述した駆動開始からの加速制御と同様の減速制御又は加速制御を行う。
【００１８】
（ステップ時間の算出）
次に、ステップ時間演算部２０２によるステップ時間の算出処理の詳細を説明する。ステップ時間演算部２０２では、ステップ時間を算出するために、ニュートン法による収束演算を利用しており、そのアルゴリズムの詳細を説明する。
まず、図５で説明した加速度ａ1〜ａ3、速度ｖ1〜ｖ3、距離ｘ1〜ｘ3を表現する物理理論式を（式１）に示す。
【００１９】
【数１】
2018182895.tif 000003
【００２０】
図５で説明したように、加速期間では、増加速領域（領域１）、定加速領域（領域２）、減加速領域（領域３）が設定され、添え字１〜３は領域を表わすが、以下の説明ではこの添え字を省略する。
ステッピングモータ１０４の速度制御に必要なステップ時間５は、（式１）において、ｎステップ目（step_n）の距離ｘ（step_n）に対する到達時間t（step_n）と、前回のステップ（（ｎ−１）ステップ目）の距離ｘ（step_n-1）に対する到達時間ｔ（step_n-1）との差分t（step_n）−ｔ（step_n-1）となる（ｎは正整数である）。ここで、ｘ（step_n）やｘ（step_n-1）は、モータ構造に起因する特定のステップ角度に相当する。また、ｘ（step_n）−ｘ（step_n-1）は、１ステップ角度と同じ、或いは規格化、例えばｐｐｓ（pulse per sec）の単位系で考える場合は、１パルスとなる。ただし、マイクロステップ駆動の場合は、分解能が向上しさらに小さな値となるが、概ね２のべき乗で割った値で使用される。
【００２１】
上述の通りステップ時間５を算出するには、（式１）の物理理論式に基づいてｎステップ目の距離ｘ（step_n）に対する到達時間ｔ（step_n）を求める必要がある。
この場合に、（式１）の物理理論式を到達時間ｔについて解こうとすると、距離ｘを表わす３次関数を解く必要があるため、立方根や平方根等の演算が必要となり、回路規模及び処理時間が増大する。
本実施形態では、以下に述べるように、収束演算アルゴリズムであるニュートン法を二段階に適用することによって到達時間ｔ（step_n）を求める。これにより、式（１）の物理理論式に基づいた演算によりステッピングモータ１０４の速度制御を実行するとともに、平方根や立方根等の演算が不要になり、回路規模及び処理時間の大幅な削減を図ることができる。
【００２２】
ニュートン法を二段階に適用することによって到達時間ｔ（step_n）を求める解法を説明する。
（式１）の距離ｘを表わす関数を一般化すると、（式２）のように書き直すことができる。添え字step_nは、ｎステップ目（step_n）における距離や到達時間であることを表わし、ｘ（step_n）やｔ（step_n）と同じものを意味する。
【００２３】
【数２】
2018182895.tif 000004
【００２４】
（式２）を満たす到達時間ｔ（step_n）を求めるためにニュートン法（「第一のニュートン法」とも呼ぶ）を適用すると、（式３）のようになる。
【００２５】
【数３】
2018182895.tif 000005
【００２６】
添え字のloop_mは、到達時間ｔ（step_n）を求めるためのループ演算の回数ｍを表わし、ｔ（loop_m）と同じものを意味する。図４（ａ）に、第一のニュートン法により到達時間ｔ（step_n）を求める処理例を示す。ステップＳ４０１で、ループ演算の初回で用いる初期値を設定する。ステップＳ４０２、Ｓ４０３で、ループ演算の初回は初期値を使用し、それ以降は前回のループ演算で求めたｔ（loop_m）を使用して、ｔ（loop_m）を計算、更新することを繰り返すことによって、ｔ（loop_m）が求めるべき到達時間ｔ（step_n）に収束する。
【００２７】
ここで、（式３）において、ｆ'x（t（loop_m））はｆx（t（loop_m））の導関数であるが、これは距離ｘを微分したものであるので、速度ｖと同じである。
（式３）に現れる導関数ｆ'x（t（loop_m））の逆数、すなわち速度ｖの逆数に対してニュートン法（「第二のニュートン法」とも呼ぶ）を適用する。導関数ｆ'x（t（loop_m））の逆数だけに着目した式を（式４）に示す。
【００２８】
【数４】
2018182895.tif 000006
【００２９】
添え字のloop_lは、導関数ｆ'x（t（loop_m））の逆数s（loop_m）を求めるためのループ演算の回数ｌを表わし、ｓ（loop_l）と同じものを意味する。図４（ｂ）に、導関数ｆ'x（t（loop_m））の逆数s（loop_m）を求める処理例を示す。この処理は、図４（ａ）の処理においてｔ（loop_m）を計算するときに実行される。ステップＳ４１１でループ演算の初回で用いる初期値を設定する。ステップＳ４１２、Ｓ４１３で、ループ演算の初回は初期値を使用し、それ以降は前回のループ演算で求めたs（loop_l）を使用して、s（loop_l）を計算、更新することを繰り返すことによって、s（loop_l）が求めるべきs（loop_m）に収束する。
【００３０】
この場合に、第二のニュートン法のループ演算の回数ｌを、第一のニュートン法のループ演算の回数ｍよりも少なくする。第二のニュートン法のループ演算の回数ｌを制限し、その分、第一のニュートン法のループ演算の回数ｍを増やすことにより、演算速度と演算精度を向上させることができる。
【００３１】
到達時間t（step_n）を求めるための二段階のニュートン法を表現すると、（式３）及び（式４）より、（式５）のようになる。
【００３２】
【数５】
2018182895.tif 000007
【００３３】
以上のようにすることで、到達時間t（step_n）を、複雑な関数ｆx（t）を解くことなく、また逆数演算も省略して求めることが可能となる。
既述したように、ステッピングモータ１０４の速度制御では、パルス信号の印加時間であるステップ時間を設定する必要があり、ステップ時間は到達時間の差分t（step_n）−ｔ（step_n-1）となる。ステッピングモータのステップ駆動とともに、到達時間の算出とステップ時間の更新を逐次行っていき、所望の加減速制御を実現することができる。
【００３４】
次に、駆動制御部１０２のステップ時間演算部２０２において、上述したニュートン法を二段階に適用することによって到達時間ｔ（step_n）を求める解法を実現するための構成例を説明する。
図３に、駆動制御部１０２のステップ時間演算部２０２の詳細な構成を示す。ステップ時間演算部２０２の各部は、例えばＣＰＵがハードディスク等に格納されているプログラムを読み出し、このプログラムを実行することにより実現可能である。
演算制御部３０１は、駆動波形生成部２０１から受け取った演算指令４をトリガとして、到達時間t（step_n）を求める第一のニュートン法のループ演算を実行する。
演算制御部３０１は、速度・距離演算部３０２に形状データ６及び時間データ７を出力し、到達時間演算部３０４に時間データ７及びステップ位置８を出力する。そして、演算制御部３０１は、最終的な演算結果となるステップ時間５を駆動波形生成部２０１に出力する。
【００３５】
形状データ６は、（式１）の速度ｖ及び距離ｘを求めるのに必要な各係数パラメータである。
時間データ７は、第一のニュートン法のループ演算中のｔ（loop_m）である。ｔ（loop_m）について、演算開始時（ループ演算の初回）には、演算制御部３０１が時間データ７の初期値を設定する（図４（ａ）のステップＳ４０１）。初期値は、予め設定された固定値でもよいし、前回のステップ（（ｎ−１）ステップ目）で求められた到達時間ｔ（step_n-1）でもよい。ステッピングモータ１０４の加減速制御時は、ステップが線形に増加するため、後者の方が求めるべき解に近い値になり、収束速度が速くなる。また、ループ演算の初回よりも以降は、演算制御部３０１は、到達時間演算部３０４から出力される到達時間演算値１２が用いられる。
ステップ位置８は、現在のステップを表わす情報であり、step_nと同じ情報である。ステップ位置８は、加速形状パラメータ１の中に含まれてもよいし、ステッピングモータ１０４におけるステップ位置８は演算指令４の発行回数に比例するので、演算制御部３０１にカウンタを設けて、内部で生成してもよい。
演算制御部３０１は、ｍ回のループ演算終了後に、ステップ時間５を出力する。演算制御部３０１は、少なくとも前回のステップ（（ｎ−１）ステップ目）で求められた到達時間ｔ（step_n-1）を保持しており、ステップ時間５はt（step_n）−t（step_n-1）として算出される。
【００３６】
速度・距離演算部３０２は、形状データ６及び時間データ７に基づいて、速度演算値９及び距離演算値１０を出力する。各演算は、（式１）の速度ｖや距離ｘを求める式に則り実行される。また、領域１〜３によって参照する式が異なってくるが、この領域判定は時間データ７を参照して行われる。例えば時間データ７≦ｔ1のときは領域１、ｔ1＜時間データ７≦ｔ2のときは領域２、それ以外のときは領域３となる。
【００３７】
速度逆数演算部３０３は、導関数ｆ'x（t（loop_m））の逆数（速度の逆数）に対して第二のニュートン法を適用し、（式４）の演算を実行して、速度逆数演算値１１を求めて、到達時間演算部３０４に出力する。
第二のニュートン法のループ演算中のs（loop_l）について、演算開始時（ループ演算の初回）には、速度逆数演算部３０３が初期値を設定する（図４（ｂ）のステップＳ４１１）。初期値は、予め設定された固定値でもよいし、前回の上位ループｍでの速度逆数演算結果s（loop_m-1）でもよい。ステッピングモータ１０４の加減速制御時は、t（loop_m）が単調増加であり、後者の方が求めるべき解に近い値になり、収束速度が速くなる。また、ループ演算の初回よりも以降は、式（４）通り、ループ演算中の前回の結果s（loop_l-1）を使用する。
【００３８】
到達時間演算部３０４は、時間データ７及びステップ位置８、並びにこれまで求めた距離演算値１０及び速度逆数演算値１１に基づいて、（式５）に則り、到達時間演算値１２を出力する。
なお、図３の構成例においては、演算制御部３０１、速度・距離演算部３０２及び到達時間演算部３０４が本発明でいう第一の演算手段として機能し、速度逆数演算部３０３が本発明でいう第二の演算手段として機能する。
【００３９】
以上のように第一のニュートン法のループ演算及び第二のニュートン法のループ演算を実行することで、到達時間t（step_n）を理論解に収束させる。演算精度は、式（１）の物理理論式、及びループ回数や初期値に依存する。この場合に、ステッピングモータ１０４の加減速中のステップ位置や経過時間が連続であるため、前回演算結果を初期値とすることで、ループ演算回数を大幅に減らすことが可能であり、高速処理が可能である。また、（式１）に示すような物理理論式をそのまま実装して解を求めることが可能であり、解の近似式を用いなくてもよく、本質的に演算精度が向上するとともに、解を参照するメモリ等も不要となる。
これにより、物理理論式で表わされる理想的な速度制御を実現するパルス信号の印加時間を、高精度、高速、小演算負荷で算出することが可能となり、物理理論に基づくステッピングモータの速度制御において高応答性を実現することができる。
【００４０】
［第２の実施形態］
第２の実施形態では、速度ｖの逆数の求め方を変更した形態を説明する。以下では、第１の実施形態と異なる点を中心に説明し、第１の実施形態と同様の構成要素には同一の符号を付し、その説明を省略する。
【００４１】
図７に、駆動制御部１０２のステップ時間演算部２０２の構成を示す。第１の実施形態の図３と異なるのは、速度逆数演算部３０３に替えてステップ時間使用速度逆数演算部７０１を備え、また、ステップ時間出力処理部７０２を備えた点である。
ステッピングモータの駆動制御に用いられるステップ時間は、一定のステップ角だけ回転するのに要する時間情報であり、これは速度の逆数値と同等の情報である。そこで、速度の逆数に、演算制御部３０１での第一のニュートン法のループ演算中で得られる時間と（ｎ−１）ステップ目の距離に対する時間との差分を与える。すなわち、到達時間ｔ（step_n）を求める第一のニュートン法のループ演算中に、演算制御部３０１からt（loop_m）−ｔ（step_n-1）を中間ステップ時間１３として出力し、この値を最新の速度逆数値としてステップ時間使用速度逆数演算部７０１で使用する。
【００４２】
ステップ時間使用速度逆数演算部７０１では、中間ステップ時間１３を速度の逆数として使用することで、収束速度を大幅に向上させることが可能となる。これにより、第１の実施形態のように複数回のループ演算が必要となる第二のニュートン法を省略することが可能となる。
中間ステップ時間１３は、最終的には求めたいステップ時間となる。この最終的な値のみを出力するために、ステップ時間出力処理部７０２では、第一のニュートン法による収束演算終了時にだけ、中間ステップ時間１３をステップ時間５として出力する。
以上のようにして、第一のニュートン法のループ演算だけの実行によって（厳密には第二のニュートン法の演算ループは１）、到達時間t（step_n）を理論解に収束させることができ、第1の実施形態よりもさらに高速処理可能となる。
【００４３】
本発明は、例えばネットワークカメラや製造装置、ロボットハンドの可動部に使用されるステッピングモータに適用可能であり、可動部の速度制御性能を向上させることができる。例えばネットワークカメラは、ＣＰＵ、ＲＯＭ、ＲＡＭ、撮像部、可動部（雲台）、ネットワークインターフェースを備えて構成される。
【００４４】
以上、本発明を実施形態と共に説明したが、上記実施形態は本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
上記実施形態では、（式１）で示す物理理論式を具体例として説明したが、本発明はこの物理理論式に限定されるものではなく、（式１）が修正された場合でも適用可能である。換言すれば、（式１）が修正された場合でも、速度・距離演算部３０２に実装される演算式を修正するだけで、容易に対応できることも本発明の特徴である。
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４５】
１０１：駆動指令部
１０２：駆動制御部
１０３：駆動部
１０４：ステッピングモータ
２０１：駆動波形生成部
２０２：ステップ時間演算部
３０１：演算制御部
３０２：速度・距離演算部
３０３：速度逆数演算部
３０４：到達時間演算部
７０１：ステップ時間使用速度逆数演算部
７０２：ステップ時間出力処理部
【図１】
2018182895.tif 000008
【図２】
2018182895.tif 000009
【図３】
2018182895.tif 000010
【図４】
2018182895.tif 000011
【図５】
2018182895.tif 000012
【図６】
2018182895.tif 000013
【図７】
2018182895.tif 000014
【図８】
2018182895.tif 000015