(57)【特許請求の範囲】
【請求項１】
保持対象物を保持可能な工作機械をフィードバック制御により制御するための指令にフィルタリング処理を行うノッチフィルタと、
前記保持対象物に関する情報である保持対象物情報および前記保持対象物の保持状態を取得するデータ取得部と、
前記保持対象物情報および前記保持状態から前記保持対象物の振動周波数を推定するための学習済モデルに、前記データ取得部により取得された前記保持対象物情報および前記保持状態を入力することにより前記保持対象物の振動周波数を推定する推論部と、
を備え、
前記ノッチフィルタは、遮断周波数を、前記推論部により推定された振動周波数に設定することを特徴とする制御システム。
【請求項２】
前記保持対象物はワークであり、
前記保持対象物情報は、前記保持対象物の、保持位置、径の大きさ、材質、および長さのうちの少なくとも１つを含むことを特徴とする請求項１に記載の制御システム。
【請求項３】
前記保持位置は、前記保持対象物の端部から保持されている前記保持対象物の保持箇所までの長さを示す情報であることを特徴とする請求項２に記載の制御システム。
【請求項４】
前記保持状態は、前記保持対象物が前記工作機械に固定されているか否かを示す情報であることを特徴とする請求項１から３のいずれか１つに記載の制御システム。
【請求項５】
前記学習済モデルは、前記保持対象物情報および前記保持状態からさらに前記振動周波数における振動の大きさを推定するためのモデルであり、
前記推論部は、学習済モデルに、前記データ取得部により取得された前記保持対象物情報および前記保持状態を入力することによりさらに前記振動周波数における振動の大きさを示す値を推定し、
前記ノッチフィルタは、前記遮断周波数における減衰量を、前記推論部により推定され前記振動の大きさを示す値に基づいて設定することを特徴とする請求項１から４のいずれか１つに記載の制御システム。
【請求項６】
前記指令に基づいて前記保持対象物の振動周波数を推定する周波数推定部と、
前記保持対象物情報および前記保持状態と前記周波数推定部により推定された前記振動周波数とを含む学習用データを用いて前記学習済モデルを生成するモデル生成部と、
を備えることを特徴とする請求項１から５のいずれか１つに記載の制御システム。
【請求項７】
保持対象物を保持可能な工作機械のモータをフィードバック制御により制御するための指令にフィルタリング処理を行うノッチフィルタと、
前記保持対象物に関する情報である保持対象物情報および前記保持対象物の保持状態を取得するデータ取得部と、
前記保持対象物情報および前記保持状態から前記保持対象物の振動周波数を推定するための学習済モデルに、前記データ取得部により取得された前記保持対象物情報および前記保持状態を入力することにより前記保持対象物の振動周波数を推定する推論部と、
を備え、
前記ノッチフィルタは、遮断周波数を、前記推論部により推定された振動周波数に設定することを特徴とするモータ制御装置。
【請求項８】
保持対象物を保持可能な工作機械をフィードバック制御により制御し前記工作機械を制御するための指令にフィルタリング処理を施す制御システムから、前記指令、前記保持対象物に関する情報である保持対象物情報および前記保持対象物の保持状態を取得するデータ取得部と、
前記指令に基づいて前記保持対象物の振動周波数を推定する周波数推定部と、
前記データ取得部により取得された前記保持対象物情報および前記保持状態と前記周波数推定部により推定された前記振動周波数とを含む学習用データを用いて、前記フィルタリング処理で用いられる遮断周波数を推論するために用いられる学習済モデルを生成するモデル生成部と、
を備えることを特徴とする機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、工作機械をはじめとした産業用機械装置を制御する制御システム、モータ制御装置および機械学習装置に関する。
【背景技術】
【０００２】
工作機械をはじめとした産業用機械装置の動作を制御する制御装置は、一般に、フィードバック制御手法を採用している。制御装置は、フィードバック制御手法を採用することにより、上位コントローラから送られてくる目標値に安定に追従するとともに外乱の影響にも対応できる。【０００３】
ところが、フィードバック制御手法を用いても、制御対象の剛性、質量等に依存する機械共振が発生する場合がある。機械共振が発生した際にフィードバックゲインが大きな値に設定されていると、機械共振が増大し制御系が発振してしまうことがある。このような現象を抑制するために、従来、特定の周波数成分だけを減衰させるフィルタであるノッチフィルタを、制御ループ内に設ける手法が用いられていた。しかし、減衰させるすなわち遮断する特定の周波数である遮断周波数を、ノッチフィルタに設定するためには、遮断すべき周波数を事前に実測により求めることになり、専用の計測器が必要になる。また、制御対象の位置が変化すると共振周波数も変化してしまうため、事前に遮断周波数を決定する方法では、上記現象を十分に抑制できない場合がある。【０００４】
上記のような問題点に対応するため、特許文献１では、制御ループ内に、教示点位置と固有振動数とを教師データとした学習済のニューラルネットワークを設けて振動を抑制する振動低減装置が開示されている。特許文献１の振動低減装置では、制御対象の機構部の位置情報をニューラルネットワークに入力することにより、制御対象に発生する機械共振の固有振動数を演算し、演算により得られた固有振動数に対応するノッチフィルタを制御ループ内に設定することにより振動を抑制する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−２６１８５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
工作機械のなかには、ワーク、工具などの保持対象物を保持する動作を行うものがある。このような工作機械では、保持対象物の位置情報が同じであっても、保持対象物が異なれば大きさ、材質などが異なるため、固有振動数が異なる。また、保持対象物を保持しているか否か、すなわち保持状態が変化することに伴い固有振動数も変化することがある。このような場合、特許文献１に記載の方法では、保持対象物を示す情報および保持状態が反映されていないため、固有振動数を適切に求められない可能性がある。このため、ノッチフィルタにおいて減衰させる周波数域を適切な値に設定できず、機械共振を抑制できない可能性がある。【０００７】
本開示は、上記に鑑みてなされたものであって、保持対象物および保持状態のうち少なくとも一方が変化する場合であっても、制御対象の機械共振を抑制することができる制御システムを得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本開示にかかる制御システムは、保持対象物を保持可能な工作機械をフィードバック制御により制御するための指令にフィルタリング処理を行うノッチフィルタと、保持対象物に関する情報である保持対象物情報および保持対象物の保持状態を取得するデータ取得部と、を備える。制御システムは、さらに、保持対象物情報および保持状態から保持対象物の振動周波数を推定するための学習済モデルに、データ取得部により取得された保持対象物情報および保持状態を入力することにより保持対象物の振動周波数を推定する推論部と、を備える。ノッチフィルタは、遮断周波数を、推論部により推定された振動周波数に設定する。
【発明の効果】
【０００９】
本開示によれば、保持対象物および保持状態のうち少なくとも一方が変化する場合であっても、制御対象の機械共振を抑制することができるという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】実施の形態にかかる制御システムの構成例を示す図
【図２】＜学習フェーズ＞に関する実施の形態のフィルタ生成部の構成例を示す図
【図３】＜活用フェーズ＞に関する実施の形態のフィルタ生成部の構成例を示す図
【図４】実施の形態の学習装置の構成例を示す図
【図５】ニューラルネットワークの一例を示す図
【図６】学習装置における学習処理手順の一例を示すフローチャート
【図７】実施の形態の推論装置の構成例を示す図
【図８】＜活用フェーズ＞におけるフィルタ生成部における処理手順の一例を示すフローチャート
【図９】モータ制御装置とは別に学習処理を行う機械学習装置が設けられる場合の制御システムおよび機械学習装置の構成例を示す図
【発明を実施するための形態】
【００１１】
以下に、実施の形態にかかる制御システム、モータ制御装置および機械学習装置を図面に基づいて詳細に説明する。
【００１２】
実施の形態．
図１は、実施の形態にかかる制御システムの構成例を示す図である。本実施の形態の制御システム２０は、モータ制御装置１と、モータ制御装置１を制御する上位コントローラ２とを備える。制御システム２０は、工作機械３０を制御する。本実施の形態では、制御システム２０の制御対象である工作機械３０は、切削加工を行う工作機械であるとするが、制御システム２０の制御対象は、切削加工を行う工作機械に限定されず、切削加工の加工対象であるワーク６を保持する動作を行うことが可能な産業用機械であればよい。
【００１３】
図１に示した例では、工作機械３０は、モータ３、減速機８、チャック装置５および切削工具７を備える。工作機械３０は、ワーク６を保持可能である。ワーク６は、工作機械３０が保持可能な保持対象物の一例である。具体的には、工作機械３０は、チャック装置５により、ワーク６を固定する。チャック装置５は、上位コントローラ２から、ワーク６を保持することを示すチャック信号を受信した場合に、ワーク６を固定する。モータ３は、モータ制御装置１により制御される。モータ３の回転運動は減速機８を介してチャック装置５に伝達される。これにより、ワーク６はチャック装置５とともに回転する。ワーク６は回転しながら切削工具７により加工される。また、モータ３の位置、すなわちモータ３の回転位置は、検出器４により検出される。検出器４により検出されたモータ３の位置は、モータ制御装置１へ入力される。
【００１４】
上位コントローラ２は、工作機械３０の加工を制御するための指令、制御信号、制御情報等を生成する。詳細には、上位コントローラ２は、モータ３の位置に関する指令である位置指令を生成し、モータ制御装置１へ出力する。上位コントローラ２は、例えば、加工プログラムに従って、工作機械３０の加工を制御するための指令、制御信号、制御情報等を生成する。モータ制御装置１は、上位コントローラ２から受け取った位置指令と、検出器４から入力された位置とに基づいて、モータ３を制御するための電流を生成して、モータ３へ出力する。
【００１５】
また、上位コントローラ２は、チャック装置５がワーク６を固定するか解放するかを示す制御信号を生成して、チャック装置５へ出力する。ここでは、ワーク６を固定するか解放するかを示す制御信号は、ワーク６を固定している間出力されるチャック信号であるとする。チャック装置５は、チャック信号を上位コントローラ２から受け取っている間はワーク６を固定する動作を実施し、チャック信号を受け取っていないときには、ワーク６を解放する動作を実施する。なお、ワーク６を固定するか解放するかを示す制御信号は、この例に限らず、ワーク６の開始と終了時に出力される信号であってもよいし、信号の電圧値等によりワーク６の固定と解放を示すものであってもよい。また、チャック装置５によって固定される例を示したが、上位コントローラ２が、ワーク６が工作機械３０に固定されているか否かを把握できるものであればどのような固定方法であっても良い。
【００１６】
上位コントローラ２は、ワーク６の保持状態を把握している。保持状態は、例えば、ワーク６が工作機械３０に固定されているか否かを示す情報である。図１に示した構成例では、保持状態は、例えば、ワーク６が、チャック装置５に固定されているか否かである。この保持状態は、例えば加工プログラムによって指定されている。上位コントローラ２は、加工プログラムに基づいてワーク６の保持状態を判別することができる。また、保持状態は、工作機械３０の操作者により入力可能であってもよい。例えば、操作者は上位コントローラ２の図示しない入力手段を用いてワーク６の保持状態を入力する。または、モータ制御装置１が入力手段を備え、操作者がモータ制御装置１にワーク６の保持状態を入力するようにしてもよい。また、一般に、工作機械３０を用いて加工が行われる際には、加工条件として、ワーク６に関する情報であるワーク情報が入力される。上位コントローラ２は、加工条件に基づいて、工作機械３０の加工を制御する。ワーク情報は、例えば、ワーク６の、保持位置、径の大きさ、材質、および長さのうちの少なくとも１つを含む。保持位置は、ワーク６の端部から、保持されているワーク６の保持箇所までの長さを示す情報である。上位コントローラ２は、ワーク６の保持状態とワーク６に関する情報であるワーク情報を、モータ制御装置１に出力する。ワーク情報についても、加工プログラムに基づいて判別されてもよいし、操作者により入力可能であってもよい。
【００１７】
次に、モータ制御装置１の構成を説明する。図１に示すように、モータ制御装置１は、位置制御部１１、速度制御部１２、フィルタ生成部１３、電流制御部１４および速度変換部１５を備える。位置制御部１１は、上位コントローラ２から受け取った位置指令と検出器４から入力された位置とに基づいて速度指令を算出し、速度指令を速度制御部１２へ出力する。詳細には、位置指令と検出器４から入力された位置との差に基づいて速度指令を算出する。速度変換部１５は、検出器４から入力された位置を微分することにより速度を算出し、算出した速度を速度制御部１２へ出力する。
【００１８】
速度制御部１２は、速度指令と速度変換部１５から入力された速度とに基づいて電流指令を算出し、電流指令をフィルタ生成部１３へ出力する。詳細には、速度制御部１２は、速度指令と速度変換部１５から入力された速度との差に基づいて電流指令を算出する。すなわち、速度制御部１２は、フィードバック制御により、工作機械３０を制御するための指令を生成する指令生成部である。この指令は、詳細には、フィードバック制御により、工作機械３０のモータ３を制御するための指令である。本実施の形態では、後述するフィルタ生成部１３によりフィルタリング処理を、モータ３を制御するための電流指令に対して行う例を説明するが、電流指令は、保持対象物を保持可能な工作機械３０をフィードバック制御により制御するための指令の一例であり、本実施の形態のフィルタリング処理の対象は、工作機械３０を制御する指令であればよく、電流指令に限定されない。
【００１９】
フィルタ生成部１３は、電流指令にフィルタリング処理を行い、フィルタリング処理後の電流指令を電流制御部１４へ出力する。フィルタ生成部１３におけるフィルタリング処理は、特定の周波数である遮断周波数の成分を減衰させる、すなわち遮断周波数の成分を遮断するフィルタリング処理である。フィルタ生成部１３が遮断する遮断周波数を、工作機械３０で共振の発生する周波数とすることで、機械共振を抑制することができる。一方、固有振動数は、ワーク６の保持状態等に依存する。このため、ワーク６の保持状態を反映せずに、フィルタ生成部１３が除去する遮断周波数を決定すると、ワーク６の保持状態によっては、共振が抑制できないことがある。本実施の形態では、フィルタ生成部１３は、上位コントローラ２から受け取ったワーク情報および保持状態を用いて、フィルタリング処理で除去する周波数成分を決定する。これにより、本実施の形態では、ワーク６の保持状態等を反映して、遮断周波数を決定することができる。このため、ワーク６の保持状態に依存して固有振動数が変化する場合であっても、機械共振を抑制することができる。フィルタ生成部１３の詳細については後述する。
【００２０】
電流制御部１４は、フィルタ生成部１３から出力された電流指令に基づいてモータ３へ出力する電流を制御する。モータ３は、電流制御部１４から出力された電流に応じて回転運動を行う。以上の動作により、モータ制御装置１は、上位コントローラ２から受け取った位置指令に従った位置にモータ３を制御することができる。モータ３が位置指令に従った位置に制御されることにより、減速機８およびチャック装置５を介してワーク６を所望の位置に制御することができる。
【００２１】
次に、フィルタ生成部１３の詳細について説明する。フィルタ生成部１３は、ワーク情報および保持状態を含む情報を用いた機械学習によって振動周波数を求め、電流指令に、振動周波数に応じたフィルタリング処理を実施する。フィルタ生成部１３は、機械学習により学習済モデルを生成する機能と学習済モデルを用いて推論を行う機能とを有する。以下では、学習済みモデルを生成するフェーズを＜学習フェーズ＞と呼び、推論を行うフェーズを＜活用フェーズ＞と呼ぶ。
【００２２】
図２は、＜学習フェーズ＞に関する本実施の形態のフィルタ生成部１３の構成例を示す図である。図２では、＜学習フェーズ＞で用いられる構成要素を記載している。フィルタ生成部１３は、＜学習フェーズ＞で用いられる構成要素として、学習装置１３１、周波数推定部１３２およびノッチフィルタ１３３を備える。
【００２３】
周波数推定部１３２は、電流指令に基づいてワーク６の振動周波数を推定し、推定した振動周波数を示す振動周波数情報をノッチフィルタ１３３および学習装置１３１へ出力する。周波数推定部１３２は、例えば、入力される電流指令をフーリエ変換するといった処理により、電流指令の周波数ごとの成分の大きさを求める。そして、周波数推定部１３２は、成分の大きさが一定値以上となる周波数を振動周波数と推定する。または、周波数推定部１３２は、成分の大きい順に定められた個数の周波数を、振動周波数として推定してもよい。振動周波数情報は、少なくとも振動周波数を示す情報を含む。ここでは、振動周波数は、振動周波数と当該周波数の振幅とを含むとする。振幅は、当該振動周波数の振動の大きさを示す値の一例である。周波数推定部１３２が振動周波数を推定する方法は、電流指令に基づいて推定する方法に限定されず、例えば、振動センサを設けて振動センサから出力される信号をフーリエ変換して推定するなどであってもよく、推定方法に特に制約はない。
【００２４】
ノッチフィルタ１３３は、遮断周波数を変更可能なフィルタである。＜学習フェーズ＞では、ノッチフィルタ１３３の遮断周波数は設定されない状態でよい。すなわち、＜学習フェーズ＞では、ノッチフィルタ１３３が設けられない場合と同様となる。学習装置１３１は、上位コントローラ２から受け取ったワーク情報および保持状態と、周波数推定部１３２から受け取った振動周波数情報とを用いて機械学習により学習済モデルを生成する。なお、ここでは、ワーク情報および保持状態を用いて機械学習を行う例を説明するが、ワーク情報および保持状態のうちの一方が用いられてもよい。学習装置１３１の詳細については後述する。
【００２５】
図３は、＜活用フェーズ＞に関する本実施の形態のフィルタ生成部１３の構成例を示す図である。図３では、＜活用フェーズ＞で用いられる構成要素を記載している。フィルタ生成部１３は、＜活用フェーズ＞で用いられる構成要素として、推論装置１３４およびノッチフィルタ１３３を備える。
【００２６】
推論装置１３４は、学習装置１３１によって生成された学習済モデルに、上位コントローラ２から受け取ったワーク情報および保持状態を入力することにより、振動周波数を推定し、推定した振動周波数をノッチフィルタ１３３へ出力する。ノッチフィルタ１３３は推論装置１３４によって出力された振動周波数に応じて、電流指令にフィルタリング処理を実施する。
【００２７】
詳細には、＜活用フェーズ＞では、ノッチフィルタ１３３は、推論装置１３４から入力される振動周波数に応じて、電流指令にフィルタリング処理を実施する。詳細には、例えば、ノッチフィルタ１３３は推論装置１３４から入力される振動周波数を遮断周波数として設定する。また、推論装置１３４から振動の大きさを示す振幅も入力される場合には、ノッチフィルタ１３３は入力される振幅に基づいて減衰量を決定する。
【００２８】
ここで、モータ制御装置１のハードウェア構成について説明する。モータ制御装置１の各部は回路により実現される。電流制御部１４は、交流電力を直流電力に変換するコンバータ回路、または直流電力を所望の交流電力に変換するインバータ回路を備えることにより電流指令に追従するようにモータ３へ電流を供給する。位置制御部１１、速度制御部１２、フィルタ生成部１３および速度変換部１５は、処理回路により実現される。処理回路は、プロセッサを備える回路であってもよいし、専用ハードウェアであってもよい。
【００２９】
処理回路がプロセッサを備える回路である場合、処理回路は例えプロセッサとメモリで構成される制御回路である。位置制御部１１、速度制御部１２、フィルタ生成部１３および速度変換部１５が制御回路によって実現される場合、プロセッサが、メモリに格納されたプログラムを読み出して実行することにより、これらが実現される。すなわち、位置制御部１１、速度制御部１２、フィルタ生成部１３および速度変換部１５が制御回路によって実現される場合、これらの機能は、ソフトウェアであるプログラムを用いて実現される。メモリはプロセッサの作業領域としても使用される。プロセッサは、ＣＰＵ（Central  Processing  Unit）等である。メモリは、例えば、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリー等の不揮発性または揮発性の半導体メモリ、磁気ディスク等が該当する。
【００３０】
位置制御部１１、速度制御部１２、フィルタ生成部１３および速度変換部１５が専用ハードウェアである場合、処理回路は、例えば、ＦＰＧＡ（Field  Programmable  Gate  Array）、ＡＳＩＣ（Application  Specific  Integrated  Circuit）である。なお、位置制御部１１、速度制御部１２、フィルタ生成部１３および速度変換部１５は、プロセッサを備える処理回路および専用ハードウェアを組み合わせて実現されてもよい。位置制御部１１、速度制御部１２、フィルタ生成部１３および速度変換部１５は、複数の処理回路により実現されてもよい。
【００３１】
次に、図２に示した学習装置１３１の詳細について説明する。図４は、本実施の形態の学習装置１３１の構成例を示す図である。学習装置１３１は、データ取得部１３１１、モデル生成部１３１２および学習済モデル記憶部１３１３を備える。
【００３２】
データ取得部１３１１は、上位コントローラ２からワーク情報および保持状態を取得し、周波数推定部１３２から振動周波数情報を取得する。データ取得部１３１１は、取得したワーク情報および保持状態を入力データとし取得した振動周波数情報を正解データとするデータセットを学習用データとしてモデル生成部１３１２へ出力する。
【００３３】
モデル生成部１３１２は、データ取得部１３１１から入力された学習用データを用いて、ワーク情報および保持状態に対応するワーク６の振動周波数を学習する。すなわち、モデル生成部１３１２は、ワーク情報および保持状態から、フィルタリング処理で遮断すべき最適な周波数を推論するための学習済モデルを生成する。振動周波数情報は、上述したように少なくとも振動周波数を含み、さらに振動の大きさを示す振幅を含んでいてもよい。したがって、学習済モデルは、ワーク情報および保持状態から振動周波数を推論するためのものであってもよいし、保持対象物情報および保持状態から振動周波数と振動周波数における振動の大きさとを推定するためものであってもよい。ここで、学習用データは、ワーク６のワーク情報、保持状態および振動周波数情報を互いに関連付けたデータセットである。
【００３４】
モデル生成部１３１２が用いる学習アルゴリズムは教師あり学習、教師なし学習等の公知のアルゴリズムを用いることができる。一例として、ニューラルネットワークを適用した場合について説明する。
【００３５】
モデル生成部１３１２は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により、ワーク６の振動周波数を学習する。ここで、教師あり学習とは、入力と結果（ラベル）のデータの組を学習装置に与えることで、それらの学習用データにある特徴を学習し、入力から結果を推論する手法をいう。
【００３６】
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層（隠れ層）、および複数のニューロンからなる出力層で構成される。中間層は、１層でもよいし、２層以上でもよい。
【００３７】
図５は、ニューラルネットワークの一例を示す図である。例えば、図５に示すような３層のニューラルネットワークであれば、複数の入力がそれぞれ入力層Ｘ１，Ｘ２，Ｘ３に入力されると、入力層Ｘ１，Ｘ２，Ｘ３は、入力された値に、対応する重みｗ１１〜ｗ１６をそれぞれ掛けて、対応する中間層Ｙ１，Ｙ２へ入力する。中間層Ｙ１，Ｙ２は、入力された値にそれぞれ対応する重みｗ２１〜ｗ２６を掛けて、対応する出力層Ｚ１，Ｚ２，Ｚ３へ出力する。出力層Ｚ１，Ｚ２，Ｚ３は、中間層Ｙ１，Ｙ２から入力された値を加算して出力する。図５は一例であり、入力層の数と、出力層の数は、図５に示した例に限定されず、学習データにおける入力データ、および正解データの数に応じて設定されればよい。
【００３８】
モデル生成部１３１２は、例えば、ニューラルネットワークにおける入力層にワーク情報および保持状態のそれぞれのデータが入力されたときの出力層から出力される結果が、正解データすなわち振動周波数となるように、重みｗ１１〜ｗ１６およびｗ２１〜ｗ２６を調整することで学習する。
【００３９】
モデル生成部１３１２は、以上のような学習を実行することで学習済モデルを生成し、学習済モデル記憶部１３１３へ格納する。学習済モデル記憶部１３１３は、モデル生成部１３１２により生成された学習済モデルを記憶する。
【００４０】
図６は、学習装置１３１における学習処理手順の一例を示すフローチャートである。この学習処理は、例えば、モータ制御装置１の出荷前に行われてもよいし、モータ制御装置１の運用開始前に行われてもよいし、モータ制御装置１の運用開始後に工作機械３０が製品の加工を行っていないときに試験用のワーク６などを用いて行われてもよい。データ取得部１３１１は、データを取得する（ステップＳ１）。詳細には、データ取得部１３１１は、上述したように、上位コントローラ２からワーク情報および保持状態を取得し、周波数推定部１３２から振動周波数情報を取得し、取得したデータを学習用データとしてモデル生成部１３１２へ入力する。なお、ここでは、ワーク情報、保持状態および振動周波数情報を同時に取得するとしたが、ワーク情報、保持状態および振動周波数情報を関連づけて、モデル生成部１３１２に入力できれば良く、データ取得部１３１１は、ワーク情報、保持状態および振動周波数情報のデータをそれぞれ異なるタイミングで取得しても良い。
【００４１】
モデル生成部１３１２は、データ取得部１３１１から入力された学習用データを用いて学習処理を行う（ステップＳ２）。詳細には、モデル生成部１３１２は、データ取得部１３１１から入力された学習用データを用いて、いわゆる教師あり学習により、ワーク６の振動周波数を学習し、学習済モデルを生成する。
【００４２】
次に、学習済モデル記憶部１３１３は、モデル生成部１３１２によって生成された学習済モデルを記憶する（ステップＳ３）。詳細には、モデル生成部１３１２は、生成した学習済モデルを学習済モデル記憶部１３１３へ格納する。この学習済モデルは、後述するように、推論装置１３４によって読み出されて推論に用いられる。
【００４３】
次に、図３に示した推論装置１３４の詳細について説明する。図７は、本実施の形態の推論装置１３４の構成例を示す図である。推論装置１３４は、データ取得部１３３１、推論部１３３２および学習済モデル記憶部１３１３を備える。ここでは、フィルタ生成部１３が学習装置１３１および推論装置１３４の両方の機能を備える場合、学習済モデル記憶部１３１３は、学習装置１３１と共用することができるが、学習装置１３１の学習済モデル記憶部１３１３とは別に、推論装置１３４用に学習済モデル記憶部１３１３を設けてもよい。また、推論装置１３４のデータ取得部１３３１は、振動周波数の推定値を取得しないが、ワーク情報および保持状態を取得する点は学習装置１３１のデータ取得部１３１１と同様である。このため、推論装置１３４のデータ取得部１３３１と学習装置１３１のデータ取得部１３１１とは、共通する部分は共用されてもよい。
【００４４】
推論装置１３４のデータ取得部１３３１は、推論における入力データとして上位コントローラ２からワーク６のワーク情報および保持状態を取得し、入力データを推論部１３３２へ入力する。推論装置１３４の学習済モデル記憶部１３１３には、学習装置１３１によって学習された学習済モデルが格納される。推論部１３３２は、データ取得部１３３１から入力された入力データを学習済モデル記憶部１３１３に格納された学習済モデルへ入力することにより、振動周波数を推定する。すなわち、推論部１３３２は、ワーク情報および保持状態からワークの振動周波数を推定するための学習済モデルに、データ取得部１３３１により取得された保持対象物情報および保持状態を入力することによりワーク６の振動周波数を推定する。
【００４５】
図８は、＜活用フェーズ＞におけるフィルタ生成部１３における処理手順の一例を示すフローチャートである。推論装置１３４のデータ取得部１３３１は、データを取得する（ステップＳ１１）。詳細には、推論装置１３４のデータ取得部１３３１は、推論における入力データとして上位コントローラ２からワーク６のワーク情報および保持状態を取得し、入力データを推論部１３３２へ入力する。
【００４６】
推論部１３３２は、入力データを学習済モデルへ入力する（ステップＳ１２）。詳細には、データ取得部１３３１から入力された入力データを学習済モデル記憶部１３１３に格納された学習済モデルへ入力することにより、入力されたワーク情報および保持状態に対応する振動周波数および振幅を推定する。
【００４７】
次に、推論部１３３２は、学習済モデルから出力されるデータをノッチフィルタ１３３へ出力する（ステップＳ１３）。ノッチフィルタ１３３は、推論部１３３２から出力されたデータに応じた設定を行う（ステップＳ１４）。詳細には、ノッチフィルタ１３３は、遮断周波数を、推論部１３３２から出力された振動周波数の推定値、すなわち推論部１３３２により推定された振動周波数に設定するとともに、推論部１３３２により推定された振幅に基づいて減衰量を設定し、電流指令にフィルタリング処理を実施する。
【００４８】
以上の動作により、フィルタ生成部１３は、＜活用フェーズ＞において、保持対象物および保持状態に対応する振動周波数をフィルタリング処理によって抑制することができるため、保持対象物および保持状態のうち少なくとも一方が変化する場合であっても、制御対象の機械共振を抑制することができる。
【００４９】
なお、図２および図３に示した例では、学習装置１３１および推論装置１３４は、フィルタ生成部１３に内蔵されているが、学習装置１３１および推論装置１３４が設けられる箇所はこの例に限定されない。例えば、学習装置１３１および推論装置１３４は、フィルタ生成部１３とは別にモータ制御装置１内部に設けられてもよいし、モータ制御装置１とネットワークで接続される別の装置として設けられてもよい。例えば、学習装置１３１および推論装置１３４がモータ制御装置１とは別のコンピュータにより実現されてもよいし、学習装置１３１および推論装置１３４のそれぞれが、異なるコンピュータにより実現されていてもよい。学習装置１３１がモータ制御装置１とは別のコンピュータにより実現される場合、このコンピュータは、上位コントローラ２またはモータ制御装置１からワーク情報および保持状態を取得し、モータ制御装置１の周波数推定部１３２から振動周波数情報を取得して、上述した学習装置１３１の動作を実施する。
【００５０】
学習装置１３１および推論装置１３４がコンピュータで実現される場合、コンピュータが備えるプロセッサがメモリに格納されたプログラムを実行することにより、これらの装置が実現される。また、さらに、学習装置１３１および推論装置１３４は、クラウドサーバ上に存在していてもよい。また、学習装置１３１が、モータ制御装置１とは別の装置に設けられ、推論装置１３４がフィルタ生成部１３に内蔵されていてもよい。この場合、フィルタ生成部１３は、データ取得部１３１１を備え、データ取得部１３１１が、取得した学習用データを、学習処理を行う他の装置へ送信する。また、この場合、学習装置１３１により生成された学習済モデルが推論装置１３４にあらかじめ設定されてもよいし、ネットワークを介して推論装置１３４が学習済モデルを学習装置１３１から受信してもよい。さらに、この場合、周波数推定部１３２も、フィルタ生成部１３に内蔵されるかわりに学習処理を行う他の装置に設けられてもよい。周波数推定部１３２が、学習処理を行う他の装置に設けられる場合、データ取得部１３１１は、電流指令を、学習処理を行う他の装置へ送信する。または、振動センサなどのセンサの出力信号に基づいて振動周波数が推定される場合には、センサの出力信号が直接、学習処理を行う他の装置へ送信されてもよい。
【００５１】
図９は、モータ制御装置とは別に学習処理を行う機械学習装置が設けられる場合の制御システムおよび機械学習装置の構成例を示す図である。図９に示した制御システム２０ａは、モータ制御装置１の代わりにモータ制御装置１ａを備える以外は、図１に示した制御システム２０と同様である。モータ制御装置１ａは、フィルタ生成部１３の代わりにフィルタ生成部１３ａを備える。フィルタ生成部１３ａは、フィルタ生成部１３の＜活用フェーズ＞で用いられる構成要素、すなわち図３に示した構成要素を備える。
【００５２】
機械学習装置２００は、工作機械３０を制御するための指令にフィルタリング処理を施す制御システム２０ａから、指令、ワーク情報および保持状態を取得するデータ取得部１３１４、を備える。詳細には、データ取得部１３１４は、上位コントローラ２からワーク情報および保持状態を取得し、モータ制御装置１ａから指令の一例である電流指令を取得する。また、機械学習装置２００は、さらに、データ取得部１３１４が取得した指令に基づいて保持対象物の振動周波数を推定する周波数推定部１３２を備える。周波数推定部１３２は、モータ制御装置１の周波数推定部１３２と同様である。上述したように、周波数推定部１３２は、電流指令の代わりに振動センサによる検出結果などから振動の周波数を推定してもよい。機械学習装置２００は、さらに、学習装置１３１と同様のモデル生成部１３１２および学習済モデル記憶部１３１３を備える。すなわち、機械学習装置２００のモデル生成部１３１２は、データ取得部１３１４により取得されたワーク情報および保持状態と周波数推定部１３２により推定された振動周波数とを含む学習用データを用いて、フィルタリング処理で用いられる遮断周波数を推論するために用いられる学習済モデルを生成し、学習済モデル記憶部１３１３へ格納する。学習済モデル記憶部１３１３に格納された学習済モデルは、モータ制御装置１ａのフィルタ生成部１３ａの推論装置１３４内に記憶される。これにより、フィルタ生成部１３ａの推論装置１３４は、機械学習装置２００により生成された学習済モデルを用いて、フィルタ生成部１３の＜活用フェーズ＞の推論装置１３４と同様に、ワーク情報および保持状態に対応する振動周波数および振幅を推定することができる。なお、ここでは、機械学習装置２００が周波数推定部１３２を備える例を説明したが、モータ制御装置１ａが周波数推定部１３２を備え、機械学習装置２００のデータ取得部１３１４が、周波数推定部１３２による推定結果を取得するようにしてもよい。
【００５３】
また、学習装置１３１のモデル生成部１３１２は、複数のモータ制御装置から取得したデータに基づいて学習済モデルを生成してもよい。モデル生成部１３１２は、同一のエリアで使用される複数のモータ制御装置から学習用データを取得してもよいし、異なるエリアで独立して動作する複数のモータ制御装置から収集される学習用データを利用して振動周波数を学習してもよい。また、学習用データの収集対象のモータ制御装置１を途中で対象に追加したり、対象から除去したりすることも可能である。さらに、あるモータ制御装置１である第１のモータ制御装置に関して振動周波数を学習した学習装置１３１を、これとは別のモータ制御装置１である第２のモータ制御装置に適用し、第２のモータ制御装置の学習装置１３１が、第２のモータ制御装置に関してワーク６の振動周波数を再学習して学習済モデルを更新するようにしてもよい。機械学習装置２００のモデル生成部１３１２も、同様に、複数のモータ制御装置から取得したデータに基づいて学習済モデルを生成してもよいし、学習用データの収集対象のモータ制御装置を途中で対象に追加したり、対象から除去したりすることも可能である。
【００５４】
また、学習処理が機械学習装置２００で行われる場合、当該機械学習装置２００は、推論を行うモータ制御装置１である第１のモータ制御装置とは異なるモータ制御装置１である第２のモータ制御装置から取得したデータに基づいて学習して学習済モデルを生成し、この学習済モデルが第１のモータ制御装置の推論で用いられてもよい。
【００５５】
なお、本実施の形態では、モデル生成部１３１２が用いる学習アルゴリズムに教師あり学習を適用した場合について説明したが、これに限られるものではない。学習アルゴリズムについては、教師あり学習以外にも、教師なし学習、または半教師あり学習等を適用することも可能である。
【００５６】
また、モデル生成部１３１２に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習（Deep  Learning）を用いることもでき、他の公知の方法、例えば遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
【００５７】
また、以上の説明では、モータ制御装置１は、ワーク情報および保持状態に基づいて、振動周波数を学習して推定したが、同様に、工具に関する工具情報と工具の保持状態に応じて振動周波数を学習して推定してもよい。例えば、工具の回転による切削を行う工作機械では、工作機械は工具を保持することになる。この場合、上述したワーク６と同様に上位コントローラ２からの指令にしたがってモータ制御装置１がモータ３を制御することにより工具が回転する。この場合、＜学習フェーズ＞では、工具情報および工具の保持状態を用いて振動周波数が推定され、工具情報および工具の保持状態と推定された振動周波数とを学習用データとして用いて学習済モデルが生成される。＜活用フェーズ＞では、学習済モデルに、工具情報と工具の保持状態とを入力することにより振動周波数の推論が行われる。工具情報は、例えば、工具の大きさおよび種類のうちの少なくとも１つを含む。以上のように、工具も保持対象物の一例である。工具情報およびワーク情報は、いずれも、保持対象物情報であり、保持対象物情報は、例えば保持対象物の固有振動数に関連する情報である。
【００５８】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００５９】
１  モータ制御装置、２  上位コントローラ、３  モータ、４  検出器、５  チャック装置、６  ワーク、７  切削工具、８  減速機、１１  位置制御部、１２  速度制御部、１３  フィルタ生成部、１４  電流制御部、１５  速度変換部、２０  制御システム、３０  工作機械、１３１  学習装置、１３２  周波数推定部、１３３  ノッチフィルタ、１３４  推論装置、２００  機械学習装置、１３１１，１３３１，１３１４  データ取得部、１３１２  モデル生成部、１３１３  学習済モデル記憶部、１３３２  推論部。
【要約】
保持対象物および保持状態のうち少なくとも一方が変化する場合であっても、制御対象の機械共振を抑制することができる制御システムを得ることを目的とする。制御システムは、保持対象物を保持可能な工作機械をフィードバック制御により制御するための指令にフィルタリング処理を行うノッチフィルタと、ワーク情報およびワークの保持状態を取得するデータ取得部（１３３１）と、ワーク情報および保持状態から保持対象物の振動周波数を推定するための学習済モデルに、データ取得部（１３３１）により取得されたワーク情報および保持状態を入力することにより保持対象物の振動周波数を推定する推論部（１３３２）と、を備え、ノッチフィルタは、遮断周波数を、推論部（１３３２）により推定された振動周波数に設定する。【図１】
0006818954.tif 000002
【図２】
0006818954.tif 000003
【図３】
0006818954.tif 000004
【図４】
0006818954.tif 000005
【図５】
0006818954.tif 000006
【図６】
0006818954.tif 000007
【図７】
0006818954.tif 000008
【図８】
0006818954.tif 000009
【図９】
0006818954.tif 000010