(57)【特許請求の範囲】
【請求項１】
所定の更新周期毎にステッパモータを回転させて、該ステッパモータの回転位置が目標角度に達するように制御するステッパモータの制御装置において、前記ステッパモータの回転位置が前記目標角度に向かう向きを正方向とした場合に、
各更新周期で、前記ステッパモータの回転位置を前記正方向に変化させる量を示す基準ステップ数を決定する基準ステップ数算出手段と、
以下の式（１）及び（２）が両方満たされるという第１条件と、以下の式（３）が満たされるという第２条件とを判定する条件判定手段と、を有し、
（｜Ｖ（Ｎ−１）｜＋１）＊（｜Ｖ（Ｎ−１）｜＋２）／２≦｜DISTANCE｜ …（１）
｜Ｖ（Ｎ−１）｜＜Ｖ＿ＭＡＸ …（２）
｜Ｖ（Ｎ−１）｜＊（｜Ｖ（Ｎ−１）｜＋１）／２＞｜DISTANCE｜ …（３）
但し、Ｖ（Ｎ−１）は前回の更新周期での基準ステップ数、DISTANCEは前記ステッパモータの目標角度から前記基準ステップ数を累積することで得られる角度を引いた値をステップ単位で表した数値、Ｖ＿ＭＡＸは、１回の更新周期でステッパモータが回転できる最大ステップ数
前記基準ステップ数算出手段は、
初期的な基準ステップ数を「０」とし、
前回の更新周期にて、前記第１条件が満たされる場合には、今回の更新周期にて前記基準ステップ数を１だけ大きい値に設定し、
前回の更新周期にて、前記第２条件が満たされる場合には、今回の更新周期にて前記基準ステップ数を１だけ小さい値に設定し、
前回の更新周期にて、前記第１の条件及び第２の条件が共に満たされない場合には、前回の更新周期で設定された基準ステップ数とする処理を、以下の式（４）を満たす更新周期が経過する毎に行い、
ｔ≧（θｋ／ａ＿ＭＡＸ）＾（１／２） …（４）
但し、ｔは更新周期、θｋは１ステップの角度、ａ＿ＭＡＸはステッパモータの最大応答加速度
更に、
更新周期が経過する毎に、前記ステッパモータを、今回の更新周期での基準ステップ数だけ回転させるステッパモータ駆動手段と、
を備えることを特徴とするステッパモータ制御装置。
【請求項２】
前記第１条件は、前記ステッパモータが停止または前記正方向に回転しており、且つ、前記式（１）及び（２）が両方満たされることであり、
前記第２条件は、前記ステッパモータが停止または前記正方向に回転しており、且つ、前記式（３）が満たされるという条件が満たされることであることを特徴とする請求項１記載のステッパモータ制御装置。
【請求項３】
前記ステッパモータの目標角度をｘ倍（ｘ：任意の自然数）することで、制御上の目標角度を設定する目標角度設定手段を備え、
前記条件判定手段は、前記目標角度設定手段が設定した制御上の目標角度に基づいて、前記第１条件と前記第２条件とを判定し、
前記基準ステップ数算出手段は、前記目標角度設定手段が設定した制御上の目標角度に基づいて、前記基準ステップ数算出処理を行い、
前記ステッパモータ駆動手段は、今回の更新周期での出力角度データを１／ｘ倍することで、駆動角度データを算出し、前記ステッパモータを、前記基準ステップ数の１／ｘだけ回転させることを特徴とする請求項１または２記載のステッパモータ制御装置。
【請求項４】
前記ステッパモータ駆動手段は、今回の更新周期での出力角度データを１／ｎ倍（ｎ：任意の自然数）することで、駆動角度データを算出する処理を、更新周期の１／ｎ倍の周期で行い、更新周期の１／ｎ倍の時間が経過する毎に、前記ステッパモータを、前記基準ステップ数の１／ｎだけ回転させることを特徴とする請求項１または２記載のステッパモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ステッパモータ制御装置に関する。
【背景技術】
【０００２】
特許文献１に、ステッパモータの回転を制御するステッパモータ制御装置が記載されている。このステッパモータ制御装置は、所定の更新周期毎にステッパモータを回転させる一方、各更新周期におけるステッパモータの回転量を低く押さえることで、ステッパモータの脱調を防止している。
【特許文献１】特開２００１−９１３０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、ステッパモータには、最大応答速度と最大応答加速度とが存在する。ステッパモータを最大応答速度を超えた速度で回転させようとしたり、最大応答加速度を超えた加速度で加速させようとすると、ステッパモータが脱調しやすくなる。したがって、ステッパモータの最大応答速度や最大応答加速度を考慮してステッパモータの制御を行うことが望ましいが、このステッパモータ制御装置は、ステッパモータの最大応答速度や最大応答加速度を考慮した制御を行っていないので、ステッパモータの脱調を防ぐという目的を十分に達成することが出来ない。
【０００４】
本発明は、このような従来の課題を解決するためになされたものであり、その目的とするところは、従来のステッパモータ制御装置よりもステッパモータの脱調を確実に防ぐことが出来るステッパモータ制御装置を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するため、本願に係る発明は、所定の更新周期毎にステッパモータを回転させて、該ステッパモータの回転位置が目標角度に達するように制御するステッパモータの制御装置において、前記ステッパモータの回転位置が前記目標角度に向かう向きを正方向とした場合に、各更新周期で、前記ステッパモータの回転位置を前記正方向に変化させる量を示す基準ステップ数を決定する基準ステップ数算出手段と、以下の式（１）及び（２）が両方満たされるという第１条件と、以下の式（３）が満たされるという第２条件とを判定する条件判定手段と、を有し、
（｜Ｖ（Ｎ−１）｜＋１）＊（｜Ｖ（Ｎ−１）｜＋２）／２≦｜DISTANCE｜ …（１）
｜Ｖ（Ｎ−１）｜＜Ｖ＿ＭＡＸ …（２）
｜Ｖ（Ｎ−１）｜＊（｜Ｖ（Ｎ−１）｜＋１）／２＞｜DISTANCE｜ …（３）
但し、Ｖ（Ｎ−１）は前回の更新周期での基準ステップ数、DISTANCEは前記ステッパモータの目標角度から前記基準ステップ数を累積することで得られる角度を引いた値をステップ単位で表した数値、Ｖ＿ＭＡＸは、１回の更新周期でステッパモータが回転できる最大ステップ数
前記基準ステップ数算出手段は、初期的な基準ステップ数を「０」とし、前回の更新周期にて、前記第１条件が満たされる場合には、今回の更新周期にて前記基準ステップ数を１だけ大きい値に設定し、前回の更新周期にて、前記第２条件が満たされる場合には、今回の更新周期にて前記基準ステップ数を１だけ小さい値に設定し、前回の更新周期にて、前記第１の条件及び第２の条件が共に満たされない場合には、前回の更新周期で設定された基準ステップ数とする処理を、以下の式（４）を満たす更新周期が経過する毎に行い、
ｔ≧（θｋ／ａ＿ＭＡＸ）＾（１／２） …（４）
但し、ｔは更新周期、θｋは１ステップの角度、ａ＿ＭＡＸはステッパモータの最大応答加速度
更に、更新周期が経過する毎に、前記ステッパモータを、今回の更新周期での基準ステップ数だけ回転させるステッパモータ駆動手段と、を備えることを特徴とする。
【０００６】
本願に係る発明の基本動作を図６に示す。図６は、時刻Ｔ０で目標角度がθ１（ステップ）となり、時刻Ｔ６で目標角度が０（ステップ）になっている。この場合、時刻Ｔ６まで出力角度（即ち、基準ステップ数を累積することで得られる角度）がθ１に向かって増加し、それ以降は出力角度が同様に０に向かって減少している。
【発明の効果】
【０００７】
本願に係る発明は、ステッパモータの最大応答速度及び最大応答加速度を考慮した制御を行うので、従来のステッパモータ制御装置よりもステッパモータの脱調を確実に防ぐことが出来る。
【発明を実施するための最良の形態】
【０００８】
［第１の実施の形態］
以下、本発明の第１の実施形態を図面に基づいて説明する。図１は、本発明の第１の実施の形態に係るステッパモータ制御装置１の概略構成を示すブロック図であり、図２は、ステッパモータ制御装置１のうち、出力データ生成部４の構成を示すブロック図である。図３は、出力データ生成部４が実行する処理の手順を示すフローチャートである。
【０００９】
以下の説明において、各種の角度（例えば、後述する目標角度や出力角度等）は、所定の基準角度を０とし、時計回りの方向を正方向とした値で示される。これらの角度の単位は特に明示がない限りステップであり、１ステップの大きさは、０．５（度）とする。
【００１０】
ステッパモータ制御装置１は、車両のスピードメータに使用され、ＣＰＵ、ＲＯＭ、ＲＡＭを備え、入力データラッチ部３と、出力データ生成部４と、出力信号生成部５を実現する。即ち、ステッパモータ制御装置１は、実質的には、入力データラッチ部３と、出力データ生成部４と、出力信号生成部５とを備える。ステッパモータ制御装置１には、マイコン２と、ステッパモータ６とが接続される。マイコン２は、車速センサ２ａに接続される。なお、本実施の形態では、ステッパモータ制御装置１は、ソフトウェアにて実現されるが、ハードウェア（ＩＣ）にて実現されるようにしても良い。
【００１１】
出力データ生成部４は、残り角度演算部７と、判定部９と、変化量演算部１０と、出力角度演算部１１とを備える。
【００１２】
車速センサ２ａは、車速を検出して、車速信号をマイコン２に出力する。マイコン２は、この車速に応じた目標角度を算出し、目標角度を示す目標角度信号をステッパモータ制御装置１に出力する。
【００１３】
入力データラッチ部３は、車速センサ２ａから与えられた目標角度信号を目標角度データとして保持する。出力データ生成部４は、入力データラッチ部３から目標角度データを取得し、この目標角度データに基づいて、基準ステップ数を示す基準ステップ数データを生成する。基準ステップ数は、ステッパモータ６が回転する方向及びステップ量についての基準値となるものである。即ち、基準ステップ数の符号がステッパモータ６が回転する方向を示し、基準ステップ数の絶対値（即ち、基準ステップ数が示すステップ量）が、ステッパモータ６が回転するステップ量についての基準値となる。正の符号は正方向（時計回りの方向、ＣＷ方向）を示し、負の符号は逆方向（反時計回りの方向、ＣＣＷ方向）を示す。基準ステップ数の絶対値は、基準ステップ数が０または正の値となる場合、ＣＷ変化量とも称され、基準ステップ数が０または負の値となる場合、ＣＣＷ変化量とも称される。なお、第１の実施の形態では、ステッパモータ６は、基準ステップ数が示す方向に、基準ステップ数が示すステップ量だけ回転する。出力信号生成部５は、基準ステップ数を累積して得られる出力角度データを元にモータ駆動信号を生成し、ステッパモータ６に出力する。
【００１４】
ステッパモータ６は、複数のギアを介してスピードメータの指針に接続されており、回転することで、スピードメータの指針を回転させる。なお、ステッパモータ６の回転角度が上述した基準角度となる場合に、スピードメータの指針は０を指すようになっている。ステッパモータ６は、モータ駆動信号に基づいて、基準ステップ数が示す方向に、基準ステップ数が示すステップ量だけ回転する。例えば、ステッパモータ６は、基準ステップ数が−５を示す場合、逆方向に５ステップ回転する。
【００１５】
ステッパモータ制御装置１は、図示しないタイマも備える。このタイマは、更新周期が経過する毎に、出力更新クロック信号を変化量演算部１０と、出力角度演算部１１とに出力する。更新周期は、以下の式（４）を満たすように設定される。ステッパモータ６の最大応答加速度が５０００（度／ｓ＾２）の場合、式（４）の右辺の値は０．０１（ｓ）となるので、更新周期は、０．０１（ｓ）以上の時間に設定される。
【００１６】
ｔ≧（θｋ／ａ＿ＭＡＸ）＾（１／２）  …（４）
ｔ：更新周期、θｋ：１ステップの角度、ａ＿ＭＡＸ：ステッパモータ６の最大応答加速度
次に、図３に示すフローチャートに沿って、ステッパモータ制御装置１による処理の手順について説明する。ステップＳＴ２〜ＳＴ１９−１またはステップＳＴ２〜ＳＴ１９−２の処理が、出力データ生成部４による１回の処理サイクルを構成する。
【００１７】
ステップＳＴ１において、残り角度演算部７は、入力データラッチ部３から目標角度データを取得する。
【００１８】
ステップＳＴ２において、残り角度演算部７は、入力データラッチ部３から取得した目標角度データと、出力角度演算部１１から与えられた前処理サイクルの出力角度データとに基づいて、目標角度が前処理サイクルの出力角度よりも大きいという条件を判定し、この条件が満たされる場合には、ステップＳＴ３に進み、この条件が満たされない場合には、ステップＳＴ１１に進む。残り角度演算部７は、出力角度演算部１１から前処理サイクルの出力角度データが与えられない場合、即ち前処理サイクルの出力角度データが存在しない場合には、前処理サイクルの出力角度が０であるとして、この条件を判定する。
【００１９】
ステップＳＴ３において、残り角度演算部７は、目標角度から出力角度を引くことで、残り角度を算出し、残り角度を示す残り角度データを判定部９に出力する。なお、残り角度演算部７は、前処理サイクルの出力角度データが存在しない場合には、前処理サイクルの出力角度が０であるとして、残り角度データを算出する。
【００２０】
ステップＳＴ４において、判定部９は、変化量演算部１０から与えられた前処理サイクルの基準ステップ数データに基づいて、ＣＣＷ変化量が０であるという条件、具体的には、基準ステップ数が０または正の値であるという条件を判定し、この条件が満たされる場合には、ステップＳＴ５に進み、この条件が満たされない場合には、ＣＣＷ減少指示信号を変化量演算部１０に出力して、ステップＳＴ１４に進む。
【００２１】
ステップＳＴ５において、判定部９は、ステッパモータ６が減速しないと、ステッパモータ６が目標角度を超えてしまうという条件、具体的には、以下の式（３）を満たすという条件を判定する。なお、｜DISTANCE｜は残り角度を示す。
【００２２】
｜Ｖ（Ｎ−１）｜＊（｜Ｖ（Ｎ−１）｜＋１）／２＞｜DISTANCE｜  …（３）
Ｖ（Ｎ−１）：前処理サイクルの基準ステップ数、DISTANCE：ステッパモータ６の目標角度から前処理サイクルの出力角度（即ち、出力データ生成部４が図３に示す処理を開始してから前処理サイクルが終了するまでの間に得られた基準ステップ数を累積することで得られる角度）を引いた値
判定部９は、この条件が満たされる場合には、ＣＷ減少指示信号を変化量演算部１０に出力して、ステップＳＴ６に進み、この条件が満たされない場合には、ステップＳＴ７に進む。
【００２３】
ステップＳＴ６において、変化量演算部１０は、出力更新クロック信号を受信するまで待機し、その後、判定部９から与えられたＣＷ減少指示信号に基づいて、現処理サイクルのＣＷ変化量を、前処理サイクルのＣＷ変化量よりも１小さい値とする。具体的には、変化量演算部１０は、現処理サイクルの基準ステップ数を、前処理サイクルの基準ステップ数よりも、前処理サイクルの出力角度とステッパモータの目標角度との差が小さくなる接近方向に１ステップ小さい値として算出する。変化量演算部１０は、現処理サイクルの基準ステップ数を示す現処理サイクルの基準ステップ数データを出力角度演算部１１に出力する。さらに、変化量演算部１０は、前処理サイクルの基準ステップ数データとして、判定部９に現処理サイクルの基準ステップ数データを出力する。その後、変化量演算部１０は、ステップＳＴ１９−１に進む。
【００２４】
ステップＳＴ７において、判定部９は、前処理サイクルの基準ステップ数データと、最大変移量データとに基づいて、ＣＷ変化量が最大変移量を超えないという条件、具体的には、以下の式（２）が満たされるという条件を判定する。
【００２５】
｜Ｖ（Ｎ−１）｜＜Ｖ＿ＭＡＸ  …（２）
Ｖ＿ＭＡＸ：最大変移量
なお、最大変移量データは、判定部９が記憶する。最大変移量は、１回の更新周期でステッパモータ６が回転できる最大ステップ量である。最大変移量は、最大応答速度が５００（度／ｓ）である場合、５００／０．５＊０．０１＝１０（ステップ）となる。
【００２６】
判定部９は、この条件が満たされる場合、ステップＳＴ８に進み、この条件が満たされない場合には、ＣＷ一定指示信号を変化量演算部１０に出力し、ステップＳＴ１０に進む。
【００２７】
ステップＳＴ８において、判定部９は、加速しても目標角度を超えないという条件、具体的には、以下の式（１）が満たされるという条件を判定する。
【００２８】
（｜Ｖ（Ｎ−１）｜＋１）＊（｜Ｖ（Ｎ−１）｜＋２）／２≦｜DISTANCE｜  …（１）
判定部９は、この条件が満たされる場合、ＣＷ増加指示信号を変化量演算部１０に出力し、ステップＳＴ９に進む。判定部９は、この条件が満たされない場合には、ＣＷ一定指示信号を変化量演算部１０に出力し、ステップＳＴ１０に進む。
【００２９】
ステップＳＴ９において、変化量演算部１０は、出力更新クロック信号を受信するまで待機し、その後、判定部９から与えられたＣＷ増加指示信号に基づいて、現処理サイクルのＣＷ変化量を前処理サイクルのＣＷ変化量よりも１大きな値とする。具体的には、変化量演算部１０は、現処理サイクルの基準ステップ数を、前処理サイクルの基準ステップ数よりも、接近方向に１ステップ大きい値として算出する。変化量演算部１０は、現処理サイクルの基準ステップ数を示す現処理サイクルの基準ステップ数データを出力角度演算部１１に出力する。さらに、変化量演算部１０は、前処理サイクルの基準ステップ数データとして、判定部９に、現処理サイクルの基準ステップ数データを出力する。その後、変化量演算部１０は、ステップＳＴ１９−１に進む。
【００３０】
ステップＳＴ１０において、変化量演算部１０は、出力更新クロック信号を受信するまで待機し、その後、判定部９から与えられた前処理サイクルの出力角度データと、ＣＷ一定指示信号とに基づいて、現処理サイクルのＣＷ変化量を前処理サイクルのＣＷ変化量と同じとする。具体的には、変化量演算部１０は、現処理サイクルの基準ステップ数を、前処理サイクルの基準ステップ数と同じ値として算出する。変化量演算部１０は、現処理サイクルの基準ステップ数を示す現処理サイクルの基準ステップ数データを出力角度演算部１１に出力する。さらに、変化量演算部１０は、前処理サイクルの基準ステップ数データとして、判定部９に、現処理サイクルの基準ステップ数データを出力する。その後、変化量演算部１０は、ステップＳＴ１９−１に進む。
【００３１】
ステップＳＴ１９−１において、出力角度演算部１１は、出力更新クロック信号を受信するまで待機し、その後、前処理サイクルの出力角度に現処理サイクルのＣＷ変化量を加算することで、現処理サイクルの出力角度を算出する。具体的には、出力角度演算部１１は、前処理サイクルの出力角度に、現処理サイクルの基準ステップ数を加算することで、現処理サイクルの出力角度を算出する。出力角度演算部１１は、現処理サイクルの出力角度を示す現処理サイクルの出力角度データを残り角度演算部７と出力信号生成部５とに出力する。その後、出力角度演算部１１は、ステップＳＴ２に戻る。
【００３２】
ステップＳＴ１１において、残り角度演算部７は、出力角度から目標角度を引くことで、残り角度を算出し、残り角度を示す残り角度データを判定部９に出力する。前処理サイクルのデータが存在しない場合の処理は上述した処理と同様である。
【００３３】
ステップＳＴ１２において、判定部９は、前処理サイクルの基準ステップ数データに基づいて、ＣＷ変化量が０であるという条件、具体的には、基準ステップ数が０または負の値であるという条件を判定し、この条件が満たされる場合には、ステップＳＴ１３に進み、この条件が満たされない場合には、ＣＷ減少指示信号を変化量演算部１０に出力して、ステップＳＴ６に進む。
【００３４】
ステップＳＴ１３において、判定部９は、ステッパモータ６が減速しないと、ステッパモータ６が目標角度を超えてしまうという条件、具体的には、上述した式（３）を満たすという条件を判定する。
【００３５】
判定部９は、この条件が満たされる場合には、ＣＣＷ減少指示信号を変化量演算部１０に出力して、ステップＳＴ１４に進み、この条件が満たされない場合には、ステップＳＴ１５に進む。
【００３６】
ステップＳＴ１４において、変化量演算部１０は、出力更新クロック信号を受信するまで待機し、その後、判定部９から与えられたＣＣＷ減少指示信号に基づいて、現処理サイクルのＣＣＷ変化量を、前処理サイクルのＣＣＷ変化量よりも１小さい値とする。具体的には、変化量演算部１０は、現処理サイクルの基準ステップ数を、前処理サイクルの基準ステップ数よりも、接近方向に１ステップ小さい値として算出する。変化量演算部１０は、現処理サイクルの基準ステップ数を示す現処理サイクルの基準ステップ数データを出力角度演算部１１に出力する。さらに、変化量演算部１０は、前処理サイクルの基準ステップ数データとして、現処理サイクルの基準ステップ数データを判定部９に出力する。その後、変化量演算部１０は、ステップＳＴ１９−２に進む。
【００３７】
ステップＳＴ１５において、判定部９は、ＣＣＷ変化量が最大変移量を超えないという条件、具体的には、上述した式（２）が満たされるという条件を判定する。
【００３８】
判定部９は、この条件が満たされる場合、ステップＳＴ１６に進み、この条件が満たされない場合には、ＣＣＷ一定指示信号を変化量演算部１０に出力し、ステップＳＴ１８に進む。
【００３９】
ステップＳＴ１６において、判定部９は、加速しても目標角度を超えないという条件、具体的には、上述した式（１）が満たされるという条件を判定する。
【００４０】
判定部９は、この条件が満たされる場合、ＣＣＷ増加指示信号を変化量演算部１０に出力し、ステップＳＴ１７に進む。判定部９は、この条件が満たされない場合には、ＣＣＷ一定指示信号を変化量演算部１０に出力し、ステップＳＴ１８に進む。
【００４１】
ステップＳＴ１７において、変化量演算部１０は、出力更新クロック信号を受信するまで待機し、その後、判定部９から与えられたＣＣＷ増加指示信号に基づいて、現処理サイクルのＣＣＷ変化量を前処理サイクルのＣＣＷ変化量よりも１大きな値とする。具体的には、変化量演算部１０は、現処理サイクルの基準ステップ数を、前処理サイクルの基準ステップ数よりも、接近方向に１ステップ大きい値として算出する。変化量演算部１０は、現処理サイクルの基準ステップ数を示す現処理サイクルの基準ステップ数データを出力角度演算部１１に出力する。さらに、変化量演算部１０は、前処理サイクルの基準ステップ数データとして、現処理サイクルの基準ステップ数データを判定部９に出力する。その後、変化量演算部１０は、ステップＳＴ１９−２に進む。
【００４２】
ステップＳＴ１８において、変化量演算部１０は、出力更新クロック信号を受信するまで待機し、その後、判定部９から与えられたＣＣＷ一定指示信号に基づいて、現処理サイクルのＣＣＷ変化量を前処理サイクルのＣＣＷ変化量と同じとする。具体的には、変化量演算部１０は、現処理サイクルの基準ステップ数を、前処理サイクルの基準ステップ数と同じ値として算出する。変化量演算部１０は、現処理サイクルの基準ステップ数を示す現処理サイクルの基準ステップ数データを出力角度演算部１１に出力する。さらに、変化量演算部１０は、前処理サイクルの基準ステップ数データとして、現処理サイクルの基準ステップ数データを判定部９に出力する。その後、変化量演算部１０は、ステップＳＴ１９−２に進む。
【００４３】
ステップＳＴ１９−２において、出力角度演算部１１は、出力更新クロック信号を受信するまで待機し、その後、前処理サイクルの出力角度から現処理サイクルのＣＣＷ変化量を減算することで、現処理サイクルの出力角度を算出する。具体的には、出力角度演算部１１は、前処理サイクルの出力角度に、現処理サイクルの基準ステップ数を加算することで、現処理サイクルの出力角度を算出する。出力角度演算部１１は、現処理サイクルの出力角度を示す現処理サイクルの出力角度データを、残り角度演算部７と出力信号生成部５とに出力する。その後、出力角度演算部１１は、ステップＳＴ２に戻る。
【００４４】
したがって、出力データ生成部４は、更新周期が経過する毎に、現処理サイクルの出力角度データを出力信号生成部５に出力することになる。なお、次処理サイクルのステップＳＴ２以降では、出力角度演算部１１が残り角度演算部７に出力したデータは、前処理サイクルのデータとして扱われる。
【００４５】
出力信号生成部５は、現処理サイクルの出力角度データに基づいて、出力角度を示すモータ駆動信号（主にＰＷＭ信号）を生成し、ステッパモータ６に出力する。ステッパモータ６は、モータ駆動信号に基づいて、基準ステップ数が示す方向に、基準ステップ数が示すステップ量だけ回転する。
【００４６】
次に、出力角度等の推移の具体例を説明する。最大変移量は１０（ステップ）とする。図４に示す例は、時刻Ｔ０〜Ｔ１のときに目標角度が０（ステップ）となるが、時刻Ｔ１で目標角度が１４（ステップ）になっている。
【００４７】
この場合、時刻Ｔ１では、目標角度＝１４、前処理サイクルの出力角度＝０となるので、ステッパモータ制御装置１は、ステップＳＴ２からステップＳＴ３に進み、残り角度を１４と算出する。さらに、前処理サイクルの基準ステップ数＝０となるので、ステッパモータ制御装置１は、ステップＳＴ４からステップＳＴ５に進む。
【００４８】
式（３）によれば、０＊（０＋１）／２＜１４なので、ステッパモータ制御装置１は、ステップＳＴ５からステップＳＴ７に進む。式（２）によれば、０＜１０なので、ステッパモータ制御装置１は、ステップＳＴ７からステップＳＴ８に進む。式（１）によれば、（０＋１）＊（０＋２）／２＜１４なので、ステッパモータ制御装置１は、ステップＳＴ８からステップＳＴ９に進み、現処理サイクルの基準ステップ数を０＋１＝１と算出する。さらに、ステッパモータ制御装置１は、ステップＳＴ９からステップＳＴ１９−１に進み、現処理サイクルの出力角度を０＋１＝１と算出する。
【００４９】
次の更新タイミングである時刻Ｔ２では、目標角度＝１４、前処理サイクルの出力角度＝１となるので、ステッパモータ制御装置１は、ステップＳＴ２からステップＳＴ３に進み、残り角度を１３と算出する。さらに、前処理サイクルの基準ステップ数＝１となるので、ステッパモータ制御装置１は、ステップＳＴ４からステップＳＴ５に進む。
【００５０】
式（３）によれば、１＊（１＋１）／２＜１３なので、ステッパモータ制御装置１は、ステップＳＴ５からステップＳＴ７に進む。式（２）によれば、１＜１０なので、ステッパモータ制御装置１は、ステップＳＴ７からステップＳＴ８に進む。式（１）によれば、（１＋１）＊（１＋２）／２＜１３なので、ステッパモータ制御装置１は、ステップＳＴ８からステップＳＴ９に進み、現処理サイクルの基準ステップ数を１＋１＝２と算出する。さらに、ステッパモータ制御装置１は、ステップＳＴ９からステップＳＴ１９−１に進み、現処理サイクルの出力角度を１＋２＝３と算出する。
【００５１】
時刻Ｔ３では、目標角度＝１４、前処理サイクルの出力角度＝６となるので、ステッパモータ制御装置１は、ステップＳＴ２からステップＳＴ３に進み、残り角度を８と算出する。さらに、前処理サイクルの基準ステップ数＝３となるので、ステッパモータ制御装置１は、ステップＳＴ４からステップＳＴ５に進む。
【００５２】
式（３）によれば、３＊（３＋１）／２＜８なので、ステッパモータ制御装置１は、ステップＳＴ５からステップＳＴ７に進む。式（２）によれば、３＜１０なので、ステッパモータ制御装置１は、ステップＳＴ７からステップＳＴ８に進む。式（１）によれば、（３＋１）＊（３＋２）／２＞８なので、ステッパモータ制御装置１は、ステップＳＴ８からステップＳＴ１０に進み、現処理サイクルの基準ステップ数を３と算出する。さらに、ステッパモータ制御装置１は、ステップＳＴ１０からステップＳＴ１９−１に進み、現処理サイクルの出力角度を６＋３＝９と算出する。
【００５３】
時刻Ｔ４では、目標角度＝１４、前処理サイクルの出力角度＝９となるので、ステッパモータ制御装置１は、ステップＳＴ２からステップＳＴ３に進み、残り角度を５と算出する。さらに、前処理サイクルの基準ステップ数＝３となるので、ステッパモータ制御装置１は、ステップＳＴ４からステップＳＴ５に進む。
【００５４】
式（３）によれば、３＊（３＋１）／２＞５なので、ステッパモータ制御装置１は、ステップＳＴ５からステップＳＴ６に進み、現処理サイクルの基準ステップ数を３−１＝２と算出する。さらに、ステッパモータ制御装置１は、ステップＳＴ６からステップＳＴ１９−１に進み、現処理サイクルの出力角度を９＋２＝１１と算出する。
【００５５】
時刻Ｔ５では、目標角度＝１４、前処理サイクルの出力角度＝１１となるので、ステッパモータ制御装置１は、ステップＳＴ２からステップＳＴ３に進み、残り角度を３と算出する。さらに、前処理サイクルの基準ステップ数＝２となるので、ステッパモータ制御装置１は、ステップＳＴ４からステップＳＴ５に進む。
【００５６】
式（３）によれば、２＊（２＋１）／２＝３なので、ステッパモータ制御装置１は、ステップＳＴ５からステップＳＴ７に進む。式（２）によれば、２＜１０なので、ステッパモータ制御装置１は、ステップＳＴ７からステップＳＴ８に進む。式（１）によれば、（２＋１）＊（２＋２）／２＞３なので、ステッパモータ制御装置１は、ステップＳＴ８からステップＳＴ１０に進み、現処理サイクルの基準ステップ数を２と算出する。さらに、ステッパモータ制御装置１は、ステップＳＴ１０からステップＳＴ１９−１に進み、現処理サイクルの出力角度を１１＋２＝１３と算出する。
【００５７】
図５に示す例は、時刻Ｔ６で目標角度が２０（ステップ）になるが、時刻Ｔ７で目標角度が６（ステップ）になっている。
【００５８】
時刻Ｔ７では、目標角度＝６、前処理サイクルの出力角度＝１０となるので、ステッパモータ制御装置１は、ステップＳＴ２からステップＳＴ１１に進み、残り角度を４と算出する。さらに、前処理サイクルの基準ステップ数＝４となるので、ステッパモータ制御装置１は、ステップＳＴ１２からステップＳＴ６に進み、現処理サイクルの基準ステップ数を４−１＝３と算出する。さらに、ステッパモータ制御装置１は、ステップＳＴ６からステップＳＴ１９−１に進み、現処理サイクルの出力角度を１０＋３＝１３と算出する。
【００５９】
時刻Ｔ８では、目標角度＝６、前処理サイクルの出力角度＝１６となるので、ステッパモータ制御装置１は、ステップＳＴ２からステップＳＴ１１に進み、残り角度を１０と算出する。さらに、前処理サイクルの基準ステップ数＝１となるので、ステッパモータ制御装置１は、ステップＳＴ１２からステップＳＴ６に進み、現処理サイクルの基準ステップ数を１−１＝０と算出する。さらに、ステッパモータ制御装置１は、ステップＳＴ６からステップＳＴ１９−１に進み、現処理サイクルの出力角度を１６＋０＝１６と算出する。
【００６０】
時刻Ｔ９では、目標角度＝６、前処理サイクルの出力角度＝１６となるので、ステッパモータ制御装置１は、ステップＳＴ２からステップＳＴ１１に進み、残り角度を１０と算出する。さらに、前処理サイクルの基準ステップ数＝０となるので、ステッパモータ制御装置１は、ステップＳＴ１２からステップＳＴ１３に進む。
【００６１】
式（３）によれば、０＊（０＋１）／２＜１０なので、ステッパモータ制御装置１は、ステップＳＴ１３からステップＳＴ１５に進む。式（２）によれば、０＜１０なので、ステッパモータ制御装置１は、ステップＳＴ１５からステップＳＴ１６に進む。式（１）によれば、（０＋１）＊（０＋２）／２＜１０なので、ステッパモータ制御装置１は、ステップＳＴ１６からステップＳＴ１７に進み、現処理サイクルの基準ステップ数を０−１＝−１（ＣＣＷ変化量＝１）と算出する。さらに、ステッパモータ制御装置１は、ステップＳＴ１７からステップＳＴ１９−２に進み、現処理サイクルの出力角度を１６−１＝１５と算出する。
【００６２】
次に、ステッパモータ制御装置１と特許文献１記載の発明とを対比して説明する。図７は、各時刻における目標角度及び特許文献１の出力角度を示し、図８及び図９は、各時刻における目標角度、特許文献１の出力角度、ステッパモータ制御装置１の出力角度、及びステッパモータ６の最大応答を示す。ただし、１ステップの大きさは、０．０５２１（度）、最大応答速度は５００（度／ｓ）、最大応答加速度は５０００（度／ｓ＾２）、ステッパモータ制御装置１の更新周期は４．０９６（ｍｓ）とする。曲線Ｌ１は、各時刻におけるステッパモータ制御装置１の出力角度を示し、曲線Ｌ２は、各時刻のステッパモータ６の最大応答を示し、曲線Ｌ３は、各時刻における特許文献１の出力角度を示す。ステッパモータ６の最大応答は、ステッパモータ６を最大応答速度及び最大応答加速度で回転させたときのステッパモータ６の回転角度である。したがって、出力角度と各時刻との関係を示す曲線が曲線Ｌ２の上側に配置される場合、その出力角度は、ステッパモータ６の最大応答を超えてしまうので、ステッパモータ６が脱調してしまう可能性がある。
【００６３】
図８で明らかなように、特許文献１の出力角度は、ステッパモータ６の最大応答を超えてしまっている。しかし、ステッパモータ制御装置１の出力角度は、ステッパモータ６の最大応答を超えていない。しかも、ステッパモータ制御装置１の出力角度は、特許文献１の出力角度よりも早く目標角度に達している。このことは、目標角度が一定の場合（図８に示す場合）であっても、目標角度が時間の経過と共に変動する場合（図９に示す場合）であっても変わらない。
【００６４】
なお、ステッパモータ制御装置１の出力角度がステッパモータ６の最大応答を超えない理由は、以下のとおりである。即ち、更新周期が経過する毎に、基準ステップ数が変化しうるが、１回の変化量は±１ステップに制限される。ここで、基準ステップ数が変化することは、ステッパモータ６が加速または減速されることを意味する。具体的には、基準ステップ数を接近方向に１ステップ大きくすることがステッパモータ６を加速させることになり、基準ステップ数を接近方向に１ステップ小さくすることがステッパモータ６を減速させることになる。したがって、基準ステップ数が１回変化したときのステッパモータ６の加速度ａｋ（または減速度ｂｋ。以下同じ）は、以下の式（６）を満たす。
【００６５】
｜ａｋ｜＝θｋ／（ｔ＾２）  …（６）
更新周期（＝ｔ）は、上述した式（４）を満たすので、加速度ａｋの大きさは、ステッパモータ６の最大応答加速度を超えることがない。
【００６６】
さらに、ステッパモータ６は、前処理サイクルの基準ステップ数が最大応答変移量（即ち、最大変移量）以上となる場合には、ステッパモータ６を加速させない（ステップＳＴ７等参照）。ここで、ステッパモータ６が最大応答速度で回転する場合、ステッパモータ６は、１回の更新周期で最大応答変移量だけ回転するので、最大応答変移量は、ステッパモータ６の最大応答速度に相当する。即ち、式（２）を用いて、基準ステップ数が最大応答変移量を超えないように制御すれば、ステッパモータ６を最大応答速度以下の速度で回転させることになる。
【００６７】
したがって、ステッパモータ６は、ステッパモータ６を、最大応答速度を超えない速度で、且つ、最大応答加速度を超えない加速度で回転させるので、ステッパモータ制御装置１の出力角度は、ステッパモータ６の最大応答を超えない。
【００６８】
以上により、ステッパモータ制御装置１は、従来のステッパモータ制御装置よりもステッパモータ６の脱調を確実に防ぐことが出来る。さらに、ステッパモータ制御装置１は、従来のステッパモータ制御装置よりも、出力角度を目標角度に早く到達させることが出来る。
【００６９】
さらに、ステッパモータ制御装置１は、図５に示すように、目標角度の変化で、ステッパモータ６が離隔方向の回転に転じる場合には、基準ステップ数を離隔方向に１ステップずつ小さくする（時刻Ｔ７〜Ｔ８における処理を参照）。なお、離隔方向は、接近方向の逆方向である。
【００７０】
したがって、ステッパモータ制御装置１は、ステッパモータ６が離隔方向に回転している場合に、ステッパモータ６を急に停止または接近方向に回転させるのではなく、徐々に減速させてから、接近方向に回転させるので、従来のステッパモータ制御装置よりも、ステッパモータ６の脱調を確実に防止することが出来る。
【００７１】
［第２の実施の形態］
次に、第２の実施の形態について、第１の実施の形態との相違点を説明する。第２の実施の形態に係るステッパモータ制御装置１は、以下の処理を行う。即ち、図３に示すステップＳＴ１において、残り角度演算部７は、入力データラッチ部３から目標角度データを取得する。残り角度演算部７は、目標角度データが示す目標角度をｘ倍（ｘ：任意の自然数）することで、制御上の目標角度を算出する。その後、出力データ生成部４は、制御上の目標角度に基づいて、ステップＳＴ２以降の処理を行う。即ち、出力データ生成部４は、ステップＳＴ２以降の「ステッパモータ６の目標角度」を、「制御上の目標角度」に置き換えて、ステップＳＴ２以降の処理を行う。
【００７２】
出力角度演算部１１は、現処理サイクルの出力角度データを１／ｘ倍する（小数点以下切り捨て）ことで、駆動角度データを算出し、駆動角度データを示すモータ駆動信号を出力信号生成部５を介してステッパモータ６に出力する。
【００７３】
ステッパモータ６は、モータ駆動信号に基づいて、基準ステップ数が示す方向に、基準ステップ数が示すステップ量（即ち、基準ステップ数の絶対値）の１／ｘ（小数点以下切り捨て）だけ回転する。
【００７４】
図１０は、ｘ＝２となる場合における各データの変移を示す。θ２は、マイコン２が算出した目標角度を示し、θ３（＝２＊θ２）は、制御上の目標角度を示す。曲線Ｌ４は、各時刻における第２の実施の形態の出力角度を示し、曲線Ｌ５は、各時刻におけるステッパモータ６の回転角度を示し、曲線Ｌ６は、各時刻における第１の実施の形態の出力角度を示す。
【００７５】
第２の実施の形態に係るステッパモータ制御装置１は、ｘの値を変えることで、第１の実施の形態に係るステッパモータ制御装置１よりも、滑らかな動きを容易且つ任意に実現することができる。
【００７６】
さらに、第２の実施の形態に係るステッパモータ制御装置１は、最大変移量も同時にｘ倍した値を設定することで、最大速度は第１の実施の形態に係るステッパモータ制御装置１と変わらず、回転の開始と終わりとを滑らかにすることができる。
【００７７】
［第３の実施の形態］
次に、第３の実施の形態について、第１の実施の形態との相違点を説明する。第３の実施の形態に係るステッパモータ制御装置１は、以下の処理を行う。即ち、出力角度演算部１１は、現処理サイクルの出力角度データを１／ｎ（ｎ：任意の自然数）倍する（小数点以下切り捨て）ことで、駆動角度データを算出する処理を、更新周期の１／ｎ倍の周期で行い、更新周期の１／ｎ倍の周期で、駆動角度データを示すモータ駆動信号を出力信号生成部５を介してステッパモータ６に出力する。ステッパモータ６は、モータ駆動信号に基づいて、基準ステップ数が示す方向に、基準ステップ数が示すステップ量の１／ｎ（小数点以下切り捨て）だけ回転する。
【００７８】
図１１に、ｎ＝２、４のそれぞれの場合におけるステッパモータ６の回転角度を示す。通常出力は、第１の実施の形態におけるステッパモータ６の回転角度を示し、１／２補正は、ｎ＝２のときのステッパモータ６の回転角度を示し、１／４補正は、ｎ＝４のときのステッパモータ６の回転角度を示す。図１２は、図１１をテーブルに表したものである。基準ステップ数は現処理サイクルの値である。
【００７９】
第３の実施の形態に係るステッパモータ制御装置１は、第１の実施の形態に係るステッパモータ制御装置１よりも、ステッパモータ６の回転角度が更新される周期が短くなり、かつ、ステッパモータ６の１回当たりの回転量が小さくなるので、ステッパモータ６の特性が多少変動しても、安定した回転を実現することができる。これにより、第３の実施の形態に係るステッパモータ制御装置１は、第１の実施の形態に係るステッパモータ制御装置１よりも、ステッパモータ６の脱調を確実に防止することができる。
【００８０】
［第４の実施の形態］
次に、第４の実施の形態について、第１の実施の形態との相違点を説明する。図１３は、第４の実施の形態に係る出力データ生成部４が行う処理の手順を示すフローチャートである。このフローチャートは、図３に示すフローチャートに、ステップＳＴ３−１及びステップＳＴ１１−１を追加したものである。
【００８１】
ステップＳＴ３−１において、残り角度演算部７は、以下の式（５）が満たされるという条件を判定し、この条件が満たされる場合には、ステップＳＴ４に進み、この条件が満たされない場合には、ステップＳＴ１０に進む。
【００８２】
｜DISTANCE｜／｜Ｖ（Ｎ−１）｜＞ｙ  …（５）
ｙ：任意の自然数
ステップＳＴ１１−１において、残り角度演算部７は、式（５）が満たされるという条件を判定し、この条件が満たされる場合には、ステップＳＴ１２に進み、この条件が満たされない場合には、ステップＳＴ１８に進む。
【００８３】
図１４及び図１５は、各時点における第４の実施の形態の出力角度と、各時点における第１の実施の形態の出力角度とを対比して示す。なお、ここでのｙは８である。通常出力は、第１の実施の形態の出力角度を示し、補正出力は、第４の実施の形態の出力角度を示す。折れ線Ｌ７は、第１の実施の形態の出力角度が変移する様子を示し、折れ線Ｌ８は、第４の実施の形態の出力角度が変移する様子を示す。基準ステップ数の増加とは、ＣＷ変化量の増加を意味し、基準ステップ数の減少とは、ＣＷ変化量の減少を意味する。
【００８４】
例えば、時刻Ｔ１３では、残り角度（＝｜DISTANCE｜）＝４、前処理サイクルの基準ステップ数＝１となるので、式（５）は満たされない。したがって、現処理サイクルの基準ステップ数と前処理サイクルの基準ステップ数とは同じ値となる。
【００８５】
時刻Ｔ２０では、残り角度（＝｜DISTANCE｜）＝１３、前処理サイクルの基準ステップ数＝１となるので、式（５）は満たされる。したがって、第１の実施の形態と同様の処理が行われ、結果として、基準ステップ数が正方向に１増加する。
【００８６】
同様に、時刻Ｔ２８では、残り角度（＝｜DISTANCE｜）＝２１、前処理サイクルの基準ステップ数＝２となるので、式（５）は満たされる。したがって、第１の実施の形態と同様の処理が行われ、結果として、基準ステップ数が正方向に１増加する。
【００８７】
第４の実施の形態に係るステッパモータ制御装置１は、式（５）が満たされない場合には、基準ステップ数を変化させないので、第１の実施の形態に係るステッパモータ制御装置１よりも、滑らかにステッパモータ６を回転させることができる。
【００８８】
特に、目標角度がほとんど変動しない場合（例えば、一定期間内での目標角度の変化量が±１０ステップ以内となる場合）には、基準ステップ数が変化する回数が低いほど、ステッパモータ６の動作が安定するので望ましい。したがって、第４の実施の形態に係るステッパモータ制御装置１は、目標角度がほとんど変動しない場合に、特に有用である。
【００８９】
なお、上記の実施の形態は、本発明の趣旨を逸脱しない範囲で変更可能である。例えば、ｘ、ｎ、ｙの値は、上述した例に限定されない。１ステップの大きさと更新周期とは、式（４）が満たされる範囲で、任意に設定される。ステッパモータ制御装置１及びステッパモータ６は、スピードメータ以外のもの（例えば、タコメータ）にも使用可能である。
【図面の簡単な説明】
【００９０】
【図１】本発明の第１の実施の形態に係るステッパモータ制御装置の構成を示すブロック図である。
【図２】本発明の第１の実施の形態に係る出力データ生成部の構成を示すブロック図である。
【図３】本発明の第１の実施の形態に係るステッパモータ制御装置による処理の手順を示すフローチャートである。
【図４】第１の実施の形態に係る出力角度等が変移する様子を示す特性図である。
【図５】第１の実施の形態に係る出力角度等が変移する様子を示す特性図である。
【図６】第１の実施の形態に係る出力角度等が変移する様子を示す特性図である。
【図７】従来の技術に係る出力角度等が変移する様子を示す特性図である。
【図８】第１の実施の形態に係る出力角度と、従来の技術に係る出力角度と、ステッパモータの最大応答との関係を示す特性図である。
【図９】第１の実施の形態に係る出力角度と、従来の技術に係る出力角度と、ステッパモータの最大応答との関係を示す特性図である。
【図１０】第２の実施の形態に係る出力角度等が変移する様子を示す特性図である。
【図１１】第３の実施の形態に係る出力角度と第１の実施の形態に係る出力角度との関係を示す特性図である。
【図１２】第３の実施の形態に係る出力角度と第１の実施の形態に係る出力角度との関係を示すテーブルである。
【図１３】本発明の第４の実施の形態に係るステッパモータ制御装置による処理の手順を示すフローチャートである。
【図１４】第４の実施の形態に係る出力角度と第１の実施の形態に係る出力角度との関係を示す特性図である。
【図１５】第４の実施の形態に係る出力角度と第１の実施の形態に係る出力角度との関係を示すテーブルである。
【符号の説明】
【００９１】
１…ステッパモータ制御装置
３…入力データラッチ部
４…出力データ生成部
５…出力信号生成部
６…ステッパモータ
７…残り角度演算部
８…最大変移量演算部
９…判定部
１０…変化量演算部
１１…出力角度演算部
【図１】
0005193526.tif 000002
【図２】
0005193526.tif 000003
【図３】
0005193526.tif 000004
【図４】
0005193526.tif 000005
【図５】
0005193526.tif 000006
【図６】
0005193526.tif 000007
【図７】
0005193526.tif 000008
【図８】
0005193526.tif 000009
【図９】
0005193526.tif 000010
【図１０】
0005193526.tif 000011
【図１１】
0005193526.tif 000012
【図１２】
0005193526.tif 000013
【図１３】
0005193526.tif 000014
【図１４】
0005193526.tif 000015
【図１５】
0005193526.tif 000016