(57)【要約】【課題】モータが駆動する可動部に一定の動作を繰り返させる際の位置制御精度を向上することが可能なモータの制御装置を提供する。【解決手段】制御装置は、サンプリング周期ごとに、位置指令で指定された可動部２の位置と位置検出器４による可動部２の測定位置間の位置偏差を算出し、補正量が加算された位置偏差から生成される駆動信号に、所定の周期を持つ位相信号から生成された外乱信号を加算し、外乱信号が加算された駆動信号に基づいて可動部２を駆動するモータ３を動作させる駆動信号生成部２１と、位置偏差を減少させるように動特性補償フィルタを用いて補正量を算出する学習制御部２４と、位置偏差の大きさに関する評価値が所定の条件を満たすように動特性補償フィルタの構成を変更する動作評価部２５とを有する。【選択図】図２
2020170354.tif 000002
【特許請求の範囲】
【請求項１】
可動部に一定の動作を繰り返させるよう、前記可動部を駆動するモータの制御装置であって、
所定の周期を持つ位相信号を生成する位相信号生成部と、
前記位相信号に基づいて、前記所定の周期で繰り返される外乱信号を生成する外乱信号生成部と、
所定のサンプリング周期ごとに、位置指令により指定された前記可動部の位置と位置検出器により測定された前記可動部の位置との間の位置偏差を算出し、前記位置偏差を補正するための補正量を前記位置偏差に加算し、前記補正量が加算された前記位置偏差に基づいて生成される、前記モータを駆動するための駆動信号に前記外乱信号を加算し、当該外乱信号が加算された駆動信号に基づいて前記モータを動作させる駆動信号生成部と、
前記位置偏差を減少させるよう、前記モータの制御系の動特性を補償するための動特性補償フィルタを用いて前記補正量を算出する学習制御部と、
前記所定の周期を少なくとも一つ含む繰返し周期ごとに、当該繰返し周期における、前記所定のサンプリング周期ごとの前記位置偏差の大きさを表す評価値を算出し、当該評価値が所定の条件を満たすように前記動特性補償フィルタの構成を変更する動作評価部と、
を有する制御装置。
【請求項２】
前記学習制御部は、前記所定のサンプリング周期ごとに、前記位置偏差に、前記所定の周期における一周期前の位置偏差の補正量を表す補正データを加算し、当該補正データが加算された前記位置偏差に対してローパスフィルタを適用して当該サンプリング周期における補正データを求め、求めた補正データに対して前記動特性補償フィルタを適用することで前記補正量を算出する、請求項１に記載の制御装置。
【請求項３】
前記動特性補償フィルタは、有限インパルス応答型のフィルタであり、
前記動作評価部は、前記動特性補償フィルタのタップ数、各次数の重み係数及び各次数の重み係数のうちの０でない重み係数の数のうちの少なくとも一つである変更パラメータを、前記評価値が前記所定の条件を満たすように変更する、請求項１または２に記載の制御装置。
【請求項４】
前記動作評価部は、前記評価値が前記所定の条件を満たす許容上限値となる前記動特性補償フィルタの前記変更パラメータの値から最も遠くなるように、当該変更パラメータの値を決定する、請求項３に記載の制御装置。
【請求項５】
前記動作評価部は、前記所定の周期ごとの前記動特性補償フィルタの前記変更パラメータを、当該周期における前記評価値が前記所定の条件を満たすか否かの判定結果に応じた表示態様にて表示装置に表示させる、請求項３または４に記載の制御装置。
【請求項６】
可動部に一定の動作を繰り返させるよう、前記可動部を駆動するモータを制御するためのモータ制御用コンピュータプログラムであって、
所定の周期を持つ位相信号を生成し、
前記位相信号に基づいて、前記所定の周期で繰り返される外乱信号を生成し、
所定のサンプリング周期ごとに、位置指令により指定された前記可動部の位置と位置検出器により測定された前記可動部の位置との間の位置偏差を算出し、前記位置偏差を補正するための補正量を前記位置偏差に加算し、前記補正量が加算された前記位置偏差に基づいて生成される、前記モータを駆動するための駆動信号に前記外乱信号を加算し、当該外乱信号が加算された駆動信号に基づいて前記モータを動作させ、
前記位置偏差を減少させるように、前記モータの制御系の動特性を補償するための動特性補償フィルタを用いて前記補正量を算出し、
前記所定の周期を少なくとも一つ含む繰返し周期ごとに、当該繰返し周期における、前記所定のサンプリング周期ごとの前記位置偏差の大きさを表す評価値を算出し、当該評価値が所定の条件を満たすように前記動特性補償フィルタの構成を変更する、
ことをコンピュータに実行させるためのモータ制御用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、モータの制御装置、及び、そのような制御装置で用いられるモータ制御用コンピュータプログラムに関する。
【背景技術】
【０００２】
サーボモータを用いて駆動される可動部を有するロボットまたは工作機械といった自動機械において、ワークに対して繰り返し同じ加工を行う場合のように、所定の周期ごとに同じ動作が繰り返されることがある。このような場合に、いわゆる学習制御を適用することで、繰り返し動作中における、サーボモータにより駆動される可動部の個々の目標位置と、実際の可動部の位置間の位置偏差を減少させることが提案されている（例えば、特許文献１を参照）。
【０００３】
例えば、特許文献１に記載のサーボモータ駆動制御装置は、サンプリング時に求められる位置偏差とサーボモータの駆動とを同期して出力される参照位置より、その参照位置における所定位置の位置偏差を求め、その位置偏差と対応する補正データを加算しフィルタ処理してその位置に対応する、メモリ手段に記憶する対応する補正データを更新する。また、この駆動制御装置は、メモリ手段に記憶する位置に対応する補正データと参照位置によりサンプリング時の補正データを求め、その補正データを動特性補償して補正量を求めて位置偏差に加算する。
【０００４】
このような学習制御において、より適切なサーボモータの制御条件を設定し、または、機械特性または運転条件に適合する学習パラメータの選択を可能とする技術が提案されている（例えば、特許文献２及び３を参照）。
【０００５】
例えば、特許文献２に記載のサーボ制御装置は、正弦波を位置制御ループへ入力したときの位置制御ループの出力から、位置制御ループ入出力信号の利得と位相に関する、実測の周波数特性と学習制御器の周波数特性に基づいて、学習制御器付きの位置制御特性を示す評価値を計算する。そしてこの制御装置は、評価値に基づいて学習制御器を構成する帯域制限フィルタ及び動特性補償フィルタの少なくとも一方の構成を変更する。
【０００６】
また、特許文献３に記載の制御支援装置は、サーボシステムにおける電動機の動作をモデル化した演算モデルと、電動機の制御応答を調整するための調整パラメータについてシミュレーションを行うための模擬的な調整パラメータの条件であるシミュレーション条件とを用いて、電動機を所定の目標動作に制御する場合のシミュレーションを行った結果に基づいて調整パラメータ及び調整パラメータに関する調整条件を自動設定する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００４−２８０７７２号公報
【特許文献２】特開２０１７−８４１０４号公報
【特許文献３】特開２００９−１２２７７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献２に記載の技術では、正弦波からなる外乱が、位置制御ループの位置偏差取得部に入力されるので、位置偏差そのものに正弦波状の外乱が加わった場合については評価される。しかし、外乱自体が周期的であっても、位置偏差が周期的となるとは限られない場合、この技術では、その外乱による影響を抑制するように動特性補償フィルタの構成を最適化できないことがある。
【０００９】
また、特許文献３に記載の技術では、シミュレーションにより調整パラメータなどが設定されるので、サーボモータまたはサーボモータで駆動される可動部などの実際の機械特性または動作特性などが正確に評価されず、その結果として、調整パラメータが最適化されないことがある。
【００１０】
一つの側面では、モータが駆動する可動部に一定の動作を繰り返させる際の位置制御精度を向上することが可能なモータの制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
一つの実施形態によれば、周期的に動作する可動部を駆動するモータの制御装置が提供される。この制御装置は、所定の周期を持つ位相信号を生成する位相信号生成部と、位相信号に基づいて、所定の周期で繰り返される外乱信号を生成する外乱信号生成部と、所定のサンプリング周期ごとに、位置指令により指定された可動部の位置と位置検出器により測定された可動部の位置との間の位置偏差を算出し、位置偏差に対してその位置偏差を補正するための補正量を加算し、補正量が加算された位置偏差に基づいて生成される、モータを駆動するための駆動信号に外乱信号を加算し、外乱信号が加算された駆動信号に基づいてモータを動作させる駆動信号生成部と、位置偏差を減少させるように、モータの制御系の動特性を補償するための動特性補償フィルタを用いて補正量を算出する学習制御部と、所定の周期を少なくとも一つ含む繰返し周期ごとに、その繰返し周期における、所定のサンプリング周期ごとの位置偏差の大きさを表す評価値を算出し、その評価値が所定の条件を満たすように動特性補償フィルタの構成を変更する動作評価部とを有する。
【００１２】
他の形態によれば、一定の動作を繰り返す可動部を駆動するモータを制御するためのモータ制御用コンピュータプログラムが提供される。このモータ制御用コンピュータプログラムは、所定の周期を持つ位相信号を生成し、位相信号に基づいて、所定の周期で繰り返される外乱信号を生成し、所定のサンプリング周期ごとに、位置指令により指定された可動部の位置と位置検出器により測定された可動部の位置との間の位置偏差を算出し、位置偏差に対してその位置偏差を補正するための補正量を加算し、補正量が加算された位置偏差に基づいて生成される、モータを駆動するための駆動信号に外乱信号を加算し、外乱信号が加算された駆動信号に基づいてモータを動作させ、位置偏差を減少させるように、モータの制御系の動特性を補償するための動特性補償フィルタを用いて補正量を算出し、所定の周期を少なくとも一つ含む繰返し周期ごとに、その繰返し周期における、所定のサンプリング周期ごとの位置偏差の大きさを表す評価値を算出し、評価値が所定の条件を満たすように動特性補償フィルタの構成を変更する、ことをコンピュータに実行させるための命令を含む。
【発明の効果】
【００１３】
一つの側面によれば、モータが駆動する可動部に一定の動作を繰り返させる際の位置制御精度を向上することができる。
【図面の簡単な説明】
【００１４】
【図１】一つの実施形態によるモータ制御システム及びモータ制御システムに含まれる制御装置の概略構成図である。
【図２】学習制御処理及びキャリブレーション処理に関する、制御装置のプロセッサの機能ブロック図である。
【図３】動特性補償フィルタの変更対象となるパラメータの値の表示の一例を示す図である。
【図４】キャリブレーション処理の動作フローチャートである。
【発明を実施するための形態】
【００１５】
以下、図を参照しつつ、本発明の実施形態によるモータの制御装置について説明する。この制御装置は、ロボットまたは工作機械等の自動機械が有する可動部を駆動するためのモータ（例えば、サーボモータ）を制御する。特に、この制御装置は、可動部に対して一定の動作周期ごとに同じ動作を繰り返させる場合に加わる周期的な外乱に対して、モータの制御系の動特性を補償するためのフィルタ（以下、単に動特性補償フィルタと呼ぶ）を最適化する。そのために、この制御装置は、キャリブレーション処理の実行時において、周期的な外乱を疑似的に表す、所定の周期の外乱信号を生成する。そしてこの制御装置は、外乱信号を、モータの目標回転量（すなわち、モータにより駆動される可動部の目標位置）を指定する位置指令から求められる速度指令または電流指令に加えた上でモータを動作させる。その上で、この制御装置は、モータの実測位置と位置指令により指定された位置間の位置偏差の大きさを表す評価値が所定の条件を満たすよう、動特性補償フィルタの構成を最適化する。そしてこの制御装置は、最適化された動特性補償フィルタの構成を、可動部がワークに対して作業する際に適用する。
【００１６】
例えば、機械的共振またはバックラッシによる非線形振動により、位置偏差には外乱とは異なる周期の振動が表れることがある。また、学習制御は、繰り返し動作に同期しない外乱を増幅してしまう性質がある。上記の先行技術では、これらの事象が生じる場合に、位置偏差が抑制されないことがある。しかし、本実施形態による制御装置は、これらの事象が生じる場合でも、位置偏差を減少させることができるよう、動特性補償フィルタの構成を最適化できる。
【００１７】
図１は、一つの実施形態による、モータ制御システム１及びモータ制御システム１に含まれる制御装置５の概略構成図である。モータ制御システム１は、可動部２と、可動部２を駆動するサーボモータ３と、サーボモータ３の基準位置からの回転量、すなわち、可動部２の位置を測定するための位置検出器４と、制御装置５とを有する。
【００１８】
可動部２は、例えば、工作機械あるいはロボットに設けられる工具であり、サーボモータ３の回転軸に対して直接あるいはギヤなどを介して間接的に取り付けられる。そして可動部２は、サーボモータ３により駆動されて、個々のワーク（図示せず）に対して同一の加工を行うといった、一定の動作周期ごとに同じ動作を繰り返す。
【００１９】
サーボモータ３は、モータの一例であり、制御装置５から供給される駆動電流に従って回転することで可動部２を駆動する。
【００２０】
位置検出器４は、例えば、エンコーダあるいはレゾルバであり、サーボモータ３の回転軸に取り付けられる。そして位置検出器４は、サーボモータ３の基準位置からの回転量（すなわち、可動部２の実際の位置）を測定し、その測定値を制御装置５へ出力する。
【００２１】
制御装置５は、サーボモータ３を制御して、サーボモータ３に取り付けられる可動部２に所定の動作を実行させる。本実施形態では、制御装置５は、いわゆる学習制御をサーボモータ３の制御に適用することで、所定の動作の実行中における、所定のサンプリング周期ごとの可動部２の目標位置と実際の位置との位置偏差を減少させる。
【００２２】
そのために、制御装置５は、ユーザインターフェース１１と、通信インターフェース１２と、駆動回路１３と、メモリ１４と、プロセッサ１５とを有する。
【００２３】
ユーザインターフェース１１は、例えば、キーボードまたはマウスといった入力装置と、表示装置とを有する。あるいは、ユーザインターフェース１１は、タッチパネルディスプレイといった、入力装置と表示装置とが一体化された装置を有してもよい。そしてユーザインターフェース１１は、ユーザによる操作に従って、サーボモータ３の動作を開始させ、あるいは停止させるといった操作を表す操作信号を生成し、その操作信号をプロセッサ１５へわたす。またユーザインターフェース１１は、プロセッサ１５から受け取った、各種の表示用の情報を表示する。表示用の情報には、例えば、サーボモータ３または可動部２の動作状況を表す情報、及び、キャリブレーション処理の実行時における、位置偏差の評価値と動特性補償フィルタの構成を規定するパラメータセットの各パラメータ値との関係を表す情報などが含まれる。
【００２４】
通信インターフェース１２は、例えば、制御装置５を通信回線と接続するための通信インターフェース及び通信回線を介した信号の送受信に関する処理を実行するための回路などを含む。そして通信インターフェース１２は、例えば、上位制御装置（図示せず）から、可動部２に所定の動作をさせる際のその所定の動作中の個々の目標位置を指定する一連の位置指令などを受信し、受信した位置指令をプロセッサ１５へわたす。さらに、通信インターフェース１２は、位置検出器４からの信号線を接続するためのインターフェースを有し、位置検出器４から可動部２の位置の測定値を受信する度に、その測定値をプロセッサ１５へわたす。
【００２５】
駆動回路１３は、サーボモータ３に対する電力を供給するための回路を有する。そして駆動回路１３は、電流供給用のケーブルを介してサーボモータ３と接続され、プロセッサ１５から受け取った電流指令に従って、サーボモータ３に生じさせるトルク、回転方向あるいは回転速度に応じた電力をサーボモータ３へ供給する。
【００２６】
メモリ１４は、記憶部の一例であり、例えば、読み書き可能な半導体メモリと読み出し専用の半導体メモリとを有する。さらに、メモリ１４は、半導体メモリカード、ハードディスク、あるいは光記憶媒体といった記憶媒体及びその記憶媒体にアクセスする装置を有していてもよい。
【００２７】
メモリ１４は、制御装置５のプロセッサ１５で実行される、サーボモータ３の制御用の各種コンピュータプログラムなどを記憶する。また、メモリ１４は、サーボモータ３に所定の動作をさせる際の可動部２の目標位置と実際の位置間の位置偏差を補正するための補正データ、及び、モータ制御システム１により実現されるサーボモータ３の制御系の動特性を補償するための動特性補償フィルタの構成を規定するパラメータセットなどを記憶する。
【００２８】
プロセッサ１５は、制御部の一例であり、例えば、Central Processing Unit(CPU)及びその周辺回路を有する。さらにプロセッサ１５は、数値演算用のプロセッサを有していてもよい。そしてプロセッサ１５は、モータ制御システム１全体を学習制御して、サーボモータ３及び可動部２に対して所定の動作を繰り返し実行させる学習制御処理を実行する。またプロセッサ１５は、動特性補償フィルタをキャリブレーションするためのキャリブレーション処理を実行する。
【００２９】
図２は、学習制御処理及びキャリブレーション処理に関する、プロセッサ１５の機能ブロック図である。プロセッサ１５は、駆動信号生成部２１と、位相信号生成部２２と、繰返し指令生成部２３と、学習制御部２４と、動作評価部２５とを有する。プロセッサ１５が有するこれらの各部は、例えば、プロセッサ１５上で実行されるコンピュータプログラムにより実現される機能モジュールである。あるいは、これらの各部は、プロセッサ１５の一部に実装される専用の演算回路として実装されてもよい。なお、プロセッサ１５が有するこれらの各部のうち、位相信号生成部２２、繰返し指令生成部２３及び動作評価部２５は、キャリブレーション処理において使用される。一方、駆動信号生成部２１及び学習制御部２４は、キャリブレーション処理及び学習制御処理の両方で使用される。なお、以下の説明において、適用される処理が明示されない場合には、キャリブレーション処理及び学習制御処理の両方で同じ制御が行われる。なお、図２において、簡単化のために、駆動回路１３の図示は省略されている。
【００３０】
駆動信号生成部２１は、可動部２の繰り返し動作の周期（以下、動作周期と呼ぶ）よりも短い所定のサンプリング周期、すなわち、サーボモータ３を制御するための制御周期ごとに、サーボモータ３を駆動するための駆動信号を生成する。そして駆動信号生成部２１は、生成した駆動信号を駆動回路１３へ出力することでサーボモータ３を動作させる。そのために、駆動信号生成部２１は、減算器３１と、３個の加算器３２〜３４と、速度制御部３５と、電流制御部３６と、二つのスイッチ３７、３８とを有する。そして駆動信号生成部２１は、位置ループ制御及び速度ループ制御に従って、サーボモータ３を動作させる。
【００３１】
減算器３１は、所定のサンプリング周期ごとに、上位制御装置からの位置指令で表された可動部２の目標位置と、位置検出器４から受信した可動部２の実際の位置の測定値との差（位置偏差）を算出し、算出した位置偏差を加算器３２及び学習制御部２４へ出力する。
【００３２】
加算器３２は、減算器３１から位置偏差を受け取る度に、その位置偏差に学習制御部２４から受け取った補正量を加算することで位置偏差を補正する。そして加算器３２は、補正した位置偏差を速度制御部３５へ出力する。
【００３３】
速度制御部３５は、補正された位置偏差を受け取る度に、その補正された位置偏差にポジションゲインを乗じて速度指令を算出する。なお、速度指令は、サーボモータ３を駆動するための駆動信号の一例である。そして速度制御部３５は、速度指令を加算器３３へ出力する。
【００３４】
加算器３３は、キャリブレーション処理の実行時において、スイッチ３７がオンとなっている場合、速度指令を受け取る度に、速度指令で表される速度指令値に、繰返し指令生成部２３により生成された外乱信号のそのサンプリング周期における値を加算することで、速度指令に周期的な外乱を加える。そして周期的な外乱が加えられた速度指令を電流制御部３６へ出力する。一方、キャリブレーション処理の実行時において、スイッチ３７がオフになっている場合、あるいは、学習制御処理の実行時において、加算器３３は、速度指令を受け取る度に、受け取った速度指令をそのまま電流制御部３６へ出力する。
【００３５】
電流制御部３６は、速度指令を受け取る度に、速度指令で表された速度指令値とサーボモータ３の実際の速度との差である速度偏差を求め、その速度偏差に対して比例積分制御といった速度ループ制御を行うことで電流指令を算出する。なお、電流指令は、サーボモータ３を駆動するための駆動信号の他の一例である。また、サーボモータ３の実際の速度は、例えば、位置検出器４により検出されたサンプリング周期ごとのサーボモータの位置から算出される。あるいは、サーボモータ３に回転速度を検出するための回転速度センサ（図示せず）が設けられ、その回転速度センサによりサーボモータ３の実際の回転速度が測定されてもよい。電流制御部３６は、電流指令を加算器３４へ出力する。
【００３６】
加算器３４は、キャリブレーション処理の実行時において、スイッチ３８がオンとなっている場合、電流指令を受け取る度に、電流指令で表される電流指令値に、繰返し指令生成部２３により生成された外乱信号のそのサンプリング周期における値を加算することで、電流指令に周期的な外乱を加える。そして周期的な外乱が加えられた電流指令を駆動回路１３へ出力する。一方、キャリブレーション処理の実行時において、スイッチ３８がオフになっている場合、あるいは、学習制御処理の実行時において、加算器３４は、電流指令を受け取る度に、受け取った電流指令をそのまま駆動回路１３へ出力する。
【００３７】
二つのスイッチ３７、３８の何れか一方は、キャリブレーション処理の実行時において、オンに設定され、他方はオフに設定される。その二つのスイッチのうちの何れがオンになるかは、例えば、ユーザインターフェース１１を介したユーザの操作に従って、あるいは、キャリブレーション処理用のコンピュータプログラムに従って決定される。例えば、サーボモータ３の負荷が比較的大きく、電流指令に外乱を印加してもその外乱に応じた位置偏差が正確に評価されないような場合には、スイッチ３７がオンにされ、外乱は速度指令に加えられる。一方、サーボモータ３の負荷が比較的小さい場合には、スイッチ３８がオンにされ、外乱は電流指令に加えられる。これにより、制御装置５は、周期的な外乱に対して動特性補償フィルタをより精密に最適化できる。なお、学習制御処理が実行される場合には、二つのスイッチ３７、３８の何れもオフに設定される。
【００３８】
位相信号生成部２２は、キャリブレーション処理の実行時において、所定の周期を持ち、かつ、その所定の周期における位相（例えば、0〜2π（または0°〜360°）の範囲に含まれる何れかの値）を表す位相信号を、所定の生成周期ごとに生成する。所定の周期は、例えば、可動部２がワークに対する作業を実施する際にサーボモータ３の動作に加わると想定される周期的な外乱の周期と同一とすることができ、例えば、可動部２の動作周期と同一とすることができる。また、所定の周期は、サーボモータ３に加わると想定される周期的な外乱の周期を学習制御部２４が取得できる形態であれば、可動部２の動作周期と異なっていてもよい。例えば、ワークと工具を相対的に回転させる加工において、サーボモータ３が動作させる工具にワークとの相対的な回転角に応じた外乱が加わる場合には、所定の周期は、想定されるワークの回転周期と同一とすることができる。また、所定の生成周期は、上記のサンプリング周期と同一であってもよく、あるいは、異なっていてもよい。ただし、外乱信号が可動部２がワークに対する作業を実施する際に生じる周期的な外乱を正確に模擬するためには、その生成周期は、サンプリング周期よりも短いことが好ましい。
位相信号生成部２２は、位相信号を生成する度に、生成した位相信号を繰返し指令生成部２３及び学習制御部２４へ出力する。
【００３９】
繰返し指令生成部２３は、キャリブレーション処理の実行時において、位相信号に基づいて可動部２がワークに対する作業を実施する際に生じる周期的な外乱を模擬した外乱信号を生成する。周期的な外乱は、例えば、正弦波または三角波として表される。そして繰返し指令生成部２３は、位相信号を受け取る度に、外乱信号の位相がその位相信号で表される位相となるように外乱信号を生成し、生成した外乱信号を出力する。繰返し指令生成部２３から出力された外乱信号は、二つのスイッチ３７、３８の何れかを介して、加算器３３または加算器３４により、速度指令または電流指令に加えられる。
【００４０】
学習制御部２４は、所定のサンプリング周期ごとに、位置偏差を補正するための補正量を算出する。そのために、学習制御部２４は、時間角度変換部４１と、加算器４２と、フィルタ部４３と、補正データ更新部４４と、角度時間変換部４５と、動特性補償部４６とを有する。
【００４１】
時間角度変換部４１は、キャリブレーション処理時において、位置偏差が入力される度に、その位置偏差を、補正データが用意される単位となる、複数の位相区間の何れかに対応付ける。例えば、位相信号の一周期0〜360°に対して、互いに等しい長さを持つm個(mは２以上の整数、例えば、72、180、360)の位相区間が設定される。時間角度変換部４１は、位置偏差が入力される度に、その位置偏差が入力されたときの位相信号に表された位相が含まれる位相区間を特定し、特定された位相区間に位置偏差を対応付ける。例えば、位相信号では位相が0.1°単位で表されており（すなわち、位相は0〜3599の値で表される）、各位相区間の長さが1°である場合（すなわち、360個の位相区間が存在する場合）、時間角度変換部４１は、位相信号で表された位相の値を10(=1°/0.1°)で除して得られる値により、その位相が含まれる位相区間を特定できる。
【００４２】
また、時間角度変換部４１は、学習制御処理の実行時において、位置偏差が入力される度に、位置偏差入力時の参照位置（例えば、位置指令で指定された目標位置または位置検出器４により測定された可動部２の位置）に基づいて、複数の位相区間のうちのその位置に対応する位相区間を特定する。そして時間角度変換部４１は、特定した位相区間に入力された位置偏差を対応付ける。この場合には、時間角度変換部４１は、可動部２に所定の繰り返し動作を１回実行させるための位置指令の総数に対する、その動作の開始からの位置偏差入力時の位置指令の順番の比に、位相区間の数を乗じることで、対応する位相区間を特定できる。あるいは、時間角度変換部４１は、サーボモータ３に所定の動作を実行させる際の可動部２の移動開始位置から移動終了位置までの移動距離に対する、移動開始位置から位置偏差入力時の参照位置までの移動距離の比に、位相区間の数を乗じることで、対応する位相区間を特定できる。また、サーボモータ３に所定の動作を実行させる際の可動部２に同期して動作する別のモータがある場合は、時間角度変換部４１は、その同期して動作する別のモータに対する位置指令または測定された位置を参照位置として位相区間を特定できる。また、可動部２の所定の繰返し動作が、位置指令に対して上位制御装置が所定の位相信号を元にした繰り返し指令を重畳し、あるいは、モータ制御装置が位置指令に対して位相信号生成部２２により生成される位相信号を元にした繰返し指令を重畳することで実行される際には、時間角度変換部４１は、キャリブレーション処理の実行時と同様に、それら位相信号から位相区間を特定できる。また、可動部２の１回の繰り返し動作に対して、位相信号の周期（すなわち、外乱信号の周期）が複数含まれる場合には、時間角度変換部４１は、メモリ１４に予め記憶された、参照位置と位相区間との対応関係を表す参照テーブルを参照することで、参照位置に対応する位相区間を特定できる。あるいは、時間角度変換部４１は、可動部２の移動開始位置から参照位置まで移動する間の位置指令の受信回数を、１回の位相信号の周期に相当する位置指令の受信回数で除したときの剰余となる数をもとめる。そして時間角度変換部４１は、その剰余となる数に、１回の位相信号の周期に相当する位置指令の受信回数に対する位相区間の数の比を乗じることで、対応する位相区間を特定できる。
【００４３】
時間角度変換部４１は、入力された位置偏差とともに、特定した、その位置偏差に対応する位相区間を表す情報を加算器４２へ出力する。
【００４４】
加算器４２は、位置偏差が入力される度に、入力された位置偏差に対して、その位置偏差と対応する位相区間についての、位相信号の１周期前の補正データをメモリ１４から読み込んで加算する。そして加算器４２は、１周期前の補正データが加算された位置偏差を、対応する位相区間を表す情報とともにフィルタ部４３へ出力する。
【００４５】
フィルタ部４３は、１周期前の補正データが加算された位置偏差が入力される度に、その位置偏差に対して高周波成分を減衰させるよう、ローパスフィルタを適用することで、更新された補正データを求める。なお、ローバスフィルタは、例えば、有限インパルス応答型(Finite Impulse Response, FIR)のフィルタとすることができる。そしてフィルタ部４３は、更新された補正データを、対応する位相区間を表す情報とともに補正データ更新部４４へ出力する。
【００４６】
補正データ更新部４４は、更新された補正データを受け取る度に、その更新された補正データを対応する位相区間と関連付けてメモリ１４に書き込む。
【００４７】
角度時間変換部４５は、時間角度変換部４１と同様に、位置偏差が入力されたときの位相信号または参照位置に対応する位相区間を特定する。そして角度時間変換部４５は、特定された位相区間に対応する補正データをメモリ１４から読み込んで動特性補償部４６へわたす。
【００４８】
動特性補償部４６は、学習制御部２４に位置偏差が入力される度に、角度時間変換部４５により求められた補正データに対して、動特性補償フィルタを適用することで、その位置偏差に対する補正量を算出する。そして動特性補償部４６は、算出した補正量を駆動信号生成部２１の加算器３２へ出力する。
【００４９】
動特性補償部４６が用いる、動特性補償フィルタは、例えば、補正データの位相遅れを補償するためのFIR型の位相進めフィルタとすることができる。さらに、動特性補償部４６は、動特性補償フィルタとして、位相進めフィルタとともに、直線位相特性を持つ帯域制限用のFIR型のフィルタを使用してもよい。なお、これらのフィルタについては、例えば、井上他、「プレイバックサーボ系の高精度制御」、電気学会論文誌．Ｃ、101巻4号、p.89-96、1981年を参照されたい。詳細は後述するように、動特性補償フィルタのタップ数、各次数の重み係数または各次数の重み係数のうちの０以外の値を持つ重み係数の数といった、動特性補償フィルタの構成を規定するパラメータセットは、キャリブレーション処理において動作評価部２５により最適化され、メモリ１４に記憶される。そして動特性補償部４６は、メモリ１４から動特性補償フィルタの構成を規定するパラメータセットを読み込んで使用すればよい。
【００５０】
動作評価部２５は、キャリブレーション処理において、位相信号が所定の周期数（例えば、１、５、１０など）分生成されるごとに、すなわち、繰返し周期ごとに、その繰返し周期における、所定のサンプリング周期ごとの位置偏差の大きさを表す評価値を算出し、その評価値が所定の条件を満たすように動特性補償フィルタの構成を変更する。なお、所定の条件は、例えば、学習制御処理が実行される場合において、位置偏差が所定値以下に収束することである。
【００５１】
評価値は、例えば、位相信号の繰返し周期に含まれる、サンプリング周期ごとの一連の位置指令のそれぞれについて算出された位置偏差の２乗平均平方根、あるいは、位置偏差の絶対値和とすることができる。
【００５２】
動作評価部２５は、評価値を算出する度に、動特性補償フィルタ（上記のように、例えば、位相進めフィルタまたは帯域制限フィルタ）の構成を規定するパラメータセットのうちの少なくとも一つのパラメータを変更する。述したように、動特性補償フィルタがFIR型のフィルタである場合、パラメータセットには、例えば、タップ数、各次数の重み係数及び０でない重み係数の数が含まれる。例えば、メモリ１４の有する補正データの個数がタップ数と等しいとすれば、複数の位相区間のうちどの位相区間に対応する補正データを読み出すかを規定するのは、０でない重み係数の次数である。その際、動作評価部２５は、例えば、ベイズ最適化法、最急降下法あるいはシミュレーティッドアニーリングといった最適化手法の何れかに従ってパラメータを変更すればよい。そして動作評価部２５は、評価値の算出及びパラメータの変更を所定回数実行することで得られた各評価値のうち、所定の条件に相当する許容上限値以下となり、かつ、最小となる評価値を求め、その最小となる評価値に対応するパラメータセットを学習制御処理で使用するパラメータセットとしてメモリ１４に保存する。
【００５３】
あるいは、動作評価部２５は、評価値の算出及びパラメータの変更を所定回数実行した時点で、評価値が許容上限値以下となり、かつ、評価値が許容上限値を超えるパラメータセットまでの最短距離が最大となるときのパラメータセットを、学習制御処理で使用するパラメータセットとしてメモリ１４に保存してもよい。これにより、動作評価部２５は、サーボモータ３または可動部２の経時劣化により、サーボモータ３の動特性が変化しても、評価値が許容上限値を超えるほど位置偏差が大きくなるまでに要する時間を長くすることができる。
【００５４】
あるいはまた、動作評価部２５は、評価値が許容上限値以下となった時点で、その評価値に対応するパラメータセットを、学習制御処理で使用するパラメータセットとしてメモリ１４に保存してもよい。また、動作評価部２５は、速度指令または電流指令が所定の許容範囲から外れると、その際のパラメータセットを使用しないようにしてもよい。
【００５５】
動作評価部２５は、パラメータの変更を繰り返す際、評価値が所定の基準値以下となると、パラメータの値の変化量を評価値がその所定の基準値よりも大きいときの変化量よりも小さくしてもよい。なお、所定の基準値は、許容上限値以上の値に設定される。あるいは、動作評価部２５は、パラメータの変更を繰り返す際、評価値が所定の基準値以下となると、パラメータの値を変化させる範囲を、評価値がその基準値よりも大きいときにおける、パラメータの値を変化させる範囲よりも狭くしてもよい。
【００５６】
さらに、動作評価部２５は、キャリブレーション処理の実行時、または、キャリブレーション処理の終了後において、算出された評価値ごとに、その評価値を算出するために用いられた、動特性補償フィルタの変更対象となるパラメータの値を、その評価値に応じた表示態様でユーザインターフェース１１が有する表示装置に表示させてもよい。
【００５７】
図３は、動特性補償フィルタの変更対象となるパラメータの値の表示の一例を示す図である。この例では、変更対象となるパラメータとして、０でない重み係数が二つ選択されているものとする。この場合、例えば、動特性補償フィルタGx(z)は、次式で表される。
Gx(z)=wxZx+wyZy
ここで、X,Yは、それぞれ、FIR型フィルタの次数であり、Zx、Zyは、それぞれ、次数X,Yにおける補正データの値である。そしてwx,wy(wx≠0,wy≠0,wx+wy=1)は、それぞれ、次数X,Yにおける重み係数である。図３に示される表示画面３００では、横軸に補正データに所定の重み係数wxを乗じるフィルタ次数Xが示され、縦軸に補正データに所定の重み係数wyを乗じるフィルタ次数Yが示される。例としてタップ数を360、フィルタ次数を１とすると、Z1は、ある位相区間から359°前の補正データ、すなわち１°先の補正データをメモリ１４から先読みすることで得られる値である。そして個々のドット３０１は、実際に評価値が算出された次数の組み合わせ(X,Y)を表す。また、個々のドット３０１は、そのドットに対応する重み係数の組み合わせについて算出された評価値に応じた表示形態で表示される。例えば、評価値が許容上限値以下である重み係数の組み合わせに相当するドット３０１ａは緑色で表示され、一方、評価値が許容上限値より大きい重み係数の組み合わせに相当するドット３０１ｂはオレンジ色で表示される。なお、評価値に応じて、各ドットの形状、大きさまたは輝度が変更されてもよい。例えば、評価値が許容上限値以下である場合のドットの形状と、評価値が許容上限値よりも大きい場合のドットの形状とが互いに異なっていてもよい。さらに、動作評価部２５が、学習制御処理で使用するために選択した重み係数の組み合わせに相当するドット３０１ｃは、他の重み係数の組み合わせに相当するドットの色とは異なる色（例えば、青色または黒色）で表示されてもよいし、点滅表示されてもよい。したがって、ユーザは、ドット３０１の分布を見ることで、点線３０２で囲まれた範囲として示されるように、評価値が許容上限値以下となる重み係数の組み合わせを視覚的に把握することができる。なお、プロセッサ１５は、ユーザがマウスを用いて何れかのドットにカーソルを合わせると、そのドットに対応する重み係数の組み合わせについて算出された評価値、対応する補正データ、あるいは、位置偏差が収束するか否かを示す情報を表示装置にさらに表示させてもよい。
【００５８】
さらに、ユーザが、表示画面に表示されたドットの分布を参照しながら、学習制御処理で使用する動特性補償フィルタのパラメータセットを選択することが可能となっていてもよい。この場合には、ユーザインターフェース１１を介して、学習制御処理で使用する動特性補償フィルタのパラメータセットを選択することを表す操作（例えば、特定の座標においてダブルクリックする操作）を実行すると、ユーザインターフェース１１は、その選択を表す操作信号を生成し、その操作信号をプロセッサ１５へ出力してもよい。そしてプロセッサ１５は、その操作信号に従って、学習制御処理で使用する動特性補償フィルタのパラメータセットを決定し、メモリ１４に保存してもよい。
なお、変更対象となるパラメータが３個以上ある場合、動作評価部２５は、変更対象となるパラメータのうちの任意の二つについて、上記のような表示を表示装置に行わせてもよい。この場合には、例えば、ユーザインターフェース１１を介したユーザの操作により、表示されるパラメータの組み合わせが選択されてもよい。
【００５９】
図４は、キャリブレーション処理の動作フローチャートである。プロセッサ１５は、下記の動作フローチャートに従って、位相信号の一周期、すなわち、外乱信号の一周期ごとに、キャリブレーション処理を実行する。
【００６０】
位相信号生成部２２は、位相信号を生成する（ステップＳ１０１）。繰返し指令生成部２３は、その位相信号に基づいて周期的な外乱を表す外乱信号を生成する（ステップＳ１０２）。駆動信号生成部２１は位相信号が最初の１周期目か否か判定する（ステップＳ１０３）。位相信号が最初の１周期目であれば（ステップＳ１０３−Ｙｅｓ）、駆動信号生成部２１は、所定のサンプリング周期ごとに、外乱信号を速度指令または電流指令に加算して外乱を加えた速度指令または電流指令を生成する。そして駆動信号生成部２１は、外乱が加わった速度指令または電流指令に従ってサーボモータ３を動作させるとともに、位置指令で示される可動部２の目標位置と位置検出器４により測定された可動部２の実際の位置間の位置偏差を算出する（ステップＳ１０４）。学習制御部２４は、位置偏差に対してローパスフィルタを適用して、位置偏差が入力される度に、その位置偏差が入力されたときの位相信号に基づいて補正データを生成する（ステップＳ１０５）。
【００６１】
一方、位相信号が最初の１周期でなければ、すなわち、位相信号が２周期目以降であれば（ステップＳ１０３−Ｎｏ）、駆動信号生成部２１は、所定のサンプリング周期ごとに、外乱信号を、学習制御部２４から入力された補正量を用いて補正された速度指令または電流指令に加算して外乱を加えた速度指令または電流指令を生成する。そして駆動信号生成部２１は、外乱が加わった速度指令または電流指令に従ってサーボモータ３を動作させるとともに、位置指令で示される可動部２の目標位置と位置検出器４により測定された可動部２の実際の位置間の位置偏差を算出する（ステップＳ１０６）。
【００６２】
学習制御部２４は、位置偏差が入力される度に、その位置偏差が入力されたときの位相信号に基づいて、１周期前の同じ位相における補正データを特定し、特定した補正データをメモリ１４から読み込んで位置偏差に加算する（ステップＳ１０７）。そして学習制御部２４は、補正データが加算された位置偏差に対してローパスフィルタを適用して補正データを更新するとともに、更新された補正データに対して動特性補償フィルタを適用することで、入力された位置偏差に対する補正量を算出する（ステップＳ１０８）。
【００６３】
ステップＳ１０５またはＳ１０８の後、動作評価部２５は、所定の周期数（すなわち繰り返し周期）分の位相信号が生成されたか否か判定する（ステップＳ１０９）。位相信号が所定の周期数分生成されてなければ（ステップＳ１０９−Ｎｏ）、プロセッサ１５は、ステップＳ１０１以降の処理を繰り返す。一方、位相信号が所定の周期数分生成されていれば（ステップＳ１０９−Ｙｅｓ）、動作評価部２５は、評価値を算出し、その評価値に基づいて動特性補償フィルタの構成を規定するパラメータセットを更新する（ステップＳ１１０）。
【００６４】
動作評価部２５は、評価値の算出及びパラメータセットの更新の回数が所定回数に達したか否か判定する（ステップＳ１１１）。評価値の算出及びパラメータセットの更新の回数が所定回数に達していなければ（ステップＳ１１１−Ｎｏ）、プロセッサ１５は、メモリ１４に記憶されている更新前のパラメータセットによる補正量、補正データをリセットし、位相信号生成部２２は位相信号の周期数（すなわち繰り返し回数）をリセットする（ステップＳ１１２）。そしてプロセッサ１５は、ステップＳ１０１以降の処理を繰り返す。
【００６５】
一方、評価値の算出及びパラメータセットの更新の回数が所定回数に達していれば（ステップＳ１１１−Ｙｅｓ）、評価値の最小値に対応するパラメータセットを、学習制御処理で使用するパラメータセットとして選択する（ステップＳ１１３）。そしてプロセッサ１５は、選択したパラメータセットをメモリ１４に保存して、キャリブレーション処理を終了する。
なお、評価値の算出及びパラメータセットの更新の回数が所定回数に達していても、評価値の最小値が許容上限値を超えている場合には、動作評価部２５は、ユーザインターフェース１１を介して、評価値が許容上限値以下に収束しなかったことをユーザに通知してもよい。
【００６６】
以上に説明してきたように、このモータの制御装置は、周期的な外乱を模擬的に表す外乱信号をサーボモータを駆動するための速度指令または電流指令に加えた上で、位置偏差の大きさを表す評価値が最小化されるように、動特性補償フィルタの構成を規定するパラメータセットを変更する。そのため、この制御装置は、モータが駆動する可動部に一定の動作を繰り返させる際に周期的な外乱が加わっても、位置制御精度を向上することができる。
【００６７】
また、上記の実施形態または変形例による、制御装置５のプロセッサ１５の各部の機能を実現するコンピュータプログラムは、半導体メモリ、磁気記録媒体または光記録媒体といった、コンピュータ読取可能な可搬性の記録媒体に記録された形で提供されてもよい。
【００６８】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００６９】
１    モータ制御システム
２    可動部
３    サーボモータ
４    位置検出器
５    制御装置
１１    ユーザインターフェース
１２    通信インターフェース
１３    駆動回路
１４    メモリ
１５    プロセッサ
２１    駆動信号生成部
２２    位相信号生成部
２３    繰返し指令生成部
２４    学習制御部
２５    動作評価部
３１    減算器
３２〜３４    加算器
３５    速度制御部
３６    電流制御部
３７、３８    スイッチ
４１    時間角度変換部
４２    加算器
４３    フィルタ部
４４    補正データ更新部
４５    角度時間変換部
４６    動特性補償部
【図１】
2020170354.tif 000003
【図２】
2020170354.tif 000004
【図３】
2020170354.tif 000005
【図４】
2020170354.tif 000006