(57)【要約】【課題】サーボ制御系の調整を、調整パラメータ変更、調整者の手作業による発振状態の確認、再び調整パラメータ変更という手順で実施しており、調整者の主観による為発振検出の判定が一定しない、調整作業に時間がかかる等の問題があり、また発振検出の遅れにより機械系が損傷してしまうという恐れもあった。【解決手段】検出範囲内におけるトルク指令の各振動振幅値と当該振動での下限ピークと上限ピーク間の各時間を検出し、前記検出値から各振動ごとのエネルギー値を算出し、前記検出範囲におけるトルク指令の振動回数をＮとし、１回目から各回数までの振動エネルギー値の各積算値を算出し、前記各積算値の総和を算出し、これを１回からＮ回目までの前記積算値にＮ／２を乗じた値と大小比較し、前記各積算値の総和の方が小さければ、発振検出する。【選択図】    図５
2004187439.tif 000002
【特許請求の範囲】
【請求項１】
速度指令を入力としトルク指令を出力する速度制御器と、トルク指令を入力としてモータを駆動する電流制御器とを備えたモータ制御装置と、モータ速度またはモータに接続された機械負荷速度を検出する検出器と、モータ及び機械負荷とからなるサーボ制御系において、
検出範囲を設定し、
検出範囲内におけるトルク指令の各振動振幅値を検出し、
当該振動での下限ピークと上限ピーク間の各時間を検出し、
前記振動振幅値と前記検出した時間との関数により、各振動ごとのエネルギー値を算出し、
前記検出範囲におけるトルク指令の振動回数をＮとし、
１回と２回目との振動エネルギー値の積算値を算出し、１回から３回目までの前記積算値を算出し、以下同様に算出していき、１回からＮ−２回目までの前記積算値を算出し、１回からＮ−１回目までの前記積算値を算出し、１回からＮ回目までの前記積算値を算出し、
前記各積算値の総和を算出し、
１回からＮ回目までの前記積算値にＮ／２を乗じた値と前記各積算値の総和とを大小比較し、
前記各積算値の総和の方が小さければ、発振検出することを特徴とするサーボ制御系の発振検出方法。
【請求項２】
速度指令を入力としトルク指令を出力する速度制御器と、トルク指令を入力としてモータを駆動する電流制御器とを備えたモータ制御装置と、モータ速度またはモータに接続された機械負荷速度を検出する検出器と、モータ及び機械負荷とからなるサーボ制御系において、
検出範囲を設定し、
検出範囲内におけるトルク指令の各振動振幅値を検出し、
当該振動での下限ピークと上限ピーク間の各時間を検出し、
前記振動振幅値と前記検出した時間との関数により、各振動ごとのエネルギー値を算出し、
前記検出範囲におけるトルク指令の振動回数をＮとし、
１回からＮ回目までの振動エネルギー値の積算値を算出し、
前記積算値を予め設定した第１の所定値と大小比較し、
前記積算値の方が大きければ、発振検出することを特徴とするサーボ制御系の発振検出方法。
【請求項３】
前記サーボ制御系の発振検出方法において、
１回からＮ回目までの前記積算値にＮ／２を乗じた値と前記各積算値の総和とを大小比較した場合に、前記各積算値の総和の方が小さく、
かつ、１回からＮ回目までの振動エネルギー値の積算値を予め設定した第１の所定値と大小比較した場合に、前記積算値の方が大きくなれば、発振検出することを特徴とする請求項１および請求項２記載のサーボ制御系の発振検出方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はサーボ系において動作時及び調整時に発生する発振状態を効果的に検出する発振検出方法に関する。
【０００２】
【従来の技術】
通常、サーボ制御系はフィードバック制御を行っている。サーボモータによって機械負荷を駆動する速度制御装置の一例は図８に示すようになっている。図８において、減算器１０は速度指令Ｖｒｅｆからモータ速度Ｖｆｂを減算して速度偏差を求め、前記速度偏差を速度制御器１１に出力する。速度制御器１１は前記速度偏差が０になるように制御パラメータを調節し、トルク指令Ｔｒｅｆを電流制御器１２へ出力する。電流制御器１２は前記トルク指令Ｔｒｅｆを入力し、サーボモータ１３を駆動する。機械負荷１４はサーボモータ１３にトルク伝達用の連結軸を介して結合されている。そのとき、モータ位置はサーボモータに取り付けられたエンコーダ１５で回転量に応じてパルスを作成し、前記パルスを微分して、モータ速度Ｖｆｂが算出されている。
このようなサーボ制御系で充分な性能を引き出すためには、結合された機械に応じて調整者がサーボ制御系の制御パラメータを調整する必要がある。調整者は発振音を聞きながら、あるいは位置偏差やトルク指令波形をモニタしながら、調整作業を行う。しかし、制御パラメータを変化させると機械系の共振及び無駄時間などによりサーボ制御系が発振する場合があり、場合によっては機械を破壊することがあった。
このような問題に対して、従来、調整者はまず発振しないような低めの制御パラメータを設定して、実際にその制御パラメータによってサーボモータを運転して発振が起きないことを確認し、次に徐々に制御パラメータを変化させ、再び確認する人手による操作の繰り返しで対処していた。また、電流指令値の低周波成分をハイパスフィルタでカットし、その電流指令値の２乗平均を求め、その２乗平均値と設定値とを比較することによって発振を検出する方法をとっていた（例えば、特許文献１参照。）。
【０００３】
【特許文献１】
特開平８−１１６６８８号公報
【０００４】
【発明が解決しようとする課題】
ところが、前記従来技術では、サーボモータの発振検出を調整者の主観によって判断しており、共通した判断基準がなく、発振検出の判定が一定しないという問題点があった。また、前記特許文献１による方法では、電流指令値の低周波成分をハイパスフィルタで除去するので、ハイパスフィルタのカットオフ周波数で発振検出結果が異なるという問題点があった。
そこで本発明は、サーボ制御系の調整に際し、フィルタによる影響を受けない、調整者の主観を排除し、共通した判断基準による発振検出を可能とするサーボ制御系の発振検出方法を提供することで、その調整作業の容易化を実現し、機械系への損傷をも防止することを目的としている。
【０００５】
【課題を解決するための手段】
上記問題を解決するため、請求項１記載の発明は速度指令を入力としトルク指令を出力する速度制御器と、トルク指令を入力としてモータを駆動する電流制御器とを備えたモータ制御装置と、モータ速度またはモータに接続された機械負荷速度を検出する検出器と、モータ及び機械負荷とからなるサーボ制御系において、検出範囲を設定し、検出範囲内におけるトルク指令の各振動振幅値を検出し、当該振動での下限ピークと上限ピーク間の各時間を検出し、前記振動振幅値と前記検出した時間との関数により、各振動ごとのエネルギー値を算出し、前記検出範囲におけるトルク指令の振動回数をＮとし、１回と２回目との振動エネルギー値の積算値を算出し、１回から３回目までの前記積算値を算出し、以下同様に算出していき、１回からＮ−２回目までの前記積算値を算出し、１回からＮ−１回目までの前記積算値を算出し、１回からＮ回目までの前記積算値を算出し、
前記各積算値の総和を算出し、１回からＮ回目までの前記積算値にＮ／２を乗じた値と前記各積算値の総和とを大小比較し、前記各積算値の総和の方が小さければ、発振検出することを特徴としている。
また請求項２記載の発明は、速度指令を入力としトルク指令を出力する速度制御器と、トルク指令を入力としてモータを駆動する電流制御器とを備えたモータ制御装置と、モータ速度またはモータに接続された機械負荷速度を検出する検出器と、モータ及び機械負荷とからなるサーボ制御系において、検出範囲を設定し、検出範囲内におけるトルク指令の各振動振幅値を検出し、当該振動での下限ピークと上限ピーク間の各時間を検出し、前記振動振幅値と前記検出した時間との関数により、各振動ごとのエネルギー値を算出し、前記検出範囲におけるトルク指令の振動回数をＮとし、１回からＮ回目までの振動エネルギー値の積算値を算出し、前記積算値を予め設定した第１の所定値と大小比較し、前記積算値の方が大きければ、発振検出することを特徴としている。
トルク指令の振動振幅が非常に小さい場合でも、本発明によれば、発振状態の検出が可能となる。
また請求項３記載の発明は、前記サーボ制御系の発振検出方法において、１回からＮ回目までの前記積算値にＮ／２を乗じた値と前記各積算値の総和とを大小比較した場合に、前記各積算値の総和の方が小さく、かつ、１回からＮ回目までの振動エネルギー値の積算値を予め設定した第１の所定値と大小比較した場合に、前記積算値の方が大きくなれば、発振検出することを特徴としている。
請求項１記載の発明と請求項２記載の発明とのＡＮＤであり、正確かつ確実な発振検出が可能となる。
【０００６】
【発明の実施形態】
以下、本発明の実施例を図面にしたがって説明する。図１は本発明のサーボ制御系における発振検出器を含むサーボ制御系のブロック線図である。図５は本発明のサーボ制御系の発振検出器における発振検出方法のフローチャートである。なお、図１に示すように、本実施例の装置を適用するサーボ制御系も従来のサーボ制御系を示した図８と同様に構成されており、記述の符号と同一の符号は同一部分を示しているのでその説明は省略し、相違部のみを説明する。
図１において、発振検出器１７はトルク指令を入力し、発振検出を行い、発振を検出すると発振信号をメモリ１８に出力する。メモリ１８は発振信号を入力し、予め速度制御器１１より保存しておいた発振前の制御パラメータを速度制御器１１の制御パラメータに書き込んで変更する。本実施例は速度制御系であるが、位置制御系においても、発振検出器１７が発振を検出すると発振信号をメモリ１８に出力し、予め位置制御器より保存しておいた発振前の制御パラメータを位置制御器の制御パラメータに書き込んで変更する。
【０００７】
次に本発明の方法で、なぜ発振が検出されるかを説明する。発振が起きるとトルク指令の振幅値は大きくなるということに着目する。まずエネルギー値をトルク指令の振幅値と振幅値のピークからピークまでの時間（下限ピークから上限ピークまでの時間）で重み付けした関数ｅｎ（ｉ）で定義する。
【数１】
2004187439.tif 000003
ただし、Ｅｎ（ｊ）はｉ番目のエネルギー値までの総和、ΔＥｎ（ｊ）はエネルギーの増分値、ｔは検出範囲内での総ピーク数、トルク振幅値ｉはｉ番目の下限ピークから次上限ピークまでの振幅値、  Δｔｉはｉ番目の下限ピークから次上限ピークまでの時間である。
図２（ａ）のように、検出範囲内で発振が起きた場合、ｉ番目の振幅値はｉ−１番目に比べて大きくなるので、ｉ番目のエネルギー値ｅｎ（ｉ）ｉはｉ―１番目のエネルギー値ｅｎ（ｉ−１）より大きくなる。ｉ―１番目のエネルギー値までの総和Ｅｎ（ｉ−１）とｉ番目のエネルギー値ｅｎ（ｉ）（ｉ＝１，２，…，ｔ）を順次加算し、エネルギー値の総和Ｅｎ（ｔ）で正規化（計算の便宜の為、正規化を行う）を行うと、図２（ｂ）のように正規化後のエネルギー値の総和ｆｎ（ｔ）の軌跡はｉ＝０での正規化後の値０とｉ＝ｔでの正規化後の値１を結ぶ直線（図２（ｂ）の点線部分）で作られる領域内に描かれる。
図３（ａ）のように、検出範囲内で振幅が一定の持続振動では、図３（ｂ）のように、正規化後のエネルギー値の総和ｆｎ（ｔ）の軌跡がｉ＝０での正規化後の値０とｉ＝ｔでの正規化後の値１を結ぶ直線と一致する。
図４（ａ）のように、検出範囲内で発振が起きない場合、または、減衰的な場合では、ｉ番目の振幅値はｉ−１番目に比べて大きくならないので、ｉ番目のエネルギー値ｅｎ（ｉ）ｉはｉ−１番目のエネルギー値ｅｎ（ｉ−１）より小さくなる。ｉ―１番目のエネルギー値までの総和Ｅｎ（ｉ−１）とｉ番目のエネルギー値ｅｎ（ｉ）を加算し、上記と同様に正規化を行うと、図４（ｂ）のように正規化後のエネルギー値の総和ｆｎ（ｔ）の軌跡はｉ＝０での正規化後の値０とｉ＝ｔでの正規化後の値１を結ぶ直線（図４（ｂ）の点線部分）で作られる領域内よりも外に描かれる。
従って、ｉ＝０での正規化後の値０とｉ＝ｔでの正規化後の値１を結ぶ直線の積算値（これをエネルギー積算閾値と呼ぶ）と、正規化後のエネルギーＥｎの軌跡が作る線分の積算値を比較することによって、発振かどうかの判別を行うことができる。
しかし、単なる上記面積値の比較だけでは、振幅が相対的に非常に小さい場合に発振と誤認識してしまう場合もある。そこで前記判別に加え、さらに、パラメータなどで予め設定した値（これをエネルギー閾値とする）とエネルギー値Ｅｎｔ（検出範囲でのエネルギー総和）とを大小比較することで、発振かどうかの判別を行えばよい。また、本判別を単独で用いても、発振かどうかの判別を行うことは可能である。
以上のように、面積値の比較とエネルギー値の比較によって発振かどうかの判別を行うことが可能となる。
【０００８】
次に上記で説明した発振検出方法に基づき、発振検出器１７の動作を図５のフローチャートで説明する。
図５において、Ａ１は発振検出処理の開始であり、Ａ２は各変数の初期化を行っている。Ａ３はトルク指令を入力としトルク指令Ｔｒ（  ｉ  ）のうち、指令成分を除去し、外乱成分だけ抽出するものである。ただし、ｉはサンプリング数である。
指令成分とは、（モータ＋負荷）のイナ−シャと指令加速度から出力（計算）されるトルクと、粘性摩擦などによるトルクとをいい、外乱成分とは、指令成分以外の振動トルク（例えば機械との共振で発生する、所定の共振周波数を持ったトルク）をいう。外乱成分は、例えばトルク指令をハイパスフィルタに通す等によって抽出できる。
Ａ５はＡ３でトルク指令Ｔｒ（ｉ）の外乱成分だけを抽出した波形から上限ピーク値を検出し、前回検出した下限ピーク値から今回検出したピーク値を減算し、前記減算した値の絶対値を算出し、振幅値を求める。また、前回検出したピークから今回検出したピークまでの時間Δｔを計測する。Ａ６はピーク値の検出点Ｐにおけるエネルギー値ｅｎ（ｐ）とＰ点までのエネルギー値の総和を求める。Ａ７はｉを予め決められた検出区間のサンプリング点数ｓｅｃｔｉｏｎより大きいかどうか比較し、もし小さければ検出範囲内の処理が終わっていないのでＡ３に戻る。もし大きければ、Ａ８に進む。Ａ８はＡ６で計算された各ピーク点のエネルギー値までの総和を保存する。Ａ９はＡ８で保存した各ピーク点におけるエネルギー値をエネルギー値の総和で除算し、正規化する。そして、正規化した各ピーク点におけるエネルギー値を積算する。Ａ１１はピーク点数ｋを総ピーク点数ｔより大きいかどうか比較し、もし小さければエネルギー値の正規化処理が終わっていないのでＡ９、Ａ１０の処理に戻る。もし大きければ、発振判定部Ａ１２、Ａ１３に進む。
Ａ１２はＡ９で正規化したエネルギー値の積算値をパラメータであるエネルギー積算閾値より大きいかどうか比較し、もしエネルギー積算閾値の方が大きければ発振状態とみなして、「発振信号１」を出力する。Ａ１３はＡ８で保存した各ピーク点におけるエネルギー値の加算値をパラメータであるエネルギー閾値より大きいかどうか比較し、もし各ピーク点におけるエネルギー値の加算値の方が大きければ発振状態とみなして「発振信号２」を出力する。Ａ１４はＡ１２が「発振信号１」を出力し、かつＡ１３が「発振信号２」出力したときだけ、検出範囲内は発振状態を検出したとして発振信号を出力する。もし発振信号が出力されたならば、発振を起こす前の制御パラメータへの変更や、機械の即時停止などの処理を行う。
【０００９】
図６、図７に本発明による発振検出の結果を示す。図６、図７はトルク指令と発振信号で、共に検出範囲は１００［ｍｓｅｃ］であり、位置制御は比例制御、速度制御は比例―積分制御である。図６の制御パラメータは位置ループゲインＫｐ＝４０［１／ｓ］、速度ループゲインＫｖ＝４０［Ｈｚ］、速度ループ積分ゲインＴｉ＝［ｓｅｃ］で、図７の制御パラメータはＫｐ＝１８０［１／ｓ］、Ｋｖ＝１８０［Ｈｚ］、Ｔｉ＝［ｓｅｃ］である。モータと機械負荷のイナーシャ比は７．６２、エネルギー閾値は１５０［％］としている。
はじめに図６の制御パラメータでモータを駆動させ、次に図７の制御パラメータに変更してモータを駆動させた。図６ではサーボ制御系は発振しないが、図７ではサーボ制御系は発振が検出され、発振信号より発振前の図６の制御パラメータへ自動的に変更される。
前記結果より、サーボ制御系の調整で制御パラメータが変わることによって起きる発振状態を検出することができ、制御パラメータを発振しないパラメータに自動的に戻すことができた。
なお本実施の形態では、トルク指令の下限ピークから次の上限ピークまでの振幅、及びその間の時間を検出しているが、これをトルク指令の上限ピークから次の下限ピークまでの振幅、及びその間の時間を検出しても同様の効果が得られるのはもとよりである。
【００１０】
【発明の効果】
以上のように本発明によれば、サーボ制御系の調整に際し、フィルタによる影響を受けず、調整者の主観をも排除でき、共通した判断基準によるサーボ制御系の発振状態の自動検出を行うことができるという効果があり、また、発振検出時には即座に安全な制御パラメータに戻すことができ、これによって機械を損傷させることなく制御パラメータの調整作業を安心して行うことができるという効果がある。
【図面の簡単な説明】
【図１】本発明のサーボ制御系のブロック図である。
【図２】本発明を説明するためのトルク指令及び正規化後のエネルギ―図である。
【図３】本発明を説明するためのトルク指令及び正規化後のエネルギ―図である。
【図４】本発明を説明するためのトルク指令及び正規化後のエネルギ―図である。
【図５】本発明の実施例を示すフローチャートである。
【図６】本発明の実施結果を示したものである。
【図７】本発明の実施結果を示したものである。
【図８】従来のサーボ制御系のブロック図である。
【符号の説明】
１０…減算器
１１…速度制御器
１２…電流アンプ
１３…モータ
１４…機械負荷
１５…エンコーダ
１６…微分器
１７…発振検出器
１８…メモリ
１９…トルク指令
２０…エネルギー加算値の軌跡
２１…エネルギー積算閾値
２２…トルク指令
２３…発振信号
【図１】
2004187439.tif 000004
【図２】
2004187439.tif 000005
【図３】
2004187439.tif 000006
【図４】
2004187439.tif 000007
【図５】
2004187439.tif 000008
【図６】
2004187439.tif 000009
【図７】
2004187439.tif 000010
【図８】
2004187439.tif 000011