(57)【要約】【課題】少ないメモリのＣＰＵでも学習制御を可能とし、さらに学習時間の短縮を実現可能なサーボモータの駆動制御装置を提供する。【解決手段】駆動制御装置１０は、位置ループ制御系に追加された学習制御部２４を有し、学習制御部２４は反転動作前後の所定時間に限って学習制御を行うように構成されている。学習制御によって得られる速度指令を解析して求められる速度補正データは、反転動作時に発生する位置偏差を低減すべく速度指令の補正を行うために使用される。【選択図】図２
2010009529.tif 000002
【特許請求の範囲】
【請求項１】
上位制御装置から所定サンプリング周期で送られる位置指令と位置検出器からの位置フィードバックとの位置偏差に基づいて所定周期毎に速度指令を出力してサーボモータを駆動制御する駆動制御装置において、
前記サーボモータで駆動される被駆動部を駆動する駆動プログラムを繰り返し実行しながら、前記位置偏差を低減するように学習制御を行う学習制御部と、
前記学習制御部の出力と前記位置偏差との和にゲインを乗ずることによって得られた速度指令を解析して求められる速度補正データを使用して、前記被駆動部の移動方向を反転させる際に発生する位置偏差を低減するために速度指令の補正を行う速度指令補正部とを有し、
前記学習制御部は、前記駆動プログラムのうちの位置指令の符号が反転する前後の所定時間に限って学習処理を行うように構成されることを特徴とする、駆動制御装置。
【請求項２】
前記学習制御部は、前記駆動プログラムの１回目の実行時は学習制御を行わずに前記位置指令を監視し、前記１回目の実行時において位置指令の符号が反転するタイミングを基準として学習制御を行う所定時間範囲を決定することを特徴とする、請求項１に記載の駆動制御装置。
【請求項３】
前記学習制御部は、前記上位制御装置が所定区間の駆動プログラムを予め解析した結果を基準として学習制御を行う所定時間範囲を決定することを特徴とする、請求項１に記載の駆動制御装置。
【請求項４】
前記学習制御部は、学習制御を実行する範囲において、学習制御を有効にしてからの第１の時間範囲において、学習制御への入力である位置偏差に、ゼロ以上かつ１未満の値から１まで単調増加する第１の係数を乗算し、学習制御が無効にされるまでの第２の時間範囲において、前記位置偏差に１からゼロ以上かつ１未満の値まで単調減少する第２の係数を乗算するように構成されることを特徴とする、請求項１〜３のいずれか１項に記載の駆動制御装置。
【請求項５】
前記駆動プログラムを繰り返し運転する際にフィードフォワード制御を行うフィードフォワード制御部をさらに有することを特徴とする、請求項１〜３のいずれか１項に記載の駆動制御装置。
【請求項６】
上位制御装置から所定サンプリング周期で送られる位置指令と位置検出器からの位置フィードバックとの位置偏差に基づいて所定周期毎に速度指令を出力してサーボモータを駆動制御する駆動制御方法において、
前記サーボモータで駆動される被駆動部を駆動するプログラムを繰り返し実行しながら、前記位置偏差を低減するように学習制御を行うステップと、
前記学習制御部の出力と前記位置偏差との和にゲインを乗ずることによって得られた速度指令を解析して求められる速度補正データを使用して、前記被駆動部の移動方向を反転させる際に発生する位置偏差を低減するために速度指令の補正を行うステップとを有し、
前記学習制御を行うステップは、前記プログラムのうちの位置指令の符号が反転する前後の所定時間に限って学習処理を行うことを含む、駆動制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械の送り軸等を駆動するサーボモータを、学習制御を利用して制御する駆動制御装置及び駆動制御方法に関する。
【背景技術】
【０００２】
学習制御は、同じ動作を繰り返し行う場合に動作精度を向上するのに非常に有効な制御方式であり、学習制御が収束する際にはかなり高い動作精度が得られる。このため学習制御を適用したときの速度指令やトルク指令を観測することにより、高い動作精度を得るための速度指令やトルク指令が推定可能となる。
【０００３】
工作機械等の移動軸が反転動作する際には、移動軸に関連する相対移動物品間の摩擦方向が反転するため、移動軸の動作が一瞬遅れる現象が発生する。例えば２つの軸で円弧動作を行う場合、この遅れの現象によって、一般に象限突起と呼ばれる好ましくない位置偏差が発生する。この位置偏差を低減するために、移動方向が反転する際に速度指令やトルク指令に短い期間補正量を加算し、移動軸の反転動作を速めることが行われている。この補正量の最適値は一般に、移動軸の位置を観測しつつ、試行錯誤により調整されるのが従来からの一般的な手法であったが、学習制御を適用することで高い動作精度を実現し、その際の速度指令を解析することで最適な補正量を算出する技術が開発されている。
【０００４】
例えば特許文献１には、テーブルに取り付けられた被加工物を加工する際に、送り軸の移動方向が反転する際に加工面に生じる突起を少なくするサーボモータの駆動制御装置が開示されている。この駆動制御装置の一実施形態では、学習制御により得られる速度指令を補正データとし、位置指令反転時より所定時間に亘って速度指令を補正データにより補正する、とされている。また特許文献２には、検出したモータの位置と目標位置指令との差を速度指令として入力し、この入力信号から未来の速度指令を予測し、その値が最小となるように現在の速度指令に対する補正速度指令を出力する学習コントローラが開示されている。
【０００５】
【特許文献１】特許第３８０５３０９号公報
【特許文献２】特開平４−１００１１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の方式では、調整中に学習制御を有効にしておく必要があるため、学習するプログラムの時間に応じて多くの学習用メモリが必要であった。このため大容量の内部ＲＡＭを有するＣＰＵを使用するか、高速のＲＡＭを別途用意する必要があり、特に低価格帯の制御装置ではこの方式を適用することは困難であった。
【０００７】
そこで本発明は、少ないメモリのＣＰＵでも学習制御を可能とし、さらに学習制御時間の短縮を実現可能なサーボモータの駆動制御装置及び駆動制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、請求項１に記載の発明は、上位制御装置から所定サンプリング周期で送られる位置指令と位置検出器からの位置フィードバックとの位置偏差に基づいて所定周期毎に速度指令を出力してサーボモータを駆動制御する駆動制御装置において、前記サーボモータで駆動される被駆動部を駆動する駆動プログラムを繰り返し実行しながら、前記位置偏差を低減するように学習制御を行う学習制御部と、前記学習制御部の出力と前記位置偏差との和にゲインを乗ずることによって得られた速度指令を解析して求められる速度補正データを使用して、前記被駆動部の移動方向を反転させる際に発生する位置偏差を低減するために速度指令の補正を行う速度指令補正部とを有し、前記学習制御部は、前記駆動プログラムのうちの位置指令の符号が反転する前後の所定時間に限って学習処理を行うように構成されることを特徴とする、駆動制御装置を提供する。
【０００９】
請求項２に記載の発明は、請求項１に記載の駆動制御装置において、前記学習制御部は、前記駆動プログラムの１回目の実行時は学習制御を行わずに前記位置指令を監視し、前記１回目の実行時において位置指令の符号が反転するタイミングを基準として学習制御を行う所定時間範囲を決定することを特徴とする、駆動制御装置を提供する。
【００１０】
請求項３に記載の発明は、請求項１に記載の駆動制御装置において、前記学習制御部は、前記上位制御装置が所定区間の駆動プログラムを予め解析した結果を基準として学習制御を行う所定時間範囲を決定することを特徴とする、駆動制御装置を提供する。
【００１１】
請求項４に記載の発明は、請求項１〜３のいずれか１項に記載の駆動制御装置において、前記学習制御部は、学習制御を実行する範囲において、学習制御を有効にしてからの第１の時間範囲において、学習制御への入力である位置偏差に、ゼロ以上かつ１未満の値から１まで単調増加する第１の係数を乗算し、学習制御が無効にされるまでの第２の時間範囲において、前記位置偏差に１からゼロ以上かつ１未満の値まで単調減少する第２の係数を乗算するように構成されることを特徴とする、駆動制御装置を提供する。
【００１２】
請求項５に記載の発明は、請求項１〜３のいずれか１項に記載の駆動制御装置において、前記駆動プログラムを繰り返し運転する際にフィードフォワード制御を行うフィードフォワード制御部をさらに有することを特徴とする、駆動制御装置を提供する。
【００１３】
請求項６に記載の発明は、上位制御装置から所定サンプリング周期で送られる位置指令と位置検出器からの位置フィードバックとの位置偏差に基づいて所定周期毎に速度指令を出力してサーボモータを駆動制御する駆動制御方法において、前記サーボモータで駆動される被駆動部を駆動するプログラムを繰り返し実行しながら、前記位置偏差を低減するように学習制御を行うステップと、前記学習制御部の出力と前記位置偏差との和にゲインを乗ずることによって得られた速度指令を解析して求められる速度補正データを使用して、前記被駆動部の移動方向を反転させる際に発生する位置偏差を低減するために速度指令の補正を行うステップとを有し、前記学習制御を行うステップは、前記プログラムのうちの位置指令の符号が反転する前後の所定時間に限って学習処理を行うことを含む、駆動制御方法を提供する。
【発明の効果】
【００１４】
本発明によれば、学習制御を行う時間範囲が、位置指令の符号が反転する前後に限定されるため、学習制御が必要とするメモリの大きさを節約することができ、ローコストの制御装置でも学習制御を使用した象限突起調整の適用が可能となるとともに、学習制御時間の短縮も図ることができる。
【００１５】
位置指令の反転のタイミングは、プログラムの１回目の実行時は学習制御を行わずに位置指令を監視することで正確に知ることができる。
【００１６】
或いは、譲位制御装置がプログラムを解析することによっても、位置指令のタイミングを知ることができる。
【００１７】
学習制御を有効にしてからの第１の時間範囲、及び学習制御が無効にされるまでの第２の時間範囲において、ゼロ以上かつ１未満の値から１まで単調増加する第１の係数、及び１からゼロ以上かつ１未満の値まで単調減少する第２の係数をそれぞれ位置偏差に乗算することにより、学習制御が有効から無効或いはその逆に切り替わる際に速度指令が不連続になって機械に振動等が生じることが防止される。
【００１８】
或いはフィードフォワード制御を行うことによっても、上記振動等を抑制することができる。
【発明を実施するための最良の形態】
【００１９】
図１は、本発明に係るサーボモータの駆動制御装置１０の要部ブロック図である。駆動制御装置１０は、数値制御装置等の上位制御装置１２から所定サンプリング周期で送られる位置指令から、サーボモータ、又はサーボモータで駆動される可動部等の制御対象１４の実際位置のフィードバックを減算して位置偏差を求める減算器１６と、該位置偏差にポジションゲインＫｐを乗じて速度指令を求めるゲイン１８とを有する。また駆動制御装置１０は、位置指令の符号が反転したことを検出する反転検出部２０と、反転検出部２０から出力される補正開始指令を受信したときに、後述する速度補正データに基づく補正量を上記速度指令に加算して補正する速度指令補正部２２とを有する。
【００２０】
図２は、駆動制御装置１０に含まれる、上述の速度指令補正部２２で使用する速度補正データを学習制御により求める構成の要部ブロック図である。該構成には、位置ループ制御系に学習制御部２４が追加されており、学習制御部２４は後述するように反転動作前後の所定時間に限って学習制御を行うように構成されている。学習制御部２４の出力と位置偏差との和に、ゲイン１８を乗ずることによって得られる速度指令を解析して求められるものが、上述の速度指令補正部２２に設定される速度補正データとなる。すなわち、上位制御装置１２から指令される位置指令から、サーボモータで駆動される被駆動部等の位置フィードバックが減算器１６で減算され、位置偏差が求められる。学習制御部２４は、サーボモータで駆動される被駆動部を駆動するプログラムを繰り返し実行しながら、上記位置偏差を格納するとともに、繰り返し使用される周期の１周期前の位置偏差に基づいて補正量を求め、該補正量を位置偏差に加算器２６で加算（補正）する。補正された位置偏差にはポジションゲインＫｐが乗ぜられ、得られた速度指令を所定時間間隔にてサンプリングし、関数近似する等の解析を行うことによって速度補正データが得られる。以上の構成は、特許文献１に記載のものと同様でよい。
【００２１】
ここで学習制御は、対象となるプログラムを最初に実行するときに有効（ＯＮ）とし、当該プログラムが終了するときに無効（ＯＦＦ）とするのが通常のやり方である。これは学習制御の原理上、学習制御がＯＮからＯＦＦ或いはその逆に切り替わるときは出力される補正量が不連続になり、結果として速度指令も不連続になって動作精度に影響するからである。
【００２２】
しかし学習制御をＯＮ／ＯＦＦする際に多少の誤差が生じても、位置指令が反転する前後において学習制御が収束していれば、象限突起補正量を作成する上で参考となる速度指令は得られるため、大きな問題とはならない。本発明はこのことを利用し、学習制御を途中でＯＮ／ＯＦＦすることを可能としている。以下、学習制御のＯＮ／ＯＦＦをどのようなタイミングで行うかについて具体的に説明する。
【００２３】
図３は、学習制御における処理の流れを示すフローチャートである。先ずステップＳ１において、繰り返し動作が開始されているか否かをチェックする。開始されていなければ学習処理を行う必要はないのでカウンタＣをゼロにリセットする（ステップＳ２）。
【００２４】
繰り返し動作が開始されている場合は、その動作が初回であるか否かをチェックする（ステップＳ３）。図３の例では、初回の場合は学習処理を行わず、２回目以降に学習処理を行うカウンタ範囲（所定時間範囲）を設定する。詳細には、ステップＳ４において位置指令が反転しているか（位置指令の符号が変化しているか）をチェックし、反転していなければカウンタＣを１インクリメントする（ステップＳ５）。一方反転していれば、ステップＳ６において符号がマイナスからプラスに変化したのか或いはその逆かをチェックし、前者であればステップＳ７へ、後者であればステップＳ８に進む。ステップＳ７に進んだ場合は現在のカウンタＣを正カウンタＣpとし、さらに正カウンタＣpから第１のオフセット値ａ１を減算した値を正開始カウンタＣpsとし、正カウンタＣpに第２のオフセット値ａ２を加算した値を正終了カウンタＣpeとして適当なメモリに記憶する。一方ステップＳ８に進んだ場合は、現在のカウンタＣを負カウンタＣnとし、さらに負カウンタＣnから第１のオフセット値ｂ１を減算した値を負開始カウンタＣnsとし、負カウンタＣnに第２のオフセット値ｂ２を加算した値を負終了カウンタＣneとして適当なメモリに記憶する。
【００２５】
ステップＳ３において繰り返し動作が２回目以降と判定された場合は、ステップＳ９に進んで学習範囲のチェックを行う。具体的には、現在のカウンタ値がステップＳ７又はＳ８で求めた範囲内にあれば（Ｃps≦Ｃ≦Ｃpe又はＣns≦Ｃ≦Ｃne）ステップＳ１０に進んで学習処理を行う。範囲外のときは学習処理は行わず、ステップＳ５に進んでカウンタＣを１インクリメントする。
【００２６】
上述のオフセット値は、反転動作の前後において学習処理を行う時間をカウンタ値で規定するものである。例えば１カウンタが１ｍｓ（ミリ秒）に相当し、オフセット値ａ１及びａ２がそれぞれ５０及び２００であった場合は、反転動作が行われるタイミングの５０ｍｓ前から２５０ｍｓの間が、学習処理が行われる時間となる。なおこの例のように、反転前よりも反転後の方が学習制御有効時間を長いことが好ましい。その理由は、本願発明の主目的は反転時に摩擦方向が逆転することに伴う移動軸の動作遅れによる影響を改善することにあるので、摩擦方向が未だ逆転していない反転前は、学習制御を行う必要性が反転後よりは低いからである。学習制御が有効となる好ましい時間範囲は、サーボモータや被駆動部の構成等にも依存するが、例えば反転動作前１００〜３０ｍｓから、反転動作後１００〜３００ｍｓまでである。
【００２７】
またオフセット値ａ１及びａ２の合計の上限はメモリの容量に依存するので、オフセット値は通常、使用する制御装置のスペックに基づいて上限を設定し、かつ象限突起補正量を作成する上で問題とならない範囲に経験的に定めることができる。なおオフセット値ｂ１及びｂ２についても同様の考え方に基づいて設定可能であり、故に多くの場合ａ１とｂ１は互いに等しく、ａ２とｂ２は互いに等しくなる。しかし、制御対象のサーボモータやサーボモータに駆動される可動部の構成等に応じて互いに異なる値としてももちろんよい。
【００２８】
図３に示した方法は、学習制御を適用する範囲の決定方法として、プログラム動作の最初の１回目は学習処理を行わずに位置指令の反転のタイミングを的確に把握することで、２回目以降の学習処理の範囲を定めるものである。次に図４を用いて説明する方法は、位置指令を作成する上位制御装置がプログラムを解析した上で反転のタイミングを決定し、サーボモータの駆動制御装置に通知するものである。
【００２９】
図４に示すフローチャートにおいて、ステップＳ２１及びＳ２２は図３のステップＳ１及びＳ２と同様でよい。ステップＳ２３では、学習処理を行う所定時間範囲が既に取得済みであるか否かをチェックし、取得済みでなければステップＳ２４に進み、上述のオフセット値に基づき求められるＣps及びＣpe、又はＣns及びＣneを学習処理を行う範囲として取得する。なお図４の例では上位制御装置がプログラムを解析して反転のタイミングが既に得られているので、オフセット値が与えられれば学習制御を有効とする所定の時間範囲が得られる。
【００３０】
一方、ステップＳ２３において所定の時間範囲が取得済みであれば、ステップＳ２５に進む。ステップＳ２５、Ｓ２６及びＳ２７は、それぞれ図３のステップＳ９、Ｓ１０及びＳ５と同様でよいので説明は省略する。
【００３１】
上述のように本発明によれば、反転動作前後の所定の時間範囲（例えば２５０ｍｓ）すなわち学習制御有効時間内に限って学習処理が行われるため、従来よりも使用するメモリを大幅に低減することができ、よりローコストの制御装置でも高精度の駆動制御が可能となる。しかしながら、反転動作前後のある時点において単純に学習制御をＯＮ／ＯＦＦすると、学習を進めるにつれて、当該ある時点において速度指令が不連続となり、制御対象を含む機械又はシステムに大きなショックや振動が発生する場合もある。そこで、学習制御をＯＮ／ＯＦＦするタイミングにおいて生じ得るショック等を低減するために、フィードフォワードを設定することで学習制御をＯＮ／ＯＦＦする際の位置偏差を小さくすることが有効である。具体的には図２に示すように、フィードフォワード係数２８を含むフィードフォワード制御部を用いて、フィードフォワード制御による制御量に相当する位置指令の微分値を加算する。なおフィードフォワード制御は、図１の構成に適用してもよい。
【００３２】
或いは、学習制御をＯＮ／ＯＦＦする際の位置偏差にゼロ以上１未満の係数を乗じて該位置偏差を小さくすることも有効である。具体的には、図５のフローチャートに示すように、先ずステップＳ３１において学習範囲のチェックを行い、現在のカウンタ値Ｃが所定範囲内にあれば（Ｃps≦Ｃ≦Ｃpe又はＣns≦Ｃ≦Ｃne）、次のステップＳ３２において、Ｃが予め定めた第１の時間範囲すなわちフェードインカウンタ数Ｃfinにより規定される範囲に含まれているか否かをチェックする。ここでＣfin値は、図６に示すように、学習処理を行うべき範囲の最初のカウンタ（Ｃps又はＣns）からＣfinだけカウントするまでは、学習制御への入力である位置偏差をそのままフィードバックには使用せず、位置偏差に１未満の係数ｋ１を乗算する時間範囲として使用される。図６は、被駆動部の位置を概略的に示すグラフＧ１と、従来技術に従って学習制御のＯＮ／ＯＦＦ（有効／無効）を行う例を、グラフＧ１と同時間軸で示すグラフＧ２と、本発明に従って学習制御のＯＮ／ＯＦＦ（有効／無効）を行う例を、グラフＧ１と同時間軸で示すグラフＧ３とを示している。例えばＣfinは１０〜２０に設定され、ｋ１はステップＳ３３において例えば以下の式（１）により計算される。
ｋ１＝（Ｃ−Ｃps）／Ｃfin  又は  ｋ１＝（Ｃ−Ｃns）／Ｃfin      （１）
【００３３】
式（１）によれば、例えばＣfinが１０であって学習制御が反転時より５０カウンタ前から有効となる場合、反転時より５０カウンタ前から４０カウンタ前まではｋ１が学習制御入力値に乗算される。より詳細にはｋ１は、反転時より５０カウンタ前はゼロであり、４０カウンタ前は１であり、かつ５０カウンタ前から４０カウンタ前までは単調に増加する。このような処理をステップＳ３３で行うことにより、学習制御が有効となる時点（この例では反転時より５０カウンタ前）に速度指令が不連続となって不都合な振動等が発生することが防止される。
【００３４】
同様に、ステップＳ３４において、Ｃが予め定めた第２の時間範囲すなわちフェードアウトカウンタ数Ｃfoutにより規定される範囲に含まれているか否かをチェックする。ここでＣfout値は、学習処理を行うべき範囲の最後のカウンタ（Ｃpe又はＣne）よりＣfoutだけ前から該最後のカウンタまでは、学習制御への入力である位置偏差をそのままフィードバックには使用せず、位置偏差に１未満の係数ｋ２を乗算するために使用される。例えばＣfoutは１０〜５０、より好ましくは１０〜３０に設定され、ｋ２はステップＳ３５において例えば以下の式（２）により計算される。
ｋ２＝（Ｃpe−Ｃ）／Ｃfout  又は  ｋ２＝（Ｃne−Ｃ）／Ｃfout      （２）
【００３５】
式（２）によれば、例えばＣfoutが３０であって学習制御が反転時から２００カウンタまで有効となる場合、反転時より１７０カウンタ後から２００カウンタ後まではｋ２が学習制御入力値に乗算される。より詳細にはｋ２は、反転時から１７０カウンタ後は１であり、２００カウンタ後はゼロであり、かつ１７０カウンタ後から２００カウンタ後までは単調に減少する。このような処理をステップＳ３５で行うことにより、学習制御が無効となる時点（この例では反転時から２００カウンタ後）に速度指令が不連続となって不都合な振動等が発生することが防止される。次にステップＳ３６において、学習処理を行う。
【図面の簡単な説明】
【００３６】
【図１】本発明に係る駆動制御装置の要部ブロック図である。
【図２】学習制御により速度補正データを作成するときの要部ブロック図である。
【図３】学習制御の処理を示すフローチャートである。
【図４】図３の代替例を示すフローチャートである。
【図５】学習制御への入力である位置偏差に乗算すべき係数を求める処理を示すフローチャートである。
【図６】学習制御への入力である位置偏差に係数を乗ずる時間範囲に相当する、第１の時間範囲（Ｃfin）及び第２の時間範囲（Ｃfout）を説明する図である。
【符号の説明】
【００３７】
１０    駆動制御装置
１２    上位制御装置
１４    制御対象
１６    減算器
１８    ゲイン
２０    反転検出部
２２    速度指令補正部
２４    学習制御部
２６    加算器
２８    フィードフォワード係数
【図１】
2010009529.tif 000003
【図２】
2010009529.tif 000004
【図３】
2010009529.tif 000005
【図４】
2010009529.tif 000006
【図５】
2010009529.tif 000007
【図６】
2010009529.tif 000008