(57)【特許請求の範囲】
【請求項１】
サーボドライバまたはコンピュータにより実行可能なサーボモータ制御用のアナログ角度センサ精度補正プログラムであって、該プログラムは、
後記補正値更新処理の単位として用いるためにモータ軸回転角度範囲を分割してなる各補正エリア毎に、後記対象速度値に対する補正計算に使用するための変更可能な補正値が配置された構造の補正テーブルを用い、
当初指令されたモータ回転速度すなわち指令速度値と、補正処理対象である速度すなわち対象速度値とを比較しその結果に応じて該補正テーブル中の補正エリアに設定されている補正値に対して補正値更新処理を施すためのエリア補正値更新手順と、
該エリア補正値更新手順による更新後の補正値を用いて前記対象速度値に対して補正計算を施す速度補正手順と、
該補正テーブルの全補正エリアについて該エリア補正値更新手順を適用するために当該手順の実施状況を判定するためのエリア処理状況判定手順と、
をサーボドライバまたはコンピュータに機能させることを特徴とする、アナログ角度センサ精度補正プログラム。
【請求項２】
サーボドライバまたはコンピュータにより実行可能なサーボモータ制御用のアナログ角度センサ精度補正プログラムであって、該プログラムは、
後記補正値更新処理の単位として用いるためにモータ軸回転角度範囲を分割してなる各補正エリア毎に、後記対象速度値に対する補正計算に使用するための変更可能な補正値が配置された構造の補正テーブルを用い、
角度センサによる位置情報に基づき検出される現在の補正エリアにおける補正値更新処理の要否を判定するためのエリア確認要否判定手順と、
該エリア確認要否判定手順において該補正エリアでの確認が必要と判定された場合に、当初指令されたモータ回転速度すなわち指令速度値と、補正処理対象である速度すなわち対象速度値とを比較しその結果に応じて該補正テーブル中の補正エリアに設定されている補正値に対して補正値更新処理を施すためのエリア補正値更新手順と、
該エリア補正値更新手順による更新後の補正値を用いて前記対象速度値に対して補正計算を施す速度補正手順と、
該補正テーブルの全補正エリアについて該エリア補正値更新手順を適用するために当該手順の実施状況を判定するためのエリア処理状況判定手順と、
をサーボドライバまたはコンピュータに機能させることを特徴とする、アナログ角度センサ精度補正プログラム。
【請求項３】
前記エリア補正値更新手順においては、現在の補正エリア、およびこれと一定の関係を有する他の補正エリアに対して補正値更新処理がなされることを特徴とする、請求項１または２に記載のアナログ角度センサ精度補正プログラム。
【請求項４】
前記エリア補正値更新手順においてなされる補正値更新処理は、先に設定されている補正値に対して特定の単位定数が各補正エリアに応じて加減される処理であることを特徴とする、請求項３に記載のアナログ角度センサ精度補正プログラム。
【請求項５】
前記他の補正エリアは前記現在の補正エリアに隣接する一の補正エリアであることを特徴とする、請求項４に記載のアナログ角度センサ精度補正プログラム。
【請求項６】
前記補正値更新処理は、前記現在の補正エリアと前記隣接する一の補正エリアに対して、一方には前記特定の単位定数を加算し、他方にはこれと反対符号の数を加算する処理であることを特徴とする、請求項５に記載のアナログ角度センサ精度補正プログラム。
【請求項７】
前記補正値更新処理は、前記現在の補正エリアにおいて前記対象速度値が前記指令速度値よりも大きい場合には、該補正エリアに先に設定されている補正値に「−｜特定の単位定数｜」が加算され、これに隣接する補正エリアには「＋｜特定の単位定数｜」が加算される処理であり、また該対象速度値が該指令速度値よりも小さい場合には、該補正エリアに先に設定されている補正値に「＋｜特定の単位定数｜」が加算され、これに隣接する補正エリアには「−｜特定の単位定数｜」が加算される処理であることを特徴とする、請求項６に記載のアナログ角度センサ精度補正プログラム。
【請求項８】
前記速度補正手順は、前記現在の補正エリアおよび隣接する補正エリアにおいて補正値更新処理された各補正値と、両補正エリア間の間隔角度であるエリア補間角度と、角度センサによる位置情報から得られる現在のモータ軸角度とに基づいて速度補正値変数Ｋｖｃｐを算出し、角度センサによる位置情報から得られる従来の計算速度変数Ｖに該速度補正値変数Ｋｖｃｐを乗じて、補正後計算速度Ｖｓｖを算出する手順であることを特徴とする、請求項５ないし７のいずれかに記載のアナログ角度センサ精度補正プログラム。
【請求項９】
前記補正テーブルに初期的に設定される補正値は、０以上２以下の数であることを特徴とする、請求項３ないし８のいずれかに記載のアナログ角度センサ精度補正プログラム。
【請求項１０】
前記補正エリアは４以上設けられ、全補正エリアが等角度で設けられていることを特徴とする、請求項１ないし９のいずれかに記載のアナログ角度センサ精度補正プログラム。
【請求項１１】
前記補正テーブルの全補正エリアに対する前記エリア補正値更新手順の完了をもって一の全補正値更新処理とし、実施すべき該全補正値更新処理回数を予め設定しておき、その回数到達の有無を判定する回数判定手順をサーボドライバまたはコンピュータに機能させることを特徴とする、請求項１ないし９のいずれかに記載のアナログ角度センサ精度補正プログラム。
【請求項１２】
前記回数判定手順において前記設定された全補正値更新処理回数に到達した場合は、前記補正テーブルが不揮発メモリに保存されることを特徴とする、請求項１１に記載のアナログ角度センサ精度補正プログラム。
【請求項１３】
請求項１ないし１２のいずれかに記載のアナログ角度センサ精度補正プログラムが記録された、サーボドライバまたはコンピュータ読み取り可能な記録媒体。
【請求項１４】
請求項１ないし１２のいずれかに記載のアナログ角度センサ精度補正プログラムの格納された、または該プログラムを実行可能なサーボドライバ。
【請求項１５】
サーボドライバまたはコンピュータにより実行可能なサーボモータ制御用のアナログ角度センサ精度補正方法であって、該方法は、
後記補正値更新処理の単位として用いるためにモータ軸回転角度範囲を分割してなる各補正エリア毎に、後記対象速度値に対する補正計算に使用するための変更可能な補正値が配置された構造の補正テーブルを用い、
角度センサによる位置情報に基づき検出される現在の補正エリアにおける補正値更新処理の要否を判定するためのエリア確認要否判定手順と、
該エリア確認要否判定手順において該補正エリアでの確認が必要と判定された場合に、当初指令されたモータ回転速度すなわち指令速度値と、補正処理対象である速度すなわち対象速度値とを比較しその結果に応じて該補正テーブル中の補正エリアに設定されている補正値に対して補正値更新処理を施すためのエリア補正値更新手順と、
該エリア補正値更新手順による更新後の補正値を用いて前記対象速度値に対して補正計算を施す速度補正手順と、
該補正テーブルの全補正エリアについて該エリア補正値更新手順を適用するために当該手順の実施状況を判定するためのエリア処理状況判定手順と、
を備えてなることを特徴とする、アナログ角度センサ精度補正方法。
【請求項１６】
前記補正テーブルの全補正エリアに対する前記エリア補正値更新手順の完了をもって一の全補正値更新処理とし、実施すべき該全補正値更新処理回数を予め設定しておき、その回数到達の有無を判定する回数判定手順をサーボドライバまたはコンピュータにおいて実行可能であることを特徴とする、請求項１５に記載のアナログ角度センサ精度補正方法。
【請求項１７】
前記回数判定手順において前記設定された全補正値更新処理回数に到達した場合は、前記補正テーブルが不揮発メモリに保存されることを特徴とする、請求項１６に記載のアナログ角度センサ精度補正方法。
【請求項１８】
請求項８に記載のアナログ角度センサ精度補正プログラムに用いられる速度補正手順すなわち速度補正アルゴリズムであって、サーボモータにおける通常のサーボ制御中の速度計算にも使用可能な、速度補正アルゴリズム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はアナログ角度センサ精度補正プログラム、補正方法、記録媒体およびサーボドライバに係り、特に、ＡＣサーボモータ等のモータ制御で使用される、レゾルバやアナログＳｉｎ波エンコーダ等のアナログ角度センサについて、モータを駆動するサーボドライバが他の基準となるエンコーダを使用することなく、自動的にセンサ精度を補正することのできる、アナログ角度センサ精度補正プログラム等に関するものである。
【背景技術】
【０００２】
レゾルバ等のアナログ角度センサは従来から、ＡＣサーボモータ等を制御するための角度センサとして使用されている。これらのセンサは、角度情報をアナログ波形でモータ制御装置に送る。そこで、これを制御装置内の制御ソフト内においてモータ角度・速度値として使用するために、デジタル値に変換する処理が必要とされる。
【０００３】
図８は、アナログ角度センサを用いた従来一般的なモータ駆動方法（レゾルバセンサの場合）を示す説明図である。また、
図９は、図８のモータ駆動方法において、アナログ角度センサ波形のデジタル変換方法を示す説明図である。図９に示すように従来の方法では、角度センサによって検出・生成された角度情報は、アナログ信号つまりアナログ波形にてモータ制御装置（サーボドライバ）に送られる。該アナログ信号（Ｓｉｎ／Ｃｏｓ信号）はモータ制御装置のインターフェースを介してＲ／Ｄ変換回路に送られ、ここでデジタル信号に変換される。生成したデジタル位置情報は、モータ制御用デジタルシグナルプロセッサ（ＤＳＰ）にて処理されてＰＷＭ出力を生成し、これによってモータ駆動回路が制御され、モータＵ／Ｖ／Ｗ出力がモータにフィードバックされる。図９に示すのは、２０４８ｃｔ／３６０°の角度情報を、アナログ／デジタル変換する場合の例である。
【０００４】
さて、このデジタル変換の際、アナログ波形の微小な歪みが原因となって、同じ角度移動量でもデジタル値のカウント間隔にバラツキが生じる。このバラツキを「ピッチ誤差」と定義する。
図１０は、ピッチ誤差が生じる理由を示す説明図である。モータが一定速度で回転している場合、仮にその回転速度が厳密に一定であり、アナログ角度センサにより検出されるアナログ波形が理想的であれば、デジタル変換処理における位置カウントでは、図中の下左図のように、カウント間隔＝ピッチが一定のデジタル角度情報が得られるはずである。しかし現実には、アナログ波形には微小な歪みが恒常的に発生するため、それが反映され、下右図のように、カウント間隔＝ピッチにバラツキの生じたデジタル角度情報となってしまう。
【０００５】
こうして発生するピッチ誤差により、モータ制御時のモータ電流には「暴れ」が生じることとなる。
図１１は、モータ制御装置において制御ソフトが行う、従来一般的なモータ速度算出方法を示す説明図である。図中、式１はカウント数に基づいた算出式を、また、式２は１カウント時間に基づいた算出式を示す。図示するように従来のモータ制御装置では、デジタル値の角度情報を用いて、その角度情報の一定時間内カウント数、もしくは１カウント時間に基づいてモータ速度を算出する方法が、一般的に使用されている。
【０００６】
したがって、ピッチ誤差があるとカウント数や１カウント時間が変動し、その結果モータ計算速度値が安定せず変動するようになり、モータを速度制御した場合に上記暴れが発生し、結局、制御応答性能を上げることができない等の問題が生じることとなる。そこで従来は、制御ゲインを下げる等の処置によって、暴れの影響低下ないしは防止を図っていた。なお、以下この暴れを「電流リップル」と定義する。
【０００７】
ところで、モータ制御の高精度化のためには角度センサの精度向上が重要であり、従来複数の技術的提案がなされているが、後掲特許文献１に開示された技術もその一つである。この技術は、レゾルバからのアナログ信号を複数個サンプリングし所定の算出式を用いて、オフセット、位相誤差および振幅差を補正する誤差パラメータをそれぞれ算出し、それに基づいて回転角度値を補正する、というものである。
【０００８】
【特許文献１】特開２００７−３３４１２号公報「位置検出器の誤差パラメータ抽出装置および誤差補正機能を備える位置検出器」
【発明の開示】
【発明が解決しようとする課題】
【０００９】
さて、上述のように、モータを速度制御におけるピッチ誤差による暴れには、制御ゲインを下げる等といった応急的な処置により対処していたわけであるが、制御ゲインの調整による対処には自ずと限界がある。それに、ピッチ誤差が大きい場合は、たとえ一定速度でモータが回転していても、離散的に、算出されるモータ回転速度は大きく変動することとなる。サーボドライバが速度制御や位置制御をしている場合、速度計算値に変動があると、速度指令値との正確な偏差が算出できないため、制御応答速度を上げられない原因となる。
【００１０】
この対策として、速度計算値を平均化するという方法もあるが、そのような方法では、実速度に速度計算値が収束するまでには相当の時間がかかるため、速度計算の応答時間が遅くなってしまい、結局は制御応答速度を下げてしまうことになる。なお、上記特許文献１開示技術は、オフセット、位相誤差、振幅差を補正対象とするものであり、これらよりさらに微視的な誤差であるピッチ誤差に対応できるものではない。
【００１１】
本発明が解決しようとする課題は、上記従来技術の問題点を除き、ＡＣサーボモータ等のモータ制御で使用されるレゾルバやアナログＳｉｎ波エンコーダ等のアナログ角度センサについて、自動的なセンサ精度の補正によって、上記ピッチ誤差によるモータ回転速度計算値の変動を抑制でき、それによりモータ制御応答性能の低下を有効に防止することを可能とする、アナログ角度センサ精度補正プログラム、補正方法、記録媒体およびサーボドライバを提供することである。特に、モータを駆動するサーボドライバが他の基準となるエンコーダを使用することなく、かかる機能を発揮できる、アナログ角度センサ精度補正プログラム、補正方法、記録媒体およびサーボドライバを提供することである。
【課題を解決するための手段】
【００１２】
本願発明者は上記課題について検討した結果、ピッチ誤差による速度計算値の変動を検出し、この変動値から補正値を算出し、その補正値を使用して速度計算値の変動を抑えることによって上記課題の解決が可能であることを見出し、本発明に至った。すなわち、上記課題を解決するための手段として本願で特許請求される発明、もしくは少なくとも開示される発明は、以下の通りである。
【００１３】
（１）  サーボドライバまたはコンピュータにより実行可能なサーボモータ制御用のアナログ角度センサ精度補正プログラムであって、該プログラムは、
後記補正値更新処理の単位として用いるためにモータ軸回転角度範囲を分割してなる各補正エリア毎に、後記対象速度値に対する補正計算に使用するための変更可能な補正値が配置された構造の補正テーブルを用い、
当初指令されたモータ回転速度すなわち指令速度値と、補正処理対象である速度すなわち対象速度値とを比較しその結果に応じて該補正テーブル中の補正エリアに設定されている補正値に対して補正値更新処理を施すためのエリア補正値更新手順と、
該エリア補正値更新手順による更新後の補正値を用いて前記対象速度値に対して補正計算を施す速度補正手順と、
該補正テーブルの全補正エリアについて該エリア補正値更新手順を適用するために当該手順の実施状況を判定するためのエリア処理状況判定手順と、
をサーボドライバまたはコンピュータに機能させることを特徴とする、アナログ角度センサ精度補正プログラム。
（２）  サーボドライバまたはコンピュータにより実行可能なサーボモータ制御用のアナログ角度センサ精度補正プログラムであって、該プログラムは、
後記補正値更新処理の単位として用いるためにモータ軸回転角度範囲を分割してなる各補正エリア毎に、後記対象速度値に対する補正計算に使用するための変更可能な補正値が配置された構造の補正テーブルを用い、
角度センサによる位置情報に基づき検出される現在の補正エリアにおける補正値更新処理の要否を判定するためのエリア確認要否判定手順と、
該エリア確認要否判定手順において該補正エリアでの確認が必要と判定された場合に、当初指令されたモータ回転速度すなわち指令速度値と、補正処理対象である速度すなわち対象速度値とを比較しその結果に応じて該補正テーブル中の補正エリアに設定されている補正値に対して補正値更新処理を施すためのエリア補正値更新手順と、
該エリア補正値更新手順による更新後の補正値を用いて前記対象速度値に対して補正計算を施す速度補正手順と、
該補正テーブルの全補正エリアについて該エリア補正値更新手順を適用するために当該手順の実施状況を判定するためのエリア処理状況判定手順と、
をサーボドライバまたはコンピュータに機能させることを特徴とする、アナログ角度センサ精度補正プログラム。
（３）  前記エリア補正値更新手順においては、現在の補正エリア、およびこれと一定の関係を有する他の補正エリアに対して補正値更新処理がなされることを特徴とする、（１）または（２）に記載のアナログ角度センサ精度補正プログラム。
（４）  前記エリア補正値更新手順においてなされる補正値更新処理は、先に設定されている補正値に対して特定の単位定数が各補正エリアに応じて加減される処理であることを特徴とする、（３）に記載のアナログ角度センサ精度補正プログラム。
【００１４】
（５）  前記他の補正エリアは前記現在の補正エリアに隣接する一の補正エリアであることを特徴とする、（４）に記載のアナログ角度センサ精度補正プログラム。
（６）  前記補正値更新処理は、前記現在の補正エリアと前記隣接する一の補正エリアに対して、一方には前記特定の単位定数を加算し、他方にはこれと反対符号の数を加算する処理であることを特徴とする、（５）に記載のアナログ角度センサ精度補正プログラム。
（７）  前記補正値更新処理は、前記現在の補正エリアにおいて前記対象速度値が前記指令速度値よりも大きい場合には、該補正エリアに先に設定されている補正値に「−｜特定の単位定数｜」が加算され、これに隣接する補正エリアには「＋｜特定の単位定数｜」が加算される処理であり、また該対象速度値が該指令速度値よりも小さい場合には、該補正エリアに先に設定されている補正値に「＋｜特定の単位定数｜」が加算され、これに隣接する補正エリアには「−｜特定の単位定数｜」が加算される処理であることを特徴とする、（６）に記載のアナログ角度センサ精度補正プログラム。
（８）  前記速度補正手順は、前記現在の補正エリアおよび隣接する補正エリアにおいて補正値更新処理された各補正値と、両補正エリア間の間隔角度であるエリア補間角度と、角度センサによる位置情報から得られる現在のモータ軸角度とに基づいて速度補正値変数Ｋｖｃｐを算出し、角度センサによる位置情報から得られる従来の計算速度変数Ｖに該速度補正値変数Ｋｖｃｐを乗じて、補正後計算速度Ｖｓｖを算出する手順であることを特徴とする、（５）ないし（７）のいずれかに記載のアナログ角度センサ精度補正プログラム。
【００１５】
（９）  前記補正テーブルに初期的に設定される補正値は、０以上２以下の数であることを特徴とする、（３）ないし（８）のいずれかに記載のアナログ角度センサ精度補正プログラム。
（１０）  前記補正エリアは４以上設けられ、全補正エリアが等角度で設けられていることを特徴とする、（１）ないし（９）のいずれかに記載のアナログ角度センサ精度補正プログラム。
（１１）  前記補正テーブルの全補正エリアに対する前記エリア補正値更新手順の完了をもって一の全補正値更新処理とし、実施すべき該全補正値更新処理回数を予め設定しておき、その回数到達の有無を判定する回数判定手順をサーボドライバまたはコンピュータに機能させることを特徴とする、（１）ないし（９）のいずれかに記載のアナログ角度センサ精度補正プログラム。
（１２）  前記回数判定手順において前記設定された全補正値更新処理回数に到達した場合は、前記補正テーブルが不揮発メモリに保存されることを特徴とする、（１１）に記載のアナログ角度センサ精度補正プログラム。
【００１６】
（１３）  （１）ないし（１２）のいずれかに記載のアナログ角度センサ精度補正プログラムが記録された、サーボドライバまたはコンピュータ読み取り可能な記録媒体。
（１４）  （１）ないし（１２）のいずれかに記載のアナログ角度センサ精度補正プログラムの格納された、または該プログラムを実行可能なサーボドライバ。
（１５）  サーボドライバまたはコンピュータにより実行可能なサーボモータ制御用のアナログ角度センサ精度補正方法であって、該方法は、
後記補正値更新処理の単位として用いるためにモータ軸回転角度範囲を分割してなる各補正エリア毎に、後記対象速度値に対する補正計算に使用するための変更可能な補正値が配置された構造の補正テーブルを用い、
角度センサによる位置情報に基づき検出される現在の補正エリアにおける補正値更新処理の要否を判定するためのエリア確認要否判定手順と、
該エリア確認要否判定手順において該補正エリアでの確認が必要と判定された場合に、当初指令されたモータ回転速度すなわち指令速度値と、補正処理対象である速度すなわち対象速度値とを比較しその結果に応じて該補正テーブル中の補正エリアに設定されている補正値に対して補正値更新処理を施すためのエリア補正値更新手順と、
該エリア補正値更新手順による更新後の補正値を用いて前記対象速度値に対して補正計算を施す速度補正手順と、
該補正テーブルの全補正エリアについて該エリア補正値更新手順を適用するために当該手順の実施状況を判定するためのエリア処理状況判定手順と、
を備えてなることを特徴とする、アナログ角度センサ精度補正方法。
（１６）  前記補正テーブルの全補正エリアに対する前記エリア補正値更新手順の完了をもって一の全補正値更新処理とし、実施すべき該全補正値更新処理回数を予め設定しておき、その回数到達の有無を判定する回数判定手順をサーボドライバまたはコンピュータにおいて実行可能であることを特徴とする、（１５）に記載のアナログ角度センサ精度補正方法。
（１７）  前記回数判定手順において前記設定された全補正値更新処理回数に到達した場合は、前記補正テーブルが不揮発メモリに保存されることを特徴とする、（１６）に記載のアナログ角度センサ精度補正方法。
（１８）  （８）に記載のアナログ角度センサ精度補正プログラムに用いられる速度補正手順すなわち速度補正アルゴリズムであって、サーボモータにおける通常のサーボ制御中の速度計算にも使用可能な、速度補正アルゴリズム。
【００１７】
つまり本発明の典型的な例では、一定速度の速度指令で速度制御を行い、その際に、物理的なモータ回転角度を複数エリアに分割した角度範囲（角度エリア）毎にモータ速度計算値を取り込み、これと指令速度との差から、その角度エリアにおける補正値を微小値分だけ修正する、という処理を、すべての角度エリアで行い、かかる一連の補正値修正処理を複数回行うことによって補正値が決定される、ということを基本とする。
【００１８】
なおまた、通常の速度計算をする場合は、従来の速度計算値に対して、対応するモータ角度エリアの補正値を乗算し、補正後の計算値を算出することとする。また本発明は、補正値算出時に、実際のモータ速度と速度計算値との間に差が生じないような工夫も施されているものである。
【発明の効果】
【００１９】
本発明のアナログ角度センサ精度補正プログラム、補正方法、記録媒体およびサーボドライバは上述のように構成されるため、これによれば、ＡＣサーボモータ等のモータ制御で使用されるレゾルバ等のアナログ角度センサについて、自動的なセンサ精度の補正により、ピッチ誤差によるモータ回転速度計算値の変動を抑制することができ、モータ制御応答性能の低下を有効に防止することができる。特に、モータを駆動するサーボドライバが他の基準となるエンコーダを使用することなく、かかる効果を得ることができる。
【００２０】
つまり、本発明のアナログ角度センサ精度補正プログラム等によれば、センサ精度の悪さに由来する電流リップルを低減することができ、それにより制御ゲインをより高く設定することができる結果、モータ制御応答性能を向上させることができる。
【００２１】
また本発明のアナログ角度センサ精度補正プログラム等は、補正値算出のために特別な設備や装置等を必要としないため、安価かつ短時間にて補正値を算出し所定の効果を得ることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明を図面により詳細に説明する。
図１は、本発明のアナログ角度センサ精度補正プログラムの基本的手順を示すフロー図である。また、
図２は、本発明のアナログ角度センサ精度補正プログラムにて用いる補正エリアの例を示す説明図、
図３は、本発明のアナログ角度センサ精度補正プログラムにて用いる、図２の補正エリア例に対応する補正テーブルの基本構成および実際の構成例を示す説明図である。まず図１を中心にして、本発明プログラムの基本原理を説明し、追って、より具体的な構成による説明を行う。
【００２３】
図１等に示すように本発明アナログ角度センサ精度補正プログラムは、補正値更新処理の単位として用いるためにモータ軸回転角度範囲を分割してなる各補正エリア毎に、対象速度値に対する補正計算に使用するための変更可能な補正値が配置された構造の補正テーブルを用いて、当初指令されたモータ回転速度すなわち指令速度値と、補正処理対象である速度すなわち対象速度値とを比較しその結果に応じて補正テーブル中の補正エリアに設定されている補正値に対して補正値更新処理を施すためのエリア補正値更新手順Ｓ３と、エリア補正値更新手順Ｓ３による更新後の補正値を用いて前記対象速度値に対して補正計算を施す速度補正手順Ｓ０と、補正テーブルの全補正エリアについてエリア補正値更新手順Ｓ３を適用するために当該手順の実施状況を判定するためのエリア処理状況判定手順Ｓ４と、をサーボドライバまたはコンピュータに機能させるプログラムであることを、基本的な原理、構成とする。
【００２４】
かかる構成を備えるため、本アナログ角度センサ精度補正プログラムが実行されることによって、これが内蔵されたサーボドライバまたはコンピュータは次の手順を実施する。すなわち；
エリア補正値更新手順Ｓ３では、当初指令されたモータ回転速度すなわち指令速度値と、補正処理対象である速度すなわち対象速度値とが比較されて、その結果に応じて補正テーブル中の補正エリアに設定されている補正値に対して補正値更新処理が施され、また、速度補正手順Ｓ０では、エリア補正値更新手順Ｓ３による更新後の補正値が用いられて、対象速度値に対して補正計算が施され、そして、エリア処理状況判定手順Ｓ４では、エリア補正値更新手順Ｓ３手順の実施状況が判定されることによって、補正テーブルの全補正エリアについて当該手順Ｓ３の適用がなされる。
【００２５】
図１に示すように、本発明プログラムにおいてはさらに、角度センサによる位置情報に基づき検出される現在の補正エリアにおける補正値更新処理の要否を判定するためのエリア確認要否判定手順Ｓ２を設けることとし、エリア補正値更新手順Ｓ３は、該エリア確認要否判定手順Ｓ２において、補正エリアでの確認が必要と判定された場合に、これが実行される構成とすることができる。
【００２６】
かかる構成の場合は、エリア確認要否判定手順Ｓ２において、角度センサによる位置情報に基づき検出される現在の補正エリアにおける補正値更新処理の要否が判定され、補正エリアでの確認が必要と判定された場合には、エリア補正値更新手順Ｓ３が実行される。
【００２７】
図２以下の図について、説明する。図２では、分割数Ｎｄｉｖ＝１２  つまり、モータ軸角度を等角で１２分割した例を示しているが、本発明がこれに限定されず、他の分割数や非等角であることを決して排除するものではない。しかしながら、補正処理上各エリアが等角に分割されていることは、極めて望ましい。また補正エリア数はある程度多く設定することによって、本発明のセンサ精度補正処理も緻密に行われるため、少なくとも、２分割や３分割よりは多く設けることが望ましい。
【００２８】
また図３の補正テーブル説明図に示すように、補正エリアの番号をｎ、基準位置−各補正エリア間の角度をエリア補間角度Ａｄｇ（ｎ）［°］、各補正エリアにおける変更可能な補正値をＫｖｃｐ（ｎ）［倍］、最小分解能をＫｌｓｂ  とする。ここで、最小分解能Ｋｌｓｂとは補正値Ｋｖｃｐ（ｎ）の分解能を表しており、この値が小さい程、より精度の良い補正が可能となる。
また、図３中に示されているＫｖｃｐ（ｎ）の物理値とは、速度補正計算を実施する場合に速度計算値に乗算される補正値Ｋｖｃｐ（ｎ）が、物理的に何倍に相当しているかを表したものであり、補正後速度［ｒｐｍ］＝Ｋｖｃｐ（ｎ）の物理値×補正前速度［ｒｐｍ］の関係になる。
【００２９】
また、同じく実データとは、Ｋｖｃｐ（ｎ）の補正データのソフトウェア上で扱う数値のことであり、１の値が１／Ｋｌｓｂの重みを持っている。つまり、Ｋｖｃｐ（ｎ）の実データ＝Ｋｌｓｂの時に、Ｋｖｃｐ（ｎ）の物理値が１倍となる。
また、同じく実データの例は、Ｋｖｃｐ（ｎ）の物理値とＫｖｃｐ（ｎ）の実データの関係の例を示す。
これらの図は、後述の説明において再び用いる。
【００３０】
なおまた、図３の補正テーブルに初期的に設定される補正値は適宜設定できるが、特にこれを０以上２以下の数と限定してもよい。また、補正エリアを４以上設けるとともに全補正エリアが等角度で設けられているという構成に限定することもできる。
【００３１】
図４は、本発明アナログ角度センサ精度補正プログラムにおけるエリア補正値更新手順の構成例について、より詳しく説明したフロー図である。図示するように本発明プログラムのエリア補正値更新手順Ｓ３においては、現在の補正エリア、およびこれと一定の関係を有する他の補正エリアに対して補正値更新処理がなされるものとすることができる。
【００３２】
つまり、一度のエリア補正値更新手順Ｓ３の中で、複数の補正エリアにおける補正を行うこととするものであり、しかも補正対象とする補正エリアが、相互に一定の関係に基づき選択、特定されるため、補正作業の効率化が可能である。この一定の関係は、簡単には、二の補正エリアが相互に隣接する関係とすることができる。
【００３３】
また、エリア補正値更新手順Ｓ３においてなされる補正値更新処理を、先に設定されている補正値に対して特定の単位定数が各補正エリアに応じて加減される処理とすることができる。かかる方法によれば、補正値更新処理を効率化することができ、また、モータ回転速度計算値の変動の抑制に効果的である。
【００３４】
以上より、本発明アナログ角度センサ精度補正プログラムにおいては、エリア補正値更新手順Ｓ３においてなされる補正値更新処理を、特に、現在の補正エリアとこれに隣接する一の補正エリアに対して、一方には特定の単位定数を加算し、他方にはこれと反対符号の数を加算する処理として、具体的に構成することができる。
【００３５】
つまり補正値更新手順Ｓ３の処理は、図４の例に具体的に示されているように、下記のような処理として構成するものとすることができる；
現在の補正エリアｎにおいて対象速度値Ｖｓｖが指令速度値Ｖｃｍｄよりも大きい場合には、補正エリアｎに先に設定されている補正値Ｋｖｃｐ（ｎ）に「−｜特定の単位定数｜」が加算される（図では、「−Ｄｐ」がＫｖｃｐ（ｎ）に加算される）。そして、これに隣接する補正エリアｎ＋１においては、先に設定されている補正値Ｋｖｃｐ（ｎ＋１）に「＋｜特定の単位定数｜」が加算される（図では、「＋Ｄｐ」がＫｖｃｐ（ｎ＋１）に加算される）。
【００３６】
一方、対象速度値Ｖｓｖが該指令速度値Ｖｃｍｄよりも小さい場合には、補正エリアｎに先に設定されている補正値に「＋｜特定の単位定数｜」が加算される（図では、「＋Ｄｐ」がＫｖｃｐ（ｎ）に加算される）。そして、これに隣接する補正ｎ＋１においては、「−｜特定の単位定数｜」が加算される（図では、「−Ｄｐ」がＫｖｃｐ（ｎ＋１）に加算される）。このように、特定の単位定数に基づいた連動した処理として、補正値更新処理を構成することができる。
【００３７】
補正値更新手順Ｓ３において、現在の補正エリアにおける補正値更新処理が完了すると、続くエリア処理状況判定手順Ｓ４では、エリア補正値更新手順Ｓ３手順の実施状況すなわち実施の有無が判定されて、全補正エリアに対して補正値更新手順Ｓ３が適用されるまで本プログラムにおける手順が繰り返され、最終的には、補正テーブルの全補正エリアについて当該手順Ｓ３が適用される。
【００３８】
補正値更新手順Ｓ３における補正値更新処理をこのように構成することによって、全ての補正値の乗算値が１．０倍になるため、モータ回転速度計算値の平均値の変化がなくなり、電流リップルを低減することができ、それにより制御ゲインをより高く設定することができる結果、モータ制御応答性能を向上させることができる。
【００３９】
図５は、本発明アナログ角度センサ精度補正プログラムの速度補正手順の構成例を示すフロー図である。図示するように速度補正手順０は、前述の補正テーブルを用いて補正速度計算を実施する手法であり、具体的には下記のように構成することができる。すなわち；
現在の補正エリアｎおよび隣接する補正エリアｎ＋１において補正値更新処理された各補正値Ｋｖｃｐ（ｎ）、Ｋｖｃｐ（ｎ＋１）と、両補正エリアｎ、ｎ＋１間の間隔角度であるエリア補間角度Ａｄｇ（ｎ）と、角度センサによる位置情報から得られる現在のモータ軸角度Ｒｄｇとに基づいて速度補正値変数Ｋｖｃｐを算出し、角度センサによる位置情報から得られる従来の計算速度変数Ｖに該速度補正値変数Ｋｖｃｐを乗じて、補正後計算速度Ｖｓｖを算出する手順  として、構成することができる。
【００４０】
図示するフローは、図１や後掲図６、７に示すように、本発明のアナログ角度センサ精度補正プログラムにおいて使用できるものである他、通常のサーボ制御中の速度計算の際にも用いることができる。
【００４１】
図５に示す手順をさらに詳しく述べる。
角度センサ情報から、従来の計算速度Ｖ[ｒｐｍ]とエリア番号ｎを算出し、現在のエリアｎの補正テーブル値Ｋｖｃｐ（ｎ）と、隣のエリアｎ＋１の補正テーブル値Ｋｖｃｐ（ｎ＋１）、および図３に示したエリア補間角度Ａｄｇ（ｎ）から、現在のモータ軸角度の速度補正値を補間計算する（図中、式３）。なおここで、エリア補間角度Ａｄｇ（ｎ）は補正エリアの中心角度にあることが望ましいが、そうすると補間計算が煩雑となるため、図示する例では、エリア補間角度Ａｄｇ（ｎ）は補間エリアの端点に設定している。そのようにしても、補正エリアの分割数Ｎｄｉｖが充分な大きさであれば、実際上問題はない。
【００４２】
繰り返しになるが、このようにして算出された速度補正値Ｋｖｃｐと、計算速度Ｖ[ｒｐｍ]を乗算することによって、補正後の計算速度Ｖｓｖが算出される（図中、式４）。
【００４３】
図６は、本発明のアナログ角度センサ精度補正プログラムの基本的手順について、別の例を示すフロー図である。図示するように本例プログラムは、図１に示した構成に加えて、回数判定手順Ｓ１を設ける構成である。ここで回数判定手順Ｓ１とは、補正テーブルの全補正エリアに対するエリア補正値更新手順Ｓ３の完了をもって一の全補正値更新処理とし、実施すべき全補正値更新処理回数を予め設定しておき、その回数到達の有無を判定する、という手順である。
【００４４】
図では、回数判定手順Ｓ１は、エリア確認要否判定手順Ｓ２、エリア補正値更新手順Ｓ３、エリア処理状況判定手順Ｓ４  のいずれの手順よりも上流側、また速度補正手順Ｓ０の下流側に設けられているが、これに限定されるものではない。要するに、予め設定された全補正値更新処理回数に、実際の補正値更新処理回数が到達したか否かを判定して、到達していない場合には到達するまでエリア補正値更新処理手順Ｓ３が繰り返されるよう、かつ到達した場合には所定の終結処理がなされるような設定が可能であれば、フロー中の適宜の位置に設けてよいものである。
【００４５】
回数判定手順Ｓ１において設定された全補正値更新処理回数に到達した場合の終結処理は、現在の補正テーブルが不揮発メモリに保存される処理とすることができる。
【００４６】
図７は、本発明のアナログ角度センサ精度補正プログラムの実施例を示すフロー図である。本図と前出図５他により、本発明の実施例について説明する。
図２に示したように、まずモータ１回転の角度を定数Ｎｄｉｖで分割した補正エリアを設定する。本例では、Ｎｄｉｖ＝１２  すなわち全１２エリア（角度範囲）を設けている。そして、それぞれの角度範囲に補正値Ｋｖｃｐ（ｎ）を配置した構造の補正テーブルを用意しておく（図３）。
【００４７】
補正値Ｋｖｃｐ（ｎ）の物理値は、０〜２倍の範囲とした。つまり補正値Ｋｖｃｐ（ｎ）は、０〜２倍の物理的重みを持つ固定小数点データであり、ここで、補正値Ｋｖｃｐ（ｎ）の最小分解能（以下、単に「分解能」ともいう。）をＫｌｓｂと定義するが、これは上述の通り、値が小さい程、より精度の高い補正が可能となる。なお、分解能Ｋｌｓｂの初期値は１倍としておく。
【００４８】
補正エリアの設定、補正テーブルの準備をした上で、図７に示すように、まずモータを一定速度Ｖｃｍｄで速度制御する。速度制御は、毎回更新される補正値（以下、「補正テーブル値」あるいは「補正テーブル値変数」ともいう。）Ｋｖｃｐ（ｎ）を使用した補正後の計算速度（以下、「補正後計算速度値変数」ともいう。）Ｖｓｖ［ｒｐｍ］を使用して行う（図５）。
【００４９】
図７の速度補正手順Ｓ７０「速度補正アルゴリズム」にて、新たな補正後速度計算値Ｖｓｖが得られる。実施例では、後述エリア確認要否判定手順Ｓ７２に先立ち、回数判定手順Ｓ７１が設けられている。ここでは、補正値更新回数Ｃｃｈｋと補正値更新終了回数（または、「補正値更新終了回数定数」）Ｐｃｎが比較され、前者が後者以上であれば、補正テーブルが不揮発メモリに保存されて、本プログラムに基づくサーボドライバ等の作業が終了する。一方、前者が後者より小さい場合は、以降の手順に進むことになる。なお該手順Ｓ７１の位置は、上述の通り、実施例に限定されるものではない。
【００５０】
さて、補正値更新手順Ｓ７３に先立ち、角度センサ情報から、モータ軸角度が現在補正テーブルのどの補正エリアｎにあるかが検索される。そして、検索された補正エリアｎにおける、補正テーブル値Ｋｖｃｐ（ｎ）の補正値更新手順が実施される。
【００５１】
具体的にはまず、エリア確認要否判定手順Ｓ７２において、検索された補正エリアｎが既に確認、補正値更新済みの補正エリアであるか否かが判断される。補正エリアｎが既に確認済み、更新済みである場合は、その後の補正値更新手順Ｓ７３は迂回して、エリア処理状況判定手順Ｓ７４へと進む。補正エリアｎがまだ未確認、未更新である場合は、その後の補正値更新手順Ｓ７３に進む。
【００５２】
補正値更新手順Ｓ７３では、速度補正手順Ｓ７０において算出された補正後計算速度値Ｖｓｖ［ｒｐｍ］と、速度指令値Ｖｃｍｄ［ｒｐｍ］とが比較され、計算速度値Ｖｓｖが指令値Ｖｃｍｄよりも大きい場合は、補正テーブル値Ｋｖｃｐ（ｎ）には補正値更新単位定数−Ｄｐが加算され、一方、小さい場合には、＋Ｄｐが加算される。さらに、補正値が更新処理された補正エリアｎの隣の補正エリアｎ＋１に係る補正テーブル値Ｋｖｃｐ（ｎ＋１）に対しては、補正エリアｎの補正テーブル値Ｋｖｃｐ（ｎ）に加算された補正値更新単位定数の符号を逆にした値が加算される。このように連動させた処理により、全ての補正値の乗算値が１．０倍になるため、モータ回転速度計算値の平均値の変動が抑えられることになる。
【００５３】
補正値更新単位定数Ｄｐは小さい程、補正値の計算精度が高くなる。しかし、同時に補正値の収束時間が延びるため、収束時間と補正計算精度のトレードオフで最適な値を設定すればよい。
【００５４】
なお、補正値更新単位定数Ｄｐの初期値を大きな値としておき、補正値更新回数Ｃｃｈｋがカウントアップするにつれて徐々に補正値更新単位定数Ｄｐを小さくしていけば、補正計算精度を高く維持したまま、収束時間を短縮することができる。
【００５５】
補正値更新手順Ｓ７３における補正テーブル値Ｋｖｃｐ（ｎ）の算出は、サーボ処理周期毎に実施され、すべての補正エリアにおいてその計算が終了するまで繰り返される。
【００５６】
全補正エリアにおける確認、補正値更新処理がなされたか否かは、エリア処理状況判定手順Ｓ７４にて判断され、未確認・未処理の補正エリアがまだ存在すると判断された場合は、本プログラムのフローを繰り返すべく、前段の手順に戻る。そして、再度始めから同じ手順にて処理がなされ、これが、設定された補正値更新終了回数Ｐｃｎに到達するまで繰り返される。
【００５７】
一方、全ての補正エリアが確認済み、補正値更新処理済みと判断された場合は、これで、一回の全補正値更新処理がなされたわけであるから、エリア確認済み情報の初期化がなされるとともに、補正値更新回数変数Ｃｃｈｋに１が加算されて、本プログラムのフロー前段の手順に戻る。
【００５８】
補正値更新終了回数Ｐｃｎの設定は任意であるが、補正後計算速度値Ｖｓｖの値が収束するのに充分な回数を設定すればよい。
【００５９】
ところで、補正値計算を行う対象の補正エリアｎは、サーボ処理周期毎にランダムに変化するため、全ての補正エリアにおける補正値更新処理が終了する前に、既に計算処理が済んでいる補正エリアが検索されてしまう可能性もある。しかしその場合には、上述の通りエリア確認要否判定手順Ｓ７２によって処理されるため、重複して補正テーブル値Ｋｖｃｐ（ｎ）が更新処理されることはない。
【００６０】
なおまた、補正計算をする場合の速度指令値Ｖｃｍｄ［ｒｐｍ］を、サーボ処理周期の時間では割り切れない値に設定することによって、同じ補正エリアが繰り返し検索される確率を減らすことができる。
【００６１】
また、補正値算出中における速度制御は、毎回更新される補正テーブル値Ｋｖｃｐ（ｎ）を使用して算出された補正後の計算速度Ｖｓｖがその都度用いられてなされる。
【００６２】
速度補正値の精度は、補正エリアの分割数Ｎｄｉｖと補正テーブル値の最小分解能Ｋｌｓｂを小さくすることによって、高くすることができる。そのため、サーボ制御をするサーボドライバやコンピュータの演算装置が持っているメモリ容量とのトレードオフで、可能な限り大きな値に設定すればよい。
【００６３】
以上説明した、本発明のアナログ角度センサ精度補正プログラムは、これを、サーボドライバまたはコンピュータ読み取り可能な記録媒体に格納してもよいし、直接、サーボドライバ等に格納してもよい。
【産業上の利用可能性】
【００６４】
本発明のアナログ角度センサ精度補正プログラム等によれば、センサ精度の悪さに由来する電流リップルを低減することができ、それにより制御ゲインをより高く設定でき、モータ制御応答性能を向上させることができる。しかも、特別な設備や装置等が不要であり、安価かつ短時間にて所定の効果を得られるため、モータ制御およびその関連分野において非常に利用価値が高い発明である。
【図面の簡単な説明】
【００６５】
【図１】本発明のアナログ角度センサ精度補正プログラムの基本的手順を示すフロー図である。
【図２】本発明のアナログ角度センサ精度補正プログラムにて用いる補正エリアの例を示す説明図である。
【図３】本発明のアナログ角度センサ精度補正プログラムにて用いる、図２の補正エリア例に対応する補正テーブルの基本構成および実際の構成例を示す説明図である。
【図４】本発明アナログ角度センサ精度補正プログラムにおけるエリア補正値更新手順の構成例について、より詳しく説明したフロー図である。
【図５】本発明アナログ角度センサ精度補正プログラムの速度補正手順の構成例を示すフロー図である。
【図６】本発明のアナログ角度センサ精度補正プログラムの基本的手順について、別の例を示すフロー図である。
【図７】本発明のアナログ角度センサ精度補正プログラムの実施例を示すフロー図である。
【図８】アナログ角度センサを用いた従来一般的なモータ駆動方法（レゾルバセンサの場合）を示す説明図である。
【図９】図８のモータ駆動方法において、アナログ角度センサ波形のデジタル変換方法を示す説明図である。
【図１０】従来技術において、ピッチ誤差が生じる理由を示す説明図である。
【図１１】モータ制御装置において制御ソフトが行う、従来一般的なモータ速度算出方法を示す説明図である。
【符号の説明】
【００６６】
Ｓ０、Ｓ７０…速度補正手順（速度補正アルゴリズム）
Ｓ１、Ｓ７１…回数判定手順
Ｓ２、Ｓ７２…エリア確認要否判定手順
Ｓ３、Ｓ７３…エリア補正値更新手順
Ｓ４、Ｓ７４…エリア処理状況判定手順
【図１】
0004940411.tif 000002
【図２】
0004940411.tif 000003
【図３】
0004940411.tif 000004
【図４】
0004940411.tif 000005
【図５】
0004940411.tif 000006
【図６】
0004940411.tif 000007
【図７】
0004940411.tif 000008
【図８】
0004940411.tif 000009
【図９】
0004940411.tif 000010
【図１０】
0004940411.tif 000011
【図１１】
0004940411.tif 000012