図1は、本発明の一実施形態に係る適応ノッチフィルタ10の構成を示すブロック図である。適応ノッチフィルタ10は例えば、任意の制御系における共振を抑制するためにその制御系に組み込まれて使用される。適応ノッチフィルタ10は、ノッチフィルタ12とフィルタ係数調整部13とを含んで構成されている。
ノッチフィルタ12は、例えば図2に示される周波数特性を有する公知のフィルタである。ノッチフィルタ12は、中心周波数ω0において振幅ゲインに最小値を有しており、中心周波数ω0の周波数成分を入力信号τ1から除去して出力信号τ2を出力する。ノッチフィルタ12は、複数の周波数成分を除去するよう構成されていてもよく、例えば直列に接続された複数のノッチフィルタを含んでもよい。
ノッチ幅を表すパラメタとして例えば、公知の無次元数であるQ値(Q=ω0/(ω2−ω1))を用いることができる。ω2−ω1は半値幅といい、ω1はω0よりも低い周波数でゲインが−3dBとなる周波数であり、ω2はω0よりも高い周波数でゲインが−3dBとなる周波数である。Q値が大きいほどノッチ幅は狭くなる。ノッチ幅を表す他のパラメタとして例えば、ゲインがadB(aは負の値)より小さくなる帯域幅ω2a−ω1aや(図2参照)、それを無次元化したω0/(ω2a−ω1a)を用いてもよい。
本実施例ではQ値の初期値は、後述する振動レベルがしきい値を超えないことが保証されている値に設定されており、ノッチフィルタは比較的幅狭である。制御系の安定性を保つことに配慮して、初期値においてはノッチフィルタが制御系の周波数特性に与える影響を中心周波数ω0の周囲の限られた帯域に留めるようにしている。つまり位相の不安定化を防ぐようにしている。その一方で、抑制されるべき共振周波数の近傍で十分なゲインをとるためにノッチフィルタを過度に幅狭としないよう考慮することが好ましい。つまりゲインの不安定化も防ぐようにすることが好ましい。この初期値は実験的または経験的に適宜設定することができる。
ノッチフィルタ12への入力信号τ1は例えば、ノッチフィルタ12が適用される制御対象への制御指令である。入力信号τ1は、当該制御対象からの出力の検出値と所望の目標指令値との誤差に基づき生成されていてもよい。入力信号τ1は目標指令であってもよい。入力信号τ1は、当該制御対象からの観測量(例えば、位置、速度、加速度など)であってもよい。ノッチフィルタ12の出力信号τ2は、当該制御対象への制御入力として使用されてもよい。ノッチフィルタ12のフィルタ係数は、当該制御対象の固有振動数成分を入力信号τ1から除去するよう調整されている。そのために、ノッチフィルタ12の中心周波数ω0は当該制御対象のいずれかの固有振動数成分に一致するよう調整される。
フィルタ係数調整部13は、ノッチフィルタ12のフィルタ係数を参照信号rに基づいて修正する。参照信号rは、ノッチフィルタ12が適用される制御対象への制御指令であってもよいし、当該制御対象からの観測量であってもよい。フィルタ係数調整部13は、制御対象の振動により生じた騒音から生成した参照信号rを用いてもよい。そのために、制御対象が発する音を分析して参照信号rを生成する参照信号生成部を設けてもよい。制御対象が発する音を集音して参照信号生成部に供給するためのマイク等の集音器を設けてもよい。このように、フィルタ係数調整部13は、制御対象の振動成分を抽出することのできるいかなる信号を参照信号rとして用いてもよい。
フィルタ係数調整部13は、ノッチフィルタ12の中心周波数ω0を調整するための中心周波数演算部17を含んで構成されている。一実施例においては、中心周波数演算部17は、中心周波数ω0の現在値にピークをもつピークフィルタを含み、そのピークフィルタを入力信号に作用させて得られる出力信号と入力信号との積に基づいて中心周波数の修正量Δω0を演算する。あるいは、中心周波数演算部17は、ピークフィルタの代わりに全域通過フィルタを用いる方法や、その他の任意の方法で入力信号から中心周波数を演算してもよい。なお、中心周波数演算部17は、中心周波数ω0だけではなく、中心周波数ω0以外のノッチフィルタ12の係数(例えばノッチ幅やノッチ深さ)を併せて調整してもよい。
図3は、本発明の一実施形態に係る中心周波数演算部17の構成を示すブロック図である。中心周波数演算部17は、入力信号の帯域を制限するための振動成分抽出部14を含んで構成されている。振動成分抽出部14は、ノッチ中心周波数ω0の修正に不要な周波数成分を参照信号rから除去するために設けられている。振動成分抽出部14は、参照信号rを入力として、ノッチフィルタ12により除去すべき周波数成分を含む帯域を含む信号uを出力する。信号uは好ましくは、ノッチフィルタ12により除去すべき周波数成分のみを含む。すなわち、振動成分抽出部14は、ノッチフィルタ12により除去すべき周波数成分を参照信号rから抽出する。
ここで、ノッチ中心周波数ω0の修正に不要な周波数成分には、制御周波数帯域よりも低い周波数領域の周波数成分が含まれる。一般に、参照信号rにおいては、直流成分(言い換えれば0Hzの周波数成分)や、目標指令の主要な周波数成分等、低域の周波数成分が大きな振幅を有していることが多い。一実施例に係る中心周波数修正方法は現在の中心周波数の近傍で信号u中の振幅の大きい周波数成分に中心周波数を一致させようとするものである。この場合、参照信号r中の振幅の大きい低域成分に影響されて、中心周波数ω0が制御対象の固有振動数成分よりもやや低めに修正される傾向がある。よって、振動成分抽出部14は例えば、制御周波数帯域よりも高い周波数領域を通過帯域とするハイパスフィルタを含むことが好ましい。
また、振動成分抽出部14は、ナイキスト周波数近くの高い周波数領域に含まれる周波数成分(例えば、共振とは無関係のノイズ)を除去するように構成されていてもよい。この場合、振動成分抽出部14は、中心周波数ω0とその近傍の周波数成分を含む周波数領域を通過帯域とするバンドパスフィルタを含んでもよい。
なお、振動成分抽出部14は、制御対象の入出力特性を表すモデルと目標入力とに基づいて生成される参照信号rに相当する信号と実際の参照信号rとの差を出力する差分演算部であってもよい。この場合、制御対象の入出力特性を表すモデルは、低次の固有振動成分(例えば1次の固有振動数成分のみ)を記述するモデルであってもよい。そうすると、振動成分抽出部14の出力信号は、入力された実際の参照信号rから目標入力及び低次固有振動数成分が除去され、高次の固有振動数成分のみを含むようにすることができる。本発明者の得た知見によれば、中心周波数ω0を高次の固有振動数(例えば2次の固有振動数)に一致させたほうが好ましい制御特性を得られることが多い。上述のようにモデルに基づき生成される信号と実際の参照信号rとの差をとることにより、高次の固有振動数成分以外の周波数成分が抑制された信号を簡単に得ることができる。
振動成分抽出部14は、上述のハイパスフィルタ、バンドパスフィルタ、及び、差分演算部の少なくとも1つを備えるよう構成されていてもよい。逆に、振動成分抽出部14を設けずに、修正演算部18は、参照信号rと参照信号rの位相差フィルタ出力とに基づいてフィルタ係数を修正するようにしてもよい。例えば、中心周波数ω0の修正に不要な周波数成分の振幅が小さく修正結果の誤差が小さいと見込まれる場合や、中心周波数ω0の修正に不要な周波数成分の振幅が抑制された参照信号rを得られる場合には、振動成分抽出部14を省略してもよい。
図3に示されるように、中心周波数演算部17は、位相差フィルタ16及び修正演算部18をさらに含む。位相差フィルタ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に有する周波数振幅特性を有するピークフィルタであってもよい。ピークフィルタの周波数振幅特性及び周波数位相特性の一例を図4に示す。図4の周波数位相特性に示されるように、位相差フィルタ16は、中心周波数ω0において基準位相遅れ(例えば90度)をとり、中心周波数ω0の近傍で基準位相遅れよりも十分小さい位相遅れ(例えば0度)から十分大きい位相遅れ(例えば180度)へと変化する位相特性を有する。ピークフィルタがデジタルフィルタである場合には、ピークフィルタの伝達関数GPは次式で表される。ここで、kは中心周波数ω0を決めるパラメータ、lpはピークの減衰を決めるパラメータである。
修正演算部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]を得る。
上式の右辺第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の二乗の平方根であってもよい。μは、修正量Δωを調整するための修正ゲインである。
図5は、位相差フィルタ16にピークフィルタを用いたときの中心周波数修正量の平均値E[Δω0]を示す図である。図5に示されるように、修正量平均値E[Δω0]は、中心周波数ω0の近傍だけではなく、ゼロ近傍からナイキスト周波数ωnyq(サンプリング周波数の1/2)の近傍にわたる広範な周波数領域において、中心周波数ω0と入力周波数ωとの偏差に対し直線的に変化していることがわかる。つまり、ナイキスト周波数ωnyq以下の帯域において、中心周波数修正量の平均値E[Δω0]は、中心周波数ω0と入力周波数ωとの偏差に実質的に比例している。
このため、中心周波数ω0と入力周波数ωとの偏差に応じた修正量Δω0を得ることができる。つまり、適応ノッチフィルタ10により抑制すべき周波数ωからノッチ中心周波数ω0が離れているほど更新時の修正量Δω0が大きくなる。よって、少ない更新処理の反復回数で中心周波数ω0を入力信号uの周波数ωへと近づけることができる。また、抑制すべき周波数ωに中心周波数ω0が近づくほど修正量Δω0が小さくなる。よって、入力信号uの周波数ωの近傍で中心周波数ω0を更新するたびに中心周波数ω0が振動的に変化することを防ぐことができる。中心周波数ω0を入力信号uの周波数ωへとすみやかに一致させることができる。上述の更新処理法においては例えばΔω0が十分小さい基準値以下となったときに中心周波数の調整が完了したものとみなされる。
図1に示されるように、フィルタ係数調整部13は、ノッチ幅調整部15をさらに含む。ノッチ幅調整部15は、ノッチフィルタ12の幅を表すノッチ幅パラメタを調整するためのパラメタ調整部として機能する。本実施例においては、ノッチ幅調整部15は、ノッチ幅パラメタの一例としてのQ値を後述の調整処理により適切な値に設定する。この方法は制御対象の周波数特性を事前に計測する必要がない。そのため、計算機への実装に際して、例えばメモリ使用量を節約することができるので、より好適である。
一実施例においては、ノッチ幅調整部15は、ノッチ幅パラメタの候補値よりも広い幅を表す値を試行し、その試行期間に検出された振動に基づいてその候補値を採用するか否かを決定する。すなわち、候補値自体を試行したときの振動に基づきその採否を決定する代わりに、候補値よりも広幅の値を試すことでその候補値の採否を決定する。採用しようとするノッチフィルタよりも幅広のものを試し、そのときの振動レベルが十分に小さいことを確認する。幅広のノッチフィルタで振動レベルが十分に小さいことが既に確認されているから、採用した幅狭のノッチフィルタについても十分な位相余裕が確保されていることになる。
一実施例においては、ノッチ幅調整部15は、検出された振動が基準を超えた場合に試行を中断してもよい。この場合、ノッチ幅調整部15は、振動が基準を超えたときのノッチ幅パラメタよりも狭い幅を表す値にパラメタを設定してもよい。好ましくは、ノッチ幅調整部15は、試行前の値にノッチ幅パラメタを戻してもよい。振動が基準を超えたときに選択されるノッチ幅パラメタは、候補値よりも狭い幅を表す値であるであることが好ましい。
ところで、一般的な適応演算は演算の反復により徐々にノッチ幅を変更する。適応演算中に仮に振動が生じたとしてもそれは同様であるから、必ずしもすみやかに振動を抑えることはできない。これに対して本発明の一実施例によれば、検出された振動が基準を超えた場合に試行を中断するとともにノッチ幅を狭くすることにより、その試行によって生じた振動をすみやかに抑制することができる。
ノッチ幅調整部15は、候補値よりも広い幅を表す値を含む範囲である試行範囲をスイープすることが好ましい。1つの試行値のみを試す場合にはその試行値のごく近傍で限定的に安定的である可能性を排除できない。よって、試行範囲をスイープすることにより、1つの試行値のみを試す場合に比べて位相余裕の確保がより確実になると考えられる。なお、処理の単純化を重視する場合には、試行範囲のスイープに代えて、ある試行値に試行期間保つようにしてもよい。
ノッチ幅調整部15は、広い幅を表す値から狭い幅を表す値へと試行範囲をスイープすることが好ましい。広い幅を表す値のほうが試行中に振動レベルを増大させる可能性が高い。広い幅を表す値を優先して試すことにより、試行期間をより短くすることができる。一実施例においては、試行範囲の上限及び下限はいずれも候補値よりも広い幅を表す値であることが好ましい。すなわち、試行範囲の全体が候補値よりも幅広の値であることが好ましい。候補値よりも幅広の値に試行を限定することで、試行範囲に候補値を含める場合に比べて試行期間を短くすることができる。
ノッチ幅調整部15は、ノッチ幅パラメタを第1候補値とそれよりも広い幅を表す第2候補値とを含む複数の値からいずれかを選択することによりノッチフィルタ12の幅を調整してもよい。この場合、ノッチ幅調整部15は、ノッチ幅パラメタを第1候補値に設定し、第1候補値及び第2候補値の双方よりも更に広い幅を表す値にノッチ幅パラメタを試行的に変更してもよい。ノッチ幅調整部15は、試行期間に検出された振動に基づいて第1候補値から第2候補値に変更するか否かを決定してもよい。
このようにすれば、予め設定された広幅の試行値を試したうえで、予め定められた2つの候補値からノッチ幅パラメタを選択するという簡易な方法でノッチ幅を調整することができる。よって、計算機への実装が容易となるという点で好ましい。
ノッチ幅調整部15は、第2候補値よりも広い幅を表す値を含む範囲である試行範囲を試行期間にスイープするようにしてもよい。試行範囲の上限及び下限はいずれも第2候補値よりも広い幅を表す値であってもよい。ノッチ幅調整部15は、広い幅を表す値から狭い幅を表す値へと試行範囲をスイープするようにしてもよい。
ノッチ幅調整部15は、検出された振動レベルが基準を超えた場合には試行を中断してパラメタを第1候補値に戻す一方、検出された振動レベルが試行期間の完了まで基準内に収まっている場合にはノッチ幅パラメタを第1候補値から第2候補値に変更するようにしてもよい。
第1候補値はノッチ幅パラメタの初期値であってもよい。第1候補値の一例は後述の初期値QMであり、第2候補値の一例は候補値QMLである。また、ノッチ幅調整部15は、調整処理を複数回繰り返してもよく、この場合、前回の調整処理で設定された第2候補値が今回の調整処理の第1候補値として使用されてもよい。こうして調整処理を繰り返すことにより、制御系の位相安定性を確かめながら段階的にノッチフィルタを幅広に変更していくことができる。
調整処理を複数回繰り返す代わりに、他の手法も可能である。例えば、ノッチ幅調整部15は、区分されたスイープ範囲にマイルストーン(区切り点)を設置し、スイープ中に区切り点を通過するまで振動が検出されなかった場合は、その区切り点に対応するQ値を採用してもよい。
この場合、ノッチ幅調整部15は、前述の試行範囲を複数の区分に分割してスイープを行ってもよい。このとき、ある区分と別の区分との区切り点ごとに対応するノッチ幅パラメタの候補値を設定しておく。スイープの途中で振動レベルが基準を超えた場合はスイープを中断し、最後に通過した区切り点に対応する候補値にノッチ幅パラメタを変更する。
いくつかに区分された試行範囲をスイープしてノッチ幅パラメタの調整を行う実施例においても、前述の実施例のように第1候補値および第2候補値を設定しておくことが好ましい。この場合、区切り点を1つも通過することなく振動レベルが基準を超えた場合は第1候補値が、試行期間の完了まで振動レベルが基準を超えなかった場合は第2候補値が、それぞれノッチ幅パラメタとして選択される。
フィルタ係数調整部13は、振動評価部19をさらに含む。振動評価部19は、参照信号rまたはその他の入力信号の振動レベルを評価する。振動評価部19への入力信号は振動成分抽出部14の出力信号であってもよい。振動評価部19は例えば、入力信号から振動レベルを演算し、得られた振動レベルが基準を超えているか否かを判定する。
一実施例においては、振動評価部19は、指令応答の残留振動を利用して振動レベルを評価してもよい。例えば、指令加速度がゼロとなってから所定時間を評価区間とし、その評価区間における評価対象信号の絶対値の積分値を振動レベルと定義してもよい。あるいは、振動評価部19は、入力信号の2乗または絶対値にローパスフィルタLPFをかけて得られる信号に基づいて振動レベルを評価してもよい。このローパスフィルタLPFは制御帯域を通過帯域とすることが好ましい。振動評価部19は、その他公知の適切な手法で振動レベルを評価してもよい。例えば、振動評価部19は、特定の周波数成分の振幅が所定値を超えたか否かによって振動レベルを判定してもよい。
図6は、本発明の一実施形態に係るノッチ幅調整処理を説明するためのフローチャートである。このノッチ幅調整処理は例えば、ノッチフィルタ12が組み込まれている制御装置(例えば図8に示す装置)の起動時の初期設定処理の一部として実行される。この場合、ノッチフィルタ12の中心周波数ω0の調整処理に引き続いて実行されてもよい。あるいは、ノッチ幅調整処理は、制御装置の使用中に適時に実行されてもよい。
ノッチ幅調整部15は、ノッチ幅パラメタの一例としてのQ値をスイープ初期値Qvsからスイープ最終値Qveまでスイープ時間TQをかけてスイープする。つまり、ノッチ幅調整部15は、スイープ時間TQの開始時点ではQ値をスイープ初期値Qvsとし、スイープ時間TQの完了時点でQ値をスイープ最終値Qveに到達させるように、微小時間(例えばノッチ幅調整部15の制御周期)ごとにQ値を微少量ずつ変化させていく。
図6に示されるように、ノッチ幅調整部15は、Q値のスイープを行う(S10)。具体的には上述のように、スイープ最終値Qveに向けてQ値を微少量変化させる。ノッチ幅調整部15は、スイープ初期値Qvsからスイープ最終値Qveへと線形にQ値を変化させてもよいし、例えば指数関数といったその他の形式で変化させてもよい。
好ましい一実施例においては、スイープ初期値Qvs及びスイープ最終値Qveはともに比較的広いノッチ幅を表す値(例えばQ≦1)に設定される。こうして、設定しようとするノッチ幅よりも広い幅のノッチフィルタを試行することができる。また、スイープ初期値Qvsはスイープ最終値Qveよりも小さい値であることが好ましい。なお、スイープ初期値Qvsとスイープ最終値Qveとが等しくされ、スイープ時間TQに相当する所定時間だけQ値が試行値Qvsに保持されるようにしてもよい。
また、スイープ時間TQは幅広のノッチフィルタの試行期間として、または振動検出までの待機時間として、経験的または実験的に適切に設定される。一般に、幅の広すぎるノッチフィルタが適用されたからといって直ちに大きな振動が生じるわけではなく、振動が拡大するまでにある程度の時間遅れがある。このことを重視する場合にはスイープ時間TQはある程度長くすることが好ましい一方、調整処理を短時間で完了させることを重視する場合にはスイープ時間TQは短くすることが好ましい。
Q値のスイープ中に、ノッチ幅調整部15は、振動検出条件が満たされたか否かを判定する(S12)。ノッチ幅調整部15は例えば振動評価部19の出力から振動検出条件が満たされたか否かを判定する。振動検出条件が満たされた場合には、ノッチ幅調整部15は、スイープを中断してスイープ開始前の値QMにQ値を戻して調整処理を終了する(S12のY、S18)。スイープ時間TQの完了時点まで振動検出条件が満たされなかった場合には、ノッチ幅調整部15は、Q値を候補値QMLに設定して調整処理を終了する(S12のN、S14、S16)。
候補値QMLは、スイープ開始前の初期値QMよりも狭いノッチ幅を表す値として予め設定されている。よって、初期値QMよりも候補値QMLは小さい値である。好ましい一実施例においては、少なくともスイープ初期値Qvsは候補値QMLよりも小さい値とされ、より好ましくはスイープ初期値Qvs及びスイープ最終値Qveの両方が候補値QMLよりも小さい値とされる。
具体的には、振動検出条件が満たされていないと判定された場合には(S12のN)、ノッチ幅調整部15は、スイープを終了すべきか否か、即ちQ値がスイープ最終値Qveに達しているか否かを判定する(S14)。Q値がスイープ最終値Qveに達していると判定された場合には(S14のY)、ノッチ幅調整部15は、Q値を候補値QMLに設定して調整処理を終了する(S16)。Q値がスイープ最終値Qveに達していないと判定された場合には(S14のN)、ノッチ幅調整部15は、Q値のスイープ(S10)と振動検出判定(S12)とをQ値がスイープ最終値Qveに達するまで繰り返す。
振動検出条件が満たされたと判定された場合には(S12のY)、ノッチ幅調整部15は、Q値をスイープ開始前の初期値QMに設定して調整処理を終了する(S18)。つまり、スイープを中断して調整をリセットする。
図7を参照して振動検出条件の一例について説明する。振動レベルが所定のしきい値を超える場合を「振動検出オン」と称し、振動レベルがそのしきい値以下である場合を「振動検出オフ」と称することとする。一実施例においては単純に、ノッチ幅パラメタの試行期間中に振動検出オンとなったことを振動検出条件としてもよい。
本実施例においてはノッチ幅調整処理が中心周波数調整に引き続いて行われることを考慮して、条件A及び条件Bのいずれかが成立したことを振動検出条件とすることが好ましい。中心周波数調整の完了直後(すなわちノッチ幅調整処理の開始時点)においては、中心周波数調整に起因する振動が比較的高いレベルで残っている場合がある。この振動は時間とともに減衰する。そこで、条件A及び条件Bを次のように定めることにより、中心周波数調整後の初期的な高振動レベルと幅広ノッチフィルタの試行による振動レベル増加とを見分けやすくなる。
条件Aは、振動検出オフとなった後に再度振動検出オンとなったことである。具体的には条件Aは例えば、振動レベルがしきい値未満である状態が所定時間継続した後に振動レベルがしきい値以上となったこととしてもよい。図7に実線で示すケースIは条件Aによって振動検出条件が満たされたと判定される場合の一例である。図7においてピークPは中心周波数調整によって生じた振動を表している。ケースIにおいてはピークPの振動が収まった後に再度振動レベルが増大している。よって、振動レベルがしきい値に達したときに条件Aが成立し、振動検出条件が満たされたと判定される。
また、条件Bは、振動検出オンの状態で振動レベルが増加に転じたことである。具体的には条件Bは例えば、振動レベルがしきい値以上である状態が所定時間継続した後に、振動レベルが前回の判定時に比べて増加したこととしてもよい。図7に破線で示すケースIIは条件Bによって振動検出条件が満たされたと判定される場合の一例である。ケースIIにおいては、ピークPの振動がしきい値以下に収まる前に再度振動レベルが増大している。振動レベルが増加に転じたときに条件Bが成立し、振動検出条件が満たされたと判定される。
このように、中心周波数調整または振動を引き起こすその他の工程に引き続いてノッチ幅調整処理を行う場合には、ノッチ幅調整処理の開始時点から所定時間が経過してから振動検出判定(図6のS12)を開始するようにしてもよい。その所定時間が経過するまでは振動レベルが高くても振動検出とはみなさない。ここでの所定時間は、前工程での振動の減衰を考慮して適宜設定することができる。このようにして、前工程の影響による振動とノッチ幅調整処理に伴う振動とを切り分けることが好ましい。
図8は、本発明の一実施形態に係る共振抑制装置のシステム構成を示すブロック図である。電動機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は上述のように、ノッチ幅調整部15と、中心周波数演算部17と、を含む。フィルタ係数調整部13は、検出速度ω*を参照信号rとして使用している。フィルタ係数調整部13は、速度ω*に含まれる振動周波数に一致するようノッチフィルタ12の中心周波数ω0を修正する。また、フィルタ係数調整部13は、ノッチフィルタ12の幅を上述の調整処理により設定する。ノッチ幅調整部15または振動評価部19は、検出速度ω*から得られる加速度信号を用いて振動レベルを演算し、振動検出条件を判定してもよい。
電動機20の出力するトルクτ*にシステムの固有振動数ωnが含まれていると、電動機の駆動によってシステムの固有振動が励起されて共振が発生する。速度制御部26とトルク制御部28との間にノッチフィルタ12を挿入し、速度制御部26の出力τ1から固有振動数ωnの成分を除去してトルク制御部28への入力トルク指令τ2を生成することにより、共振を抑制することができる。仮に、ノッチフィルタ12の中心周波数ω0がシステムの固有振動数ωnから乖離している場合には、共振が発生して検出信号ω*にシステムの固有振動数ωnの成分が含まれる。この場合、適応ノッチフィルタ10のフィルタ係数調整部13は検出信号ω*を参照信号rとして用いているから、中心周波数ω0をωnに一致させるように自動的に調整することができる。
なおこの実施例では速度制御部26とトルク制御部28との間にノッチフィルタ12を設け、速度制御部26からのトルク指令をノッチフィルタ12への入力として説明している。しかし、他の実施例においては速度指令、検出速度、または誤差信号をノッチフィルタへの入力として使用してもよい。すなわち、ノッチフィルタは、速度制御部への入力信号、当該入力信号を生成するための信号、及び速度制御部からのトルク指令信号のいずれかを入力としてもよい。例えば、図8に示される構成においてノッチフィルタ12は、検出器24の後段、すなわち検出器24と速度制御部26との間に設けられてもよい。あるいはノッチフィルタ12は、速度指令生成部の後段、すなわち速度制御部26の前段に設けられてもよい。このようにしても同様に振動を抑制することが可能である。
図9及び図10は、本発明の一実施形態に係るノッチ幅パラメタのスイープの一例を示す図である。図9はQ値のスイープ中に振動が検出されなかった例を示し、図10はQ値のスイープ中に振動が検出された例を示す。各図の上欄はモータ速度(例えば電動機20の回転数)の指令値及びそれに対する応答の時間変化を示し、下欄はQ値を示す。これらの例では上述のように、指令応答の残留振動を利用して振動レベルが評価される。
図9においては、ノッチフィルタ12の中心周波数ω0の調整処理が、時刻t0に開始され時刻t1に完了している。上欄に示されるように、中心周波数ω0が適切に調整されることで時刻t0以降の振動は収まる傾向にあることがわかる。なお、このときノッチフィルタ12のノッチ幅は初期値QMに設定されている。
本実施例では中心周波数ω0の調整処理に連続してノッチ幅調整処理が実行される。よって、時刻t1にノッチ幅調整処理が開始される。Q値は初期値QMからスイープ初期値Qvsに変更される。スイープ初期値Qvsから徐々に大きくするようQ値がスイープされる。図示される時刻t2は時刻t1からスイープ時間TQ経過後に設定されており(即ちt2=t1+TQ)、時刻t2にスイープ最終値Qveに達するようにQ値は徐々に大きくされている。この例ではスイープ中に振動が治まっており、時刻t2までに上述の振動検出条件が満たされていない。よって、スイープの完了した時刻t2にQ値は候補値QMLに設定され、ノッチ幅調整処理は終了する。こうして、初期値QMに相当する幅狭のノッチフィルタから、Qvs乃至Qveの範囲の幅広のノッチフィルタの試行を経て、候補値QMLに相当する適度に幅広のノッチフィルタへと調整されている。
図10に示す例においても図9と同様に、時刻t0から時刻t1の間にノッチフィルタ12の中心周波数調整が実行され、時刻t1にノッチ幅調整処理が開始される。Q値は初期値QMからスイープ初期値Qvsに変更され、そこからスイープが開始される。ところが、スイープ中に振動が増大し、スイープ時間TQが経過する前に時刻t3に振動検出条件が満たされたと判定されている。このため、時刻t3においてスイープは中止され、その時点でのQ値から初期値QMに戻されている。もとの値に戻したことにより、その後振動は収まっている。
以上説明したように、本発明の一実施形態によれば、ノッチ幅調整部15は、広い幅を表すノッチ幅パラメタの範囲をスイープし、そのときに検出された振動に基づいて、スイープしたノッチ幅パラメタよりも狭い幅を表す複数の候補値からいずれかを選択する。スイープ中の振動が許容範囲内にある場合には、複数の候補値のうち広い幅を表す値を選択する。一方、振動が許容範囲を超えた場合にはスイープを中断し、狭い幅を表す候補値を選択する。このようにして、位相余裕の確保と、振動状態の速やかな解消との両立を図ることができる。