(57)【要約】【課題】モータ及び被駆動体からなる対象の固有振動の迅速な検出を行う場合に可変帯域阻止フィルタの中心周波数の変更を行ったときに生じやすい可変帯域阻止フィルタから出力された制御信号の乱れを低減することができるモータ制御装置を提供する。【解決手段】周波数成分抽出部１５は、制御信号に含まれる周波数成分を、第１の周波数刻み値ごとに抽出する。周波数検出部１６は、モータ３及び被駆動体４からなる対象の固有振動数に対応する周波数を、抽出した周波数成分から検出する。周波数刻み値設定部１７は、第１の周波数刻み値より細かい第２の周波数刻み値を設定する。中心周波数変更部１８は、可変帯域阻止フィルタ１３が変更後の固有振動数に対応する周波数成分を制御信号から除去した後に制御信号を出力するために、可変帯域阻止フィルタ１３の中心周波数を第２の周波数刻み値ごとに増加又は減少させる。【選択図】図１
2014222972.tif 000002
【特許請求の範囲】
【請求項１】
モータ及びモータによって駆動される被駆動体からなる対象の固有振動を抑制しながらモータを制御するための制御信号を出力するモータ制御装置であって、
前記制御信号に含まれる周波数成分を、第１の周波数刻み値ごとに抽出する周波数成分抽出部と、
前記周波数成分抽出部が抽出した周波数成分からモータ及びモータによって駆動される被駆動体からなる対象の固有振動数に対応する周波数を検出する周波数検出部と、
前記第１の周波数刻み値より細かい第２の周波数刻み値を設定する周波数刻み値設定部と、
前記周波数検出部の前記固有振動数に対応する周波数の検出時に前記固有振動数が前記第１の周波数刻み値の１以上の整数倍だけ変化した場合には、前記第２の周波数刻み値を前記中心周波数に順次加算又は減算するように、前記中心周波数の変更を行う中心周波数変更部と、
前記制御信号が入力され、前記変化後の固有振動数に対応する周波数成分を前記制御信号から除去した後に前記制御信号を出力するために、前記中心周波数変更部によって前記中心周波数が変更可能である可変帯域阻止フィルタと、
を備えることを特徴とするモータ制御装置。
【請求項２】
前記周波数成分抽出部が抽出する前記制御信号の周波数成分の範囲を設定する抽出範囲設定部を更に備える、請求項１に記載のモータ制御装置。
【請求項３】
前記抽出範囲設定部が設定する前記制御信号の周波数成分の範囲を変更する設定範囲変更部を更に備える、請求項２に記載のモータ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モータ及びモータによって駆動される被駆動体からなる対象の固有振動を抑制しながらモータを制御するための制御信号を出力するモータ制御装置に関する。
【背景技術】
【０００２】
従来、モータを使用した工作機械、産業機械、ロボット等において、モータ及びモータによって駆動される被駆動体からなる対象の固有振動を抑制するために、対象の固有振動数に対応する中心周波数が設定される帯域阻止フィルタを備えるモータ制御装置が提案されている。
【０００３】
モータ制御装置にこのような帯域阻止フィルタを用いることによって、対象の固有振動数に対応する周波数成分が、モータを制御するための制御信号（例えば、トルク指令）から除去されるので、対象の固有振動を抑制しながらモータを制御することができる。
【０００４】
工作機械の直線移動軸に沿ってモータがボールねじを介して被駆動体を駆動するときにモータと被駆動体との相対位置に応じてボールねじのばね定数が変化する場合等において、移動する被駆動体の位置に応じて対象の固有振動数が変化する。
【０００５】
このように対象の固有振動数が変化する場合、対象の固有振動数に対応する周波数が帯域阻止フィルタの帯域から外れるために対象の固有振動を抑制することができないことがある。
【０００６】
移動する被駆動体の位置に応じて対象の固有振動数が変化する場合でも対象の固有振動を抑制できるようにするために、中心周波数が可変である可変帯域阻止フィルタを備えるモータ制御装置が提案されている（例えば、特許文献１）。
【０００７】
このような可変帯域阻止フィルタを備える従来のモータ制御装置は、制御信号に含まれる周波数成分の大きさ（パワースペクトル）を予め設定された周波数刻み値ごとに抽出し、対象の固有振動数に対応する周波数を、抽出した周波数成分の大きさから検出する。
【０００８】
そして、従来のモータ制御装置は、対象の固有振動数が変化したために可変帯域阻止フィルタの中心周波数が上記周波数刻み値の１以上の整数倍の変化値だけ変化した場合、可変帯域阻止フィルタの中心周波数に変化値を一度に加算又は減算することによって可変帯域阻止フィルタの中心周波数を変化後の固有振動数に対応する周波数に一致させる。
【０００９】
このように対象の固有振動数の変化に応じて変更値を加算又は減少することによって、移動する被駆動体の位置に応じた可変帯域阻止フィルタの中心周波数の変更を適切に行うことができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第４２３８２７３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従来のモータ制御装置において制御信号に含まれる周波数成分を抽出するために予め設定される周波数刻み値は、同一の周波数成分抽出範囲及び同一の周波数成分抽出周期（サンプル値を離散フーリエ変換する場合には、サンプリング周期）の条件下では、固有振動の正確な検出よりも固有振動の迅速な検出を優先させたい場合には比較的大きな値（例えば、１０Ｈｚ）に設定され、固有振動の迅速な検出よりも固有振動の正確な検出を優先させたい場合には比較的小さな値（例えば、１Ｈｚ）に設定される。
【００１２】
モータ制御装置が検出し得る固有振動数の最小の変化量は、周波数刻み値が大きくなるに従って大きくなるので、可変帯域阻止フィルタの中心周波数を変更する前に可変帯域阻止フィルタから出力された制御信号と可変帯域阻止フィルタの中心周波数を変更した後に可変帯域フィルタから出力された制御信号との時間当たりの変化量は、周波数刻み値が大きくなるに従って大きくなる。
【００１３】
したがって、移動する被駆動体の位置に応じて可変帯域阻止フィルタの中心周波数を変更した場合、可変帯域阻止フィルタの中心周波数を変更する前に可変帯域阻止フィルタから出力された制御信号と可変帯域阻止フィルタの中心周波数を変更した後に可変帯域フィルタから出力された制御信号との間の変化により、可変帯域阻止フィルタから出力された制御信号の乱れが生じることがある。
【００１４】
可変帯域阻止フィルタから出力された制御信号の乱れは、可変帯域阻止フィルタの中心周波数を変更する前に可変帯域阻止フィルタから出力された制御信号と可変帯域阻止フィルタの中心周波数を変更した後に可変帯域フィルタから出力された制御信号との時間当たりの変化量が大きくなるに従って大きくなる。
【００１５】
そして、可変帯域阻止フィルタから出力された制御信号の乱れが大きくなるに従って機械的なショックが大きくなり、工作機械で加工を行う場合等において加工精度に悪影響を及ぼすおそれがある。
【００１６】
したがって、固有振動の正確な検出よりも固有振動の迅速な検出を優先させたい場合、すなわち、制御信号に含まれる周波数成分を抽出するために予め設定される周波数刻み値を比較的大きな値に設定する必要がある場合、可変帯域阻止フィルタの中心周波数の変更を行ったときに生じる可変帯域阻止フィルタから出力された制御信号の乱れを低減することが要求される。
【００１７】
本発明の目的は、モータ及びモータによって駆動される被駆動体からなる対象の固有振動の迅速な検出を行う場合に可変帯域阻止フィルタの中心周波数の変更を行ったときに生じやすい可変帯域阻止フィルタから出力された制御信号の乱れを低減することができるモータ制御装置を提供することである。
【課題を解決するための手段】
【００１８】
本発明によるモータ制御装置は、モータ及びモータによって駆動される被駆動体からなる対象の固有振動を抑制しながらモータを制御するための制御信号を出力するモータ制御装置であって、制御信号に含まれる周波数成分を、第１の周波数刻み値ごとに抽出する周波数成分抽出部と、周波数成分抽出部が抽出した周波数成分からモータ及びモータによって駆動される被駆動体からなる対象の固有振動数に対応する周波数を検出する周波数検出部と、第１の周波数刻み値より細かい第２の周波数刻み値を設定する周波数刻み値設定部と、周波数検出部の固有振動数に対応する周波数の検出時に固有振動数が第１の周波数刻み値の１以上の整数倍だけ変化した場合には、第２の周波数刻み値を中心周波数に順次加算又は減算するように、中心周波数の変更を行う中心周波数変更部と、制御信号が入力され、変化後の固有振動数に対応する周波数成分を制御信号から除去した後に制御信号を出力するために、中心周波数変更部によって中心周波数が変更可能である可変帯域阻止フィルタと、を備えることを特徴とする。
【００１９】
好適には、本発明によるモータ制御装置は、周波数成分抽出部が抽出する制御信号の周波数成分の範囲を設定する抽出範囲設定部を更に備える。
【００２０】
好適には、本発明によるモータ制御装置は、抽出範囲設定部が設定する制御信号の周波数成分の範囲を変更する設定範囲変更部を更に備える。
【発明の効果】
【００２１】
本発明によれば、モータ及びモータによって駆動される被駆動体からなる対象の固有振動の迅速な検出を行う場合に可変帯域阻止フィルタの中心周波数の変更を行ったときに生じやすい可変帯域阻止フィルタから出力された制御信号の乱れを低減することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施の形態のモータ制御装置を有するシステムを示す図である。
【図２】図１のモータ制御装置の動作のフローチャートである。
【図３】図１のモータ制御装置による可変帯域阻止フィルタの中心周波数の変更を説明するための図である。
【発明を実施するための形態】
【００２３】
本発明によるモータ制御装置の実施の形態を、図面を参照して説明する。
図１は、本発明の実施の形態のモータ制御装置を有するシステムを示す図である。図１に示すシステムは、モータ制御装置１と、アンプ２と、モータ３と、被駆動体４と、位置検出部５と、速度検出部６と、上位制御装置７と、を備える。本実施の形態では、図１に示すシステムは、工作機械の直線移動軸（図示せず）に沿ってモータ３がボールねじ（図示せず）を介して被駆動体４を駆動するために用いられる。
【００２４】
モータ制御装置１は、モータ３の実際の位置θとモータ３に対する位置指令値θｃとの偏差Δθ、モータ３の実際の速度Ｖとモータ３に対する速度指令値Ｖｃとの偏差ΔＶ及びモータ３の実際の電流値Ｉとモータ３に対する電流指令値Ｉｃとの偏差ΔＩが常にゼロになるように制御するフィードバック制御を行う。
【００２５】
アンプ２は、電圧指令値Ｄｃがモータ制御装置１から入力され、電圧指令値にＤｃ応答してモータ３に電力Ｐを供給する。また、アンプ２は、モータ３の実際の電流値Ｉを検出し、電流値Ｉをモータ制御装置１にフィードバックする。
【００２６】
モータ３は、アンプ２から供給された電力Ｐによって被駆動体４を駆動するサーボモータ等によって構成される。モータ３及び被駆動体４は、弾性、摩擦、質量等を有する物理的な力学系であり、その剛性及び減衰特性が低い場合等には固有振動数において共振し、大きな振幅を有する固有振動を生じる。
【００２７】
位置検出部５は、モータ３の実際の位置θを検出するロータリーエンコーダ等によって構成され、モータの実際の位置θをモータ制御装置１及び速度検出部６に出力する。速度検出部６は、モータの実際の位置θが位置検出部５から入力され、モータの実際の位置θを時間で１階微分することによってモータ３の実際の速度Ｖを検出し、モータ３の実際の速度Ｖをモータ制御装置１に出力する。
【００２８】
上位制御装置７は、ＣＮＣ（数値制御装置）等によって構成され、モータ３に対する位置指令値θｃの他に、後に説明する中心周波数初期値設定指令ｆｃ、抽出範囲設定指令Ｒｃ及び設定範囲変更指令Ｃｃをモータ制御装置１に入力する。
【００２９】
本実施の形態では、モータ制御装置１は、モータ３及びモータ３によって駆動される被駆動体４からなる対象の固有振動を抑制しながらモータ３を制御するための制御信号としてのトルク指令値Ｔｃを出力する。
【００３０】
このために、モータ制御装置１は、位置制御部１１と、速度制御部１２と、可変帯域阻止フィルタ１３と、電流制御部１４と、周波数成分抽出部１５と、周波数検出部１６と、周波数刻み値設定部１７と、中心周波数変更部１８と、抽出範囲設定部１９と、設定範囲変更部２０と、を備える。
【００３１】
また、本実施の形態では、上位制御装置７からモータ制御装置１に入力されるモータ３に対する位置指令値θｃ、中心周波数初期値設定指令Ｆｃ、抽出範囲設定指令Ｒｃ及び設定範囲変更指令Ｃｃはデジタル信号であり、モータ制御装置１をデジタル回路によって構成する。
【００３２】
具体的には、モータ制御装置１のハードウェアは、ＣＰＵ等の演算装置、半導体メモリ、磁気記録装置又は光学記録装置の記憶装置、入力装置、出力装置及び入出力インタフェースを用いて構成する。
【００３３】
位置制御部１１は、モータ３の実際の位置θ及びモータ３に対する位置指令値θｃを用いてモータ３の位置を制御する。このために、位置制御部１１は、モータ３の実際の位置θとモータ３に対する位置指令値θｃとの偏差Δθを算出し、位置制御ゲインＧｘをメモリ（図示せず）から取得する。そして、位置制御部１１は、位置制御ゲインＧｘと位置偏差Δθとの積Ｇｘ×Δθに相当する速度指令値Ｖｃを生成し、生成した速度指令値Ｖｃを速度制御部１２に出力する。
【００３４】
速度制御部１２は、モータ３の実際の速度Ｖ及びモータ３に対する速度指令値Ｖｃを用いてモータの速度を制御する。このために、速度制御部１２は、モータ３の実際の速度Ｖとモータ３に対する速度指令値Ｖｃとの偏差ΔＶ及び速度偏差ΔＶを１階積分したもの（１階積分速度偏差ＳΔＶ）を算出し、比例ゲインＧｙ及び積分ゲインＧｚをメモリ（図示せず）から取得する。
【００３５】
そして、速度制御部１２は、比例ゲインＧｙと速度偏差ΔＶとの積Ｇｙ×ΔＶと積分ゲインＧｚと１階積分速度偏差ＳΔＶとの積Ｇｚ×ＳΔＶとの和Ｇｙ×ΔＶ＋Ｇｚ×ＳΔＶに相当する制御信号としてのトルク指令値Ｔｃを生成し、生成したトルク指令値Ｔｃを可変帯域阻止フィルタ１３に出力する。
【００３６】
可変帯域阻止フィルタ１３は、トルク指令値Ｔｃが入力され、モータ３及びモータ３によって駆動される被駆動体４からなる対象の固有振動数に対応する周波数成分をトルク指令値Ｔｃから除去し、その後、対象の固有振動数に対応する周波数成分が除去された制御信号としてのトルク指令値Ｔｃ’を電流制御部１４に出力する。
【００３７】
このために、可変帯域阻止フィルタ１３は、中心周波数ｆｃを中心とした所定の帯域幅にある周波数成分をトルク指令値Ｔｃから減衰させる。また、可変帯域阻止フィルタ１３は、中心周波数ｆｃが可変であり、後に説明するように、中心周波数ｆｃは、中心周波数変更部１８によって、対象の固有振動数に対応する周波数ｆｓに設定される。
【００３８】
本実施の形態では、可変帯域阻止フィルタ１３は、後に説明する変更値ΔＣだけ増大又は減少した後の対象の固有振動数に対応する周波数成分をトルク指令値Ｔｃから除去した後にトルク指令値Ｔｃ’を出力するために、中心周波数変更部１８によって中心周波数ｆｃが変更可能である。
【００３９】
電流制御部１４は、モータ３の実際の電流値Ｉ及びモータ３に対する電流指令値Ｉｃを用いてモータ３の電流を制御する。このために、電流制御部１４は、モータ３の実際の電流値Ｉがアンプ２から入力され、トルク指令値Ｔｃ’をモータ３に対する電流指令値Ｉｃに変換する。
【００４０】
そして、電流制御部１４は、モータ３の実際の電流値Ｉとモータ３に対する電流指令値Ｉｃとの偏差ΔＩに基づいて電圧指令値Ｄｃを生成し、生成した電圧指令値Ｄｃをアンプ２に出力する。
【００４１】
周波数成分抽出部１５は、後に説明するように抽出範囲設定部１９によって設定された周波数範囲内に含まれるトルク指令値Ｔｃの周波数成分を、第１の周波数刻み値としての周波数刻み値Δｆ１（例えば、１０Ｈｚ）ごとに抽出する。このために、周波数成分抽出部１５は、サンプリング部１５ａと、記憶部１５ｂと、演算部１５ｃと、を有する。
【００４２】
サンプリング部１５ａは、抽出範囲設定部１９によって設定された周波数範囲内のトルク指令値Ｔｃに対するサンプリングを周波数刻み値Δｆ１（すなわち、サンプリング間隔）ごとにＮ（例えば、Ｎ＝４００）回行うことによってＮ個のサンプリング値Ｓｎ（ｎ＝０，．．．，Ｎ−１）を生成する。
【００４３】
記憶部１５ｂは、サンプリング部１５ａが生成したＮ個のサンプリング値Ｓｎを順次記憶する。演算部１５ｃは、記憶部１５ｂに記憶したサンプリング値Ｓｎを離散フーリエ変換することによってトルク指令値Ｔｃの周波数成分Ｇｎを周波数刻み値Δｆ１ごとに演算し、演算した周波数成分Ｇｎを周波数検出部１６に出力する。
【００４４】
トルク指令値のサンプリング周期をＴで表し、サンプリング数をＮで表し、サンプリングされたトルク指令値をｇで表し、トルク指令値の周波数成分（スペクトル成分）を｜Ｇ｜で表し、ｎ＝０，１，２，．．．，Ｎ−１とした場合、離散フーリエ変換の式を以下のように定義することができる。
【００４５】
【数１】
2014222972.tif 000003
ここで、ｊは、虚数単位を表し、ｋは、０，１，２，．．．，Ｎ−１をとる変数を表す。また、ｎ／ＮＴは、周波数成分抽出部１５が抽出する周波数成分の周波数に相当する。
【００４６】
同一の周波数成分抽出範囲及び同一のサンプリング周期の条件下では、周波数刻み値Δｆ１が大きくなるに従って対象の固有振動を迅速に検出することができる。周波数刻み値Δｆ１は１／ＮＴで表されるので、例えば、サンプリング周期Ｔが０．２５ミリ秒であり、サンプリング数Ｎが４００個である条件下では、周波数刻み値Δｆ１が１Ｈｚのときにトルク指令値Ｔｃの周波数成分を取得する時間は１秒となり、周波数刻み値Δｆ１が１０Ｈｚのときにトルク指令値Ｔｃの周波数成分を取得する時間は０．１秒となる。
【００４７】
周波数検出部１６は、演算部１５ｃが演算した周波数成分Ｇｎから対象の固有振動数に対応する周波数ｆｓを検出する。本実施の形態では、周波数検出部１６は、周波数成分Ｇｎの大きさが所定のしきい値以上である周波数成分に対応する振動数を固有振動数と判断し、判断した固有振動数に対応する周波数ｆｓを検出する。
【００４８】
本実施の形態では、周波数検出部１６は、固有振動数に対応する周波数ｆｓが現在可変帯域阻止フィルタ１３に設定されている中心周波数ｆｃに一致するか否か、すなわち、固有振動数に対応する周波数ｆｓが変動したか否かを判断する。
【００４９】
このために、周波数検出部１６は、今回検出した固有振動数に対応する周波数ｆｓが前回検出した固有周波数に対応する周波数ｆｓと一致するか否かを判断する。固有振動数に対応する周波数ｆｓが変動した場合、周波数検出部１６は、中心周波数ｆｃを新たな中心周波数ｆｃ（すなわち、今回検出した固有振動数に対応する周波数ｆｓ）に変更するために、今回検出した固有振動数に対応する周波数ｆｓを周波数刻み値設定部１７及び中心周波数変更部１８に出力する。
【００５０】
また、周波数検出部１６は、モータ３の駆動直後に設定される中心周波数ｆｃの初期値ｆｉ（例えば、２５０Ｈｚ）についての情報を有する中心周波数初期値設定指令Ｆｃが上位制御装置７から入力され、初期値ｆｉと最初に検出した固有振動数に対応する周波数ｆｓとの間の一致があるか否かも判断する。
【００５１】
これらが一致しない場合には、周波数検出部１６は、中心周波数ｆｃを新たな中心周波数ｆｃ（すなわち、最初に検出した固有振動数に対応する周波数ｆｓ）に変更するために、最初に検出した固有振動数に対応する周波数ｆｓを周波数刻み値設定部１７及び中心周波数変更部１８に出力する。
【００５２】
周波数刻み値設定部１７は、周波数ｆｓが周波数検出部１６から入力された場合、周波数刻み値Δｆ１より細かい第２の周波数刻み値としての周波数刻み値Δｆ２を設定する。本実施の形態では、周波数刻み値設定部１７は、周波数刻み値Δｆ１を２以上の整数（例えば、１０）で除算した値である第２の周波数刻み値としての周波数刻み値Δｆ２を設定する。
【００５３】
また、本実施の形態では、周波数刻み値Δｆ２を、前回入力された周波数ｆｓ又は初期値ｆｉと今回入力された周波数ｆｓとの差、周波数刻み値Δｆ１及び周波数刻み値Δｆ２との関係を表すテーブル（図示せず）に基づいて決定する。
【００５４】
中心周波数変更部１８は、周波数ｆｓが周波数検出部１６から入力された場合、すなわち、周波数検出部１６の固有振動数に対応する周波数ｆｓの検出時に固有振動数が周波数刻み値Δｆ１の１以上の整数倍だけ変化した場合、周波数刻み値Δｆ２を中心周波数ｆｃに順次加算又は減算するように、中心周波数ｆｃを新たな中心周波数ｆｃ（すなわち、今回検出した固有振動数に対応する周波数ｆｓ）に変更する。
【００５５】
本実施の形態では、中心周波数変更部１８は、移動する被駆動体４の位置に応じて固有振動数に対応する周波数ｆｓが周波数刻み値Δｆ１に１以上の整数（例えば、１）を乗算した値である変更値ΔＣ（例えば、ΔＣ＝Δｆ１）だけ増大した場合には、中心周波数ｆｃの増大量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を中心周波数ｆｃに順次加算することによって、中心周波数ｆｃの変更を行う。
【００５６】
また、中心周波数変更部１８は、移動する被駆動体４の位置に応じて固有振動数に対応する周波数ｆｓが変更値ΔＣだけ減少した場合には、中心周波数ｆｃの増大量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を中心周波数ｆｃから順次減算することによって、中心周波数ｆｃの変更を行う。
【００５７】
さらに、中心周波数変更部１８は、上位制御装置７から入力される中心周波数初期値設定指令Ｆｃに応答して、モータ３の駆動直後に設定される中心周波数ｆｃを初期値ｆｉに設定する。
【００５８】
抽出範囲設定部１９は、周波数成分抽出部１５が抽出するトルク指令値Ｔｃの周波数成分の範囲（例えば、ｆｉ±５Δｆ１の範囲）についての情報を有する抽出範囲設定指令Ｒｃがモータ３の駆動開始直後に上位制御装置７から入力される。そして、抽出範囲設定部１９は、抽出範囲設定指令Ｒｃに応答して、周波数成分抽出部１５が抽出するトルク指令値Ｔｃの周波数成分の範囲、すなわち、サンプリング部１５ａがサンプリングを行うトルク指令値Ｔｃの周波数成分の範囲を設定する。
【００５９】
設定範囲変更部２０は、抽出範囲設定部１９が設定するトルク指令値Ｔｃの周波数成分の範囲を変更する。このために、上位制御装置７は、抽出範囲設定指令Ｒｃを抽出範囲設定部１９に出力してから所定の時間（例えば、モータ３の駆動を開始してから中心周波数ｆｃが最初に設定されるまでに要すると予測される時間）が経過した後に、周波数成分抽出部１５が抽出するトルク指令値Ｔｃの周波数成分の変更後の範囲（例えば、ｆｃ±２Δｆ１）についての情報を有する設定範囲変更指令Ｃｃを設定範囲変更部２０に入力する。
【００６０】
そして、設定範囲変更部２０は、設定範囲変更指令Ｃｃに応答して、抽出範囲設定部１９が設定するトルク指令値Ｔｃの周波数成分の範囲を変更する。このために、設定範囲変更部２０は、設定範囲変更指令Ｃｃに応答して変更信号Ｃを抽出範囲設定部１９に出力し、抽出範囲設定部１９に設定されている指令値Ｔｃの周波数成分の範囲を変更する。
【００６１】
図２は、図１のモータ制御装置の動作のフローチャートである。このフローチャートは、モータ３の駆動開始直後に実行され、モータ制御装置１で実行される処理プログラムによって制御される。
【００６２】
先ず、中心周波数変更部１８は、中心周波数ｆｃを初期値ｆｉに設定する（ステップＳ１）。次に、抽出範囲設定部１９は、周波数成分抽出部１５が抽出するトルク指令値Ｔｃの周波数成分の範囲を設定する（ステップＳ２）。
【００６３】
次に、サンプリング部１５ａは、抽出範囲設定部１９によって設定された周波数範囲内のトルク指令値Ｔｃに対するサンプリングを周波数刻み値Δｆ１ごとに行うことによってサンプリング値Ｓｎを生成する（ステップＳ３）。
【００６４】
次に、記憶部１５ｂは、サンプリング部１５ａが生成したサンプリング値Ｓｎを順次記憶する（ステップＳ４）。次に、演算部１５ｃは、記憶部１５ｂに記憶したサンプリング値Ｓｎを離散フーリエ変換することによってトルク指令値Ｔｃの周波数成分Ｇｎを周波数刻み値Δｆ１ごとに演算し、演算した周波数成分Ｇｎを周波数検出部１６に出力する（ステップＳ５）。
【００６５】
次に、周波数検出部１６は、対象の固有振動数に対応する周波数ｆｓを、演算部１５ｃが演算した周波数成分Ｇｎから検出する（ステップＳ６）。次に、周波数検出部１６は、固有振動数に対応する周波数ｆｓが変動したか否かを判断する（ステップＳ７）。
【００６６】
固有振動数に対応する周波数ｆｓが変動した場合、周波数検出部１６は、固有振動数に対応する周波数ｆｓを周波数刻み値設定部１７及び中心周波数変更部１８に出力し、周波数刻み値設定部１７は、周波数刻み値Δｆ２を決定する（ステップＳ８）。
【００６７】
次に、中心周波数変更部１８は、現在設定されている中心周波数ｆｃを今回検出した固有振動数に対応するｆｓに変更することによって新たな中心周波数ｆｃを設定する（ステップＳ９）。
【００６８】
次に、設定範囲変更部２０は、設定範囲変更指令Ｃｃが上位制御装置７から入力されたか否か判断する（ステップＳ１０）。抽出範囲設定指令Ｒｃが上位制御装置７から入力された場合、設定範囲変更部２０は、設定範囲変更指令Ｃｃに応答して変更信号Ｃを抽出範囲設定部１９に出力し、抽出範囲設定部１９に設定されている指令値Ｔｃの周波数成分の範囲を変更する（ステップＳ１１）。
【００６９】
次に、速度制御部１２は、モータ３が停止したか否か、すなわち、モータ３の実際の速度Ｖがゼロであるか否かを判断する（ステップＳ１２）。モータ３が停止した場合、処理フローを終了する。それに対し、モータが停止していない場合、ステップＳ３に戻る。
【００７０】
一方、ステップＳ７で固有振動数に対応する周波数ｆｓが変動しないと判断された場合及びステップＳ１０で抽出範囲設定指令Ｒｃが上位制御装置７から入力されなかったと判断された場合、ステップＳ１２に進む。
【００７１】
図３は、図１のモータ制御装置による可変帯域阻止フィルタの中心周波数の変更を説明するための図である。図３において、周波数刻み値Δｆ２は、周波数刻み値Δｆ１を１０で除算した値であり、中心周波数ｆｃの変更値ΔＣがΔｆ１であり、移動する被駆動体４の位置に応じて固有振動数に対応する周波数ｆｓが変更値ΔＣだけ増大したときに中心周波数ｆｃの増大量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を中心周波数ｆｃに順次加算することによって中心周波数ｆｃをｆ１からｆ２に変更する場合について説明する。
【００７２】
時間ｔ１から時間ｔ２までの間にサンプリング、サンプリング値の記憶、離散フーリエ変換、固有振動数に対応する周波数ｆｓの検出、固有振動数に対応する周波数ｆｓの変動の検出及び周波数刻み値Δｆ２の決定が行われた後、中心周波数変更部１８は、実線で示すように、中心周波数ｆｃの増大量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を時間間隔Δｔごとに中心周波数ｆｃに順次加算することによって中心周波数ｆｃをｆ１からｆ２に変更する。すなわち、中心周波数ｆｃの増大量が変更値ΔＣに到達する時間をｔ３としたとき、ｔ３−ｔ２＝９Δｔとなる。また、中心周波数ｆｃの変更は、次のサンプリングを終了する前に終了する。
【００７３】
このように中心周波数ｆｃの増大量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を時間間隔Δｔごとに中心周波数ｆｃに順次加算して中心周波数ｆｃをｆ１からｆ２に変更することによって、中心周波数ｆｃを変更する前に可変帯域阻止フィルタ１３から出力されたトルク指令値Ｔｃ’と中心周波数ｆｃを変更した後に可変帯域阻止フィルタ１３から出力されたトルク指令値Ｔｃ’との時間当たりの変化量は、図３において一点鎖線で示すように中心周波数ｆｃに変更値ΔＣ（すなわち、Δｆ１）を一度に加算した場合より小さくなる。
【００７４】
したがって、中心周波数ｆｃの増大量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を時間間隔Δｔごとに中心周波数ｆｃに順次加算することによって中心周波数ｆｃをｆ１からｆ２に変更する場合、可変帯域阻止フィルタ１３から出力されたトルク指令値Ｔｃ’の乱れは、中心周波数ｆｃに変更値ΔＣを一度に加算した場合より小さくなる。
【００７５】
同様に、中心周波数ｆｃの減少量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を時間間隔Δｔごとに中心周波数ｆｃから順次減算することによって中心周波数ｆｃをｆ２からｆ１に変更する場合、可変帯域阻止フィルタ１３から出力されたトルク指令値Ｔｃ’の乱れは、中心周波数ｆｃに変更値ΔＣを一度に減算した場合より小さくなる。
【００７６】
本実施の形態によれば、中心周波数ｆｃの増大量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を中心周波数ｆｃに順次加算し、又は、中心周波数ｆｃの減少量が変更値ΔＣに到達するまで周波数刻み値Δｆ２を中心周波数ｆｃから順次減算することによって、固有振動の正確な検出よりも固有振動の迅速な検出を優先させたいために周波数刻み値Δｆ１を比較的大きな値（例えば、１０Ｈｚ）に設定する必要がある場合でも、可変帯域阻止フィルタ１３から出力されたトルク指令値Ｔｃ’の乱れを低減することができる。
【００７７】
また、周波数成分抽出部１５が抽出するトルク指令値Ｔｃの周波数成分の範囲を設定することによって、演算処理の負荷を低減して固有振動の検出を高速にするとともに、必要な記憶量を減少させることができる。
【００７８】
例えば、サンプリング周期Ｔが０．２５ミリ秒であり、周波数刻み値Δｆ１が１０Ｈｚであり、サンプリング数Ｎが４００個であるときに周波数成分抽出部１５が抽出するトルク指令値Ｔｃの周波数成分の範囲を２００Ｈｚ±５０Ｈｚに設定した場合、求める周波数成分の周波数はｎ／ＴＮによって表されるので、１５≦ｎ≦２５の範囲について離散フーリエ変換を行えばよく、ｎ＝１，２，．．．，Ｎ−１（この場合、１≦ｎ≦３９９）の範囲の全てについて離散フーリエ変換を行う必要がない。
【００７９】
さらに、周波数成分抽出部１５が抽出するトルク指令値Ｔｃの周波数成分の範囲を変更することによって、周波数成分抽出部１５が抽出するトルク指令値Ｔｃの周波数成分の範囲を適切に変更することができる。
【００８０】
例えば、抽出するトルク指令値Ｔｃの周波数成分の範囲を最初にｆｉ±５Δｆ１に設定した後に、抽出するトルク指令値Ｔｃの周波数成分の範囲をｆｓ±２Δｆ１に変更することができる。このように抽出するトルク指令値Ｔｃの周波数成分の範囲をｆｉ±５Δｆ１からｆｓ±２Δｆ１に減少することによって、中心周波数ｆｃを一度設定した後の演算処理の負荷を更に低減して固有振動の検出を更に高速にすることができる。
【００８１】
本発明は、上記実施の形態に限定されるものではなく、幾多の変更及び変形が可能である。例えば、上記実施の形態において、工作機械の直線移動軸（図示せず）に沿ってモータ３がボールねじ（図示せず）を介して被駆動体４を駆動する場合について説明したが、本発明を、ロボット等の重力の影響を受ける軸（重力軸）に沿ってモータ３がボールねじ（図示せず）を介して被駆動体４を駆動する場合等において移動する被駆動体４の位置に応じて対象の固有振動数が変化するときにも適用することができる。
【００８２】
上記実施の形態において、制御信号がトルク指令値Ｔｃである場合について説明したが、制御信号が速度指令値Ｖｃ又は電圧指令値Ｄｃである場合にも本発明を適用することができる。制御信号が速度指令値Ｖｃである場合、可変帯域阻止フィルタ１３は、位置制御部１１と速度制御部１２との間に配置され、位置制御部１１が速度指令値Ｖｃをサンプリング部１５ａに出力する。一方、制御信号が電圧指令値Ｄｃである場合、可変帯域阻止フィルタ１３は、電流制御部１４とアンプ２との間に配置され、電流制御部１４が電圧指令値Ｄｃをサンプリング部１５ａに出力する。
【００８３】
上記実施の形態において、固有振動数に対応する周波数ｆｓが変動したか否かを周波数検出部１６で判断する場合について説明したが、固有振動数に対応する周波数ｆｓが変動したか否かを周波数刻み値設定部１７及び中心周波数変更部１８でそれぞれ判断することもできる。
【００８４】
上記実施の形態において、設定範囲変更部２０を抽出範囲設定部１９の外側に設ける場合について説明したが、設定範囲変更部２０を抽出範囲設定部１９の内側に設けることもできる。
【００８５】
上記実施の形態において、周波数刻み値Δｆ２が周波数刻み値Δｆ１を２以上の整数で除算した値である場合について説明したが、周波数刻み値Δｆ２を、周波数刻み値Δｆ１を２以上の整数で除算した値以外の値に設定することができる。例えば、周波数刻み値Δｆ１が１０Ｈｚに設定され、周波数刻み値Δｆ２が９Ｈｚ及び１Ｈｚに設定され、移動する被駆動体４の位置に応じて固有振動数に対応する周波数ｆｓが１０Ｈｚだけ増大した場合、中心周波数ｆｃに９Ｈｚ及び１Ｈｚを順次加算することによって、中心周波数ｆｃの変更を行うことができる。
【００８６】
上記実施の形態において、中心周波数ｆｃが変更後の固有振動数に対応する周波数ｆｓに一致するように中心周波数ｆｃの変更を行う場合について説明したが、変更後の固有振動数に対応する周波数ｆｓが可変帯域阻止フィルタ１３の帯域内に収まるように中心周波数の変更を行うこともできる。
【００８７】
上記実施の形態において、周波数刻み値Δｆ１が一定（例えば、１０Ｈｚ）である場合について説明したが、周波数刻み値Δｆ１を可変にすることもできる。例えば、周波数刻み値Δｆ１を、固有振動の正確な検出よりも固有振動の迅速な検出を優先させるために比較的大きな値（例えば、１０Ｈｚ）に設定した後に固有振動の迅速な検出よりも固有振動の正確な検出を優先させるために比較的小さな値（例えば、１Ｈｚ）に変更することができる。
【符号の説明】
【００８８】
１    モータ制御装置
２    アンプ
３    モータ
４    被駆動体
５    位置検出部
６    速度検出部
７    上位制御装置
１１    位置制御部
１２    速度制御部
１３    可変帯域阻止フィルタ
１４    電流制御部
１５    周波数成分抽出部
１５ａ    サンプリング部
１５ｂ    記憶部
１５ｃ    演算部
１６    周波数検出部
１７    周波数刻み値設定部
１８    中心周波数変更部
１９    抽出範囲設定部
２０    設定範囲変更部
【図１】
2014222972.tif 000004
【図２】
2014222972.tif 000005
【図３】
2014222972.tif 000006
【手続補正書】
【提出日】平成26年7月23日(2014.7.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
モータ制御装置が検出し得る固有振動数の最小の変化量は、周波数刻み値が大きくなるに従って大きくなるので、可変帯域阻止フィルタの中心周波数を変更する前に可変帯域阻止フィルタから出力された制御信号と可変帯域阻止フィルタの中心周波数を変更した後に可変帯域阻止フィルタから出力された制御信号との時間当たりの変化量は、周波数刻み値が大きくなるに従って大きくなる。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
したがって、移動する被駆動体の位置に応じて可変帯域阻止フィルタの中心周波数を変更した場合、可変帯域阻止フィルタの中心周波数を変更する前に可変帯域阻止フィルタから出力された制御信号と可変帯域阻止フィルタの中心周波数を変更した後に可変帯域阻止フィルタから出力された制御信号との間の変化により、可変帯域阻止フィルタから出力された制御信号の乱れが生じることがある。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
可変帯域阻止フィルタから出力された制御信号の乱れは、可変帯域阻止フィルタの中心周波数を変更する前に可変帯域阻止フィルタから出力された制御信号と可変帯域阻止フィルタの中心周波数を変更した後に可変帯域阻止フィルタから出力された制御信号との時間当たりの変化量が大きくなるに従って大きくなる。
【手続補正４】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モータ及びモータによって駆動される被駆動体からなる対象の固有振動を抑制しながらモータを制御するための制御信号を出力するモータ制御装置であって、
前記制御信号に含まれる周波数成分を、第１の周波数刻み値ごとに抽出する周波数成分抽出部と、
前記周波数成分抽出部が抽出した周波数成分からモータ及びモータによって駆動される被駆動体からなる対象の固有振動数に対応する周波数を検出する周波数検出部と、
前記第１の周波数刻み値より細かい第２の周波数刻み値を設定する周波数刻み値設定部と、
前記周波数検出部の前記固有振動数に対応する周波数の検出時に前記固有振動数が前記第１の周波数刻み値の１以上の整数倍だけ変化した場合には、前記第２の周波数刻み値を中心周波数に順次加算又は減算するように、前記中心周波数の変更を行う中心周波数変更部と、
前記制御信号が入力され、前記変化後の固有振動数に対応する周波数成分を前記制御信号から除去した後に前記制御信号を出力するために、前記中心周波数変更部によって前記中心周波数が変更可能である可変帯域阻止フィルタと、
を備えることを特徴とするモータ制御装置。
【請求項２】
前記周波数成分抽出部が抽出する前記制御信号の周波数成分の範囲を設定する抽出範囲設定部を更に備える、請求項１に記載のモータ制御装置。
【請求項３】
前記抽出範囲設定部が設定する前記制御信号の周波数成分の範囲を変更する設定範囲変更部を更に備える、請求項２に記載のモータ制御装置。