(57)【要約】【課題】  時間や温度ともに変化する摩擦力をより正確に求め、時間や温度の変化に依存することなく常に位置制御や柔軟制御の制御性能を高く維持することができるようにする。【解決手段】  実制御と同一構成のシミュレーション位置制御器１５およびシミュレーション速度制御器１６と、制御対象を模擬したメカモデル演算部１８と、実制御とシミュレーションを比較する比較部１９と、比較部１９の出力から摩擦モデルを生成する摩擦モデル生成部２０と、摩擦モデル生成部２０の出力に基づいた摩擦補償値を補償する補償部２１とを備える。【選択図】  図１
2006146572.tif 000002
【特許請求の範囲】
【請求項１】
位置制御器と、速度制御器とを備え、モータを含む制御対象を制御するサーボ制御装置において、
前記位置制御器と同一構成でありかつ同一指令を入力するシミュレーション位置制御器と、
前記速度制御器と同一構成であるシミュレーション速度制御器と、
前記制御対象を模擬し、前記シミュレーション位置制御器および前記シミュレーション速度制御器にフィードバックを行うメカモデル演算部と、
前記速度制御器の出力と前記シミュレーション速度制御器の出力を比較する比較部と、
前記比較部の出力から摩擦モデルを生成する摩擦モデル生成部と、
前記摩擦モデル生成部の出力に基づいた補償を行う補償部と、
を備えたことを特徴とするサーボ制御装置。
【請求項２】
前記比較部は、前記速度制御器の出力と前記シミュレーション速度制御器の出力から摩擦力推定誤差を求め、前記摩擦力推定誤差があらかじめ決められた値より大きくなったときに摩擦モデルを更新するように判定することを特徴とする請求項１記載のサーボ制御装置。
【請求項３】
前記摩擦モデル生成部は、一定時間毎に複数速度での定速動作を行ったときの速度と前記比較部の定速時出力の平均値とから一定時刻毎の摩擦モデル定数を求めて記憶し、前記補償部は、記憶された前記摩擦モデル定数を補間することにより、動作時刻毎の摩擦モデル定数を求めて摩擦補償を行うことを特徴とする請求項１記載のサーボ制御装置。
【請求項４】
前記摩擦モデル生成部は、制御対象に設けられた温度センサの情報を用いて温度毎の摩擦モデル定数を求めて記憶し、前記補償部は、記憶された前記摩擦モデル定数を温度に対して補間することにより、前記温度センサで検出された温度における摩擦モデル定数を求めて摩擦補償を行うことを特徴とする請求項３記載のサーボ制御装置。
【請求項５】
位置制御器と、速度制御器とを備え、モータを含む制御対象を制御するサーボ制御装置において、
前記位置制御器と同一構成でありかつ同一指令を入力するシミュレーション位置制御器と、
前記速度制御器と同一構成であるシミュレーション速度制御器と、
前記制御対象を模擬し、前記シミュレーション位置制御器および前記シミュレーション速度制御器にフィードバックを行うメカモデル演算部と、
前記速度制御器の出力と前記シミュレーション速度制御器の出力を比較する比較部と、
前記比較部の出力を前記速度制御器の出力から差し引いて分離する摩擦分離部と、
前記比較部の出力を補償する補償部と、
を備えたことを特徴とするサーボ制御装置。
【請求項６】
前記制御対象に加わる未知の外力を推定する未知外力推定部を備えたことを特徴とする請求項１から５記載のサーボ制御装置。
【請求項７】
摩擦モデルの定数部分にデフォルトの値を設定しデフォルトの摩擦モデルが生成できるようにした後、サーボ電源をオンにするステップ１と、
あらかじめ決められた時間間隔により一定時間が経過したかを判定して、摩擦モデル更新を判定する時刻を計測し、一定時間が経過していなければ摩擦モデルを更新せずに摩擦補償するステップ２と、
現在記憶している摩擦モデルに基づき、比較部により速度制御器のトルク指令Trefとシミュレーション速度制御器のトルク指令Tsimとの差分を演算しトルク指令差分値ΔTを求め、前記トルク指令差分値ΔTおよびモータ速度vの時系列データを記憶するステップ３と、
前記トルク指令差分値ΔTとあらかじめ決められた所定値ΔTmaxとを比較し、|ΔT|＜ΔTmaxのとき摩擦モデルを更新せずに摩擦補償し、|ΔT|＞ΔTmaxのとき摩擦モデルを更新と判定するステップ４と、
摩擦モデルを更新する際、前記トルク指令差分値ΔTを摩擦モデルによる摩擦力f’に加算して摩擦力fをf=f’+ΔTとし、前記摩擦力fおよびその時のモータ速度vを記憶するステップ５と、
前記摩擦力fおよび前記モータ速度vに基づいて直線近似することにより摩擦モデル式を求めるステップ６と、
前記摩擦モデル式からモータ速度vに対応する摩擦力fをf=cv+f0として求め、求められた摩擦力fを補償値として補償するステップ７と、
サーボ電源がオフでない場合は、前記ステップ２へ戻り、上記を繰り返し、サーボ電源がオフの場合は終了するステップ８とからなるサーボ制御方法。
【請求項８】
繰り返し動作によるなじみ運転を行うステップ１と、
あらかじめ決められた時間間隔により一定時間が経過したかを判定して、摩擦モデルを生成する時刻を計測し、一定時間が経過していなければステップ１に戻り、なじみ運転を行うステップ２と、
摩擦補償をオフとして所定の定速動作を行い、比較部１９からの定速時の出力ΔTi(i=1,2,…,n)からモータ速度vにおける定速時出力平均値Tmean(v)をTmean(v)=(ΔT1+ΔT2+…+ΔTn)/nとして求めるステップ３と、                 
前記モータ速度vおよび前記定速時出力平均値Tmean(v)に基づいて、摩擦モデルを直線近似により求めるステップ４と、
前記摩擦モデルを記憶し、粘性摩擦係数cおよびクーロン摩擦力f0が時刻ti(i=1,2,…) における関数c(ti),f0(ti)としてデータベースへ記憶するステップ５と、
摩擦モデルの定数c(ti),f0(ti)が所定の一定値に収束したときに摩擦モデルが収束したと判定し、一方摩擦モデルの定数が所定の一定値に収束しなければステップ１に戻るステップ６と、
摩擦モデル式からモータ速度vに対応する摩擦力fを求め、求められた摩擦力fを補償して実動作するステップ７とからなるサーボ制御方法。
【請求項９】
前記ステップ７において、摩擦モデル式を、動作時刻t’に応じて記憶されたデータを基に次式で求めるものである請求項８記載のサーボ制御方法。
f=c(t’)v+f0(t’)                                
c(t’)= {(c(ti+1)-c(ti))/(ti+1-ti)}(t’-ti)+c(ti)
(ti≦t’＜ti+1),c(t’)=c(te) (te≦t’)         
f0(t’)= {(f0(ti+1)-f0(ti))/(ti+1-ti)}(t’-ti)+f0(ti)
(ti≦t’＜ti+1),f0(t’)=f0(te) (te≦t’)              
ただしi=1,2,3,…であり、teは摩擦モデルが収束した時の時刻
【請求項１０】
前記ステップ７において、摩擦モデル式を、時刻の代わりに温度tpi (i=1,2,…)に応じて記憶されたデータを基に次式で求めるものである請求項８記載のサーボ制御方法。
f=c(tp’)v+f0(tp’)                       
c(tp’)= {(c(tpi+1)-c(tpi))/(tpi+1-tpi)}(tp’-tpi)+c(tpi)
(tpi≦tp’＜tpi+1),c(tp’)=c(tpe) (tpe≦tp’)         
f0(tp’)= {(f0(tpi+1)-f0(tpi))/(tpi+1-tpi)}(tp’-tpi)+f0(tpi)
(tpi≦tp’＜tpi+1),f0(tp’)=f0(tpe) (tpe≦tp’)
ただしi=1,2,3,…であり、tpeは摩擦モデルが収束した時の温度
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットなどの機械装置を制御するサーボ制御装置に関する。
【背景技術】
【０００２】
従来のサーボ制御装置は、高速高精度な位置制御や柔軟制御を行う場合、サーボ遅れやオーバーシュートによる位置決め精度や軌跡精度の悪化、力制御をする場合の柔軟性の低下を改善するためにその原因の一つである摩擦力を考慮して補償を行っている。例えば、ロボットにおいて柔軟制御に関しては、柔軟性を上げるために、柔軟制御移行時に一定の摩擦力を補償している（特許文献１参照）。図１７において、１０１は位置指令作成部であり、位置指令を出力する。１０２は位置制御器、１０３は速度制御器、１０５はアンプ、１０６はモータ、１０７は回転検出器、１０８は負荷機械であり、前記１０２〜１０３にて、前記位置指令作成部１０１から位置指令を入力して前記アンプ１０５にトルク指令を出力して、前記モータ１０６および前記負荷機械１０８を駆動する。また、前記回転検出器１０７によりフィードバック制御を行う。このような構成において、位置制御から柔軟制御に移行する場合、前記速度制御器１０３の積分器にたまっている積分値をメモリ１０４に保存しておき、重力の影響がない場合を仮定するとこの値を柔軟制御時の摩擦補償値としてトルク指令に補償している。同時に前記速度制御器１０３の積分器は切るようにする。このように柔軟制御移行時に一定の摩擦力を補償するようにしている。
【０００３】
また、オーバーシュートが生じない位置制御を行うために、制御対象のモデルを含んだフィードフォワードを行う２自由度制御において、制御対象に出力されるトルク指令からクーロン摩擦力を推定し補償している（特許文献２参照）。図１８において、２０１は指令発生回路であり、位置指令を出力する。２０２は第１の位置制御回路、２０３は第１の速度制御回路、２０４はモータの模擬回路であり、前記２０２〜２０４により前記指令発生回路２０１からの位置指令を入力とし、前記第１の速度制御回路２０３からのトルク指令、モータの模擬回路２０４からの模擬位置応答および模擬速度応答を出力とするフィードフォワードの演算を行い、フィードバックの部分にフィードフォワード指令を与える。２０７は第２の位置制御回路、２０８は第２の速度制御回路、２０９はトルク制御回路、２１０はモータ、２１１は回転検出器、２１２は負荷機械であり、前記２０２〜２０４からのフィードフォワード指令を入力し、前記モータ２１０および前記負荷機械２１２を駆動する。また、前記回転検出器２１１によりフィードバック制御を行う。このような２自由度制御の構成において、摩擦モデル回路２０５、摩擦修正回路２０６を用いて摩擦力を補償している。摩擦修正回路２０６では、前記トルク制御回路２０９に入力されるトルク指令から次式のようにクーロン摩擦Tfを抽出している。
【０００４】
Tf=((T2+T3)/2)-T1                                ・・・（１）
ただし、T1は始動直前のトルク指令、T2は加速直後のトルク指令、T3は停止直前のトルク指令である。
また、同時に前記第２の速度制御回路２０８内の積分器をリセットするリセット値も求めている。摩擦モデル回路２０５は、前記摩擦修正回路２０６からの出力をリミット値とし、前記回転検出器２１１からの速度入力により補償トルクを出力する。補償トルクが出力されるときは、前記摩擦修正回路２０６からの積分リセット値により前記第２の速度制御回路２０８内の積分器をリセットする。このように前記第２の速度制御回路２０８内の積分器にたまっていたクーロン摩擦分の摩擦力を抽出し補償しようというものである。
【０００５】
また、オブザーバ制御を行う手段において、あらかじめ求められた摩擦係数を元に摩擦力を生成し補償しているものもある（特許文献３参照）。
【０００６】
このように、従来のサーボ制御装置は、位置制御や柔軟制御を行う場合、積分器にたまっていた摩擦力を抽出したり、あらかじめ求められた係数を元に摩擦力を求めて摩擦補償するのである。
【特許文献１】特開平９−７６１８４号公報（第２−３頁、図１）
【特許文献２】特開平８−３３１８８１号公報（第６−１０頁、図１〜図１２）
【特許文献３】特開２００２−１７８２８１号公報（第４−５頁、図３）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１は、柔軟制御移行時に一定の摩擦力を補償するようになっていて、制御対象に減速機が含まれる場合、減速機内に偏り溜まっているグリースが均一になじんで温度が上昇することにより、粘性摩擦（粘性摩擦係数）が時間や温度とともに変化するため、トルク指令が摩擦に見合った分出力されないので、柔軟性が十分に発揮できないという問題があった。
また、特許文献２のような場合は、クーロン摩擦に関しては時間とともに変化するような場合でも補償するようになっているが、時間変化が大きい粘性摩擦に関しては、補償を行っていないので、同様に時間や温度ともに変化する摩擦力が正確に求められていないという問題があった。
また、特許文献３の場合は、あらかじめ求められた摩擦係数を元に摩擦力を生成し補償しており、摩擦係数の時間的変化や温度的変化を考慮していない。また時間変化や温度変化に対し動的に摩擦係数を切り替えることができないという問題があった。
【０００８】
本発明はこのような問題点に鑑みてなされたものであり、シミュレーションを用いることによりに時間や温度ともに変化する摩擦力をより正確に求め、時間や温度の変化に依存することなく時間変化や温度変化に対し動的に摩擦係数を切り替え、常に位置制御や柔軟制御の制御性能を高く維持することができるサーボ制御装置および方法を提供することを目的とする。
また、摩擦モデルを生成せずに簡単な構成で時間変化に対応した摩擦補償を行うことができ、常に位置制御や柔軟制御の制御性能を高く維持することを目的とする。
さらに接触作業や衝突によって未知の外力を受けたときにも摩擦力をより正確に求め補償することを目的とする。
【課題を解決するための手段】
【０００９】
上記問題を解決するため、本発明は、次のように構成したのである。
【００１０】
請求項１に記載の発明は、位置制御器と、速度制御器とを備え、モータを含む制御対象を制御するサーボ制御装置において、
前記位置制御器と同一構成でありかつ同一指令を入力するシミュレーション位置制御器と、
前記速度制御器と同一構成であるシミュレーション速度制御器と、
前記制御対象を模擬し、前記シミュレーション位置制御器および前記シミュレーション速度制御器にフィードバックを行うメカモデル演算部と、
前記速度制御器の出力と前記シミュレーション速度制御器の出力を比較する比較部と、
前記比較部の出力から摩擦モデルを生成する摩擦モデル生成部と、
前記摩擦モデル生成部の出力に基づいた補償を行う補償部と、
を備えたことを特徴とするものである。
【００１１】
また、請求項２に記載の発明は、前記比較部は、前記速度制御器の出力と前記シミュレーション速度制御器の出力から摩擦力推定誤差を求め、前記摩擦力推定誤差があらかじめ決められた値より大きくなったときに摩擦モデルを更新するように判定することを特徴とするものである。
【００１２】
また、請求項３に記載の発明は、前記摩擦モデル生成部は、一定時間毎に複数速度での定速動作を行ったときの速度と前記比較部の定速時出力の平均値とから一定時刻毎の摩擦モデル定数を求めて記憶し、前記補償部は、記憶された前記摩擦モデル定数を補間することにより、動作時刻毎の摩擦モデル定数を求めて摩擦補償を行うことを特徴とするものである。
【００１３】
また、請求項４に記載の発明は、前記摩擦モデル生成部は、制御対象に設けられた温度センサの情報を用いて温度毎の摩擦モデル定数を求めて記憶し、前記補償部は、記憶された前記摩擦モデル定数を温度に対して補間することにより、前記温度センサで検出された温度における摩擦モデル定数を求めて摩擦補償を行うことを特徴とするものである。
【００１４】
また、請求項５に記載の発明は、位置制御器と、速度制御器とを備え、モータを含む制御対象を制御するサーボ制御装置において、
前記位置制御器と同一構成でありかつ同一指令を入力するシミュレーション位置制御器と、
前記速度制御器と同一構成であるシミュレーション速度制御器と、
前記制御対象を模擬し、前記シミュレーション位置制御器および前記シミュレーション速度制御器にフィードバックを行うメカモデル演算部と、
前記速度制御器の出力と前記シミュレーション速度制御器の出力を比較する比較部と、
前記比較部の出力を前記速度制御器の出力から差し引いて分離する摩擦分離部と、
前記比較部の出力を補償する補償部と、
を備えたことを特徴とするものである。
【００１５】
また、請求項６に記載の発明は、前記制御対象に加わる未知の外力を推定する未知外力推定部を備えたことを特徴とするものである。
また、請求項７に記載の発明は、摩擦モデルの定数部分にデフォルトの値を設定しデフォルトの摩擦モデルが生成できるようにした後、サーボ電源をオンにするステップ１と、
あらかじめ決められた時間間隔により一定時間が経過したかを判定して、摩擦モデル更新を判定する時刻を計測し、一定時間が経過していなければ摩擦モデルを更新せずに摩擦補償するステップ２と、
現在記憶している摩擦モデルに基づき、比較部により速度制御器のトルク指令Trefとシミュレーション速度制御器のトルク指令Tsimとの差分を演算しトルク指令差分値ΔTを求め、前記トルク指令差分値ΔTおよびモータ速度vの時系列データを記憶するステップ３と、
前記トルク指令差分値ΔTとあらかじめ決められた所定値ΔTmaxとを比較し、|ΔT|＜ΔTmaxのとき摩擦モデルを更新せずに摩擦補償し、|ΔT|＞ΔTmaxのとき摩擦モデルを更新と判定するステップ４と、
摩擦モデルを更新する際、前記トルク指令差分値ΔTを摩擦モデルによる摩擦力f’に加算して摩擦力fをf=f’+ΔTとし、前記摩擦力fおよびその時のモータ速度vを記憶するステップ５と、
前記摩擦力fおよび前記モータ速度vに基づいて直線近似することにより摩擦モデル式を求めるステップ６と、
前記摩擦モデル式からモータ速度vに対応する摩擦力fをf=cv+f0として求め、求められた摩擦力fを補償値として補償するステップ７と、
サーボ電源がオフでない場合は、前記ステップ２へ戻り、上記を繰り返し、サーボ電源がオフの場合は終了するステップ８とからなるものである。
また、請求項８に記載の発明は、繰り返し動作によるなじみ運転を行うステップ１と、
あらかじめ決められた時間間隔により一定時間が経過したかを判定して、摩擦モデルを生成する時刻を計測し、一定時間が経過していなければ（ステップ１）に戻り、なじみ運転を行うステップ２と、
摩擦補償をオフとして所定の定速動作を行い、比較部１９からの定速時の出力ΔTi(i=1,2,…,n)からモータ速度vにおける定速時出力平均値Tmean(v)をTmean(v)=(ΔT1+ΔT2+…+ΔTn)/nとして求めるステップ３と、                 
前記モータ速度vおよび前記定速時出力平均値Tmean(v)に基づいて、摩擦モデルを直線近似により求めるステップ４と、
前記摩擦モデルを記憶し、粘性摩擦係数cおよびクーロン摩擦力f0が時刻ti(i=1,2,…) における関数c(ti),f0(ti)としてデータベースへ記憶するステップ５と、
摩擦モデルの定数c(ti),f0(ti)が所定の一定値に収束したときに摩擦モデルが収束したと判定し、一方摩擦モデルの定数が所定の一定値に収束しなければステップ１に戻るステップ６と、
摩擦モデル式からモータ速度vに対応する摩擦力fを求め、求められた摩擦力fを補償して実動作するステップ７とからなるサーボ制御方法。
また、請求項９に記載の発明は、前記ステップ７において、摩擦モデル式を、動作時刻t’に応じて記憶されたデータを基に次式で求めるものである。
f=c(t’)v+f0(t’)                                ・・・（８）
c(t’)= {(c(ti+1)-c(ti))/(ti+1-ti)}(t’-ti)+c(ti)
(ti≦t’＜ti+1),c(t’)=c(te) (te≦t’)         ・・・（９）
f0(t’)= {(f0(ti+1)-f0(ti))/(ti+1-ti)}(t’-ti)+f0(ti)
(ti≦t’＜ti+1),f0(t’)=f0(te) (te≦t’)              ・・・（１０）
ただしi=1,2,3,…であり、teは摩擦モデルが収束した時の時刻
また、請求項１０に記載の発明は、前記ステップ７において、摩擦モデル式を、時刻の代わりに温度tpi (i=1,2,…)に応じて記憶されたデータを基に次式で求めるもである。
f=c(tp’)v+f0(tp’)                       
c(tp’)= {(c(tpi+1)-c(tpi))/(tpi+1-tpi)}(tp’-tpi)+c(tpi)
(tpi≦tp’＜tpi+1),c(tp’)=c(tpe) (tpe≦tp’)         
f0(tp’)= {(f0(tpi+1)-f0(tpi))/(tpi+1-tpi)}(tp’-tpi)+f0(tpi)
(tpi≦tp’＜tpi+1),f0(tp’)=f0(tpe) (tpe≦tp’)
ただしi=1,2,3,…であり、tpeは摩擦モデルが収束した時の温度
【発明の効果】
【００１６】
請求項１から２に記載の発明によると、シミュレーションを用い、実制御と比較することにより、摩擦モデル修正の必要性の判断および摩擦モデル修正を行うので、時間ともに変化する摩擦力に対して最適な補償を実現することができ、時間の変化に依存することなく常に位置制御や柔軟制御の制御性能を高く維持することができる。
請求項３に記載の発明によると、事前の特定動作にて摩擦モデルを生成することにより、時間変化に応じたより精度の高い摩擦補償を実行することができる。
また、請求項４に記載の発明によると、温度センサを用いることにより温度とともに変化する摩擦力を求めて補償するので、温度の変化に依存することなく常に位置制御や柔軟制御の制御性能を高く維持することができる。
また、請求項５に記載の発明によると、摩擦モデルを生成せずに簡単な構成で時間変化に対応した摩擦補償を行うことができ、常に位置制御や柔軟制御の制御性能を高く維持することができる。
また、請求項６に記載の発明によると、接触作業や衝突によって未知の外力を受けたときにも摩擦力をより正確に求め補償することができる。
また、請求項７から９に記載の発明によると、時間ともに変化する摩擦力に対して最適な補償を実現することができ、時間の変化に依存することなく常に位置制御や柔軟制御の制御性能を高く維持することができる。
また、請求項１０に記載の発明によると、温度センサを用いることにより温度とともに変化する摩擦力を求めて補償するので、温度の変化に依存することなく常に位置制御や柔軟制御の制御性能を高く維持することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１８】
図１は、本発明のサーボ制御装置の実施例１の構成図である。図２、図３は本発明が適用される対象の例を示している。図２はＸＹテーブル、図３は産業用ロボットに適用した場合の例を示す。例えば図２，図３のような制御対象の場合、これらの演算は、ＸＹテーブルではモジュール型のサーボアンプであるＸ軸アンプ３０２、Ｙ軸アンプ３０３の部分で実行される。産業用ロボットの場合はサーボモータの制御系は一般的に多軸のアンプで実行されるため、下記の演算は図のロボット用多軸アンプ４０４の部分で実行される。
【００１９】
上記のようなモジュール型や多軸機構のサーボアンプの内、一つの軸に着目して説明する。図１において、１１は位置制御器であり、位置指令と制御対象の位置応答を入力し、速度指令を出力する。図４に位置制御器１１の構成例を示す。図中のＫｐは位置ループゲインである。１２は速度制御器であり、前記位置制御器１１から出力された速度指令と制御対象の位置応答を入力とし、トルク指令を出力する。図５に速度制御器１２の構成例を示す。図中のＫｖは速度ループゲイン、Ｔは積分時定数、Ｊｍはモータの慣性モーメントであり、ｓ、１／ｓはそれぞれ、ラプラス変換における微分、積分を表す。１４は制御対象であり、モータおよびモータに結合した負荷機械などから構成され、前記速度制御器１２から出力されるトルク指令に従って駆動される。
【００２０】
そして本発明で特徴となるのは、１５〜２２を備えたことであり、以下に説明する。１５はシミュレーション位置制御器であり、前記位置制御器１１と同一構成であり、同一指令を入力する。１６はシミュレーション速度制御器であり、前記速度制御器１２と同一構成でありトルク指令を出力する。１８はメカモデル演算部であり、前記制御対象１４を模擬し、前記シミュレーション速度制御器１６からのトルク指令入力により前記シミュレーション位置制御器１５および前記シミュレーション速度制御器１６にフィードバックを行う。図６には、前記メカモデル演算部１８において、前記制御対象１４を２慣性系で近似した例を示している。ここで、Ｊｍはモータの慣性モーメント、Ｎは減速比、Ｋｃは減速器のバネ定数、Ｊｌは負荷側の慣性モーメントであり、１／ｓはラプラス変換における積分を表す。前記メカモデル演算部１８は制御対象の機構を２慣性系機構としてモデル化したものであるが、さらに重力などがかかる場合は、重力の部分もモデル化を行い、摩擦力以外はモデル化を行うようにする。
【００２１】
このように前記シミュレーション位置制御器１５、前記シミュレーション速度制御器１６、前記メカモデル演算部１８を構成することでシミュレーションが実行でき、理想的な状態量が求められる。また、シミュレーションは、前記位置制御器１１、前記速度制御器１２の実制御の処理と並列に行われ、その結果実制御での状態量と理想的な状態量の比較が可能になる。１９は比較部であり、前記速度制御器１２のトルク指令と前記シミュレーション速度制御器１６のトルク指令の差分演算を行うことにより、実制御とシミュレーションの指令トルクの差を検出する。２０は摩擦モデル生成部であり、前記比較部１９の出力とモータ速度とから両者の関係を求めて摩擦モデルを生成する。２１は補償部であり、前記摩擦モデル生成部２０で生成された摩擦モデルに基づきモータ速度に応じた摩擦補償値を求め、前記摩擦補償値を前記速度制御器１２の出力に加算し摩擦力を補償する。そして、摩擦力が補償されたトルク指令を出力し、トルク制御回路（図示しない）を通して前記制御対象１４を制御する。
【００２２】
次に、本発明を実施する手順を図７のフローチャートに従って説明する。
サーボ電源をオンする。このとき、摩擦モデルの定数部分には、すでにデフォルトの値が設定してあり、デフォルトの摩擦モデルが生成できるようになっている。（ステップ１）
あらかじめ決められた時間間隔により一定時間が経過したかを判定して、摩擦モデル更新を判定する時刻を計測する。一定時間が経過していなければ摩擦モデルを更新せずに摩擦補償を行う。（ステップ２）
現在記憶している摩擦モデルに基づき、摩擦補償を行った場合における位置制御器１１、速度制御器１２の実制御の処理とシミュレーション位置制御器１５、シミュレーション速度制御器１６、メカモデル演算部１８のシミュレーションによる比較を行う。すなわち、比較部１９にて、前記速度制御器１２のトルク指令Trefと前記シミュレーション速度制御器１６のトルク指令Tsimの差分演算を次式のように行い、トルク指令差分値ΔTを出力する。このとき、前記トルク指令差分値ΔTおよびモータ速度vの時系列データを記憶しておく。
ΔT=Tref-Tsim                             ・・・（２）
【００２３】
また、図８（ａ）に指令Trefとトルク指令Tsimのグラフ、図８（ｂ）にトルク指令差分値ΔTのグラフを示す。前記トルク指令差分値ΔT、すなわち、摩擦力推定誤差が所定の値より大きい場合は摩擦力が変化して摩擦モデルとずれが生じていることを表す。（ステップ３）
摩擦力の変化による摩擦モデルとのずれを検出して摩擦モデルの更新を行うかの判定を行う。すなわち、図８（ｂ）のように前記トルク指令差分値ΔTがあらかじめ決められた値ΔTmaxより大きいかを比較する。数式上では、前記トルク指令差分値ΔTの符号も考慮して次式のように判定する。
|ΔT|>ΔTmax                                  ・・・（３）
（３）式を満たさなければ摩擦モデルを更新せずに摩擦補償を行う。（ステップ４）
摩擦モデルの更新を行う必要がある場合は、摩擦力とモータ速度の関係求め、摩擦モデル式を更新する必要がある。そのために、（ステップ３）で求められた前記トルク指令差分値ΔTを摩擦モデルによる摩擦力f’に加算して摩擦力fを次式のように求め直す。
f=f’+ΔT                                 ・・・（４）
そして前記摩擦力fおよびその時のモータ速度vを記憶しておく。（ステップ５）
摩擦モデル生成部２０にて、前記摩擦力fおよび前記モータ速度vとから摩擦モデル式を求める。図９は摩擦モデル式を求める時の速度と摩擦力の関係を表したグラフを示しており、（ステップ５）で求められた前記摩擦力fおよび前記モータ速度vをプロットし、最小２乗法等を用いて直線近似することにより摩擦モデル式が求められる。すなわち、現時点での粘性摩擦係数cおよびクーロン摩擦力f0が求められる。（ステップ６）
補償部２１にて、摩擦モデル生成部２０で生成され更新された摩擦モデル式からモータ速度vに対応する摩擦力fを次式のように求め、求められた摩擦力fを補償値として補償する。（ステップ７）
f=cv+f0                                          ・・・（５）
サーボ電源がオフでない場合は、（ステップ２）に戻り、上記を繰り返す。サーボ電源がオフの場合は終了する。（ステップ８）
上記の例では、一定時間毎にΔTを求めて、摩擦力推定誤差を監視するようにしているが、常に摩擦力推定誤差を監視し、前記摩擦力推定誤差が所定の値を超えたら摩擦モデルの更新を行うようにしてもよい。
【００２４】
このようにして、一定時間毎に摩擦力の変化を監視し、摩擦モデルを更新することで時間変化に応じた摩擦補償を行うことができ、常に制御性能を高く維持することができる。
【実施例２】
【００２５】
図１０は、本発明のサーボ制御装置の実施例２の構成図であり、実施例１にトルクリミッタ１３、モデルトルクリミッタ１７、未知外力推定部２２を加えたものである。トルク指令に制限を加えたり、接触や衝突により未知の外力を受けるような柔軟制御時に特に有効である。
前記トルクリミッタ１３は、前記速度制御器１２の出力であるトルク指令を所定の値で制限する。前記モデルトルクリミッタ１７は、前記トルクリミッタと同一構成であり前記シミュレーション速度制御器１６からのトルク指令を所定の値で制限する。前記未知外力推定部２２は、補償部２１から出力されるトルク指令と前記制御対象１４の位置応答とから前記制御対象１４に加わる未知の外力を推定する。図１１に前記未知外力推定部２２の構成例を示す。図中のＪｍはモータの慣性モーメントであり、ｓはラプラス変換における微分を表す。不感帯は、未知の外力と摩擦力の変化分を分離するためのものであり、入力の絶対値がある設定値以上になったら、入力値を未知の外力として出力するようにする。
推定された未知の外力を前記メカモデル演算部１８に入力することにより、接触作業や障害物に衝突した場合等、未知の外力を受けたときにもシミュレーションに反映し、摩擦力を除いたシミュレーションを正確に行えるようにする。そして、実施例１同様に実制御と比較し摩擦力を求めて補償するようにする。
【００２６】
このようにして、接触作業や衝突によって未知の外力を受けたときにも摩擦力を除いたシミュレーションを正確に行えるので、摩擦力をより正確に求め補償することができる。
【実施例３】
【００２７】
実施例３の構成は実施例１と同様であるので説明を省略する。
【００２８】
実施例３では、より精度の高い摩擦モデルを生成するため、実施例１のようにオンライン的に摩擦モデルを生成するのではなく、事前の特定動作により摩擦モデルをオフライン的に生成する。その実施手順を図１２のフローチャートに従って説明する。
特定の繰り返し動作によるなじみ運転を行う。（ステップ１）
あらかじめ決められた時間間隔により一定時間が経過したかを判定して、摩擦モデルを生成する時刻を計測する。一定時間が経過していなければ（ステップ１）に戻り、なじみ運転を行う。（ステップ２）
あらかじめ決められた数パターンでの速度による定速動作を行い、実制御とシミュレーションによる比較を行う。このとき摩擦補償は切っておく。そして、比較部１９からの定速時の出力ΔTi(i=1,2,…,n)からモータ速度vにおける定速時出力平均値Tmean(v)を次式のように求める。（ステップ３）
Tmean(v)=(ΔT1+ΔT2+…+ΔTn)/n                   ・・・（６）
モータ速度vおよび定速時出力平均値Tmean(v)からその時刻おける摩擦モデルを実施例１の同様に直線近似により求める。（ステップ４）
（ステップ４）で求められた摩擦モデルを記憶する。すなわち、（５）式における粘性摩擦係数cおよびクーロン摩擦力f0が時刻ti(i=1,2,…) における関数c(ti),f0(ti)としてデータベースに記憶される。（ステップ５）
摩擦モデルの定数c(ti),f0(ti)が一定値に収束したかを次式のように判定して、摩擦モデルが収束したか判定する。
|c(ti)-c(ti-1)|<ecかつ|f0(ti)-f0(ti-1)|<ef0              ・・・（７）
ただしi=2,3,…であり、ec 、ef0はあらかじめ決められた収束判定値である。収束していなければ（ステップ１）に戻る。（ステップ６）
補償部２１にて、摩擦モデル生成部２０で生成された摩擦モデル式から実施例１同様にモータ速度vに対応する摩擦力fを求め、求められた摩擦力fを補償して動作を行う。このとき摩擦モデル式は、動作時刻t’に応じて記憶されたデータを元に次式のように変更していく。
f=c(t’)v+f0(t’)                                ・・・（８）
c(t’)= {(c(ti+1)-c(ti))/(ti+1-ti)}(t’-ti)+c(ti)
(ti≦t’＜ti+1),c(t’)=c(te) (te≦t’)         ・・・（９）
f0(t’)= {(f0(ti+1)-f0(ti))/(ti+1-ti)}(t’-ti)+f0(ti)
(ti≦t’＜ti+1),f0(t’)=f0(te) (te≦t’)              ・・・（１０）
ただしi=1,2,3,…であり、teは摩擦モデルが収束した時の時刻である。（ステップ７）
【００２９】
このようにして、事前の特定動作にて摩擦モデルを生成することにより、時間変化に応じたより精度の高い摩擦補償を実行することができ、常に制御性能を高く維持することができる。
【実施例４】
【００３０】
図１３は、本発明のサーボ制御装置の実施例４の構成図である。実施例３と異なるのは、制御対象１４に温度センサ２３が付いていることであり、前記温度センサ２３の温度情報により摩擦モデルを決定する点である。実施例３の時刻の代わりに、温度tpi (i=1,2,…)による摩擦モデル式の定数c(tpi),f0(tpi) (i=1,2,…)を求め記憶しておく。ただし、温度tpi,c(tpi),f0(tpi)は温度tpiの低い順に記憶する。実施例３同様にモータ速度vに対応する摩擦力fを求め、求められた摩擦力fを補償して動作を行う。このとき摩擦モデル式は、前記温度センサ２３の温度tp’に応じて記憶されたデータを元に次式のように変更していく。
f=c(tp’)v+f0(tp’)                       ・・・（１１）
c(tp’)= {(c(tpi+1)-c(tpi))/(tpi+1-tpi)}(tp’-tpi)+c(tpi)
(tpi≦tp’＜tpi+1),c(tp’)=c(tpe) (tpe≦tp’)         ・・・（１２）
f0(tp’)= {(f0(tpi+1)-f0(tpi))/(tpi+1-tpi)}(tp’-tpi)+f0(tpi)
(tpi≦tp’＜tpi+1),f0(tp’)=f0(tpe) (tpe≦tp’)       ・・・（１３）
ただしi=1,2,3,…であり、tpeは摩擦モデルが収束した時の温度である。
【００３１】
このようにして、温度とともに変化する摩擦力を生成することにより、温度変化に応じた摩擦補償を行うことができ、温度の変化に依存することなく常に位置制御や柔軟制御の制御性能を高く維持することができる。
【実施例５】
【００３２】
図１４は、本発明のサーボ制御装置の実施例５の構成図である。実施例１と異なるのは、摩擦モデル生成部２０がなく、補償部２１の前段に摩擦分離部２４を備えていることであり、速度制御器１２の出力であるトルク指令から比較部１９の出力を差し引いて摩擦力を分離し、補償部２１にて摩擦分離部２４の出力に前記比較部１９の出力を加算して摩擦力を補償する点である。すなわち、前記比較部１９の出力を摩擦力としてトルク指令から摩擦力を分離して位置指令に追従するための加速分のトルク指令を求め、加速分のトルク指令に摩擦力を補償することにより、摩擦モデルを生成することなく常に摩擦力を補償するということである。これは次に述べるように加速分のトルク指令にのみ、トルクリミッタを使用するような場合に有効である。
【００３３】
実施例２同様、図１５に示すようにトルクリミッタ１３、モデルトルクリミッタ１７、未知外力推定部２２を加えることができる。実施例５では、トルクリミッタが入ったこの構成の方が一般的である。特に柔軟制御の場合は、前記トルクリミッタ１３のトルク制限値が小さいため、トルク指令を加速分と摩擦分に分離して加速分のみにトルク制限をかけることは有効となる。これを図１６のグラフを用いて説明する。図１６は図１５の構成の時のトルク波形を示す。前記比較部１９で図１６（ａ）に示す前記速度制御器１２の出力であるトルク指令Trefと前記シミュレーション速度制御器１６の出力であるトルク指令Tsimとから図１６（ｂ）に示すトルク指令差分値ΔTが求められる。前記トルク指令差分値ΔTが摩擦力に相当するので、前記摩擦分離部２４にて前記トルク指令Trefと前記トルク指令差分値ΔTの差を取ることにより図１６（ｃ）に示すような加速分を抽出したトルク指令を求めることができる。これにトルクリミッタをかけ、前記トルク指令差分値ΔTを加算することにより図１６（ｄ）のように摩擦補償されたトルク指令を生成できる。柔軟制御のようなトルク制限が小さい場合でも、トルク指令を加速分と摩擦分に分離し、加速分にトルク制限をかけてから摩擦分を補償することにより所望のトルク指令を出力することができる。
【００３４】
このようにして、摩擦モデルを生成せずに簡単な構成で時間変化に対応した摩擦補償を行うことができ、常に制御性能を高く維持することができる。
【産業上の利用可能性】
【００３５】
本発明は、シミュレーションを用いて時間や温度ともに変化する摩擦力をより正確に求め補償するため、機構部分に摩擦要素を持った産業用ロボットや民生用ロボットなどの位置制御、柔軟制御を行う装置に関して広く適用できる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施例１を示すサーボ制御装置の構成図
【図２】本発明の第１の適用例を表すイメージ図（ＸＹステージ）
【図３】本発明の第２の適用例を表すイメージ図（ロボット）
【図４】本発明の位置制御器のブロック図
【図５】本発明の速度制御器のブロック図
【図６】本発明のメカモデル演算部のブロック図
【図７】本発明の実施例１の実施手順を示すフローチャート
【図８】本発明の実施例１でのトルク指令比較方法を示す説明図
【図９】本発明の摩擦モデル生成を示す説明図
【図１０】本発明の実施例２を示すサーボ制御装置の構成図
【図１１】本発明の未知外力推定部のブロック図
【図１２】本発明の実施例３の実施手順を示すフローチャート
【図１３】本発明の実施例４を示すサーボ制御装置の構成図
【図１４】本発明の実施例５を示すサーボ制御装置の基本構成図
【図１５】本発明の実施例５を示すサーボ制御装置の応用構成図
【図１６】本発明の実施例５でのトルク指令生成方法を示す説明図
【図１７】従来（特許文献１）のサーボ制御装置の構成図
【図１８】従来（特許文献２）のサーボ制御装置の構成図
【符号の説明】
【００３７】
１０  サーボ制御装置
１１、１０２  位置制御器
１２、１０３  速度制御器
１３  トルクリミッタ
１４  制御対象
１５  シミュレーション位置制御器
１６  シミュレーション速度制御器
１７  モデルトルクリミッタ
１８  メカモデル演算部
１９  比較部
２０  摩擦モデル生成部
２１  補償部
２２  未知外力推定部
２３  温度センサ
２４  摩擦分離部
１０１  位置指令生成部
１０４  メモリ
１０５  アンプ
１０６、２１０  モータ
１０７、２１１  回転検出器
１０８、２１２  負荷機械
２０１  位置発生回路
２０２  第１の位置制御回路
２０３  第１の速度制御回路
２０４  モータの模擬回路
２０５  摩擦モデル回路
２０６  摩擦修正回路
２０７  第２の位置制御回路
２０８  第２の速度制御回路
２０９  トルク制御回路
３０１  制御演算装置
３０２  Ｘ軸アンプ
３０３  Ｙ軸アンプ
３０４  ＸＹテーブル装置
３０５  Ｘ軸モータ
３０６  Ｙ軸モータ
３０７  テーブル
４０１  多関節ロボット
４０２  ロボット制御盤
４０３  ロボット用多軸制御演算装置
４０４  ロボット用多軸アンプ
【図１】
2006146572.tif 000003
【図２】
2006146572.tif 000004
【図３】
2006146572.tif 000005
【図４】
2006146572.tif 000006
【図５】
2006146572.tif 000007
【図６】
2006146572.tif 000008
【図７】
2006146572.tif 000009
【図８】
2006146572.tif 000010
【図９】
2006146572.tif 000011
【図１０】
2006146572.tif 000012
【図１１】
2006146572.tif 000013
【図１２】
2006146572.tif 000014
【図１３】
2006146572.tif 000015
【図１４】
2006146572.tif 000016
【図１５】
2006146572.tif 000017
【図１６】
2006146572.tif 000018
【図１７】
2006146572.tif 000019
【図１８】
2006146572.tif 000020