(57)【要約】  フィードバックループを有したサーボモータの制御装置であって、前記フィードバックループの発振を検知し、発振検知信号を出力する発振検知部と、フィードバックループの制御パラメータの設定を、発振検知信号に基づき操作指示するパラメータ操作部と、制御パラメータを設定するための設定値が供給され、パラメータ操作部の操作指示に応じて更新しながら制御パラメータをフィードバックループに設定する更新部とを備え、発振検知信号が発振を検知していないことを示すとき、パラメータ操作部は更新部に対して、供給された設定値に応じた制御パラメータを設定するよう操作指示し、発振検知信号が発振を検知したことを示すとき、パラメータ操作部は更新部に対して、フィードバックループの周波数帯域幅が狭くなるような制御パラメータを設定するよう操作指示する。
2008087893.tif 000002
【特許請求の範囲】
【請求項１】
外部から通知される指令情報と検出部により検出された回転動作に関する情報とからそれらの偏差量を求め、前記偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、前記演算処理により生成された回転制御信号によりサーボモータの回転動作を制御することで、前記サーボモータの回転動作が前記指令情報に追従するようにフィードバック制御するフィードバックループを有したサーボモータの制御装置であって、
前記フィードバックループの発振を検知し、その検知結果を示す発振検知信号を出力する発振検知部と、
前記フィードバックループの前記制御パラメータ群における制御パラメータの設定を、前記発振検知信号に基づき操作指示するパラメータ操作部と、
制御パラメータを設定するための設定値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記制御パラメータを前記フィードバックループに設定する更新部とを備え、
前記発振検知信号が発振を検知していないことを示すとき、前記パラメータ操作部は前記更新部に対して、供給された設定値に応じた制御パラメータを設定するよう操作指示し、前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部は前記更新部に対して、前記フィードバックループの周波数帯域幅が狭くなるような制御パラメータを設定するよう操作指示することを特徴とするサーボモータの制御装置。
【請求項２】
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記更新部は、前記制御ゲインの設定が変更されることで前記周波数帯域幅が狭くなるように、前記フィードバックループに対して制御パラメータを設定することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項３】
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記更新部は、最後に更新して設定した制御パラメータを以前の制御パラメータへと戻し、その戻した制御パラメータを前記フィードバックループに設定することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項４】
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記剛性値更新部は、最後に更新して設定した剛性値を以前の剛性値へと戻し、この戻した剛性値を前記パラメータ設定部に供給することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項５】
前記剛性値更新部は、前記フィードバックループが休止状態から能動状態に変化したときには、更新する以前の出力値としてフィードバックループの発振が確実に停止すると予想される所定の剛性に対応する値を設定することを特徴とする請求項４に記載のサーボモータの制御装置。
【請求項６】
前記フィードバックループは、発振を抑制するためのノッチフィルタと、前記フィードバックループの発振が最小になるように前記ノッチフィルタの中心周波数を調整する中心周波数調整部とを備え、
前記剛性値更新部は、前記中心周波数調整部が前記ノッチフィルタの中心周波数を調整している間、その出力値を更新しないことを特徴とする請求項４に記載のサーボモータの制御装置。
【請求項７】
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記剛性値更新部は、
現在の更新した出力値と更新する以前の出力値とを比較し、更新する以前の出力値の方が高い剛性に対応する値である場合、および現在の更新した出力値と更新する以前の出力値とが等しい値である場合のいずれかの場合には、その出力値を現在の更新した出力値よりも所定の階数だけ低い剛性に対応する値に更新し、この更新した値を前記パラメータ設定部に供給することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項８】
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記剛性値更新部は、現在の更新した出力値と更新する以前の出力値とを比較し、
更新する以前の出力値の方が低い剛性に対応する値であり、かつ、出力値の更新から所定の時間以上経過していなければ、その出力値を更新する以前の出力値に戻し、
更新する以前の出力値の方が高い剛性に対応する値である場合、現在の更新した出力値と更新する以前の出力値とが等しい値である場合、および出力値の更新から所定の時間以上経過している場合のいずれかの場合には、その出力値を現在の更新した出力値よりも所定の階数だけ低い剛性に対応する値に更新し、この更新した値を前記パラメータ設定部に供給することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項９】
サーボモータおよびその負荷の慣性モーメントを推定し、この推定により生成したイナーシャ推定値を出力するイナーシャ推定部と、
前記イナーシャ推定値が有効となった後はその値を、それ以前は前記慣性モーメントとして設定されたイナーシャ値を、前記慣性モーメントの値であるイナーシャ設定値として出力するイナーシャ設定部とをさらに備え、
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記イナーシャ推定値が有効となった後に、前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記剛性値更新部は、剛性値を現在の値よりも所定の階数だけ低い剛性に対応する値に切り替え、この切り替えた値を前記パラメータ設定部に供給することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項１０】
前記イナーシャ推定値が有効となったときから所定の時間以内に、前記発振検知信号が発振を検知したことを示すとき、前記剛性値更新部は、その出力値を現在の出力値よりも所定の第１の階数だけ低い剛性に対応する値に切り替え、
前記イナーシャ推定値が有効となったときから所定の時間以降に、前記発振検知信号が発振を検知したことを示すとき、前記剛性値更新部は、その出力値を現在の出力値よりも所定の第２の階数だけ低い剛性に対応する値に切り替え、
前記第１の階数は、前記第２の階数よりも大きな値であることを特徴とする請求項９に記載のサーボモータの制御装置。
【請求項１１】
前記サーボモータおよびその負荷の慣性モーメントの設定値と周波数帯域設定値とを乗算して速度ゲインとして出力する速度ゲイン算出部と、
前記イナーシャ推定値が有効となったとき以降の前記速度ゲイン算出部の出力値が前記イナーシャ推定値が有効となったとき以前の前記速度ゲイン算出部の出力値の値以下となる条件を満たし、前記イナーシャ推定値が有効となったとき以降の剛性値として、最も高い剛性に対応する値を安定剛性値として算出する安定剛性値算出部とをさらに有し、
前記イナーシャ推定値が有効となったときから所定の時間以内に、前記発振検知信号が発振を検知したことを示すとき、前記剛性値更新部は、その出力値を前記安定剛性値算出部の出力値に切り替え、
前記イナーシャ推定値が有効となったときから所定の時間以降に、前記発振検知信号が発振を検知したことを示すとき、前記剛性値更新部は、その出力値を現在の出力値よりも所定の階数だけ低い剛性に対応する値に切り替えることを特徴とする請求項９に記載のサーボモータの制御装置。
【請求項１２】
前記イナーシャ推定値が有効となったときから所定の時間以内に、前記発振検知信号が発振を検知したことを示すとき、前記安定剛性値が現在より低い剛性に対応する値である場合は、前記剛性値更新部は、その出力値を安定剛性値算出部の出力値に切り替え、
前記イナーシャ推定値が有効となったときから所定の時間以降に前記発振検知信号が発振を検知したことを示す場合、または、前記イナーシャ推定値が有効となったときから所定の時間以内に前記発振検知信号が発振を検知したことを示す場合であって、前記安定剛性値が現在の剛性値以上の剛性に対応する場合に、前記剛性値更新部は、その出力値を現在の出力値よりも所定の階数だけ低い剛性に対応する値に切り替えることを特徴とする請求項１１に記載のサーボモータの制御装置。
【請求項１３】
サーボモータおよびその負荷の慣性モーメントを推定し、この推定により生成したイナーシャ推定値を出力するイナーシャ推定部と、
前記イナーシャ推定値と前記慣性モーメントとして設定されたイナーシャ値とのいずれかの値をイナーシャ設定値として出力するイナーシャ設定部とをさらに備え、
前記発振検知信号が発振を検知したことを示すとき、前記イナーシャ設定部は、その出力値を現在の出力値に対して所定の比率で低減した値に切り替えることを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項１４】
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記発振検知信号と前記剛性値更新部が出力した剛性値とを受けて、前記イナーシャ設定部にイナーシャ低減指令信号を出力する剛性値判定部をさらに備え、
前記発振検知信号が発振を検知したことを示すとき、
前記剛性値判定部は、前記剛性値更新部の出力値が所定の剛性値に等しい値、および所定の剛性値よりも低い剛性に対応する値のいずれかの値であると判定すると、前記イナーシャ設定部に対しその出力値を現在の出力値に対して所定の比率で低減した値に切り替えるように指令することを特徴とする請求項１３に記載のサーボモータの制御装置。
【請求項１５】
外部から通知される指令情報と検出部により検出された回転動作に関する情報とからそれらの偏差量を求め、前記偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、前記演算処理により生成された回転制御信号によりサーボモータの回転動作を制御することで、前記サーボモータの回転動作が前記指令情報に追従するようにフィードバック制御するフィードバックループを有したサーボモータの制御方法であって、
前記フィードバックループの発振を検知するステップと、
前記フィードバックループの前記制御パラメータ群における制御パラメータの設定を、前記発振の検知に基づき操作制御するステップと、
制御パラメータを設定するための設定値が供給され、前記操作制御に応じて更新しながら前記制御パラメータを前記フィードバックループに設定するステップとを備え、
前記発振が検知されていないとき、前記操作制御により、供給された設定値に応じた制御パラメータを前記フィードバックループに設定し、前記発振が検知されたとき、前記操作制御により、前記フィードバックループの周波数帯域幅が狭くなるような制御パラメータを前記フィードバックループに設定することを特徴とするサーボモータの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主に産業用ＦＡサーボモータを制御する制御装置および制御方法に関する。
【背景技術】
【０００２】
サーボモータを駆動する制御装置には、通常、モータの回転速度あるいは回転位置を検出して、外部より入力される速度指令あるいは位置指令へ追従するようにフィードバックループが構成される。フィードバックループの動作安定性を確保し、速度指令あるいは位置指令への追従性能を十分に発揮させるためには、サーボモータの負荷の慣性モーメントや負荷の状態に応じて、フィードバックループに内包される複数の制御パラメータ、すなわち速度ゲインや位置ゲインなどに適切な値を設定することが必要である。【０００３】
従来のサーボモータの制御装置では、サーボモータの負荷の慣性モーメントや負荷の状態に応じて前述の制御パラメータに適切な値を設定するパラメータ設定手段が装備されている。また、このようなパラメータ設定手段を装備したサーボモータの制御装置に関する技術としては、例えば、特許文献１や特許文献２に開示されている。【０００４】
図２９は、このような従来のサーボモータ（以下、適宜、単に「モータ」と呼ぶ）の制御装置の一構成例を示したブロック図である。【０００５】
図２９において、モータ１０１は負荷１０２と接続されている。モータ１０１にはエンコーダ１０３も接続され、モータ１０１の回転位置に対応した値が出力される。エンコーダ１０３の出力値は、微分演算部１１１において微分処理され、モータ１０１の回転速度に変換された値を示す速度検出信号ｄｖが出力される。外部より入力される速度指令は、フィードフォワードゲイン乗算部１１０に入力される。これとともに、この速度指令は、減算部１１４において微分演算部１１１の出力する速度検出信号ｄｖとの差の信号が演算される。この信号は速度誤差に該当し、積分演算部１１２に入力されて位置誤差に該当する信号に変換される。この信号は、位置ゲイン乗算部１０９に入力され、所定の位置ゲインＫｐを乗じて出力される。さらに、演算部１１３において、位置ゲイン乗算部１０９から出力された信号は、フィードフォワードゲイン乗算部１１０にて所定のフィードフォワードゲインＫｆを乗じて出力された速度指令の信号と加算されるとともに、微分演算部１１１の出力する速度検出信号ｄｖとの差の信号が演算される。その後、演算部１１３から出力された信号は、速度ゲイン乗算部１０８に入力され、所定の速度ゲインＫｖを乗じて出力され、この出力された信号を元にサーボモータ１０１が駆動される。ただし、速度ゲインＫｖは負荷１０２を含めたサーボモータ１０１のイナーシャＪの設定値と速度帯域ｆｖの設定値とが乗算部１１５で乗算された値が設定される。【０００６】
さらに、図２９に示すサーボモータの制御装置は、パラメータ設定手段として、外部から制御パラメータに含まれるイナーシャＪ、位置ゲインＫｐおよび速度帯域ｆｖに設定値を設定できるよう構成されている。【０００７】
このような構成において、前述の位置ゲインＫｐや速度帯域ｆｖに対応した速度ゲインＫｖは制御パラメータと称するものであり、これら各制御パラメータの値は外部より入力された値が設定される。このとき、これらの設定値は、サーボモータ１０１の制御性能やフィードバックループ１０４の発振安定性に影響を与えるので、適切に、これらの設定値を最適値に調整する必要がある。【０００８】
ところで、一般的には、速度帯域ｆｖの値が大きいほど、フィードバックループ１０４の周波数帯域幅が広くなり、速度指令の入力に対して優れた応答性、あるいは追従性が得られることになる。一方、サーボモータ１０１を含めた負荷１０２は一般に機械的な共振特性を持ち、速度帯域ｆｖの値を大きくし過ぎると、フィードバックループ１０４に発振を生ずる可能性がある。また、速度帯域ｆｖの値に対し、位置ゲインＫｐの値を適切に与えないと、フィードバックループ１０４のダンピング係数に影響を及ぼし、外部からの指令に対し、応答が振動的になったり、逆に回転位置の追従性が悪化したりするなど適切な応答が得られない結果となる。【０００９】
従って、指令に対するサーボモータ１０１の応答を確認しながら、各制御パラメータの値を上下させて調整する必要があり、これを一般的に制御パラメータのマニュアル調整と称する。一方、これら制御パラメータの調整を自動で行う一般的にオートチューニングと称する調整機能も実用化されている。【００１０】
しかしながら、オートチューニングを実行したとしても、あらゆる負荷の状態に対して制御パラメータが必ずしも最適値に調整されるとは限らず、一般的にサーボモータの制御装置としてはマニュアル調整の機能も必要不可欠であることが実情であった。【００１１】
また、マニュアル調整やオートチューニングにかかわらず、各制御パラメータの値を上げたり下げたりしながら最適値に調整する場合、フィードバックループに発振が生じ、その結果、サーボモータが激しく振動するため、サーボモータの負荷に損傷を与えてしまう恐れがあった。フィードバックループに発振が生じた場合は、変更した制御パラメータの値を再度変更するか、一旦、サーボモータに流す電流を遮断して停止させた後、制御パラメータの値を変更してから、再び、サーボモータに電流を流すなどの手順が必要となる。従って、このような従来のサーボモータの制御装置は、発振が停止するまでに時間が掛かり、サーボモータの負荷に与える損傷が過大になったり、制御パラメータの調整に手間と時間が掛かったりするという課題があった。このような機械振動を抑制する機能を有したモータに関する技術としては、例えば、特許文献３に開示されている。
【特許文献１】特開平６−１６５５５０号公報
【特許文献２】特開平６−３１９２８４号公報
【特許文献３】特開２００３−５２１８８号公報
【発明の開示】
【００１２】
本発明のサーボモータの制御装置は、外部から通知される指令情報と検出部により検出された回転動作に関する情報とからそれらの偏差量を求め、偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、演算処理により生成された回転制御信号によりサーボモータの回転動作を制御することで、サーボモータの回転動作が指令情報に追従するようにフィードバック制御するフィードバックループを有したサーボモータの制御装置であって、フィードバックループの発振を検知し、その検知結果を示す発振検知信号を出力する発振検知部と、フィードバックループの制御パラメータ群における制御パラメータの設定を、発振検知信号に基づき操作指示するパラメータ操作部と、制御パラメータを設定するための設定値が供給され、パラメータ操作部の操作指示に応じて更新しながら制御パラメータをフィードバックループに設定する更新部とを備え、発振検知信号が発振を検知していないことを示すとき、パラメータ操作部は更新部に対して、供給された設定値に応じた制御パラメータを設定するよう操作指示し、発振検知信号が発振を検知したことを示すとき、パラメータ操作部は更新部に対して、フィードバックループの周波数帯域幅が狭くなるような制御パラメータを設定するよう操作指示する構成である。
【００１３】
また、本発明のサーボモータの制御方法は、外部から通知される指令情報と検出部により検出された回転動作に関する情報とからそれらの偏差量を求め、偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、演算処理により生成された回転制御信号によりサーボモータの回転動作を制御することで、サーボモータの回転動作が指令情報に追従するようにフィードバック制御するフィードバックループを有したサーボモータの制御方法であって、フィードバックループの発振を検知するステップと、フィードバックループの制御パラメータ群における制御パラメータの設定を、発振の検知に基づき操作制御するステップと、制御パラメータを設定するための設定値が供給され、操作制御に応じて更新しながら制御パラメータをフィードバックループに設定するステップとを備え、発振が検知されていないとき、操作制御により、供給された設定値に応じた制御パラメータをフィードバックループに設定し、発振が検知されたとき、操作制御により、フィードバックループの周波数帯域幅が狭くなるような制御パラメータをフィードバックループに設定する。
【００１４】
このような構成により、例えば制御パラメータを変更することでフィードバックループに発振が生じたとしても、フィードバックループの周波数帯域幅が狭くなるように制御されるため、速やかに発振を停止させることができ、サーボモータの負荷に与える損傷を最小限に抑えるとともに、制御パラメータの調整をスムーズかつ短時間に行うことができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施の形態１におけるサーボモータの制御装置のブロック図である。
【図２Ａ】図２Ａは、時間の経過とともに速度指令信号を変化させた一例を示す図である。
【図２Ｂ】図２Ｂは、位置ゲインＫｐおよび速度ゲインＫｖをある程度低く設定したときのサーボモータにおける実回転速度の変化を示す図である。
【図２Ｃ】図２Ｃは、位置ゲインＫｐおよび速度ゲインＫｖを図２Ｂの場合よりも高く設定したときのサーボモータにおける実回転速度の変化を示す図である。
【図３】図３は、本発明の実施の形態１における発振検知部の詳細な構成を示すブロック図である。
【図４】図４は、同発振検知部のバンドパスフィルタの周波数特性の一例を示す図である。
【図５】図５は、本発明の実施の形態１におけるサーボモータの制御装置の各ステップでの設定値および各信号の様子を示したタイミングチャートである。
【図６】図６は、同制御装置の各ステップでの設定値および各信号の様子の他の例を示したタイミングチャートである。
【図７】図７は、本発明の実施の形態２におけるサーボモータの制御装置のブロック図である。
【図８】図８は、本発明の実施の形態３におけるサーボモータの制御装置のブロック図である。
【図９】図９は、同制御装置の要部の詳細な構成を示すブロック図である。
【図１０】図１０は、同制御装置の一動作例を説明するためのタイミングチャートである。
【図１１】図１１は、同制御装置の他の動作例を説明するためのタイミングチャートである。
【図１２】図１２は、同制御装置のさらに他の動作例を説明するためのタイミングチャートである。
【図１３】図１３は、同制御装置のさらに他の動作例を説明するためのタイミングチャートである。
【図１４】図１４は、同制御装置のさらに他の動作例を説明するためのタイミングチャートである。
【図１５】図１５は、本発明の実施の形態４におけるサーボモータの制御装置のブロック図である。
【図１６Ａ】図１６Ａは、同制御装置のノッチフィルタの中心周波数が１００Ｈｚの場合の周波数伝達特性を示す図である。
【図１６Ｂ】図１６Ｂは、同制御装置のノッチフィルタの中心周波数が１０００Ｈｚの場合の周波数伝達特性を示す図である。
【図１７】図１７は、同制御装置の中心周波数調整部の詳細な構成を示すブロック図である。
【図１８】図１８は、同制御装置の一動作例を説明するためのタイミングチャートである。
【図１９】図１９は、本発明の実施の形態５におけるサーボモータの制御装置のブロック図である。
【図２０】図２０は、同制御装置の一動作例を説明するためのタイミングチャートである。
【図２１】図２１は、同制御装置の他の動作例を説明するためのタイミングチャートである。
【図２２】図２２は、本発明の実施の形態６におけるサーボモータの制御装置のブロック図である。
【図２３】図２３は、同制御装置の動作例を説明するためのタイミングチャートである。
【図２４】図２４は、本発明の実施の形態７におけるサーボモータの制御装置のブロック図である。
【図２５】図２５は、同制御装置の一動作例を説明するためのタイミングチャートである。
【図２６】図２６は、同制御装置の他の動作例を説明するためのタイミングチャートである。
【図２７】図２７は、本発明の実施の形態８におけるサーボモータの制御装置のブロック図である。
【図２８】図２８は、同制御装置の一動作例を説明するためのタイミングチャートである。
【図２９】図２９は、従来のサーボモータの制御装置の一構成例を示したブロック図である。
【符号の説明】
【００１６】
１０１    サーボモータ
１０２    負荷
１０３    エンコーダ
１０４    フィードバックループ
１０５    発振検知部
１０６    パラメータ操作部
１０８    速度ゲイン乗算部
１０９    位置ゲイン乗算部
１１０    フィードフォワードゲイン乗算部
１１１，１５４    微分演算部
１１２    積分演算部
１１３    演算部
１１４    減算部
１１５    乗算部
１１６，１１７，１１８    パラメータ更新部
１２０    バンドパスフィルタ
１２１    振幅判定部
１２２    発振継続判定部
１２５    設定値保存部
１２６    設定値更新検知部
１２７    旧値保存部
１２８    出力値決定部
１３０    パラメータ設定部
１３１    剛性値更新部
１４１，１４４    ノッチフィルタ
１４２    中心周波数調整部
１４３    ハイパスフィルタ
１４５    ノッチ中心周波数修正部
１５２    イナーシャ設定部
１５３    イナーシャ推定部
１５７    安定剛性値算出部
１６１    剛性値判定部
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について、図面を用いて説明する。【００１８】
（実施の形態１）
図１は、本発明の実施の形態１におけるサーボモータの制御装置のブロック図である。【００１９】
本実施の形態では、モータの回転位置を検出して、外部より入力される速度指令へ追従するようなフィードバックループを構成するとともに、速度ゲインや位置ゲインなどのフィードバックループに内包される複数の制御パラメータに、適切な設定値をマニュアルにより設定可能なサーボモータの制御装置（以下、適宜、単に「制御装置」と呼ぶ）の一例を挙げて説明する。【００２０】
図１において、サーボモータ（以下、適宜、「モータ」と呼ぶ）１０１には、回転位置を検出するためのエンコーダ１０３が接続されている。エンコーダ１０３は、検出したモータ１０１の回転位置に対応した値を示す位置検出信号を出力する。位置検出信号は、微分演算を行う微分演算部１１１において微分演算処理され、これによって、微分演算部１１１からは、モータ１０１の回転速度を示す速度検出信号ｄｖが出力される。【００２１】
また、外部より入力される速度指令の値を示す速度指令信号は、フィードフォワードゲイン乗算部１１０に供給されるとともに、減算部１１４にも供給される。【００２２】
フィードフォワードゲイン乗算部１１０は、供給された速度指令信号に対して所定のフィードフォワードゲインＫｆを乗じ、フィードフォワード信号として出力する。【００２３】
一方、減算部１１４は、速度指令信号と速度検出信号ｄｖとの減算演算を行い、この減算演算結果を速度誤差信号として出力する。この速度誤差信号は、速度指令と検出速度との偏差量である速度誤差に該当する。速度誤差信号は、積分演算を行う積分演算部１１２に供給され、積分演算処理が施される。これにより、速度誤差信号は、位置誤差に該当する位置誤差信号へと変換される。この位置誤差信号は、位置ゲイン乗算部１０９に供給される。位置ゲイン乗算部１０９は、位置誤差信号に対して制御ゲインの一つである所定の位置ゲインＫｐを乗じ、位置補正信号として出力する。また、位置ゲイン乗算部１０９には、このような位置ゲインＫｐの設定値が以下で説明するパラメータ更新部１１６から供給されている。【００２４】
次に、演算部１１３には、位置補正信号、フィードフォワード信号および速度検出信号ｄｖが供給される。演算部１１３は、位置補正信号とフィードフォワード信号との加算演算を行い、さらに、この加算演算結果と速度検出信号ｄｖとの減算演算を行い、速度制御信号として出力する。この速度制御信号は、速度ゲイン乗算部１０８に供給される。速度ゲイン乗算部１０８は、速度制御信号に対して制御ゲインの一つである所定の速度ゲインＫｖを乗じ、回転制御信号として出力する。また、速度ゲイン乗算部１０８には、このような速度ゲインＫｖの設定値が以下で説明する乗算部１１５から供給されている。【００２５】
そして、回転制御信号に対応した駆動信号がモータ１０１に供給され、これによってモータ１０１が回転駆動される。【００２６】
また、このように回転駆動されるモータ１０１に負荷１０２を接続することで、負荷１０２が回転するように駆動される。【００２７】
以上説明したような構成により、外部から通知される指令情報としての速度指令と、検出部としてのエンコーダ１０３により検出された回転動作に関する情報としての位置検出信号とからそれらの偏差量を求め、偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、演算処理により生成された回転制御信号によりサーボモータ１０１の回転動作を制御することで、サーボモータ１０１の回転動作が指令情報に追従するようにフィードバック制御するフィードバックループ１０４が構成される。本実施の形態では、図１に示すように、負荷１０２を含めたサーボモータ１０１、エンコーダ１０３および駆動信号を生成するまでの帰還処理の部分を、まとめてフィードバックループ１０４と称して扱う。なお、ここでは、フィードバックループ１０４に速度指令が入力される形式となっているが、フィードバックループ１０４内部において、積分演算部１１２により、速度誤差信号に対する積分演算が行われる。このため、実質的には外部より位置指令が入力され、それにサーボモータ１０１の回転位置が追従するように制御されるような構成と等価である。【００２８】
また、上述したように、本実施の形態の制御装置は、マニュアル、すなわち手動によるマニュアル調整で、フィードバックループ１０４における複数の制御パラメータに対して、設定値を設定できる構成としている。すなわち、本実施の形態では、図１に示すように、本制御装置に対して外部から、速度指令信号としての速度指令の値とともに、所定の制御パラメータ群に含まれる制御パラメータとして、位置ゲインＫｐ、速度帯域ｆｖおよびイナーシャＪそれぞれに対しての設定値が設定可能な構成例を挙げている。このような制御パラメータへの設定値は、例えばマイクロプロセッサやマイクロコンピュータ装置のような上位器、あるいは本制御装置を収納するコントローラ装置のパネルスイッチなどから通知される。また、図１では、本制御装置に設定されている位置ゲインＫｐおよび速度帯域ｆｖの設定値が、上位器など外部に対して通知され、上位器などにおいて、その設定値が例えば表示されるような一例を挙げている。【００２９】
このような制御パラメータの各設定値をフィードバックループ１０４内に設定するため、本実施の形態の制御装置は、フィードバックループに内包される複数の制御パラメータを外部からの設定値に従って各値を更新するパラメータ更新部１１６およびパラメータ更新部１１７と、パラメータ更新部１１６およびパラメータ更新部１１７が出力する各出力値の更新履歴を記憶するパラメータ操作部１０６と、フィードバックループの発振を検知し、検知結果をパラメータ操作部１０６に通知する発振検知部１０５とをさらに備えている。なお、パラメータ更新部１１６とパラメータ更新部１１７とにより更新部が構成される。【００３０】
パラメータ更新部１１６には、外部の上位器などから位置ゲインＫｐの設定値が供給され、パラメータ更新部１１７には、速度帯域ｆｖの設定値が供給される。また、パラメータ更新部１１６、１１７は、パラメータ操作部１０６の操作指示信号ｄｍの操作指示に従って、最適な設定値を選択し、選択した設定値を出力する。なお、以下、外部の上位器などから通知される設定値を外部設定値とし、パラメータ更新部１１６、１１７から出力される設定値を内部設定値と区分して呼び、説明する。【００３１】
パラメータ更新部１１６から出力された位置ゲインＫｐの内部設定値は、位置ゲイン乗算部１０９に供給される。これによって、制御パラメータとして、フィードバックループ内における位置ゲインＫｐが設定される。【００３２】
また、パラメータ更新部１１７から出力された速度帯域ｆｖの内部設定値は乗算部１１５に供給される。ここで、フィードバックループの周波数帯域ｆｓとともに、モータ１０１と負荷１０２の両方を含めた慣性モーメント、すなわちイナーシャＪを割り当てると、速度ゲインＫｖ、イナーシャＪおよび周波数帯域ｆｓの間には、Ｋｖ／Ｊ＝２πｆｓ（πは円周率を示す）の関係が成り立つ。また、フィードバックループ１０４の応答減衰係数を１とすると、位置ゲインＫｐ＝１／４・Ｋｖ／Ｊの関係が成り立つ。これに基づき、本実施の形態では、外部から速度帯域ｆｖおよびイナーシャＪの設定を可能とし、速度帯域ｆｖとイナーシャＪとの乗算結果を速度ゲインＫｖとして設定するような構成としている。すなわち、図１に示すように、乗算部１１５を設け、乗算部１１５により速度帯域ｆｖの内部設定値とイナーシャＪの設定値との乗算演算を行い、その乗算結果である値を速度ゲインＫｖとして速度ゲイン乗算部１０８に設定するような構成としている。このようにして、制御パラメータとしてイナーシャＪおよび速度帯域ｆｖが設定されるとともに、フィードバックループ内における速度ゲインＫｖも設定される。なお、外部から速度ゲインＫｖの外部設定値がパラメータ更新部１１７に通知され、パラメータ更新部１１７から出力された内部設定値が速度ゲイン乗算部１０８に供給されるような構成であってもよい。【００３３】
このように、位置ゲインＫｐや速度ゲインＫｖである制御パラメータを適切に設定することにより、速度指令に対して優れた応答性や追従性を得ることができる。図２Ａ、図２Ｂおよび図２Ｃは、制御パラメータの設定を変えた場合、速度指令の変化に対するそれぞれの応答特性例を示している。【００３４】
図２Ａは、時間の経過とともに速度指令信号を変化させた一例を示している。図２Ｂは、位置ゲインＫｐおよび速度ゲインＫｖをある程度低く設定したとき、図２Ａに示す速度指令信号の変化に対して、モータ１０１における実回転速度の変化を示している。図２Ｃは、位置ゲインＫｐおよび速度ゲインＫｖを図２Ｂの場合よりも高く設定したとき、図２Ａに示す速度指令信号の変化に対して、モータ１０１における実回転速度の変化を示している。【００３５】
図２Ｂと図２Ｃとの比較で判るように、位置ゲインＫｐや速度ゲインＫｖを高く設定するほど、フィードバックループ１０４の周波数帯域幅が広くなり、速度指令の入力変化に対して優れた応答性、あるいは追従性が得られることになる。ところが、サーボモータ１０１を含めた負荷１０２は一般に機械的な共振特性を持っている。さらに、負荷１０２の剛性が低い場合には、その共振の周波数がフィードバックループ１０４の周波数帯域の上限周波数より低くなる場合がある。その場合には、フィードバックループ１０４に発振を生ずる可能性がある。従って、速度指令の入力に対する応答性の観点からは前述の位置ゲインＫｐや速度ゲインＫｖを高く設定する方が望ましいが、フィードバックループ１０４が発振を生じない範囲に留める必要がある。【００３６】
本実施の形態の制御装置は、フィードバックループ１０４においてこのような発振が生じても速やかに発振を停止させるため、発振検知部１０５およびパラメータ操作部１０６を設けている。【００３７】
パラメータ操作部１０６は、パラメータ更新部１１６およびパラメータ更新部１１７が出力する内部設定値を入力し、それぞれの値が変更されるたびに各値を更新履歴として順次記憶する。さらに、パラメータ操作部１０６には、発振検知部１０５から、フィードバックループ１０４においての発振を検知したかどうかを示す発振検知信号が通知される。【００３８】
パラメータ操作部１０６は、この発振検知信号が発振を検知したことを示すとき、最後に更新された制御パラメータの値が、更新された以前の値に戻るように、パラメータ更新部１１６およびパラメータ更新部１１７のうち該当するパラメータ更新部に対し、更新された以前の値を供給する。さらに、このとき、パラメータ操作部１０６は、該当するパラメータ更新部に対し、このように供給した以前の値を選択し、出力するような操作指示を示す操作指示信号ｄｍを通知する。これに応答して、該当するパラメータ更新部は、その値を保持するとともに、その値を内部設定値として出力する。【００３９】
一方、パラメータ操作部１０６は、発振検知信号が発振を検知したことを示さないときには、操作指示信号ｄｍによりパラメータ更新部１１６およびパラメータ更新部１１７に対して、外部設定値をそのまま内部設定値として出力するよう操作指示する。すなわち、発振検知信号が発振を検知したことを示さないときには、パラメータ更新部１１６およびパラメータ更新部１１７は、外部設定値をそのまま内部設定値として出力する。【００４０】
パラメータ操作部１０６、パラメータ更新部１１６およびパラメータ更新部１１７がこのような処理を行うことで、発振検知信号が発振を検知していないことを示すとき、パラメータ操作部１０６は、操作指示信号ｄｍによりパラメータ更新部１１６、１１７に対して、供給された設定値に応じた制御パラメータを設定するよう操作指示し、発振検知信号が発振を検知したことを示すとき、パラメータ操作部１０６はパラメータ更新部１１６、１１７に対して、フィードバックループ１０４の周波数帯域幅が狭くなるような制御パラメータを設定するよう操作指示するような処理が行われる。【００４１】
このように、本実施の形態の制御装置は、発振検知部１０５によりフィードバックループ１０４における発振が検知されると、パラメータ操作部１０６によるパラメータ更新部１１６およびパラメータ更新部１１７への操作により、フィードバックループ１０４における制御パラメータの内部設定値が一つ手前の設定値となるように、後戻りして設定されることを特徴としている。すなわち、発振検知信号が発振を検知したことを示すとき、パラメータ操作部１０６の操作指示信号ｄｍに応じて、パラメータ更新部１１６、１１７は、最後に更新して設定した制御パラメータを以前の制御パラメータへと戻し、その戻した制御パラメータをフィードバックループ１０４に設定する構成である。【００４２】
図３は、発振検知部１０５の詳細な構成を示すブロック図である。図３において、発振検知部１０５に入力されたモータ速度を示す速度検出信号ｄｖは、まず、バンドパスフィルタ１２０に入力される。図４は、バンドパスフィルタ１２０の周波数特性の一例を示す図である。速度検出信号ｄｖは、図４に示すような周波数特性のバンドパスフィルタ１２０により、高周波成分と低周波成分とが遮断されて出力される。これはノイズ成分を遮断し、フィードバックループ１０４の発振を精度良く検出するためである。バンドパスフィルタ１２０の出力信号は、振幅判定部１２１に入力される。【００４３】
振幅判定部１２１は、入力された信号の振幅が所定の振幅値よりも大きいか小さいかを判定する。振幅判定部１２１は、大きいと判定したときＨレベル、小さいと判定したときＬレベルとする２値信号を出力する。この判定結果を示す２値信号は、発振継続判定部１２２に供給される。【００４４】
発振継続判定部１２２は、振幅判定部１２１からの信号に基づき、フィードバックループ１０４において安定した確実な発振が生じているかどうかを判定する。すなわち、発振継続判定部１２２は、例えば、入力される信号がＨレベルである時間を計数することでフィードバックループ１０４の発振の継続性を判定する。発振継続判定部１２２は、継続的な発振であると判定したときＨレベル、そうでなければＬレベルとする２値信号を出力する。【００４５】
このような発振継続判定部１２２のより具体的な構成例として、発振継続判定部１２２の内部において、アップダウンカウンタ（以下、適宜、単に「カウンタ」と呼ぶ）を設け、入力される信号がＨレベルのときにはアップカウントし、Ｌレベルのときにはダウンカウントするよう構成する。さらに、カウンタの出力値を判定するような判定器を設け、このカウンタの出力値が所定の値以上になったときに、継続的な発振であるとしてＨレベル、そうでなければＬレベルの２値信号として出力するような構成とする。このような構成とすることで、発振継続判定部１２２が実現できる。なお、以下、各実施の形態における動作の説明において、発振検知部１０５がこのようなカウンタを有する発振継続判定部１２２を備えた構成での動作例を挙げて説明する。【００４６】
なお、前述のフィードフォワードゲイン乗算部１１０におけるフィードフォワードゲインＫｆは、速度指令の入力に対するサーボモータ１０１の応答に関係するパラメータである。このようなフィードフォワードゲインＫｆは、基本的にフィードバックループ１０４に生ずる発振とは関係ないので、フィードバックループ１０４に内包される他の制御パラメータとは区別して取り扱う。また、フィードフォワードゲインＫｆは、通常０．３程度の値に固定して設定されることが多い。また、本実施の形態では、フィードフォワードゲインＫｆが固定して設定されるような構成例を示しているが、速度指令や他の制御パラメータと同様に、外部から設定可能な構成であってもよい。【００４７】
次に、以上のように構成された本実施の形態のサーボモータの制御装置について、具体例を挙げて、その動作を説明する。また、上述したように、ここでは、発振継続判定部１２２がカウンタを備えた一例を用いて説明する。【００４８】
まず、表１に示すようなマニュアル調整のステップの順に従って、制御パラメータである速度帯域ｆｖを設定するような動作例を挙げて説明する。なお、ここでは、制御パラメータである位置ゲインＫｐは表１に示すように固定の値とし、変更しないような場合の例を挙げる。また、図５は、表１に示す各ステップでの設定値および各信号の様子を示したタイミングチャートである。【００４９】
【表１】
2008087893.tif 000003
【００５０】
まず、例えば制御パラメータのマニュアル調整開始の時点において、表１のステップ１に示すような各制御パラメータの組み合わせで、各内部設定値が設定される。なお、この時点ではフィードバックループ１０４に発振は生じていないとして説明する。【００５１】
次に、ステップ１に示す制御パラメータを設定した後、図５に示すように、時刻ｔ１にて、ステップ２として、速度帯域ｆｖの設定値を「４００」から「５００」へとさらに変更する。この段階でもフィードバックループ１０４には発振を生じていないので、さらに、時刻ｔ２にて、ステップ３として、速度帯域ｆｖの設定値を「５００」から「５２０」に変更する。図５は、このように、例えば応答性をよくするため、ステップ３まで順次速度帯域ｆｖの内部設定値を増やすことにより、フィードバックループ１０４の周波数帯域幅が広くなり、フィードバックループ１０４において発振が発生した様子を示している。すなわち、フィードバックループ１０４において発振が生じたため、図５に示すように、発振検知部１０５に供給される速度検出信号ｄｖも振動することになる。これにより、振幅判定部１２１は、時刻ｔ２を過ぎると、発振を検出したとする発振検知信号（Ｈレベル）を発振継続判定部１２２へと出力する。このため、図５に示すように、発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ３においてカウンタの出力値が所定の値を超える。そして、発振継続判定部１２２は、この時点で発振を検知したとする発振検知信号（Ｈレベル）を出力し、これによって、発振検知部１０５からパラメータ操作部１０６へとこのような発振検知信号が通知される。【００５２】
パラメータ操作部１０６は、パラメータ更新部１１７から出力される内部設定値が変化するたびに、その値を順次記憶している。パラメータ操作部１０６は、時刻ｔ３において、発振検知信号の発振を検知したとする変化を受けて、パラメータ更新部１１７から出力される内部設定値が更新される以前の値、すなわち、速度帯域ｆｖの更新前の値である「５００」を、時刻ｔ４においてパラメータ更新部１１７に対して出力する。さらに、パラメータ操作部１０６は、パラメータ更新部１１７に対して、更新前の値である「５００」を選択し、出力するよう操作指示する。【００５３】
その結果、パラメータ更新部１１７から出力される内部設定値は、「５２０」から再び「５００」に戻る。これにより、フィードバックループ１０４の周波数帯域幅が狭くなり、図５に示すように、時刻ｔ４以降、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ５にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。すなわち、外部設定値として「５２０」を設定することで発振が生じた場合、最終的には表１のステップ４に示す通り、内部設定値としては「５００」へと変更され、外部から速度帯域ｆｖの設定値として「５００」を入力したのと同様の状態に戻ることになる。【００５４】
このように、例えば、マニュアル調整時などにおいて制御パラメータの設定値を負荷に応じた最適値へと変更するとき、本制御装置は、フィードバックループ１０４に発振が生じた場合、発振検知部１０５とパラメータ操作部１０６とパラメータ更新部１１６、１１７とによって、制御パラメータを更新する以前の値に戻す処理を自動的に行う。このため、本制御装置によれば、フィードバックループ１０４に生ずる発振を短時間で停止させることができる。さらに、発振を手動で停止させる必要がなく、また、制御パラメータの限界値も判るので、制御パラメータの調整作業をスムーズかつ短時間に行うことができる。【００５５】
次に、表２に示すようなステップの順に従って、制御パラメータである速度帯域ｆｖを設定するような動作例を挙げて説明する。ここでも、制御パラメータである位置ゲインＫｐは表２に示すように固定の値とした例を挙げる。また、図６は、表２に示す各ステップでの設定に応じて各信号の様子を示したタイミングチャートである。【００５６】
【表２】
2008087893.tif 000004
【００５７】
まず、図６に示す時刻ｔ２までにおいては、図５の場合と同様の処理が行われる。さらに、時刻ｔ２にて、ステップ３として、速度帯域ｆｖの設定値が「５００」から「６００」に変更される。これによって、図５の場合と同様に、フィードバックループ１０４の周波数帯域幅が広くなるためフィードバックループ１０４が発振し、図６に示すように、発振検知部１０５に供給される速度検出信号ｄｖも振動することになる。【００５８】
このような発振が生じたため、図６に示すように、発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ３において、発振検知部１０５からパラメータ操作部１０６へと、発振を検知したとする発振検知信号（Ｈレベル）が通知される。パラメータ操作部１０６は、時刻ｔ３においてこのような発振検知信号を受け、時刻ｔ４において、パラメータ更新部１１７の出力値が更新される以前の値、すなわち、速度帯域ｆｖの更新前の値である「５００」をパラメータ更新部１１７に対して出力する。【００５９】
その結果、パラメータ更新部１１７の出力値は再び「６００」から「５００」に戻る。ここで、図５の場合このような操作により発振が停止するような例を挙げたが、図６では、時刻ｔ４以降も発振が引き続き継続するような場合を示している。すなわち、図６に示すように、時刻ｔ４以降も速度検出信号ｄｖが振動する。【００６０】
このように発振が継続する場合、図６に示すように、カウンタの値は飽和レベルまで達するとともに、発振検知部１０５は発振を検知したとする発振検知信号を引き続き出力し続ける。パラメータ操作部１０６は、これを受けて、パラメータ更新部１１７の出力値が「５００」に更新されるさらに以前の値、すなわち、速度帯域ｆｖのさらに更新前の値である「４００」を時刻ｔ５においてパラメータ更新部１１７に対して出力する。【００６１】
そうすると、フィードバックループ１０４の周波数帯域幅はさらに狭くなるので、図６に示すように、速度検出信号ｄｖの振動は収束するとともに、カウンタの値も減少する。この後、時刻ｔ６にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。すなわち、最終的には表２のステップ５に示す通り、外部から速度帯域ｆｖの設定値として「４００」を入力したのと同様の状態に戻る。【００６２】
このように、制御パラメータの設定値を変更するとき、本制御装置は、フィードバックループ１０４に発振が生じた場合、制御パラメータを更新する以前の値に戻す処理を継続的かつ自動的に行う。このため、本制御装置によれば、フィードバックループ１０４に生ずる発振を短時間で停止させることができる。さらに、発振を手動で停止させる必要がなく、また、制御パラメータの限界値も判るので、制御パラメータの調整作業をスムーズかつ短時間に行うことができる。【００６３】
次に、表３に示すようなステップの順に従って、制御パラメータである速度帯域ｆｖおよび位置ゲインＫｐを設定するような動作例を挙げて説明する。ここでは、表３で示すように、まず、ステップ１で速度帯域ｆｖを「４００」、位置ゲインＫｐを「１００」とする設定値に設定し、その後、ステップ２で速度帯域ｆｖを「４００」から「５００」に更新し、ステップ３で位置ゲインＫｐを「１００」から「８０」に更新し、ステップ４で位置ゲインＫｐを「８０」から「７０」に更新している。また、ここまでの処理において、フィードバックループ１０４には発振が生じておらず、ステップ５で速度帯域ｆｖが「５００」から「５６０」に更新された時点において、発振が生じた場合の例を挙げて以下説明する。【００６４】
【表３】
2008087893.tif 000005
【００６５】
まず、ステップ５において発振が生じたため、パラメータ操作部１０６は、パラメータ更新部１１７に対し、更新する以前の値である「５００」を出力する。【００６６】
その結果、パラメータ更新部１１７の出力値は、「５６０」から再び「５００」に戻り、ステップ６に至るとともに、フィードバックループ１０４に生じていた発振が停止する。【００６７】
このように、２種類の制御パラメータをそれぞれ変更する場合でも、本制御装置は、フィードバックループ１０４に発振が生じた場合、該当する制御パラメータを選択的に、更新する以前の値に戻す処理を自動的に行う。このため、本制御装置によれば、フィードバックループ１０４に生ずる発振を短時間で停止させることができる。さらに、発振を手動で停止させる必要がなく、また、制御パラメータの限界値も判るので、制御パラメータの調整作業をスムーズかつ短時間に行うことができる。【００６８】
以上のように、本実施の形態におけるサーボモータの制御装置は、パラメータ更新部１１６、１１７が外部より入力された制御パラメータに更新して出力するとともに、発振検知部１０５がフィードバックループ１０４の発振を検知したとき、パラメータ操作部１０６は、制御パラメータの値を更新する以前の値に戻すように作用するので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、また、制御パラメータの調整作業をスムーズ、かつ短時間に行うことができるサーボモータの制御装置を実現することができる。【００６９】
（実施の形態２）
図７は、本発明の実施の形態２におけるサーボモータの制御装置のブロック図である。実施の形態１との比較において、実施の形態２では、制御パラメータとしてのイナーシャＪの設定値を外部から取り込み、この設定値に従って値を更新するパラメータ更新部１１８をさらに備える。また、パラメータ更新部１１６、パラメータ更新部１１７およびパラメータ更新部１１８により更新部が構成される。なお、図７において、図１と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。【００７０】
図７において、パラメータ更新部１１８には、外部の上位器などからイナーシャＪの設定値が供給される。パラメータ更新部１１８は、パラメータ操作部１０６の操作指示に従って、最適なイナーシャＪの設定値を出力値として出力する。パラメータ更新部１１８から出力されたイナーシャＪの出力値は乗算部１１５に供給される。これによって、制御パラメータとして、フィードバックループ内におけるイナーシャＪの内部設定値が設定される。さらに、パラメータ更新部１１８から出力されたイナーシャＪの内部設定値である出力値は、パラメータ操作部１０６にも供給される。【００７１】
本実施の形態におけるパラメータ操作部１０６は、パラメータ更新部１１６およびパラメータ更新部１１７が出力する出力値に加えて、パラメータ更新部１１８が出力する出力値も入力し、それぞれの値が変更されるたびに各値を更新履歴として順次記憶する。さらに、パラメータ操作部１０６は、イナーシャＪの値が更新された後に、発振検知部１０５からの発振検知信号により発振が検知されたと通知されると、更新する以前のイナーシャＪの値をパラメータ更新部１１８に対して出力する。パラメータ更新部１１８は、それを受けて、出力するイナーシャＪの出力値を更新する以前の値に戻す。【００７２】
ところで、上述したように、速度ゲイン乗算部１０８における速度ゲインＫｖは、負荷１０２を含めたサーボモータ１０１のイナーシャＪの設定値と速度帯域ｆｖの設定値とが乗算部１１５で乗算された値として設定される。よって、イナーシャＪの設定値は、前述の速度ゲインＫｖの値に影響を与え、フィードバックループ１０４の発振にも影響を与える。従って、イナーシャの設定値Ｊを更新したときにおいても、フィードバックループ１０４に発振を生じることもあり得る。イナーシャＪの設定値は、速度帯域ｆｖの設定値、位置ゲインＫｐの設定値等、他の制御パラメータと区別して扱われることが多いが、前述の理由から広義での制御パラメータの一部とみなすことができる。このため、本実施の形態では、イナーシャＪの内部設定値の変更によりフィードバックループ１０４において発振が生じた場合、イナーシャＪの内部設定値も、更新する以前の値に戻すような構成としている。【００７３】
次に、以上のように構成された本実施の形態のサーボモータの制御装置について、具体例を挙げて、その動作を説明する。ここでは、表４で示すように、まず、ステップ１で速度帯域ｆｖを「４００」、位置ゲインＫｐを「１００」、イナーシャＪを「１．０」とする設定値に設定し、その後、ステップ２で速度帯域ｆｖを「４００」から「５００」に更新し、ステップ３で位置ゲインＫｐを「１００」から「８０」に更新し、ステップ４でイナーシャ設定値Ｊを「１．０」から「１．２」に更新している。また、ここまでの処理において、フィードバックループ１０４には発振が生じておらず、ステップ５でイナーシャ設定値Ｊが「１．２」から「１．４」に更新された時点において、発振が生じた場合の例を挙げて以下説明する。【００７４】
【表４】
2008087893.tif 000006
【００７５】
まず、ステップ５において発振が生じたため、発振検知部１０５は、発振を検知したとする発振検知信号をパラメータ操作部１０６に通知する。これに応答して、パラメータ操作部１０６はパラメータ更新部１１８に対し、更新する以前の値である「１．２」を出力する。【００７６】
その結果、パラメータ更新部１１８の出力値は再び「１．４」から「１．２」に戻り、ステップ６に至るとともに、フィードバックループ１０４に生じていた発振が停止する。【００７７】
このように３種類の制御パラメータをそれぞれ変更した場合でも、本制御装置は、フィードバックループ１０４に発振が生じた場合、発振検知部１０５とパラメータ操作部１０６とパラメータ更新部１１６、１１７、１１８とによって、該当する制御パラメータを選択的に、更新する以前の値に戻す処理を自動的に行う。このため、本制御装置によれば、フィードバックループ１０４に生ずる発振を短時間で停止させることができる。さらに、発振を手動で停止する必要がないので、制御パラメータの調整作業をスムーズかつ短時間に行うことができる。【００７８】
（実施の形態３）
図８は、本発明の実施の形態３におけるサーボモータの制御装置のブロック図である。実施の形態１との比較において、実施の形態３では、パラメータ更新部１１６、１１７に代えて、パラメータ設定部１３０および剛性値更新部１３１を備える。また、パラメータ設定部１３０および剛性値更新部１３１により更新部が構成される。なお、図８において、図１と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。【００７９】
また、本実施の形態では、外部の上位器などから、あらかじめ値の範囲が決定されている剛性設定値を選択して設定することで、負荷の剛性に応じた制御パラメータが設定可能な構成としている。すなわち、例えば、「０」から「７」までの８段階の剛性設定値をあらかじめ設けておき、剛性の低い負荷を駆動する場合には「０」、また剛性の高い負荷を駆動する場合には「７」とする。そして、例えば、上位器などから剛性設定値として「０」が設定された場合には、剛性の低い負荷を駆動するための制御パラメータがフィードバックループ１０４内に設定される。このような構成とすることにより、本制御装置の使用者は、制御パラメータなど意識せず、容易に、負荷に対応した制御パラメータを設定できる。【００８０】
図８に示すように、本実施の形態の制御装置においては、フィードバックループ１０４における制御パラメータとしての位置ゲインＫｐおよび速度帯域ｆｖが、パラメータ設定部１３０によって設定される。また、パラメータ設定部１３０が設定する各制御パラメータの値は、外部より入力される剛性設定値（以下、適宜、単に「剛性値」と呼ぶ）に従って決定される。このような剛性値は、剛性値更新部１３１を経由してパラメータ設定部１３０に供給される。すなわち、パラメータ設定部１３０は、剛性値に対しての位置ゲインＫｐおよび速度帯域ｆｖの設定値を変換テーブルのような形式で記憶しており、ある剛性値が通知されると、それに対応した位置ゲインＫｐおよび速度帯域ｆｖの設定値を出力する。【００８１】
このような剛性値をパラメータ設定部１３０に供給するため、本実施の形態の制御装置は、剛性値を外部からの設定値に従って各値を更新する剛性値更新部１３１を備えるとともに、実施の形態１などと同様に、剛性値更新部１３１が出力する各出力値の更新履歴を記憶するパラメータ操作部１０６と、フィードバックループ１０４の発振を検知し、検知結果をパラメータ操作部１０６に通知する発振検知部１０５とを備えている。【００８２】
剛性値更新部１３１には、外部の上位器などから、負荷の剛性に対応した制御パラメータを設定するための剛性値として、外部設定値が供給される。また、剛性値更新部１３１は、パラメータ操作部１０６の操作指示に従って、最適な設定値を選択し、選択した設定値を内部設定値として出力し、パラメータ設定部１３０に供給する。また、剛性値更新部１３１から出力された内部設定値は、パラメータ更新部１１６にも供給される。【００８３】
パラメータ操作部１０６は、剛性値更新部１３１からの内部設定値を入力し、それぞれの値が変更されるたびに各値を更新履歴として順次記憶する。さらに、パラメータ操作部１０６には、発振検知部１０５から、フィードバックループ１０４においての発振を検知したかどうかを示す発振検知信号が通知される。【００８４】
パラメータ操作部１０６は、この発振検知信号が発振を検知したことを示すとき、最後に更新された剛性値の値が、更新された以前の値に戻るように、剛性値更新部１３１に対し、更新された以前の値を供給する。さらに、このとき、パラメータ操作部１０６は、操作指示信号ｄｍにより剛性値更新部１３１に対し、このように供給した以前の値を選択し、出力するような操作指示を通知する。これに応答して、剛性値更新部１３１は、その値を保持するとともに、その値を内部設定値として出力する。【００８５】
一方、パラメータ操作部１０６は、発振検知信号が発振を検知したことを示さないときには、操作指示信号ｄｍにより剛性値更新部１３１に対して、外部設定値をそのまま内部設定値として出力するよう操作指示する。すなわち、発振検知信号が発振を検知したことを示さないときには、外部設定値がそのまま内部設定値としてパラメータ設定部１３０に供給される。【００８６】
このように、本実施の形態の制御装置は、発振検知部１０５によりフィードバックループ１０４における発振が検知されると、パラメータ操作部１０６による剛性値更新部１３１への操作により、剛性値が一つ手前の設定値となるように、後戻りして設定され、これによって、フィードバックループ１０４における制御パラメータの内部設定値も一つ手前の設定値となるように、後戻りして設定されることを特徴としている。すなわち、本実施の形態の制御装置は、発振検知信号が発振を検知したことを示すとき、パラメータ操作部１０６の操作指示に応じて、剛性値更新部１３１が、最後に更新して設定した剛性値を以前の剛性値へと戻し、この戻した剛性値をパラメータ設定部１３０に供給する。【００８７】
図９は、図８の要部の詳細な構成を示すブロック図である。図９に示すように、剛性値更新部１３１は、設定値保存部１２５および出力値決定部１２８を有している。また、パラメータ操作部１０６は、設定値更新検知部１２６および旧値保存部１２７を有している。設定値保存部１２５は、外部からの剛性設定の入力値を一旦保存して出力値決定部１２８に出力する。設定値更新検知部１２６は、入力された剛性設定の入力値と剛性値更新部１３１の出力値とを比較して値が変化したことを検知すると、出力値決定部１２８に対して、入力された剛性値を更新して出力するように指令する。それと同時に、設定値更新検知部１２６は、旧値保存部１２７に対して、出力値決定部１２８が出力していた更新する前の値を保存するように指令する。そして、発振検知部１０５がフィードバックループ１０４の発振を検知したときには、出力値決定部１２８は、旧値保存部１２７に保存されている更新する前の値を取り込み、出力する。その場合、出力値決定部１２８の出力値は再び設定値保存部１２５に入力され、設定値保存部１２５に保存されている値は出力値決定部１２８の出力値に書き換えられる。これは、剛性値更新部１３１の出力する更新した剛性値が剛性表示として、外部からその値を確認できるようにするためである。【００８８】
次に、以上のように構成された本実施の形態のサーボモータの制御装置について、具体例を挙げて、その動作を説明する。【００８９】
図８において、マニュアル調整時など外部より手動で設定される剛性値には、通常、上述したように整数が割り当てられる。ここでの動作例については、外部より設定される剛性値、すなわち剛性値として、「０」から「７」までの８種類の値が割り当てられる一例を挙げて説明する。【００９０】
また、剛性値に対応したフィードバックループ１０４の周波数帯域ｆｓが割り当てられ、さらに、この周波数帯域ｆｓに対応して、Ｋｖ／Ｊ、Ｋｐの各値が決められる。ここで、Ｋｖは速度ゲイン、Ｋｐは位置ゲイン、Ｊはモータ１０１と負荷１０２との両方を含めた慣性モーメントであるイナーシャを表している。Ｋｖ／Ｊとｆｓの間には、Ｋｖ／Ｊ＝２πｆｓ（πは円周率を示す）の関係が成り立つ。また、フィードバックループ１０４の応答減衰係数を１とすると、Ｋｐ＝１／４・Ｋｖ／Ｊの関係が成り立つ。また、フィードフォワードゲインＫｆは、速度指令に対するフィードバックループ１０４の応答性の観点から、通常０．３程度の値が用いられる。従って、制御パラメータのテーブル、すなわちバランスの取れた標準的な制御パラメータの組み合わせとしては、例えば、表５に示すようになる。【００９１】
【表５】
2008087893.tif 000007
【００９２】
剛性値「０」から「７」までの値に対して、それぞれに対応するフィードバックループ１０４の周波数帯域ｆｓが割り当てられているので、結果として、剛性値「０」から「７」までの値に対して、Ｋｖ／Ｊ、Ｋｐ、Ｋｆの各値が決まることを表５が示している。従って、慣性モーメントＪの大きさが決まれば、剛性設定の各値について制御パラメータの全ての値が周波数帯域ｆｓに対する最適値として決まることになる。その後、各制御パラメータの値はフィードバックループ１０４に内包される速度ゲイン乗算部１０８、位置ゲイン乗算部１０９、フィードフォワードゲイン乗算部１１０のそれぞれ対応する演算部に転送される。また、表５の剛性値と周波数帯域ｆｓとの比較で判るように、剛性値が高いほど、フィードバックループ１０４の周波数帯域ｆｓが広くなり、速度指令の入力に対して優れた応答性、あるいは追従性が得られる。【００９３】
なお、慣性モーメントであるイナーシャＪの値については、サーボモータの制御装置それぞれについて、手動で入力したり、あるいは自動的に推定したりすることで決められるが、ここではイナーシャＪの値については正しい値が設定されているとして説明する。【００９４】
図１０は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。まず、図１０に示すように、初期値「３」とする剛性値が設定されており、時刻ｔ１にて「５」に変更される場合の動作について説明する。なお、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。また、発振検知部１０５として、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。【００９５】
まず、図１０に示すように、時刻ｔ１までにおいては、初期値「３」とする剛性値が設定されており、このとき、速度検出信号ｄｖは振動しておらず、フィードバックループ１０４に発振は生じていない。【００９６】
次に、時刻ｔ１になると、外部から剛性値「５」が供給され、設定値保存部１２５の値も「３」から「５」になる。設定値更新検知部１２６は、この値の変化を検出し、出力値決定部１２８に対して設定値保存部１２５の出力値を出力するように指令する。さらに、設定値更新検知部１２６は、旧値保存部１２７に対して、出力値決定部１２８の出力する更新する前の出力値を保存するように指令する。これにより、図１０に示すように、時刻ｔ１以降は、旧値保存部１２７の値は「３」となる。【００９７】
このようにして、設定値保存部１２５の出力値はパラメータ設定部１３０に供給され、制御パラメータの値が剛性値「３」に対応する値から剛性値「５」に対応する値に変更される。図１０では、このような剛性値の変更により、時刻ｔ１を過ぎると、フィードバックループ１０４の周波数帯域ｆｓが広くなり、速度検出信号ｄｖが振動を開始するような場合を示している。このような発振が生じると、図１０に示すように、発振検知部１０５における発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ２において、発振検知部１０５からパラメータ操作部１０６へと、発振を検知したとする発振検知信号（Ｈレベル）が通知される。パラメータ操作部１０６は、時刻ｔ３においてこのような発振検知信号を受け、出力値決定部１２８に対して、旧値保存部１２７に保存されている更新する前の剛性値「３」を取り込み、出力するよう操作指示する。出力値決定部１２８は、これを受けて、旧値保存部１２７から取り込んだ更新する前の剛性値「３」を時刻ｔ３で出力する。【００９８】
その結果、出力値決定部１２８からパラメータ設定部１３０に対して供給される内部設定値は、剛性値「５」から「３」に戻る。これにより、フィードバックループ１０４の周波数帯域幅が狭くなり、図１０に示すように、時刻ｔ３以降、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ４にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。すなわち、外部設定値として剛性値「５」を設定することで発振が生じた場合、最終的には図１０に示す通り、内部設定値としては剛性値「３」へと変更され、外部から剛性値として「３」を入力したのと同様の状態に戻ることになる。【００９９】
このように剛性値を高い値に変更したとしても、フィードバックループ１０４に発振が生じた場合、剛性値を更新する以前の値に戻す処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。【０１００】
図１１は、本実施の形態の制御装置の他の動作例を説明するためのタイミングチャートである。次に、図１１に示すように、初期値「４」とする剛性値からスタートした場合の動作について説明する。また、図１１では、時刻ｔ１以前はフィードバックループ１０４が休止状態にあり、時刻ｔ１にてフィードバックループ１０４が能動状態として機能し始めて、このとき、フィードバックループ１０４に発振が生じるような場合を示している。【０１０１】
時刻ｔ２になると、図１１に示すように、発振検知部１０５はフィードバックループ１０４の発振を検知する。この場合、剛性値はこの時刻まで一度も変更していないので、更新する以前の剛性値は初期値である「４」とみなす。【０１０２】
従って、剛性値更新部１３１の現在の出力値は更新する以前の出力値と等しい値であり、更新する以前の出力値の方が低いということはないので、この場合、現在の出力値よりも階数「１」だけ低い剛性に対応する値を出力するように動作する。すなわち、図１１に示す発振を検出したとする発振検知信号（Ｈレベル）を受けて、出力値決定部１２８は、初期値の「４」から階数「１」だけ低い剛性に対応する値である「３」へと更新した出力値として時刻ｔ３に出力する。この場合は、旧値保存部１２７の値も図１１に示すように時刻ｔ３にて同じ値である３に設定される。【０１０３】
その結果、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が狭くなり、時刻ｔ３以降、発振は収束し、これに伴ってカウンタの値も減少し、一連の処理を完了する。また、出力値決定部１２８の出力値は設定値保存部１２５に入力され、設定値保存部１２５は、保存されている剛性値を初期値の「４」から「３」に書き換える。すなわち、外部から剛性値として「３」を入力したのと同様の状態となる。【０１０４】
このように、発振検知部１０５がフィードバックループ１０４の発振を検知したときに、剛性値更新部１３１が現在の更新した出力値と更新する以前の出力値とを比較し、更新する以前の出力値の方が高い剛性に対応する値である場合、または、現在の更新した出力値と更新する以前の出力値とが等しい値である場合には、その出力値を現在の更新した出力値よりも所定の階数だけ低い剛性に対応する値に更新するような構成とすることにより、剛性値の初期値を設定した場合などにおいて発振が生じた場合であっても、剛性値を所定の階数だけ低い剛性に対応する値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。【０１０５】
図１２は、本実施の形態の制御装置のさらに他の動作例を説明するためのタイミングチャートである。次に、図１２に示すように、初期値「５」とする剛性値からスタートした場合の動作について説明する。図１２でも、時刻ｔ１以前はフィードバックループ１０４が休止状態にあり、時刻ｔ１にてフィードバックループ１０４が能動状態として機能し始めて、このとき、フィードバックループ１０４に発振が生じるような場合を示している。【０１０６】
時刻ｔ２になると、図１２に示すように、発振検知部１０５はフィードバックループ１０４の発振を検知する。この場合も、剛性値はこの時刻まで一度も変更していないので、更新する以前の剛性値は初期値である「５」とみなす。【０１０７】
従って、剛性値更新部１３１の現在の出力値は更新する以前の出力値と等しい値であり、更新する以前の出力値の方が低いということはないので、この場合、現在の出力値よりも階数１だけ低い剛性に対応する値を出力するように動作する。すなわち、時刻ｔ３において、出力値決定部１２８は、初期値の「５」から階数「１」だけ低い剛性に対応する値である「４」を更新した出力値として出力する。また、旧値保存部１２７の値も、時刻ｔ３にて、同じ値である「４」に設定される。【０１０８】
図１２では、出力値がこのように更新されても発振が引き続き継続するような場合を示している。すなわち、出力値が更新された結果、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が若干狭くなるが、まだ十分低いレベルではないので、時刻ｔ３以降も、速度検出信号ｄｖは振動し、発振は引き続き継続している。また、カウンタの値は飽和レベルに達し、発振継続判定部１２２は発振を示すＨレベルの値を引き続き出力し続ける。【０１０９】
この場合、剛性値更新部１３１の現在の出力値は更新する以前の出力値より低い剛性に対応する値なので、現在の出力値よりもさらに階数「１」だけ低い剛性に対応する値を出力するように動作する。すなわち、時刻ｔ４において、出力値決定部１２８は、現在の出力値の「４」からさらに階数「１」だけ低い剛性に対応する値である「３」を更新した出力値として出力する。また、旧値保存部１２７の値も時刻ｔ４にて同じ値である「３」に設定される。【０１１０】
そうすると、フィードバックループ１０４の周波数帯域ｆｓの帯域幅がさらに狭くなるので、図１２に示すように、速度検出信号ｄｖの振動は収束し、カウンタの値も減少し、一連の処理を完了する。また、出力値決定部１２８の出力する値は設定値保存部１２５に入力され、保存されている剛性値を「３」に書き換える。すなわち、外部から剛性値として「３」を入力したのと同様の状態となる。【０１１１】
このように、発振検知部１０５がフィードバックループ１０４の発振を検知したときに、剛性値更新部１３１が現在の更新した出力値と更新する以前の出力値とを比較し、更新する以前の出力値の方が高い剛性に対応する値である場合、または、現在の更新した出力値と更新する以前の出力値とが等しい値である場合には、その出力値を現在の更新した出力値よりも所定の階数だけ低い剛性に対応する値に更新するような構成とすることにより、剛性値の初期値を設定した場合などにおいて発振が生じた場合であっても、発振が停止するまで、剛性値を所定の階数づつ低い剛性に対応する値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。【０１１２】
ところで、図１２に示したような動作例の場合、剛性値が初期値「５」からスタートしており、剛性値更新部１３１の出力値は「５」から「４」へ更新し、さらに、「４」から「３」へ更新するという２段階を経由している。このため、最終的にフィードバックループ１０４の発振が停止するまで、図１１に示した動作例の場合と比べて、若干の時間を要している。従って、図１２に示したような動作例の場合は、この発振が負荷１０２に与える損傷の度合いが、若干増していると言える。【０１１３】
例えば、電源投入時など、フィードバックループ１０４が休止状態から能動状態に変化したときは、負荷１０２の入れ替えを行った直後である可能性もあり、その場合、負荷１０２の剛性や慣性モーメントが変化している。このため、剛性値が最適値から大幅にずれている可能性がある。このような場合、図１２に示した動作例のように剛性値更新部１３１の出力値が段階的に更新されと、結果として、最終的に発振が停止するまでに要する時間が比較的長くなり、その発振が負荷１０２に与える損傷の度合いが大きくなる懸念がある。【０１１４】
図１３は、本実施の形態の制御装置のさらに他の動作例を説明するためのタイミングチャートである。図１３においては、図１２に示した動作例と比べて、発振が停止するまでに要する時間を抑制するような動作例を挙げている。前述の説明では、剛性値更新部１３１の出力値の更新する以前の値、すなわち、旧値保存部１２７の値を剛性値の初期値と同一値の「５」とみなしていたが、図１３では、フィードバックループ１０４の発振が確実に停止すると予想される所定の剛性に対応する値を設定するような方法に基づいた動作例を示している。【０１１５】
図１２の場合、時刻ｔ１においては、旧値保存部１２７の出力値が「５」であったが、図１３に示すように、ここでの動作例では、旧値保存部１２７の出力値を「３」としている。これは前述のようにフィードバックループ１０４の発振が確実に停止すると予想される所定の剛性に対応する値として「３」が設定されているためである。【０１１６】
時刻ｔ２において、発振検知部１０５がフィードバックループ１０４の発振を検出する。このとき、剛性値更新部１３１の出力値は更新する以前の値の方が低い剛性に対応する値となっている。従って、図１３に示すように、時刻ｔ３にて、剛性値更新部１３１の出力値は「５」から「３」に更新される。その結果、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が十分狭くなるので、図１３に示すように時刻ｔ３にて発振は収束し始める。【０１１７】
このように、本実施の形態では、フィードバックループが休止状態から能動状態に変化したときに、剛性値更新部は更新する以前の出力値としてフィードバックループの発振が確実に停止すると予想される所定の剛性に対応する値を設定するような構成としている。これより、剛性値の初期値が高い値において、フィードバックループ１０４が休止状態から能動状態に変化したとしても、フィードバックループ１０４に発振が生じた場合、本実施の形態の制御装置は、剛性値を所定の剛性に対応する値に更新する処理を自動的に行う。このため、フィードバックループ１０４に生ずる発振を最小限の短時間で停止させることができ、負荷１０２に与える損傷を最小限に抑えることができる。【０１１８】
図１４は、本実施の形態の制御装置のさらに他の動作例を説明するためのタイミングチャートである。次に、図１４に示すように、剛性値が初期値「３」から時刻ｔ１にて剛性値「５」に設定され、その後、時刻ｔ３までフィードバックループ１０４に発振が生じず、時刻ｔ３にて初めて発振が生じるような場合の動作例について説明する。また、ここでは、時刻ｔ１から時刻ｔ３までの時間は比較的長く、例えば５秒であったとする。【０１１９】
図１４に示すように、旧値保存部１２７の出力値は、時刻ｔ１における値が「３」である。その後、時刻ｔ１から所定の時間（例えば２秒）を経過した時刻ｔ２において、設定値更新検知部１２６は、旧値保存部１２７に対し、剛性値更新部１３１の出力値を保存するように指令する。従って、時刻ｔ２においては、旧値保存部１２７の出力値は、「３」から「５」に変わる。【０１２０】
その後、図１４に示すように、時刻ｔ３にてフィードバックループ１０４に発振が生じ、時刻ｔ４にて発振検知部１０５がこの発振を検知する。このとき、旧値保存部１２７の値が「５」であるので、剛性値更新部１３１の更新する以前の出力値は「５」であるとみなされる。従って、この後は図１１にて説明したのと同様の動作となり、剛性値更新部１３１の出力値は、時刻ｔ５にて階数「１」だけ低い剛性に対応した値である「４」となり、時刻ｔ６にてフィードバックループ１０４の発振が停止する。【０１２１】
図１４に示したように時刻ｔ１から時刻ｔ３までの比較的長い時間、フィードバックループ１０４に発振が生じていないということは、時刻ｔ１において剛性値として設定された値である「５」が、モータ１０１の負荷１０２に対応する剛性値として最適値に近い可能性が高い。従って、その後、たとえフィードバックループ１０４に発振が生じたとしても、このような場合、剛性値更新部１３１の出力値は更新する以前の値である「３」に戻すのではなく、現在の出力値よりも階数「１」だけ低い剛性に対応した値である「４」に更新して出力した方がより剛性値として最適値に近い可能性が高く、望ましいと言える。【０１２２】
このように、剛性値を更新してから所定の時間を経過後にフィードバックループ１０４に発振が生じた場合でも、本実施の形態の制御装置は、剛性値を最適値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。【０１２３】
なお、本実施の形態においては、剛性値更新部１３１の更新する以前の出力値が更新された出力値よりも低い剛性に対応する値ではなかった場合、現在の出力値よりも階数「１」だけ低い剛性に対応した値に更新して出力すると説明したが、階数「１」以上低い剛性に対応した値、例えば、階数「２」だけ低い剛性に対応した値に更新して出力した場合の方が、フィードバックループ１０４に生じた発振を素早く停止可能な場合も考えられる。従って、この場合、制御装置への要求に応じて動作を選択するのが望ましい。【０１２４】
以上のように、剛性値更新部１３１が入力された剛性値に更新して出力すると同時に発振検知部１０５がフィードバックループ１０４の発振を検知したときに、その出力値を自動的に最適値に更新するという動作を行うことで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができるサーボモータの制御装置を実現することができる。【０１２５】
（実施の形態４）
図１５は、本発明の実施の形態４におけるサーボモータの制御装置のブロック図である。実施の形態３との比較において、実施の形態４では、さらに、ノッチフィルタ１４１および中心周波数調整部１４２を備える。なお、図１５において、図８と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。【０１２６】
本実施の形態において、速度ゲイン乗算部１０８から出力された回転制御信号は、第１のノッチフィルタ１４１に供給される。ノッチフィルタ１４１は、中心周波数とする周波数を中心に所定の帯域幅の信号成分を遮断するよう動作する。さらに、ノッチフィルタ１４１は、その中心周波数を外部からの指令によって可変する機能を備えている。本実施の形態では、このように特定の周波数の成分が除去された回転制御信号がノッチフィルタ１４１から出力され、この回転制御信号に対応した駆動信号がモータ１０１に供給される。【０１２７】
図１６Ａおよび図１６Ｂは、ノッチフィルタ１４１の周波数伝達特性を示す図であり、図１６Ａは中心周波数が１００Ｈｚの場合、図１６Ｂは中心周波数が１０００Ｈｚの場合を示している。ノッチフィルタ１４１は、外部からの指令によって、遮断する中心周波数が例えば図１６Ａ、Ｂに示すように１００Ｈｚから１０００Ｈｚまでの範囲で可変できる。【０１２８】
また、中心周波数調整部１４２には、微分演算部１１１から速度検出信号ｄｖが供給される。中心周波数調整部１４２は、供給された速度検出信号ｄｖを利用して中心周波数調整信号ｄｃを生成し、ノッチフィルタ１４１に対して出力する。ノッチフィルタ１４１は、この中心周波数調整信号ｄｃによって遮断する中心周波数が調整される。【０１２９】
図１７は、中心周波数調整部１４２の詳細な構成を示すブロック図である。図１７において、微分演算部１１１から供給された速度検出信号ｄｖは、ハイパスフィルタ１４３に供給される。ハイパスフィルタ１４３は、速度検出信号ｄｖにおいて、所定の周波数よりも低い信号成分を遮断し、高い周波数の信号成分のみを抽出して出力する。ハイパスフィルタ１４３から出力された高い周波数の信号成分は、第２のノッチフィルタ１４４に供給される。ノッチフィルタ１４４は、ノッチフィルタ１４１と同一の特性と機能を備えており、外部より指令された中心周波数で所定の周波数成分を遮断して出力する。ノッチフィルタ１４４から出力された信号は、ノッチ中心周波数修正部１４５に供給される。ノッチ中心周波数修正部１４５は、ノッチフィルタ１４４から出力された信号の振幅が最も小さくなるように、ノッチフィルタ１４４の中心周波数を指令するための中心周波数調整信号ｄｃを、ノッチフィルタ１４４に出力する。そして、この中心周波数調整信号ｄｃがノッチフィルタ１４１に供給される。【０１３０】
このように構成されたノッチフィルタ１４１と中心周波数調整部１４２とは、フィードバックループ１０４に発振が生じ、速度検出信号ｄｖに振動が生じたときに、この振動の周波数成分を遮断するようにノッチフィルタ１４１の中心周波数を自動的に調整し、フィードバックループ１０４に生じた発振を停止させるように作用する。【０１３１】
次に、以上のように構成された本実施の形態のサーボモータの制御装置について、具体例を挙げて、その動作を説明する。【０１３２】
図１８は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。まず、図１８に示すように、初期値「３」とする剛性値が設定されており、時刻ｔ１にて「５」に変更される場合の動作について説明する。なお、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。また、発振検知部１０５として、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。【０１３３】
まず、図１８に示すように、時刻ｔ１までにおいては、初期値「３」とする剛性値が設定されており、このとき、速度検出信号ｄｖは振動しておらず、フィードバックループ１０４に発振は生じていない。【０１３４】
次に、時刻ｔ１になると、外部から剛性値「５」が供給され、設定値保存部１２５の値も「３」から「５」になる。図１８では、このような剛性値の変更により、時刻ｔ１を過ぎると、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が広くなり、速度検出信号ｄｖが振動を開始するような場合を示している。【０１３５】
このような速度検出信号ｄｖは、中心周波数調整部１４２にも入力される。ノッチフィルタ１４４は、この速度検出信号ｄｖの周波数を遮断するように、すなわち、ノッチフィルタ１４４の中心周波数が、この振動する速度検出信号ｄｖの周波数と一致するようにノッチ中心周波数修正部１４５はその出力信号を調整して出力する。そして、中心周波数調整部１４２の出力する中心周波数調整信号ｄｃは、ノッチフィルタ１４１に対し、その中心周波数をノッチフィルタ１４４の中心周波数と一致させるように指令するため、フィードバックループ１０４の発振を停止させるように作用する。【０１３６】
その結果、時刻ｔ２において、フィードバックループ１０４の発振が停止すると、アップカウントしていたカウンタは、時刻ｔ２にてダウンカウントを開始する。すなわち、カウンタは、発振継続判定部１２２が発振の発生を判定する所定の値に到達する前にダウンカウントを開始するため、発振継続判定部１２２は、発振を検出したとするＨレベルの値を出力することなく、Ｌレベルの値を出力し続けている。【０１３７】
よって、図１８に示すように、剛性値更新部１３１の出力値は、時刻ｔ２以降も剛性値「５」を維持し続ける。【０１３８】
一方、中心周波数調整信号ｄｃによってノッチフィルタ１４１の中心周波数を調整した結果、フィードバックループ１０４の発振が停止しない場合もあり得る。例えば、発振の周波数がノッチフィルタ１４１の中心周波数の可変範囲から外れているような場合、あるいは速度ゲインＫｖの値が大き過ぎるような場合である。このような場合は、実施の形態３において図１０で示したように、発振継続判定部１２２は、Ｈレベルの値を出力し、剛性値更新部１３１の出力値を剛性値「５」から再び剛性値「３」に戻すことによって、フィードバックループ１０４の発振を停止させることになる。【０１３９】
なお、前述のように発振継続判定部１２２内部のカウンタの値が所定の値に達するには所定の時間が必要である。この所定の時間を、中心周波数調整部１４２がノッチフィルタ１４１の中心周波数を調整するのに要する時間（例えば２００ｍｓｅｃ）よりも長くすることによって、中心周波数調整部１４２がノッチフィルタ１４１の中心周波数を調整している間、剛性値更新部１３１がその出力値を更新しないようにすることができる。これによって、ノッチフィルタ１４１の作用によって発振が停止した場合は、剛性値更新部１３１の出力値は現在の剛性値を維持し、ノッチフィルタ１４１の作用によって発振が停止しなかった場合は、剛性値更新部１３１の出力値は現在の剛性値から再び更新する以前の剛性値に戻し、このようにして、フィードバックループ１０４の発振を停止させるという動作が可能である。【０１４０】
また、この場合、剛性値「３」よりも剛性値「５」の方が、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が広いので、速度指令に対する応答性が良く望ましい。すなわち、実施の形態３に比べて本実施の形態の方が、高い剛性値を維持する可能性があるため、速度指令に対する応答性も望ましいか、もしくは同等の応答性を示すことになる。【０１４１】
また、本実施の形態においては、前述のようにノッチフィルタ１４１の中心周波数を調整するのに要する時間を一定時間として見積もったが、中心周波数を調整する処理を観測し、この処理が見積もった時間よりも早期に終了した場合は、見積もった時間まで待たずに、剛性値更新部１３１の出力値を現在の剛性値から再び更新する以前の剛性値に戻してフィードバックループ１０４の発振を停止させるという動作も可能である。この方がフィードバックループ１０４の発振をより早期に停止させることができるので望ましい。【０１４２】
このようにフィードバックループ１０４の発振を抑制するためのノッチフィルタ１４１とその中心周波数を調整する中心周波数調整部１４２とを備えた場合においても、フィードバックループ１０４に発振が生じた場合、本実施の形態の制御装置は、剛性値を現在の値のまま維持するか、もしくは更新する以前の値に戻すかの処理を適切かつ自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。【０１４３】
（実施の形態５）
図１９は、本発明の実施の形態５におけるサーボモータの制御装置のブロック図である。実施の形態３との比較において、実施の形態５では、モータ１０１を含めた負荷１０２の慣性モーメントであるイナーシャＪを推定および設定する機能を有したことを特徴としている。このような機能を実現するため、本実施の形態における制御装置は、実施の形態３で説明した構成に加えて、さらに、イナーシャ設定部１５２、イナーシャ推定部１５３および微分演算部１５４を備える。なお、図１９において、図８と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。【０１４４】
図１９において、第１の微分演算部１１１から出力された速度検出信号ｄｖは、第２の微分演算部１５４に供給される。微分演算部１５４は、供給された速度検出信号ｄｖに対してさらに微分演算を行い、モータ１０１の回転加速度に対応した加速度検出信号を出力する。加速度検出信号は、イナーシャ推定部１５３に供給される。【０１４５】
イナーシャ推定部１５３には、加速度検出信号とともに、速度ゲイン乗算部１０８から出力されたトルク指令に対応する回転制御信号も供給される。イナーシャ推定部１５３は、これら２種類の信号に基づき、モータ１０１を含む負荷１０２の慣性モーメントを推定し、イナーシャ推定値として出力する。【０１４６】
イナーシャ設定部１５２には、イナーシャ推定値とともに、外部の上位器などから設定されるイナーシャＪの設定値であるイナーシャ値が供給される。イナーシャ設定部１５２は、イナーシャ推定部１５３からのイナーシャ推定値が有効なときは、そのイナーシャ推定値をイナーシャ設定値として出力する。また、イナーシャ設定部１５２は、イナーシャ推定値が有効でないときには、外部からのイナーシャＪ値をイナーシャ設定値として出力する。なお、このイナーシャ設定値は、外部の上位器などに通知され、外部に上位器などにおいて表示されるような構成としてもよい。【０１４７】
ここで、イナーシャ推定部１５３がモータ１０１を含む負荷１０２の慣性モーメントを推定可能なのは、次の原理に基づく。すなわち、モータ１０１および負荷１０２の慣性モーメントをＪL、モータ１０１の回転加速度をβ、サーボモータ１０１に与えられるトルクをＴで表したとき、物理法則として、Ｔ＝ＪL×βの関係が成り立つ。イナーシャ推定部１５３は、このような原理に基づき、回転加速度βに対応した加速度検出信号とトルクＴに対応した回転制御信号との２種類の信号から慣性モーメントＪLを推定している。より具体的には、逐次最小自乗法などの手法を用いてイナーシャを推定することが可能である。【０１４８】
また、イナーシャ推定部１５３は、動作原理上、モータ１０１がある程度以上の加減速を伴ってある程度以上の時間、回転しなければモータ１０１を含む負荷１０２の慣性モーメントの値を正確に推定することはできない。従って、イナーシャ推定部１５３がモータ１０１を含む負荷１０２の慣性モーメントの値を推定するまでの間は、イナーシャ推定値の代わりに、仮の値としてイナーシャ初期設定値を用いる必要がある。そのため、本実施の形態では、イナーシャ設定部１５２が、イナーシャ推定値が有効となる以前は、外部からのイナーシャＪの設定値をイナーシャ初期設定値として出力し、イナーシャ推定値が有効となった後は、その値をイナーシャ設定値として出力するというような構成としている。【０１４９】
また、このような構成とした場合、イナーシャ初期設定値としては、モータ１０１を含む負荷１０２の慣性モーメントとして、実際の値に近い値と思われる値が設定されることが一般的である。ところが、イナーシャ初期設定値と実際の慣性モーメントの値あるいはイナーシャ推定値にずれが生じている場合があり、その場合は、イナーシャ推定値が有効となる前後において、速度ゲインＫｖの値が変化することになる。【０１５０】
例えば、イナーシャ初期設定値が実際の慣性モーメントの値に対して１／２の値であり、イナーシャ推定値が実際の慣性モーメントの値に等しい値となったとする。この場合、イナーシャ推定値が有効となる前後において、速度ゲインＫｖの値が２倍に増加することになる。このように、イナーシャ初期設定値がイナーシャ推定値よりも小さい値であった場合、速度ゲインＫｖの値が増加することになる。イナーシャ推定値が有効となる前後において、実際の慣性モーメントの値に変化がないとすると、速度ゲインＫｖの値が増加した分だけ、フィードバックループ１０４の実際の周波数帯域幅が増加することになる。従って、イナーシャ推定値が有効となった後にフィードバックループ１０４に発振が生じる可能性がある。【０１５１】
このため、本実施の形態においても、発振検知部１０５、パラメータ操作部１０６および剛性値更新部１３１を備えた構成とし、これにより、フィードバックループ１０４に生じた発振を自動的かつ速やかに停止させている。【０１５２】
以上のように構成されたサーボモータの制御装置について、具体例を挙げて、その動作を説明する。【０１５３】
図２０は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。【０１５４】
図２０では、剛性値更新部１３１の出力値とともに、イナーシャ設定値と実際の慣性モーメントの値の比、およびフィードバックループ１０４の実際の周波数帯域幅の値（単位はＨｚ）などを示している。フィードバックループ１０４の実際の周波数帯域幅ｆｓｒを示す値は、イナーシャ設定値をＪｓ、実際の慣性モーメントの値をＪｒとすると、周波数帯域設定値ｆｓに対して、ｆｓｒ＝ｆｓ×（Ｊｓ／Ｊｒ）となる。また、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。発振検知部１０５としては、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。【０１５５】
図２０において、時刻ｔ１以前では、イナーシャ推定値が有効でなく、イナーシャ初期設定値、すなわちこの時点のイナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒの０．４倍となるような一例を挙げている。周波数帯域設定値ｆｓの値は、表５から剛性値「４」に対して１００（Ｈｚ）であるから、実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１００×０．４＝４０（Ｈｚ）となる。【０１５６】
時刻ｔ１で、イナーシャ推定値が有効となり、イナーシャ設定部の出力値と実際の慣性モーメントの値が等しい、すなわち両者の比が１．０になる。この場合は、実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１００×１．０＝１００（Ｈｚ）となる。また、このように、フィードバックループ１０４の実際の周波数帯域幅が広くなったので、時刻ｔ１においてフィードバックループ１０４に発振が生じる。【０１５７】
このような発振が生じると、図２０に示すように、発振検知部１０５における発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ２において、発振検知部１０５からパラメータ操作部１０６へと、発振を検知したとする発振検知信号（Ｈレベル）が通知される。【０１５８】
パラメータ操作部１０６は、このような発振検知信号（Ｈレベル）の通知を受け、剛性値更新部１３１に対して次のような操作指示を行う。すなわち、剛性値更新部１３１は、この操作指示を受けて、出力する剛性値を現在の剛性値「４」から所定の階数だけ低い（この場合は階数＝「２」）剛性値「２」を時刻ｔ３で出力する。【０１５９】
その結果、周波数帯域設定値ｆｓが狭くなり、図２０に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒも、ｆｓｒ＝３０×１．０＝３０（Ｈｚ）となる。これによって、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ４にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。すなわち、最終的には図２０に示す通り、内部設定値としては剛性値「２」へと変更され、外部から剛性値として「２」を入力したのと同様の状態に戻ることになる。【０１６０】
すなわち、本実施の形態の制御装置は、イナーシャ推定値が有効となった後に、発振検知信号が発振を検知したことを示すとき、パラメータ操作部１０６の操作指示に応じて、剛性値更新部１３１は、剛性値を現在の値よりも所定の階数だけ低い剛性に対応する値に切り替え、この切り替えた値をパラメータ設定部１３０に供給する構成である。【０１６１】
このようにイナーシャ設定部１５２の出力するイナーシャ設定値が増加することにより、フィードバックループ１０４の実際の周波数帯域幅が増大し、フィードバックループ１０４に発振が生じた場合、本実施の形態の制御装置は、剛性値を所定の階数だけ低い剛性に対応する値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、負荷１０２に与える損傷を最小限に抑えることができる。【０１６２】
なお、ここでの所定の階数は、その値が小さ過ぎればフィードバックループ１０４に生じた発振が停止するまで前述の一連の動作を繰り返すために時間が掛かり、逆にその値が大き過ぎればフィードバックループ１０４に生じた発振が短時間で確実に停止する可能性が高くなる一方、その後、剛性値を外部より手動にて再調整する必要が生じるため、両者の利点と欠点を考慮し適切な値を設定することが必要である。【０１６３】
図２１は、本実施の形態の制御装置の他の動作例を説明するためのタイミングチャートである。次に、図２１に示すように、初期値「３」とする剛性値からスタートした場合の動作について説明する。また、図２０の場合と同様に、時刻ｔ１以前では、イナーシャ推定値が有効でなく、イナーシャ初期設定値すなわちこの時点のイナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒの０．４倍であるような場合を示している。周波数帯域設定値ｆｓの値は、表５から剛性値「３」に対して６０（Ｈｚ）であるから、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝６０×０．４＝２４（Ｈｚ）となる。【０１６４】
時刻ｔ１になると、イナーシャ推定部１５３の出力値が有効となり、イナーシャ設定部１５２の出力値であるイナーシャ設定値と実際の慣性モーメントの値が等しい、すなわち両者の比が１．０になる。この場合は、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝６０×１．０＝６０（Ｈｚ）となる。図２０のように剛性値が「４」からスタートした場合では、時刻ｔ１にてすぐにフィードバックループ１０４に発振が生じたが、この場合は、実際の周波数帯域幅ｆｓｒが、ｆｓｒ＝６０（Ｈｚ）と比較的狭く、発振が励起されるぎりぎりのレベルである。このため、時刻ｔ１にて発振は生じず、時刻ｔ２においてフィードバックループ１０４に発振が生じる。そして、この場合、時刻ｔ１から時刻ｔ２までの時間が所定の時間（例えば１秒）よりも長かったとする。従って、同様に時刻ｔ３にて発振が検知されるが、剛性値更新部１３１の出力値は時刻ｔ４においては、スタート時の剛性値「３」に対して前述の階数「２」ではなく階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される。【０１６５】
その結果、周波数帯域設定値ｆｓが低くなり、図２１に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒも、ｆｓｒ＝３０×１．０＝３０（Ｈｚ）となり、発振は収束する。このように、イナーシャ推定値が有効となってからフィードバックループ１０４に発振が生じるまでの時間が長いということは、発振が停止する剛性値はスタート時の剛性値「３」に対して、大きく乖離していないということを意味する。従って、この場合、スタート時の剛性値「３」に対して、階数「２」だけ低い剛性に対応する値である剛性値「１」に更新されるよりも、階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される方が望ましい結果となる。なぜなら、剛性値「１」に更新された場合は、最適値である剛性値「２」でフィードバックループ１０４を動作させるためには、剛性値「２」を外部から再度、手動により設定する必要があるからである。【０１６６】
このようにイナーシャ推定部１５３の出力が有効となったときから所定の時間を超えてフィードバックループ１０４の発振を検知したときは、剛性値更新部１３１がその出力値を現在の出力値よりも階数「１」だけ低い剛性に対応する値に切り替える処理を行うことで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ剛性値更新部１３１の出力値が状況に応じてより望ましい剛性値に設定されることになる。【０１６７】
なお、ここではイナーシャ推定部１５３の出力が有効となったときからフィードバックループ１０４の発振を検知したときまでの時間が所定の時間を超えているかどうかで動作を切り替えた。これに代えて、例えば、所定の時間をＴ１、Ｔ２、・・・（Ｔ１＜Ｔ２）と複数設け、時間Ｔ１を超えていなければ階数Ｋ０だけ低い剛性に対応する剛性値に更新し、時間Ｔ１を超えてかつ時間Ｔ２を超えていなければ階数Ｋ１だけ低い剛性に対応する剛性値に更新し、時間Ｔ２を超えていれば階数Ｋ２だけ低い剛性に対応する剛性値に更新し、階数がＫ０＞Ｋ１＞Ｋ２となるようにする。すなわちイナーシャ推定部１５３の出力が有効となったときからフィードバックループ１０４の発振を検知したときまでの時間の増大に伴って順次階数を小さく設定することで、よりきめ細かく最適な剛性値の設定が可能となる。【０１６８】
このように、本実施の形態の制御装置において、イナーシャ推定値が有効となったときから所定の時間以内に、発振検知信号が発振を検知したことを示すとき、剛性値更新部１３１は、その出力値を現在の出力値よりも所定の第１の階数だけ低い剛性に対応する値に切り替える。そして、イナーシャ推定値が有効となったときから所定の時間以降に、発振検知信号が発振を検知したことを示すとき、剛性値更新部１３１は、その出力値を現在の出力値よりも所定の第２の階数だけ低い剛性に対応する値に切り替え、第１の階数は第２の階数よりも大きな値とするような構成としてもよい。【０１６９】
（実施の形態６）
図２２は、本発明の実施の形態６におけるサーボモータの制御装置のブロック図である。実施の形態５との比較において、実施の形態６では、さらに、安定剛性値算出部１５７を備える。なお、図２２において、図８と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。また、本実施の形態では、乗算部１１５により、イナーシャ設定部１５２からのイナーシャ設定値と周波数帯域設定値を乗算して速度ゲインとして出力する速度ゲイン算出部が構成されるとして説明する。【０１７０】
図２２において、安定剛性値算出部１５７には、外部からのイナーシャ初期設定値、イナーシャ設定部１５２が出力するイナーシャ設定値、乗算部１１５の出力値および剛性値更新部１３１が出力する剛性値が供給される。安定剛性値算出部１５７は、これらの供給された値から安定剛性値を算出し、これを剛性値更新部１３１に供給する。【０１７１】
この安定剛性値は、イナーシャ推定部１５３の出力が有効となる前後において、乗算部１１５、すなわち速度ゲイン算出部の出力値が増加しない範囲で、イナーシャ推定部１５３の出力が有効となった後の剛性値として最も高い剛性に対応する値という定義に従って算出される。実際には、イナーシャ初期設定値をＪｉ、イナーシャ推定値が有効となった後のイナーシャ設定値をＪｓ、現在の剛性値に対応する周波数帯域設定値をｆｓとすると、周波数帯域設定値がｆｓ×（Ｊｉ／Ｊｓ）で算出される周波数帯域幅の値を超えないという条件の下での、最も高い剛性に対応する剛性値という定義に従って算出しても等価である。この安定剛性値は、フィードバックループ１０４に生じた発振を確実に停止させることが可能であり、かつ最も高い剛性に対応する剛性値を意味しており、剛性値更新部１３１の出力値を安定剛性値に切り替えることで発振を確実に停止することが可能となる。【０１７２】
このように、安定剛性値算出部１５７を備えた本実施の形態における制御装置の一動作例について説明する。なお、ここでは、本制御装置の動作について、図２０および図２１を用いて説明する。【０１７３】
図２０において、時刻ｔ１で、イナーシャ推定値が有効となり、イナーシャ設定部の出力値と実際の慣性モーメントの値が等しい、すなわち両者の比が１．０になる。このとき、フィードバックループ１０４の実際の周波数帯域幅が広くなったので、時刻ｔ１においてフィードバックループ１０４に発振が生じる。その結果、図２０に示すように、発振検知部１０５における発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ２において、発振検知部１０５からパラメータ操作部１０６へと、発振を検知したとする発振検知信号（Ｈレベル）が通知される。【０１７４】
このとき、前述の周波数帯域幅ｆｓ×（Ｊｉ／Ｊｓ）を計算すると、ｆｓ＝１００［Ｈｚ］、Ｊｉ／Ｊｓ＝（Ｊｉ／Ｊｒ）／（Ｊｓ／Ｊｒ）＝０．４／１．０＝０．４であるので、ｆｓ×（Ｊｉ／Ｊｓ）＝１００×０．４＝４０［Ｈｚ］となる。周波数帯域設定値ｆｓがこれを超えないという条件の下での最も高い剛性に対応する剛性値は、表５から剛性値「２」となる。すなわち、この時、安定剛性値算出部１５７が出力する安定剛性値は剛性値「２」である。従って、剛性値更新部１３１は、パラメータ操作部１０６から、発振が発生したときの操作指示を受け、出力する剛性値を現在の剛性値「４」から安定剛性値である剛性値「２」に時刻ｔ３において切り替えて出力する。【０１７５】
その結果、周波数帯域設定値ｆｓが低くなり、図２０に示すように、発振は収束し、カウンタの値も減少する。この後、時刻ｔ４にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。また、剛性値更新部１３１の出力値は設定値保存部１２５に入力され、保存されている剛性値が「４」から「２」に書き換えられる。すなわち、外部から剛性値として「２」を入力したのと同様の状態となる。【０１７６】
このようにイナーシャ設定部１５２の出力するイナーシャ設定値が増加することにより、フィードバックループ１０４の実際の周波数帯域幅が増大し、フィードバックループ１０４に発振が生じた場合、発振検知部１０５と剛性値更新部１３１は、安定剛性値算出部１５７の出力する安定剛性値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、負荷１０２に与える損傷を最小限に抑えることができる。【０１７７】
次に、図２１に示したように剛性値が３からスタートした場合の動作について説明する。【０１７８】
図２１において、時刻ｔ１以前では、イナーシャ推定値が有効でなく、イナーシャ初期設定値すなわちこの時点のイナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒの０．４倍であるような場合を示している。さらに、時刻ｔ１で、イナーシャ推定値が有効となり、イナーシャ設定値と実際の慣性モーメントの値が等しい、すなわち両者の比が１．０になる。【０１７９】
このとき、前述の周波数帯域ｆｓ×（Ｊｉ／Ｊｓ）を計算すると、ｆｓ＝６０［Ｈｚ］、Ｊｉ／Ｊｓ＝（Ｊｉ／Ｊｒ）／（Ｊｓ／Ｊｒ）＝０．４／１．０＝０．４であるので、ｆｓ×（Ｊｉ／Ｊｓ）＝６０×０．４＝２４［Ｈｚ］となる。周波数帯域設定値ｆｓがこれを超えないという条件の下での最も高い剛性に対応する剛性値は、表５から剛性値「１」となる。すなわち、このとき、安定剛性値算出部１５７が出力する安定剛性値は剛性値「１」である。【０１８０】
剛性値が「４」からスタートした場合では時刻ｔ１にてすぐにフィードバックループ１０４に発振が生じたが、この場合は、発振が励起されるぎりぎりのレベルである。このため、時刻ｔ１にて発振は生じず、時刻ｔ２において図２１のようにフィードバックループ１０４に発振が生じる。そして、この場合、時刻ｔ１から時刻ｔ２までの時間が所定の時間（例えば１秒）よりも長かったとする。従って、同様に時刻ｔ３にて発振が検知されるが、剛性値更新部１３１の出力値は時刻ｔ４においては、スタート時の剛性値「３」に対して前述の安定剛性値である剛性値「１」ではなく階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される。【０１８１】
その結果、周波数帯域設定値ｆｓが低くなり、図２１に示すように発振は収束する。このようにイナーシャ推定部１５３の出力値が有効となってからフィードバックループ１０４に発振が生じるまでの時間が長いということは、発振が停止する剛性値はスタート時の剛性値「３」に対して、大きく乖離していないということを意味する。従って、この場合、スタート時の剛性値「３」に対して、安定剛性値である剛性値「１」に更新されるよりも、階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される方が望ましい結果となる。【０１８２】
このようにイナーシャ推定部１５３の出力が有効となったときから所定の時間を超えてフィードバックループ１０４の発振を検知したときは、剛性値更新部１３１がその出力値を安定剛性値の値に関わらず、現在の出力値よりも階数「１」だけ低い剛性に対応する値に切り替える処理を行うことで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ剛性値更新部１３１の出力値が状況に応じてより望ましい剛性値に設定されることになる。【０１８３】
図２３は、本制御装置の他の動作例を説明するためのタイミングチャートである。次に、図２３に示すように剛性値が「３」からスタートし、イナーシャ初期設定値すなわち、この時点のイナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒの１．１倍であった場合の動作について説明する。【０１８４】
時刻ｔ１において、イナーシャ設定部の出力値と実際の慣性モーメントの値の比が１．０になると、前述の周波数帯域ｆｓ×（Ｊｉ／Ｊｓ）は、ｆｓ＝６０［Ｈｚ］、Ｊｉ／Ｊｓ＝（Ｊｉ／Ｊｒ）／（Ｊｓ／Ｊｒ）＝１．１／１．０＝１．１であるので、ｆｓ×（Ｊｉ／Ｊｓ）＝６０×１．１＝６６［Ｈｚ］となる。周波数帯域設定値ｆｓがこれを超えないという条件の下での最も高い剛性に対応する剛性値は、表５から剛性値「３」となる。すなわち、このとき、安定剛性値算出部１５７が出力する安定剛性値は剛性値「３」である。【０１８５】
この場合は、発振が励起されるぎりぎりのレベルであるため、時刻ｔ１にて発振は生じず、時刻ｔ２においてフィードバックループ１０４に発振が生じる。そして、この場合、時刻ｔ１から時刻ｔ２までの時間が所定の時間（例えば１秒）よりも短かったとする。時刻ｔ３にて発振が検知されるが、剛性値更新部１３１の出力値は通常であれば時刻ｔ４において、前述の安定剛性値である剛性値「３」に更新されるが、この場合、安定剛性値が現在より低い剛性に対応する値ではない。従って、剛性値更新部１３１の出力値は時刻ｔ４において、安定剛性値である剛性値「３」ではなく、階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される。【０１８６】
その結果、周波数帯域設定値ｆｓが低くなり、発振は収束する。このようにイナーシャ初期設定値がイナーシャ推定部１５３の出力値よりも大きかった場合、安定剛性値は、現在の剛性と同じか、または高い剛性に対応する値となってしまう。その場合、安定剛性値である剛性値「３」に更新されるよりも、階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される方が望ましい結果となる。【０１８７】
このように、イナーシャ推定部１５３の出力が有効となったときからフィードバックループ１０４の発振を検知するまでの時間が所定の時間を超えているかどうかに関わらず、安定剛性値算出部１５７が出力する安定剛性値が現在より低い剛性に対応する値でなければ、剛性値更新部１３１がその出力値を、現在の出力値よりも階数「１」だけ低い剛性に対応する値に切り替える処理を行う。このような構成とすることで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ剛性値更新部１３１の出力値が状況に応じてより望ましい剛性値に設定されることになる。【０１８８】
以上のように、本実施の形態におけるサーボモータの制御装置は、イナーシャ推定値が有効となったとき以降の速度ゲイン算出部の出力値がイナーシャ推定値が有効となったとき以前の速度ゲイン算出部の出力値の値以下となる条件を満たし、イナーシャ推定値が有効となったとき以降の剛性値として、最も高い剛性に対応する値を安定剛性値として算出する安定剛性値算出部１５７を有しており、イナーシャ推定値が有効となったときから所定の時間以内に、発振検知信号が発振を検知したことを示すとき、剛性値更新部１３１は、その出力値を安定剛性値算出部１５７の出力値に切り替え、イナーシャ推定値が有効となったときから所定の時間以降に、発振検知信号が発振を検知したことを示すとき、剛性値更新部１３１は、その出力値を現在の出力値よりも所定の階数だけ低い剛性に対応する値に切り替える構成としている。【０１８９】
また、本実施の形態の制御装置は、イナーシャ推定値が有効となったときから所定の時間以内に、発振検知信号が発振を検知したことを示すとき、安定剛性値が現在より低い剛性に対応する値である場合は、剛性値更新部１３１は、その出力値を安定剛性値算出部１５７の出力値に切り替え、イナーシャ推定値が有効となったときから所定の時間以降に発振検知信号が発振を検知したことを示す場合、または、イナーシャ推定値が有効となったときから所定の時間以内に発振検知信号が発振を検知したことを示す場合であって、安定剛性値が現在の剛性値以上の剛性に対応する場合に、剛性値更新部１３１が、その出力値を現在の出力値よりも所定の階数だけ低い剛性に対応する値に切り替える構成としてもよい。【０１９０】
このように、本実施の形態の制御装置によれば、剛性値更新部１３１が入力された剛性値に更新して出力するとともに発振検知部１０５がフィードバックループ１０４の発振を検知したときに、その出力値を自動的に最適値に更新するという動作を行うことで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、外部からの剛性値の再調整の必要性が少ないサーボモータの制御装置を実現することができる。【０１９１】
（実施の形態７）
図２４は、本発明の実施の形態７におけるサーボモータの制御装置のブロック図である。実施の形態５との比較において、実施の形態７では、さらに剛性値判定部１６１を備える。なお、図２４において、図１９と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。【０１９２】
図２４において、剛性値判定部１６１は、剛性値更新部１３１の出力値を入力し、その値が所定の剛性値に等しい値または所定の剛性値よりも低い剛性に対応する値であるかどうかを判断する。また、発振検知部１０５の出力する発振検知信号を入力し、フィードバックループ１０４が発振しているかどうかを判断する。そして、剛性値判定部１６１は、剛性値更新部１３１の出力値が所定の剛性値に等しい値または所定の剛性値よりも低い剛性に対応する値であり、かつフィードバックループ１０４が発振していると判断すればイナーシャ低減を指令するＨレベル、そうでなければＬレベルの２値のイナーシャ低減指令信号として、イナーシャ設定部１５２に対して出力する。【０１９３】
以上のように構成されたサーボモータの制御装置について、具体例を挙げて、その動作を説明する。また、本実施の形態においても、実施の形態５と同様に、イナーシャ初期設定値が実際の慣性モーメントの値よりも大きな値であった場合や、負荷１０２の慣性モーメントが急変した場合など、速度ゲインＫｖの値が増加し、フィードバックループ１０４の実際の周波数帯域幅が増加したときに生じる発振を、図２４に示した構成により、自動的に確実に発振を停止させるような動作について説明する。【０１９４】
図２５は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。【０１９５】
図２５では、剛性値更新部１３１の出力値とともに、イナーシャ設定値と実際の慣性モーメントの値の比、およびフィードバックループ１０４の実際の周波数帯域幅ｆｓｒの値（単位はＨｚ）などを示している。また、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。発振検知部１０５としては、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。【０１９６】
図２５において、時刻ｔ１以前では、イナーシャ推定部１５３の出力値であるイナーシャ推定値が有効であり、イナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒに等しい、すなわち、１．０倍となるような一例を挙げている。周波数帯域設定値ｆｓの値は、表５から剛性値「１」に対して１０（Ｈｚ）であるから、実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１０×１．０＝１０（Ｈｚ）となる。【０１９７】
また、時刻ｔ１で、負荷１０２の慣性モーメントがそれまでの１／８に急変し、イナーシャ設定部１５２の出力値であるイナーシャ設定値が実際の慣性モーメントの値の８倍になる。この場合は、実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１０×８＝８０（Ｈｚ）となる。また、このように、フィードバックループ１０４の実際の周波数帯域幅が広くなったので、時刻ｔ１においてフィードバックループ１０４に発振が生じる。【０１９８】
このような発振が生じると、図２５に示すように、発振検知部１０５における発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ２において、発振検知部１０５からは、発振を検知したとする発振検知信号（Ｈレベル）が出力される。【０１９９】
剛性値判定部１６１は、この発振検知信号を受け、また、このとき、剛性値更新部１３１の出力値は所定の剛性値である剛性値「０」に等しい。このため、剛性値判定部１６１は、図２５に示すように、時刻ｔ２にてイナーシャ低減指令信号として、イナーシャ低減を指令するＨレベルの値を、イナーシャ設定部１５２に対して出力する。【０２００】
イナーシャ設定部１５２は、このイナーシャ低減指令信号を受けて、イナーシャ設定値を現在の出力値に対し、１／２に低減した値に切り替えて、時刻ｔ３にて出力する。従って、図２５に示すように、時刻ｔ３において、イナーシャ設定値は実際の慣性モーメントの値の８倍から４倍に変化する。【０２０１】
その結果、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒの値も、ｆｓｒ＝１０×４＝４０（Ｈｚ）となる。これによって、実際の周波数帯域幅ｆｓｒの値が十分に下がったので、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ４にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。【０２０２】
このように、イナーシャ設定部１５２の出力するイナーシャ設定値が見かけ上、相対的に増加することにより、フィードバックループ１０４の実際の周波数帯域幅が増大し、フィードバックループ１０４に発振が生じたとしても、剛性値判定部１６１は、剛性値更新部１３１の出力値を判断しつつ、イナーシャ設定値を所定の比率で低減する処理を自動的に行う。このため、本実施の形態の制御装置によれば、フィードバックループ１０４に生ずる発振を確実に停止させることができ、負荷１０２に与える損傷を小さく抑えることができる。【０２０３】
なお、ここでは、イナーシャ設定部１５２がイナーシャ低減指令信号を受けたとき、出力するイナーシャ設定値を現在の出力値に対し１／２に低減した値に切り替えて出力するような例を挙げたが、１／２でなく、他の比率に低減した値に切り替えて出力してもよい。この場合、低減する比率が高ければイナーシャ設定値が実際の慣性モーメントよりも低くなり過ぎてしまう可能性があり、逆に低減する比率が低ければ発振が停止するまでに時間が掛かる可能性がある。従って、両者の長所短所を考慮の上で低減する比率を決定すればよい。【０２０４】
また、ここでは、所定の剛性値を、剛性値「０」とした例を挙げた。基本的には所定の剛性値として、最も低い剛性に対応する値を選択するのが普通であるが、必ずしも最も低い剛性に対応する値でなくてもよい。すなわち、例えば、この場合であれば、剛性値「１」としてもよい。ただし、この所定の剛性値は、イナーシャ設定値が実際の慣性モーメントに等しい値であるとき、フィードバックループ１０４に生ずる発振が確実に停止する剛性値であることが必要である。【０２０５】
図２６は、本実施の形態の制御装置の他の動作例を説明するためのタイミングチャートである。次に、図２６に示すように、剛性値が「１」からスタートした場合の動作について説明する。図２６では、イナーシャ設定部１５２に対するイナーシャ初期設定値として実際の慣性モーメントの８倍の値が設定されているような場合を示している。この場合、周波数帯域設定値ｆｓの値は、表５から剛性値１に対して２０（Ｈｚ）であるから、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝２０×８＝１６０（Ｈｚ）となる。また、図２６では、時刻ｔ１でサーボオンとなるが、実際の周波数帯域幅ｆｓｒが大きいので、時刻ｔ１において、フィードバックループ１０４に発振が生じたような場合を示している。すなわち、図２６に示すように、発振継続判定部１２２内部のカウンタの値は時刻ｔ２にて所定の値以上になるので、発振検知信号は、時刻ｔ２にて発振の発生を示すＨレベルとなる。【０２０６】
剛性値判定部１６１は、この発振検知信号を受け、このとき、剛性値更新部１３１の出力値は剛性値「１」であり、所定の剛性値である剛性値「０」よりも高い剛性に対応する値であるので、イナーシャ低減指令信号として、Ｌレベルの値を保持し、イナーシャ低減を指令していない状態となっている。【０２０７】
一方、剛性値更新部１３１は、この発振検知信号による発振の発生を示すＨレベルの値を受けて、出力する剛性値を現在の剛性値「１」から所定の階数だけ低い剛性値「０」を時刻ｔ３にて出力する。【０２０８】
これにより、周波数帯域設定値ｆｓが低くなり、図２６に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１０×８＝８０（Ｈｚ）となる。ところが、発振が停止するほどには低くないので、図２６に示すように、時刻ｔ３以降も発振は収束することなく継続してしまっている。これは、イナーシャ設定部１５２の出力するイナーシャ設定値、すなわちイナーシャ初期設定値が実際の慣性モーメントの値よりも大幅に大きいことが原因である。【０２０９】
しかし、剛性値更新部１３１の出力値は、所定の剛性値である剛性値「０」に等しくなったので、剛性値判定部１６１は、図２６に示すように、時刻ｔ４にてイナーシャ低減指令信号として、イナーシャ低減を指令するＨレベルの値をイナーシャ設定部１５２に対して出力する。イナーシャ設定部１５２は、このイナーシャ低減指令信号を受けて、出力するイナーシャ設定値を現在の出力値に対し１／２に低減した値に切り替えて時刻ｔ５にて出力する。従って、時刻ｔ５において、イナーシャ設定部１５２の出力値は実際の慣性モーメントの値の８倍から４倍に変化する。【０２１０】
その結果、図２６に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒも、ｆｓｒ＝１０×４＝４０（Ｈｚ）となる。このように、実際の周波数帯域幅ｆｓｒが十分に下がったので、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ６にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。【０２１１】
このようにイナーシャ初期設定値が実際の慣性モーメントよりも大きな値であったことが原因でフィードバックループ１０４に発振が生じたとしても、剛性値判定部１６１は、剛性値更新部１３１の出力値を判断しつつ、イナーシャ設定部１５２の出力値を所定の比率で低減する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を確実に停止させることができ、負荷１０２に与える損傷を小さく抑えることができる。【０２１２】
なお、イナーシャ設定部１５２が出力するイナーシャ設定値を現在の出力値に対し１／２に低減した値に切り替えて出力した結果、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒが十分に低い値にならず、フィードバックループ１０４に生じた発振が停止しなかったとしても、前述の一連の処理を発振が停止するまで繰り返すことにより確実に発振を停止させることが可能である。ただし、所定の剛性値に対応した周波数帯域設定値ｆｓが十分に低い周波数であることが必要である。【０２１３】
（実施の形態８）
図２７は、本発明の実施の形態８におけるサーボモータの制御装置のブロック図である。なお、図２７において、図２４と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。【０２１４】
実施の形態７との比較において、実施の形態８では、剛性値判定部１６１を備えておらず、発振検知部１０５の発振検知信号は、直接にイナーシャ設定部１５２に供給される。また、図２４においては、発振検知信号が剛性値更新部１３１に入力されていたが、図２７においては、発振検知信号が剛性値更新部１３１に入力されることはない。【０２１５】
以上のように構成されたサーボモータの制御装置について、具体例を挙げて、その動作を説明する。なお、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。発振検知部１０５としては、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。【０２１６】
図２８は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。図２８に示すように、剛性値が「１」からスタートし、このとき、イナーシャ設定部１５２に対するイナーシャ初期設定値として実際の慣性モーメントの８倍の値が設定されている場合の動作について説明する。この場合、周波数帯域設定値ｆｓの値は、表５から剛性値「１」に対して２０（Ｈｚ）であるから、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝２０×８＝１６０（Ｈｚ）となる。また、図２８では、時刻ｔ１でサーボオンとなるが、実際の周波数帯域幅ｆｓｒが大きいので、時刻ｔ１において、フィードバックループ１０４に発振が生じたような場合を示している。すなわち、図２８に示すように、発振継続判定部１２２内部のカウンタの値は時刻ｔ２にて所定の値以上になるので、発振検知信号は、時刻ｔ２にて発振の発生を示すＨレベルとなる。【０２１７】
イナーシャ設定部１５２は、この発振検知信号を受けて、その出力値を現在の出力値の１／２に低減した値に時刻ｔ３にて切り替える。従って、図２８に示すように、時刻ｔ３においてイナーシャ設定値は実際の慣性モーメントの値の８倍から４倍に変化する。【０２１８】
これにより、図２８に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝２０×４＝８０（Ｈｚ）となる。ところが、発振が停止するほどには低くないので、図２８に示すように、時刻ｔ３以降も発振は収束することなく継続してしまっている。また、図２８に示すように、発振検知信号も発振を検知したことを示すＨレベルのままとなっている。これを受けて、イナーシャ設定部１５２は、その出力値を現在の出力値の１／２に低減した値に時刻ｔ４にて切り替える。従って、図２８に示すように、時刻ｔ４においてイナーシャ設定部１５２の出力値は実際の慣性モーメントの値の４倍から２倍に変化する。【０２１９】
その結果、図２８に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒも、ｆｓｒ＝２０×２＝４０（Ｈｚ）となる。実際の周波数帯域幅ｆｓｒが十分に下がったので、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ６にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。【０２２０】
このように、状況によっては剛性値更新部１３１の出力値が変化しなくても、イナーシャ設定部１５２がその出力値を低減することで、フィードバックループ１０４に生じた発振を停止することができる。しかし、このような動作が可能なのは、発振の原因がイナーシャ設定部の出力値と実際の慣性モーメントの値との乖離であり、剛性値を変更しなくてもイナーシャ設定部の出力値が実際の慣性モーメントの値に近い値となることで、発振が停止することが明らかとなっている場合に限られる。このような場合には、フィードバックループに発振が生じたとしても剛性値が下がることなく発振が停止するために、剛性値を再調整することなく、速度指令または位置指令に対する最適な応答が維持できるというメリットが得られる。【０２２１】
以上のように、発振検知部１０５がフィードバックループ１０４の発振を検知したときに、イナーシャ設定部１５２がその出力値を自動的に低減させるという動作を行うことで、フィードバックループ１０４に生ずる発振を確実に停止させるサーボモータの制御装置を実現することができる。【０２２２】
なお、上述した各実施の形態では、この発明に必要な全ての部が同一の制御装置に含まれているが、それぞれの部が別々の装置に含まれていてもよい。【０２２３】
また、上述した各実施の形態では、本発明のサーボモータの制御装置は各ブロック図に示したような機能ブロックで構成されるような実施の形態の例を挙げて説明したが、例えば、各ブロックにおける処理を手順に従ったステップの実行により実現されるサーボモータの制御方法であってもよい。具体的には、各ブロックの処理に対応したステップを順次実行するようなプログラムをメモリなどに記憶させ、例えば、マイクロプロセッサのようなＣＰＵが、メモリに記憶されたプログラムを順次読み取り、読み取ったプログラムに従って処理を実行するような構成であってもよい。【０２２４】
すなわち、例えば、サーボモータの制御手順として、フィードバックループの発振を検知するステップと、フィードバックループの制御パラメータ群における制御パラメータの設定を、発振の検知に基づき操作制御するステップと、制御パラメータを設定するための設定値が供給され、操作制御に応じて更新しながら制御パラメータをフィードバックループに設定するステップとを備え、発振が検知されていないとき、操作制御により、供給された設定値に応じた制御パラメータをフィードバックループに設定し、発振が検知されたとき、操作制御により、フィードバックループの周波数帯域幅が狭くなるような制御パラメータをフィードバックループに設定するようなプログラムをメモリに記憶させる。そして、マイクロプロセッサがメモリに記憶されたこのプログラムを順次読み取り、読み取ったプログラムに従って処理を実行することで、本発明のサーボモータの制御方法が実現できる。【０２２５】
また、実施の形態４のサーボモータはノッチフィルタ１４１を備えるが、このノッチフィルタ１４１を、他の実施形態のサーボモータに適応してもよい。
【産業上の利用可能性】
【０２２６】
本発明のサーボモータの制御装置は、速やかに発振を停止させることができ、負荷に与える損傷を最小限に抑えるとともに、制御パラメータの調整をスムーズかつ短時間に行うことができるため、各種の制御パラメータを調整する機能を備えたサーボモータやその他のモータの制御装置として有用である。
【図１】
2008087893.tif 000008
【図２Ａ】
2008087893.tif 000009
【図２Ｂ】
2008087893.tif 000010
【図２Ｃ】
2008087893.tif 000011
【図３】
2008087893.tif 000012
【図４】
2008087893.tif 000013
【図５】
2008087893.tif 000014
【図６】
2008087893.tif 000015
【図７】
2008087893.tif 000016
【図８】
2008087893.tif 000017
【図９】
2008087893.tif 000018
【図１０】
2008087893.tif 000019
【図１１】
2008087893.tif 000020
【図１２】
2008087893.tif 000021
【図１３】
2008087893.tif 000022
【図１４】
2008087893.tif 000023
【図１５】
2008087893.tif 000024
【図１６Ａ】
2008087893.tif 000025
【図１６Ｂ】
2008087893.tif 000026
【図１７】
2008087893.tif 000027
【図１８】
2008087893.tif 000028
【図１９】
2008087893.tif 000029
【図２０】
2008087893.tif 000030
【図２１】
2008087893.tif 000031
【図２２】
2008087893.tif 000032
【図２３】
2008087893.tif 000033
【図２４】
2008087893.tif 000034
【図２５】
2008087893.tif 000035
【図２６】
2008087893.tif 000036
【図２７】
2008087893.tif 000037
【図２８】
2008087893.tif 000038
【図２９】
2008087893.tif 000039
【手続補正書】
【提出日】平成21年4月7日(2009.4.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主に産業用ＦＡサーボモータを制御する制御装置および制御方法に関する。
【背景技術】
【０００２】
サーボモータを駆動する制御装置には、通常、モータの回転速度あるいは回転位置を検出して、外部より入力される速度指令あるいは位置指令へ追従するようにフィードバックループが構成される。フィードバックループの動作安定性を確保し、速度指令あるいは位置指令への追従性能を十分に発揮させるためには、サーボモータの負荷の慣性モーメントや負荷の状態に応じて、フィードバックループに内包される複数の制御パラメータ、すなわち速度ゲインや位置ゲインなどに適切な値を設定することが必要である。
【０００３】
従来のサーボモータの制御装置では、サーボモータの負荷の慣性モーメントや負荷の状態に応じて前述の制御パラメータに適切な値を設定するパラメータ設定手段が装備されている。また、このようなパラメータ設定手段を装備したサーボモータの制御装置に関する技術としては、例えば、特許文献１や特許文献２に開示されている。
【０００４】
図２９は、このような従来のサーボモータ（以下、適宜、単に「モータ」と呼ぶ）の制御装置の一構成例を示したブロック図である。
【０００５】
図２９において、モータ１０１は負荷１０２と接続されている。モータ１０１にはエンコーダ１０３も接続され、モータ１０１の回転位置に対応した値が出力される。エンコーダ１０３の出力値は、微分演算部１１１において微分処理され、モータ１０１の回転速度に変換された値を示す速度検出信号ｄｖが出力される。外部より入力される速度指令は、フィードフォワードゲイン乗算部１１０に入力される。これとともに、この速度指令は、減算部１１４において微分演算部１１１の出力する速度検出信号ｄｖとの差の信号が演算される。この信号は速度誤差に該当し、積分演算部１１２に入力されて位置誤差に該当する信号に変換される。この信号は、位置ゲイン乗算部１０９に入力され、所定の位置ゲインＫｐを乗じて出力される。さらに、演算部１１３において、位置ゲイン乗算部１０９から出力された信号は、フィードフォワードゲイン乗算部１１０にて所定のフィードフォワードゲインＫｆを乗じて出力された速度指令の信号と加算されるとともに、微分演算部１１１の出力する速度検出信号ｄｖとの差の信号が演算される。その後、演算部１１３から出力された信号は、速度ゲイン乗算部１０８に入力され、所定の速度ゲインＫｖを乗じて出力され、この出力された信号を元にサーボモータ１０１が駆動される。ただし、速度ゲインＫｖは負荷１０２を含めたサーボモータ１０１のイナーシャＪの設定値と速度帯域ｆｖの設定値とが乗算部１１５で乗算された値が設定される。
【０００６】
さらに、図２９に示すサーボモータの制御装置は、パラメータ設定手段として、外部から制御パラメータに含まれるイナーシャＪ、位置ゲインＫｐおよび速度帯域ｆｖに設定値を設定できるよう構成されている。
【０００７】
このような構成において、前述の位置ゲインＫｐや速度帯域ｆｖに対応した速度ゲインＫｖは制御パラメータと称するものであり、これら各制御パラメータの値は外部より入力された値が設定される。このとき、これらの設定値は、サーボモータ１０１の制御性能やフィードバックループ１０４の発振安定性に影響を与えるので、適切に、これらの設定値を最適値に調整する必要がある。
【０００８】
ところで、一般的には、速度帯域ｆｖの値が大きいほど、フィードバックループ１０４の周波数帯域幅が広くなり、速度指令の入力に対して優れた応答性、あるいは追従性が得られることになる。一方、サーボモータ１０１を含めた負荷１０２は一般に機械的な共振特性を持ち、速度帯域ｆｖの値を大きくし過ぎると、フィードバックループ１０４に発振を生ずる可能性がある。また、速度帯域ｆｖの値に対し、位置ゲインＫｐの値を適切に与えないと、フィードバックループ１０４のダンピング係数に影響を及ぼし、外部からの指令に対し、応答が振動的になったり、逆に回転位置の追従性が悪化したりするなど適切な応答が得られない結果となる。
【０００９】
従って、指令に対するサーボモータ１０１の応答を確認しながら、各制御パラメータの値を上下させて調整する必要があり、これを一般的に制御パラメータのマニュアル調整と称する。一方、これら制御パラメータの調整を自動で行う一般的にオートチューニングと称する調整機能も実用化されている。
【００１０】
しかしながら、オートチューニングを実行したとしても、あらゆる負荷の状態に対して制御パラメータが必ずしも最適値に調整されるとは限らず、一般的にサーボモータの制御装置としてはマニュアル調整の機能も必要不可欠であることが実情であった。
【００１１】
また、マニュアル調整やオートチューニングにかかわらず、各制御パラメータの値を上げたり下げたりしながら最適値に調整する場合、フィードバックループに発振が生じ、その結果、サーボモータが激しく振動するため、サーボモータの負荷に損傷を与えてしまう恐れがあった。フィードバックループに発振が生じた場合は、変更した制御パラメータの値を再度変更するか、一旦、サーボモータに流す電流を遮断して停止させた後、制御パラメータの値を変更してから、再び、サーボモータに電流を流すなどの手順が必要となる。従って、このような従来のサーボモータの制御装置は、発振が停止するまでに時間が掛かり、サーボモータの負荷に与える損傷が過大になったり、制御パラメータの調整に手間と時間が掛かったりするという課題があった。このような機械振動を抑制する機能を有したモータに関する技術としては、例えば、特許文献３に開示されている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平６−１６５５５０号公報
【特許文献２】特開平６−３１９２８４号公報
【特許文献３】特開２００３−５２１８８号公報
【発明の概要】
【００１３】
本発明のサーボモータの制御装置は、外部から通知される指令情報と検出部により検出された回転動作に関する情報とからそれらの偏差量を求め、偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、演算処理により生成された回転制御信号によりサーボモータの回転動作を制御することで、サーボモータの回転動作が指令情報に追従するようにフィードバック制御するフィードバックループを有したサーボモータの制御装置であって、フィードバックループの発振を検知し、その検知結果を示す発振検知信号を出力する発振検知部と、フィードバックループの制御パラメータ群における制御パラメータの設定を、発振検知信号に基づき操作指示するパラメータ操作部と、制御パラメータを設定するための設定値が供給され、パラメータ操作部の操作指示に応じて更新しながら制御パラメータをフィードバックループに設定する更新部とを備え、発振検知信号が発振を検知していないことを示すとき、パラメータ操作部は更新部に対して、供給された設定値に応じた制御パラメータを設定するよう操作指示し、発振検知信号が発振を検知したことを示すとき、パラメータ操作部は更新部に対して、フィードバックループの周波数帯域幅が狭くなるような制御パラメータを設定するよう操作指示する構成である。
【００１４】
また、本発明のサーボモータの制御方法は、外部から通知される指令情報と検出部により検出された回転動作に関する情報とからそれらの偏差量を求め、偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、演算処理により生成された回転制御信号によりサーボモータの回転動作を制御することで、サーボモータの回転動作が指令情報に追従するようにフィードバック制御するフィードバックループを有したサーボモータの制御方法であって、フィードバックループの発振を検知するステップと、フィードバックループの制御パラメータ群における制御パラメータの設定を、発振の検知に基づき操作制御するステップと、制御パラメータを設定するための設定値が供給され、操作制御に応じて更新しながら制御パラメータをフィードバックループに設定するステップとを備え、発振が検知されていないとき、操作制御により、供給された設定値に応じた制御パラメータをフィードバックループに設定し、発振が検知されたとき、操作制御により、フィードバックループの周波数帯域幅が狭くなるような制御パラメータをフィードバックループに設定する。
【００１５】
このような構成により、例えば制御パラメータを変更することでフィードバックループに発振が生じたとしても、フィードバックループの周波数帯域幅が狭くなるように制御されるため、速やかに発振を停止させることができ、サーボモータの負荷に与える損傷を最小限に抑えるとともに、制御パラメータの調整をスムーズかつ短時間に行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態１におけるサーボモータの制御装置のブロック図
【図２Ａ】時間の経過とともに速度指令信号を変化させた一例を示す図
【図２Ｂ】位置ゲインＫｐおよび速度ゲインＫｖをある程度低く設定したときのサーボモータにおける実回転速度の変化を示す図
【図２Ｃ】位置ゲインＫｐおよび速度ゲインＫｖを図２Ｂの場合よりも高く設定したときのサーボモータにおける実回転速度の変化を示す図
【図３】本発明の実施の形態１における発振検知部の詳細な構成を示すブロック図
【図４】同発振検知部のバンドパスフィルタの周波数特性の一例を示す図
【図５】本発明の実施の形態１におけるサーボモータの制御装置の各ステップでの設定値および各信号の様子を示したタイミングチャート
【図６】同制御装置の各ステップでの設定値および各信号の様子の他の例を示したタイミングチャート
【図７】本発明の実施の形態２におけるサーボモータの制御装置のブロック図
【図８】本発明の実施の形態３におけるサーボモータの制御装置のブロック図
【図９】同制御装置の要部の詳細な構成を示すブロック図
【図１０】同制御装置の一動作例を説明するためのタイミングチャート
【図１１】同制御装置の他の動作例を説明するためのタイミングチャート
【図１２】同制御装置のさらに他の動作例を説明するためのタイミングチャート
【図１３】同制御装置のさらに他の動作例を説明するためのタイミングチャート
【図１４】同制御装置のさらに他の動作例を説明するためのタイミングチャート
【図１５】本発明の実施の形態４におけるサーボモータの制御装置のブロック図
【図１６Ａ】同制御装置のノッチフィルタの中心周波数が１００Ｈｚの場合の周波数伝達特性を示す図
【図１６Ｂ】同制御装置のノッチフィルタの中心周波数が１０００Ｈｚの場合の周波数伝達特性を示す図
【図１７】同制御装置の中心周波数調整部の詳細な構成を示すブロック図
【図１８】同制御装置の一動作例を説明するためのタイミングチャート
【図１９】本発明の実施の形態５におけるサーボモータの制御装置のブロック図
【図２０】同制御装置の一動作例を説明するためのタイミングチャート
【図２１】同制御装置の他の動作例を説明するためのタイミングチャート
【図２２】本発明の実施の形態６におけるサーボモータの制御装置のブロック図
【図２３】同制御装置の動作例を説明するためのタイミングチャート
【図２４】本発明の実施の形態７におけるサーボモータの制御装置のブロック図
【図２５】同制御装置の一動作例を説明するためのタイミングチャート
【図２６】同制御装置の他の動作例を説明するためのタイミングチャート
【図２７】本発明の実施の形態８におけるサーボモータの制御装置のブロック図
【図２８】同制御装置の一動作例を説明するためのタイミングチャート
【図２９】従来のサーボモータの制御装置の一構成例を示したブロック図
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図面を用いて説明する。
【００１８】
（実施の形態１）
図１は、本発明の実施の形態１におけるサーボモータの制御装置のブロック図である。
【００１９】
本実施の形態では、モータの回転位置を検出して、外部より入力される速度指令へ追従するようなフィードバックループを構成するとともに、速度ゲインや位置ゲインなどのフィードバックループに内包される複数の制御パラメータに、適切な設定値をマニュアルにより設定可能なサーボモータの制御装置（以下、適宜、単に「制御装置」と呼ぶ）の一例を挙げて説明する。
【００２０】
図１において、サーボモータ（以下、適宜、「モータ」と呼ぶ）１０１には、回転位置を検出するためのエンコーダ１０３が接続されている。エンコーダ１０３は、検出したモータ１０１の回転位置に対応した値を示す位置検出信号を出力する。位置検出信号は、微分演算を行う微分演算部１１１において微分演算処理され、これによって、微分演算部１１１からは、モータ１０１の回転速度を示す速度検出信号ｄｖが出力される。
【００２１】
また、外部より入力される速度指令の値を示す速度指令信号は、フィードフォワードゲイン乗算部１１０に供給されるとともに、減算部１１４にも供給される。
【００２２】
フィードフォワードゲイン乗算部１１０は、供給された速度指令信号に対して所定のフィードフォワードゲインＫｆを乗じ、フィードフォワード信号として出力する。
【００２３】
一方、減算部１１４は、速度指令信号と速度検出信号ｄｖとの減算演算を行い、この減算演算結果を速度誤差信号として出力する。この速度誤差信号は、速度指令と検出速度との偏差量である速度誤差に該当する。速度誤差信号は、積分演算を行う積分演算部１１２に供給され、積分演算処理が施される。これにより、速度誤差信号は、位置誤差に該当する位置誤差信号へと変換される。この位置誤差信号は、位置ゲイン乗算部１０９に供給される。位置ゲイン乗算部１０９は、位置誤差信号に対して制御ゲインの一つである所定の位置ゲインＫｐを乗じ、位置補正信号として出力する。また、位置ゲイン乗算部１０９には、このような位置ゲインＫｐの設定値が以下で説明するパラメータ更新部１１６から供給されている。
【００２４】
次に、演算部１１３には、位置補正信号、フィードフォワード信号および速度検出信号ｄｖが供給される。演算部１１３は、位置補正信号とフィードフォワード信号との加算演算を行い、さらに、この加算演算結果と速度検出信号ｄｖとの減算演算を行い、速度制御信号として出力する。この速度制御信号は、速度ゲイン乗算部１０８に供給される。速度ゲイン乗算部１０８は、速度制御信号に対して制御ゲインの一つである所定の速度ゲインＫｖを乗じ、回転制御信号として出力する。また、速度ゲイン乗算部１０８には、このような速度ゲインＫｖの設定値が以下で説明する乗算部１１５から供給されている。
【００２５】
そして、回転制御信号に対応した駆動信号がモータ１０１に供給され、これによってモータ１０１が回転駆動される。
【００２６】
また、このように回転駆動されるモータ１０１に負荷１０２を接続することで、負荷１０２が回転するように駆動される。
【００２７】
以上説明したような構成により、外部から通知される指令情報としての速度指令と、検出部としてのエンコーダ１０３により検出された回転動作に関する情報としての位置検出信号とからそれらの偏差量を求め、偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、演算処理により生成された回転制御信号によりサーボモータ１０１の回転動作を制御することで、サーボモータ１０１の回転動作が指令情報に追従するようにフィードバック制御するフィードバックループ１０４が構成される。本実施の形態では、図１に示すように、負荷１０２を含めたサーボモータ１０１、エンコーダ１０３および駆動信号を生成するまでの帰還処理の部分を、まとめてフィードバックループ１０４と称して扱う。なお、ここでは、フィードバックループ１０４に速度指令が入力される形式となっているが、フィードバックループ１０４内部において、積分演算部１１２により、速度誤差信号に対する積分演算が行われる。このため、実質的には外部より位置指令が入力され、それにサーボモータ１０１の回転位置が追従するように制御されるような構成と等価である。
【００２８】
また、上述したように、本実施の形態の制御装置は、マニュアル、すなわち手動によるマニュアル調整で、フィードバックループ１０４における複数の制御パラメータに対して、設定値を設定できる構成としている。すなわち、本実施の形態では、図１に示すように、本制御装置に対して外部から、速度指令信号としての速度指令の値とともに、所定の制御パラメータ群に含まれる制御パラメータとして、位置ゲインＫｐ、速度帯域ｆｖおよびイナーシャＪそれぞれに対しての設定値が設定可能な構成例を挙げている。このような制御パラメータへの設定値は、例えばマイクロプロセッサやマイクロコンピュータ装置のような上位器、あるいは本制御装置を収納するコントローラ装置のパネルスイッチなどから通知される。また、図１では、本制御装置に設定されている位置ゲインＫｐおよび速度帯域ｆｖの設定値が、上位器など外部に対して通知され、上位器などにおいて、その設定値が例えば表示されるような一例を挙げている。
【００２９】
このような制御パラメータの各設定値をフィードバックループ１０４内に設定するため、本実施の形態の制御装置は、フィードバックループに内包される複数の制御パラメータを外部からの設定値に従って各値を更新するパラメータ更新部１１６およびパラメータ更新部１１７と、パラメータ更新部１１６およびパラメータ更新部１１７が出力する各出力値の更新履歴を記憶するパラメータ操作部１０６と、フィードバックループの発振を検知し、検知結果をパラメータ操作部１０６に通知する発振検知部１０５とをさらに備えている。なお、パラメータ更新部１１６とパラメータ更新部１１７とにより更新部が構成される。
【００３０】
パラメータ更新部１１６には、外部の上位器などから位置ゲインＫｐの設定値が供給され、パラメータ更新部１１７には、速度帯域ｆｖの設定値が供給される。また、パラメータ更新部１１６、１１７は、パラメータ操作部１０６の操作指示信号ｄｍの操作指示に従って、最適な設定値を選択し、選択した設定値を出力する。なお、以下、外部の上位器などから通知される設定値を外部設定値とし、パラメータ更新部１１６、１１７から出力される設定値を内部設定値と区分して呼び、説明する。
【００３１】
パラメータ更新部１１６から出力された位置ゲインＫｐの内部設定値は、位置ゲイン乗算部１０９に供給される。これによって、制御パラメータとして、フィードバックループ内における位置ゲインＫｐが設定される。
【００３２】
また、パラメータ更新部１１７から出力された速度帯域ｆｖの内部設定値は乗算部１１５に供給される。ここで、フィードバックループの周波数帯域ｆｓとともに、モータ１０１と負荷１０２の両方を含めた慣性モーメント、すなわちイナーシャＪを割り当てると、速度ゲインＫｖ、イナーシャＪおよび周波数帯域ｆｓの間には、Ｋｖ／Ｊ＝２πｆｓ（πは円周率を示す）の関係が成り立つ。また、フィードバックループ１０４の応答減衰係数を１とすると、位置ゲインＫｐ＝１／４・Ｋｖ／Ｊの関係が成り立つ。これに基づき、本実施の形態では、外部から速度帯域ｆｖおよびイナーシャＪの設定を可能とし、速度帯域ｆｖとイナーシャＪとの乗算結果を速度ゲインＫｖとして設定するような構成としている。すなわち、図１に示すように、乗算部１１５を設け、乗算部１１５により速度帯域ｆｖの内部設定値とイナーシャＪの設定値との乗算演算を行い、その乗算結果である値を速度ゲインＫｖとして速度ゲイン乗算部１０８に設定するような構成としている。このようにして、制御パラメータとしてイナーシャＪおよび速度帯域ｆｖが設定されるとともに、フィードバックループ内における速度ゲインＫｖも設定される。なお、外部から速度ゲインＫｖの外部設定値がパラメータ更新部１１７に通知され、パラメータ更新部１１７から出力された内部設定値が速度ゲイン乗算部１０８に供給されるような構成であってもよい。
【００３３】
このように、位置ゲインＫｐや速度ゲインＫｖである制御パラメータを適切に設定することにより、速度指令に対して優れた応答性や追従性を得ることができる。図２Ａ、図２Ｂおよび図２Ｃは、制御パラメータの設定を変えた場合、速度指令の変化に対するそれぞれの応答特性例を示している。
【００３４】
図２Ａは、時間の経過とともに速度指令信号を変化させた一例を示している。図２Ｂは、位置ゲインＫｐおよび速度ゲインＫｖをある程度低く設定したとき、図２Ａに示す速度指令信号の変化に対して、モータ１０１における実回転速度の変化を示している。図２Ｃは、位置ゲインＫｐおよび速度ゲインＫｖを図２Ｂの場合よりも高く設定したとき、図２Ａに示す速度指令信号の変化に対して、モータ１０１における実回転速度の変化を示している。
【００３５】
図２Ｂと図２Ｃとの比較で判るように、位置ゲインＫｐや速度ゲインＫｖを高く設定するほど、フィードバックループ１０４の周波数帯域幅が広くなり、速度指令の入力変化に対して優れた応答性、あるいは追従性が得られることになる。ところが、サーボモータ１０１を含めた負荷１０２は一般に機械的な共振特性を持っている。さらに、負荷１０２の剛性が低い場合には、その共振の周波数がフィードバックループ１０４の周波数帯域の上限周波数より低くなる場合がある。その場合には、フィードバックループ１０４に発振を生ずる可能性がある。従って、速度指令の入力に対する応答性の観点からは前述の位置ゲインＫｐや速度ゲインＫｖを高く設定する方が望ましいが、フィードバックループ１０４が発振を生じない範囲に留める必要がある。
【００３６】
本実施の形態の制御装置は、フィードバックループ１０４においてこのような発振が生じても速やかに発振を停止させるため、発振検知部１０５およびパラメータ操作部１０６を設けている。
【００３７】
パラメータ操作部１０６は、パラメータ更新部１１６およびパラメータ更新部１１７が出力する内部設定値を入力し、それぞれの値が変更されるたびに各値を更新履歴として順次記憶する。さらに、パラメータ操作部１０６には、発振検知部１０５から、フィードバックループ１０４においての発振を検知したかどうかを示す発振検知信号が通知される。
【００３８】
パラメータ操作部１０６は、この発振検知信号が発振を検知したことを示すとき、最後に更新された制御パラメータの値が、更新された以前の値に戻るように、パラメータ更新部１１６およびパラメータ更新部１１７のうち該当するパラメータ更新部に対し、更新された以前の値を供給する。さらに、このとき、パラメータ操作部１０６は、該当するパラメータ更新部に対し、このように供給した以前の値を選択し、出力するような操作指示を示す操作指示信号ｄｍを通知する。これに応答して、該当するパラメータ更新部は、その値を保持するとともに、その値を内部設定値として出力する。
【００３９】
一方、パラメータ操作部１０６は、発振検知信号が発振を検知したことを示さないときには、操作指示信号ｄｍによりパラメータ更新部１１６およびパラメータ更新部１１７に対して、外部設定値をそのまま内部設定値として出力するよう操作指示する。すなわち、発振検知信号が発振を検知したことを示さないときには、パラメータ更新部１１６およびパラメータ更新部１１７は、外部設定値をそのまま内部設定値として出力する。
【００４０】
パラメータ操作部１０６、パラメータ更新部１１６およびパラメータ更新部１１７がこのような処理を行うことで、発振検知信号が発振を検知していないことを示すとき、パラメータ操作部１０６は、操作指示信号ｄｍによりパラメータ更新部１１６、１１７に対して、供給された設定値に応じた制御パラメータを設定するよう操作指示し、発振検知信号が発振を検知したことを示すとき、パラメータ操作部１０６はパラメータ更新部１１６、１１７に対して、フィードバックループ１０４の周波数帯域幅が狭くなるような制御パラメータを設定するよう操作指示するような処理が行われる。
【００４１】
このように、本実施の形態の制御装置は、発振検知部１０５によりフィードバックループ１０４における発振が検知されると、パラメータ操作部１０６によるパラメータ更新部１１６およびパラメータ更新部１１７への操作により、フィードバックループ１０４における制御パラメータの内部設定値が一つ手前の設定値となるように、後戻りして設定されることを特徴としている。すなわち、発振検知信号が発振を検知したことを示すとき、パラメータ操作部１０６の操作指示信号ｄｍに応じて、パラメータ更新部１１６、１１７は、最後に更新して設定した制御パラメータを以前の制御パラメータへと戻し、その戻した制御パラメータをフィードバックループ１０４に設定する構成である。
【００４２】
図３は、発振検知部１０５の詳細な構成を示すブロック図である。図３において、発振検知部１０５に入力されたモータ速度を示す速度検出信号ｄｖは、まず、バンドパスフィルタ１２０に入力される。図４は、バンドパスフィルタ１２０の周波数特性の一例を示す図である。速度検出信号ｄｖは、図４に示すような周波数特性のバンドパスフィルタ１２０により、高周波成分と低周波成分とが遮断されて出力される。これはノイズ成分を遮断し、フィードバックループ１０４の発振を精度良く検出するためである。バンドパスフィルタ１２０の出力信号は、振幅判定部１２１に入力される。
【００４３】
振幅判定部１２１は、入力された信号の振幅が所定の振幅値よりも大きいか小さいかを判定する。振幅判定部１２１は、大きいと判定したときＨレベル、小さいと判定したときＬレベルとする２値信号を出力する。この判定結果を示す２値信号は、発振継続判定部１２２に供給される。
【００４４】
発振継続判定部１２２は、振幅判定部１２１からの信号に基づき、フィードバックループ１０４において安定した確実な発振が生じているかどうかを判定する。すなわち、発振継続判定部１２２は、例えば、入力される信号がＨレベルである時間を計数することでフィードバックループ１０４の発振の継続性を判定する。発振継続判定部１２２は、継続的な発振であると判定したときＨレベル、そうでなければＬレベルとする２値信号を出力する。
【００４５】
このような発振継続判定部１２２のより具体的な構成例として、発振継続判定部１２２の内部において、アップダウンカウンタ（以下、適宜、単に「カウンタ」と呼ぶ）を設け、入力される信号がＨレベルのときにはアップカウントし、Ｌレベルのときにはダウンカウントするよう構成する。さらに、カウンタの出力値を判定するような判定器を設け、このカウンタの出力値が所定の値以上になったときに、継続的な発振であるとしてＨレベル、そうでなければＬレベルの２値信号として出力するような構成とする。このような構成とすることで、発振継続判定部１２２が実現できる。なお、以下、各実施の形態における動作の説明において、発振検知部１０５がこのようなカウンタを有する発振継続判定部１２２を備えた構成での動作例を挙げて説明する。
【００４６】
なお、前述のフィードフォワードゲイン乗算部１１０におけるフィードフォワードゲインＫｆは、速度指令の入力に対するサーボモータ１０１の応答に関係するパラメータである。このようなフィードフォワードゲインＫｆは、基本的にフィードバックループ１０４に生ずる発振とは関係ないので、フィードバックループ１０４に内包される他の制御パラメータとは区別して取り扱う。また、フィードフォワードゲインＫｆは、通常０．３程度の値に固定して設定されることが多い。また、本実施の形態では、フィードフォワードゲインＫｆが固定して設定されるような構成例を示しているが、速度指令や他の制御パラメータと同様に、外部から設定可能な構成であってもよい。
【００４７】
次に、以上のように構成された本実施の形態のサーボモータの制御装置について、具体例を挙げて、その動作を説明する。また、上述したように、ここでは、発振継続判定部１２２がカウンタを備えた一例を用いて説明する。
【００４８】
まず、表１に示すようなマニュアル調整のステップの順に従って、制御パラメータである速度帯域ｆｖを設定するような動作例を挙げて説明する。なお、ここでは、制御パラメータである位置ゲインＫｐは表１に示すように固定の値とし、変更しないような場合の例を挙げる。また、図５は、表１に示す各ステップでの設定値および各信号の様子を示したタイミングチャートである。
【００４９】
【表１】
2008087893.tif 000040
【００５０】
まず、例えば制御パラメータのマニュアル調整開始の時点において、表１のステップ１に示すような各制御パラメータの組み合わせで、各内部設定値が設定される。なお、この時点ではフィードバックループ１０４に発振は生じていないとして説明する。
【００５１】
次に、ステップ１に示す制御パラメータを設定した後、図５に示すように、時刻ｔ１にて、ステップ２として、速度帯域ｆｖの設定値を「４００」から「５００」へとさらに変更する。この段階でもフィードバックループ１０４には発振を生じていないので、さらに、時刻ｔ２にて、ステップ３として、速度帯域ｆｖの設定値を「５００」から「５２０」に変更する。図５は、このように、例えば応答性をよくするため、ステップ３まで順次速度帯域ｆｖの内部設定値を増やすことにより、フィードバックループ１０４の周波数帯域幅が広くなり、フィードバックループ１０４において発振が発生した様子を示している。すなわち、フィードバックループ１０４において発振が生じたため、図５に示すように、発振検知部１０５に供給される速度検出信号ｄｖも振動することになる。これにより、振幅判定部１２１は、時刻ｔ２を過ぎると、発振を検出したとする発振検知信号（Ｈレベル）を発振継続判定部１２２へと出力する。このため、図５に示すように、発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ３においてカウンタの出力値が所定の値を超える。そして、発振継続判定部１２２は、この時点で発振を検知したとする発振検知信号（Ｈレベル）を出力し、これによって、発振検知部１０５からパラメータ操作部１０６へとこのような発振検知信号が通知される。
【００５２】
パラメータ操作部１０６は、パラメータ更新部１１７から出力される内部設定値が変化するたびに、その値を順次記憶している。パラメータ操作部１０６は、時刻ｔ３において、発振検知信号の発振を検知したとする変化を受けて、パラメータ更新部１１７から出力される内部設定値が更新される以前の値、すなわち、速度帯域ｆｖの更新前の値である「５００」を、時刻ｔ４においてパラメータ更新部１１７に対して出力する。さらに、パラメータ操作部１０６は、パラメータ更新部１１７に対して、更新前の値である「５００」を選択し、出力するよう操作指示する。
【００５３】
その結果、パラメータ更新部１１７から出力される内部設定値は、「５２０」から再び「５００」に戻る。これにより、フィードバックループ１０４の周波数帯域幅が狭くなり、図５に示すように、時刻ｔ４以降、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ５にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。すなわち、外部設定値として「５２０」を設定することで発振が生じた場合、最終的には表１のステップ４に示す通り、内部設定値としては「５００」へと変更され、外部から速度帯域ｆｖの設定値として「５００」を入力したのと同様の状態に戻ることになる。
【００５４】
このように、例えば、マニュアル調整時などにおいて制御パラメータの設定値を負荷に応じた最適値へと変更するとき、本制御装置は、フィードバックループ１０４に発振が生じた場合、発振検知部１０５とパラメータ操作部１０６とパラメータ更新部１１６、１１７とによって、制御パラメータを更新する以前の値に戻す処理を自動的に行う。このため、本制御装置によれば、フィードバックループ１０４に生ずる発振を短時間で停止させることができる。さらに、発振を手動で停止させる必要がなく、また、制御パラメータの限界値も判るので、制御パラメータの調整作業をスムーズかつ短時間に行うことができる。
【００５５】
次に、表２に示すようなステップの順に従って、制御パラメータである速度帯域ｆｖを設定するような動作例を挙げて説明する。ここでも、制御パラメータである位置ゲインＫｐは表２に示すように固定の値とした例を挙げる。また、図６は、表２に示す各ステップでの設定に応じて各信号の様子を示したタイミングチャートである。
【００５６】
【表２】
2008087893.tif 000041
【００５７】
まず、図６に示す時刻ｔ２までにおいては、図５の場合と同様の処理が行われる。さらに、時刻ｔ２にて、ステップ３として、速度帯域ｆｖの設定値が「５００」から「６００」に変更される。これによって、図５の場合と同様に、フィードバックループ１０４の周波数帯域幅が広くなるためフィードバックループ１０４が発振し、図６に示すように、発振検知部１０５に供給される速度検出信号ｄｖも振動することになる。
【００５８】
このような発振が生じたため、図６に示すように、発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ３において、発振検知部１０５からパラメータ操作部１０６へと、発振を検知したとする発振検知信号（Ｈレベル）が通知される。パラメータ操作部１０６は、時刻ｔ３においてこのような発振検知信号を受け、時刻ｔ４において、パラメータ更新部１１７の出力値が更新される以前の値、すなわち、速度帯域ｆｖの更新前の値である「５００」をパラメータ更新部１１７に対して出力する。
【００５９】
その結果、パラメータ更新部１１７の出力値は再び「６００」から「５００」に戻る。ここで、図５の場合このような操作により発振が停止するような例を挙げたが、図６では、時刻ｔ４以降も発振が引き続き継続するような場合を示している。すなわち、図６に示すように、時刻ｔ４以降も速度検出信号ｄｖが振動する。
【００６０】
このように発振が継続する場合、図６に示すように、カウンタの値は飽和レベルまで達するとともに、発振検知部１０５は発振を検知したとする発振検知信号を引き続き出力し続ける。パラメータ操作部１０６は、これを受けて、パラメータ更新部１１７の出力値が「５００」に更新されるさらに以前の値、すなわち、速度帯域ｆｖのさらに更新前の値である「４００」を時刻ｔ５においてパラメータ更新部１１７に対して出力する。
【００６１】
そうすると、フィードバックループ１０４の周波数帯域幅はさらに狭くなるので、図６に示すように、速度検出信号ｄｖの振動は収束するとともに、カウンタの値も減少する。この後、時刻ｔ６にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。すなわち、最終的には表２のステップ５に示す通り、外部から速度帯域ｆｖの設定値として「４００」を入力したのと同様の状態に戻る。
【００６２】
このように、制御パラメータの設定値を変更するとき、本制御装置は、フィードバックループ１０４に発振が生じた場合、制御パラメータを更新する以前の値に戻す処理を継続的かつ自動的に行う。このため、本制御装置によれば、フィードバックループ１０４に生ずる発振を短時間で停止させることができる。さらに、発振を手動で停止させる必要がなく、また、制御パラメータの限界値も判るので、制御パラメータの調整作業をスムーズかつ短時間に行うことができる。
【００６３】
次に、表３に示すようなステップの順に従って、制御パラメータである速度帯域ｆｖおよび位置ゲインＫｐを設定するような動作例を挙げて説明する。ここでは、表３で示すように、まず、ステップ１で速度帯域ｆｖを「４００」、位置ゲインＫｐを「１００」とする設定値に設定し、その後、ステップ２で速度帯域ｆｖを「４００」から「５００」に更新し、ステップ３で位置ゲインＫｐを「１００」から「８０」に更新し、ステップ４で位置ゲインＫｐを「８０」から「７０」に更新している。また、ここまでの処理において、フィードバックループ１０４には発振が生じておらず、ステップ５で速度帯域ｆｖが「５００」から「５６０」に更新された時点において、発振が生じた場合の例を挙げて以下説明する。
【００６４】
【表３】
2008087893.tif 000042
【００６５】
まず、ステップ５において発振が生じたため、パラメータ操作部１０６は、パラメータ更新部１１７に対し、更新する以前の値である「５００」を出力する。
【００６６】
その結果、パラメータ更新部１１７の出力値は、「５６０」から再び「５００」に戻り、ステップ６に至るとともに、フィードバックループ１０４に生じていた発振が停止する。
【００６７】
このように、２種類の制御パラメータをそれぞれ変更する場合でも、本制御装置は、フィードバックループ１０４に発振が生じた場合、該当する制御パラメータを選択的に、更新する以前の値に戻す処理を自動的に行う。このため、本制御装置によれば、フィードバックループ１０４に生ずる発振を短時間で停止させることができる。さらに、発振を手動で停止させる必要がなく、また、制御パラメータの限界値も判るので、制御パラメータの調整作業をスムーズかつ短時間に行うことができる。
【００６８】
以上のように、本実施の形態におけるサーボモータの制御装置は、パラメータ更新部１１６、１１７が外部より入力された制御パラメータに更新して出力するとともに、発振検知部１０５がフィードバックループ１０４の発振を検知したとき、パラメータ操作部１０６は、制御パラメータの値を更新する以前の値に戻すように作用するので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、また、制御パラメータの調整作業をスムーズ、かつ短時間に行うことができるサーボモータの制御装置を実現することができる。
【００６９】
（実施の形態２）
図７は、本発明の実施の形態２におけるサーボモータの制御装置のブロック図である。実施の形態１との比較において、実施の形態２では、制御パラメータとしてのイナーシャＪの設定値を外部から取り込み、この設定値に従って値を更新するパラメータ更新部１１８をさらに備える。また、パラメータ更新部１１６、パラメータ更新部１１７およびパラメータ更新部１１８により更新部が構成される。なお、図７において、図１と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。
【００７０】
図７において、パラメータ更新部１１８には、外部の上位器などからイナーシャＪの設定値が供給される。パラメータ更新部１１８は、パラメータ操作部１０６の操作指示に従って、最適なイナーシャＪの設定値を出力値として出力する。パラメータ更新部１１８から出力されたイナーシャＪの出力値は乗算部１１５に供給される。これによって、制御パラメータとして、フィードバックループ内におけるイナーシャＪの内部設定値が設定される。さらに、パラメータ更新部１１８から出力されたイナーシャＪの内部設定値である出力値は、パラメータ操作部１０６にも供給される。
【００７１】
本実施の形態におけるパラメータ操作部１０６は、パラメータ更新部１１６およびパラメータ更新部１１７が出力する出力値に加えて、パラメータ更新部１１８が出力する出力値も入力し、それぞれの値が変更されるたびに各値を更新履歴として順次記憶する。さらに、パラメータ操作部１０６は、イナーシャＪの値が更新された後に、発振検知部１０５からの発振検知信号により発振が検知されたと通知されると、更新する以前のイナーシャＪの値をパラメータ更新部１１８に対して出力する。パラメータ更新部１１８は、それを受けて、出力するイナーシャＪの出力値を更新する以前の値に戻す。
【００７２】
ところで、上述したように、速度ゲイン乗算部１０８における速度ゲインＫｖは、負荷１０２を含めたサーボモータ１０１のイナーシャＪの設定値と速度帯域ｆｖの設定値とが乗算部１１５で乗算された値として設定される。よって、イナーシャＪの設定値は、前述の速度ゲインＫｖの値に影響を与え、フィードバックループ１０４の発振にも影響を与える。従って、イナーシャの設定値Ｊを更新したときにおいても、フィードバックループ１０４に発振を生じることもあり得る。イナーシャＪの設定値は、速度帯域ｆｖの設定値、位置ゲインＫｐの設定値等、他の制御パラメータと区別して扱われることが多いが、前述の理由から広義での制御パラメータの一部とみなすことができる。このため、本実施の形態では、イナーシャＪの内部設定値の変更によりフィードバックループ１０４において発振が生じた場合、イナーシャＪの内部設定値も、更新する以前の値に戻すような構成としている。
【００７３】
次に、以上のように構成された本実施の形態のサーボモータの制御装置について、具体例を挙げて、その動作を説明する。ここでは、表４で示すように、まず、ステップ１で速度帯域ｆｖを「４００」、位置ゲインＫｐを「１００」、イナーシャＪを「１．０」とする設定値に設定し、その後、ステップ２で速度帯域ｆｖを「４００」から「５００」に更新し、ステップ３で位置ゲインＫｐを「１００」から「８０」に更新し、ステップ４でイナーシャ設定値Ｊを「１．０」から「１．２」に更新している。また、ここまでの処理において、フィードバックループ１０４には発振が生じておらず、ステップ５でイナーシャ設定値Ｊが「１．２」から「１．４」に更新された時点において、発振が生じた場合の例を挙げて以下説明する。
【００７４】
【表４】
2008087893.tif 000043
【００７５】
まず、ステップ５において発振が生じたため、発振検知部１０５は、発振を検知したとする発振検知信号をパラメータ操作部１０６に通知する。これに応答して、パラメータ操作部１０６はパラメータ更新部１１８に対し、更新する以前の値である「１．２」を出力する。
【００７６】
その結果、パラメータ更新部１１８の出力値は再び「１．４」から「１．２」に戻り、ステップ６に至るとともに、フィードバックループ１０４に生じていた発振が停止する。
【００７７】
このように３種類の制御パラメータをそれぞれ変更した場合でも、本制御装置は、フィードバックループ１０４に発振が生じた場合、発振検知部１０５とパラメータ操作部１０６とパラメータ更新部１１６、１１７、１１８とによって、該当する制御パラメータを選択的に、更新する以前の値に戻す処理を自動的に行う。このため、本制御装置によれば、フィードバックループ１０４に生ずる発振を短時間で停止させることができる。さらに、発振を手動で停止する必要がないので、制御パラメータの調整作業をスムーズかつ短時間に行うことができる。
【００７８】
（実施の形態３）
図８は、本発明の実施の形態３におけるサーボモータの制御装置のブロック図である。実施の形態１との比較において、実施の形態３では、パラメータ更新部１１６、１１７に代えて、パラメータ設定部１３０および剛性値更新部１３１を備える。また、パラメータ設定部１３０および剛性値更新部１３１により更新部が構成される。なお、図８において、図１と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。
【００７９】
また、本実施の形態では、外部の上位器などから、あらかじめ値の範囲が決定されている剛性設定値を選択して設定することで、負荷の剛性に応じた制御パラメータが設定可能な構成としている。すなわち、例えば、「０」から「７」までの８段階の剛性設定値をあらかじめ設けておき、剛性の低い負荷を駆動する場合には「０」、また剛性の高い負荷を駆動する場合には「７」とする。そして、例えば、上位器などから剛性設定値として「０」が設定された場合には、剛性の低い負荷を駆動するための制御パラメータがフィードバックループ１０４内に設定される。このような構成とすることにより、本制御装置の使用者は、制御パラメータなど意識せず、容易に、負荷に対応した制御パラメータを設定できる。
【００８０】
図８に示すように、本実施の形態の制御装置においては、フィードバックループ１０４における制御パラメータとしての位置ゲインＫｐおよび速度帯域ｆｖが、パラメータ設定部１３０によって設定される。また、パラメータ設定部１３０が設定する各制御パラメータの値は、外部より入力される剛性設定値（以下、適宜、単に「剛性値」と呼ぶ）に従って決定される。このような剛性値は、剛性値更新部１３１を経由してパラメータ設定部１３０に供給される。すなわち、パラメータ設定部１３０は、剛性値に対しての位置ゲインＫｐおよび速度帯域ｆｖの設定値を変換テーブルのような形式で記憶しており、ある剛性値が通知されると、それに対応した位置ゲインＫｐおよび速度帯域ｆｖの設定値を出力する。
【００８１】
このような剛性値をパラメータ設定部１３０に供給するため、本実施の形態の制御装置は、剛性値を外部からの設定値に従って各値を更新する剛性値更新部１３１を備えるとともに、実施の形態１などと同様に、剛性値更新部１３１が出力する各出力値の更新履歴を記憶するパラメータ操作部１０６と、フィードバックループ１０４の発振を検知し、検知結果をパラメータ操作部１０６に通知する発振検知部１０５とを備えている。
【００８２】
剛性値更新部１３１には、外部の上位器などから、負荷の剛性に対応した制御パラメータを設定するための剛性値として、外部設定値が供給される。また、剛性値更新部１３１は、パラメータ操作部１０６の操作指示に従って、最適な設定値を選択し、選択した設定値を内部設定値として出力し、パラメータ設定部１３０に供給する。また、剛性値更新部１３１から出力された内部設定値は、パラメータ更新部１１６にも供給される。
【００８３】
パラメータ操作部１０６は、剛性値更新部１３１からの内部設定値を入力し、それぞれの値が変更されるたびに各値を更新履歴として順次記憶する。さらに、パラメータ操作部１０６には、発振検知部１０５から、フィードバックループ１０４においての発振を検知したかどうかを示す発振検知信号が通知される。
【００８４】
パラメータ操作部１０６は、この発振検知信号が発振を検知したことを示すとき、最後に更新された剛性値の値が、更新された以前の値に戻るように、剛性値更新部１３１に対し、更新された以前の値を供給する。さらに、このとき、パラメータ操作部１０６は、操作指示信号ｄｍにより剛性値更新部１３１に対し、このように供給した以前の値を選択し、出力するような操作指示を通知する。これに応答して、剛性値更新部１３１は、その値を保持するとともに、その値を内部設定値として出力する。
【００８５】
一方、パラメータ操作部１０６は、発振検知信号が発振を検知したことを示さないときには、操作指示信号ｄｍにより剛性値更新部１３１に対して、外部設定値をそのまま内部設定値として出力するよう操作指示する。すなわち、発振検知信号が発振を検知したことを示さないときには、外部設定値がそのまま内部設定値としてパラメータ設定部１３０に供給される。
【００８６】
このように、本実施の形態の制御装置は、発振検知部１０５によりフィードバックループ１０４における発振が検知されると、パラメータ操作部１０６による剛性値更新部１３１への操作により、剛性値が一つ手前の設定値となるように、後戻りして設定され、これによって、フィードバックループ１０４における制御パラメータの内部設定値も一つ手前の設定値となるように、後戻りして設定されることを特徴としている。すなわち、本実施の形態の制御装置は、発振検知信号が発振を検知したことを示すとき、パラメータ操作部１０６の操作指示に応じて、剛性値更新部１３１が、最後に更新して設定した剛性値を以前の剛性値へと戻し、この戻した剛性値をパラメータ設定部１３０に供給する。
【００８７】
図９は、図８の要部の詳細な構成を示すブロック図である。図９に示すように、剛性値更新部１３１は、設定値保存部１２５および出力値決定部１２８を有している。また、パラメータ操作部１０６は、設定値更新検知部１２６および旧値保存部１２７を有している。設定値保存部１２５は、外部からの剛性設定の入力値を一旦保存して出力値決定部１２８に出力する。設定値更新検知部１２６は、入力された剛性設定の入力値と剛性値更新部１３１の出力値とを比較して値が変化したことを検知すると、出力値決定部１２８に対して、入力された剛性値を更新して出力するように指令する。それと同時に、設定値更新検知部１２６は、旧値保存部１２７に対して、出力値決定部１２８が出力していた更新する前の値を保存するように指令する。そして、発振検知部１０５がフィードバックループ１０４の発振を検知したときには、出力値決定部１２８は、旧値保存部１２７に保存されている更新する前の値を取り込み、出力する。その場合、出力値決定部１２８の出力値は再び設定値保存部１２５に入力され、設定値保存部１２５に保存されている値は出力値決定部１２８の出力値に書き換えられる。これは、剛性値更新部１３１の出力する更新した剛性値が剛性表示として、外部からその値を確認できるようにするためである。
【００８８】
次に、以上のように構成された本実施の形態のサーボモータの制御装置について、具体例を挙げて、その動作を説明する。
【００８９】
図８において、マニュアル調整時など外部より手動で設定される剛性値には、通常、上述したように整数が割り当てられる。ここでの動作例については、外部より設定される剛性値、すなわち剛性値として、「０」から「７」までの８種類の値が割り当てられる一例を挙げて説明する。
【００９０】
また、剛性値に対応したフィードバックループ１０４の周波数帯域ｆｓが割り当てられ、さらに、この周波数帯域ｆｓに対応して、Ｋｖ／Ｊ、Ｋｐの各値が決められる。ここで、Ｋｖは速度ゲイン、Ｋｐは位置ゲイン、Ｊはモータ１０１と負荷１０２との両方を含めた慣性モーメントであるイナーシャを表している。Ｋｖ／Ｊとｆｓの間には、Ｋｖ／Ｊ＝２πｆｓ（πは円周率を示す）の関係が成り立つ。また、フィードバックループ１０４の応答減衰係数を１とすると、Ｋｐ＝１／４・Ｋｖ／Ｊの関係が成り立つ。また、フィードフォワードゲインＫｆは、速度指令に対するフィードバックループ１０４の応答性の観点から、通常０．３程度の値が用いられる。従って、制御パラメータのテーブル、すなわちバランスの取れた標準的な制御パラメータの組み合わせとしては、例えば、表５に示すようになる。
【００９１】
【表５】
2008087893.tif 000044
【００９２】
剛性値「０」から「７」までの値に対して、それぞれに対応するフィードバックループ１０４の周波数帯域ｆｓが割り当てられているので、結果として、剛性値「０」から「７」までの値に対して、Ｋｖ／Ｊ、Ｋｐ、Ｋｆの各値が決まることを表５が示している。従って、慣性モーメントＪの大きさが決まれば、剛性設定の各値について制御パラメータの全ての値が周波数帯域ｆｓに対する最適値として決まることになる。その後、各制御パラメータの値はフィードバックループ１０４に内包される速度ゲイン乗算部１０８、位置ゲイン乗算部１０９、フィードフォワードゲイン乗算部１１０のそれぞれ対応する演算部に転送される。また、表５の剛性値と周波数帯域ｆｓとの比較で判るように、剛性値が高いほど、フィードバックループ１０４の周波数帯域ｆｓが広くなり、速度指令の入力に対して優れた応答性、あるいは追従性が得られる。
【００９３】
なお、慣性モーメントであるイナーシャＪの値については、サーボモータの制御装置それぞれについて、手動で入力したり、あるいは自動的に推定したりすることで決められるが、ここではイナーシャＪの値については正しい値が設定されているとして説明する。
【００９４】
図１０は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。まず、図１０に示すように、初期値「３」とする剛性値が設定されており、時刻ｔ１にて「５」に変更される場合の動作について説明する。なお、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。また、発振検知部１０５として、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。
【００９５】
まず、図１０に示すように、時刻ｔ１までにおいては、初期値「３」とする剛性値が設定されており、このとき、速度検出信号ｄｖは振動しておらず、フィードバックループ１０４に発振は生じていない。
【００９６】
次に、時刻ｔ１になると、外部から剛性値「５」が供給され、設定値保存部１２５の値も「３」から「５」になる。設定値更新検知部１２６は、この値の変化を検出し、出力値決定部１２８に対して設定値保存部１２５の出力値を出力するように指令する。さらに、設定値更新検知部１２６は、旧値保存部１２７に対して、出力値決定部１２８の出力する更新する前の出力値を保存するように指令する。これにより、図１０に示すように、時刻ｔ１以降は、旧値保存部１２７の値は「３」となる。
【００９７】
このようにして、設定値保存部１２５の出力値はパラメータ設定部１３０に供給され、制御パラメータの値が剛性値「３」に対応する値から剛性値「５」に対応する値に変更される。図１０では、このような剛性値の変更により、時刻ｔ１を過ぎると、フィードバックループ１０４の周波数帯域ｆｓが広くなり、速度検出信号ｄｖが振動を開始するような場合を示している。このような発振が生じると、図１０に示すように、発振検知部１０５における発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ２において、発振検知部１０５からパラメータ操作部１０６へと、発振を検知したとする発振検知信号（Ｈレベル）が通知される。パラメータ操作部１０６は、時刻ｔ３においてこのような発振検知信号を受け、出力値決定部１２８に対して、旧値保存部１２７に保存されている更新する前の剛性値「３」を取り込み、出力するよう操作指示する。出力値決定部１２８は、これを受けて、旧値保存部１２７から取り込んだ更新する前の剛性値「３」を時刻ｔ３で出力する。
【００９８】
その結果、出力値決定部１２８からパラメータ設定部１３０に対して供給される内部設定値は、剛性値「５」から「３」に戻る。これにより、フィードバックループ１０４の周波数帯域幅が狭くなり、図１０に示すように、時刻ｔ３以降、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ４にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。すなわち、外部設定値として剛性値「５」を設定することで発振が生じた場合、最終的には図１０に示す通り、内部設定値としては剛性値「３」へと変更され、外部から剛性値として「３」を入力したのと同様の状態に戻ることになる。
【００９９】
このように剛性値を高い値に変更したとしても、フィードバックループ１０４に発振が生じた場合、剛性値を更新する以前の値に戻す処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。
【０１００】
図１１は、本実施の形態の制御装置の他の動作例を説明するためのタイミングチャートである。次に、図１１に示すように、初期値「４」とする剛性値からスタートした場合の動作について説明する。また、図１１では、時刻ｔ１以前はフィードバックループ１０４が休止状態にあり、時刻ｔ１にてフィードバックループ１０４が能動状態として機能し始めて、このとき、フィードバックループ１０４に発振が生じるような場合を示している。
【０１０１】
時刻ｔ２になると、図１１に示すように、発振検知部１０５はフィードバックループ１０４の発振を検知する。この場合、剛性値はこの時刻まで一度も変更していないので、更新する以前の剛性値は初期値である「４」とみなす。
【０１０２】
従って、剛性値更新部１３１の現在の出力値は更新する以前の出力値と等しい値であり、更新する以前の出力値の方が低いということはないので、この場合、現在の出力値よりも階数「１」だけ低い剛性に対応する値を出力するように動作する。すなわち、図１１に示す発振を検出したとする発振検知信号（Ｈレベル）を受けて、出力値決定部１２８は、初期値の「４」から階数「１」だけ低い剛性に対応する値である「３」へと更新した出力値として時刻ｔ３に出力する。この場合は、旧値保存部１２７の値も図１１に示すように時刻ｔ３にて同じ値である３に設定される。
【０１０３】
その結果、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が狭くなり、時刻ｔ３以降、発振は収束し、これに伴ってカウンタの値も減少し、一連の処理を完了する。また、出力値決定部１２８の出力値は設定値保存部１２５に入力され、設定値保存部１２５は、保存されている剛性値を初期値の「４」から「３」に書き換える。すなわち、外部から剛性値として「３」を入力したのと同様の状態となる。
【０１０４】
このように、発振検知部１０５がフィードバックループ１０４の発振を検知したときに、剛性値更新部１３１が現在の更新した出力値と更新する以前の出力値とを比較し、更新する以前の出力値の方が高い剛性に対応する値である場合、または、現在の更新した出力値と更新する以前の出力値とが等しい値である場合には、その出力値を現在の更新した出力値よりも所定の階数だけ低い剛性に対応する値に更新するような構成とすることにより、剛性値の初期値を設定した場合などにおいて発振が生じた場合であっても、剛性値を所定の階数だけ低い剛性に対応する値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。
【０１０５】
図１２は、本実施の形態の制御装置のさらに他の動作例を説明するためのタイミングチャートである。次に、図１２に示すように、初期値「５」とする剛性値からスタートした場合の動作について説明する。図１２でも、時刻ｔ１以前はフィードバックループ１０４が休止状態にあり、時刻ｔ１にてフィードバックループ１０４が能動状態として機能し始めて、このとき、フィードバックループ１０４に発振が生じるような場合を示している。
【０１０６】
時刻ｔ２になると、図１２に示すように、発振検知部１０５はフィードバックループ１０４の発振を検知する。この場合も、剛性値はこの時刻まで一度も変更していないので、更新する以前の剛性値は初期値である「５」とみなす。
【０１０７】
従って、剛性値更新部１３１の現在の出力値は更新する以前の出力値と等しい値であり、更新する以前の出力値の方が低いということはないので、この場合、現在の出力値よりも階数１だけ低い剛性に対応する値を出力するように動作する。すなわち、時刻ｔ３において、出力値決定部１２８は、初期値の「５」から階数「１」だけ低い剛性に対応する値である「４」を更新した出力値として出力する。また、旧値保存部１２７の値も、時刻ｔ３にて、同じ値である「４」に設定される。
【０１０８】
図１２では、出力値がこのように更新されても発振が引き続き継続するような場合を示している。すなわち、出力値が更新された結果、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が若干狭くなるが、まだ十分低いレベルではないので、時刻ｔ３以降も、速度検出信号ｄｖは振動し、発振は引き続き継続している。また、カウンタの値は飽和レベルに達し、発振継続判定部１２２は発振を示すＨレベルの値を引き続き出力し続ける。
【０１０９】
この場合、剛性値更新部１３１の現在の出力値は更新する以前の出力値より低い剛性に対応する値なので、現在の出力値よりもさらに階数「１」だけ低い剛性に対応する値を出力するように動作する。すなわち、時刻ｔ４において、出力値決定部１２８は、現在の出力値の「４」からさらに階数「１」だけ低い剛性に対応する値である「３」を更新した出力値として出力する。また、旧値保存部１２７の値も時刻ｔ４にて同じ値である「３」に設定される。
【０１１０】
そうすると、フィードバックループ１０４の周波数帯域ｆｓの帯域幅がさらに狭くなるので、図１２に示すように、速度検出信号ｄｖの振動は収束し、カウンタの値も減少し、一連の処理を完了する。また、出力値決定部１２８の出力する値は設定値保存部１２５に入力され、保存されている剛性値を「３」に書き換える。すなわち、外部から剛性値として「３」を入力したのと同様の状態となる。
【０１１１】
このように、発振検知部１０５がフィードバックループ１０４の発振を検知したときに、剛性値更新部１３１が現在の更新した出力値と更新する以前の出力値とを比較し、更新する以前の出力値の方が高い剛性に対応する値である場合、または、現在の更新した出力値と更新する以前の出力値とが等しい値である場合には、その出力値を現在の更新した出力値よりも所定の階数だけ低い剛性に対応する値に更新するような構成とすることにより、剛性値の初期値を設定した場合などにおいて発振が生じた場合であっても、発振が停止するまで、剛性値を所定の階数づつ低い剛性に対応する値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。
【０１１２】
ところで、図１２に示したような動作例の場合、剛性値が初期値「５」からスタートしており、剛性値更新部１３１の出力値は「５」から「４」へ更新し、さらに、「４」から「３」へ更新するという２段階を経由している。このため、最終的にフィードバックループ１０４の発振が停止するまで、図１１に示した動作例の場合と比べて、若干の時間を要している。従って、図１２に示したような動作例の場合は、この発振が負荷１０２に与える損傷の度合いが、若干増していると言える。
【０１１３】
例えば、電源投入時など、フィードバックループ１０４が休止状態から能動状態に変化したときは、負荷１０２の入れ替えを行った直後である可能性もあり、その場合、負荷１０２の剛性や慣性モーメントが変化している。このため、剛性値が最適値から大幅にずれている可能性がある。このような場合、図１２に示した動作例のように剛性値更新部１３１の出力値が段階的に更新されと、結果として、最終的に発振が停止するまでに要する時間が比較的長くなり、その発振が負荷１０２に与える損傷の度合いが大きくなる懸念がある。
【０１１４】
図１３は、本実施の形態の制御装置のさらに他の動作例を説明するためのタイミングチャートである。図１３においては、図１２に示した動作例と比べて、発振が停止するまでに要する時間を抑制するような動作例を挙げている。前述の説明では、剛性値更新部１３１の出力値の更新する以前の値、すなわち、旧値保存部１２７の値を剛性値の初期値と同一値の「５」とみなしていたが、図１３では、フィードバックループ１０４の発振が確実に停止すると予想される所定の剛性に対応する値を設定するような方法に基づいた動作例を示している。
【０１１５】
図１２の場合、時刻ｔ１においては、旧値保存部１２７の出力値が「５」であったが、図１３に示すように、ここでの動作例では、旧値保存部１２７の出力値を「３」としている。これは前述のようにフィードバックループ１０４の発振が確実に停止すると予想される所定の剛性に対応する値として「３」が設定されているためである。
【０１１６】
時刻ｔ２において、発振検知部１０５がフィードバックループ１０４の発振を検出する。このとき、剛性値更新部１３１の出力値は更新する以前の値の方が低い剛性に対応する値となっている。従って、図１３に示すように、時刻ｔ３にて、剛性値更新部１３１の出力値は「５」から「３」に更新される。その結果、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が十分狭くなるので、図１３に示すように時刻ｔ３にて発振は収束し始める。
【０１１７】
このように、本実施の形態では、フィードバックループが休止状態から能動状態に変化したときに、剛性値更新部は更新する以前の出力値としてフィードバックループの発振が確実に停止すると予想される所定の剛性に対応する値を設定するような構成としている。これより、剛性値の初期値が高い値において、フィードバックループ１０４が休止状態から能動状態に変化したとしても、フィードバックループ１０４に発振が生じた場合、本実施の形態の制御装置は、剛性値を所定の剛性に対応する値に更新する処理を自動的に行う。このため、フィードバックループ１０４に生ずる発振を最小限の短時間で停止させることができ、負荷１０２に与える損傷を最小限に抑えることができる。
【０１１８】
図１４は、本実施の形態の制御装置のさらに他の動作例を説明するためのタイミングチャートである。次に、図１４に示すように、剛性値が初期値「３」から時刻ｔ１にて剛性値「５」に設定され、その後、時刻ｔ３までフィードバックループ１０４に発振が生じず、時刻ｔ３にて初めて発振が生じるような場合の動作例について説明する。また、ここでは、時刻ｔ１から時刻ｔ３までの時間は比較的長く、例えば５秒であったとする。
【０１１９】
図１４に示すように、旧値保存部１２７の出力値は、時刻ｔ１における値が「３」である。その後、時刻ｔ１から所定の時間（例えば２秒）を経過した時刻ｔ２において、設定値更新検知部１２６は、旧値保存部１２７に対し、剛性値更新部１３１の出力値を保存するように指令する。従って、時刻ｔ２においては、旧値保存部１２７の出力値は、「３」から「５」に変わる。
【０１２０】
その後、図１４に示すように、時刻ｔ３にてフィードバックループ１０４に発振が生じ、時刻ｔ４にて発振検知部１０５がこの発振を検知する。このとき、旧値保存部１２７の値が「５」であるので、剛性値更新部１３１の更新する以前の出力値は「５」であるとみなされる。従って、この後は図１１にて説明したのと同様の動作となり、剛性値更新部１３１の出力値は、時刻ｔ５にて階数「１」だけ低い剛性に対応した値である「４」となり、時刻ｔ６にてフィードバックループ１０４の発振が停止する。
【０１２１】
図１４に示したように時刻ｔ１から時刻ｔ３までの比較的長い時間、フィードバックループ１０４に発振が生じていないということは、時刻ｔ１において剛性値として設定された値である「５」が、モータ１０１の負荷１０２に対応する剛性値として最適値に近い可能性が高い。従って、その後、たとえフィードバックループ１０４に発振が生じたとしても、このような場合、剛性値更新部１３１の出力値は更新する以前の値である「３」に戻すのではなく、現在の出力値よりも階数「１」だけ低い剛性に対応した値である「４」に更新して出力した方がより剛性値として最適値に近い可能性が高く、望ましいと言える。
【０１２２】
このように、剛性値を更新してから所定の時間を経過後にフィードバックループ１０４に発振が生じた場合でも、本実施の形態の制御装置は、剛性値を最適値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。
【０１２３】
なお、本実施の形態においては、剛性値更新部１３１の更新する以前の出力値が更新された出力値よりも低い剛性に対応する値ではなかった場合、現在の出力値よりも階数「１」だけ低い剛性に対応した値に更新して出力すると説明したが、階数「１」以上低い剛性に対応した値、例えば、階数「２」だけ低い剛性に対応した値に更新して出力した場合の方が、フィードバックループ１０４に生じた発振を素早く停止可能な場合も考えられる。従って、この場合、制御装置への要求に応じて動作を選択するのが望ましい。
【０１２４】
以上のように、剛性値更新部１３１が入力された剛性値に更新して出力すると同時に発振検知部１０５がフィードバックループ１０４の発振を検知したときに、その出力値を自動的に最適値に更新するという動作を行うことで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができるサーボモータの制御装置を実現することができる。
【０１２５】
（実施の形態４）
図１５は、本発明の実施の形態４におけるサーボモータの制御装置のブロック図である。実施の形態３との比較において、実施の形態４では、さらに、ノッチフィルタ１４１および中心周波数調整部１４２を備える。なお、図１５において、図８と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。
【０１２６】
本実施の形態において、速度ゲイン乗算部１０８から出力された回転制御信号は、第１のノッチフィルタ１４１に供給される。ノッチフィルタ１４１は、中心周波数とする周波数を中心に所定の帯域幅の信号成分を遮断するよう動作する。さらに、ノッチフィルタ１４１は、その中心周波数を外部からの指令によって可変する機能を備えている。本実施の形態では、このように特定の周波数の成分が除去された回転制御信号がノッチフィルタ１４１から出力され、この回転制御信号に対応した駆動信号がモータ１０１に供給される。
【０１２７】
図１６Ａおよび図１６Ｂは、ノッチフィルタ１４１の周波数伝達特性を示す図であり、図１６Ａは中心周波数が１００Ｈｚの場合、図１６Ｂは中心周波数が１０００Ｈｚの場合を示している。ノッチフィルタ１４１は、外部からの指令によって、遮断する中心周波数が例えば図１６Ａ、Ｂに示すように１００Ｈｚから１０００Ｈｚまでの範囲で可変できる。
【０１２８】
また、中心周波数調整部１４２には、微分演算部１１１から速度検出信号ｄｖが供給される。中心周波数調整部１４２は、供給された速度検出信号ｄｖを利用して中心周波数調整信号ｄｃを生成し、ノッチフィルタ１４１に対して出力する。ノッチフィルタ１４１は、この中心周波数調整信号ｄｃによって遮断する中心周波数が調整される。
【０１２９】
図１７は、中心周波数調整部１４２の詳細な構成を示すブロック図である。図１７において、微分演算部１１１から供給された速度検出信号ｄｖは、ハイパスフィルタ１４３に供給される。ハイパスフィルタ１４３は、速度検出信号ｄｖにおいて、所定の周波数よりも低い信号成分を遮断し、高い周波数の信号成分のみを抽出して出力する。ハイパスフィルタ１４３から出力された高い周波数の信号成分は、第２のノッチフィルタ１４４に供給される。ノッチフィルタ１４４は、ノッチフィルタ１４１と同一の特性と機能を備えており、外部より指令された中心周波数で所定の周波数成分を遮断して出力する。ノッチフィルタ１４４から出力された信号は、ノッチ中心周波数修正部１４５に供給される。ノッチ中心周波数修正部１４５は、ノッチフィルタ１４４から出力された信号の振幅が最も小さくなるように、ノッチフィルタ１４４の中心周波数を指令するための中心周波数調整信号ｄｃを、ノッチフィルタ１４４に出力する。そして、この中心周波数調整信号ｄｃがノッチフィルタ１４１に供給される。
【０１３０】
このように構成されたノッチフィルタ１４１と中心周波数調整部１４２とは、フィードバックループ１０４に発振が生じ、速度検出信号ｄｖに振動が生じたときに、この振動の周波数成分を遮断するようにノッチフィルタ１４１の中心周波数を自動的に調整し、フィードバックループ１０４に生じた発振を停止させるように作用する。
【０１３１】
次に、以上のように構成された本実施の形態のサーボモータの制御装置について、具体例を挙げて、その動作を説明する。
【０１３２】
図１８は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。まず、図１８に示すように、初期値「３」とする剛性値が設定されており、時刻ｔ１にて「５」に変更される場合の動作について説明する。なお、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。また、発振検知部１０５として、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。
【０１３３】
まず、図１８に示すように、時刻ｔ１までにおいては、初期値「３」とする剛性値が設定されており、このとき、速度検出信号ｄｖは振動しておらず、フィードバックループ１０４に発振は生じていない。
【０１３４】
次に、時刻ｔ１になると、外部から剛性値「５」が供給され、設定値保存部１２５の値も「３」から「５」になる。図１８では、このような剛性値の変更により、時刻ｔ１を過ぎると、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が広くなり、速度検出信号ｄｖが振動を開始するような場合を示している。
【０１３５】
このような速度検出信号ｄｖは、中心周波数調整部１４２にも入力される。ノッチフィルタ１４４は、この速度検出信号ｄｖの周波数を遮断するように、すなわち、ノッチフィルタ１４４の中心周波数が、この振動する速度検出信号ｄｖの周波数と一致するようにノッチ中心周波数修正部１４５はその出力信号を調整して出力する。そして、中心周波数調整部１４２の出力する中心周波数調整信号ｄｃは、ノッチフィルタ１４１に対し、その中心周波数をノッチフィルタ１４４の中心周波数と一致させるように指令するため、フィードバックループ１０４の発振を停止させるように作用する。
【０１３６】
その結果、時刻ｔ２において、フィードバックループ１０４の発振が停止すると、アップカウントしていたカウンタは、時刻ｔ２にてダウンカウントを開始する。すなわち、カウンタは、発振継続判定部１２２が発振の発生を判定する所定の値に到達する前にダウンカウントを開始するため、発振継続判定部１２２は、発振を検出したとするＨレベルの値を出力することなく、Ｌレベルの値を出力し続けている。
【０１３７】
よって、図１８に示すように、剛性値更新部１３１の出力値は、時刻ｔ２以降も剛性値「５」を維持し続ける。
【０１３８】
一方、中心周波数調整信号ｄｃによってノッチフィルタ１４１の中心周波数を調整した結果、フィードバックループ１０４の発振が停止しない場合もあり得る。例えば、発振の周波数がノッチフィルタ１４１の中心周波数の可変範囲から外れているような場合、あるいは速度ゲインＫｖの値が大き過ぎるような場合である。このような場合は、実施の形態３において図１０で示したように、発振継続判定部１２２は、Ｈレベルの値を出力し、剛性値更新部１３１の出力値を剛性値「５」から再び剛性値「３」に戻すことによって、フィードバックループ１０４の発振を停止させることになる。
【０１３９】
なお、前述のように発振継続判定部１２２内部のカウンタの値が所定の値に達するには所定の時間が必要である。この所定の時間を、中心周波数調整部１４２がノッチフィルタ１４１の中心周波数を調整するのに要する時間（例えば２００ｍｓｅｃ）よりも長くすることによって、中心周波数調整部１４２がノッチフィルタ１４１の中心周波数を調整している間、剛性値更新部１３１がその出力値を更新しないようにすることができる。これによって、ノッチフィルタ１４１の作用によって発振が停止した場合は、剛性値更新部１３１の出力値は現在の剛性値を維持し、ノッチフィルタ１４１の作用によって発振が停止しなかった場合は、剛性値更新部１３１の出力値は現在の剛性値から再び更新する以前の剛性値に戻し、このようにして、フィードバックループ１０４の発振を停止させるという動作が可能である。
【０１４０】
また、この場合、剛性値「３」よりも剛性値「５」の方が、フィードバックループ１０４の周波数帯域ｆｓの帯域幅が広いので、速度指令に対する応答性が良く望ましい。すなわち、実施の形態３に比べて本実施の形態の方が、高い剛性値を維持する可能性があるため、速度指令に対する応答性も望ましいか、もしくは同等の応答性を示すことになる。
【０１４１】
また、本実施の形態においては、前述のようにノッチフィルタ１４１の中心周波数を調整するのに要する時間を一定時間として見積もったが、中心周波数を調整する処理を観測し、この処理が見積もった時間よりも早期に終了した場合は、見積もった時間まで待たずに、剛性値更新部１３１の出力値を現在の剛性値から再び更新する以前の剛性値に戻してフィードバックループ１０４の発振を停止させるという動作も可能である。この方がフィードバックループ１０４の発振をより早期に停止させることができるので望ましい。
【０１４２】
このようにフィードバックループ１０４の発振を抑制するためのノッチフィルタ１４１とその中心周波数を調整する中心周波数調整部１４２とを備えた場合においても、フィードバックループ１０４に発振が生じた場合、本実施の形態の制御装置は、剛性値を現在の値のまま維持するか、もしくは更新する以前の値に戻すかの処理を適切かつ自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、剛性値を調整する作業をスムーズに行うことができる。
【０１４３】
（実施の形態５）
図１９は、本発明の実施の形態５におけるサーボモータの制御装置のブロック図である。実施の形態３との比較において、実施の形態５では、モータ１０１を含めた負荷１０２の慣性モーメントであるイナーシャＪを推定および設定する機能を有したことを特徴としている。このような機能を実現するため、本実施の形態における制御装置は、実施の形態３で説明した構成に加えて、さらに、イナーシャ設定部１５２、イナーシャ推定部１５３および微分演算部１５４を備える。なお、図１９において、図８と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。
【０１４４】
図１９において、第１の微分演算部１１１から出力された速度検出信号ｄｖは、第２の微分演算部１５４に供給される。微分演算部１５４は、供給された速度検出信号ｄｖに対してさらに微分演算を行い、モータ１０１の回転加速度に対応した加速度検出信号を出力する。加速度検出信号は、イナーシャ推定部１５３に供給される。
【０１４５】
イナーシャ推定部１５３には、加速度検出信号とともに、速度ゲイン乗算部１０８から出力されたトルク指令に対応する回転制御信号も供給される。イナーシャ推定部１５３は、これら２種類の信号に基づき、モータ１０１を含む負荷１０２の慣性モーメントを推定し、イナーシャ推定値として出力する。
【０１４６】
イナーシャ設定部１５２には、イナーシャ推定値とともに、外部の上位器などから設定されるイナーシャＪの設定値であるイナーシャ値が供給される。イナーシャ設定部１５２は、イナーシャ推定部１５３からのイナーシャ推定値が有効なときは、そのイナーシャ推定値をイナーシャ設定値として出力する。また、イナーシャ設定部１５２は、イナーシャ推定値が有効でないときには、外部からのイナーシャＪ値をイナーシャ設定値として出力する。なお、このイナーシャ設定値は、外部の上位器などに通知され、外部に上位器などにおいて表示されるような構成としてもよい。
【０１４７】
ここで、イナーシャ推定部１５３がモータ１０１を含む負荷１０２の慣性モーメントを推定可能なのは、次の原理に基づく。すなわち、モータ１０１および負荷１０２の慣性モーメントをＪL、モータ１０１の回転加速度をβ、サーボモータ１０１に与えられるトルクをＴで表したとき、物理法則として、Ｔ＝ＪL×βの関係が成り立つ。イナーシャ推定部１５３は、このような原理に基づき、回転加速度βに対応した加速度検出信号とトルクＴに対応した回転制御信号との２種類の信号から慣性モーメントＪLを推定している。より具体的には、逐次最小自乗法などの手法を用いてイナーシャを推定することが可能である。
【０１４８】
また、イナーシャ推定部１５３は、動作原理上、モータ１０１がある程度以上の加減速を伴ってある程度以上の時間、回転しなければモータ１０１を含む負荷１０２の慣性モーメントの値を正確に推定することはできない。従って、イナーシャ推定部１５３がモータ１０１を含む負荷１０２の慣性モーメントの値を推定するまでの間は、イナーシャ推定値の代わりに、仮の値としてイナーシャ初期設定値を用いる必要がある。そのため、本実施の形態では、イナーシャ設定部１５２が、イナーシャ推定値が有効となる以前は、外部からのイナーシャＪの設定値をイナーシャ初期設定値として出力し、イナーシャ推定値が有効となった後は、その値をイナーシャ設定値として出力するというような構成としている。
【０１４９】
また、このような構成とした場合、イナーシャ初期設定値としては、モータ１０１を含む負荷１０２の慣性モーメントとして、実際の値に近い値と思われる値が設定されることが一般的である。ところが、イナーシャ初期設定値と実際の慣性モーメントの値あるいはイナーシャ推定値にずれが生じている場合があり、その場合は、イナーシャ推定値が有効となる前後において、速度ゲインＫｖの値が変化することになる。
【０１５０】
例えば、イナーシャ初期設定値が実際の慣性モーメントの値に対して１／２の値であり、イナーシャ推定値が実際の慣性モーメントの値に等しい値となったとする。この場合、イナーシャ推定値が有効となる前後において、速度ゲインＫｖの値が２倍に増加することになる。このように、イナーシャ初期設定値がイナーシャ推定値よりも小さい値であった場合、速度ゲインＫｖの値が増加することになる。イナーシャ推定値が有効となる前後において、実際の慣性モーメントの値に変化がないとすると、速度ゲインＫｖの値が増加した分だけ、フィードバックループ１０４の実際の周波数帯域幅が増加することになる。従って、イナーシャ推定値が有効となった後にフィードバックループ１０４に発振が生じる可能性がある。
【０１５１】
このため、本実施の形態においても、発振検知部１０５、パラメータ操作部１０６および剛性値更新部１３１を備えた構成とし、これにより、フィードバックループ１０４に生じた発振を自動的かつ速やかに停止させている。
【０１５２】
以上のように構成されたサーボモータの制御装置について、具体例を挙げて、その動作を説明する。
【０１５３】
図２０は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。
【０１５４】
図２０では、剛性値更新部１３１の出力値とともに、イナーシャ設定値と実際の慣性モーメントの値の比、およびフィードバックループ１０４の実際の周波数帯域幅の値（単位はＨｚ）などを示している。フィードバックループ１０４の実際の周波数帯域幅ｆｓｒを示す値は、イナーシャ設定値をＪｓ、実際の慣性モーメントの値をＪｒとすると、周波数帯域設定値ｆｓに対して、ｆｓｒ＝ｆｓ×（Ｊｓ／Ｊｒ）となる。また、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。発振検知部１０５としては、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。
【０１５５】
図２０において、時刻ｔ１以前では、イナーシャ推定値が有効でなく、イナーシャ初期設定値、すなわちこの時点のイナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒの０．４倍となるような一例を挙げている。周波数帯域設定値ｆｓの値は、表５から剛性値「４」に対して１００（Ｈｚ）であるから、実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１００×０．４＝４０（Ｈｚ）となる。
【０１５６】
時刻ｔ１で、イナーシャ推定値が有効となり、イナーシャ設定部の出力値と実際の慣性モーメントの値が等しい、すなわち両者の比が１．０になる。この場合は、実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１００×１．０＝１００（Ｈｚ）となる。また、このように、フィードバックループ１０４の実際の周波数帯域幅が広くなったので、時刻ｔ１においてフィードバックループ１０４に発振が生じる。
【０１５７】
このような発振が生じると、図２０に示すように、発振検知部１０５における発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ２において、発振検知部１０５からパラメータ操作部１０６へと、発振を検知したとする発振検知信号（Ｈレベル）が通知される。
【０１５８】
パラメータ操作部１０６は、このような発振検知信号（Ｈレベル）の通知を受け、剛性値更新部１３１に対して次のような操作指示を行う。すなわち、剛性値更新部１３１は、この操作指示を受けて、出力する剛性値を現在の剛性値「４」から所定の階数だけ低い（この場合は階数＝「２」）剛性値「２」を時刻ｔ３で出力する。
【０１５９】
その結果、周波数帯域設定値ｆｓが狭くなり、図２０に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒも、ｆｓｒ＝３０×１．０＝３０（Ｈｚ）となる。これによって、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ４にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。すなわち、最終的には図２０に示す通り、内部設定値としては剛性値「２」へと変更され、外部から剛性値として「２」を入力したのと同様の状態に戻ることになる。
【０１６０】
すなわち、本実施の形態の制御装置は、イナーシャ推定値が有効となった後に、発振検知信号が発振を検知したことを示すとき、パラメータ操作部１０６の操作指示に応じて、剛性値更新部１３１は、剛性値を現在の値よりも所定の階数だけ低い剛性に対応する値に切り替え、この切り替えた値をパラメータ設定部１３０に供給する構成である。
【０１６１】
このようにイナーシャ設定部１５２の出力するイナーシャ設定値が増加することにより、フィードバックループ１０４の実際の周波数帯域幅が増大し、フィードバックループ１０４に発振が生じた場合、本実施の形態の制御装置は、剛性値を所定の階数だけ低い剛性に対応する値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、負荷１０２に与える損傷を最小限に抑えることができる。
【０１６２】
なお、ここでの所定の階数は、その値が小さ過ぎればフィードバックループ１０４に生じた発振が停止するまで前述の一連の動作を繰り返すために時間が掛かり、逆にその値が大き過ぎればフィードバックループ１０４に生じた発振が短時間で確実に停止する可能性が高くなる一方、その後、剛性値を外部より手動にて再調整する必要が生じるため、両者の利点と欠点を考慮し適切な値を設定することが必要である。
【０１６３】
図２１は、本実施の形態の制御装置の他の動作例を説明するためのタイミングチャートである。次に、図２１に示すように、初期値「３」とする剛性値からスタートした場合の動作について説明する。また、図２０の場合と同様に、時刻ｔ１以前では、イナーシャ推定値が有効でなく、イナーシャ初期設定値すなわちこの時点のイナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒの０．４倍であるような場合を示している。周波数帯域設定値ｆｓの値は、表５から剛性値「３」に対して６０（Ｈｚ）であるから、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝６０×０．４＝２４（Ｈｚ）となる。
【０１６４】
時刻ｔ１になると、イナーシャ推定部１５３の出力値が有効となり、イナーシャ設定部１５２の出力値であるイナーシャ設定値と実際の慣性モーメントの値が等しい、すなわち両者の比が１．０になる。この場合は、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝６０×１．０＝６０（Ｈｚ）となる。図２０のように剛性値が「４」からスタートした場合では、時刻ｔ１にてすぐにフィードバックループ１０４に発振が生じたが、この場合は、実際の周波数帯域幅ｆｓｒが、ｆｓｒ＝６０（Ｈｚ）と比較的狭く、発振が励起されるぎりぎりのレベルである。このため、時刻ｔ１にて発振は生じず、時刻ｔ２においてフィードバックループ１０４に発振が生じる。そして、この場合、時刻ｔ１から時刻ｔ２までの時間が所定の時間（例えば１秒）よりも長かったとする。従って、同様に時刻ｔ３にて発振が検知されるが、剛性値更新部１３１の出力値は時刻ｔ４においては、スタート時の剛性値「３」に対して前述の階数「２」ではなく階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される。
【０１６５】
その結果、周波数帯域設定値ｆｓが低くなり、図２１に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒも、ｆｓｒ＝３０×１．０＝３０（Ｈｚ）となり、発振は収束する。このように、イナーシャ推定値が有効となってからフィードバックループ１０４に発振が生じるまでの時間が長いということは、発振が停止する剛性値はスタート時の剛性値「３」に対して、大きく乖離していないということを意味する。従って、この場合、スタート時の剛性値「３」に対して、階数「２」だけ低い剛性に対応する値である剛性値「１」に更新されるよりも、階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される方が望ましい結果となる。なぜなら、剛性値「１」に更新された場合は、最適値である剛性値「２」でフィードバックループ１０４を動作させるためには、剛性値「２」を外部から再度、手動により設定する必要があるからである。
【０１６６】
このようにイナーシャ推定部１５３の出力が有効となったときから所定の時間を超えてフィードバックループ１０４の発振を検知したときは、剛性値更新部１３１がその出力値を現在の出力値よりも階数「１」だけ低い剛性に対応する値に切り替える処理を行うことで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ剛性値更新部１３１の出力値が状況に応じてより望ましい剛性値に設定されることになる。
【０１６７】
なお、ここではイナーシャ推定部１５３の出力が有効となったときからフィードバックループ１０４の発振を検知したときまでの時間が所定の時間を超えているかどうかで動作を切り替えた。これに代えて、例えば、所定の時間をＴ１、Ｔ２、・・・（Ｔ１＜Ｔ２）と複数設け、時間Ｔ１を超えていなければ階数Ｋ０だけ低い剛性に対応する剛性値に更新し、時間Ｔ１を超えてかつ時間Ｔ２を超えていなければ階数Ｋ１だけ低い剛性に対応する剛性値に更新し、時間Ｔ２を超えていれば階数Ｋ２だけ低い剛性に対応する剛性値に更新し、階数がＫ０＞Ｋ１＞Ｋ２となるようにする。すなわちイナーシャ推定部１５３の出力が有効となったときからフィードバックループ１０４の発振を検知したときまでの時間の増大に伴って順次階数を小さく設定することで、よりきめ細かく最適な剛性値の設定が可能となる。
【０１６８】
このように、本実施の形態の制御装置において、イナーシャ推定値が有効となったときから所定の時間以内に、発振検知信号が発振を検知したことを示すとき、剛性値更新部１３１は、その出力値を現在の出力値よりも所定の第１の階数だけ低い剛性に対応する値に切り替える。そして、イナーシャ推定値が有効となったときから所定の時間以降に、発振検知信号が発振を検知したことを示すとき、剛性値更新部１３１は、その出力値を現在の出力値よりも所定の第２の階数だけ低い剛性に対応する値に切り替え、第１の階数は第２の階数よりも大きな値とするような構成としてもよい。
【０１６９】
（実施の形態６）
図２２は、本発明の実施の形態６におけるサーボモータの制御装置のブロック図である。実施の形態５との比較において、実施の形態６では、さらに、安定剛性値算出部１５７を備える。なお、図２２において、図８と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。また、本実施の形態では、乗算部１１５により、イナーシャ設定部１５２からのイナーシャ設定値と周波数帯域設定値を乗算して速度ゲインとして出力する速度ゲイン算出部が構成されるとして説明する。
【０１７０】
図２２において、安定剛性値算出部１５７には、外部からのイナーシャ初期設定値、イナーシャ設定部１５２が出力するイナーシャ設定値、乗算部１１５の出力値および剛性値更新部１３１が出力する剛性値が供給される。安定剛性値算出部１５７は、これらの供給された値から安定剛性値を算出し、これを剛性値更新部１３１に供給する。
【０１７１】
この安定剛性値は、イナーシャ推定部１５３の出力が有効となる前後において、乗算部１１５、すなわち速度ゲイン算出部の出力値が増加しない範囲で、イナーシャ推定部１５３の出力が有効となった後の剛性値として最も高い剛性に対応する値という定義に従って算出される。実際には、イナーシャ初期設定値をＪｉ、イナーシャ推定値が有効となった後のイナーシャ設定値をＪｓ、現在の剛性値に対応する周波数帯域設定値をｆｓとすると、周波数帯域設定値がｆｓ×（Ｊｉ／Ｊｓ）で算出される周波数帯域幅の値を超えないという条件の下での、最も高い剛性に対応する剛性値という定義に従って算出しても等価である。この安定剛性値は、フィードバックループ１０４に生じた発振を確実に停止させることが可能であり、かつ最も高い剛性に対応する剛性値を意味しており、剛性値更新部１３１の出力値を安定剛性値に切り替えることで発振を確実に停止することが可能となる。
【０１７２】
このように、安定剛性値算出部１５７を備えた本実施の形態における制御装置の一動作例について説明する。なお、ここでは、本制御装置の動作について、図２０および図２１を用いて説明する。
【０１７３】
図２０において、時刻ｔ１で、イナーシャ推定値が有効となり、イナーシャ設定部の出力値と実際の慣性モーメントの値が等しい、すなわち両者の比が１．０になる。このとき、フィードバックループ１０４の実際の周波数帯域幅が広くなったので、時刻ｔ１においてフィードバックループ１０４に発振が生じる。その結果、図２０に示すように、発振検知部１０５における発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ２において、発振検知部１０５からパラメータ操作部１０６へと、発振を検知したとする発振検知信号（Ｈレベル）が通知される。
【０１７４】
このとき、前述の周波数帯域幅ｆｓ×（Ｊｉ／Ｊｓ）を計算すると、ｆｓ＝１００［Ｈｚ］、Ｊｉ／Ｊｓ＝（Ｊｉ／Ｊｒ）／（Ｊｓ／Ｊｒ）＝０．４／１．０＝０．４であるので、ｆｓ×（Ｊｉ／Ｊｓ）＝１００×０．４＝４０［Ｈｚ］となる。周波数帯域設定値ｆｓがこれを超えないという条件の下での最も高い剛性に対応する剛性値は、表５から剛性値「２」となる。すなわち、この時、安定剛性値算出部１５７が出力する安定剛性値は剛性値「２」である。従って、剛性値更新部１３１は、パラメータ操作部１０６から、発振が発生したときの操作指示を受け、出力する剛性値を現在の剛性値「４」から安定剛性値である剛性値「２」に時刻ｔ３において切り替えて出力する。
【０１７５】
その結果、周波数帯域設定値ｆｓが低くなり、図２０に示すように、発振は収束し、カウンタの値も減少する。この後、時刻ｔ４にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。また、剛性値更新部１３１の出力値は設定値保存部１２５に入力され、保存されている剛性値が「４」から「２」に書き換えられる。すなわち、外部から剛性値として「２」を入力したのと同様の状態となる。
【０１７６】
このようにイナーシャ設定部１５２の出力するイナーシャ設定値が増加することにより、フィードバックループ１０４の実際の周波数帯域幅が増大し、フィードバックループ１０４に発振が生じた場合、発振検知部１０５と剛性値更新部１３１は、安定剛性値算出部１５７の出力する安定剛性値に更新する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、負荷１０２に与える損傷を最小限に抑えることができる。
【０１７７】
次に、図２１に示したように剛性値が３からスタートした場合の動作について説明する。
【０１７８】
図２１において、時刻ｔ１以前では、イナーシャ推定値が有効でなく、イナーシャ初期設定値すなわちこの時点のイナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒの０．４倍であるような場合を示している。さらに、時刻ｔ１で、イナーシャ推定値が有効となり、イナーシャ設定値と実際の慣性モーメントの値が等しい、すなわち両者の比が１．０になる。
【０１７９】
このとき、前述の周波数帯域ｆｓ×（Ｊｉ／Ｊｓ）を計算すると、ｆｓ＝６０［Ｈｚ］、Ｊｉ／Ｊｓ＝（Ｊｉ／Ｊｒ）／（Ｊｓ／Ｊｒ）＝０．４／１．０＝０．４であるので、ｆｓ×（Ｊｉ／Ｊｓ）＝６０×０．４＝２４［Ｈｚ］となる。周波数帯域設定値ｆｓがこれを超えないという条件の下での最も高い剛性に対応する剛性値は、表５から剛性値「１」となる。すなわち、このとき、安定剛性値算出部１５７が出力する安定剛性値は剛性値「１」である。
【０１８０】
剛性値が「４」からスタートした場合では時刻ｔ１にてすぐにフィードバックループ１０４に発振が生じたが、この場合は、発振が励起されるぎりぎりのレベルである。このため、時刻ｔ１にて発振は生じず、時刻ｔ２において図２１のようにフィードバックループ１０４に発振が生じる。そして、この場合、時刻ｔ１から時刻ｔ２までの時間が所定の時間（例えば１秒）よりも長かったとする。従って、同様に時刻ｔ３にて発振が検知されるが、剛性値更新部１３１の出力値は時刻ｔ４においては、スタート時の剛性値「３」に対して前述の安定剛性値である剛性値「１」ではなく階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される。
【０１８１】
その結果、周波数帯域設定値ｆｓが低くなり、図２１に示すように発振は収束する。このようにイナーシャ推定部１５３の出力値が有効となってからフィードバックループ１０４に発振が生じるまでの時間が長いということは、発振が停止する剛性値はスタート時の剛性値「３」に対して、大きく乖離していないということを意味する。従って、この場合、スタート時の剛性値「３」に対して、安定剛性値である剛性値「１」に更新されるよりも、階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される方が望ましい結果となる。
【０１８２】
このようにイナーシャ推定部１５３の出力が有効となったときから所定の時間を超えてフィードバックループ１０４の発振を検知したときは、剛性値更新部１３１がその出力値を安定剛性値の値に関わらず、現在の出力値よりも階数「１」だけ低い剛性に対応する値に切り替える処理を行うことで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ剛性値更新部１３１の出力値が状況に応じてより望ましい剛性値に設定されることになる。
【０１８３】
図２３は、本制御装置の他の動作例を説明するためのタイミングチャートである。次に、図２３に示すように剛性値が「３」からスタートし、イナーシャ初期設定値すなわち、この時点のイナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒの１．１倍であった場合の動作について説明する。
【０１８４】
時刻ｔ１において、イナーシャ設定部の出力値と実際の慣性モーメントの値の比が１．０になると、前述の周波数帯域ｆｓ×（Ｊｉ／Ｊｓ）は、ｆｓ＝６０［Ｈｚ］、Ｊｉ／Ｊｓ＝（Ｊｉ／Ｊｒ）／（Ｊｓ／Ｊｒ）＝１．１／１．０＝１．１であるので、ｆｓ×（Ｊｉ／Ｊｓ）＝６０×１．１＝６６［Ｈｚ］となる。周波数帯域設定値ｆｓがこれを超えないという条件の下での最も高い剛性に対応する剛性値は、表５から剛性値「３」となる。すなわち、このとき、安定剛性値算出部１５７が出力する安定剛性値は剛性値「３」である。
【０１８５】
この場合は、発振が励起されるぎりぎりのレベルであるため、時刻ｔ１にて発振は生じず、時刻ｔ２においてフィードバックループ１０４に発振が生じる。そして、この場合、時刻ｔ１から時刻ｔ２までの時間が所定の時間（例えば１秒）よりも短かったとする。時刻ｔ３にて発振が検知されるが、剛性値更新部１３１の出力値は通常であれば時刻ｔ４において、前述の安定剛性値である剛性値「３」に更新されるが、この場合、安定剛性値が現在より低い剛性に対応する値ではない。従って、剛性値更新部１３１の出力値は時刻ｔ４において、安定剛性値である剛性値「３」ではなく、階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される。
【０１８６】
その結果、周波数帯域設定値ｆｓが低くなり、発振は収束する。このようにイナーシャ初期設定値がイナーシャ推定部１５３の出力値よりも大きかった場合、安定剛性値は、現在の剛性と同じか、または高い剛性に対応する値となってしまう。その場合、安定剛性値である剛性値「３」に更新されるよりも、階数「１」だけ低い剛性に対応する値である剛性値「２」に更新される方が望ましい結果となる。
【０１８７】
このように、イナーシャ推定部１５３の出力が有効となったときからフィードバックループ１０４の発振を検知するまでの時間が所定の時間を超えているかどうかに関わらず、安定剛性値算出部１５７が出力する安定剛性値が現在より低い剛性に対応する値でなければ、剛性値更新部１３１がその出力値を、現在の出力値よりも階数「１」だけ低い剛性に対応する値に切り替える処理を行う。このような構成とすることで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ剛性値更新部１３１の出力値が状況に応じてより望ましい剛性値に設定されることになる。
【０１８８】
以上のように、本実施の形態におけるサーボモータの制御装置は、イナーシャ推定値が有効となったとき以降の速度ゲイン算出部の出力値がイナーシャ推定値が有効となったとき以前の速度ゲイン算出部の出力値の値以下となる条件を満たし、イナーシャ推定値が有効となったとき以降の剛性値として、最も高い剛性に対応する値を安定剛性値として算出する安定剛性値算出部１５７を有しており、イナーシャ推定値が有効となったときから所定の時間以内に、発振検知信号が発振を検知したことを示すとき、剛性値更新部１３１は、その出力値を安定剛性値算出部１５７の出力値に切り替え、イナーシャ推定値が有効となったときから所定の時間以降に、発振検知信号が発振を検知したことを示すとき、剛性値更新部１３１は、その出力値を現在の出力値よりも所定の階数だけ低い剛性に対応する値に切り替える構成としている。
【０１８９】
また、本実施の形態の制御装置は、イナーシャ推定値が有効となったときから所定の時間以内に、発振検知信号が発振を検知したことを示すとき、安定剛性値が現在より低い剛性に対応する値である場合は、剛性値更新部１３１は、その出力値を安定剛性値算出部１５７の出力値に切り替え、イナーシャ推定値が有効となったときから所定の時間以降に発振検知信号が発振を検知したことを示す場合、または、イナーシャ推定値が有効となったときから所定の時間以内に発振検知信号が発振を検知したことを示す場合であって、安定剛性値が現在の剛性値以上の剛性に対応する場合に、剛性値更新部１３１が、その出力値を現在の出力値よりも所定の階数だけ低い剛性に対応する値に切り替える構成としてもよい。
【０１９０】
このように、本実施の形態の制御装置によれば、剛性値更新部１３１が入力された剛性値に更新して出力するとともに発振検知部１０５がフィードバックループ１０４の発振を検知したときに、その出力値を自動的に最適値に更新するという動作を行うことで、フィードバックループ１０４に生ずる発振を短時間で停止させることができ、かつ、外部からの剛性値の再調整の必要性が少ないサーボモータの制御装置を実現することができる。
【０１９１】
（実施の形態７）
図２４は、本発明の実施の形態７におけるサーボモータの制御装置のブロック図である。実施の形態５との比較において、実施の形態７では、さらに剛性値判定部１６１を備える。なお、図２４において、図１９と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。
【０１９２】
図２４において、剛性値判定部１６１は、剛性値更新部１３１の出力値を入力し、その値が所定の剛性値に等しい値または所定の剛性値よりも低い剛性に対応する値であるかどうかを判断する。また、発振検知部１０５の出力する発振検知信号を入力し、フィードバックループ１０４が発振しているかどうかを判断する。そして、剛性値判定部１６１は、剛性値更新部１３１の出力値が所定の剛性値に等しい値または所定の剛性値よりも低い剛性に対応する値であり、かつフィードバックループ１０４が発振していると判断すればイナーシャ低減を指令するＨレベル、そうでなければＬレベルの２値のイナーシャ低減指令信号として、イナーシャ設定部１５２に対して出力する。
【０１９３】
以上のように構成されたサーボモータの制御装置について、具体例を挙げて、その動作を説明する。また、本実施の形態においても、実施の形態５と同様に、イナーシャ初期設定値が実際の慣性モーメントの値よりも大きな値であった場合や、負荷１０２の慣性モーメントが急変した場合など、速度ゲインＫｖの値が増加し、フィードバックループ１０４の実際の周波数帯域幅が増加したときに生じる発振を、図２４に示した構成により、自動的に確実に発振を停止させるような動作について説明する。
【０１９４】
図２５は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。
【０１９５】
図２５では、剛性値更新部１３１の出力値とともに、イナーシャ設定値と実際の慣性モーメントの値の比、およびフィードバックループ１０４の実際の周波数帯域幅ｆｓｒの値（単位はＨｚ）などを示している。また、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。発振検知部１０５としては、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。
【０１９６】
図２５において、時刻ｔ１以前では、イナーシャ推定部１５３の出力値であるイナーシャ推定値が有効であり、イナーシャ設定値Ｊｓが実際の慣性モーメントの値Ｊｒに等しい、すなわち、１．０倍となるような一例を挙げている。周波数帯域設定値ｆｓの値は、表５から剛性値「１」に対して１０（Ｈｚ）であるから、実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１０×１．０＝１０（Ｈｚ）となる。
【０１９７】
また、時刻ｔ１で、負荷１０２の慣性モーメントがそれまでの１／８に急変し、イナーシャ設定部１５２の出力値であるイナーシャ設定値が実際の慣性モーメントの値の８倍になる。この場合は、実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１０×８＝８０（Ｈｚ）となる。また、このように、フィードバックループ１０４の実際の周波数帯域幅が広くなったので、時刻ｔ１においてフィードバックループ１０４に発振が生じる。
【０１９８】
このような発振が生じると、図２５に示すように、発振検知部１０５における発振継続判定部１２２のカウンタの出力値は増加し、時刻ｔ２において、発振検知部１０５からは、発振を検知したとする発振検知信号（Ｈレベル）が出力される。
【０１９９】
剛性値判定部１６１は、この発振検知信号を受け、また、このとき、剛性値更新部１３１の出力値は所定の剛性値である剛性値「０」に等しい。このため、剛性値判定部１６１は、図２５に示すように、時刻ｔ２にてイナーシャ低減指令信号として、イナーシャ低減を指令するＨレベルの値を、イナーシャ設定部１５２に対して出力する。
【０２００】
イナーシャ設定部１５２は、このイナーシャ低減指令信号を受けて、イナーシャ設定値を現在の出力値に対し、１／２に低減した値に切り替えて、時刻ｔ３にて出力する。従って、図２５に示すように、時刻ｔ３において、イナーシャ設定値は実際の慣性モーメントの値の８倍から４倍に変化する。
【０２０１】
その結果、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒの値も、ｆｓｒ＝１０×４＝４０（Ｈｚ）となる。これによって、実際の周波数帯域幅ｆｓｒの値が十分に下がったので、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ４にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。
【０２０２】
このように、イナーシャ設定部１５２の出力するイナーシャ設定値が見かけ上、相対的に増加することにより、フィードバックループ１０４の実際の周波数帯域幅が増大し、フィードバックループ１０４に発振が生じたとしても、剛性値判定部１６１は、剛性値更新部１３１の出力値を判断しつつ、イナーシャ設定値を所定の比率で低減する処理を自動的に行う。このため、本実施の形態の制御装置によれば、フィードバックループ１０４に生ずる発振を確実に停止させることができ、負荷１０２に与える損傷を小さく抑えることができる。
【０２０３】
なお、ここでは、イナーシャ設定部１５２がイナーシャ低減指令信号を受けたとき、出力するイナーシャ設定値を現在の出力値に対し１／２に低減した値に切り替えて出力するような例を挙げたが、１／２でなく、他の比率に低減した値に切り替えて出力してもよい。この場合、低減する比率が高ければイナーシャ設定値が実際の慣性モーメントよりも低くなり過ぎてしまう可能性があり、逆に低減する比率が低ければ発振が停止するまでに時間が掛かる可能性がある。従って、両者の長所短所を考慮の上で低減する比率を決定すればよい。
【０２０４】
また、ここでは、所定の剛性値を、剛性値「０」とした例を挙げた。基本的には所定の剛性値として、最も低い剛性に対応する値を選択するのが普通であるが、必ずしも最も低い剛性に対応する値でなくてもよい。すなわち、例えば、この場合であれば、剛性値「１」としてもよい。ただし、この所定の剛性値は、イナーシャ設定値が実際の慣性モーメントに等しい値であるとき、フィードバックループ１０４に生ずる発振が確実に停止する剛性値であることが必要である。
【０２０５】
図２６は、本実施の形態の制御装置の他の動作例を説明するためのタイミングチャートである。次に、図２６に示すように、剛性値が「１」からスタートした場合の動作について説明する。図２６では、イナーシャ設定部１５２に対するイナーシャ初期設定値として実際の慣性モーメントの８倍の値が設定されているような場合を示している。この場合、周波数帯域設定値ｆｓの値は、表５から剛性値１に対して２０（Ｈｚ）であるから、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝２０×８＝１６０（Ｈｚ）となる。また、図２６では、時刻ｔ１でサーボオンとなるが、実際の周波数帯域幅ｆｓｒが大きいので、時刻ｔ１において、フィードバックループ１０４に発振が生じたような場合を示している。すなわち、図２６に示すように、発振継続判定部１２２内部のカウンタの値は時刻ｔ２にて所定の値以上になるので、発振検知信号は、時刻ｔ２にて発振の発生を示すＨレベルとなる。
【０２０６】
剛性値判定部１６１は、この発振検知信号を受け、このとき、剛性値更新部１３１の出力値は剛性値「１」であり、所定の剛性値である剛性値「０」よりも高い剛性に対応する値であるので、イナーシャ低減指令信号として、Ｌレベルの値を保持し、イナーシャ低減を指令していない状態となっている。
【０２０７】
一方、剛性値更新部１３１は、この発振検知信号による発振の発生を示すＨレベルの値を受けて、出力する剛性値を現在の剛性値「１」から所定の階数だけ低い剛性値「０」を時刻ｔ３にて出力する。
【０２０８】
これにより、周波数帯域設定値ｆｓが低くなり、図２６に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝１０×８＝８０（Ｈｚ）となる。ところが、発振が停止するほどには低くないので、図２６に示すように、時刻ｔ３以降も発振は収束することなく継続してしまっている。これは、イナーシャ設定部１５２の出力するイナーシャ設定値、すなわちイナーシャ初期設定値が実際の慣性モーメントの値よりも大幅に大きいことが原因である。
【０２０９】
しかし、剛性値更新部１３１の出力値は、所定の剛性値である剛性値「０」に等しくなったので、剛性値判定部１６１は、図２６に示すように、時刻ｔ４にてイナーシャ低減指令信号として、イナーシャ低減を指令するＨレベルの値をイナーシャ設定部１５２に対して出力する。イナーシャ設定部１５２は、このイナーシャ低減指令信号を受けて、出力するイナーシャ設定値を現在の出力値に対し１／２に低減した値に切り替えて時刻ｔ５にて出力する。従って、時刻ｔ５において、イナーシャ設定部１５２の出力値は実際の慣性モーメントの値の８倍から４倍に変化する。
【０２１０】
その結果、図２６に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒも、ｆｓｒ＝１０×４＝４０（Ｈｚ）となる。このように、実際の周波数帯域幅ｆｓｒが十分に下がったので、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ６にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。
【０２１１】
このようにイナーシャ初期設定値が実際の慣性モーメントよりも大きな値であったことが原因でフィードバックループ１０４に発振が生じたとしても、剛性値判定部１６１は、剛性値更新部１３１の出力値を判断しつつ、イナーシャ設定部１５２の出力値を所定の比率で低減する処理を自動的に行うので、フィードバックループ１０４に生ずる発振を確実に停止させることができ、負荷１０２に与える損傷を小さく抑えることができる。
【０２１２】
なお、イナーシャ設定部１５２が出力するイナーシャ設定値を現在の出力値に対し１／２に低減した値に切り替えて出力した結果、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒが十分に低い値にならず、フィードバックループ１０４に生じた発振が停止しなかったとしても、前述の一連の処理を発振が停止するまで繰り返すことにより確実に発振を停止させることが可能である。ただし、所定の剛性値に対応した周波数帯域設定値ｆｓが十分に低い周波数であることが必要である。
【０２１３】
（実施の形態８）
図２７は、本発明の実施の形態８におけるサーボモータの制御装置のブロック図である。なお、図２７において、図２４と同じ構成要素については同一の符号を付しており、これらの詳細な説明は省略する。
【０２１４】
実施の形態７との比較において、実施の形態８では、剛性値判定部１６１を備えておらず、発振検知部１０５の発振検知信号は、直接にイナーシャ設定部１５２に供給される。また、図２４においては、発振検知信号が剛性値更新部１３１に入力されていたが、図２７においては、発振検知信号が剛性値更新部１３１に入力されることはない。
【０２１５】
以上のように構成されたサーボモータの制御装置について、具体例を挙げて、その動作を説明する。なお、剛性値およびそれに対応した制御パラメータは表５に示した各値を用いる。発振検知部１０５としては、図３で示したような発振継続判定部１２２が上述のようなカウンタを備えた一例を用いる。
【０２１６】
図２８は、本実施の形態の制御装置の一動作例を説明するためのタイミングチャートである。図２８に示すように、剛性値が「１」からスタートし、このとき、イナーシャ設定部１５２に対するイナーシャ初期設定値として実際の慣性モーメントの８倍の値が設定されている場合の動作について説明する。この場合、周波数帯域設定値ｆｓの値は、表５から剛性値「１」に対して２０（Ｈｚ）であるから、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝２０×８＝１６０（Ｈｚ）となる。また、図２８では、時刻ｔ１でサーボオンとなるが、実際の周波数帯域幅ｆｓｒが大きいので、時刻ｔ１において、フィードバックループ１０４に発振が生じたような場合を示している。すなわち、図２８に示すように、発振継続判定部１２２内部のカウンタの値は時刻ｔ２にて所定の値以上になるので、発振検知信号は、時刻ｔ２にて発振の発生を示すＨレベルとなる。
【０２１７】
イナーシャ設定部１５２は、この発振検知信号を受けて、その出力値を現在の出力値の１／２に低減した値に時刻ｔ３にて切り替える。従って、図２８に示すように、時刻ｔ３においてイナーシャ設定値は実際の慣性モーメントの値の８倍から４倍に変化する。
【０２１８】
これにより、図２８に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒは、ｆｓｒ＝２０×４＝８０（Ｈｚ）となる。ところが、発振が停止するほどには低くないので、図２８に示すように、時刻ｔ３以降も発振は収束することなく継続してしまっている。また、図２８に示すように、発振検知信号も発振を検知したことを示すＨレベルのままとなっている。これを受けて、イナーシャ設定部１５２は、その出力値を現在の出力値の１／２に低減した値に時刻ｔ４にて切り替える。従って、図２８に示すように、時刻ｔ４においてイナーシャ設定部１５２の出力値は実際の慣性モーメントの値の４倍から２倍に変化する。
【０２１９】
その結果、図２８に示すように、フィードバックループ１０４の実際の周波数帯域幅ｆｓｒも、ｆｓｒ＝２０×２＝４０（Ｈｚ）となる。実際の周波数帯域幅ｆｓｒが十分に下がったので、発振は収束し、これに伴ってカウンタの値も減少する。この後、時刻ｔ６にて、発振継続判定部１２２は、発振が停止したとする発振検知信号（Ｌレベル）に切り替え、これによって一連の処理を完了する。
【０２２０】
このように、状況によっては剛性値更新部１３１の出力値が変化しなくても、イナーシャ設定部１５２がその出力値を低減することで、フィードバックループ１０４に生じた発振を停止することができる。しかし、このような動作が可能なのは、発振の原因がイナーシャ設定部の出力値と実際の慣性モーメントの値との乖離であり、剛性値を変更しなくてもイナーシャ設定部の出力値が実際の慣性モーメントの値に近い値となることで、発振が停止することが明らかとなっている場合に限られる。このような場合には、フィードバックループに発振が生じたとしても剛性値が下がることなく発振が停止するために、剛性値を再調整することなく、速度指令または位置指令に対する最適な応答が維持できるというメリットが得られる。
【０２２１】
以上のように、発振検知部１０５がフィードバックループ１０４の発振を検知したときに、イナーシャ設定部１５２がその出力値を自動的に低減させるという動作を行うことで、フィードバックループ１０４に生ずる発振を確実に停止させるサーボモータの制御装置を実現することができる。
【０２２２】
なお、上述した各実施の形態では、この発明に必要な全ての部が同一の制御装置に含まれているが、それぞれの部が別々の装置に含まれていてもよい。
【０２２３】
また、上述した各実施の形態では、本発明のサーボモータの制御装置は各ブロック図に示したような機能ブロックで構成されるような実施の形態の例を挙げて説明したが、例えば、各ブロックにおける処理を手順に従ったステップの実行により実現されるサーボモータの制御方法であってもよい。具体的には、各ブロックの処理に対応したステップを順次実行するようなプログラムをメモリなどに記憶させ、例えば、マイクロプロセッサのようなＣＰＵが、メモリに記憶されたプログラムを順次読み取り、読み取ったプログラムに従って処理を実行するような構成であってもよい。
【０２２４】
すなわち、例えば、サーボモータの制御手順として、フィードバックループの発振を検知するステップと、フィードバックループの制御パラメータ群における制御パラメータの設定を、発振の検知に基づき操作制御するステップと、制御パラメータを設定するための設定値が供給され、操作制御に応じて更新しながら制御パラメータをフィードバックループに設定するステップとを備え、発振が検知されていないとき、操作制御により、供給された設定値に応じた制御パラメータをフィードバックループに設定し、発振が検知されたとき、操作制御により、フィードバックループの周波数帯域幅が狭くなるような制御パラメータをフィードバックループに設定するようなプログラムをメモリに記憶させる。そして、マイクロプロセッサがメモリに記憶されたこのプログラムを順次読み取り、読み取ったプログラムに従って処理を実行することで、本発明のサーボモータの制御方法が実現できる。
【０２２５】
また、実施の形態４のサーボモータはノッチフィルタ１４１を備えるが、このノッチフィルタ１４１を、他の実施形態のサーボモータに適応してもよい。
【産業上の利用可能性】
【０２２６】
本発明のサーボモータの制御装置は、速やかに発振を停止させることができ、負荷に与える損傷を最小限に抑えるとともに、制御パラメータの調整をスムーズかつ短時間に行うことができるため、各種の制御パラメータを調整する機能を備えたサーボモータやその他のモータの制御装置として有用である。
【符号の説明】
【０２２７】
１０１    サーボモータ
１０２    負荷
１０３    エンコーダ
１０４    フィードバックループ
１０５    発振検知部
１０６    パラメータ操作部
１０８    速度ゲイン乗算部
１０９    位置ゲイン乗算部
１１０    フィードフォワードゲイン乗算部
１１１，１５４    微分演算部
１１２    積分演算部
１１３    演算部
１１４    減算部
１１５    乗算部
１１６，１１７，１１８    パラメータ更新部
１２０    バンドパスフィルタ
１２１    振幅判定部
１２２    発振継続判定部
１２５    設定値保存部
１２６    設定値更新検知部
１２７    旧値保存部
１２８    出力値決定部
１３０    パラメータ設定部
１３１    剛性値更新部
１４１，１４４    ノッチフィルタ
１４２    中心周波数調整部
１４３    ハイパスフィルタ
１４５    ノッチ中心周波数修正部
１５２    イナーシャ設定部
１５３    イナーシャ推定部
１５７    安定剛性値算出部
１６１    剛性値判定部
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部から通知される指令情報と検出部により検出された回転動作に関する情報とからそれらの偏差量を求め、前記偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、前記演算処理により生成された回転制御信号によりサーボモータの回転動作を制御することで、前記サーボモータの回転動作が前記指令情報に追従するようにフィードバック制御するフィードバックループを有したサーボモータの制御装置であって、
前記フィードバックループの発振を検知し、その検知結果を示す発振検知信号を出力する発振検知部と、
前記フィードバックループの前記制御パラメータ群における制御パラメータの設定を、前記発振検知信号に基づき操作指示するパラメータ操作部と、
制御パラメータを設定するための設定値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記制御パラメータを前記フィードバックループに設定する更新部とを備え、
前記発振検知信号が発振を検知していないことを示すとき、前記パラメータ操作部は前記更新部に対して、供給された設定値に応じた制御パラメータを設定するよう操作指示し、前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部は前記更新部に対して、前記フィードバックループの周波数帯域幅が狭くなるような制御パラメータを設定するよう操作指示することを特徴とするサーボモータの制御装置。
【請求項２】
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記更新部は、前記制御ゲインの設定が変更されることで前記周波数帯域幅が狭くなるように、前記フィードバックループに対して制御パラメータを設定することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項３】
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記更新部は、最後に更新して設定した制御パラメータを以前の制御パラメータへと戻し、その戻した制御パラメータを前記フィードバックループに設定することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項４】
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記剛性値更新部は、最後に更新して設定した剛性値を以前の剛性値へと戻し、この戻した剛性値を前記パラメータ設定部に供給することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項５】
前記剛性値更新部は、前記フィードバックループが休止状態から能動状態に変化したときには、更新する以前の出力値としてフィードバックループの発振が確実に停止すると予想される所定の剛性に対応する値を設定することを特徴とする請求項４に記載のサーボモータの制御装置。
【請求項６】
前記フィードバックループは、発振を抑制するためのノッチフィルタと、前記フィードバックループの発振が最小になるように前記ノッチフィルタの中心周波数を調整する中心周波数調整部とを備え、
前記剛性値更新部は、前記中心周波数調整部が前記ノッチフィルタの中心周波数を調整している間、その出力値を更新しないことを特徴とする請求項４に記載のサーボモータの制御装置。
【請求項７】
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記剛性値更新部は、
現在の更新した出力値と更新する以前の出力値とを比較し、更新する以前の出力値の方が高い剛性に対応する値である場合、および現在の更新した出力値と更新する以前の出力値とが等しい値である場合のいずれかの場合には、その出力値を現在の更新した出力値よりも所定の階数だけ低い剛性に対応する値に更新し、この更新した値を前記パラメータ設定部に供給することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項８】
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記剛性値更新部は、現在の更新した出力値と更新する以前の出力値とを比較し、
更新する以前の出力値の方が低い剛性に対応する値であり、かつ、出力値の更新から所定の時間以上経過していなければ、その出力値を更新する以前の出力値に戻し、
更新する以前の出力値の方が高い剛性に対応する値である場合、現在の更新した出力値と更新する以前の出力値とが等しい値である場合、および出力値の更新から所定の時間以上経過している場合のいずれかの場合には、その出力値を現在の更新した出力値よりも所定の階数だけ低い剛性に対応する値に更新し、この更新した値を前記パラメータ設定部に供給することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項９】
サーボモータおよびその負荷の慣性モーメントを推定し、この推定により生成したイナーシャ推定値を出力するイナーシャ推定部と、
前記イナーシャ推定値が有効となった後はその値を、それ以前は前記慣性モーメントとして設定されたイナーシャ値を、前記慣性モーメントの値であるイナーシャ設定値として出力するイナーシャ設定部とをさらに備え、
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記イナーシャ推定値が有効となった後に、前記発振検知信号が発振を検知したことを示すとき、前記パラメータ操作部の操作指示に応じて、前記剛性値更新部は、剛性値を現在の値よりも所定の階数だけ低い剛性に対応する値に切り替え、この切り替えた値を前記パラメータ設定部に供給することを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項１０】
前記イナーシャ推定値が有効となったときから所定の時間以内に、前記発振検知信号が発振を検知したことを示すとき、前記剛性値更新部は、その出力値を現在の出力値よりも所定の第１の階数だけ低い剛性に対応する値に切り替え、
前記イナーシャ推定値が有効となったときから所定の時間以降に、前記発振検知信号が発振を検知したことを示すとき、前記剛性値更新部は、その出力値を現在の出力値よりも所定の第２の階数だけ低い剛性に対応する値に切り替え、
前記第１の階数は、前記第２の階数よりも大きな値であることを特徴とする請求項９に記載のサーボモータの制御装置。
【請求項１１】
前記サーボモータおよびその負荷の慣性モーメントの設定値と周波数帯域設定値とを乗算して速度ゲインとして出力する速度ゲイン算出部と、
前記イナーシャ推定値が有効となったとき以降の前記速度ゲイン算出部の出力値が前記イナーシャ推定値が有効となったとき以前の前記速度ゲイン算出部の出力値の値以下となる条件を満たし、前記イナーシャ推定値が有効となったとき以降の剛性値として、最も高い剛性に対応する値を安定剛性値として算出する安定剛性値算出部とをさらに有し、
前記イナーシャ推定値が有効となったときから所定の時間以内に、前記発振検知信号が発振を検知したことを示すとき、前記剛性値更新部は、その出力値を前記安定剛性値算出部の出力値に切り替え、
前記イナーシャ推定値が有効となったときから所定の時間以降に、前記発振検知信号が発振を検知したことを示すとき、前記剛性値更新部は、その出力値を現在の出力値よりも所定の階数だけ低い剛性に対応する値に切り替えることを特徴とする請求項９に記載のサーボモータの制御装置。
【請求項１２】
前記イナーシャ推定値が有効となったときから所定の時間以内に、前記発振検知信号が発振を検知したことを示すとき、前記安定剛性値が現在より低い剛性に対応する値である場合は、前記剛性値更新部は、その出力値を安定剛性値算出部の出力値に切り替え、
前記イナーシャ推定値が有効となったときから所定の時間以降に前記発振検知信号が発振を検知したことを示す場合、または、前記イナーシャ推定値が有効となったときから所定の時間以内に前記発振検知信号が発振を検知したことを示す場合であって、前記安定剛性値が現在の剛性値以上の剛性に対応する場合に、前記剛性値更新部は、その出力値を現在の出力値よりも所定の階数だけ低い剛性に対応する値に切り替えることを特徴とする請求項１１に記載のサーボモータの制御装置。
【請求項１３】
サーボモータおよびその負荷の慣性モーメントを推定し、この推定により生成したイナーシャ推定値を出力するイナーシャ推定部と、
前記イナーシャ推定値と前記慣性モーメントとして設定されたイナーシャ値とのいずれかの値をイナーシャ設定値として出力するイナーシャ設定部とをさらに備え、
前記発振検知信号が発振を検知したことを示すとき、前記イナーシャ設定部は、その出力値を現在の出力値に対して所定の比率で低減した値に切り替えることを特徴とする請求項１に記載のサーボモータの制御装置。
【請求項１４】
前記更新部は、
前記設定値としてサーボモータの負荷の剛性に応じた剛性値が供給され、前記パラメータ操作部の操作指示に応じて更新しながら前記剛性値を出力する剛性値更新部と、
前記剛性値更新部の剛性値の値から複数の制御パラメータの値へと変換し、変換したそれぞれの制御パラメータの値を前記フィードバックループに供給し、設定するパラメータ設定部とを備え、
前記発振検知信号と前記剛性値更新部が出力した剛性値とを受けて、前記イナーシャ設定部にイナーシャ低減指令信号を出力する剛性値判定部をさらに備え、
前記発振検知信号が発振を検知したことを示すとき、
前記剛性値判定部は、前記剛性値更新部の出力値が所定の剛性値に等しい値、および所定の剛性値よりも低い剛性に対応する値のいずれかの値であると判定すると、前記イナーシャ設定部に対しその出力値を現在の出力値に対して所定の比率で低減した値に切り替えるように指令することを特徴とする請求項１３に記載のサーボモータの制御装置。
【請求項１５】
外部から通知される指令情報と検出部により検出された回転動作に関する情報とからそれらの偏差量を求め、前記偏差量に対して制御ゲインを含む所定の制御パラメータ群により演算処理を施し、前記演算処理により生成された回転制御信号によりサーボモータの回転動作を制御することで、前記サーボモータの回転動作が前記指令情報に追従するようにフィードバック制御するフィードバックループを有したサーボモータの制御方法であって、
前記フィードバックループの発振を検知するステップと、
前記フィードバックループの前記制御パラメータ群における制御パラメータの設定を、前記発振の検知に基づき操作制御するステップと、
制御パラメータを設定するための設定値が供給され、前記操作制御に応じて更新しながら前記制御パラメータを前記フィードバックループに設定するステップとを備え、
前記発振が検知されていないとき、前記操作制御により、供給された設定値に応じた制御パラメータを前記フィードバックループに設定し、前記発振が検知されたとき、前記操作制御により、前記フィードバックループの周波数帯域幅が狭くなるような制御パラメータを前記フィードバックループに設定することを特徴とするサーボモータの制御方法。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2008087893.tif 000045
【図２Ａ】
2008087893.tif 000046
【図２Ｂ】
2008087893.tif 000047
【図２Ｃ】
2008087893.tif 000048
【図３】
2008087893.tif 000049
【図４】
2008087893.tif 000050
【図５】
2008087893.tif 000051
【図６】
2008087893.tif 000052
【図７】
2008087893.tif 000053
【図８】
2008087893.tif 000054
【図９】
2008087893.tif 000055
【図１０】
2008087893.tif 000056
【図１１】
2008087893.tif 000057
【図１２】
2008087893.tif 000058
【図１３】
2008087893.tif 000059
【図１４】
2008087893.tif 000060
【図１５】
2008087893.tif 000061
【図１６Ａ】
2008087893.tif 000062
【図１６Ｂ】
2008087893.tif 000063
【図１７】
2008087893.tif 000064
【図１８】
2008087893.tif 000065
【図１９】
2008087893.tif 000066
【図２０】
2008087893.tif 000067
【図２１】
2008087893.tif 000068
【図２２】
2008087893.tif 000069
【図２３】
2008087893.tif 000070
【図２４】
2008087893.tif 000071
【図２５】
2008087893.tif 000072
【図２６】
2008087893.tif 000073
【図２７】
2008087893.tif 000074
【図２８】
2008087893.tif 000075
【図２９】
2008087893.tif 000076
【国際調査報告】
2008087893.tif 000077
2008087893.tif 000078