(57)【要約】      （修正有）【課題】機械システムのモデル化誤差が増大する期間において、モデル化誤差の増大の影響が小さくなるように、推定手段で用いられるゲインを変更する変更手段とを備えた振動抑制装置を提供する。【解決手段】動作部（アーム）と、動作部を作動させるアクチュエータ部（モータ）と、動作部及びアクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システム１０における動作部の振動を抑制する振動抑制装置２０であって、アクチュエータ部を駆動する駆動信号を生成する生成手段と、機械システムに関する計測量を推定する推定手段３０と、推定手段により推定された計測量に基づいて、生成手段により生成された駆動信号を補正する補正手段３３と、機械システムのモデル化誤差が増大する期間において、モデル化誤差の増大の影響が小さくなるように、推定手段で用いられるゲインを変更する変更手段３４とを備えたことを特徴とする振動抑制装置。【選択図】図４
2020057296.tif 000002
【特許請求の範囲】
【請求項１】
動作部と、当該動作部を作動させるアクチュエータ部と、当該動作部及び当該アクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、当該動作部の振動を抑制する振動抑制装置であって、
前記アクチュエータ部を駆動する駆動信号を生成する生成手段と、
前記機械システムに関する計測量を推定する推定手段と、
前記推定手段により推定された前記計測量に基づいて、前記生成手段により生成された前記駆動信号を補正する補正手段と、
前記機械システムのモデル化誤差が増大する期間において、当該モデル化誤差の増大の影響が小さくなるように、前記推定手段で用いられるゲインを変更する変更手段と
を備えたことを特徴とする振動抑制装置。
【請求項２】
前記モデル化誤差が増大する期間は、前記アクチュエータ部の角速度の方向が反転する前後の期間であることを特徴とする請求項１に記載の振動抑制装置。
【請求項３】
前記推定手段は、前記機械システムの状態方程式における状態量の微分値を用いて、前記計測量を推定することを特徴とする請求項１に記載の振動抑制装置。
【請求項４】
前記補正手段は、前記駆動信号に対して前記計測量に基づくポジティブフィードバックを行うことにより、当該駆動信号を補正することを特徴とする請求項１に記載の振動抑制装置。
【請求項５】
前記計測量は、前記アクチュエータ部の振動トルクの推定値又は前記アクチュエータ部の振動トルクの微分値の推定値であることを特徴とする請求項１に記載の振動抑制装置。
【請求項６】
前記推定手段は、推定された外乱に対してフィルタ処理を行うことにより、当該外乱から前記振動トルクの推定値又は前記振動トルクの微分値の推定値を算出することを特徴とする請求項５に記載の振動抑制装置。
【請求項７】
前記変更手段は、前記フィルタ処理における収束ゲインを前記ゲインとして用いることを特徴とする請求項６に記載の振動抑制装置。
【請求項８】
前記計測量は、前記アクチュエータ部の振動トルクの推定値又は前記アクチュエータ部の振動トルクの推定値の微分値であることを特徴とする請求項１に記載の振動抑制装置。
【請求項９】
前記推定手段は、推定された外乱に対して忘却因子及び重み付きの最小自乗推定を行うことにより、当該外乱から前記振動トルクの推定値を算出することを特徴とする請求項８に記載の振動抑制装置。
【請求項１０】
前記変更手段は、前記忘却因子及び重み付きの最小自乗推定における重みを前記ゲインとして用いることを特徴とする請求項９に記載の振動抑制装置。
【請求項１１】
前記計測量は、前記動作部の角速度の推定値であることを特徴とする請求項１に記載の振動抑制装置。
【請求項１２】
前記変更手段は、前記角速度の推定値を算出する際に用いられる収束ゲインを前記ゲインとして用いることを特徴とする請求項１１に記載の振動抑制装置。
【請求項１３】
前記計測量は、前記弾性体の弾性変形角速度の推定値であることを特徴とする請求項１に記載の振動抑制装置。
【請求項１４】
動作部と、当該動作部を作動させるアクチュエータ部と、当該動作部及び当該アクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、当該動作部の振動を抑制する振動抑制方法であって、
前記機械システムのモデル化誤差が増大する期間において、当該モデル化誤差の増大の影響が小さくなるようにゲインを変更し、当該期間以外においては当該ゲインを変更せずに、当該機械システムに関する計測量を推定するステップと、
推定された前記計測量に基づいて、前記アクチュエータ部を駆動する駆動信号を補正するステップと
を含むことを特徴とする振動抑制方法。
【請求項１５】
動作部と、当該動作部を作動させるアクチュエータ部と、当該動作部及び当該アクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、当該動作部の振動を抑制する振動抑制装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記アクチュエータ部を駆動する駆動信号を生成する生成手段と、
前記機械システムに関する計測量を推定する推定手段と、
前記推定手段により推定された前記計測量に基づいて、前記生成手段により生成された前記駆動信号を補正する補正手段と、
前記機械システムのモデル化誤差が増大する期間において、当該モデル化誤差の増大の影響が小さくなるように、前記推定手段で用いられるゲインを変更する変更手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作部と、動作部を作動させるアクチュエータ部と、動作部及びアクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、動作部の振動を抑制する振動抑制装置、振動抑制方法及びプログラムに関する。
【背景技術】
【０００２】
弾性体を含む駆動系におけるモータに取り付けた外乱オブザーバから得られた外乱トルクに対応する電流をバンドパスフィルタに通過させて、弾性体で発生する振動トルク（電流値）を得て、この電流値（トルク）をゲインＫCで増幅し、モータの電流指令（トルク指令）から引くオープンループ振動抑制方法は、知られている（例えば、特許文献１参照。）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−３３７０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで、外乱オブザーバから得られた外乱トルクをフィルタ処理して振動トルクを取り出し、オープンループ制御にてトルク指令を補正する構成を採用した場合、機械システムのモデル化誤差の影響が大きいと、フィルタ処理で誤った振動トルク成分が取り出され、誤った振動抑制が行われる可能性がある。
【０００５】
本発明の目的は、機械システムのモデル化誤差により誤った振動抑制が行われる可能性を低下させることにある。
【課題を解決するための手段】
【０００６】
かかる目的のもと、本発明は、動作部と、動作部を作動させるアクチュエータ部と、動作部及びアクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、動作部の振動を抑制する振動抑制装置であって、アクチュエータ部を駆動する駆動信号を生成する生成手段と、機械システムに関する計測量を推定する推定手段と、推定手段により推定された計測量に基づいて、生成手段により生成された駆動信号を補正する補正手段と、機械システムのモデル化誤差が増大する期間において、モデル化誤差の増大の影響が小さくなるように、推定手段で用いられるゲインを変更する変更手段とを備えた振動抑制装置を提供する。
【０００７】
ここで、モデル化誤差が増大する期間は、アクチュエータ部の角速度の方向が反転する前後の期間であってよい。
【０００８】
また、推定手段は、機械システムの状態方程式における状態量の微分値を用いて、計測量を推定する、ものであってよい。
【０００９】
更に、補正手段は、駆動信号に対して計測量に基づくポジティブフィードバックを行うことにより、駆動信号を補正する、ものであってよい。
【００１０】
また、計測量は、アクチュエータ部の振動トルクの推定値又はアクチュエータ部の振動トルクの微分値の推定値であってよい。その場合、推定手段は、推定された外乱に対してフィルタ処理を行うことにより、外乱から振動トルクの推定値又は振動トルクの微分値の推定値を算出する、ものであってよい。そして、変更手段は、フィルタ処理における収束ゲインをゲインとして用いる、ものであってよい。
【００１１】
更に、計測量は、アクチュエータ部の振動トルクの推定値又はアクチュエータ部の振動トルクの推定値の微分値であってもよい。その場合、推定手段は、推定された外乱に対して忘却因子及び重み付きの最小自乗推定を行うことにより、外乱から振動トルクの推定値を算出する、ものであってもよい。そして、変更手段は、忘却因子及び重み付きの最小自乗推定における重みをゲインとして用いる、ものであってもよい。
【００１２】
更にまた、計測量は、動作部の角速度の推定値であってもよい。その場合、変更手段は、角速度の推定値を算出する際に用いられる収束ゲインをゲインとして用いる、ものであってもよい。
【００１３】
或いは、計測量は、弾性体の弾性変形角速度の推定値であってもよい。
【００１４】
また、本発明は、動作部と、動作部を作動させるアクチュエータ部と、動作部及びアクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、動作部の振動を抑制する振動抑制方法であって、機械システムのモデル化誤差が増大する期間において、モデル化誤差の増大の影響が小さくなるようにゲインを変更し、期間以外においてはゲインを変更せずに、機械システムに関する計測量を推定するステップと、推定された計測量に基づいて、アクチュエータ部を駆動する駆動信号を補正するステップとを含む振動抑制方法も提供する。
【００１５】
更に、本発明は、動作部と、動作部を作動させるアクチュエータ部と、動作部及びアクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、動作部の振動を抑制する振動抑制装置として、コンピュータを機能させるプログラムであって、コンピュータを、アクチュエータ部を駆動する駆動信号を生成する生成手段と、機械システムに関する計測量を推定する推定手段と、推定手段により推定された計測量に基づいて、生成手段により生成された駆動信号を補正する補正手段と、機械システムのモデル化誤差が増大する期間において、モデル化誤差の増大の影響が小さくなるように、推定手段で用いられるゲインを変更する変更手段として機能させるためのプログラムも提供する。
【発明の効果】
【００１６】
本発明によれば、機械システムのモデル化誤差により誤った振動抑制が行われる可能性を低下させることができる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態が適用される機械システム１０の構成を示した図である。
【図２】微小運動時の振動挙動のうち振動抑制が無い場合の振動挙動のシミュレーション結果を示したグラフである。
【図３】微小運動時の振動挙動のうち既存技術により振動抑制を行った場合の振動挙動のシミュレーション結果を示したグラフである。
【図４】第１の実施の形態における機械制御システムの構成例を示したブロック図である。
【図５】（ａ）は、既存技術の周期外乱オブザーバにおける外乱推定結果を示したグラフであり、（ｂ）は、第１の実施の形態の周期外乱オブザーバにおける外乱推定結果を示したグラフである。
【図６】フィードバックゲインＧｄを１として振動トルク推定値ｄω＾をポジティブフィードバックした結果を示したグラフである。
【図７】フィードバックゲインＧｄを３として振動トルク推定値ｄω＾をポジティブフィードバックした結果を示したグラフである。
【図８】フィードバックゲインＧｄを１０として振動トルク推定値ｄω＾をポジティブフィードバックした結果を示したグラフである。
【図９】第１の実施の形態におけるコントローラの収束ゲイン変更部、周期外乱オブザーバ等の動作例を示したフローチャートである。
【図１０】第２の実施の形態における機械制御システムの構成例を示したブロック図である。
【図１１】第２の実施の形態におけるコントローラの重み変更部、最小自乗推定部等の動作例を示したフローチャートである。
【図１２】第３の実施の形態における機械制御システムの周期外乱速度オブザーバを構成した場合の構成例を示したブロック図である。
【図１３】第３の実施の形態におけるコントローラの収束ゲイン変更部、周期外乱速度オブザーバ等の動作例を示したフローチャートである。
【図１４】第４の実施の形態における機械制御システムの構成例を示したブロック図である。
【図１５】第４の実施の形態におけるコントローラの重み変更部、最小自乗推定部等の動作例を示したフローチャートである。
【図１６】第５の実施の形態における機械制御システムの構成例を示したブロック図である。
【図１７】モータ角速度とトルクとからアーム角速度推定値を計算するための流れを示したブロック図である。
【図１８】収束ゲインを目標角速度に応じて変更しなかった場合のアーム角速度の実値とアーム角速度推定値との違いを示したグラフである。
【図１９】収束ゲインを目標角速度に応じて変更しなかった場合のアーム角速度推定値を用いてフィードバックを行った結果を示したグラフである。
【図２０】収束ゲインを目標角速度に応じて変更した場合のアーム角速度の実値とアーム角速度推定値との違いを示したグラフである。
【図２１】収束ゲインを目標角速度に応じて変更した場合のアーム角速度推定値を用いてフィードバックを行った結果を示したグラフである。
【図２２】第５の実施の形態におけるコントローラの収束ゲイン変更部、アーム角速度推定オブザーバ等の動作例を示したフローチャートである。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【００１９】
［本実施の形態の背景］
図１は、本実施の形態が適用される機械システム１０の構成を示した図である。図示するように、機械システム１０は、アーム１とモータ２とが減速機等の弾性体３で結合されることにより構成された、固有振動モードを持つ機械システムである。また、アーム１の回転角をθＡとし、モータ２の回転角をθＭとし、モータ２への指令トルクをτとする。モータ２からは回転角θＭが戻される。ここで、アーム１は動作部の一例であり、モータ２はアクチュエータ部の一例であり、モータ２への指令トルクτはアクチュエータ部を駆動する駆動信号の一例である。また、以下では、指令トルクτ及び回転角θＭをアクチュエータ情報と呼ぶことにする。このとき、この機械システム１の運動方程式は次式で与えられる。
【００２０】
【数１】
2020057296.tif 000003
【００２１】
この式において、アーム１の固有振動数は√（Ｋ／ＪＡ）となる。また、ＪＡはアーム１の慣性（以下、「アーム慣性」という）、ＪＭはモータ２の慣性（以下、「モータ慣性」という）、Ｋは弾性体３の剛性、ｆＡはアーム１の摩擦力（以下、「アーム摩擦力」という）、ｆＭはモータ２の摩擦力（以下、「モータ摩擦力」という）、ｆはアーム１に作用する加振力、εは弾性変形（＝θＡ−θＭ）である。尚、明細書の数式及び図面において、文字の真上に付した「・」は時間の一階微分を表し、文字の真上に付した「・・」は時間の二階微分を表す。一方で、明細書のテキストにおいては、時間の一階微分を「ｄ／ｄｔ」で表し、時間の二階微分を「ｄ２／ｄｔ２」で表すものとする。
【００２２】
ここで、既存技術として、外乱オブザーバを構成し、その出力をフィルタ処理して振動トルク成分を取り出し、オープンループ制御にて駆動信号を補正するものが考えられる。
【００２３】
良く制御されたロボット等では、一般に駆動信号における振動トルク成分は微小で、モデル化誤差の影響を受け易い。特に、ロボット等が微小動作をしている場合、摩擦力の影響が支配的になり、折り返し動作時には摩擦力が激変する。その際、発生するモデル化誤差が激増し、含まれる周波数成分も高周波成分を多岐に含んでいる。
【００２４】
このような状況で既存技術を適用すると、外乱オブザーバの出力は、折り返し時の摩擦力によるモデル化誤差の影響を大きく受け、フィルタ処理して振動トルク成分を取り出そうとしても、誤った成分が取り出されることになる。特に位相が９０°以上ずれてしまうと、振動抑制効果は無くなり、逆に振動を加振してしまう可能性がある。上記のモデル化誤差の影響で、既存技術で推定された振動トルク成分についても、真値に対して９０°以上の位相ずれが発生し、逆に加振してしまう結果となる。即ち、折り返し時には、振動トルク成分よりもモデル化誤差成分が非常に大きい状況となり、既存技術では誤った推定結果に基づいて制御してしまうこととなる。
【００２５】
図２及び図３は、微小運動時の振動挙動のシミュレーション結果を示したグラフである。このうち、図２は、振動抑制が無い場合の振動挙動を示しており、図３は、既存技術により振動抑制を行った場合の振動挙動を示している。これらの図から、既存技術によって振動が全く抑制されていないことが分かる。
【００２６】
尚、図３は、加振力ｆが作用しない場合のシミュレーション結果であるが、加振力ｆが作用した場合、モデル化誤差の影響で位相がずれてしまい、既存技術では逆に振動を冗長してしまう可能性がある。
【００２７】
そこで、本実施の形態では、モデル化誤差（特に高周波成分を含む）が大きな箇所において、推定部のゲインを小さくすることで、モデル化誤差の影響を小さくする。具体的には、摩擦力のモデル化誤差の変化が激しい、モータ角速度の方向が反転する前後の期間において、オブザーバの収束ゲインを小さくし、又は、最小自乗推定における重みを小さくして、モデル化誤差の影響を小さくする。
【００２８】
［第１の実施の形態］
図４は、第１の実施の形態における機械制御システム１００の構成例を示したブロック図である。図示するように、この機械制御システム１００は、機械システム１０と、機械システム１０を制御するコントローラ２０とを含む。コントローラ２０では、例えばＣＰＵ（図示せず）がＲＯＭ等の記憶手段（図示せず）からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ２０を設けている。
【００２９】
まず、機械システム１０の機能構成について説明する。
【００３０】
図示するように、機械システム１０は、演算器１１乃至１５を含む。
【００３１】
演算器１１は、加振力ｆから、演算器１２により出力されたアーム摩擦力ｆＡ（ｄθＡ／ｄｔ）を減算し、演算器１５により出力されたＫεを減算した結果を取得する。そして、これをアーム慣性ＪＡで除算した結果を積分することによりアーム角速度ｄθＡ／ｄｔを演算し、この演算されたアーム角速度ｄθＡ／ｄｔを出力する。
【００３２】
演算器１２は、演算器１１により出力されたアーム角速度ｄθＡ／ｄｔを取得する。そして、これに基づいてアーム摩擦力ｆＡ（ｄθＡ／ｄｔ）を演算し、この演算されたアーム摩擦力ｆＡ（ｄθＡ／ｄｔ）を出力する。
【００３３】
演算器１３は、コントローラ２０により出力された指令トルクτから、演算器１４により出力されたモータ摩擦力ｆＭ（ｄθＭ／ｄｔ）を減算し、演算器１５により出力されたＫεを加算した結果を取得する。そして、これをモータ慣性ＪＭで除算した結果を積分することによりモータ角速度ｄθＭ／ｄｔを演算し、この演算されたモータ角速度ｄθＭ／ｄｔを出力する。
【００３４】
演算器１４は、演算器１３により出力されたモータ角速度ｄθＭ／ｄｔを取得する。そして、これに基づいてモータ摩擦力ｆＭ（ｄθＭ／ｄｔ）を演算し、この演算されたモータ摩擦力ｆＭ（ｄθＭ／ｄｔ）を出力する。
【００３５】
演算器１５は、演算器１１により出力されたアーム角速度ｄθＡ／ｄｔから演算器１３により出力されたモータ角速度ｄθＭ／ｄｔを減算することにより得られた弾性変形速度ｄε／ｄｔを取得する。そして、これに剛性Ｋを乗算した結果を積分することによりＫεを演算し、この演算されたＫεを出力する。
【００３６】
次に、コントローラ２０の機能構成について説明する。
【００３７】
図示するように、コントローラ２０は、ＰＩＤ制御部２１と、慣性補償部２２と、摩擦補償部２３を含む。
【００３８】
ＰＩＤ制御部２１は、コントローラ２０に対して指示されたモータ２の目標とする角速度（以下、「目標角速度」という）ｄθＤ／ｄｔから、機械システム１０よりフィードバックされたモータ角速度ｄθＭ／ｄｔを減算した結果を取得する。そして、これに対しＰＩＤ制御を行うことにより、フィードバックトルクを出力する。
【００３９】
慣性補償部２２は、コントローラ２０に対して指示された目標角速度ｄθＤ／ｄｔを取得する。そして、これにアーム慣性モデル及びモータ慣性モデルを適用して慣性補償「（ＪＡ＾＋ＪＭ＾）ｄ２θＤ／ｄｔ２」を演算することにより、慣性モデルに基づくフィードフォワードトルクを出力する。
【００４０】
摩擦補償部２３は、コントローラ２０に対して指示された目標角速度ｄθＤ／ｄｔを取得する。そして、これにアーム摩擦モデル及びモータ摩擦モデルを適用して摩擦補償「ｆＡ＾（ｄθＤ／ｄｔ）＋ｆＭ＾（ｄθＤ／ｄｔ）」を演算することにより、摩擦モデルに基づくフィードフォワードトルクを出力する。
【００４１】
尚、明細書の数式及び図面においては、ハット記号を文字の真上に付すが、明細書のテキストにおいては、ハット記号を文字の後ろに付すものとする。本実施の形態では、駆動信号を生成する生成手段の一例として、ＰＩＤ制御部２１、慣性補償部２２、摩擦補償部２３を設けている。
【００４２】
また、コントローラ２０は、振動トルク推定部３０を含む。振動トルク推定部３０は、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得し、弾性体３で発生してモータ２に作用する振動トルクの推定値である 振動トルク推定値ｄω＾を出力する。具体的には、振動トルク推定部３０は、演算部３１と、周期外乱オブザーバ３２とを含む。
【００４３】
演算部３１は、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得する。そして、これにアーム慣性ＪＡとモータ慣性ＪＭとの和を乗算した結果を微分することにより、慣性力を出力する。
【００４４】
周期外乱オブザーバ３２は、演算部３１により出力された慣性力と摩擦補償部２３により出力された摩擦モデルに基づくトルクとの和から、モータ２への指令トルクτを減算することにより得られた外乱トルクｄを取得する。そして、外乱トルクｄに対して次式で表される固有振動周波数ωの振動成分だけを取り出すフィルタ処理 を行うことにより振動トルク推定値ｄω＾を演算し、この演算された振動トルク推定値ｄω＾を出力する。
【００４５】
【数２】
2020057296.tif 000004
【００４６】
本実施の形態では、機械システムに関する計測量の一例として、振動トルク推定値ｄω＾を用いており、計測量を推定する推定手段の一例として、振動トルク推定部３０を設けている。
【００４７】
更に、コントローラ２０は、演算部３３を含む。演算部３３は、振動トルク推定部３０により出力された振動トルク推定値ｄω＾を取得する。そして、これにフィードバックゲインＧｄを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【００４８】
これにより、ＰＩＤ制御部２１により出力されたフィードバックトルクには、慣性補償部２２により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果に、演算部３３により出力された振動抑制トルクが加算される。その意味で、演算部３３は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部２３により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ２への指令トルクτとなる。
【００４９】
ところで、第１の実施の形態において、コントローラ２０は、これらの構成に加えて、収束ゲイン変更部３４を含む。収束ゲイン変更部３４は、コントローラ２０に対して指示された目標角速度ｄθＤ／ｄｔに応じて、周期外乱オブザーバ３２で用いられるフィルタの収束ゲインに相当するζを修正することで、高周波成分を含んだモデル化誤差が増大する折り返し時の影響を受けないようにする。具体的には、目標角速度ｄθＤ／ｄｔが小さい時に収束ゲインζを小さくすればよい。以下では、目標角速度ｄθＤ／ｄｔの絶対値が０．０１ｒａｄ／ｓ以下になった場合に収束ゲインζを０として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度ｄθＤ／ｄｔが小さくなった時を用いており、推定手段で用いられるゲインの一例として、収束ゲインζを用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、収束ゲイン変更部３４を設けている。
【００５０】
図５（ａ）は、既存技術の周期外乱オブザーバ３２における外乱推定結果を示したグラフであり、図５（ｂ）は、第１の実施の形態の周期外乱オブザーバ３２における外乱推定結果を示したグラフである。図５（ａ），（ｂ）から、既存技術では、モデル化誤差の影響で、加振力を全く推定できていないのに対して、第１の実施の形態では、加振力を正確に推定していることが分かる。
【００５１】
また、図６は、フィードバックゲインＧｄを１として振動トルク推定値ｄω＾をポジティブフィードバックし、外乱に負けるように共振比制御を行った結果を示したグラフである。図６から、図２に示した振動抑制が無い場合に比べ、振動が１／２に抑制されていることが分かる。
【００５２】
更に、図７及び図８は、フィードバックゲインを大きくして振動トルク推定値ｄω＾をポジティブフィードバックし、共振比制御を行った結果を示したグラフである。図７から、フィードバックゲインＧｄを３とした場合、振動が約１／４に低減できていることが分かり、図８から、フィードバックゲインＧｄを１０とした場合、振動が約１／１１に低減できていることが分かる。
【００５３】
図９は、第１の実施の形態におけるコントローラ２０の収束ゲイン変更部３４、周期外乱オブザーバ３２、演算部３３等の動作例を示したフローチャートである。
【００５４】
図示するように、コントローラ２０では、収束ゲイン変更部３４が、コントローラ２０に指示された目標角速度ｄθＤ／ｄｔの絶対値が、閾値（例えば、０．０１ｒａｄ／ｓ）以下であるかどうかを判定する（ステップ１０１）。目標角速度ｄθＤ／ｄｔの絶対値が閾値以下であると判定すれば、収束ゲイン変更部３４は、周期外乱オブザーバ３２における収束ゲインζを変更する（ステップ１０２）。
【００５５】
次に、周期外乱オブザーバ３２が、外乱トルクｄに対して固有振動周波数ωの振動成分だけを取り出すフィルタ処理を行うことにより、振動トルク推定値ｄω＾を算出する（ステップ１０３）。即ち、ステップ１０２で収束ゲインζが変更されていれば、変更された収束ゲインζを用いて、振動トルク推定値ｄω＾を算出する。一方、収束ゲインζが変更されていなければ、既定値の収束ゲインζを用いて、振動トルク推定値ｄω＾を算出する。
【００５６】
次いで、演算部３３が、ステップ１０３で算出された振動トルク推定値ｄω＾に基づいて、振動抑制トルクを算出する（ステップ１０４）。
【００５７】
これにより、コントローラ２０は、ステップ１０４で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ２へ出力する（ステップ１０５）。
【００５８】
［第２の実施の形態］
第１の実施の形態では、振動トルク推定値ｄω＾の推定に周期外乱オブザーバ３２を使用したが、第２の実施の形態では、忘却因子及び重み付きの最小自乗推定を行う推定部（以下、「最小自乗推定部」という）を使用して同様の結果を得る。
【００５９】
図１０は、第２の実施の形態における機械制御システム２００の構成例を示したブロック図である。図示するように、この機械制御システム２００は、機械システム１０と、機械システム１０を制御するコントローラ２０とを含む。コントローラ２０では、例えばＣＰＵ（図示せず）がＲＯＭ等の記憶手段（図示せず）からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ２０を設けている。
【００６０】
機械システム１０の機能構成については、第１の実施の形態で説明したものと同様なので説明を省略する。
【００６１】
次に、コントローラ２０の機能構成について説明する。
【００６２】
図示するように、コントローラ２０は、ＰＩＤ制御部２１と、慣性補償部２２と、摩擦補償部２３を含む。これらの構成についても、第１の実施の形態で説明したものと同様なので説明を省略する。
【００６３】
また、コントローラ２０は、振動トルク推定部４０を含む。振動トルク推定部４０は、第１の実施の形態における振動トルク推定部３０と同様に、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得し、弾性体３で発生してモータ２に作用する振動トルクの推定値である振動トルク推定値ｄω＾を出力する。具体的には、振動トルク推定部４０は、演算部４１と、最小自乗推定部４２とを含む。
【００６４】
演算部４１は、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得する。そして、これにアーム慣性ＪＡとモータ慣性ＪＭとの和を乗算した結果を微分することにより、慣性力を出力する。
【００６５】
最小自乗推定部４２は、演算部４１により出力された慣性力と摩擦補償部２３により出力された摩擦モデルに基づくトルクとの和から、モータ２への指令トルクτを減算することにより得られた外乱トルクｄを取得する。そして、外乱トルクｄに対して次式で表される忘却因子及び重み付きの最小自乗推定を行うことにより振動トルク推定値ｄω＾を演算し、この演算された振動トルク推定値ｄω＾を出力する。
【００６６】
【数３】
2020057296.tif 000005
【００６７】
ここで、ｇ（ｔ）は時刻ｔでの重みであり、ρは忘却係数であり、ｄ（ｔ）は時刻ｔでの生の外乱値である。
【００６８】
本実施の形態では、機械システムに関する計測量の一例として、振動トルク推定値ｄω＾を用いており、計測量を推定する推定手段の一例として、振動トルク推定部４０を設けている。
【００６９】
更に、コントローラ２０は、演算部４３を含む。演算部４３は、振動トルク推定部４０により出力された振動トルク推定値ｄω＾を取得する。そして、これにフィードバックゲインＧｄを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【００７０】
これにより、ＰＩＤ制御部２１により出力されたフィードバックトルクには、慣性補償部２２により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果に、演算部４３により出力された振動抑制トルクが加算される。その意味で、演算部４３は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部２３により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ２への指令トルクτとなる。
【００７１】
ところで、第２の実施の形態において、コントローラ２０は、これらの構成に加えて、重み変更部４４を含む。重み変更部４４は、コントローラ２０に対して指示された目標角速度ｄθＤ／ｄｔに応じて、最小自乗推定部４２で用いられる式の重みｇ（ｔ）を変更することで、第１の実施の形態と同様の結果を得る。具体的には、目標角速度ｄθＤ／ｄｔが小さい時に重みｇ（ｔ）を小さくすればよい。第２の実施の形態でも図５乃至図８と同様のグラフが得られるが、これらのグラフでは、目標角速度ｄθＤ／ｄｔの絶対値が０．０１ｒａｄ／ｓ以下になった場合に重みｇ（ｔ）を０として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度ｄθＤ／ｄｔが小さくなった時を用いており、推定手段で用いられるゲインの一例として、重みｇ（ｔ）を用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、重み変更部４４を設けている。
【００７２】
図１１は、第２の実施の形態におけるコントローラ２０の重み変更部４４、最小自乗推定部４２、演算部４３等の動作例を示したフローチャートである。
【００７３】
図示するように、コントローラ２０では、重み変更部４４が、コントローラ２０に指示された目標角速度ｄθＤ／ｄｔの絶対値が、閾値（例えば、０．０１ｒａｄ／ｓ）以下であるかどうかを判定する（ステップ２０１）。目標角速度ｄθＤ／ｄｔの絶対値が閾値以下であると判定すれば、重み変更部４４は、最小自乗推定部４２における重みｇ（ｔ）を変更する（ステップ２０２）。
【００７４】
次に、最小自乗推定部４２が、外乱トルクｄに対して忘却因子及び重み付きの最小自乗推定を行うことにより、振動トルク推定値ｄω＾を算出する（ステップ２０３）。即ち、ステップ２０２で重みｇ（ｔ）が変更されていれば、変更された重みｇ（ｔ）を用いて、振動トルク推定値ｄω＾を算出する。一方、重みｇ（ｔ）が変更されていなければ、既定値の重みｇ（ｔ）を用いて、振動トルク推定値ｄω＾を算出する。
【００７５】
次いで、演算部４３が、ステップ２０３で算出された振動トルク推定値ｄω＾に基づいて、振動抑制トルクを算出する（ステップ２０４）。
【００７６】
これにより、コントローラ２０は、ステップ２０４で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ２へ出力する（ステップ２０５）。
【００７７】
［第３の実施の形態］
第１及び第２の実施の形態では、推定された振動トルクに負けるように制御する共振比制御にて振動を抑制したが、第３の実施の形態では、振動トルクの微分値をネガティブフィードバックして同様の振動抑制効果を得る。この場合、周期外乱オブザーバの出力である振動トルク推定値を微分しフィードバックしてもよいし、振動トルクの微分値の推定値（以下、「振動トルク微分値推定値」という）を出力する周期外乱速度オブザーバを構成し、振動トルク微分値推定値をフィードバックしてもよい。
【００７８】
図１２は、第３の実施の形態における機械制御システム３００の周期外乱速度オブザーバを構成した場合の構成例を示したブロック図である。図示するように、この機械制御システム３００は、機械システム１０と、機械システム１０を制御するコントローラ２０とを含む。コントローラ２０では、例えばＣＰＵ（図示せず）がＲＯＭ等の記憶手段（図示せず）からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ２０を設けている。
【００７９】
機械システム１０の機能構成については、第１及び第２の実施の形態で説明したものと同様なので説明を省略する。
【００８０】
次に、コントローラ２０の機能構成について説明する。
【００８１】
図示するように、コントローラ２０は、ＰＩＤ制御部２１と、慣性補償部２２と、摩擦補償部２３を含む。これらの構成についても、第１及び第２の実施の形態で説明したものと同様なので説明を省略する。
【００８２】
また、コントローラ２０は、振動トルク微分値推定部５０を含む。振動トルク微分値推定部５０は、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得し、弾性体３で発生してモータ２に作用する振動トルクの微分値の推定値である振動トルク微分値推定値（ｄｄω／ｄｔ）＾を出力する。具体的には、振動トルク微分値推定部５０は、演算部５１と、周期外乱速度オブザーバ５２とを含む。
【００８３】
演算部４１は、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得する。そして、これにアーム慣性ＪＡとモータ慣性ＪＭとの和を乗算した結果を微分することにより、慣性力を出力する。
【００８４】
周期外乱速度オブザーバ５２は、演算部５１により出力された慣性力と摩擦補償部２３により出力された摩擦モデルに基づくトルクとの和から、モータ２への指令トルクτを減算することにより得られた外乱トルクｄを取得する。そして、外乱トルクｄに対して次式で表される固有振動周波数ωの振動速度成分を取り出すフィルタ処理を行うことにより振動トルク微分値推定値（ｄｄω／ｄｔ）＾を演算し、この演算された振動トルク微分値推定値（ｄｄω／ｄｔ）＾を出力する。
【００８５】
【数４】
2020057296.tif 000006
【００８６】
本実施の形態では、機械システムに関する計測量の一例として、振動トルク微分値推定値（ｄｄω／ｄｔ）＾を用いており、計測量を推定する推定手段の一例として、振動トルク微分値推定部５０を設けている。
【００８７】
更に、コントローラ２０は、演算部５３を含む。演算部５３は、振動トルク微分値推定部５０により出力された振動トルク微分値推定値（ｄｄω／ｄｔ）＾を取得する。そして、これにフィードバックゲインＧｄｖを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【００８８】
これにより、ＰＩＤ制御部２１により出力されたフィードバックトルクには、慣性補償部２２により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果から、演算部５３により出力された振動抑制トルクが減算される。その意味で、演算部５３は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部２３により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ２への指令トルクτとなる。
【００８９】
ところで、第３の実施の形態において、コントローラ２０は、これらの構成に加えて、収束ゲイン変更部５４を含む。収束ゲイン変更部５４は、コントローラ２０に対して指示された目標角速度ｄθＤ／ｄｔに応じて、周期外乱速度オブザーバ５２で用いられるフィルタの収束ゲインに相当するζを修正することで、高周波成分を含んだモデル化誤差が増大する折り返し時の影響を受けないようにする。具体的には、目標角速度ｄθＤ／ｄｔが小さい時に収束ゲインζを小さくすればよい。第３の実施の形態でも図６乃至図８と同様のグラフが得られるが、これらのグラフでは、目標角速度ｄθＤ／ｄｔの絶対値が０．０１ｒａｄ／ｓ以下になった場合に収束ゲインζを０として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度ｄθＤ／ｄｔが小さくなった時を用いており、推定手段で用いられるゲインの一例として、収束ゲインζを用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、収束ゲイン変更部５４を設けている。
【００９０】
図１３は、第３の実施の形態におけるコントローラ２０の収束ゲイン変更部５４、周期外乱速度オブザーバ５２、演算部５３等の動作例を示したフローチャートである。
【００９１】
図示するように、コントローラ２０では、収束ゲイン変更部５４が、コントローラ２０に指示された目標角速度ｄθＤ／ｄｔの絶対値が、閾値（例えば、０．０１ｒａｄ／ｓ）以下であるかどうかを判定する（ステップ３０１）。目標角速度ｄθＤ／ｄｔの絶対値が閾値以下であると判定すれば、収束ゲイン変更部５４は、周期外乱速度オブザーバ５２における収束ゲインζを変更する（ステップ３０２）。
【００９２】
次に、周期外乱速度オブザーバ５２が、外乱トルクｄに対して固有振動周波数ωの振動速度成分だけを取り出すフィルタ処理 を行うことにより、振動トルク微分値推定値（ｄｄω／ｄｔ）＾を算出する（ステップ３０３）。即ち、ステップ３０２で収束ゲインζが変更されていれば、変更された収束ゲインζを用いて、振動トルク微分値推定値（ｄｄω／ｄｔ）＾を算出する。一方、収束ゲインζが変更されていなければ、既定値の収束ゲインζを用いて、振動トルク微分値推定値（ｄｄω／ｄｔ）＾を算出する。
【００９３】
次いで、演算部５３が、ステップ３０３で算出された振動トルク微分値推定値（ｄｄω／ｄｔ）＾に基づいて、振動抑制トルクを算出する（ステップ３０４）。
【００９４】
これにより、コントローラ２０は、ステップ３０４で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ２へ出力する（ステップ３０５）。
【００９５】
［第４の実施の形態］
第４の実施の形態は、第２の実施の形態のように最小自乗推定を用いた場合に、振動トルク推定値の微分値（以下、「振動トルク推定値微分値」という）をネガティブフィードバックして同様の振動抑制効果を得るものである。
【００９６】
図１４は、第４の実施の形態における機械制御システム４００の構成例を示したブロック図である。図示するように、この機械制御システム４００は、機械システム１０と、機械システム１０を制御するコントローラ２０とを含む。コントローラ２０では、例えばＣＰＵ（図示せず）がＲＯＭ等の記憶手段（図示せず）からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ２０を設けている。
【００９７】
機械システム１０の機能構成については、第１乃至第３の実施の形態で説明したものと同様なので説明を省略する。
【００９８】
次に、コントローラ２０の機能構成について説明する。
【００９９】
図示するように、コントローラ２０は、ＰＩＤ制御部２１と、慣性補償部２２と、摩擦補償部２３を含む。これらの構成についても、第１乃至第３の実施の形態で説明したものと同様なので説明を省略する。
【０１００】
また、コントローラ２０は、振動トルク推定部６０を含む。振動トルク推定部６０は、第２の実施の形態における振動トルク推定部４０と同様に、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得し、弾性体３で発生してモータ２に作用する振動トルクの推定値である振動トルク推定値ｄω＾を出力する。具体的には、振動トルク推定部６０は、演算部６１と、最小自乗推定部６２とを含む。
【０１０１】
演算部６１は、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得する。そして、これにアーム慣性ＪＡとモータ慣性ＪＭとの和を乗算した結果を微分することにより、慣性力を出力する。
【０１０２】
最小自乗推定部６２は、演算部６１により出力された慣性力と摩擦補償部２３により出力された摩擦モデルに基づくトルクとの和から、モータ２への指令トルクτを減算することにより得られた外乱トルクｄを取得する。そして、外乱トルクｄに対して次式で表される忘却因子及び重み付きの最小自乗推定を行うことにより振動トルク推定値ｄω＾を演算し、この演算された振動トルク推定値ｄω＾を出力する。
【０１０３】
【数５】
2020057296.tif 000007
【０１０４】
ここで、ｇ（ｔ）は時刻ｔでの重みであり、ρは忘却係数であり、ｄ（ｔ）は時刻ｔでの生の外乱値である。
【０１０５】
更に、コントローラ２０は、演算部６３と、演算部６４とを含む。
【０１０６】
演算部６３は、振動トルク推定部６０により出力された振動トルク推定値ｄω＾を取得する。そして、これを微分することにより振動トルク推定値微分値ｄ（ｄω＾）／ｄｔを演算し、この演算された振動トルク推定値微分値ｄ（ｄω＾）／ｄｔを出力する。
【０１０７】
本実施の形態では、機械システムに関する計測量の一例として、振動トルク推定値微分値ｄ（ｄω＾）／ｄｔを用いており、計測量を推定する推定手段の一例として、振動トルク推定部３０及び演算部６３を設けている。
【０１０８】
演算部６４は、演算部６３により出力された振動トルク推定値微分値ｄ（ｄω＾）／ｄｔを取得する。そして、これにフィードバックゲインＧｄｖを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【０１０９】
これにより、ＰＩＤ制御部２１により出力されたフィードバックトルクには、慣性補償部２２により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果から、演算部６４により出力された振動抑制トルクが減算される。その意味で、演算部６４は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部２３により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ２への指令トルクτとなる。
【０１１０】
ところで、第４の実施の形態において、コントローラ２０は、これらの構成に加えて、重み変更部６５を含む。重み変更部６５は、コントローラ２０に対して指示された目標角速度ｄθＤ／ｄｔに応じて、最小自乗推定部６２で用いられる式の重みｇ（ｔ）を変更することで、第３の実施の形態と同様の結果を得る。具体的には、目標角速度ｄθＤ／ｄｔが小さい時に重みｇ（ｔ）を小さくすればよい。第４の実施の形態でも図６乃至図８と同様のグラフが得られるが、これらのグラフでは、目標角速度ｄθＤ／ｄｔの絶対値が０．０１ｒａｄ／ｓ以下になった場合に重みｇ（ｔ）を０として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度ｄθＤ／ｄｔが小さくなった時を用いており、推定手段で用いられるゲインの一例として、重みｇ（ｔ）を用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、重み変更部６５を設けている。
【０１１１】
図１５は、第４の実施の形態におけるコントローラ２０の重み変更部６５、最小自乗推定部６２、演算部６３、演算部６４等の動作例を示したフローチャートである。
【０１１２】
図示するように、コントローラ２０では、重み変更部６５が、コントローラ２０に指示された目標角速度ｄθＤ／ｄｔの絶対値が、閾値（例えば、０．０１ｒａｄ／ｓ）以下であるかどうかを判定する（ステップ４０１）。目標角速度ｄθＤ／ｄｔの絶対値が閾値以下であると判定すれば、重み変更部６５は、最小自乗推定部６２における重みｇ（ｔ）を変更する（ステップ４０２）。
【０１１３】
次に、最小自乗推定部６２が、外乱トルクｄに対して忘却因子及び重み付きの最小自乗推定を行うことにより、振動トルク推定値ｄω＾を算出する（ステップ４０３）。即ち、ステップ４０２で重みｇ（ｔ）が変更されていれば、変更された重みｇ（ｔ）を用いて、振動トルク推定値ｄω＾を算出する。一方、重みｇ（ｔ）が変更されていなければ、既定値の重みｇ（ｔ）を用いて、振動トルク推定値ｄω＾を算出する。
【０１１４】
そして、演算部６３が、ステップ４０３で算出された振動トルク推定値ｄω＾を微分することにより、振動トルク推定値微分値ｄ（ｄω＾）／ｄｔを算出する（ステップ４０４）。
【０１１５】
次いで、演算部６４が、ステップ４０４で算出された振動トルク推定値微分値ｄ（ｄω＾）／ｄｔに基づいて、振動抑制トルクを算出する（ステップ４０５）。
【０１１６】
これにより、コントローラ２０は、ステップ４０５で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ２へ出力する（ステップ４０６）。
【０１１７】
［第５の実施の形態］
第１乃至第４の実施の形態では、外乱を推定するオブザーバを構成したが、第５の実施の形態では、アーム角速度ｄθＡ／ｄｔを推定するオブザーバを構成する。
【０１１８】
図１６は、第５の実施の形態における機械制御システム５００の構成例を示したブロック図である。図示するように、この機械制御システム５００は、機械システム１０と、機械システム１０を制御するコントローラ２０とを含む。コントローラ２０では、例えばＣＰＵ（図示せず）がＲＯＭ等の記憶手段（図示せず）からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ２０を設けている。
【０１１９】
機械システム１０の機能構成については、第１乃至第４の実施の形態で説明したものと同様なので説明を省略する。
【０１２０】
次に、コントローラ２０の機能構成について説明する。
【０１２１】
図示するように、コントローラ２０は、ＰＩＤ制御部２１と、慣性補償部２２と、摩擦補償部２３を含む。これらの構成についても、第１乃至第４の実施の形態で説明したものと同様なので説明を省略する。
【０１２２】
また、コントローラ２０は、アーム角速度推定部７０を含む。アーム角速度推定部７０は、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔを取得し、アーム角速度推定値（ｄθＡ／ｄｔ）＾を出力する。具体的には、アーム角速度推定部７０は、アーム角速度推定オブザーバ７１を含む。
【０１２３】
アーム角速度推定オブザーバ７１は、機械システム１０により出力されたモータ角速度ｄθＭ／ｄｔと、モータ２への指令トルクτから摩擦補償部２３により出力された摩擦モデルに基づくトルクを減算することにより得られたトルクτＭとを取得する。そして、このモータ角速度ｄθＭ／ｄｔとトルクτＭとに対して次に示す処理を行うことによりアーム角速度推定値（ｄθＡ／ｄｔ）＾を演算し、この演算されたアーム角速度推定値（ｄθＡ／ｄｔ）＾を出力する。
【０１２４】
図１７は、モータ角速度ｄθＭ／ｄｔとトルクτＭとからアーム角速度推定値（ｄθＡ／ｄｔ）＾を計算するための流れを示したブロック図である。
【０１２５】
図示するように、アーム角速度推定オブザーバ７１では、演算部７１１が、モータ角速度ｄθＭ／ｄｔを微分することによりモータ角加速度ｄ２θＭ／ｄｔ２を演算する。また、演算部７１２が、トルクτＭに１／ＪＭを乗算することによりτＭ／ＪＭを演算する。更に、演算部７１３が、後述するように演算されるε＾にＫ／ＪＭを乗算することによりＫε＾／ＪＭを演算する。すると、演算部７１４が、モータ角加速度ｄ２θＭ／ｄｔ２からτＭ／ＪＭを減算し、その結果にＫε＾／ＪＭを加算した結果に、収束ゲインＬ１を乗算することにより、Ｌ１×（ｄ２θＭ／ｄｔ２−τＭ／ＪＭ＋Ｋε＾／ＪＭ）を演算する。
【０１２６】
一方、演算部７１５が、モータ角加速度ｄ２θＭ／ｄｔ２からτＭ／ＪＭを減算し、その結果にＫε＾／ＪＭを加算した結果に、収束ゲインＬ２を乗算することにより、Ｌ２×（ｄ２θＭ／ｄｔ２−τＭ／ＪＭ＋Ｋε＾／ＪＭ）を演算する。また、演算部７１６が、モータ角速度ｄθＭ／ｄｔにＬ２×（ｄ２θＭ／ｄｔ２−τＭ／ＪＭ＋Ｋε＾／ＪＭ）を加算し、その結果からアーム角速度推定値（ｄθＡ／ｄｔ）＾を減算した結果を積分することにより、ε＾を演算する。更に、演算部７１７が、ε＾にＫ／ＪＡを乗算することにより、Ｋε＾／ＪＡを演算する。
【０１２７】
これにより、演算部７１８が、Ｌ１×（ｄ２θＭ／ｄｔ２−τＭ／ＪＭ＋Ｋε＾／ＪＭ）にＫε＾／ＪＡを加算した結果を積分することにより、アーム角速度推定値（ｄθＡ／ｄｔ）＾を演算する。
【０１２８】
このように、アーム角速度推定オブザーバ７１は、最小次元オブザーバの形式にて実現している。また、通常、状態量ｄθＭ／ｄｔの微分値ｄ２θＭ／ｄｔ２を用いず、出力値τＭ，ｆで置き換えるが、この実施の形態では、出力値τＭ，ｆで置き換えることなく状態量ｄθＭ／ｄｔの微分値ｄ２θＭ／ｄｔ２を残した形式で実現している。尚、このことは、機械システムの状態方程式における状態量の微分値を用いて、計測量を推定することの一例である。また、このような手法は、第５の実施の形態だけでなく、第１乃至第４の実施の形態においても適用可能である。 
【０１２９】
本実施の形態では、機械システムに関する計測量の一例として、アーム角速度推定値（ｄθＡ／ｄｔ）＾を用いており、計測量を推定する推定手段の一例として、アーム角速度推定部７０を設けている。
【０１３０】
再び図１６を参照すると、コントローラ２０は、演算部７２を含む。演算部７２は、アーム角速度推定部７０により出力されたアーム角速度推定値（ｄθＡ／ｄｔ）＾を取得する。そして、これにフィードバックゲインＧｖを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【０１３１】
これにより、ＰＩＤ制御部２１により出力されたフィードバックトルクには、慣性補償部２２により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果から、演算部７２により出力された振動抑制トルクが減算される。その意味で、演算部７２は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部２３により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ２への指令トルクτとなる。
【０１３２】
ところで、第５の実施の形態において、コントローラ２０は、これらの構成に加えて、収束ゲイン変更部７３を含む。収束ゲイン変更部７３は、コントローラ２０に対して指示された目標角速度ｄθＤ／ｄｔに応じて、アーム角速度推定オブザーバ７１で用いられる収束ゲインＬ１，Ｌ２を変更する。具体的には、目標角速度ｄθＤ／ｄｔが小さい時に収束ゲインＬ１，Ｌ２を小さくすればよい。以下では、目標角速度ｄθＤ／ｄｔの絶対値が０．０１ｒａｄ／ｓ以下になった場合に収束ゲインＬ１，Ｌ２を０として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度ｄθＤ／ｄｔが小さくなった時を用いており、推定手段で用いられるゲインの一例として、収束ゲインＬ１，Ｌ２を用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、収束ゲイン変更部７３を設けている。
【０１３３】
図１８及び図１９は、収束ゲインＬ１，Ｌ２を目標角速度ｄθＤ／ｄｔに応じて変更しなかった場合のシミュレーション結果を示したグラフである。このうち、図１８は、アーム角速度の実値とアーム角速度推定値との違いを示している。この図から、アーム角速度推定値がモデル化誤差の影響でアーム角速度の実値から乖離していることが分かる。また、図１９は、図１８のアーム角速度推定値を用いてフィードバックを行った結果を示している。この図から、アーム角速度の実値から乖離したアーム角速度推定値をフィードバックすることで、モータ角速度が目標角速度から大きく乖離していることが分かる。また、これにより、アーム角速度もアーム１の目標とする角速度から大きく乖離していることが推測される。
【０１３４】
一方、図２０及び図２１は、収束ゲインＬ１，Ｌ２を目標角速度ｄθＤ／ｄｔに応じて変更した場合のシミュレーション結果を示したグラフである。このうち、図２０は、アーム角速度の実値とアーム角速度推定値との違いを示している。この図から、アーム角速度の実値とほぼ一致するアーム角速度推定値が得られることが分かる。また、図２１は、図２０のアーム角速度推定値を用いてフィードバックを行った結果を示している。この図から、アーム角速度の実値とほぼ一致するアーム角速度推定値をフィードバックすることで、良好な振動抑制効果が得られることが分かる。
【０１３５】
図２２は、第５の実施の形態におけるコントローラ２０の収束ゲイン変更部７３、アーム角速度推定オブザーバ７１、演算部７２等の動作例を示したフローチャートである。
【０１３６】
図示するように、コントローラ２０では、収束ゲイン変更部７３が、コントローラ２０に指示された目標角速度ｄθＤ／ｄｔの絶対値が、閾値（例えば、０．０１ｒａｄ／ｓ）以下であるかどうかを判定する（ステップ５０１）。目標角速度ｄθＤ／ｄｔの絶対値が閾値以下であると判定すれば、収束ゲイン変更部７３は、アーム角速度推定オブザーバ７１における収束ゲインＬ１，Ｌ２を変更する（ステップ５０２）。
【０１３７】
次に、アーム角速度推定オブザーバ７１が、図１７に示した処理を行うことにより、アーム角速度推定値（ｄθＡ／ｄｔ）＾を算出する（ステップ５０３）。即ち、ステップ５０２で収束ゲインＬ１，Ｌ２が変更されていれば、変更された収束ゲインＬ１，Ｌ２を用いて、アーム角速度推定値（ｄθＡ／ｄｔ）＾を算出する。一方、収束ゲインＬ１，Ｌ２が変更されていなければ、既定値の収束ゲインＬ１，Ｌ２を用いて、アーム角速度推定値（ｄθＡ／ｄｔ）＾を算出する。
【０１３８】
次いで、演算部７２が、ステップ５０３で算出されたアーム角速度推定値（ｄθＡ／ｄｔ）＾に基づいて、振動抑制トルクを算出する（ステップ５０４）。
【０１３９】
これにより、コントローラ２０は、ステップ５０４で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ２へ出力する（ステップ５０５）。
【０１４０】
［変形例］
第１乃至第５の実施の形態では、振動トルク推定値ｄω＾、振動トルク微分値推定値（ｄｄω／ｄｔ）＾、振動トルク推定値微分値ｄ（ｄω＾）／ｄｔ、アーム角速度推定値（ｄθＡ／ｄｔ）＾に基づいて、振動抑制トルクを算出したが、これには限らない。例えば、弾性体３の弾性変形速度の推定値（ｄε／ｄｔ）＾に基づいて、振動抑制トルクを算出してもよい。
【符号の説明】
【０１４１】
１０…機械システム、１１，１２，１３，１４，１５…演算器、２０…コントローラ、２１…ＰＩＤ制御部、２２…慣性補償部、２３…摩擦補償部、３０，４０，６０…振動トルク推定部、３１，３３，４１，４３，５１，５３，６１，６３，６４，７２…演算部、３２…周期外乱オブザーバ、３４，５４，７３…収束ゲイン変更部、４２，６２…最小自乗推定部、４４，６５…重み変更部、５０…振動トルク微分値推定部、５２…周期外乱速度オブザーバ、７０…アーム角速度推定部、７１…アーム角速度推定オブザーバ、１００，２００，３００…機械制御システム
【図１】
2020057296.tif 000008
【図２】
2020057296.tif 000009
【図３】
2020057296.tif 000010
【図４】
2020057296.tif 000011
【図５】
2020057296.tif 000012
【図６】
2020057296.tif 000013
【図７】
2020057296.tif 000014
【図８】
2020057296.tif 000015
【図９】
2020057296.tif 000016
【図１０】
2020057296.tif 000017
【図１１】
2020057296.tif 000018
【図１２】
2020057296.tif 000019
【図１３】
2020057296.tif 000020
【図１４】
2020057296.tif 000021
【図１５】
2020057296.tif 000022
【図１６】
2020057296.tif 000023
【図１７】
2020057296.tif 000024
【図１８】
2020057296.tif 000025
【図１９】
2020057296.tif 000026
【図２０】
2020057296.tif 000027
【図２１】
2020057296.tif 000028
【図２２】
2020057296.tif 000029