以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
ある実施の形態に係る共振抑制装置は、共振周波数の変化が小さく許容範囲内にあるときには通常どおりにノッチフィルタを補正する一方、共振周波数の変化がその許容範囲から外れたときには警告を出力する。機械の通常の運転中に生じ得る共振周波数変化よりも異常に起因する変化のほうが大きいと予測される。警告を発することによって、異常が発生したこと(または異常が発生した可能性があること)をユーザ(例えば、機械の操作者または管理者)に知らせることができる。こうして、早期の保守点検の要否を検討する機会をユーザに提供することができる。
図1は、本発明の一実施形態に係る共振抑制装置10の構成を示すブロック図である。共振抑制装置10は例えば、任意の制御系における共振を抑制するためにその制御系に組み込まれて使用される適応ノッチフィルタを備える。
共振抑制装置10は、制御系に生じ得る1つまたは複数の共振周波数成分を抑えるためのノッチフィルタ12を備える。ノッチフィルタ12は、例えば図5に示される周波数特性を有する公知のフィルタである。ノッチフィルタ12は、中心周波数ω0において振幅ゲインに最小値を有しており、中心周波数ω0の周波数成分を入力信号τ1から除去して出力信号τ2を出力する。
ノッチフィルタ12への入力信号τ1は例えば、ノッチフィルタ12が適用される制御系における制御指令である。入力信号τ1は例えば、当該制御指令の結果得られた出力の検出値と所望の目標指令値との誤差に基づき生成される。入力信号τ1は目標指令値であってもよい。入力信号τ1は、当該制御系における観測量(例えば、位置、速度、加速度など)であってもよい。ノッチフィルタ12の出力信号τ2が入力信号τ1に代えて、制御指令として使用されることになる。
ノッチフィルタ12のフィルタ係数は、制御系の共振周波数成分を入力信号τ1から除去するように、例えば装置10の出荷時に予め設定されている。あるいは、共振抑制装置10を制御系に設置して使用を開始する際の初期設定作業によりフィルタ係数が設定される。設定作業を通じて、ノッチフィルタ12の中心周波数ω0は制御系のいずれかの共振周波数成分に一致するよう調整される。また、初期設定以降の共振抑制装置10の使用中に、ノッチフィルタ12のフィルタ係数は後述するフィルタ係数更新処理によって随時調整される。
ノッチフィルタ12は、複数の周波数成分を除去するよう構成されていてもよく、例えば直列に接続された複数段のノッチフィルタで構成されていてもよい。複数のノッチフィルタはそれぞれ、任意の周波数成分に中心周波数を設定可能とされている。各ノッチフィルタの動作帯域が予め区分けされているわけではない。そのため、共振周波数の分布に応じてノッチフィルタを柔軟に割り当てることができる。例えば、2つの共振周波数成分が比較的接近している場合にもそれぞれにノッチフィルタを割り当てることができる。しかし、各ノッチフィルタの動作帯域が予め区分けされていてもよい。その場合、各ノッチフィルタが担当する区分ごとに共振周波数成分が1つとなるように予め区分けされていることが望ましい。
共振抑制装置10は、ノッチフィルタ12のフィルタ係数を更新するためのフィルタ係数調整部13を備える。フィルタ係数更新処理は、ノッチフィルタ12が適用される制御系の共振周波数にノッチフィルタ12の中心周波数ω0を一致させるための処理である。フィルタ係数更新処理は、中心周波数ω0だけではなく、中心周波数ω0以外のノッチフィルタ12の係数(例えばノッチ幅やノッチ深さ)を併せて調整してもよい。
フィルタ係数調整部13は、ノッチフィルタ12のフィルタ係数を参照信号rに基づいて修正する。参照信号rは、入力信号τ1と同様に、ノッチフィルタ12が適用される制御対象への制御指令であってもよいし、当該制御対象からの観測量であってもよい。フィルタ係数調整部13は、制御対象の振動により生じた騒音から生成した参照信号rを用いてもよい。そのために、制御対象が発する音を分析して参照信号rを生成する参照信号生成部を設けてもよい。制御対象が発する音を集音して参照信号生成部に供給するためのマイク等の集音器を設けてもよい。このように、フィルタ係数調整部13は、制御対象の振動成分を抽出することのできるいかなる信号を参照信号rとして用いてもよい。
フィルタ係数調整部13は、ノッチフィルタ12の中心周波数ω0を調整するための中心周波数演算部17を含む。この場合中心周波数演算部17は、位相差フィルタ16と、修正演算部18と、を含んでもよく、これらの詳細については後述する。一実施例においては、中心周波数演算部17は、中心周波数ω0の現在値にピークをもつピークフィルタを含み、そのピークフィルタを入力信号に作用させて得られる出力信号と入力信号との積に基づいて中心周波数の修正量Δω0を演算する。修正量Δω0が与えられることより中心周波数ω0は制御系の共振周波数を追跡する。代案として、中心周波数演算部17は、ピークフィルタの代わりに全域通過フィルタを用いる方法や、その他の任意の方法で入力信号から中心周波数を演算してもよい。
制御系の共振周波数の真の値を把握することは必ずしも容易ではない。その代わりに、フィルタ係数更新処理において得られる中心周波数ω0を共振周波数の推定値として使用することができる。このようにして、共振抑制装置10は、フィルタ係数調整部13を利用して動作中に共振周波数を監視することができる。つまり、共振抑制装置10は、適応ノッチフィルタのための周波数トラッキングを利用して制御系の共振周波数を監視する。よって、フィルタ係数調整部13は、制御系の共振周波数を監視するための周波数監視部であるとも言える。
フィルタ係数調整部13は、フィルタ係数更新処理を反復して実行する。多くの場合、共振周波数の変動は穏やかであり、長期的に監視したときにその変化が現れる。そのため、フィルタ係数更新処理は間欠的に反復して実行されてもよい。つまり、前回のフィルタ係数更新処理と今回のフィルタ係数更新処理との間に更新の休止期間があってもよい。更新処理を常時実行する場合に比べて演算負荷を低減することができる。しかし、中心周波数の追従性を重視する場合(制御系の共振周波数が変化しやすいと予測される場合)には、フィルタ係数更新処理は常時反復して実行されてもよい。
フィルタ係数調整部13は、中心周波数演算部17への入力信号の帯域を制限するためのプリフィルタ14を含む。プリフィルタ14は、ノッチフィルタ12の中心周波数ω0の修正に不要な周波数成分を参照信号rから除去するために設けられている。プリフィルタ14は、参照信号rを入力として、ノッチフィルタ12により除去すべき周波数成分を含む帯域を含む信号uを出力する。信号uは好ましくは、ノッチフィルタ12により除去すべき周波数成分のみを含む。すなわち、プリフィルタ14は、ノッチフィルタ12により除去すべき周波数成分を参照信号rから抽出する。
ここで、中心周波数ω0の修正に不要な周波数成分には、中心周波数ω0よりも低い周波数領域の周波数成分が含まれる。一般に、参照信号rにおいては、直流成分(言い換えれば0Hzの周波数成分)や、目標指令の主要な周波数成分等の中心周波数ω0よりも低域の周波数成分が大きな振幅を有していることが多い。一実施例に係る周波数トラッキング方法は現在の中心周波数の近傍で振幅の大きい周波数成分に中心周波数を一致させようとするものである。この場合、参照信号r中の振幅の大きい低域成分に影響されて、中心周波数ω0が制御対象の共振周波数成分よりもやや低めに修正される傾向がある。よって、プリフィルタ14は例えば、制御周波数帯域よりも高い周波数領域を通過帯域とするハイパスフィルタを含むことが好ましい。
また、プリフィルタ14は、中心周波数ω0よりも高い周波数領域に含まれる周波数成分(例えば、共振とは無関係のノイズ)を除去するように構成されていてもよい。この場合、プリフィルタ14は、中心周波数ω0とその近傍の周波数成分を含む周波数領域を通過帯域とするバンドパスフィルタを含んでもよい。
フィルタ係数調整部13は、振動評価部19を含む。振動評価部19は、参照信号rまたはその他の入力信号の振動レベルを評価する。振動評価部19への入力信号はプリフィルタ14の出力信号uであってもよい。振動評価部19は例えば、入力信号から振動レベルを演算し、得られた振動レベルが基準を超えているか否かを判定する。振動レベルが基準を超えているか否かは例えば、プリフィルタ14の出力信号uが十分な振幅を有するか否かによって判定する。プリフィルタ14の出力信号uが十分な振幅を有するか否かを評価するために、例えば、出力信号uの2乗にローパスフィルタをかけて得られる信号と参照信号rの分解能の2乗との比が基準値より大きいか否かを判定する。振動評価部19は、その他公知の適切な手法で振動レベルを評価してもよい。
共振抑制装置10が複数のノッチフィルタ12を備える場合には、フィルタ係数調整部13は、それら複数のノッチフィルタ12に共用される。フィルタ係数調整部13は、複数のノッチフィルタ12のフィルタ係数更新処理を順番に実行する。あるノッチフィルタと別のノッチフィルタとで更新処理のタイミングをずらすことにより、演算負荷の集中を緩和することができる。
好ましくは、フィルタ係数調整部13は、複数のノッチフィルタ12のフィルタ係数更新処理を個別的に順次実行する。つまり、フィルタ係数調整部13は、ノッチフィルタの更新処理を1つずつ切り換えて実行し、各ノッチフィルタを巡回する。こうして、フィルタ係数調整部13の演算負荷を時間的に一定にすることができる。また、複数のノッチフィルタ12のフィルタ係数更新処理を同時に行う場合に比べて演算量を低減することができる。
なお、2つノッチフィルタの更新処理の間に休止期間があってもよいし、それらが部分的に重複してもよい。各ノッチフィルタの更新処理は固定された順序で順番に実行されなくてもよく、順序は必要に応じて変更されてもよい。各ノッチフィルタの更新頻度は必ずしも均一でなくてもよく、特定のノッチフィルタが他のノッチフィルタよりも高頻度に更新されてもよい。
図2は、複数のノッチフィルタ12のフィルタ係数更新処理のタイミングの一例を示す図である。図2には、XYステージへの共振抑制装置10の適用例を示す。共振抑制装置10は、X方向の制御軸の共振抑制のために3段のノッチフィルタNX1、NX2、NX3を有し、Y方向の制御軸の共振抑制のために3段のノッチフィルタNY1、NY2、NY3を有し、合計6個のノッチフィルタを有する。
図示されるように、6つのノッチフィルタはNX1、NX2、NX3、NY1、NY2、NY3の順にフィルタ係数更新処理が切り換えて実行される。各ノッチフィルタの更新処理には均等に処理時間が設定されている。本例では2秒間である。図においては処理時間を矢印で示す。
あるノッチフィルタの更新処理が終了したときに、その次のノッチフィルタの更新処理が開始される。このとき、更新処理が行われるノッチフィルタに合わせてプリフィルタ14の帯域設定が切り換えられる。本例では2秒ごとにプリフィルタ14の帯域設定が切り換えられることになる。
プリフィルタ14は、複数のノッチフィルタのうちフィルタ係数更新処理が実行されるノッチフィルタに割り当てられている共振周波数成分を通過させ、当該共振周波数成分以外の共振周波数成分を排除するよう通過帯域が設定されてる。このようにすれば、あるノッチフィルタの更新処理中に、そのノッチフィルタに割り当てられた共振周波数以外の振動成分が更新処理に与える影響を軽減または防止することができる。
具体的には、プリフィルタ14は、フィルタ係数更新処理においては狭い通過帯域に設定される。フィルタ係数更新処理におけるプリフィルタ14の通過帯域は例えば、以前に設定された中心周波数ω0の近傍(例えば、中心周波数ω0の±5%の帯域)に設定される。なお、共振抑制装置10の初期設定作業においては、プリフィルタ14は、抑制すべき周波数成分を中心周波数演算部17へと伝えるために、フィルタ係数更新処理よりも十分に広い通過帯域をもつよう設定されるか、または無効とされる。
また、X方向の制御軸のための3段のノッチフィルタNX1、NX2、NX3の更新処理が終了してから、Y方向の制御軸のための3段のノッチフィルタNY1、NY2、NY3の更新処理が開始される。X方向の更新処理はX方向についての参照信号rに基づき行われ、Y方向の更新処理はY方向についての参照信号rに基づき行われる。そのために、X方向の更新処理が終了しY方向の更新処理が始まるときに、フィルタ係数調整部13への入力信号がX方向の信号からY方向の信号へと切り換えられる。同様に、Y方向の更新処理からX方向の更新処理に切り換えるときに、フィルタ係数調整部13への入力信号はY方向の信号からX方向の信号へと切り換えられる。本例では6秒ごとにフィルタ係数調整部13への入力信号が切り換えられる。図2においては入力信号の切替を太線で示す。
最後のノッチフィルタNY3の更新処理の次には、最初のノッチフィルタNX1の更新処理が再び行われる。こうして各ノッチフィルタの更新処理が(本例では12秒ごとに)繰り返される。
図3は、本発明の一実施形態に係るフィルタ係数更新処理を説明するためのフローチャートである。フィルタ係数更新処理は、共振周波数監視処理(S10)、検定処理(S12)、及び切替処理(S14)を含み、フィルタ係数調整部13が個々のノッチフィルタに対してこれらを順次実行する。
共振周波数監視処理(S10)は、ノッチフィルタ12のフィルタ係数を更新するために制御系の共振周波数を、例えば後述する周波数トラッキングを使用して推定することを含む処理である。共振周波数監視処理(S10)の詳細については図4を参照して後述する。
検定処理(S12)は、監視処理(S10)により得られた共振周波数の変動量が許容範囲にあるか否かを判定することを含む(S16)。この許容範囲は基準周波数に基づいて設定され、例えば、基準周波数を中心に含み上限及び下限が設定される。基準周波数は例えば、今回の更新処理の開始以前に既に取得されている中心周波数である。つまり、基準周波数は、ノッチフィルタ12の既存の中心周波数である。よって、基準周波数は例えば、共振抑制装置10の初期設定により取得されたノッチフィルタ中心周波数であってもよいし、更新処理開始時点における中心周波数(つまり、前回の更新処理により取得された中心周波数)であってもよい。許容範囲は例えば、プリフィルタ14の通過帯域と同様に、以前に設定された中心周波数ω0の近傍(例えば、中心周波数ω0の±5%の帯域)に設定される。
検定処理(S12)においては、設定された許容範囲に共振周波数が含まれると判定された場合には(S12のY)、フィルタ係数調整部13は、そのノッチフィルタのフィルタ係数を更新する(S18)。フィルタ係数調整部13は、監視処理(S10)により新たに取得された共振周波数にノッチフィルタの中心周波数を一致させるようにフィルタ係数を修正する。すなわち、共振周波数の変動が許容レベルにある場合には、通常どおりにフィルタ係数が更新され、共振抑制装置10の周波数特性が修正される。
一方、共振周波数が設定された許容範囲から逸脱したと判定された場合には(S12のN)、フィルタ係数調整部13は、警告を出力する(S20)。警告が出力されることによって、異常が発生したこと(または異常が発生した可能性があること)をユーザに知らせることができる。警告の出力の方法は公知の任意の手法であってよい。警告の出力とともに、または警告の出力に代えて、フィルタ係数調整部13は、機械の動作(装置の稼動)を停止させる指令を生成し出力してもよい。
監視処理(S10)及び検定処理(S12)により、ノッチフィルタのフィルタ係数の更新は完了している。次のノッチフィルタの更新処理の準備のために、フィルタ係数調整部13は、監視処理(S10)及び検定処理(S12)に続いて切替処理(S14)を実行する。切替処理(S14)は、次のノッチフィルタのためにプリフィルタ14の帯域設定を切り換えることを含む。また、必要に応じて、切替処理(S14)は、フィルタ係数調整部13への入力信号の切替を含む。
図4は、図3に示す共振周波数監視処理を説明するためのフローチャートである。この共振周波数監視処理(S10)は主として、後述する周波数トラッキング処理(S24)を含む。周波数トラッキング処理(S24)は、後述の式1に従って、中心周波数ω0の現在値ω0[n]に修正量Δω0を加算することにより更新値ω0[n+1]を得ることを含む。なお、フィルタ係数調整部13は、この周波数トラッキング処理以外の任意の方法で中心周波数を演算してもよい。
周波数トラッキング処理(S24)を実行することが妥当であるか否かを判断するために、共振周波数監視処理は、周波数トラッキング処理の開始条件が成立しているか否かを判定する(S22)。開始条件は、プリフィルタ14の出力信号uの振動レベルが基準を超えていることを含む。プリフィルタ14の出力信号uの振動レベルが基準を超えているか否かを判定するために、フィルタ係数調整部13は例えば上述のように、プリフィルタ14の出力信号uが十分な振幅を有するか否かを判定する。
振動レベルが基準に達していると判定された場合には(S22のY)、フィルタ係数調整部13は周波数トラッキング処理を実行する(S24)。一方、振動レベルが基準に満たないと判定された場合には(S22のN)、フィルタ係数調整部13は周波数トラッキング処理を実行しない。これは、ノイズや他の共振成分、指令成分などの影響によりノッチフィルタの中心周波数ω0が異常値に収束することを避けるためである。
周波数トラッキング処理(S24)の次に、または、振動レベルが基準に満たないと判定された場合に(S22のN)、フィルタ係数調整部13は、監視時間が経過しているか否かを判定する(S26)。監視時間はフィルタ係数更新処理に許容された処理時間であり、上述の図2に示す例では例えば2秒間である。
監視時間が経過していると判定された場合には(S26のY)、フィルタ係数調整部13は、共振周波数監視処理(S10)から検定処理(S12)に移行する(図3参照)。監視時間が経過していないと判定された場合には(S26のN)、フィルタ係数調整部13は、共振周波数監視処理(S10)を繰り返す。
代案として、監視時間の経過判定(S26)は、検定処理(S12)の次に行われてもよい。この場合、周波数トラッキング処理(S24)において新たな演算結果を得るたびに検定処理(S12)が実行される。監視時間が経過するまで、周波数トラッキング処理(S24)及び検定処理(S12)が反復される。
なお実際の更新処理においては多くの場合、監視時間の冒頭で(例えば0.1秒程度で)周波数トラッキング処理により中心周波数ω0が共振周波数に収束する。収束すれば周波数トラッキング処理は終了される。更新されたノッチフィルタによって振動レベルは基準未満へと抑制される。そのため、監視時間の後半には周波数トラッキング処理は稼動していないことが多い。
次に、本発明の一実施形態に係る周波数トラッキング処理を説明する。
図1に示されるように、位相差フィルタ16は、プリフィルタ14の出力信号uを入力として、位相差フィルタ出力信号pを出力する。ここで位相差フィルタ16とは、周波数成分に応じた位相シフトを与えるフィルタをいう。位相差フィルタ16の位相特性は、中心周波数ω0を含む局所周波数領域の下限周波数から上限周波数へと入力信号uの周波数が増加するにつれて、出力信号pの位相シフトを第1位相シフトから第2位相シフトへと単調に変化させる。下限周波数よりも低周波数領域においては位相シフトは第1位相シフトに実質的に等しく、上限周波数よりも高周波数領域においては位相シフトは第2位相シフトに実質的に等しい。
中心周波数ω0の修正を、以下に詳しく述べる中心周波数修正量Δω0を用いて行う場合には、位相差フィルタ16の位相特性は、局所周波数領域の下限周波数よりも低周波数領域においては実質的に0度の位相遅れを与え(つまり実質的に位相を遅らせず)、上限周波数よりも高周波数領域においては実質的に180度の位相遅れを与えることが好ましい。位相差フィルタ16の位相特性は、局所周波数領域の下限周波数から上限周波数へと入力信号uの周波数が増加するにつれて、出力信号pの位相遅れが0度から180度へと大きくなっていく。入力信号uの周波数成分が中心周波数ω0に等しいときに、出力信号pの位相遅れは90度に等しくなるよう設定されている。
好ましい一実施例においては、位相差フィルタ16は、上記の位相特性とともに、局所周波数領域を帯域幅とするゲインピークを中心周波数ω0に有する周波数振幅特性を有するピークフィルタであってもよい。この帯域幅(すなわちピーク幅)は、ピークからゲインが所定量(例えば1/√2)減衰する周波数の範囲をいう。ピークフィルタの周波数振幅特性及び周波数位相特性の一例を図6に示す。図6の周波数位相特性に示されるように、位相差フィルタ16は、中心周波数ω0において基準位相遅れ(例えば90度)をとり、中心周波数ω0の近傍で基準位相遅れよりも十分小さい位相遅れ(例えば0度)から十分大きい位相遅れ(例えば180度)へと変化する位相特性を有する。
なお、他の一実施例においては、位相差フィルタ16は上記の位相特性を有する全域通過フィルタであってもよい。全域通過フィルタは全周波数領域においてゲインの値が1である周波数振幅特性を有する。また、位相差フィルタ16は、入力信号uの周波数ωと中心周波数ω0との差に比例して位相遅れを生じさせる位相シフタまたはFIRフィルタであってもよい。
修正演算部18は、位相差フィルタ入力信号u及び位相差フィルタ出力信号pに基づいてノッチフィルタ12及び位相差フィルタ16のフィルタ係数を修正する。すなわち、修正演算部18は、ノッチフィルタ12及び位相差フィルタ16の時点nにおけるフィルタ係数を、入力信号u及び出力信号pに基づいて、時点n+1におけるフィルタ係数に更新する。修正演算部18は例えば、次式により中心周波数ω0を時点nの値ω0[n]を時点n+1の値ω0[n+1]に更新する。すなわち、修正演算部18は、中心周波数ω0の現在値ω0[n]に修正量Δω0を加算することにより更新値ω0[n+1]を得る。
式1の右辺第2項が中心周波数ω0の修正量Δω0である。ここで、u[n]及びp[n]はそれぞれ時点nにおける位相差フィルタの入力信号u及び出力信号pを示す。Φp[n]は時点nにおける補正係数である。この補正係数については後述するが、入力信号uの振幅αの影響を緩和するための補正係数である。補正係数Φp[n]は例えば、位相差フィルタ出力信号p[n]の二乗を平滑化したものである。出力信号p[n]は振動成分を含む信号であるから、0または0に近い値をとることがある。よって、補正係数Φp[n]が0または0に近い値となり、中心周波数修正量Δω0が過大となることを避けるためには、平滑化処理をすることが好ましい。平滑化処理は例えばローパスフィルタによるものであってもよい。μは、修正量Δωを調整するための修正ゲインである。
なお、補正係数は、位相差フィルタ入力信号uの二乗を平滑化したものであってもよい。あるいは、補正係数は、入力信号uと出力信号pとの積puの二乗の平方根であってもよい。この場合、積puの二乗の平方根は平滑化処理がされてもよいし、されなくてもよい。平滑化処理をする場合には、積puの二乗の平方根を平滑化してもよいし、積puの二乗を平滑化して平方根をとってもよいし、出力信号pの二乗及び入力信号uの二乗のそれぞれを平滑化したものの積の平方根をとってもよいし、出力信号pの絶対値及び入力信号uの絶対値のそれぞれを平滑化したものの積であってもよい。
修正演算部18は、位相差フィルタ16のフィルタ係数の更新頻度をノッチフィルタ12のフィルタ係数の更新頻度よりも多くしてもよい。例えば、修正演算部18は、位相差フィルタ16のフィルタ係数を毎回の制御周期で逐次更新し、ノッチフィルタ12のフィルタ係数は低頻度に(例えば数回おきの制御周期で)更新してもよい。あるいは、修正演算部18は、制御対象の固有振動数に中心周波数ω0が一致したことが確認されてからノッチフィルタ12のフィルタ係数を修正するようにしてもよい。この場合、ノッチフィルタ12は、制御対象からの制御出力を観測することにより、制御対象の固有振動数に中心周波数ω0が一致したか否かを判定してもよい。
ノッチフィルタ12と位相差フィルタ16の具体例を述べる。位相差フィルタ16の具体例としてピークフィルタを挙げる。図5は、ノッチフィルタの周波数特性の例を示す図である。図6は、ピークフィルタの周波数特性の例を示す図である。ノッチフィルタ12及びピークフィルタがデジタルフィルタである場合には、ノッチフィルタ12の伝達関数GN及びピークフィルタの伝達関数GPはそれぞれ式2及び式3で表される。
ノッチフィルタ12のフィルタ係数は式4で表され、ピークフィルタのフィルタ係数は式5で表される。ここで、ω0はノッチフィルタ12の中心周波数である。ζ1、ζ2はそれぞれ中心周波数ω0におけるゲインピークとノッチ幅とを決めるためのパラメタである。Tsはサンプリング時間である。ζ3は、ピークフィルタのピーク幅を決めるためのパラメタである。
この具体例の場合、修正演算部18はまず、式1により中心周波数の更新値ω0[n+1]を求め、この更新値を用いて式4及び式5の各フィルタ係数を更新する。なお、式5に表されている係数lpについては初期値のまま固定して更新しないようにしてもよいし、中心周波数の更新頻度よりも低い更新頻度で更新するようにしてもよい。係数lpを更新しない場合には、中心周波数ω0の変化によりピークフィルタのピーク幅が変化することになる。係数lpの更新頻度を少なくする(あるいは行わない)ことにより、修正演算部18における計算量を小さくすることができる。
また、ノッチフィルタ12とピークフィルタの他の例を述べる。ノッチフィルタ12及びピークフィルタがデジタルフィルタであり、かつ中心周波数ω0におけるゲインが−∞dBである場合には、ノッチフィルタ12の伝達関数GN及びピークフィルタの伝達関数GPはそれぞれ式6及び式7で表される。なお式7は式3と同一である。各フィルタ係数は、式8で表される。
この例においても、修正演算部18はまず、式1により中心周波数の更新値ω0[n+1]を求め、この更新値を用いて式8の各フィルタ係数を更新する。なお、式8に表されている係数lN、lpについては初期値のまま固定して更新しないようにしてもよいし、中心周波数の更新頻度よりも低い更新頻度で更新するようにしてもよい。係数lN、lpを更新しない場合には、中心周波数ω0の変化によりノッチフィルタのノッチ幅及びピークフィルタのピーク幅が変化することになる。係数lN、lpの更新頻度を少なくする(あるいは行わない)ことにより、修正演算部18における計算量を相当小さくすることができる。
なお、係数lN、lpを中心周波数ω0と同様の頻度で逐次更新する場合においては、中心周波数ω0(または係数k)に対応する係数lN、lpのテーブルを予め計算して準備しておくことにより、修正演算部18における計算量を低減することができる。修正演算部18は、記憶部(図示せず)に記憶されているテーブルを参照することにより、中心周波数(または係数k)の更新値に対応する係数lN、lpを求めることができる。
図7は、中心周波数ω0と係数kとの関係を示す図である。ここで、サンプリング時間Tsは4msとしている。図示されるように、中心周波数ω0が増加するにつれて、係数kは単調に減少する。そこで、式1により中心周波数ω0を更新する代わりに、修正演算部18は、次式により係数kを直接更新するようにしてもよい。式9は式1と同様であるが、修正ゲインについては係数kを調整するための修正ゲインμkに置き換えられている。
よって、修正演算部18は、位相差フィルタ入力信号u及び位相差フィルタ出力信号pに基づいて係数kを直接修正する。すなわち、修正演算部18は、時点nにおける係数k[n]を、入力信号u及び出力信号pに基づいて、時点n+1における係数k[n+1]に更新する。
続いて、本発明の一実施形態における中心周波数ω0の修正の原理について説明する。簡単のため、位相差フィルタ16への入力信号uを振幅αで周波数ωの単一周波数成分の正弦波であると仮定する。このとき位相差フィルタ16の入力信号u及び出力信号pは、式10で表される。ここで、位相差フィルタ16の振幅ゲイン及び位相シフトをそれぞれ|GP(jω)|及びφp(ω)と表記している。
一実施例においては中心周波数修正量Δω0は位相差フィルタ16の入力信号uと出力信号pとの積puに依存するよう定められている。積puの平均値E[pu]は式11で表される。
上述のように、位相差フィルタ16の位相特性は、中心周波数ω0を含む局所周波数領域の下限周波数から上限周波数へと入力信号uの周波数が増加するにつれて、出力信号pの位相シフトを第1位相シフトから第2位相シフトへと単調に変化させる。中心周波数ω0においては、第1位相シフトと第2位相シフトとの間の基準位相シフトをとる。図6に示される例においては、位相差フィルタ16は、中心周波数ω0において基準位相遅れ(例えば90度)を与え、中心周波数ω0の近傍の低周波数領域では基準位相遅れよりも小さい位相遅れを与え、中心周波数ω0の近傍の高周波数領域では基準位相遅れよりも大きい位相遅れを与える位相特性を有する。
よって、中心周波数ω0において符号決定係数cos(φp(ω))はゼロとなり、入力信号uの周波数ωが中心周波数ω0よりも小さい場合に符号決定係数は正の値となり、入力信号uの周波数ωが中心周波数ω0よりも大きい場合に符号決定係数は負の値となる。これをまとめると、式12で表される。
したがって、積puの平均値E[pu]は、cos(φp(ω))を符号決定係数として有すると言える。符号決定係数cos(φp(ω))は、位相差フィルタ16の出力信号pの位相シフトφp(ω)に応じて中心周波数修正量Δω0の平均値の符号を決定する。式11からわかるように、平均値E[pu]の符号決定係数cos(φp(ω))以外の部分は明らかに正の値であり、周波数成分によらず符号が一定となる符号一定部分である。平均値E[pu]は、符号一定部分と符号決定係数との積で表されている。
すなわち、積puの平均値E[pu]の符号は、位相差フィルタ16への入力信号uの周波数ωと中心周波数ω0との大小関係で決まる。入力信号uの周波数ωが中心周波数ω0よりも小さければ積puは正の値となり、入力信号uの周波数ωが中心周波数ω0よりも大きければ積puは負の値となる。したがって、式13に表されるように、積puを中心周波数修正量とする漸化式を用いて中心周波数ω0を更新することにより、ノッチフィルタ12の中心周波数ω0を入力周波数ωへと一致させることが可能となる。
入力周波数ωが制御対象の固有振動数成分である場合には、ノッチフィルタ12の中心周波数ω0を固有振動数成分に一致させることができる。このようにして、ノッチフィルタ12の中心周波数ω0を制御対象の固有振動数成分へと自動的に調整することができる。
さらに好ましくは、中心周波数修正量Δω0に補正係数を導入することにより、入力信号uの振幅αの影響を緩和または排除することが可能である。式12からわかるように、積puは入力信号uの振幅αに依存する。式14は、中心周波数修正量Δω0に補正係数Φ[n]を導入した場合における中心周波数ω0を更新する漸化式である。
ここで、補正係数Φ[n]をμ/Φp[n]と書きかえれば、式14は式1に一致する。一例として上述のように、Φp[n]を位相差フィルタ出力信号p[n]の二乗を平滑化したものである場合を説明する。平滑化は例えば、カットオフ周波数ωcpを有するローパスフィルタで出力信号p[n]の二乗を処理することで行う。そうすると、Φp[n]の平均値は式15により与えられる。
よって、補正係数により補正された中心周波数修正量の修正演算1回あたりの平均値E[Δω0]は式16で与えられる。式16からわかるように、平均値E[Δω0]は入力信号uの振幅αに依存しない形式で表される。よって、中心周波数修正量Δω0に補正係数を導入することにより、入力信号uの振幅αの影響を排除することができる。
図8は、本発明の一実施形態に係る中心周波数ω0の修正の原理を周波数特性として示す図である。図8は、式16に示される平均値E[Δω0]について、ゲインを1/|GP(jω)|とし、位相をφp(ω)として作成したボード線図である。なお、図8に示されるボード線図は、一例として位相差フィルタ16を図6に示すピークフィルタとしたときのものである。係数μは簡単のため、μ=1としている。図8に示されるように振幅特性については、ピークフィルタのゲインピークに対応するノッチが現れている。位相特性についても、ピークフィルタの位相特性に対応する位相特性が示されている。
図9は、位相差フィルタ16にピークフィルタを用いたときの中心周波数修正量の平均値E[Δω0]を示す図である。図9に示される平均値E[Δω0]は、式16に示される補正済修正量である。図9に示されるように、修正量平均値E[Δω0]は、中心周波数ω0の近傍だけではなく、ゼロ近傍からナイキスト周波数ωnyq(サンプリング周波数の1/2)の近傍にわたる広範な周波数領域において、中心周波数ω0と入力周波数ωとの偏差に対し直線的に変化していることがわかる。つまり、ナイキスト周波数ωnyq以下の帯域において、中心周波数修正量の平均値E[Δω0]は、中心周波数ω0と入力周波数ωとの偏差に実質的に比例している。
このため、中心周波数ω0と入力周波数ωとの偏差に応じた修正量Δω0を得ることができる。つまり、抑制すべき周波数ωから中心周波数ω0が離れているほど更新時の修正量Δω0が大きくなる。よって、少ない更新処理の反復回数で中心周波数ω0を入力信号uの周波数ωへと近づけることができる。また、抑制すべき周波数ωに中心周波数ω0が近づくほど修正量Δω0が小さくなる。よって、入力信号uの周波数ωの近傍で中心周波数ω0を更新するたびに中心周波数ω0が振動的に変化することを防ぐことができる。中心周波数ω0を入力信号uの周波数ωへとすみやかに一致させることができる。
フィルタ係数調整部13は、修正量Δω0がある閾値よりも小さくなったときに本周波数トラッキング処理を終了する。この閾値は中心周波数ω0と共振周波数との偏差が十分に小さいことを保証するために設定される値であり、経験的にまたは実験的に適宜設定することができる。
図10は、本発明の一実施形態に係る共振抑制装置10を含むシステム構成の例を示すブロック図である。電動機20は負荷22を駆動する。電動機20は例えば、産業用ロボットや射出成型器、建設機械、精密位置決めステージ、精密工作機械、ガルバノスキャナ等の共振により制御特性に制限が生じ得る装置に組み込まれている電動機である。検出器24は電動機20の出力を測定する。検出器24は例えば、電動機20の検出速度ω*を測定する速度検出器である。
本システムの速度指令生成部(図示せず)が速度指令ωdirを決定する。速度制御部26は、電動機20への速度指令ωdirに対する検出速度ω*の誤差に基づき電動機20へのトルク指令信号を生成する。速度制御部26は、速度指令ωdirと電動機20の検出速度ω*との差を0にして検出速度ω*が速度指令値ωdirに追従するようにトルク指令τ1を出力する。速度制御部26は例えば、速度指令ωdirと電動機20の検出速度ω*との差分ωdir−ω*の比例積分した結果をトルク指令τ1として出力する。
ノッチフィルタ12は、トルク指令τ1から中心周波数ω0の周波数成分を除去して新たなトルク指令τ2を出力する。中心周波数ω0は電動機20と負荷22とを含むシステムの固有振動数ωnの周波数成分に一致しているので、ノッチフィルタ12は、その固有振動数成分を除去した新しいトルク指令τ2をトルク制御部28に出力する。トルク制御部28は、ノッチフィルタ12の出力信号に基づき電動機20を制御する。トルク制御部28は、トルク指令τ2に一致するトルクτ*を電動機20が出力するように電動機20への供給電流を制御する。このようにして、電動機20の速度制御が行われる。
フィルタ係数調整部13は、図1を参照して説明したように、プリフィルタ14と、位相差フィルタ16と、修正演算部18と、を含む。フィルタ係数調整部13は、検出速度ω*を参照信号rとして使用している。フィルタ係数調整部13は、ノッチフィルタ12の中心周波数ω0が速度ω*に含まれる振動周波数に一致するよう、ノッチフィルタ12及び位相差フィルタ16の係数を修正する。
電動機20の出力するトルクτ*にシステムの固有振動数ωnが含まれていると、電動機の駆動によってシステムの固有振動が励起されて共振が発生する。速度制御部26とトルク制御部28との間にノッチフィルタ12を挿入し、速度制御部26の出力τ1から固有振動数ωnの成分を除去してトルク制御部28への入力トルク指令τ2を生成することにより、共振を抑制することができる。仮に、ノッチフィルタ12の中心周波数ω0がシステムの固有振動数ωnから乖離している場合には、共振が発生して検出信号ω*にシステムの固有振動数ωnの成分が含まれる。この場合、フィルタ係数調整部13は検出信号ω*を参照信号rとして用いているから、中心周波数ω0をωnに一致させるように自動的に調整することができる。
なおこの実施例では速度制御部26とトルク制御部28との間にノッチフィルタ12を設け、速度制御部26からのトルク指令をノッチフィルタ12への入力として説明している。しかし、他の実施例においては速度指令、検出速度、または誤差信号をノッチフィルタへの入力として使用してもよい。すなわち、ノッチフィルタは、速度制御部への入力信号、当該入力信号を生成するための信号、及び速度制御部からのトルク指令信号のいずれを入力としてもよい。例えば、図10に示される構成においてノッチフィルタ12は、検出器24の後段、すなわち検出器24と速度制御部26との間に設けられてもよい。あるいはノッチフィルタ12は、速度指令生成部の後段、すなわち速度制御部26の前段に設けられてもよい。このようにしても同様に振動を抑制することが可能である。
本実施の形態に係る共振抑制装置10は、共振周波数の変動が許容レベルにあるか否かを判定し、変動が許容レベルを逸脱したと判定される場合に警告を出力する。これにより、共振抑制装置10の適用対象に異常(またはその疑い)が生じたことをユーザに知らせることができる。ユーザに機械の保守点検を早期に実施することを検討する機会を提供することができる。機械的な損傷やねじの緩みなどの異常の早期発見・対処が可能となる。
その一方、共振抑制装置10は、共振周波数の変動が許容レベルにあると判定される場合には、周波数トラッキング処理による最新の演算結果に従ってノッチフィルタが補正される。よって、適応ノッチフィルタの本来の有用性である機械特性の経時的変化の補償も提供される。このようにして、経時的な制御性能の維持と、異常の疑いをユーザに報知することとの両立を実現することができる。
また、共振抑制装置10が適応ノッチフィルタであることにより、制御系の共振周波数を自動的に取得することができる。取得された共振周波数に連動して共振周波数変動の許容レベルが設定される。そのため、許容レベル設定のために新たな作業負担をほとんど要しないという利点もある。許容レベル設定のために新たな専用センサを設けることも不要である。
共振抑制装置10は、複数のノッチフィルタ12の更新処理を1つずつ切り換えて実行する。こうした個別的な実行により演算負荷の集中を避け、演算量を低減することができる。
以上、本発明を実施例にもとづいて説明した。本発明は上記実施形態に限定されず、種々の設計変更が可能であり、様々な変形例が可能であること、またそうした変形例も本発明の範囲にあることは、当業者に理解されるところである。