(58)【調査した分野】(Int.Cl.,DB名)
動作部と、当該動作部を作動させるアクチュエータ部と、当該動作部及び当該アクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、当該動作部の振動を抑制する振動抑制装置であって、
前記アクチュエータ部を駆動する駆動信号を生成する生成手段と、
前記機械システムに関する計測量を推定する推定手段と、
前記推定手段により推定された前記計測量に基づいて、前記生成手段により生成された前記駆動信号を補正する補正手段と、
前記機械システムのモデル化誤差が増大する期間において、当該モデル化誤差の増大の影響が小さくなるように、前記推定手段で用いられるゲインを変更する変更手段と
を備えたことを特徴とする振動抑制装置。
前記補正手段は、前記駆動信号に対して前記計測量に基づくポジティブフィードバックを行うことにより、当該駆動信号を補正することを特徴とする請求項1に記載の振動抑制装置。
前記計測量は、前記アクチュエータ部の振動トルクの推定値又は前記アクチュエータ部の振動トルクの微分値の推定値であることを特徴とする請求項1に記載の振動抑制装置。
前記推定手段は、推定された外乱に対してフィルタ処理を行うことにより、当該外乱から前記振動トルクの推定値又は前記振動トルクの微分値の推定値を算出することを特徴とする請求項5に記載の振動抑制装置。
前記計測量は、前記アクチュエータ部の振動トルクの推定値又は前記アクチュエータ部の振動トルクの推定値の微分値であることを特徴とする請求項1に記載の振動抑制装置。
前記推定手段は、推定された外乱に対して忘却因子及び重み付きの最小自乗推定を行うことにより、当該外乱から前記振動トルクの推定値を算出することを特徴とする請求項8に記載の振動抑制装置。
動作部と、当該動作部を作動させるアクチュエータ部と、当該動作部及び当該アクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、当該動作部の振動を抑制する振動抑制方法であって、
前記機械システムのモデル化誤差が増大する期間において、当該モデル化誤差の増大の影響が小さくなるようにゲインを変更し、当該期間以外においては当該ゲインを変更せずに、当該機械システムに関する計測量を推定するステップと、
推定された前記計測量に基づいて、前記アクチュエータ部を駆動する駆動信号を補正するステップと
を含むことを特徴とする振動抑制方法。
動作部と、当該動作部を作動させるアクチュエータ部と、当該動作部及び当該アクチュエータ部を連結する弾性体とを含む、固有振動モードを有する機械システムにおける、当該動作部の振動を抑制する振動抑制装置として、コンピュータを機能させるプログラムであって、
前記コンピュータを、
前記アクチュエータ部を駆動する駆動信号を生成する生成手段と、
前記機械システムに関する計測量を推定する推定手段と、
前記推定手段により推定された前記計測量に基づいて、前記生成手段により生成された前記駆動信号を補正する補正手段と、
前記機械システムのモデル化誤差が増大する期間において、当該モデル化誤差の増大の影響が小さくなるように、前記推定手段で用いられるゲインを変更する変更手段と
して機能させるためのプログラム。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【0019】
[本実施の形態の背景]
図1は、本実施の形態が適用される機械システム10の構成を示した図である。図示するように、機械システム10は、アーム1とモータ2とが減速機等の弾性体3で結合されることにより構成された、固有振動モードを持つ機械システムである。また、アーム1の回転角をθ
Aとし、モータ2の回転角をθ
Mとし、モータ2への指令トルクをτとする。モータ2からは回転角θ
Mが戻される。ここで、アーム1は動作部の一例であり、モータ2はアクチュエータ部の一例であり、モータ2への指令トルクτはアクチュエータ部を駆動する駆動信号の一例である。また、以下では、指令トルクτ及び回転角θ
Mをアクチュエータ情報と呼ぶことにする。このとき、この機械システム1の運動方程式は次式で与えられる。
【0021】
この式において、アーム1の固有振動数は√(K/J
A)となる。また、J
Aはアーム1の慣性(以下、「アーム慣性」という)、J
Mはモータ2の慣性(以下、「モータ慣性」という)、Kは弾性体3の剛性、f
Aはアーム1の摩擦力(以下、「アーム摩擦力」という)、f
Mはモータ2の摩擦力(以下、「モータ摩擦力」という)、fはアーム1に作用する加振力、εは弾性変形(=θ
A−θ
M)である。尚、明細書の数式及び図面において、文字の真上に付した「・」は時間の一階微分を表し、文字の真上に付した「・・」は時間の二階微分を表す。一方で、明細書のテキストにおいては、時間の一階微分を「d/dt」で表し、時間の二階微分を「d
2/dt
2」で表すものとする。
【0022】
ここで、既存技術として、外乱オブザーバを構成し、その出力をフィルタ処理して振動トルク成分を取り出し、オープンループ制御にて駆動信号を補正するものが考えられる。
【0023】
良く制御されたロボット等では、一般に駆動信号における振動トルク成分は微小で、モデル化誤差の影響を受け易い。特に、ロボット等が微小動作をしている場合、摩擦力の影響が支配的になり、折り返し動作時には摩擦力が激変する。その際、発生するモデル化誤差が激増し、含まれる周波数成分も高周波成分を多岐に含んでいる。
【0024】
このような状況で既存技術を適用すると、外乱オブザーバの出力は、折り返し時の摩擦力によるモデル化誤差の影響を大きく受け、フィルタ処理して振動トルク成分を取り出そうとしても、誤った成分が取り出されることになる。特に位相が90°以上ずれてしまうと、振動抑制効果は無くなり、逆に振動を加振してしまう可能性がある。上記のモデル化誤差の影響で、既存技術で推定された振動トルク成分についても、真値に対して90°以上の位相ずれが発生し、逆に加振してしまう結果となる。即ち、折り返し時には、振動トルク成分よりもモデル化誤差成分が非常に大きい状況となり、既存技術では誤った推定結果に基づいて制御してしまうこととなる。
【0025】
図2及び
図3は、微小運動時の振動挙動のシミュレーション結果を示したグラフである。このうち、
図2は、振動抑制が無い場合の振動挙動を示しており、
図3は、既存技術により振動抑制を行った場合の振動挙動を示している。これらの図から、既存技術によって振動が全く抑制されていないことが分かる。
【0026】
尚、
図3は、加振力fが作用しない場合のシミュレーション結果であるが、加振力fが作用した場合、モデル化誤差の影響で位相がずれてしまい、既存技術では逆に振動を冗長してしまう可能性がある。
【0027】
そこで、本実施の形態では、モデル化誤差(特に高周波成分を含む)が大きな箇所において、推定部のゲインを小さくすることで、モデル化誤差の影響を小さくする。具体的には、摩擦力のモデル化誤差の変化が激しい、モータ角速度の方向が反転する前後の期間において、オブザーバの収束ゲインを小さくし、又は、最小自乗推定における重みを小さくして、モデル化誤差の影響を小さくする。
【0028】
[第1の実施の形態]
図4は、第1の実施の形態における機械制御システム100の構成例を示したブロック図である。図示するように、この機械制御システム100は、機械システム10と、機械システム10を制御するコントローラ20とを含む。コントローラ20では、例えばCPU(図示せず)がROM等の記憶手段(図示せず)からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ20を設けている。
【0029】
まず、機械システム10の機能構成について説明する。
【0030】
図示するように、機械システム10は、演算器11乃至15を含む。
【0031】
演算器11は、加振力fから、演算器12により出力されたアーム摩擦力f
A(dθ
A/dt)を減算し、演算器15により出力されたKεを減算した結果を取得する。そして、これをアーム慣性J
Aで除算した結果を積分することによりアーム角速度dθ
A/dtを演算し、この演算されたアーム角速度dθ
A/dtを出力する。
【0032】
演算器12は、演算器11により出力されたアーム角速度dθ
A/dtを取得する。そして、これに基づいてアーム摩擦力f
A(dθ
A/dt)を演算し、この演算されたアーム摩擦力f
A(dθ
A/dt)を出力する。
【0033】
演算器13は、コントローラ20により出力された指令トルクτから、演算器14により出力されたモータ摩擦力f
M(dθ
M/dt)を減算し、演算器15により出力されたKεを加算した結果を取得する。そして、これをモータ慣性J
Mで除算した結果を積分することによりモータ角速度dθ
M/dtを演算し、この演算されたモータ角速度dθ
M/dtを出力する。
【0034】
演算器14は、演算器13により出力されたモータ角速度dθ
M/dtを取得する。そして、これに基づいてモータ摩擦力f
M(dθ
M/dt)を演算し、この演算されたモータ摩擦力f
M(dθ
M/dt)を出力する。
【0035】
演算器15は、演算器11により出力されたアーム角速度dθ
A/dtから演算器13により出力されたモータ角速度dθ
M/dtを減算することにより得られた弾性変形速度dε/dtを取得する。そして、これに剛性Kを乗算した結果を積分することによりKεを演算し、この演算されたKεを出力する。
【0036】
次に、コントローラ20の機能構成について説明する。
【0037】
図示するように、コントローラ20は、PID制御部21と、慣性補償部22と、摩擦補償部23を含む。
【0038】
PID制御部21は、コントローラ20に対して指示されたモータ2の目標とする角速度(以下、「目標角速度」という)dθ
D/dtから、機械システム10よりフィードバックされたモータ角速度dθ
M/dtを減算した結果を取得する。そして、これに対しPID制御を行うことにより、フィードバックトルクを出力する。
【0039】
慣性補償部22は、コントローラ20に対して指示された目標角速度dθ
D/dtを取得する。そして、これにアーム慣性モデル及びモータ慣性モデルを適用して慣性補償「(J
A^+J
M^)d
2θ
D/dt
2」を演算することにより、慣性モデルに基づくフィードフォワードトルクを出力する。
【0040】
摩擦補償部23は、コントローラ20に対して指示された目標角速度dθ
D/dtを取得する。そして、これにアーム摩擦モデル及びモータ摩擦モデルを適用して摩擦補償「f
A^(dθ
D/dt)+f
M^(dθ
D/dt)」を演算することにより、摩擦モデルに基づくフィードフォワードトルクを出力する。
【0041】
尚、明細書の数式及び図面においては、ハット記号を文字の真上に付すが、明細書のテキストにおいては、ハット記号を文字の後ろに付すものとする。本実施の形態では、駆動信号を生成する生成手段の一例として、PID制御部21、慣性補償部22、摩擦補償部23を設けている。
【0042】
また、コントローラ20は、振動トルク推定部30を含む。振動トルク推定部30は、機械システム10により出力されたモータ角速度dθ
M/dtを取得し、弾性体3で発生してモータ2に作用する振動トルクの推定値である 振動トルク推定値d
ω^を出力する。具体的には、振動トルク推定部30は、演算部31と、周期外乱オブザーバ32とを含む。
【0043】
演算部31は、機械システム10により出力されたモータ角速度dθ
M/dtを取得する。そして、これにアーム慣性J
Aとモータ慣性J
Mとの和を乗算した結果を微分することにより、慣性力を出力する。
【0044】
周期外乱オブザーバ32は、演算部31により出力された慣性力と摩擦補償部23により出力された摩擦モデルに基づくトルクとの和から、モータ2への指令トルクτを減算することにより得られた外乱トルクdを取得する。そして、外乱トルクdに対して次式で表される固有振動周波数ωの振動成分だけを取り出すフィルタ処理 を行うことにより振動トルク推定値d
ω^を演算し、この演算された振動トルク推定値d
ω^を出力する。
【0046】
本実施の形態では、機械システムに関する計測量の一例として、振動トルク推定値d
ω^を用いており、計測量を推定する推定手段の一例として、振動トルク推定部30を設けている。
【0047】
更に、コントローラ20は、演算部33を含む。演算部33は、振動トルク推定部30により出力された振動トルク推定値d
ω^を取得する。そして、これにフィードバックゲインG
dを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【0048】
これにより、PID制御部21により出力されたフィードバックトルクには、慣性補償部22により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果に、演算部33により出力された振動抑制トルクが加算される。その意味で、演算部33は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部23により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ2への指令トルクτとなる。
【0049】
ところで、第1の実施の形態において、コントローラ20は、これらの構成に加えて、収束ゲイン変更部34を含む。収束ゲイン変更部34は、コントローラ20に対して指示された目標角速度dθ
D/dtに応じて、周期外乱オブザーバ32で用いられるフィルタの収束ゲインに相当するζを修正することで、高周波成分を含んだモデル化誤差が増大する折り返し時の影響を受けないようにする。具体的には、目標角速度dθ
D/dtが小さい時に収束ゲインζを小さくすればよい。以下では、目標角速度dθ
D/dtの絶対値が0.01rad/s以下になった場合に収束ゲインζを0として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度dθ
D/dtが小さくなった時を用いており、推定手段で用いられるゲインの一例として、収束ゲインζを用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、収束ゲイン変更部34を設けている。
【0050】
図5(a)は、既存技術の周期外乱オブザーバ32における外乱推定結果を示したグラフであり、
図5(b)は、第1の実施の形態の周期外乱オブザーバ32における外乱推定結果を示したグラフである。
図5(a),(b)から、既存技術では、モデル化誤差の影響で、加振力を全く推定できていないのに対して、第1の実施の形態では、加振力を正確に推定していることが分かる。
【0051】
また、
図6は、フィードバックゲインG
dを1として振動トルク推定値d
ω^をポジティブフィードバックし、外乱に負けるように共振比制御を行った結果を示したグラフである。
図6から、
図2に示した振動抑制が無い場合に比べ、振動が1/2に抑制されていることが分かる。
【0052】
更に、
図7及び
図8は、フィードバックゲインを大きくして振動トルク推定値d
ω^をポジティブフィードバックし、共振比制御を行った結果を示したグラフである。
図7から、フィードバックゲインG
dを3とした場合、振動が約1/4に低減できていることが分かり、
図8から、フィードバックゲインG
dを10とした場合、振動が約1/11に低減できていることが分かる。
【0053】
図9は、第1の実施の形態におけるコントローラ20の収束ゲイン変更部34、周期外乱オブザーバ32、演算部33等の動作例を示したフローチャートである。
【0054】
図示するように、コントローラ20では、収束ゲイン変更部34が、コントローラ20に指示された目標角速度dθ
D/dtの絶対値が、閾値(例えば、0.01rad/s)以下であるかどうかを判定する(ステップ101)。目標角速度dθ
D/dtの絶対値が閾値以下であると判定すれば、収束ゲイン変更部34は、周期外乱オブザーバ32における収束ゲインζを変更する(ステップ102)。
【0055】
次に、周期外乱オブザーバ32が、外乱トルクdに対して固有振動周波数ωの振動成分だけを取り出すフィルタ処理を行うことにより、振動トルク推定値d
ω^を算出する(ステップ103)。即ち、ステップ102で収束ゲインζが変更されていれば、変更された収束ゲインζを用いて、振動トルク推定値d
ω^を算出する。一方、収束ゲインζが変更されていなければ、既定値の収束ゲインζを用いて、振動トルク推定値d
ω^を算出する。
【0056】
次いで、演算部33が、ステップ103で算出された振動トルク推定値d
ω^に基づいて、振動抑制トルクを算出する(ステップ104)。
【0057】
これにより、コントローラ20は、ステップ104で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ2へ出力する(ステップ105)。
【0058】
[第2の実施の形態]
第1の実施の形態では、振動トルク推定値d
ω^の推定に周期外乱オブザーバ32を使用したが、第2の実施の形態では、忘却因子及び重み付きの最小自乗推定を行う推定部(以下、「最小自乗推定部」という)を使用して同様の結果を得る。
【0059】
図10は、第2の実施の形態における機械制御システム200の構成例を示したブロック図である。図示するように、この機械制御システム200は、機械システム10と、機械システム10を制御するコントローラ20とを含む。コントローラ20では、例えばCPU(図示せず)がROM等の記憶手段(図示せず)からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ20を設けている。
【0060】
機械システム10の機能構成については、第1の実施の形態で説明したものと同様なので説明を省略する。
【0061】
次に、コントローラ20の機能構成について説明する。
【0062】
図示するように、コントローラ20は、PID制御部21と、慣性補償部22と、摩擦補償部23を含む。これらの構成についても、第1の実施の形態で説明したものと同様なので説明を省略する。
【0063】
また、コントローラ20は、振動トルク推定部40を含む。振動トルク推定部40は、第1の実施の形態における振動トルク推定部30と同様に、機械システム10により出力されたモータ角速度dθ
M/dtを取得し、弾性体3で発生してモータ2に作用する振動トルクの推定値である振動トルク推定値d
ω^を出力する。具体的には、振動トルク推定部40は、演算部41と、最小自乗推定部42とを含む。
【0064】
演算部41は、機械システム10により出力されたモータ角速度dθ
M/dtを取得する。そして、これにアーム慣性J
Aとモータ慣性J
Mとの和を乗算した結果を微分することにより、慣性力を出力する。
【0065】
最小自乗推定部42は、演算部41により出力された慣性力と摩擦補償部23により出力された摩擦モデルに基づくトルクとの和から、モータ2への指令トルクτを減算することにより得られた外乱トルクdを取得する。そして、外乱トルクdに対して次式で表される忘却因子及び重み付きの最小自乗推定を行うことにより振動トルク推定値d
ω^を演算し、この演算された振動トルク推定値d
ω^を出力する。
【0067】
ここで、g(t)は時刻tでの重みであり、ρは忘却係数であり、d(t)は時刻tでの生の外乱値である。
【0068】
本実施の形態では、機械システムに関する計測量の一例として、振動トルク推定値d
ω^を用いており、計測量を推定する推定手段の一例として、振動トルク推定部40を設けている。
【0069】
更に、コントローラ20は、演算部43を含む。演算部43は、振動トルク推定部40により出力された振動トルク推定値d
ω^を取得する。そして、これにフィードバックゲインG
dを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【0070】
これにより、PID制御部21により出力されたフィードバックトルクには、慣性補償部22により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果に、演算部43により出力された振動抑制トルクが加算される。その意味で、演算部43は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部23により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ2への指令トルクτとなる。
【0071】
ところで、第2の実施の形態において、コントローラ20は、これらの構成に加えて、重み変更部44を含む。重み変更部44は、コントローラ20に対して指示された目標角速度dθ
D/dtに応じて、最小自乗推定部42で用いられる式の重みg(t)を変更することで、第1の実施の形態と同様の結果を得る。具体的には、目標角速度dθ
D/dtが小さい時に重みg(t)を小さくすればよい。第2の実施の形態でも
図5乃至
図8と同様のグラフが得られるが、これらのグラフでは、目標角速度dθ
D/dtの絶対値が0.01rad/s以下になった場合に重みg(t)を0として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度dθ
D/dtが小さくなった時を用いており、推定手段で用いられるゲインの一例として、重みg(t)を用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、重み変更部44を設けている。
【0072】
図11は、第2の実施の形態におけるコントローラ20の重み変更部44、最小自乗推定部42、演算部43等の動作例を示したフローチャートである。
【0073】
図示するように、コントローラ20では、重み変更部44が、コントローラ20に指示された目標角速度dθ
D/dtの絶対値が、閾値(例えば、0.01rad/s)以下であるかどうかを判定する(ステップ201)。目標角速度dθ
D/dtの絶対値が閾値以下であると判定すれば、重み変更部44は、最小自乗推定部42における重みg(t)を変更する(ステップ202)。
【0074】
次に、最小自乗推定部42が、外乱トルクdに対して忘却因子及び重み付きの最小自乗推定を行うことにより、振動トルク推定値d
ω^を算出する(ステップ203)。即ち、ステップ202で重みg(t)が変更されていれば、変更された重みg(t)を用いて、振動トルク推定値d
ω^を算出する。一方、重みg(t)が変更されていなければ、既定値の重みg(t)を用いて、振動トルク推定値d
ω^を算出する。
【0075】
次いで、演算部43が、ステップ203で算出された振動トルク推定値d
ω^に基づいて、振動抑制トルクを算出する(ステップ204)。
【0076】
これにより、コントローラ20は、ステップ204で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ2へ出力する(ステップ205)。
【0077】
[第3の実施の形態]
第1及び第2の実施の形態では、推定された振動トルクに負けるように制御する共振比制御にて振動を抑制したが、第3の実施の形態では、振動トルクの微分値をネガティブフィードバックして同様の振動抑制効果を得る。この場合、周期外乱オブザーバの出力である振動トルク推定値を微分しフィードバックしてもよいし、振動トルクの微分値の推定値(以下、「振動トルク微分値推定値」という)を出力する周期外乱速度オブザーバを構成し、振動トルク微分値推定値をフィードバックしてもよい。
【0078】
図12は、第3の実施の形態における機械制御システム300の周期外乱速度オブザーバを構成した場合の構成例を示したブロック図である。図示するように、この機械制御システム300は、機械システム10と、機械システム10を制御するコントローラ20とを含む。コントローラ20では、例えばCPU(図示せず)がROM等の記憶手段(図示せず)からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ20を設けている。
【0079】
機械システム10の機能構成については、第1及び第2の実施の形態で説明したものと同様なので説明を省略する。
【0080】
次に、コントローラ20の機能構成について説明する。
【0081】
図示するように、コントローラ20は、PID制御部21と、慣性補償部22と、摩擦補償部23を含む。これらの構成についても、第1及び第2の実施の形態で説明したものと同様なので説明を省略する。
【0082】
また、コントローラ20は、振動トルク微分値推定部50を含む。振動トルク微分値推定部50は、機械システム10により出力されたモータ角速度dθ
M/dtを取得し、弾性体3で発生してモータ2に作用する振動トルクの微分値の推定値である振動トルク微分値推定値(dd
ω/dt)^を出力する。具体的には、振動トルク微分値推定部50は、演算部51と、周期外乱速度オブザーバ52とを含む。
【0083】
演算部41は、機械システム10により出力されたモータ角速度dθ
M/dtを取得する。そして、これにアーム慣性J
Aとモータ慣性J
Mとの和を乗算した結果を微分することにより、慣性力を出力する。
【0084】
周期外乱速度オブザーバ52は、演算部51により出力された慣性力と摩擦補償部23により出力された摩擦モデルに基づくトルクとの和から、モータ2への指令トルクτを減算することにより得られた外乱トルクdを取得する。そして、外乱トルクdに対して次式で表される固有振動周波数ωの振動速度成分を取り出すフィルタ処理を行うことにより振動トルク微分値推定値(dd
ω/dt)^を演算し、この演算された振動トルク微分値推定値(dd
ω/dt)^を出力する。
【0086】
本実施の形態では、機械システムに関する計測量の一例として、振動トルク微分値推定値(dd
ω/dt)^を用いており、計測量を推定する推定手段の一例として、振動トルク微分値推定部50を設けている。
【0087】
更に、コントローラ20は、演算部53を含む。演算部53は、振動トルク微分値推定部50により出力された振動トルク微分値推定値(dd
ω/dt)^を取得する。そして、これにフィードバックゲインG
dvを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【0088】
これにより、PID制御部21により出力されたフィードバックトルクには、慣性補償部22により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果から、演算部53により出力された振動抑制トルクが減算される。その意味で、演算部53は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部23により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ2への指令トルクτとなる。
【0089】
ところで、第3の実施の形態において、コントローラ20は、これらの構成に加えて、収束ゲイン変更部54を含む。収束ゲイン変更部54は、コントローラ20に対して指示された目標角速度dθ
D/dtに応じて、周期外乱速度オブザーバ52で用いられるフィルタの収束ゲインに相当するζを修正することで、高周波成分を含んだモデル化誤差が増大する折り返し時の影響を受けないようにする。具体的には、目標角速度dθ
D/dtが小さい時に収束ゲインζを小さくすればよい。第3の実施の形態でも
図6乃至
図8と同様のグラフが得られるが、これらのグラフでは、目標角速度dθ
D/dtの絶対値が0.01rad/s以下になった場合に収束ゲインζを0として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度dθ
D/dtが小さくなった時を用いており、推定手段で用いられるゲインの一例として、収束ゲインζを用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、収束ゲイン変更部54を設けている。
【0090】
図13は、第3の実施の形態におけるコントローラ20の収束ゲイン変更部54、周期外乱速度オブザーバ52、演算部53等の動作例を示したフローチャートである。
【0091】
図示するように、コントローラ20では、収束ゲイン変更部54が、コントローラ20に指示された目標角速度dθ
D/dtの絶対値が、閾値(例えば、0.01rad/s)以下であるかどうかを判定する(ステップ301)。目標角速度dθ
D/dtの絶対値が閾値以下であると判定すれば、収束ゲイン変更部54は、周期外乱速度オブザーバ52における収束ゲインζを変更する(ステップ302)。
【0092】
次に、周期外乱速度オブザーバ52が、外乱トルクdに対して固有振動周波数ωの振動速度成分だけを取り出すフィルタ処理 を行うことにより、振動トルク微分値推定値(dd
ω/dt)^を算出する(ステップ303)。即ち、ステップ302で収束ゲインζが変更されていれば、変更された収束ゲインζを用いて、振動トルク微分値推定値(dd
ω/dt)^を算出する。一方、収束ゲインζが変更されていなければ、既定値の収束ゲインζを用いて、振動トルク微分値推定値(dd
ω/dt)^を算出する。
【0093】
次いで、演算部53が、ステップ303で算出された振動トルク微分値推定値(dd
ω/dt)^に基づいて、振動抑制トルクを算出する(ステップ304)。
【0094】
これにより、コントローラ20は、ステップ304で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ2へ出力する(ステップ305)。
【0095】
[第4の実施の形態]
第4の実施の形態は、第2の実施の形態のように最小自乗推定を用いた場合に、振動トルク推定値の微分値(以下、「振動トルク推定値微分値」という)をネガティブフィードバックして同様の振動抑制効果を得るものである。
【0096】
図14は、第4の実施の形態における機械制御システム400の構成例を示したブロック図である。図示するように、この機械制御システム400は、機械システム10と、機械システム10を制御するコントローラ20とを含む。コントローラ20では、例えばCPU(図示せず)がROM等の記憶手段(図示せず)からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ20を設けている。
【0097】
機械システム10の機能構成については、第1乃至第3の実施の形態で説明したものと同様なので説明を省略する。
【0098】
次に、コントローラ20の機能構成について説明する。
【0099】
図示するように、コントローラ20は、PID制御部21と、慣性補償部22と、摩擦補償部23を含む。これらの構成についても、第1乃至第3の実施の形態で説明したものと同様なので説明を省略する。
【0100】
また、コントローラ20は、振動トルク推定部60を含む。振動トルク推定部60は、第2の実施の形態における振動トルク推定部40と同様に、機械システム10により出力されたモータ角速度dθ
M/dtを取得し、弾性体3で発生してモータ2に作用する振動トルクの推定値である振動トルク推定値d
ω^を出力する。具体的には、振動トルク推定部60は、演算部61と、最小自乗推定部62とを含む。
【0101】
演算部61は、機械システム10により出力されたモータ角速度dθ
M/dtを取得する。そして、これにアーム慣性J
Aとモータ慣性J
Mとの和を乗算した結果を微分することにより、慣性力を出力する。
【0102】
最小自乗推定部62は、演算部61により出力された慣性力と摩擦補償部23により出力された摩擦モデルに基づくトルクとの和から、モータ2への指令トルクτを減算することにより得られた外乱トルクdを取得する。そして、外乱トルクdに対して次式で表される忘却因子及び重み付きの最小自乗推定を行うことにより振動トルク推定値d
ω^を演算し、この演算された振動トルク推定値d
ω^を出力する。
【0104】
ここで、g(t)は時刻tでの重みであり、ρは忘却係数であり、d(t)は時刻tでの生の外乱値である。
【0105】
更に、コントローラ20は、演算部63と、演算部64とを含む。
【0106】
演算部63は、振動トルク推定部60により出力された振動トルク推定値d
ω^を取得する。そして、これを微分することにより振動トルク推定値微分値d(d
ω^)/dtを演算し、この演算された振動トルク推定値微分値d(d
ω^)/dtを出力する。
【0107】
本実施の形態では、機械システムに関する計測量の一例として、振動トルク推定値微分値d(d
ω^)/dtを用いており、計測量を推定する推定手段の一例として、振動トルク推定部30及び演算部63を設けている。
【0108】
演算部64は、演算部63により出力された振動トルク推定値微分値d(d
ω^)/dtを取得する。そして、これにフィードバックゲインG
dvを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【0109】
これにより、PID制御部21により出力されたフィードバックトルクには、慣性補償部22により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果から、演算部64により出力された振動抑制トルクが減算される。その意味で、演算部64は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部23により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ2への指令トルクτとなる。
【0110】
ところで、第4の実施の形態において、コントローラ20は、これらの構成に加えて、重み変更部65を含む。重み変更部65は、コントローラ20に対して指示された目標角速度dθ
D/dtに応じて、最小自乗推定部62で用いられる式の重みg(t)を変更することで、第3の実施の形態と同様の結果を得る。具体的には、目標角速度dθ
D/dtが小さい時に重みg(t)を小さくすればよい。第4の実施の形態でも
図6乃至
図8と同様のグラフが得られるが、これらのグラフでは、目標角速度dθ
D/dtの絶対値が0.01rad/s以下になった場合に重みg(t)を0として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度dθ
D/dtが小さくなった時を用いており、推定手段で用いられるゲインの一例として、重みg(t)を用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、重み変更部65を設けている。
【0111】
図15は、第4の実施の形態におけるコントローラ20の重み変更部65、最小自乗推定部62、演算部63、演算部64等の動作例を示したフローチャートである。
【0112】
図示するように、コントローラ20では、重み変更部65が、コントローラ20に指示された目標角速度dθ
D/dtの絶対値が、閾値(例えば、0.01rad/s)以下であるかどうかを判定する(ステップ401)。目標角速度dθ
D/dtの絶対値が閾値以下であると判定すれば、重み変更部65は、最小自乗推定部62における重みg(t)を変更する(ステップ402)。
【0113】
次に、最小自乗推定部62が、外乱トルクdに対して忘却因子及び重み付きの最小自乗推定を行うことにより、振動トルク推定値d
ω^を算出する(ステップ403)。即ち、ステップ402で重みg(t)が変更されていれば、変更された重みg(t)を用いて、振動トルク推定値d
ω^を算出する。一方、重みg(t)が変更されていなければ、既定値の重みg(t)を用いて、振動トルク推定値d
ω^を算出する。
【0114】
そして、演算部63が、ステップ403で算出された振動トルク推定値d
ω^を微分することにより、振動トルク推定値微分値d(d
ω^)/dtを算出する(ステップ404)。
【0115】
次いで、演算部64が、ステップ404で算出された振動トルク推定値微分値d(d
ω^)/dtに基づいて、振動抑制トルクを算出する(ステップ405)。
【0116】
これにより、コントローラ20は、ステップ405で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ2へ出力する(ステップ406)。
【0117】
[第5の実施の形態]
第1乃至第4の実施の形態では、外乱を推定するオブザーバを構成したが、第5の実施の形態では、アーム角速度dθ
A/dtを推定するオブザーバを構成する。
【0118】
図16は、第5の実施の形態における機械制御システム500の構成例を示したブロック図である。図示するように、この機械制御システム500は、機械システム10と、機械システム10を制御するコントローラ20とを含む。コントローラ20では、例えばCPU(図示せず)がROM等の記憶手段(図示せず)からプログラムを読み込んで実行することにより、各機能を実現する。本実施の形態では、振動抑制装置の一例として、コントローラ20を設けている。
【0119】
機械システム10の機能構成については、第1乃至第4の実施の形態で説明したものと同様なので説明を省略する。
【0120】
次に、コントローラ20の機能構成について説明する。
【0121】
図示するように、コントローラ20は、PID制御部21と、慣性補償部22と、摩擦補償部23を含む。これらの構成についても、第1乃至第4の実施の形態で説明したものと同様なので説明を省略する。
【0122】
また、コントローラ20は、アーム角速度推定部70を含む。アーム角速度推定部70は、機械システム10により出力されたモータ角速度dθ
M/dtを取得し、アーム角速度推定値(dθ
A/dt)^を出力する。具体的には、アーム角速度推定部70は、アーム角速度推定オブザーバ71を含む。
【0123】
アーム角速度推定オブザーバ71は、機械システム10により出力されたモータ角速度dθ
M/dtと、モータ2への指令トルクτから摩擦補償部23により出力された摩擦モデルに基づくトルクを減算することにより得られたトルクτ
Mとを取得する。そして、このモータ角速度dθ
M/dtとトルクτ
Mとに対して次に示す処理を行うことによりアーム角速度推定値(dθ
A/dt)^を演算し、この演算されたアーム角速度推定値(dθ
A/dt)^を出力する。
【0124】
図17は、モータ角速度dθ
M/dtとトルクτ
Mとからアーム角速度推定値(dθ
A/dt)^を計算するための流れを示したブロック図である。
【0125】
図示するように、アーム角速度推定オブザーバ71では、演算部711が、モータ角速度dθ
M/dtを微分することによりモータ角加速度d
2θ
M/dt
2を演算する。また、演算部712が、トルクτ
Mに1/J
Mを乗算することによりτ
M/J
Mを演算する。更に、演算部713が、後述するように演算されるε^にK/J
Mを乗算することによりKε^/J
Mを演算する。すると、演算部714が、モータ角加速度d
2θ
M/dt
2からτ
M/J
Mを減算し、その結果にKε^/J
Mを加算した結果に、収束ゲインL
1を乗算することにより、L
1×(d
2θ
M/dt
2−τ
M/J
M+Kε^/J
M)を演算する。
【0126】
一方、演算部715が、モータ角加速度d
2θ
M/dt
2からτ
M/J
Mを減算し、その結果にKε^/J
Mを加算した結果に、収束ゲインL
2を乗算することにより、L
2×(d
2θ
M/dt
2−τ
M/J
M+Kε^/J
M)を演算する。また、演算部716が、モータ角速度dθ
M/dtにL
2×(d
2θ
M/dt
2−τ
M/J
M+Kε^/J
M)を加算し、その結果からアーム角速度推定値(dθ
A/dt)^を減算した結果を積分することにより、ε^を演算する。更に、演算部717が、ε^にK/J
Aを乗算することにより、Kε^/J
Aを演算する。
【0127】
これにより、演算部718が、L
1×(d
2θ
M/dt
2−τ
M/J
M+Kε^/J
M)にKε^/J
Aを加算した結果を積分することにより、アーム角速度推定値(dθ
A/dt)^を演算する。
【0128】
このように、アーム角速度推定オブザーバ71は、最小次元オブザーバの形式にて実現している。また、通常、状態量dθ
M/dtの微分値d
2θ
M/dt
2を用いず、出力値τ
M,fで置き換えるが、この実施の形態では、出力値τ
M,fで置き換えることなく状態量dθ
M/dtの微分値d
2θ
M/dt
2を残した形式で実現している。尚、このことは、機械システムの状態方程式における状態量の微分値を用いて、計測量を推定することの一例である。また、このような手法は、第5の実施の形態だけでなく、第1乃至第4の実施の形態においても適用可能である。
【0129】
本実施の形態では、機械システムに関する計測量の一例として、アーム角速度推定値(dθ
A/dt)^を用いており、計測量を推定する推定手段の一例として、アーム角速度推定部70を設けている。
【0130】
再び
図16を参照すると、コントローラ20は、演算部72を含む。演算部72は、アーム角速度推定部70により出力されたアーム角速度推定値(dθ
A/dt)^を取得する。そして、これにフィードバックゲインG
vを乗算することにより振動抑制トルクを演算し、この演算された振動抑制トルクを出力する。
【0131】
これにより、PID制御部21により出力されたフィードバックトルクには、慣性補償部22により出力された慣性モデルに基づくフィードフォワードトルクが加算され、その結果から、演算部72により出力された振動抑制トルクが減算される。その意味で、演算部72は、計測量に基づいて駆動信号を補正する補正手段の一例である。そして、その結果に、摩擦補償部23により出力された摩擦モデルに基づくフィードフォワードトルクが加算され、その結果が、モータ2への指令トルクτとなる。
【0132】
ところで、第5の実施の形態において、コントローラ20は、これらの構成に加えて、収束ゲイン変更部73を含む。収束ゲイン変更部73は、コントローラ20に対して指示された目標角速度dθ
D/dtに応じて、アーム角速度推定オブザーバ71で用いられる収束ゲインL
1,L
2を変更する。具体的には、目標角速度dθ
D/dtが小さい時に収束ゲインL
1,L
2を小さくすればよい。以下では、目標角速度dθ
D/dtの絶対値が0.01rad/s以下になった場合に収束ゲインL
1,L
2を0として、モデル化誤差の影響を排除している。本実施の形態では、機械システムのモデル化誤差が増大する期間の一例として、目標角速度dθ
D/dtが小さくなった時を用いており、推定手段で用いられるゲインの一例として、収束ゲインL
1,L
2を用いており、機械システムのモデル化誤差が増大する期間においてモデル化誤差の増大の影響が小さくなるようにゲインを変更する変更手段の一例として、収束ゲイン変更部73を設けている。
【0133】
図18及び
図19は、収束ゲインL
1,L
2を目標角速度dθ
D/dtに応じて変更しなかった場合のシミュレーション結果を示したグラフである。このうち、
図18は、アーム角速度の実値とアーム角速度推定値との違いを示している。この図から、アーム角速度推定値がモデル化誤差の影響でアーム角速度の実値から乖離していることが分かる。また、
図19は、
図18のアーム角速度推定値を用いてフィードバックを行った結果を示している。この図から、アーム角速度の実値から乖離したアーム角速度推定値をフィードバックすることで、モータ角速度が目標角速度から大きく乖離していることが分かる。また、これにより、アーム角速度もアーム1の目標とする角速度から大きく乖離していることが推測される。
【0134】
一方、
図20及び
図21は、収束ゲインL
1,L
2を目標角速度dθ
D/dtに応じて変更した場合のシミュレーション結果を示したグラフである。このうち、
図20は、アーム角速度の実値とアーム角速度推定値との違いを示している。この図から、アーム角速度の実値とほぼ一致するアーム角速度推定値が得られることが分かる。また、
図21は、
図20のアーム角速度推定値を用いてフィードバックを行った結果を示している。この図から、アーム角速度の実値とほぼ一致するアーム角速度推定値をフィードバックすることで、良好な振動抑制効果が得られることが分かる。
【0135】
図22は、第5の実施の形態におけるコントローラ20の収束ゲイン変更部73、アーム角速度推定オブザーバ71、演算部72等の動作例を示したフローチャートである。
【0136】
図示するように、コントローラ20では、収束ゲイン変更部73が、コントローラ20に指示された目標角速度dθ
D/dtの絶対値が、閾値(例えば、0.01rad/s)以下であるかどうかを判定する(ステップ501)。目標角速度dθ
D/dtの絶対値が閾値以下であると判定すれば、収束ゲイン変更部73は、アーム角速度推定オブザーバ71における収束ゲインL
1,L
2を変更する(ステップ502)。
【0137】
次に、アーム角速度推定オブザーバ71が、
図17に示した処理を行うことにより、アーム角速度推定値(dθ
A/dt)^を算出する(ステップ503)。即ち、ステップ502で収束ゲインL
1,L
2が変更されていれば、変更された収束ゲインL
1,L
2を用いて、アーム角速度推定値(dθ
A/dt)^を算出する。一方、収束ゲインL
1,L
2が変更されていなければ、既定値の収束ゲインL
1,L
2を用いて、アーム角速度推定値(dθ
A/dt)^を算出する。
【0138】
次いで、演算部72が、ステップ503で算出されたアーム角速度推定値(dθ
A/dt)^に基づいて、振動抑制トルクを算出する(ステップ504)。
【0139】
これにより、コントローラ20は、ステップ504で算出された振動抑制トルクに基づいて補正された指令トルクτをモータ2へ出力する(ステップ505)。
【0140】
[変形例]
第1乃至第5の実施の形態では、振動トルク推定値d
ω^、振動トルク微分値推定値(dd
ω/dt)^、振動トルク推定値微分値d(d
ω^)/dt、アーム角速度推定値(dθ
A/dt)^に基づいて、振動抑制トルクを算出したが、これには限らない。例えば、弾性体3の弾性変形速度の推定値(dε/dt)^に基づいて、振動抑制トルクを算出してもよい。