(57)【要約】  数値制御装置（８）は、工具の変位に関する物理量を計測する工具側変位計側部（９）と、ワークの変位に関する物理量を計測するワーク側変位計側部（１０）と、駆動信号を計測する駆動信号計側部（１２）と、工具とワークとの相対変位を算出する相対変位算出部（１３）と、駆動信号と相対変位との関係を表現する予測モデルに基づいて、駆動信号から相対変位予測値を算出する相対変位予測部（１５）と、駆動信号と、相対変位と、相対変位予測値とに基づいて、予測モデルを構成する予測モデルパラメータを生成するモデルパラメータ演算部（１４）と、予測モデルパラメータを用いて駆動部（１１）に対する位置指令を補正した補正後位置指令を指令として出力する指令値補正部（１６）と、を備え、モデルパラメータ演算部（１４）は、相対変位と、相対変位予測値との偏差を抑制するように予測モデルパラメータを変更する。
2020008587.tif 000002
【特許請求の範囲】
【請求項１】
モータを駆動する駆動部への指令により、工作機械における工具とワークとの相対変位を制御する数値制御装置において、
前記工具の変位に関する物理量を計測する工具側変位計側部と、
前記ワークの変位に関する物理量を計測するワーク側変位計側部と、
前記駆動部から前記モータに出力される駆動信号を計測する駆動信号計側部と、
前記工具の変位に関する物理量と前記ワークの変位に関する物理量とから、前記工具と前記ワークとの相対変位を算出する相対変位算出部と、
前記駆動信号と前記相対変位との関係を表現する予測モデルに基づいて、前記駆動信号から前記相対変位の予測値である相対変位予測値を算出する相対変位予測部と、
前記駆動信号と、前記相対変位算出部が生成する前記相対変位と、前記相対変位予測値とに基づいて、前記予測モデルを構成する予測モデルパラメータを生成するモデルパラメータ演算部と、
前記予測モデルパラメータを用いて前記駆動部に対する位置指令を補正した補正後位置指令を前記指令として出力する指令値補正部と、を備え、
前記モデルパラメータ演算部は、前記相対変位算出部が生成する前記相対変位と、前記相対変位予測値との偏差を抑制するように前記予測モデルパラメータを変更する
ことを特徴とする数値制御装置。
【請求項２】
前記モデルパラメータ演算部は、前記相対変位予測値の振動の振動周波数、振幅、減衰比、位相が、前記相対変位算出部が生成する前記相対変位の振動の振動周波数、振幅、減衰比、位相に一致するように予測モデルパラメータを変更する
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記相対変位算出部は、
前記工具の変位に関する物理量と前記ワークの変位に関する物理量とから、前記工具と前記ワークとのフィルタ処理前相対変位を求め、前記予測モデルパラメータを用いて前記フィルタ処理前相対変位にフィルタ処理を実行して相対変位を算出する
ことを特徴とする請求項１または２に記載の数値制御装置。
【請求項４】
前記工作機械のイナーシャに変化が生じたことを示すイナーシャ変更情報を出力するイナーシャ情報変更予測部をさらに備え、
前記モデルパラメータ演算部は、前記イナーシャ変更情報に基づいて、前記予測モデルパラメータの変更を行う
ことを特徴とする請求項１から３のいずれか１つに記載の数値制御装置。
【請求項５】
前記モデルパラメータ演算部は、
前記予測モデルパラメータを学習する機械学習装置と、
前記機械学習装置が学習した結果に基づいて、前記予測モデルパラメータを決定する意思決定部と、を備え、
前記機械学習装置は、
前記駆動信号、前記相対変位算出部が生成する前記相対変位、および前記相対変位予測値を状態変数として観測する状態観測部と、
前記状態変数に基づいて作成される訓練データセットに従って、前記予測モデルパラメータを学習する学習部と、を備える
ことを特徴とする請求項１から４のいずれか１つに記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工プログラムに従って工作機械を制御する数値制御装置に関する。
【背景技術】
【０００２】
工作機械で加工を実施する際、可動体の駆動力が原因で可動体と非可動体間の相対変位が振動的になり、加工精度および品位が悪化することがある。この問題に対し、特許文献１においては、数値制御装置が、相対変位を予測する事前に作成された予測モデルにより相対変位を予測し、予測された相対変位に基づいてフィードフォワード補正を行う技術が提案されている。この技術によれば、駆動方向と振動方向とが異なる場合でも対応することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６１８０６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、実際の加工では搭載ワーク重量の変化または工具とワークとの位置関係の変化といった工作機械のイナーシャの変化によって、工具とワークとの相対変位が変化する。特許文献１の記載の技術では、工作機械のイナーシャの変化が考慮されていないので、工作機械のイナーシャが変化したときに、数値制御装置からの指令に対して適切な補正をすることができないという問題があった。【０００５】
本発明は、上記に鑑みてなされたものであって、工作機械のイナーシャが変化したときに、工具とワークとの相対変位に振動が発生することを抑制することができる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、モータを駆動する駆動部への指令により、工作機械における工具とワークとの相対変位を制御する数値制御装置において、工具の変位に関する物理量を計測する工具側変位計側部と、ワークの変位に関する物理量を計測するワーク側変位計側部と、駆動部からモータに出力される駆動信号を計測する駆動信号計側部と、工具の変位に関する物理量とワークの変位に関する物理量とから、工具とワークとの相対変位を算出する相対変位算出部と、駆動信号と相対変位との関係を表現する予測モデルに基づいて、駆動信号から相対変位の予測値である相対変位予測値を算出する相対変位予測部と、を備える。さらに、本発明は、駆動信号と、相対変位算出部が生成する相対変位と、相対変位予測値とに基づいて、予測モデルを構成する予測モデルパラメータを生成するモデルパラメータ演算部と、予測モデルパラメータを用いて駆動部に対する位置指令を補正した補正後位置指令を指令として出力する指令値補正部と、を備える。モデルパラメータ演算部は、相対変位算出部が生成する相対変位と、相対変位予測値との偏差を抑制するように予測モデルパラメータを変更することを特徴とする。
【発明の効果】
【０００７】
本発明にかかる数値制御装置は、工作機械のイナーシャが変化したときに、工具とワークとの相対変位に振動が発生することを抑制することができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態１にかかる工作機械の構成の一例を模式的に示す図
【図２】実施の形態１にかかる数値制御装置の機能構成の一例を示すブロック図
【図３】実施の形態１にかかる加工運転前における予測モデルパラメータの生成処理手順の一例を示すフローチャート
【図４】実施の形態１にかかる粒子群最適化法を用いて最適解を算出する手順の一例を示すフローチャート
【図５】実施の形態１にかかる予測モデルパラメータの変更による効果を示す図
【図６】本発明の実施の形態２にかかる数値制御装置の機能構成の一例を示すブロック図
【図７】実施の形態２にかかるフィルタ処理部の機能構成の一例を示すブロック図
【図８】本発明の実施の形態３にかかる数値制御装置の機能構成の一例を示すブロック図
【図９】本発明の実施の形態４にかかる数値制御装置の機能構成の一例を示すブロック図
【図１０】実施の形態４にかかる機械学習装置の機能構成の一例を示すブロック図
【図１１】実施の形態４にかかる強化学習を用いた機械学習装置の動作フローを示すフローチャート
【図１２】実施の形態１から４にかかる数値制御装置の機能をコンピュータシステムで実現する場合のハードウェア構成を示す図
【発明を実施するための形態】
【０００９】
以下に、本発明の実施の形態にかかる数値制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
図１は、本発明の実施の形態１にかかる工作機械１の構成の一例を模式的に示す図である。図２は、実施の形態１にかかる数値制御装置８の機能構成の一例を示すブロック図である。なお、図１では、工作機械１に接続されている数値制御装置８および駆動部１１の図示は省略している。
【００１１】
工作機械１は、ベースとなるベッド２と、加工対象であるワーク３を保持して水平方向に移動可能であり且つ水平面内で回転可能なテーブル４と、工具５を保持して垂直方向に移動可能なヘッド６と、ベッド２に固定されてヘッド６を支持するコラム７と、を有する。
【００１２】
数値制御装置８は、工作機械１、および工作機械１のモータの位置および速度を制御して駆動する駆動部１１に接続されている。数値制御装置８は、ワーク３を加工するための加工プログラムに従って、駆動部１１に対して移動指令を出力する装置である。数値制御装置８からの指示に従って、工作機械１において、テーブル４が水平方向に移動もしくは水平面内で回転し、またはヘッド６が垂直方向に移動することにより、工具５によってワーク３が目標の形状に加工される。工作機械１において、テーブル４を移動させる際の駆動力が反力となって伝播することにより、ワーク３以外の構造体に振動が発生する。振動が発生する構造体としては、コラム７を挙げることができる。このような振動が発生すると、ワーク３を基準にした工具５の相対位置が振動する。
【００１３】
以下では、上記のような振動が発生した場合に、加工精度または加工面品位の悪化を抑制する数値制御装置８の動作について説明する。
【００１４】
駆動部１１は、数値制御装置８からの移動指令に従って、テーブル４またはヘッド６を移動させるための駆動信号を生成して、生成した駆動信号を工作機械１のモータに出力する。この駆動信号に従って、工作機械１に取り付けられているモータが駆動されることでテーブル４またはヘッド６が並進駆動または回転駆動させられる。その結果、工作機械１における工具５とワーク３との相対変位が制御される。なお、実施の形態１においては、テーブル４を移動させる場合について説明する。ここでの説明において、テーブル４のように駆動させられる物体を駆動対象物体とし、ヘッド６のように駆動させられない物体を駆動対象外物体とする。
【００１５】
数値制御装置８は、工具側変位計測部９と、ワーク側変位計測部１０と、駆動信号計測部１２と、相対変位算出部１３と、モデルパラメータ演算部１４と、相対変位予測部１５と、指令値補正部１６と、位置指令生成部１７と、を備える。
【００１６】
工具側変位計測部９は、ヘッド６または工具５に取り付けられているセンサから、工具５の変位に関する物理量を取得し、相対変位算出部１３に出力する。工具５の変位とは工具５の位置の変化量のことである。上記センサは、加速度センサ、速度センサ、変位センサといった、工具５の変位に関する物理量が取得可能なセンサであればよい。
【００１７】
ワーク側変位計測部１０は、ワーク３、テーブル４またはベッド２に取り付けられているセンサから、ワーク３の変位に関する物理量を取得し、相対変位算出部１３に出力する。ワーク３の変位とは、ワーク３の位置の変化量のことである。上記センサは、加速度センサ、速度センサ、変位センサといったワーク３の変位に関する物理量が取得可能なセンサであればよい。
【００１８】
駆動信号計測部１２は、駆動部１１から出力される駆動信号を取得し、相対変位予測部１５およびモデルパラメータ演算部１４に出力する。
【００１９】
相対変位算出部１３は、工具側変位計測部９から取得した工具５の変位に関する物理量と、ワーク側変位計測部１０から取得したワーク３の変位に関する物理量とから、工具５とワーク３との相対変位を算出する。工具５とワーク３との相対変位とは、ワーク３の位置を基準としたときの工具５の位置の変化量、または、工具５の位置を基準としたときのワーク３の位置の変化量、または、工具５の変位とワーク３の変位との差分のことである。生成手順としては、まず、工具側変位計測部９から取得した変位に関する物理量とワーク側変位計測部１０から取得した変位に関する物理量との差分を取って変位に関する差分情報を得る。そして、上記差分情報が加速度の次元のデータである場合は、当該データに対して時間に関する２階積分を行うことにより相対変位を算出する。また、上記差分情報が速度の次元のデータである場合は、当該データに対して時間に関する１階積分を行うことにより相対変位を算出する。また、上記差分情報が位置の次元のデータである場合は、当該データに対して積分操作を行わずに当該データを相対変位として生成する。相対変位算出部１３が生成した相対変位はモデルパラメータ演算部１４に出力される。
【００２０】
モデルパラメータ演算部１４は、相対変位算出部１３から取得する相対変位と、駆動信号計測部１２から取得する駆動信号と、後述する相対変位予測部１５から取得する相対変位予測値とに基づいて、予測モデルパラメータを演算して生成する。予測モデルとは、駆動信号を入力、ワーク３と工具５との間の３次元空間内での相対変位を出力とする相関関係を表す関係式で表現されるモデルである。予測モデルを構成するパラメータを予測モデルパラメータと呼ぶ。予測モデルパラメータを生成する方法は、加工運転前と加工運転中とで処理手順が異なるが詳細は後述する。モデルパラメータ演算部１４によって演算により求められた予測モデルパラメータは、相対変位予測部１５および指令値補正部１６に出力される。
【００２１】
相対変位予測部１５は、モデルパラメータ演算部１４から取得した予測モデルパラメータを使って予測モデルを構築する。相対変位予測部１５は、構築した予測モデルに基づいて、駆動信号計測部１２から取得した駆動信号から、相対変位の予測値である相対変位予測値を算出する。
【００２２】
位置指令生成部１７は、ワーク３を加工する加工プログラムを読み取り、駆動部１１に対する移動指令である位置指令を指令値補正部１６に出力する。
【００２３】
指令値補正部１６は、位置指令生成部１７から取得する位置指令に対して後述する方法で位置指令を補正して、相対変位が振動しないように駆動部１１に工作機械１を駆動させる補正後位置指令を求めて、駆動部１１に出力する。
【００２４】
モデルパラメータ演算部１４における、加工運転前および加工運転中における予測モデルパラメータの生成処理手順についてそれぞれ説明する。
【００２５】
まず、加工運転前における予測モデルパラメータの生成処理手順について説明する。加工運転前において、駆動部１１に工作機械１を加振するための駆動信号を出力させる。その時の駆動信号を駆動信号計測部１２からモデルパラメータ演算部１４は取得し、その時の相対変位を相対変位算出部１３からモデルパラメータ演算部１４は取得する。取得した駆動信号および相対変位から、モデルパラメータ演算部１４は、駆動信号と相対変位に発生する振動との関係を表現可能な状態空間モデルである予測モデルのパラメータ、すなわち予測モデルパラメータを導出する。ここで、有限要素法または動力学モデルに基づくシミュレーションにより得られたモデル、システム同定により得られたモデル、またはシステム同定により得られたモデルから低次元化等で近似したモデルを用いて、モデルパラメータ演算部１４は予測モデルのパラメータを導出する。ただし、予測モデルのパラメータを導出する方法は、これらの方法に限定されるものではない。ここでは、システム同定により得られたモデルから低次元化等で近似したモデルに基づいて状態空間表現の予測モデルのパラメータを導出する。
【００２６】
図３は、実施の形態１にかかる加工運転前における予測モデルパラメータの生成処理手順の一例を示すフローチャートである。まず、加工運転前における予測モデルパラメータの生成処理手順の前準備として、工具側およびワーク側の双方にセンサが取り付けられる。具体的には、工具側変位計測部９が工具側の変位情報を取得できるようにするために、ヘッド６または工具５にセンサが取り付けられる。さらに、ワーク側変位計測部１０がワーク側の変位情報を取得できるようにするために、ワーク３、テーブル４またはベッド２にセンサが取り付けられる。
【００２７】
以上の前準備が完了したら、ユーザが予測モデルパラメータの生成処理の開始を指示し、数値制御装置８の入力装置が、予測モデルパラメータの生成処理の開始の指示を受け付ける（ステップＳ１）。
【００２８】
次に、工作機械１を加振するための駆動信号を駆動部１１が出力する（ステップＳ２）。駆動信号は、実際に加工を行うときの信号とは異なる加振信号である。この加振信号は、工具５とワーク３の間に発生する相対変位の振動の振動周波数を含む周波数帯域を有する信号であればよく、疑似ランダム信号、サインスイープ信号等を使用する。
【００２９】
そして、モデルパラメータ演算部１４は、駆動信号計測部１２から加振中の駆動信号を取得し、相対変位算出部１３からそのときの相対変位を取得する（ステップＳ３）。
【００３０】
モデルパラメータ演算部１４は、取得した駆動信号および相対変位からシステム同定の手法を用いて予測モデルを作成する。モデルパラメータ演算部１４は、作成された予測モデルに対し低次元化等による近似を実施することにより、加工精度および品質に影響を及ぼす相対変位の振動を模擬した予測モデルを作成する（ステップＳ４）。予測モデルを作成するとは、具体的には、予測モデルを表現するパラメータである予測モデルパラメータを求めることである。
【００３１】
モデルパラメータ演算部１４は、ステップＳ４で作成した予測モデルを構成する予測モデルパラメータを相対変位予測部１５および指令値補正部１６に出力する（ステップＳ５）。ここでは、作成された予測モデルを状態空間表現したものを予測モデルパラメータとする。ただし、予測モデルパラメータは状態空間表現されたものに限定されるものではない。
【００３２】
指令値補正部１６は、位置指令生成部１７から位置指令を取得し、相対変位予測部１５から相対変位予測値を取得し、モデルパラメータ演算部１４から予測モデルパラメータを取得する。指令値補正部１６は、取得した位置指令、相対変位予測値および予測モデルパラメータに基づいて、位置指令に対して相対変位が振動しないように駆動部１１に工作機械１を駆動させる補正後位置指令を出力する。
【００３３】
指令値補正部１６における補正後位置指令の生成方法は、特許文献１に記載されているように以下の通りである。すなわち、指令値補正部１６は、モデルパラメータ演算部１４から取得した予測モデルパラメータを使って構築した予測モデルに基づいて駆動対象外物体の移動量である相対変位を予測し、駆動対象物体の移動量を予測する予め定められたモデルに基づいて駆動対象物体の移動量を予測する。そして、指令値補正部１６は、最適レギュレータの設計によりフィードバックゲインを算出し、駆動対象外物体および駆動対象物体の予測した移動量と、フィードバックゲインを含む情報を用いて、駆動対象外物体の移動量を抑制するように位置指令に対する補正量を算出する。指令値補正部１６は、算出した補正量で位置指令を補正した補正後位置指令を駆動部１１に対する指令として出力する。ただし、指令値補正部１６における補正の方法はこれに限定されるものではなく、予測モデルから相対変位の振動の周波数を特定し、その周波数の振動を抑制するようなフィルタを指令値補正部１６に設定しても良い。以上説明したような位置指令の補正によって、テーブル４を移動させたときの工具５とワーク３との相対変位に発生する振動を抑制することが可能になる。
【００３４】
しかし、ワーク３、治具、バイス、計測器、工具５等の重量または形状が大きく変化した場合、並進駆動または回転駆動の結果により工具５とワーク３との位置関係が大きく変化した場合、環境の変化または経年劣化等が生じた場合、工作機械１のイナーシャが変化する。工作機械１のイナーシャが変化すると、相対変位の振動特性が変化するため、上記した方法で作成した予測モデルでは相対変位を正しく予測することが困難になり、結果的に相対変位が振動的になる可能性がある。
【００３５】
そのため、工作機械１のイナーシャが変化した場合には、実施の形態１にかかる数値制御装置８は、予測モデルパラメータを変更する予測モデルパラメータ変更処理を実行する。なお、予測モデルパラメータ変更処理はモデルパラメータ演算部１４が加工運転中に行う。以下、予測モデルパラメータ変更処理について説明する。
【００３６】
加工運転中において、モデルパラメータ演算部１４は、駆動信号計測部１２から取得した駆動信号から加速終了時または減速終了時を特定する。そして、モデルパラメータ演算部１４は、加速終了時または減速終了時から任意の時間の相対変位を相対変位算出部１３から取得する。また、モデルパラメータ演算部１４は、相対変位予測部１５から相対変位予測値を取得する。そして、モデルパラメータ演算部１４は、取得した相対変位予測値と取得した相対変位との差分の絶対値を計算する。これを相対変位の予測誤差とする。
【００３７】
加工運転前の加振時において工作機械１のイナーシャが大きく変化していない場合は、補正後位置指令によって相対変位の振動が抑制されているため相対変位の予測誤差は０付近の非常に小さな値になっている。しかし、工作機械１のイナーシャが大きく変化している場合、相対変位の予測誤差は振動的になるため、その時の振動を予測する。具体的にはモデルパラメータ演算部１４は、相対変位の予測誤差が閾値より大きくなった場合、相対変位算出部１３から取得した相対変位の振動の振動周波数、振幅、減衰比および位相を最適化手法を用いて算出する。なお、上記閾値は、予め定めた適切な正の値に設定しておくことで必要なときのみ最適化を実施するようにする。また、加振時における予測モデルの精度が十分良ければ相対変位予測値は振動が十分抑えられていることになるので、ここでは相対変位予測値は０とみなし相対変位の振動を最適化手法で算出する。ここでは、最適化手法として公知の手法である粒子群最適化法（Particle  Swarm  Optimization：PSO)を用いて説明するが、相対変位の振動を求めるための最適化手法はこの方法に限定されるものではない。
【００３８】
粒子群最適化における最適化式は以下の数式（１）および数式（２）で表現される。
【００３９】
【数１】
2020008587.tif 000003
【００４０】
【数２】
2020008587.tif 000004
【００４１】
数式（１）および数式（２）における添え字ｉは粒子番号（粒子数）、添え字ｋは探索回数、ｗ、ｃ1、ｃ2はそれぞれの項における重み係数、ｒａｎｄ1i、ｒａｎｄ2iは０から１までの一様乱数、ｘikはｉ番目の粒子の現在の探索回数ｋでの位置ベクトル、ｖikはｉ番目の粒子の現在の探索回数ｋでの移動ベクトル、ｘik+１はｉ番目の粒子の次の探索回数ｋ＋１での位置ベクトル、ｖik+１はｉ番目の粒子の次の探索回数ｋ＋１での移動ベクトル、ｐｂｅｓｔiはｉ番目の粒子の過去の最良解、ｇｂｅｓｔは全粒子の過去の最良解をそれぞれ示す。
【００４２】
モデルパラメータ演算部１４が相対変位算出部１３から取得した相対変位の振動を以下の数式（３）のように推定できるとする。
【００４３】
【数３】
2020008587.tif 000005
【００４４】
数式（３）の中のｙは推定した相対変位、Ａは振幅、ｆは振動周波数、ζは減衰比、φは位相、ｔは加速終了または減速終了からの時間を表す。このとき、位置ベクトルｘik＝［Ａ，ｆ，ζ，φ]とすることで、数式（３）により推定した相対変位ｙと相対変位算出部１３から取得した相対変位との差の絶対値が最小になるような振幅、振動周波数、減衰比、位相を求める。
【００４５】
図４は、実施の形態１にかかる粒子群最適化法を用いて最適解を算出する手順の一例を示すフローチャートである。図４のフローチャートの各ステップはモデルパラメータ演算部１４によって実行される。
【００４６】
まず、モデルパラメータ演算部１４は粒子群最適化法における初期値を設定する（ステップＳ１０１）。具体的には、全粒子数となる粒子番号ｉの最大値、全探索回数となる探索回数ｋの最大値、重み係数ｗ、ｃ1、ｃ2、各粒子の位置ベクトルの初期値ｘi0、各粒子の移動ベクトルの初期値ｖi0、ｉ番目の粒子の過去の最良解の初期値ｐｂｅｓｔi0、全粒子の過去の最良解ｇｂｅｓｔの初期値が適切に設定される。
【００４７】
次に、探索回数ｋ＝０が設定される（ステップＳ１０２）。
【００４８】
次に、粒子番号ｉ＝１が設定される（ステップＳ１０３）。
【００４９】
次に、数式（１）に従って、次の探索回数ｋ＋１における移動ベクトルｖik+１を算出する（ステップＳ１０４）。
【００５０】
次に、数式（２）に従って、次の探索回数ｋ＋１における位置ベクトルｘik+１を算出する（ステップＳ１０５）。
【００５１】
次に、ステップＳ１０５で求めた位置ベクトルｘik+１を用いて数式（３）で推定した相対変位ｙをｙiとして算出する（ステップＳ１０６）。
【００５２】
次に、ステップＳ１０６で推定した相対変位ｙiと相対変位算出部１３から取得した相対変位ｙrefとの差の絶対値であるｉ番目の粒子の現在の評価値Ｙik+１＝｜ｙi−ｙref｜を算出する（ステップＳ１０７）。
【００５３】
ステップＳ１０７で算出したｉ番目の粒子の現在の評価値がｉ番目の粒子について過去に得られた評価値よりも小さいか否かが判定される（ステップＳ１０８）。現在の評価値が過去の評価値よりも小さいと判定された場合（ステップＳ１０８：Ｙｅｓ）、ステップＳ１０９に進み、それ以外の場合（ステップＳ１０８：Ｎｏ）、ステップＳ１１０に進む。
【００５４】
ステップＳ１０５で求めた位置ベクトルｘik+１をｉ番目の粒子の過去の最良解ｐｂｅｓｔiに設定することによりｉ番目の粒子の過去の最良解ｐｂｅｓｔiを更新する（ステップＳ１０９）。すなわち、ｐｂｅｓｔi＝ｘik+１とする。
【００５５】
ステップＳ１０７で算出したｉ番目の粒子の現在の評価値が全粒子について過去に得られた評価値よりも小さいか否かが判定される（ステップＳ１１０）。現在の評価値が全粒子の過去の評価値よりも小さいと判定された場合（ステップＳ１１０：Ｙｅｓ）、ステップＳ１１１に進み、それ以外の場合（ステップＳ１１０：Ｎｏ）、ステップＳ１１２に進む。
【００５６】
ｉ番目の粒子の過去の最良解ｐｂｅｓｔiを全粒子の過去の最良解ｇｂｅｓｔに設定することにより全粒子の過去の最良解ｇｂｅｓｔを更新する（ステップＳ１１１）。すなわち、ｇｂｅｓｔ＝ｐｂｅｓｔiとする。
【００５７】
ｉ＝ｉ＋１と粒子番号ｉを１増やして更新する（ステップＳ１１２）。
【００５８】
次に、粒子番号ｉがステップＳ１０１で設定した全粒子数より大きいか否かが判定される（ステップＳ１１３）。粒子番号ｉがステップＳ１０１で設定した全粒子数より大きいと判定された場合（ステップＳ１１３：Ｙｅｓ）、ステップＳ１１４に進み、それ以外の場合（ステップＳ１１３：Ｎｏ）、ステップＳ１０４に進む。
【００５９】
ｋ＝ｋ＋１と探索回数ｋを１増やして更新する（ステップＳ１１４）。
【００６０】
次に、探索回数ｋがステップＳ１０１で設定した全探索回数より大きいか否かが判定される（ステップＳ１１５）。探索回数ｋがステップＳ１０１で設定した全探索回数より大きいと判定された場合（ステップＳ１１５：Ｙｅｓ）、ステップＳ１１６に進み、それ以外の場合（ステップＳ１１５：Ｎｏ）、ステップＳ１０３に進む。
【００６１】
全粒子の過去の最良解ｇｂｅｓｔを最終的な最適解に決定する（ステップＳ１１６）。この最良解ｇｂｅｓｔが、相対変位算出部１３から取得した相対変位の振動の振動周波数、振幅、減衰比、位相に相当すると判断する。
【００６２】
モデルパラメータ演算部１４は、上記のようにして求めた振動周波数等を予測モデルの振動周波数等に対応する部分に当てはめることで予測モデルを変更する。
【００６３】
ここで、予測モデルを、具体的に、以下の数式（４）のように伝達関数で表現したとする。
【００６４】
【数４】
2020008587.tif 000006
【００６５】
数式（４）において、ｓはラプラス演算子、Ｎ（ｓ）はｓの多項式、λは予測モデルの固有値、λ〜はλの共役複素数を表す。一般的に固有値λの実部λrealおよび虚部λimagは、振動周波数ｆと減衰比ζを用いて以下の数式（５）および数式（６）のように表現できる。
【００６６】
【数５】
2020008587.tif 000007
【００６７】
【数６】
2020008587.tif 000008
【００６８】
そして、上述した最適化手法のステップＳ１１６で求められた振動周波数ｆおよび減衰比ζを数式（５）および数式（６）の振動周波数ｆおよび減衰比ζに代入することで固有値が変更され、モデルパラメータ演算部１４、相対変位算出部１３から取得した相対変位の振動にあわせたモデルに予測モデルを変更することができる。変更された予測モデルを状態空間表現することで予測モデルパラメータも変更できる。相対変位算出部１３は、工具側変位計測部９およびワーク側変位計測部１０から取得した変位に関する物理量から相対変位を算出しているので、工作機械１のイナーシャの変化に応じて予測モデルパラメータを変更することができる。上記のように予測モデルパラメータがモデルパラメータ演算部１４により変更されると、相対変位予測部１５が使用する予測モデルパラメータが変更されるので、相対変位予測部１５が予測モデルパラメータを用いて駆動信号に基づいて出力する相対変位予測値と、相対変位算出部１３が生成する相対変位との偏差が０となるように抑制される。具体的には、モデルパラメータ演算部１４は、相対変位予測部１５が予測する相対変位予測値の振動の振動周波数、振幅、減衰比、位相が、相対変位算出部１３が生成する相対変位の振動の振動周波数、振幅、減衰比、位相に一致するように予測モデルパラメータを変更する。
【００６９】
図５は、実施の形態１にかかる予測モデルパラメータの変更による効果を示す図である。図５は、図１に示されるような工作機械１において、水平方向にワーク３を移動させたときのワーク３を基準とした工具５の垂直方向の相対変位についてのシミュレーション結果の一例を示す図である。
【００７０】
図５において、横軸は時間を示し、縦軸は相対変位を示している。図５の破線で示した曲線Ｌ１は、加工運転中の予測モデルの変更を実行しないで加工運転前に構築した予測モデルのみを使用した場合の垂直方向の相対変位の時間変化を示している。図５に実線で示した曲線Ｌ２は、上記で説明したように加工運転中に予測モデルを変更した場合の垂直方向の相対変位の時間変化を示している。予測モデルには数式（４）を用いてシミュレーションを実施した。加工運転中の予測モデルの変更を実行しない場合、運転中に工作機械１のイナーシャが変化することで相対変位の振動の振動周波数が変化した結果、曲線Ｌ１が示すように、垂直方向の振動振幅が発生している。一方、加工運転中に予測モデルを変更した場合、曲線Ｌ２が示すように、垂直方向の振動振幅が十分に小さくなるとともに振動の終了時間が曲線Ｌ１と比べて短縮されていることが分かる。
【００７１】
以上説明したように、実施の形態１にかかる数値制御装置８によれば、加工運転中に測定した相対変位に基づいて予測モデルを最適化、すなわち予測モデルパラメータを最適化する。これにより、加工運転中の工作機械１のイナーシャが変化したときに、工具とワークとの相対変位に振動が発生することを抑制することが可能になる。
【００７２】
実施の形態２.
図６は、本発明の実施の形態２にかかる数値制御装置８１の機能構成の一例を示すブロック図である。数値制御装置８１の実施の形態１にかかる数値制御装置８との違いは、相対変位算出部１３が相対変位算出部１３１に変更されている点である。
【００７３】
相対変位算出部１３１は、相対変位演算部１８およびフィルタ処理部１９を備える。相対変位演算部１８は、実施の形態１にかかる相対変位算出部１３と同様の処理を行う。相対変位演算部１８から出力される工具とワークとの間の相対変位を実施の形態２ではフィルタ処理前相対変位と定義する。相対変位演算部１８から出力されたフィルタ処理前相対変位はフィルタ処理部１９に入力される。
【００７４】
図７は、実施の形態２にかかるフィルタ処理部１９の機能構成の一例を示すブロック図である。フィルタ処理部１９はフィルタパラメータ設定部２０およびバンドパスフィルタ２１を備える。フィルタパラメータ設定部２０は、モデルパラメータ演算部１４から取得した予測モデルパラメータから相対変位の振動の振動周波数を推定し、その振動周波数を中心とした通過域をバンドパスフィルタ２１に設定する。
【００７５】
具体的には、予測モデルパラメータから数式（４）で表現される予測モデルが構築できた場合、数式（５）および数式（６）から相対変位の振動周波数は簡単に推定できる。また、加工運転前において予測モデルパラメータがまだ求められていない場合は、フィルタ処理を実行しないで、フィルタ処理前相対変位をそのまま相対変位算出部１３１の出力とするために、フィルタパラメータ設定部２０は、バンドパスフィルタ２１の使用可否の設定も行う。バンドパスフィルタ２１は、フィルタパラメータ設定部２０の設定に基づいて、相対変位演算部１８から出力されたフィルタ処理前相対変位にフィルタ処理を実行して、ノイズに相当する成分を除去して相対変位として出力する。バンドパスフィルタ２１が出力した相対変位を相対変位算出部１３１が生成する相対変位とする。
【００７６】
なお、相対変位の振動の振動周波数が予めわかっている場合は、モデルパラメータ演算部１４からの予測モデルパラメータの入力に関係なく、フィルタパラメータ設定部２０は、バンドパスフィルタ２１の通過域を設定してもよい。また、バンドパスフィルタ２１における通過域の設定の方法については、予測される周波数のプラスマイナス数十Ｈｚを通過域にする、予測される周波数の半分および２倍の周波数領域も通過域に設定する等、相対変位の振動の周波数に近い値の周波数が通過できれば特に限定されるものではない。
【００７７】
実施の形態２にかかる数値制御装置８１によれば、上記のようにしてフィルタ処理部１９から不要な振動が除去されて出力された相対変位に対してモデルパラメータ演算部１４で最適化処理を実行することで予測モデルパラメータの変更精度が向上する。その結果、相対変位の振動に対する抑制能力をさらに向上させることができる。
【００７８】
実施の形態３．
図８は、本発明の実施の形態３にかかる数値制御装置８２の機能構成の一例を示すブロック図である。数値制御装置８２の実施の形態１にかかる数値制御装置８との違いは、数値制御装置８２は、イナーシャ変更情報予測部２２をさらに備えていることである。そして、イナーシャ変更情報予測部２２から出力されるイナーシャ変更情報に基づいてモデルパラメータ演算部１４における予測モデルパラメータの変更処理の可否を判断する点が実施の形態１と異なる。
【００７９】
イナーシャ変更情報予測部２２は、駆動部１１から出力されるワーク３のイナーシャ情報または位置指令生成部１７から出力される軸位置情報を取得し、工作機械１のイナーシャに変化が生じたことを示すイナーシャ変更情報をモデルパラメータ演算部１４に出力する。
【００８０】
ワーク３のイナーシャ情報とは、テーブル４に搭載されるワーク３の推定イナーシャである。ワーク３の推定イナーシャについては、モータの加減速時の駆動信号である電流と加速度とに基づいて駆動対象であるワーク３のイナーシャを推定できることが知られている。したがって、駆動部１１は、モータの加減速時の駆動信号である電流と加速度とに基づいてテーブル４に搭載されるワーク３の推定イナーシャを出力する。
【００８１】
また、位置指令生成部１７は、加工プログラムに基づいて工作機械１の各駆動軸の移動情報である位置指令を出力するため、当該位置指令を軸位置情報として出力する。
【００８２】
イナーシャ変更情報予測部２２は、取得した推定イナーシャを記憶しておいて、推定イナーシャの変化が大きくなったと判断した場合、工作機械１のイナーシャが変化したとして、イナーシャ変更情報を出力する。なお、判断する際に必要となる推定イナーシャの変化量に対するしきい値は予め適切に設定しておく。
【００８３】
また、イナーシャ変更情報予測部２２は、取得した軸位置情報を記憶しておいて、軸位置情報が大きく変化したと判断した場合、工作機械１のイナーシャが変化したとして、イナーシャ変更情報を出力する。なお、判断する際に必要となる位置指令の変化量に対するしきい値は予め適切に設定しておく。
【００８４】
モデルパラメータ演算部１４は、イナーシャ変更情報予測部２２から取得したイナーシャ変更情報に基づいて、予測モデルパラメータ変更処理の可否判断を行う。具体的には、テーブル４に重量の大きなワーク３が搭載された場合、工作機械１のイナーシャは大きく変化する。ここで、イナーシャ変更情報をオンまたはオフの２値情報とする。イナーシャ変更情報予測部２２は、テーブル４を駆動するモータの加減速後、駆動部１１から取得する推定イナーシャに基づいて、工作機械１のイナーシャが大きく変化したことを検知し、イナーシャ変更情報をオンにして出力する。ここで、イナーシャ変更情報予測部２２は、工作機械１のイナーシャが大きく変化したことを検知したときに取得した推定イナーシャを記憶しておく。モデルパラメータ演算部１４は、イナーシャ変更情報がオンになった場合、予測モデルパラメータの変更処理を実施し、予測モデルパラメータの変更処理の実施後に、イナーシャ変更情報予測部２２はイナーシャ変更情報をオフにする。
【００８５】
予測モデルパラメータの変更処理は、工作機械１のイナーシャが大きく変化したときに必要となる処理である。実施の形態３にかかる数値制御装置８２によれば、必要な場合のみ変更処理を行い、無駄な予測モデルパラメータの変更をしないようにすることができるので、無駄な演算コストを省くことができる。
【００８６】
実施の形態４．
図９は、本発明の実施の形態４にかかる数値制御装置８３の機能構成の一例を示すブロック図である。数値制御装置８３の実施の形態１にかかる数値制御装置８との違いは、モデルパラメータ演算部１４がモデルパラメータ演算部１４１に変更されている点である。
【００８７】
モデルパラメータ演算部１４１は、予測モデルパラメータを学習する機械学習装置１００および意思決定部１０５を備える。機械学習装置１００は、状態観測部１０１および学習部１０２を備える。
【００８８】
状態観測部１０１は、相対変位算出部１３から取得する相対変位、相対変位予測部１５から取得する相対変位予測値、および駆動信号計測部１２から取得する駆動信号を状態変数として観測する。
【００８９】
学習部１０２は、相対変位、相対変位予測値、駆動信号の状態変数に基づいて作成される訓練データセットに従って、予測モデルパラメータを学習する。
【００９０】
学習部１０２が用いる学習アルゴリズムはどのようなものを用いてもよい。一例として、強化学習（Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  Ｌｅａｒｎｉｎｇ）を適用した場合について説明する。強化学習は、ある環境内におけるエージェント（行動主体）が、現在の状態を観測し、取るべき行動を決定する、というものである。エージェントは行動を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）やＴＤ学習（ＴＤ−ｌｅａｒｎｉｎｇ）が知られている。例えば、Ｑ学習の場合、行動価値関数Ｑ（ｓ，ａ）の一般的な更新式（行動価値テーブル）は以下の数式（７）で表される。
【００９１】
【数７】
2020008587.tif 000009
【００９２】
数式（７）において、ｓtは時刻ｔにおける環境を表し、ａtは時刻ｔにおける行動を表す。行動ａtにより、環境はｓt+1に変わる。ｒt+1はその環境の変化によってもらえる報酬を表し、γは割引率を表し、αは学習係数を表す。Ｑ学習を適用した場合、予測モデルパラメータが行動ａtとなる。
【００９３】
数式（７）で表される更新式は、時刻ｔ＋１における最良の行動ａの行動価値が、時刻ｔにおいて実行された行動ａの行動価値Ｑよりも大きければ、行動価値Ｑを大きくし、逆の場合は、行動価値Ｑを小さくする。換言すれば、時刻ｔにおける行動ａの行動価値Ｑを、時刻ｔ＋１における最良の行動価値に近づけるように、行動価値関数Ｑ（ｓ，ａ）を更新する。それにより、或る環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播していくようになる。
【００９４】
図１０は、実施の形態４にかかる機械学習装置１００の機能構成の一例を示すブロック図である。学習部１０２は、報酬計算部１０３と、関数更新部１０４と、をさらに備えている。
【００９５】
報酬計算部１０３は、状態変数に基づいて報酬を計算する。
【００９６】
ここで、相対変位予測部１５から出力される相対変位予測値と相対変位算出部１３から出力される相対変位との差分の絶対値が相対変位の予測誤差である。相対変位の予測誤差は、公知の方法に従って抽出される。具体的には、重量の大きなワーク３を搭載してテーブル４を駆動する軸のモータを加減速駆動した後の相対変位と相対変位予測値とを測定することで相対変位の予測誤差を求めることができる。
【００９７】
報酬計算部１０３は、相対変位の予測誤差に基づいて、報酬ｒを計算する。具体的には、予測モデルパラメータを変更した結果、相対変位予測値の振動周波数と相対変位の周波数との差の絶対値が小さくなる場合には、報酬計算部１０３は、報酬ｒを増大させる。報酬ｒを増大させるために、「１」の報酬を与える。なお、報酬の値は「１」に限らない。
【００９８】
また、予測モデルパラメータを変更した結果、相対変位予測値の振幅と相対変位の振幅との差の絶対値が大きくなる場合には、報酬計算部１０３は、報酬ｒを低減する。報酬ｒを低減するために、「−１」の報酬を与える。なお、報酬の値は「−１」に限らない。
【００９９】
関数更新部１０４は、報酬計算部１０３によって計算される報酬に従って、予測モデルパラメータを決定するための関数を更新する。関数の更新は、訓練データセットに従って、具体的には、行動価値テーブルを更新することによって行うことができる。行動価値テーブルは、任意の行動と、その行動価値とを関連付けてテーブルの形式で記憶したデータセットである。例えばＱ学習の場合、数式（７）で表される行動価値関数Ｑ（ｓt，ａt）を予測モデルパラメータのための関数として用いる。
【０１００】
図１１は、実施の形態４にかかる強化学習を用いた機械学習装置１００の動作フローを示すフローチャートである。図１１のフローチャートを参照して、行動価値関数Ｑ（ｓ，ａ）を更新する強化学習方法について説明する。
【０１０１】
まず、状態観測部１０１が、駆動信号計測部１２から取得した駆動信号に基づいて、加速終了時または減速終了時を特定する（ステップＳ１１）。
【０１０２】
状態観測部１０１は、加速終了時または減速終了時から任意の期間の状態変数を取得する（ステップＳ１２）。状態変数は、相対変位、駆動信号、相対変位予測値をそれぞれ含んでいる。なお、加速終了後はモータが駆動しているため、相対変位が余計なノイズを含んでいる可能性があるので、減速終了後の停止状態のときの相対変位を状態変数として利用するのが望ましい。
【０１０３】
報酬計算部１０３は、相対変位予測値と相対変位との差の絶対値である相対変位の予測誤差を算出する（ステップＳ１３）。
【０１０４】
報酬計算部１０３は、相対変位の予測誤差に基づいて、報酬ｒを算出する（ステップＳ１４）。
【０１０５】
関数更新部１０４は、ステップＳ１４で求められた報酬ｒに従って、行動価値関数Ｑ（ｓ，ａ）を数式（７）に従って更新する（ステップＳ１５）。
【０１０６】
関数更新部１０４は、ステップＳ１５において更新が行われなくなり、行動価値関数Ｑが収束したか否かを判定する（ステップＳ１６）。行動価値関数Ｑが収束していないと判定された場合（ステップＳ１６：Ｎｏ）、ステップＳ１１に戻る。行動価値関数Ｑが収束したと判定された場合（ステップＳ１６：Ｙｅｓ）、学習部１０２による学習は終了する。なお、ステップＳ１６を設けずにステップＳ１５からただちにステップＳ１１に戻るようにして学習を継続させてもかまわない。
【０１０７】
意思決定部１０５は、学習部１０２が学習した結果、つまり更新された行動価値関数Ｑ（ｓ，ａ）に基づいて報酬が最も多く得られる予測モデルパラメータを選択する。そして、指令値補正部１６は、意思決定部１０５から予測モデルパラメータを取得して位置指令を補正することで工作機械１のイナーシャの変化に応じて相対変位に発生する振動を抑制することができる。
【０１０８】
なお、実施の形態４においては、学習部１０２が強化学習を利用して機械学習する場合について説明した。しかし、学習部１０２は、他の公知の方法、ニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンといった学習アルゴリズムに従って機械学習を実行してもよい。
【０１０９】
実施の形態１から４にかかる数値制御装置８，８１〜８３は、パーソナルコンピュータまたは汎用コンピュータといったコンピュータシステムにより実現される。図１２は、実施の形態１から４にかかる数値制御装置８，８１〜８３の機能をコンピュータシステムで実現する場合のハードウェア構成を示す図である。数値制御装置８，８１〜８３の機能をコンピュータシステムで実現する場合、数値制御装置８，８１〜８３の機能は、図１２に示すようにＣＰＵ（Central  Processing  Unit）２０１、メモリ２０２、記憶装置２０３、表示装置２０４および入力装置２０５により実現される。機械学習装置１００が実行する機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアは、プログラムとして記述されて記憶装置２０３に格納される。ＣＰＵ２０１は、記憶装置２０３に記憶されたソフトウェアまたはファームウェアをメモリ２０２に読み出して実行することにより、数値制御装置８，８１〜８３の機能を実現する。すなわち、コンピュータシステムは、数値制御装置８，８１〜８３の機能がＣＰＵ２０１により実行されるときに、実施の形態１から４にかかる数値制御装置８，８１〜８３の動作を実施するステップが結果的に実行されることになるプログラムを格納するための記憶装置２０３を備える。また、これらのプログラムは、数値制御装置８，８１〜８３の機能が実現する処理をコンピュータに実行させるものであるともいえる。メモリ２０２は、ＲＡＭ（Random  Access  Memory）といった揮発性の記憶領域が該当する。記憶装置２０３は、ＲＯＭ（Read  Only  Memory）、フラッシュメモリといった不揮発性または揮発性の半導体メモリ、磁気ディスクが該当する。表示装置２０４の具体例は、モニタ、ディスプレイである。入力装置２０５の具体例は、キーボード、マウス、タッチパネルである。
【０１１０】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【０１１１】
１  工作機械、２  ベッド、３  ワーク、４  テーブル、５  工具、６  ヘッド、７  コラム、８，８１〜８３  数値制御装置、９  工具側変位計測部、１０  ワーク側変位計測部、１１  駆動部、１２  駆動信号計測部、１３，１３１  相対変位算出部、１４，１４１  モデルパラメータ演算部、１５  相対変位予測部、１６  指令値補正部、１７  位置指令生成部、１８  相対変位演算部、１９  フィルタ処理部、２０  フィルタパラメータ設定部、２１  バンドパスフィルタ、２２  イナーシャ変更情報予測部、１００  機械学習装置、１０１  状態観測部、１０２  学習部、１０３  報酬計算部、１０４  関数更新部、１０５  意思決定部、２０１  ＣＰＵ、２０２  メモリ、２０３  記憶装置、２０４  表示装置、２０５  入力装置。
【図１】
2020008587.tif 000010
【図２】
2020008587.tif 000011
【図３】
2020008587.tif 000012
【図４】
2020008587.tif 000013
【図５】
2020008587.tif 000014
【図６】
2020008587.tif 000015
【図７】
2020008587.tif 000016
【図８】
2020008587.tif 000017
【図９】
2020008587.tif 000018
【図１０】
2020008587.tif 000019
【図１１】
2020008587.tif 000020
【図１２】
2020008587.tif 000021
【国際調査報告】
2020008587.tif 000022
2020008587.tif 000023
2020008587.tif 000024
2020008587.tif 000025