(57)【特許請求の範囲】
【請求項１】
入力信号を一定周期ＴでＮ個サンプルし、窓関数を掛けた後のデータから、ＮＴ周期を１次とし、前記Ｎ個のデータをフーリエ変換して求めたｍ次（ｍは、Ｎ／２−４より小さい自然数）とｍ＋１次とｍ＋２次とｍ＋３次のＣＯＳ成分の値Ｃ（ｍ），Ｃ（ｍ＋１），Ｃ（ｍ＋２），Ｃ（ｍ＋３）と、ＳＩＮ成分の値Ｓ（ｍ），Ｓ（ｍ＋１），Ｓ（ｍ＋２），Ｓ（ｍ＋３）の８つの値に基づき、周波数（ｍ＋１）/（ＮＴ）から周波数（ｍ＋２）/（ＮＴ）間の１つの信号の周波数を１/（ＮＴ）より高い分解能で同定することを特徴とする周波数同定器。
【請求項２】
平方根の関数をＳＱＲＴとした場合、Ｓｉ＝ＳＱＲＴ（Ｃ（ｍ＋２）＾２＋Ｓ（ｍ＋２）＾２）−ＳＱＲＴ（Ｃ（ｍ）＾２＋Ｓ（ｍ）＾２）とＣｉ＝ＳＱＲＴ（Ｃ（ｍ＋１）＾２＋Ｓ（ｍ＋１）＾２）−ＳＱＲＴ（Ｃ（ｍ＋３）＾２＋Ｓ（ｍ＋３）＾２）を計算し、数値Ｃｉと数値Ｓｉの値に基づき、周波数Ｆｉを同定することを特徴とする請求項１記載の周波数同定器。
【請求項３】
２変数の逆正接関数をＡＴＡＮ２とした場合、Ｆｉ＝（ｍ＋１＋２＊ＡＴＡＮ２（Ｃｉ，Ｓｉ）／π）／（ＮＴ）を計算することにより、周波数Ｆｉを同定することを特徴とする請求項２記載の周波数同定器。
【請求項４】
２＊ＳＱＲＴ（Ｃｉ＾２＋Ｓｉ＾２）の値に基づき、周波数Ｆｉの信号の振幅を同定することを特徴とする請求項１，２，又は３に記載の周波数同定器。
【請求項５】
周波数ＦｉとＡＴＡＮ２（Ｃ（ｍ＋１），Ｓ（ｍ＋１））の値又は、ＡＴＡＮ２（Ｃ（ｍ＋２），Ｓ（ｍ＋２））の値に基づき、周波数Ｆｉの信号の位相を同定することを特徴とする請求項１，２，３，又は４に記載の周波数同定器。
【請求項６】
請求項１，２，又は３記載の周波数同定器と、前記周波数同定器が同定した周波数と前記入力信号とを入力とするデジタルノッチフィルターと、から構成され、前記周波数同定器が前記入力信号から同定した周波数成分を、前記デジタルノッチフィルターにより前記入力信号から除去することを特徴とする信号除去装置。
【請求項７】
請求項５記載の周波数同定器と、前記入力信号から前記周波数同定器が同定した周波数と振幅と位相を持つ信号を生成するデジタル信号生成器と、前記入力信号から前記信号生成器が発生した信号を減算する減算器とを含む信号除去装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主にサーボ制御装置等に組み込まれ、制御処理に使用する信号に含まれる高域の周期的に変化する信号の周波数を同定する周波数同定器に関する。
【背景技術】
【０００２】
サーボモータに結合したボールネジ等で工作機械のテーブルを駆動する場合、数値制御装置からの位置指令とサーボモータに搭載したエンコーダからの位置検出量に従って、サーボ制御装置が位置制御処理及び速度制御処理を行うことにより、サーボモータに流す３相の電流を決定し、モータ電流を制御する。これにより、位置指令に従った位置へテーブルを移動させることが可能である。このようなテーブル等の制御では、機械側の応答特性に限界があり、数十ヘルツ程度の周波数まで忠実に制御できれば、その機械に必要十分な応答性を確保することが可能である。しかしながら、数十ヘルツ程度の周波数まで忠実に制御するためには、その応答周波数の数倍から10倍程度まで速度制御の応答性がないと、機械制御に必要な周波数帯域内で忠実な制御ができなかった。このため、高精度かつ応答性の良い機械を実現するためには、機械制御上は、不要となる高域まで応答するサーボ制御特性を必要としていた。しかし、高域までサーボモータを制御可能にすると、高域に存在するボールネジ等の機械共振やエンコーダの内挿誤差等の周期的誤差にサーボモータが応答し、機械発振や異音が発生する等の問題があった。このため、機械共振に対しては、低域の位相特性に影響の少ないノッチフィルター等によって、トルク指令値等から共振周波数成分を除去していた。また、エンコーダに対しては、可能な限り内挿誤差の小さなエンコーダをサーボモータに搭載していた。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
高精度かつ応答性の良い機械では、使用する軸受やボールネジに対して、高い予圧をかけ、ロストモーションを小さく抑えて製造している。しかし、長期的には摩耗等により、これらの予圧が低下し、機械特性が変化する。このため、機械共振周波数がずれて、ノッチフィルターの効果が低下し、機械発振や異音が再発する問題があった。また、予圧が低下すると、モータからテーブルまでの間の微小変位に対するロストモーションが増加し、微小変位の振動となる高い周波数の駆動力に対して、サーボモータから遠い箇所ほど応答しなくなる。その結果、サーボモータが駆動する軸のイナーシャーが高い周波数ほど等価的に低下し、速度制御のループゲインが高域ほど高くなり、サーボモータは、出荷時よりも高い周波数に対して応答し易くなる。このため、出荷時には問題無かった高い周波数で、新たな機械発振や異音が発生するという問題があった。
【０００４】
また、機械構成によっては、テーブルの位置や搭載するワークの重量等でも機械共振周波数が微妙に変化する場合がある。そのため、このような条件の機械では、除去周波数の帯域が狭く、位相特性の良いノッチフィルターが使用できず、サーボ制御の応答性を上げることができないという問題もあった。
【０００５】
また、エンコーダの内挿誤差に関しては、モータ回転数で誤差成分の周波数が変化し、加工精度としては、十分過ぎる位置誤差量であっても、高域になるほど周波数の自乗に比例して振動レベルが高くなる上、さらに人の可聴特性は高域ほど音量が大きく感じられる。そのため、応答性の良い機械ほど、エンコーダの内挿誤差が騒音となり易く、加工精度的にはオーバースペックとなる超高精度のエンコーダを搭載する必要があった。
【０００６】
なお、高域の有害な応答は、ローパスフィルター等で低下させる方法がある。しかし、ローパスフィルターの除去特性を上げようとすると、機械制御に必要な低域の位相特性が悪化するため、ローパスフィルターで対策できる条件が限られていた。
【０００７】
本発明は、上述のような事情から成されたものであり、本発明の一側面の目的は、機械共振やエンコーダの内挿誤差によって発生する高域の周期的に変化する有害な信号の周波数や位相や振幅を短時間で同定する周波数同定器を実現することにある。また、別の側面の目的は、この周波数同定器を利用して有害な高域の信号成分を除去し、発振や異音の発生を防止することにある。
【課題を解決するための手段】
【０００８】
本発明に係る周波数同定器は、入力信号を一定周期ＴでＮ個サンプルし、窓関数を掛けた後のデータから、ＮＴ周期を１次とし（すなわちＮ×Ｔの長さを１周期とした場合の周波数の成分を１次の成分とし）、前記Ｎ個のデータをフーリエ変換して求めたｍ次（ｍは、Ｎ／２−４より小さい自然数）とｍ＋１次とｍ＋２次とｍ＋３次のＣＯＳ成分の値Ｃ（ｍ），Ｃ（ｍ＋１），Ｃ（ｍ＋２），Ｃ（ｍ＋３）と、ＳＩＮ成分の値Ｓ（ｍ），Ｓ（ｍ＋１），Ｓ（ｍ＋２），Ｓ（ｍ＋３）の８つの値に基づき、周波数（ｍ＋１）/（ＮＴ）から周波数（ｍ＋２）/（ＮＴ）間の１つの信号の周波数を１/（ＮＴ）より高い分解能で同定する周波数同定器である。
【０００９】
また、平方根の関数をＳＱＲＴとした場合、Ｓｉ＝ＳＱＲＴ（Ｃ（ｍ＋２）＾２＋Ｓ（ｍ＋２）＾２）−ＳＱＲＴ（Ｃ（ｍ）＾２＋Ｓ（ｍ）＾２）とＣｉ＝ＳＱＲＴ（Ｃ（ｍ＋１）＾２＋Ｓ（ｍ＋１）＾２）−ＳＱＲＴ（Ｃ（ｍ＋３）＾２＋Ｓ（ｍ＋３）＾２）を計算し、数値Ｃｉと数値Ｓｉの値に基づき、周波数Ｆｉを同定する周波数同定器としても良い。
【００１０】
また、２変数の逆正接関数をＡＴＡＮ２とした場合、Ｆｉ＝（ｍ＋１＋２＊ＡＴＡＮ２（Ｃｉ，Ｓｉ）／π）／（ＮＴ）を計算することにより、周波数Ｆｉを同定する周波数同定器としても良い。なお、ＡＴＡＮ２（Ｘ，Ｙ）は、座標原点と点（Ｘ，Ｙ）を結ぶ線が正の方向のＸ軸に対してなす角度を算出する関数である。
【００１１】
また、２＊ＳＱＲＴ（Ｃｉ＾２＋Ｓｉ＾２）の値に基づき、周波数Ｆｉの信号の振幅を同定する周波数同定器としても良い。
【００１２】
また、周波数ＦｉとＡＴＡＮ２（Ｃ（ｍ＋１），Ｓ（ｍ＋１））の値又は、ＡＴＡＮ２（Ｃ（ｍ＋２），Ｓ（ｍ＋２））の値に基づき、周波数Ｆｉの信号の位相を同定する周波数同定器としても良い。
【００１３】
その他、前記周波数同定器と、その同定器が同定した周波数と入力信号を入力とするデジタルノッチフィルターとを含み、入力信号から同定した周波数成分を除去する信号除去装置としても良い。
【００１４】
また、前記周波数同定器と、その周波数同定器が同定した周波数と振幅と位相と同じ信号を生成するデジタル信号生成器と、入力信号から前記信号生成器が発生した信号を減算する減算器とを含む信号除去装置としても良い。
【発明の効果】
【００１５】
本発明の周波数同定器では、フーリエ変換により求めた連続する４つの次数の８つのパラメータ（それら４つの次数におけるＳＩＮ成分とＣＯＳ成分）で、１次の周波数と同じ帯域内に存在する単一周波数の信号の周波数と位相と振幅を高精度に同定できる。そのため、一般的な高速フーリエ変換（FFT）よりも大幅に少ないデータ数で、２次成分より高域にある周波数を短時間に同定することが可能である。また、エンコーダの内挿誤差のような速度変化に応じて周波数が急激に変化する信号に対しても、周波数の同定が可能であり、フィルターを用いずに、同定した周波数や位相や振幅を入力とするデジタル信号生成器を用いて内挿誤差による信号成分を除去することも可能である。このため、加工精度にマッチした内挿精度のローコストなエンコーダが使用可能となる。また、低域側の位相特性に影響を与えるフィルターを使用せずに有害な信号を除去することも可能なため、サーボ制御の応答特性を改善することが可能となる。また、ＦＦＴ等で、ノッチフィルターの周波数を同定するような高度なサーボシステムと比較し、本発明の周波数同定器では、処理時間が大幅に短くできるため、サーボ制御の処理負担を低減できる。
これらのことから、本発明の周波数同定器によって、機械発振や異音が発生しにくい、高応答なサーボシステムをローコストに提供することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係る周波数同定器とデジタルノッチフィルターを組み合わせた信号除去装置の一例を示すサーボ制御システムのブロック図である。
【図２】図1の周波数同定器の内部構造を示すブロック図である。
【図３】図２のブロック図に示す回路の信号の特性を示すグラフである。
【図４】図２のブロック図に示す回路の別の信号特性を示すグラフである。
【図５】図２のブロック図に示す回路の更に別の信号特性を示すグラフである。
【図６】本発明に係る別の実施形態の周波数同定器と信号発生器を組み合わせた信号除去装置の一例を示すサーボ制御システムのブロック図である。
【図７】図６に示した周波数同定器の内部構造を示すブロック図である。
【図８】図７に示した回路中の位相演算器の演算原理を説明するためのグラフである。
【図９】図７に示した回路中の位相演算器の演算原理を説明するためのグラフである。
【発明を実施するための形態】
【００１７】
図１のサーボ制御を示すブロック４内では、数値制御装置等から指令される位置指令値Ｐｃから、サーボモータ６搭載のエンコーダ７が検出した位置検出データＰｏを減算することにより、位置偏差Ｐｄを算出する。乗算器９では、位置偏差Ｐｄに位置ループゲインＫｐを乗算して、速度指令値Ｖｃを出力する。差分演算器８では、位置検出データＰｏと前回のＰｏとの差分演算を行うことにより、速度Ｖｅｌを計算し、出力する。速度指令値Ｖｃから速度Ｖｅｌが減算されることで、速度偏差Ｖｄが算出される。速度偏差Ｖｄには、伝達関数演算器１０で比例ゲインや積分ゲインが乗算される。また、伝達関数演算器１０は、このゲイン乗算結果に対して、低域位相への影響の少ない範囲で、周波数変動の少ない機械共振周波数成分を除去するノッチフィルターやローパスフィルター等のフィルター演算を行い、これによりトルク指令値Ｔｃを算出して出力する。この説明に用いる例では速度偏差Ｖｄやトルク指令値Ｔｃの演算は、あくまで一例であるが、Ｔ＝５００μs間隔の制御周期で処理される。
【００１８】
また、速度偏差Ｖｄは、周波数同定器１に入力される。周波数同定器１の内部構成の例を図２に示す。周波数同定器１の窓関数演算器１１は、入力されたＶｄ（ｎ）に対して、ハン窓関数であるＶｄ（ｎ）＊（０．５−０．５＊ＣＯＳ（2π＊ｎ／Ｎ））の演算を行い、その演算の結果を数値Ｖｗ（ｎ）として出力する。この例ではＮ＝２０とする。この場合、窓関数処理後の数値Ｖｗ（ｎ）については、２０個（Ｎ＝２０）おきに、連続する２０個の数値Ｖｗ（ｎ）に対して、フーリエ演算器１２，１３，１４，１５，１６，１７，１８，１９で、それぞれＣＯＳ（2π＊２ｎ／Ｎ），ＳＩＮ（2π＊２ｎ／Ｎ），ＣＯＳ（2π＊３ｎ／Ｎ），ＳＩＮ（2π＊３ｎ／Ｎ），ＣＯＳ（2π＊４ｎ／Ｎ），ＳＩＮ（2π＊４ｎ／Ｎ），ＣＯＳ（2π＊５ｎ／Ｎ），ＳＩＮ（2π＊５ｎ／Ｎ）が乗算された後の２０個が積算（合計）され、その積算結果にさらに０．１が乗算される。これにより、フーリエ演算器１２，１３，１４，１５，１６，１７，１８，１９からは、それぞれ、周波数１００Ｈｚ（この例での１／（ＮＴ）の値）を１次の基本波とする２次のＣＯＳ成分（ｍ＝２）、２次のＳＩＮ成分，３次のＣＯＳ成分、３次のＳＩＮ成分，４次のＣＯＳ成分、４次のＳＩＮ成分，５次のＣＯＳ成分、５次のＳＩＮ成分である数値Ｃ２，Ｓ２，Ｃ３，Ｓ３，Ｃ４，Ｓ４，Ｃ５，Ｓ５が出力される。
【００１９】
数値Ｃ２と数値Ｓ２，数値Ｃ３と数値Ｓ３，数値Ｃ４と数値Ｓ４，数値Ｃ５と数値Ｓ５は、それぞれ自乗和平方根演算器２０，２１，２２，２３に入力される。自乗和平方根演算器２０，２１，２２，２３は、それぞれ、入力された２つの数値の自乗和の平方根（すなわち各次数の振幅）を計算し、その計算結果を数値Ａ２，Ａ３，Ａ４，Ａ５として出力する。数値Ａ３と数値Ａ５は、減算器２４に入力される。減算器２４は、Ａ３−Ａ５の演算を行い、その演算の結果を数値Ｃｉとして出力する。同様に減算器２５は、Ａ４−Ａ２の演算を行い、その演算の結果を数値Ｓｉとして出力する。周波数演算器２７は、それら数値Ｃｉと数値Ｓｉについて、（３＋２＊ＡＴＡＮ２（Ｃｉ，Ｓｉ）／π）／（ＮＴ）の演算を行い、その演算の結果を数値Ｆｉとして出力する。また、振幅演算器２６で、数値Ｃｉと数値Ｓｉに対して、自乗和平方根演算であるＳＱＲＴ（Ｃｉ＾２＋Ｓｉ＾２）の演算を行い、その演算結果を２倍した数値Ａｉを出力する。
【００２０】
入力信号Ｖｄ（ｎ）が単一周波数であった場合の、数値Ａ２，Ａ３，Ａ４，Ａ５の入力周波数に対する感度レベルをグラフにすると、図３のグラフになる。また、Ａ３−Ａ５とＡ４−Ａ２の感度特性をグラフにすると、図４のようになる。図４のグラフからわかるように、３００Ｈｚ（３/（ＮＴ））から４００Ｈｚ（４/（ＮＴ））間では、Ａ３−Ａ５である信号Ｃｉは、入力信号の周波数変化の余弦値に比例して変化し、Ａ４−Ａ２である信号Ｓｉは、入力信号の周波数変化の正弦値に比例して変化している。このことから、ｍ＝２の時の（ｍ＋１＋２＊ＡＴＡＮ２（Ｃｉ，Ｓｉ）／π）／（ＮＴ）の演算により得られる数値Ｆｉが、入力信号の周波数の同定値となることが理解できる。
【００２１】
また、入力信号Ｖｄ（ｎ）が単一周波数であった場合の、Ａ３−Ａ５とＡ４−Ａ２の自乗和平方根の感度特性をグラフにすると、図５のようになり、３００Ｈｚ（３/（ＮＴ））から４００Ｈｚ（４/（ＮＴ））間では、多少の誤差はあるが入力信号振幅の約１／２の値を示す。したがって、数値Ａｉが入力信号の振幅の同定値となることが理解できる。
【００２２】
周波数同定器１によって３００Ｈｚから４００Ｈｚ間の入力信号の振幅を同定した数値Ａｉは、比較器２に入力され、予め設定された数値ＡＴよりもＡｉが大きい場合に、デジタルノッチフィルター３へ周波数設定信号Ｓｅｔを１にして出力する。デジタルノッチフィルター３は、周波数設定信号Ｓｅｔが１になると、周波数同定器１が出力した入力信号の周波数を同定した数値Ｆｉにノッチフィルターの中心周波数を変更する。また、デジタルノッチフィルター３は、設定された周波数の成分をトルク指令値Ｔｃから除去し、除去結果のトルク指令値Ｔｎを出力する。電流変換器５は、トルク指令値Ｔｎにしたがって、サーボモータ６の３相の巻線電流ＵＶＷを電流制御する。
【００２３】
図１の例は、モータが駆動する機械側に３００Ｈｚから４００Ｈｚ間で、共振周波数が変動する機械要素があることを前提としたサーボシステムを示している。このような機械に対して、本発明の周波数同定器及び信号除去装置を用いれば、３００Ｈｚから４００Ｈｚ間で、共振による大きな信号成分が速度偏差Ｖｄに発生した場合、１０ｍｓという短い応答時間で、共振周波数を同定し、ノッチフィルターの除去周波数を共振周波数に一致させることが可能となる。このため、テーブルに搭載する重力ワーク等で、機械起動時に共振周波数が大きく変化していても、すばやく共振を抑制できる。これにより、起動直後の共振による一時的な異音発生も防止することが可能となる。また、高精度に周波数を同定できるため、ノッチフィルターのＱ値を高く設定することも容易である。そのため、ノッチフィルターによる低域位相特性の悪化を小さく抑えることが可能である。
【００２４】
速度偏差信号Ｖｄについては、速度指令信号Ｖｃ≒速度信号Ｖｅｌとなるため、原理的に速度偏差信号Ｖｄは非常に小さな信号しか含まれないことになる。また、通常であれば、速度偏差信号Ｖｄに含まれる主成分は、制御に必要な低域成分が支配的となるため、高域の信号は共振等がない限り、ほぼ０となる。しかしながら、高域に共振周波数が多数存在する場合は、周波数同定器１が複数の信号に対して応答する可能性がある。これに対処するには、高い方の共振周波数成分をサーボ制御の伝達関数演算器１０のフィルターで除去すればよい。そして、周波数が変化し易く、低域の位相特性に影響を与える可能性のある低い方の共振周波数を、周波数同定器１とノッチフィルター３で除去すると良い。
【００２５】
図６は、本発明に係る別の実施形態の周波数同定器と信号発生器を組み合わせた信号除去装置の一例を示すサーボ制御システムのブロック図である。なお、図６で、図１と同じものは、同一番号を付し説明を省略する。
【００２６】
図６で伝達関数演算器１０からのトルク指令値Ｔｃは、それぞれ窓関数演算器３０，３１に入力される。窓関数演算器３０は、入力されたＶｄ（ｎ）に対して、ハン窓関数であるＶｄ（ｎ）＊（０．５−０．５＊ＣＯＳ（２π＊ｎ／Ｎ））の演算を行い、その演算の結果を数値Ｔｗ１として周波数同定器３２に出力する。また、窓関数演算器３１は、入力されたＶｄ（ｎ）に対して、ハン窓関数であるＶｄ（ｎ）＊（０．５−０．５＊ＣＯＳ（２π＊ｎ／Ｎ＋π））の演算を行い、その演算の結果を数値Ｔｗ２として周波数同定器３３に出力する。
【００２７】
周波数同定器３２の内部構成の例を図７に示す。なお、周波数同定器３３の内部構成も、これと同様の内部構成を有する。周波数同定器３２のＦＦＴ演算器４０では、窓関数演算器３０の窓関数が０から始まる３２個おきに、３２個の数値Ｔｗ１（n）の値に対して高速フーリエ演算を行う。これにより、ＦＦＴ演算器４０は、６２．５Ｈｚ（これは１／（３２Ｔ）に該当）を１次の基本波とする１５次までのＣＯＳ成分Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６，Ｃ７，Ｃ８，Ｃ９，Ｃ１０，Ｃ１１，Ｃ１２，Ｃ１３，Ｃ１４，Ｃ１５とＳＩＮ成分Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６，Ｓ７，Ｓ８，Ｓ９，Ｓ１０，Ｓ１１，Ｓ１２，Ｓ１３，Ｓ１４，Ｓ１５を演算して出力する。最大成分選択器４１では、演算した各次数の成分のうち２次以上かつ１４次以下の次数の中で、隣り合う２組のレベルが最も大きな２つの次数を選択する。すなわち、２次〜１４次の各次数の中で、振幅（すなわちＳＩＮ成分とＣＯＳ成分の自乗和の平方根）が第１位（最大）と第２位である隣り合う２つの次数を特定する（一般に、振幅最大の次数と第２位の次数は隣り合う）。そして、特定した２つの次数のうち次数の小さい方を（ｍ＋１）次としたときに、数値Ｃｍ，Ｓｍ，Ｃ（ｍ＋１），Ｓ（ｍ＋１），Ｃ（ｍ＋２），Ｓ（ｍ＋２），Ｃ（ｍ＋３），Ｓ（ｍ＋３）と数値ｍを出力する。数値Ｃｍと数値Ｓｍ，数値Ｃ（ｍ＋１）と数値Ｓ（ｍ＋１），数値Ｃ（ｍ＋２）と数値Ｓ（ｍ＋２），数値Ｃ（ｍ＋３）と数値Ｓ（ｍ＋３）は、それぞれ自乗和平方根演算器４２，４３，４４，４５に入力される。自乗和平方根演算器４２，４３，４４，４５は、それぞれ入力された２つの数値の自乗和の平方根を計算し，その計算結果を数値Ａｍ，Ａ（ｍ＋１），Ａ（ｍ＋２），Ａ（ｍ＋３）として出力する。
【００２８】
減算器４８は、Ａ（ｍ＋１）−Ａ（ｍ＋３）の演算を行い、その演算結果を数値Ｃｉ１として出力する。また、減算器４９は、Ａ（ｍ＋２）−Ａｍの演算を行い、その演算結果を数値Ｓｉ１として出力する。数値Ｃｉ１と数値Ｓｉ１と数値ｍについては、周波数演算器５１で、（ｍ＋１＋２＊ＡＴＡＮ２（Ｃｉ１，Ｓｉ１）／π）／（ＮＴ）の演算が行われ、これにより数値Ｆｉ１が求められ、出力される。また、振幅演算器５０は、数値Ｃｉ１と数値Ｓｉ１について、自乗和平方根演算であるＳＱＲＴ（Ｃｉ＾２＋Ｓｉ＾２）の演算を行う。さらに振幅演算器５０は、周波数演算器５１が求めた数値Ｆｉ１の値に対応する変換係数を変換テーブルから求め、上述の自乗和平方根の演算結果をその変換係数で微調整し、その微調整の結果を２倍した値を数値Ａｉ１として出力する。なお、この数値Ｆｉ１の値による微調整のために用いる変換テーブルは、図５のグラフの３００Ｈｚ（（ｍ＋１）/（ＮＴ））から４００Ｈｚ（（ｍ＋２）/（ＮＴ））間の感度レベルを０．５の一定値に変換する変換係数と同じものである。
【００２９】
また、逆正接演算器４６は、数値Ｃ（ｍ＋１）と数値Ｓ（ｍ＋１）に対して２項の逆正接演算ＡＴＡＮ２を実行し、その演算の結果として数値Ｐ（ｍ＋１）を出力する。同様に逆正接演算器４７は、数値Ｃ（ｍ＋２）と数値Ｓ（ｍ＋２）に２項の逆正接演算を行い、演算結果の数値Ｐ（ｍ＋２）を出力する。数値Ｐ（ｍ＋１）と数値Ｐ（ｍ＋２）と数値Ｆｉ１を入力とする位相演算器５２は、入力信号（具体例は後述）の位相が０の時のＰ（ｍ＋１）又はＰ（ｍ＋２）の位相のオフセット量（後述する図８から求めることができる）を数値Ｆｉ１の値に応じて数値Ｐ（ｍ＋１）又は数値Ｐ（ｍ＋２）から除去し、除去結果の値の符号を変えたものを、数値Ｐｉ１として出力する。ここで、位相演算器５２では、数値Ｆｉ１が（ｍ＋２）/（ＮＴ）よりも（ｍ＋１）/（ＮＴ）に近い場合は、数値Ｐ（ｍ＋１）に基づいて数値Ｐｉ１を算出する。また、数値Ｆｉ１が（ｍ＋１）/（ＮＴ）よりも（ｍ＋２）/（ＮＴ）に近い場合は、数値Ｐ（ｍ＋２）に基づいて数値Ｐｉ１を算出する。このようにＰｉ１の計算に（ｍ＋１）/（ＮＴ）と（ｍ＋２）/（ＮＴ）のうち数値Ｆｉ１が近い方の次数を用いるのは、その方が高い精度を期待できるからである。精度が多少低くてもよければ、Ｐｉ１は、Ｐ（ｍ＋１）とＰ（ｍ＋２）のどちらに基づいて計算しても良い。また、上述の「除去」の計算は、同じ次数の間で行う。すなわち、例えば、数値Ｐ（ｍ＋１）に基づいて数値Ｐｉ１を算出すると決定した場合は、逆正接演算器４６が出力した数値Ｐ（ｍ＋１）から、入力信号の位相が０のときのＰ（ｍ＋１）の位相オフセット量（図８から算出可能）を除去すなわち減算し、その減算結果の値の符号を反転したものを、数値Ｐｉ１として算出する。
【００３０】
周波数係数ｘ＝２＊ＡＴＡＮ２（Ｃｉ，Ｓｉ）／πとした場合、位相０の入力信号ｓｉｎ（２π／ＮＴ＊（ｍ＋１＋ｘ）ｔ）に対する数値Ｐ（ｍ＋１）と数値Ｐ（ｍ＋２）の位相関係をグラフにすると図８のようになる。また、周波数係数ｘ＝０．２となる入力信号を例として、位相ｐｈを変えた時の入力信号に対する数値Ｐ（ｍ＋１）及び数値Ｐ（ｍ＋２）の位相関係をそれぞれグラフにすると図９のようになる。図９のグラフから分かるように、数値Ｐ（ｍ＋１）と数値Ｐ（ｍ＋２）は、（周期的な折り返しはあるものの、一般には）入力信号の位相の増加に伴って線形に減少する。また、図８のグラフから分かるように、入力信号の位相が０の場合、数値Ｐ（ｍ＋１）と数値Ｐ（ｍ＋２）の位相のオフセット量（図９の縦軸）は、周波数係数ｘの増加に伴って線形に減少する。このようなことから、上述の演算で求められる数値Ｐｉ１が入力信号の位相の同定値となることを理解できる。以上の処理によって、周波数同定器３２では、入力信号となるトルク指令値Ｔｃに含まれ高域にある大きな成分の信号の周波数と位相と振幅を同定することができる。
【００３１】
周波数同定器３２が同定した周波数Ｆｉ１と位相Ｐｉ１と振幅Ａｉ１は、信号生成器３４に入力され、同定したパラメータに従った信号となる数値Ｎｉ１を出力する。数値Ｎｉ１は、窓関数演算器３６に入力される。窓関数演算器３６では、窓関数演算器３０と同様に、入力されたＮｉ１（ｎ）に対して、ハン窓関数であるＮｉ１（ｎ）＊（0.5-0.5＊ＣＯＳ（2π＊ｎ／Ｎ））の演算が行われ、数値Ｎｗｉ１として出力する。
【００３２】
周波数同定器３３と信号生成器３５と窓関数演算器３７では、数値Ｔｗ２に対して周波数同定器３２と信号生成器３４と窓関数演算器３６と同様の処理を周波数同定器３２とは１６Ｔ時間をずらして処理される。これにより、窓関数演算器３０で除去されたトルク指令値Ｔｃの信号成分に対しても周波数同定器３２と信号生成器３４と同様の処理が行われることになる。したがって、窓関数演算器３７からは、数値Ｎｗｉ１を補完する数値Ｎｗｉ２が出力される。数値Ｎｗｉ１と数値Ｎｗｉ２は、加算器３８で合成すなわち加算され、その合成の結果が数値Ｎｉとして出力される。減算器３９では、トルク指令値Ｔｃから数値Ｎｉが減算され、その減算の結果が数値Ｔｎｒとして出力される。数値Ｔｎｒは、電流変換器５へのトルク指令値として入力される。
【００３３】
以上から図７に示した周波数同定器では、図２に示した周波数同定器と比較し、高域の広い範囲で発生するトルク指令値Ｔｃに含まれる有害な信号成分を同定することが可能である。また、同定した周波数成分を信号生成器で生成して、トルク指令値Ｔｃから除去することが可能である。これにより、エンコーダの内挿誤差による高域の異音発生をフィルター無しでも防止することが可能である。また、高域で突発的に機械共振が発生しても、共振レベルが発振条件を大きく超えない限り、除去することも可能であり、共振による異音発生も防止できる。ただし、機械共振レベルが高く発振し易い条件では、図１の例のようにデジタルノッチフィルターを用いて共振周波数を除去する必要がある。
【００３４】
なお、図１の例では、デジタルノッチフィルター１個の例を示したが、デジタルノッチフィルターを複数個にして、同定した周波数が大きく離れていれば、別のノッチフィルターの除去周波数を設定するようにすれば、複数の共振周波数に対しても、有害な信号成分を除去することが可能である。
【符号の説明】
【００３５】
１，３２，３３  周波数同定器、２  比較器、３  デジタルノッチフィルター、５  電流変換器、６  サーボモータ、７  エンコーダ、８  差分演算器、９  乗算器、１０  伝達関数演算器、１１，３０，３１，３６，３７  窓関数演算器、１２，１３，１４，１５，１６，１７，１８，１９  フーリエ演算器、２０，２１，２２，２３，４２，４３，４４，４５  自乗和平方根演算器、２４，２５，３９，４８，４９  減算器、３８  加算器、２６，５０  振幅演算器、２７，５１  周波数演算器、３４，３５  信号生成器、５２  位相演算器
【図１】
0006530696.tif 000002
【図２】
0006530696.tif 000003
【図３】
0006530696.tif 000004
【図４】
0006530696.tif 000005
【図５】
0006530696.tif 000006
【図６】
0006530696.tif 000007
【図７】
0006530696.tif 000008
【図８】
0006530696.tif 000009
【図９】
0006530696.tif 000010