(57)【要約】      （修正有）【課題】計測された進角と目標とする進角との差が大きい場合、モータの駆動制御中に脱調が起きないように制御すること。【解決手段】モータ制御装置は、ロータ軸の位置検出信号に応じてモータ１０７の進角制御を行う。駆動波形テーブル記憶部１０４は駆動波形データを記憶しており、ＣＰＵ１０１は、位置検出信号に同期して駆動波形テーブルのアドレス値を取得する。ＣＰＵ１０１は、進角制御における駆動波形の目標位相値と、今回の位置検出信号のタイミングで取得した駆動波形の位相値から算出した差分が閾値を超える場合、駆動波形の周期の変更により補正する位相変化量を制限する制御を行う。算出した差分が閾値以下である場合、ＣＰＵ１０１は現時点から調整用の位相値に相当する移行時間が経過した時点で駆動波形の位相値が目標位相値と一致する周期に変更する制御を行う。【選択図】図１
2014033586.tif 000002
【特許請求の範囲】
【請求項１】
モータ軸の位置を検出して進角制御を行うモータ制御装置であって、
前記モータ軸の位置に対応した信号を出力する位置検出手段と、
前記位置検出手段により出力された信号に同期して前記モータの駆動波形の位相値を取得し、前記位置検出手段により出力された前回の信号のタイミングから前記位置検出手段により出力された今回の信号のタイミングまでの時間を計測して前記駆動波形の周期を変更する制御手段を備え、
前記制御手段は、進角制御における前記駆動波形の目標位相値と、現時点で取得している前記駆動波形の位相値との差分を算出し、当該差分が閾値を超える場合、前記駆動波形の周期の変更により補正する位相変化量を制限することを特徴とするモータ制御装置。
【請求項２】
前記駆動波形のデータを分割して記憶する駆動波形テーブル記憶手段を備え、
前記制御手段は、前記差分が閾値以下である場合、前記駆動波形テーブル記憶手段からデータを読み出すアドレス間隔を制御することにより、前記駆動波形の周期を変更することを特徴とする請求項１に記載のモータ制御装置。
【請求項３】
前記制御手段は、
前記差分が閾値以下である場合、現時点から調整用の位相値に相当する移行時間が経過した時点において前記駆動波形の位相値が前記目標位相値と一致するように周期を変更する制御を行い、
前記差分が閾値を超える場合、前記駆動波形の周期を予め決められた範囲内で変更し、現時点から前記移行時間が経過した時点で算出される前記位相値の差分を、既に算出している前記差分より小さくする制御を行うことを特徴とする請求項２に記載のモータ制御装置。
【請求項４】
前記制御手段は、前記駆動波形テーブル記憶手段が出力する駆動波形のアドレス値から、前記モータの駆動波形の位相値を取得することを特徴とする請求項２または３に記載のモータ制御装置。
【請求項５】
前記制御手段は、前記駆動波形テーブル記憶手段が記憶する駆動波形のアドレス値を用いて前記駆動波形の目標位相値を決定することを特徴とする請求項２から４のいずれか１項に記載のモータ制御装置。
【請求項６】
前記駆動波形テーブル記憶手段は正弦波形のデータを記憶し、前記制御手段により指定されるアドレス間隔に従ってデータを出力することを特徴とする請求項２から５のいずれか１項に記載のモータ制御装置。
【請求項７】
前記位置検出手段は、
前記モータ軸に設けた被検出部の位置を検出する検出部と、
前記検出部の出力を閾値と比較する比較手段と、
前記比較手段により２値化された信号の変化を計測して前記制御手段に出力するエンコード手段を備えることを特徴とする請求項１から６のいずれか１項に記載のモータ制御装置。
【請求項８】
モータ軸の位置を検出して進角制御を行うモータ制御装置にて実行されるモータ制御方法であって、
前記モータ軸の位置に対応した信号を出力する位置検出ステップと、
前記位置検出ステップで出力された信号に同期して前記モータの駆動波形の位相値を取得し、前記位置検出ステップで出力された前回の信号のタイミングから前記位置検出ステップで出力された今回の信号のタイミングまでの時間を計測して前記駆動波形の周期を変更する制御ステップを有し、
前記制御ステップは、進角制御における前記駆動波形の目標位相値と、現時点で取得している前記駆動波形の位相値との差分を算出するステップと、算出した当該差分が閾値を超える場合、前記駆動波形の周期の変更により補正する位相変化量を制限するステップを有することを特徴とするモータ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータの進角制御において脱調を防止する技術に関する。
【背景技術】
【０００２】
ステッピングモータは小型、高トルク、高寿命等の特徴をもち、開ループ制御により容易にデジタル的な位置決め動作を実現できる。このため、撮像装置や光学ディスク装置、プリンタやプロジェクタ等の機器に幅広く用いられている。
特許文献１には、負荷トルク電流偏差を用いて巻線励磁角度を制御するステッピングモータの制御装置が開示されている。この装置では、負荷トルク電流偏差を検出するための電流検出回路が必要である。
【０００３】
ところで、ロータ位置を検出するエンコーダを備えたモータの場合には駆動波形を監視すれば、ロータ位置に対する駆動波形のずれの時間比により進角を計測できる。またロータ位置に対する駆動波形のずれの時間比を制御することで進角制御が可能になる。進角制御では、モータの駆動電圧波形とコイル電流波形の位相を合わせることでトルクを最大限に引き出すことができる。モータの目標速度と目標負荷が決まっていれば、必要な負荷トルクが発生する進角を実験的に測定し、あるいはシミュレーションで把握できる。よって、目標速度と目標負荷に応じて予め設定された進角を目標進角とする進角制御を行うことにより、電流検出回路を用いる必要はなくなる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４４８１２６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、モータの目標速度を変更した直後や、速度変動からの回復時期には、現在の速度が目標速度に達していないので、実際に計測された進角と、目標速度および目標負荷で最適な進角との差が大きい場合がある。進角の差が大きいにもかかわらず、目標速度および目標負荷で最適な目標進角に相当する時間ずれを打ち消すための駆動波形信号をモータに印加した場合、モータが脱調する可能性がある。
【０００６】
本発明の目的は、計測された進角と目標とする進角との差が大きい場合、モータの駆動制御中に脱調が起きないように制御することである。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明に係る装置は、モータ軸の位置を検出して進角制御を行うモータ制御装置であって、前記モータ軸の位置に対応した信号を出力する位置検出手段と、前記位置検出手段により出力された信号に同期して前記モータの駆動波形の位相値を取得し、前記位置検出手段により出力された前回の信号のタイミングから前記位置検出手段により出力された今回の信号のタイミングまでの時間を計測して前記駆動波形の周期を変更する制御手段を備える。前記制御手段は、進角制御における前記駆動波形の目標位相値と、現時点で取得している前記駆動波形の位相値との差分を算出し、当該差分が閾値を超える場合、前記駆動波形の周期の変更により補正する位相変化量を制限する。
【発明の効果】
【０００８】
本発明によれば、計測された進角と目標とする進角との差が大きい場合、モータの駆動制御中に脱調が起きないように制御することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態に係るモータ制御装置の構成例を示すブロック図（Ａ）、およびモータの構成例を示す斜視図（Ｂ）である。
【図２】正弦波状駆動波形を説明する図である。
【図３】駆動波形テーブルに関する更新処理例を説明するフローチャートである。
【図４】ロータ軸の位置検出信号とコイルの駆動波形との関係を例示するタイムチャートである。
【図５】現時点での進角の検出処理を説明するフローチャートである。
【図６】ロータ軸の位置検出信号とコイルの駆動波形との関係を例示するタイムチャートである。
【図７】進角制御を説明するフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の実施形態を説明する。なお、回転駆動型モータを例示してモータ制御装置およびモータ制御方法を説明するが、本発明は、モータ軸が直線移動するリニア駆動型モータにも適用可能である。
本実施形態では、進角制御にて今回計測した進角に応じて次回の制御目標とする進角を制限する制御例を説明する。
図１（Ａ）は、本発明の実施形態を適用したモータ制御装置１００の構成例を示す。内部バス１０９にはＣＰＵ（中央演算処理装置）１０１、ＲＯＭ１０２、ＲＡＭ１０３が接続されている。ＲＯＭは読み出し専用メモリであり、ＲＡＭはランダム・アクセス・メモリである。さらには、駆動波形テーブル記憶部１０４、ＰＷＭ（パルス幅変調）ユニット１０５、エンコーダ入力部１０８が内部バス１０９に接続されている。各部は内部バス１０９を介して互いにデータを送受し合う。ＲＯＭ１０２は、ＣＰＵ１０１が実行する各種プログラム等を格納する。制御手段および計測手段としてのＣＰＵ１０１は、例えばＲＯＭ１０２に格納されるプログラムに従い、ＲＡＭ１０３をワークメモリとして用いてモータ制御装置１００の各部を制御する。駆動波形テーブル記憶部１０４は、５１２アドレス分割のテーブル値を有する駆動波形テーブルを記憶しており、指定されたアドレスのテーブル値をＰＷＭユニット１０５に供給する。
【００１１】
図２は、正弦波状の駆動波形テーブルの詳細を示す。０から５１１までのテーブル番号は正弦波形の位相値に対応し、アドレス値と１対１に相当する。正弦波の０度位相にテーブル番号０が相当し、正弦波の１８０度位相にテーブル番号２５６が相当する。テーブル番号０にはデューティー比５０％の値が格納され、それ以降のテーブル番号に対しては、位相に応じてＰＷＭ出力のデューティー比の値が格納されている。なお、以下では便宜上、テーブル番号とアドレス値が一致するものとして説明する。
図１（Ａ）に示すＰＷＭユニット１０５は、モータドライバ１０６に対してＰＷＭ信号を出力する。ＰＷＭ信号は、エンコーダ付ステッピングモータ１０７を駆動させるために駆動波形テーブル記憶部１０４から受け取ったテーブル値に応じたデューティー比を有する。例えば、ＰＷＭユニット１０５に対して、ＣＰＵ１０１が一定周期でプログラムに従い指定したアドレス値に対応する駆動波形テーブルの値がＰＷＭユニット１０５に供給される。アドレス値を０、１、２、・・・と１ずつ送るか、あるいは０、４、８、・・・と４つおきに送るといった具合に、指定アドレス間隔を変えれば、繰り返し周波数の異なる駆動波形が得られる。
【００１２】
エンコーダ付ステッピングモータ１０７は２相のフォトインタラプタによりロータ位置を検出するエンコーダを備えており、回転角に応じてロータ軸の位置信号を出力する。エンコーダ入力部１０８は、エンコーダ付ステッピングモータ１０７が出力する位置信号からロータ位置を検出し、検出信号をＣＰＵ１０１に出力する。ＣＰＵ１０１は、エンコーダ入力部１０８で検出された検出信号と、駆動波形テーブル記憶部１０４から現在出力中の駆動波形との位相を検出し、プログラムに従い新しいアドレス間隔を算出する。ＣＰＵ１０１がプログラムに従い算出したアドレス間隔に基づき、駆動波形テーブル記憶部１０４からテーブル値が読み出されてＰＷＭユニット１０５に供給される。
【００１３】
図１（Ｂ）は、エンコーダ付ステッピングモータ１０７の外観を示す斜視図である。ステッピングモータ２０１のロータ軸２０２には、被検出部としてスリット回転板２０５が取り付けられている。スリット回転板２０５は明領域と暗領域の比率が５０：５０で設計されている。スリット回転板２０５に対してｃｈ０フォトインタラプタ２０３、ｃｈ１フォトインタラプタ２０４がそれぞれ配置されている。ロータ軸２０２の回転に伴ってスリット回転板２０５が回転するに従って各フォトインタラプタの出力信号が変化する。不図示のコンパレータはｃｈ０フォトインタラプタ２０３、ｃｈ１フォトインタラプタ２０４からの各アナログ入力信号を、設定された閾値電圧と比較することで、２値化された信号を出力する。この信号がエンコード処理されてモータ軸の位置に対応する検出信号が得られる。検出部を構成する２相のフォトインタラプタの信号変化とロータ軸の回転角度との位相関係については既知とする。
【００１４】
図３はＣＰＵ１０１により実行される、駆動波形テーブルに関する更新処理例を説明するフローチャートである。
Ｓ３０１でＣＰＵ１０１は、駆動波形の更新時期であるか否かを判断し、更新時期でなければ処理を終了し、更新時期である場合、Ｓ３０２へ処理を移す。Ｓ３０２で、ＣＰＵ１０１は指定アドレス間隔に従って、駆動波形テーブル記憶部１０４からＰＷＭユニット１０５へ供給するテーブル値のアドレスを更新して処理を終了する。
図４は、ロータ軸の位置検出信号とコイルの駆動波形との関係を例示するタイムチャートである。図５はＣＰＵ１０１による、現時点での進角（以下、現在進角という）の検出処理を説明するフローチャートである。以下では図４、図５を用いて現在進角の計測について説明する。
【００１５】
図４（Ａ）はエンコーダ入力部１０８で検出された２相のうち第１検出信号を示し、図４（Ｂ）はもう一方の第２検出信号を示す。横軸に示すｔ１からｔ５は各検出信号の立ち上がりと立ち下がりのタイミングをそれぞれ示す時刻である。検出信号の繰り返し周期を３６０度に正規化した場合、図４（Ａ）に示す第１検出信号は、図４（Ｂ）に示す第２検出信号に対して９０度先行した関係にある。図４（Ｃ）は、検出されるロータ位置に対してＣＰＵ１０１の制御に応じて駆動波形テーブル記憶部１０４から供給される２相のうち、一方のコイルの駆動波形例１を示す。縦軸はデューティー比を表し、横軸に示すテーブル番号０、１２８、２５６、３８４はアドレス値に相当する。ｐ１は図４（Ａ）に示す第１検出信号の立ち上がり時点ｔ５で出力中のアドレス値を表す。出力データの振幅の中心は、デューティー比が５０％を示す位置にあり、モータドライバ１０６の仕様により、デューティー比５０％の位置を境にコイルに流れる電流の向きが変わる。０から５１１の範囲に示すアドレス値の後、再び０に相当するアドレス値へ戻ることで、繰り返し振幅波形が出力される。指定アドレス間隔を変更することにより駆動波形の周期あるいは周波数を制御することができる。例えば、アドレス値を０、１、２、・・・という具合に１ずつ進める場合に比べて、０、２、４、・・・という具合に２ずつ進めていけば、２倍の周波数設定となる。０から５１１へと一巡するまでの指定アドレス間隔を変更する制御により、駆動波形の周波数が変更される。
【００１６】
図４（Ｄ）は、図４（Ｃ）に示す波形とは９０度位相がずれた、もう一方のコイルの駆動波形を示す。縦軸はデューティー比を表し、横軸に示すテーブル番号０、１２８、２５６、３８４はアドレス値に相当する。
図４（Ｅ）は、検出されるロータ位置に対して駆動波形テーブルから供給されている２相のうち、一方のコイルの駆動波形例２を示す。ｐ２は図４（Ａ）に示す第１検出信号の立ち上がり時点ｔ５で出力中のアドレス値を表す。図４（Ｆ）は、図４（Ｅ）に示す波形とは９０度位相がずれた、もう一方のコイルの駆動波形を示す。図４（Ｅ）および（Ｆ）に示す駆動波形は、０から５１１の範囲に示す一周期を３６０度に正規化した場合、図４（Ｃ）および（Ｄ）に示す駆動波形に対して、４５度先行した関係となっている。
【００１７】
次に、定周期処理される現在進角検出について、図５のフローチャートを参照して説明する。
図５のＳ５０１において、ＣＰＵ１０１はエンコーダ入力部１０８から検出信号が供給されたか否かを判断する。検出信号が供給されていなければ処理を終了し、検出信号が供給されている場合、Ｓ５０２へ処理を移す。Ｓ５０２でＣＰＵ１０１は、駆動波形テーブル記憶部１０４からＰＷＭユニット１０５へデータ供給中の現在アドレス値を取得する。次のＳ５０３でＣＰＵ１０１はエンコーダ入力部１０８からの検出信号が２相うちのどちらであるか、およびエッジの種類を判別する。２つの相の判別と、立ち上がりエッジか立ち下がりエッジかのエッジ判別により、４種類の信号判別が行われる。例えば、図４（Ａ）におけるｔ１、ｔ２、ｔ３、ｔ４の時点に示す４種類の信号が判別される。次のＳ５０４でＣＰＵ１０１は種類を判別したエッジのタイミングで進角をゼロとしたい場合に、駆動波形テーブル記憶部１０４からＰＷＭユニット１０５へデータ供給すべき予定アドレス値を取得する。これは、ＲＯＭ１０２に格納されているプログラム、またはＲＡＭ１０３から取得することができる。
【００１８】
Ｓ５０５に進み、ＣＰＵ１０１はデータ供給中の現在アドレス値と、進角をゼロとする場合にデータ供給すべき予定アドレス値との差分を算出する。つまり、進角０を基準とした現在進角の値が演算され、処理を終了する。例えば、図４（Ａ）にｔ５の時点で示す立ち上がりエッジにおいて、図４（Ｃ）の駆動波形が出力されていた場合、駆動中の現在アドレス値ｐ１はゼロである。この場合、ｔ５の時点での進角はゼロであると計測される。また、図４（Ａ）にｔ５の時点で示す立ち上がりエッジにおいて、図４（Ｅ）の駆動波形が出力されていた場合、駆動中の現在アドレス値ｐ２は６４である。この場合、図４（Ａ）の立ち上がりエッジにおいて、進角０の時、データ供給すべき予定アドレス値がゼロであるとすると、ｔ５の時点での進角は６４に相当する角度であると計測される。０から５１１のアドレス範囲の一周期を３６０度として正規化した場合、図４（Ｅ）、（Ｆ）に示す状態は、進角０である図４（Ｃ）、（Ｄ）に示す状態と比較して、４５度進んだ進角状態である。これは、（６４／５１２）×３６０＝４５度から算出できる。
【００１９】
以上のように、進角０の状態での各エッジにおける駆動波形データの出力に係る予定アドレス値が既知であれば、この値と、位置検出信号に同期して取得される現在アドレス値との差分から現在の進角状態が計測可能である。
【００２０】
図６はロータの位置検出信号とコイルの駆動波形との関係を示すタイムチャートである。図７は、図５に示す処理に引き続いて実行される、ＣＰＵ１０１による進角制御を説明するフローチャートである。
図６（Ａ）は、エンコーダ入力部１０８で検出される２相のうち第１検出信号を示し、図６（Ｂ）はもう一方の第２検出信号を示す。横軸に示すｔ１からｔ６は各タイミングを示す時刻である。検出信号の繰り返し周期を３６０度に正規化した場合、図６（Ａ）の第１検出信号は、図６（Ｂ）の第２検出信号に対して９０度先行した関係となっている。図６（Ｃ）と（Ｄ）は、検出されるロータ位置に対してＣＰＵ１０１の制御に応じて駆動波形テーブル記憶部１０４から供給されるコイル駆動波形例１を示す。縦軸はデューティー比を表し、横軸に示すテーブル番号０、１２８、２５６、３８４はアドレス値に相当する。
【００２１】
図６（Ｃ）にてアドレス値３８４での駆動波形が出力されている時に、図６（Ａ）の第１検出信号の立ち上がりエッジが検出される位相状態が、目標とする状態であるとする。現在アドレス値ｐ１は、図６（Ａ）の第１検出信号にてｔ５の時点で出力中のアドレス値である。アドレス値３８４に対応する駆動波形データが出力中であるので、目標通りの位相状態である。次に到来する第２検出信号については、目標アドレス値がゼロである。図６（Ｂ）に示す第２検出信号の立ち上がりエッジが検出される時点ｔ６は、図６（Ａ）の第１検出信号よりも９０度の遅れ位相である。このため、図６（Ｃ）に示す駆動波形の予定アドレス値も９０度の位相遅れとなり、３８４＋１２８＝５１２、つまりアドレス値ゼロが目標値となる。直近の検出信号の一周期、つまり、前回の位置検出信号のタイミングから今回（現時点ｔ５）の位置検出信号のタイミングまでの時間は、ｔ５−ｔ１に示す時間であり、その４分の１の期間が経過した後のタイミングがｔ６の時点である。このとき、アドレス値ｐ３がゼロになるように、指定アドレス間隔が決定されて駆動波形の周期が変更される。つまり、指定アドレス間隔は、（ｔ５−ｔ１）／４の移行時間内にアドレスが変化量１２８だけ進む間隔に決定されてＲＡＭ１０３に記憶される。これ以降、ｔ６の時点になるまでの間、ＣＰＵ１０１がプログラムに従い算出してＲＡＭ１０３に記憶している前記指定アドレス間隔に基づき、駆動波形テーブル記憶部１０４のテーブル値が読み出されてＰＷＭユニット１０５に供給される。なお、図６（Ｄ）に示すもう一方の駆動波形では、図６（Ｃ）に示す駆動波形の場合と更新時の指定アドレス間隔は同じであるが、位相角に換算して９０度の角度だけずれていればよい。目標の進角状態でモータが駆動されていれば、駆動波形が時間的に大きく伸縮することはない。
【００２２】
図６（Ｅ）は、検出されるロータ位置に対して、ＣＰＵ１０１の制御に応じて駆動波形テーブル記憶部１０４から供給されているコイル駆動波形例２を示す。図６（Ｃ）のように、アドレス値３８４での駆動波形が出力されている時に、図６（Ａ）の第１検出信号の立ち上がりエッジが検出される状態が目標である。しかし、図６（Ａ）に示すｔ５の時点で出力中のアドレス値ｐ２はゼロである。この場合、目標とする進角よりもアドレス値にして３８４（位相角で２７０度）遅れた波形でモータが駆動されていることになる。次に到来する第２検出信号（図４（Ｂ）参照）の立ち上がりエッジが検出される時点ｔ６での目標値については、３８４に相当する位相の遅れを取り戻す必要がある。このため、アドレス値１２８に３８４を加算し、５１２の進み間隔に設定される。つまり、ｐ２からｐ３まの期間内で目標進角に追いつくためには、アドレスを５１２進める間隔にする必要がある。次回までに補正すべきアドレス５１２は、一周期分の位相変化量に相当するので、参照テーブルから読み出す駆動波形を時間的に大きく縮めて出力しなければならなない。目標速度と目標負荷に応じて予め設定される進角を目標進角とする進角制御において、現在進角と目標進角が乖離しているにも関わらず、駆動波形を時間的に縮めて無理に目標進角に一致させようとするとモータが脱調する可能性がある。そこで、このような条件下、つまり現在進角が目標値から大きく外れている場合、駆動波形が時間的に縮み過ぎないように制御して、脱調を回避することが本発明の目的の１つである。
【００２３】
図６（Ｆ）は、検出されるロータ位置に対してＣＰＵ１０１の制御に応じて駆動波形テーブル記憶部１０４から供給されているコイル駆動波形例３を示す。図６（Ｆ）に示す駆動波形は、ｔ５の時点までは図６（Ｅ）に示す駆動波形と同一の遅れである。必要なアドレス間隔は、図６（Ｅ）と同様の５１２の進み間隔である。しかし、駆動波形を縮めすぎないように、この例では、一気にアドレス値を５１２分進めて位相差をゼロにするのではなく、ｐ２からｐ４の期間内にその２分の１の２５６を進める間隔まで制限をかけている。つまり、本来の目標であるアドレス値に対して、位相遅れを取り戻す分のアドレス値（位相変化量）が１２８に制限されている。駆動波形のデータに対する時間的なスケーリング操作が過度に働かないように、予め決められた範囲内で駆動波形の周期変更操作に制限を加えて駆動波形を時間的に緩やかに縮めることができるので、脱調防止効果が得られる。なお、本例では調整用の移行時間に応じて位相変化量に制限をかけているが、進角制御にて駆動波形の周期や周波数を変更する場合、モータの負荷や目標速度、現在速度等に応じた設定範囲内で、状況に応じて位相変化の制限値が制御される。
【００２４】
次、上記制限を加味した進角制御について、図７のフローチャートを参照して説明する。
Ｓ７０１にてＣＰＵ１０１は、図５のフローチャートに従って計測した今回の検出信号の入力時における、現在の駆動波形テーブルのアドレス値を取得する。次のＳ７０２でＣＰＵ１０１は、駆動波形テーブルの予定アドレス値（制御の目標位相値）をＲＡＭ１０３から取得して、Ｓ７０３へ処理を移す。Ｓ７０３でＣＰＵ１０１は予定アドレス値と現在アドレス値との差分を算出して位相ずれ量を求める。次のＳ７０４でＣＰＵ１０１は、Ｓ７０３で算出したアドレス値のずれ量が、第１閾値を超えているか、または第１閾値以下であるかを判定する。第１閾値は１２８である。ずれ量が１２８以下の場合、Ｓ７０６へ処理を移し、ずれ量が１２８を超える場合、Ｓ７０５へ処理を移す。
【００２５】
Ｓ７０５にてＣＰＵ１０１は、アドレス値に対する補正量（補正アドレス）を、１２８に設定して、Ｓ７０９へ処理を進める。Ｓ７０６でＣＰＵ１０１は、Ｓ７０３で算出したアドレス値のずれ量が、第２閾値より小さいか否かを判定する。第２閾値は−１２８である。ずれ量が−１２８以上である場合、Ｓ７０８へ処理を移し、ずれ量が−１２８より小さい場合、Ｓ７０７へ処理を移す。Ｓ７０７にてＣＰＵ１０１は補正アドレスを、−１２８に設定し、Ｓ７０９へ処理を移す。また、Ｓ７０８において、ＣＰＵ１０１は補正アドレスをＳ７０３で求めたずれ量に設定し、Ｓ７０９へ処理を移す。
【００２６】
Ｓ７０９でＣＰＵ１０１は、次回の検出信号の入力時における予定進角に対応する予定アドレス値を算出する。これは、今回の予定アドレス値に１２８と補正アドレスを加算した値であり、ＲＡＭ１０３に記億される。１２８は電気角９０度分のアドレス値に相当する。次のＳ７１０でＣＰＵ１０１は、次回の検出信号の入力時までの移動アドレス数を、次回の予定アドレス値と現在のアドレス値から差分として算出し、Ｓ７１１へ処理を移す。Ｓ７１１でＣＰＵ１０１は、次回の検出信号の入力時までのアドレス更新間隔を算出する。アドレス更新間隔は、Ｓ７１０で求めた次回までの移動アドレス数を、次回迄の移動時間および駆動波形の更新周波数で除算することで計算される。次回迄の移動時間とは、図６（Ａ）に示す「ｔ６−ｔ５」の事である。本実施形態では、図６（Ａ）にてｔ５に直近の検出信号の一周期「ｔ５−ｔ１」の４分の１を移行時間として設定し、この時間が経過した時点をｔ６のタイミングとしているが、これに限らず、一周期の２分の１や３分の１等、任意に設定できる。また、駆動波形の更新周波数については、目標最高速度で必要な駆動波形の分解能を達成できる周波数以上であればよい。具体的には、例えば、駆動波形の一周期が１００Ｈｚに相当し、５１２分割の分解能が必要である場合、更新周波数は５１．２ｋＨｚ以上であればよい。
【００２７】
以上のように本実施形態では、ロータの位置検出信号に同期して現在の駆動波形テーブルのアドレス値を取得し、現在アドレス値と、目標とする進角状態での予定アドレス値との差分を算出する。この差分量を、調整用の移行期間内で修正し、または縮小するようにアドレス更新間隔が設定されて進角制御が行われる。その際、次回の位置検出時までに修正すべきアドレスの変化量を所定範囲内に制限することで、駆動波形を時間的に緩やかに変化させることが可能となる。よって、加速時や速度変動時にモータが脱調しないように防ぐ効果が得られる。
【符号の説明】
【００２８】
１００  モータ制御装置
１０１  ＣＰＵ
１０４  駆動波形テーブル記憶部
１０５  ＰＷＭユニット
１０６  モータドライバ
１０７  エンコーダ付ステッピングモータ
【図１】
2014033586.tif 000003
【図２】
2014033586.tif 000004
【図３】
2014033586.tif 000005
【図４】
2014033586.tif 000006
【図５】
2014033586.tif 000007
【図６】
2014033586.tif 000008
【図７】
2014033586.tif 000009