(57)【要約】【課題】各軸の制御における最適な加減速を生成する工作機械を提供すること。【解決手段】本発明の工作機械１は、工作機械１の動作を評価する動作評価部３と、工作機械１の軸の移動量を機械学習する機械学習器２０とを備え、機械学習器２０は、工作機械１の状態データとを取得する状態観測部２１と、状態データに基づいて報酬を計算する報酬計算部２４と、軸の移動量の決定を機械学習する移動量調整学習部２５と、機械学習結果に基づいて軸の移動量を決定して出力する移動量出力部２７と、を有し、移動量調整学習部２５は、決定された前記軸の移動量と、状態観測部２１により取得された状態データと、報酬計算部２４が計算した報酬と、に基づいて軸の移動量の決定を機械学習する。【選択図】図５
2017068325.tif 000002
【特許請求の範囲】
【請求項１】
プログラムにより指令される工具の指令経路に基づいて少なくとも１つの軸を駆動してワークの加工を行う工作機械において、
前記工作機械の動作を評価して評価データを出力する動作評価部と、
前記軸の移動量の決定を機械学習する機械学習器と、
を備え、
前記機械学習器は、
前記工作機械の少なくとも前記軸の軸位置を含むデータと、前記動作評価部から出力された評価データと、を状態データとして取得する状態観測部と、
報酬条件を設定する報酬条件設定部と、
前記状態観測部が取得した前記状態データに基づいて報酬を計算する報酬計算部と、
前記軸の移動量の決定を機械学習する移動量調整学習部と、
前記移動量調整学習部による前記軸の移動量の決定の機械学習結果と、前記状態データとに基づいて、前記軸の移動量を前記工具の加速度が最適になるように決定して出力する移動量出力部と、
を有し、
前記移動量調整学習部は、決定された前記軸の移動量と、出力された前記軸の移動量に基づいた前記工作機械の動作後における前記状態観測部により取得された前記状態データと、前記報酬計算部が計算した前記報酬と、に基づいて前記軸の移動量の決定を機械学習する、
ことを特徴とする工作機械。
【請求項２】
前記報酬計算部は、前記軸の合成速度が速い速度で進んだときにプラスの報酬を計算し、前記工具が前記指令経路を逸脱するとき、前記工具の速度のＮ階時間微分要素（Ｎは任意の自然数）の変化が大きいとき、前記工作機械に衝撃が発生したときにマイナスの報酬を計算する、
ことを特徴とする請求項１に記載の工作機械。
【請求項３】
少なくとも１つの他の工作機械と接続されており、
前記他の工作機械との間で機械学習の結果を相互に交換または共有する、
ことを特徴とする請求項１または２に記載の工作機械。
【請求項４】
前記移動量調整学習部は、前記報酬が最大となるように、調整された前記軸の移動量と、前記状態観測部により取得された前記状態データを引数で表現した評価関数を用いて機械学習する、
ことを特徴とする請求項３に記載の工作機械。
【請求項５】
プログラムにより指令される工具の指令経路に基づいて少なくとも１つの軸を駆動するワークの加工を行う工作機械をシミュレーションするシミュレーション装置において、
前記工作機械のシミュレーション動作を評価して評価データを出力する動作評価部と、
前記軸の移動量の決定を機械学習する機械学習器と、
を備え、
前記機械学習器は、
前記工作機械の少なくとも前記軸の軸位置を含むシミュレーションされたデータと、前記動作評価部から出力された評価データと、を状態データとして取得する状態観測部と、
前記状態観測部が取得した前記状態データに基づいて報酬を計算する報酬計算部と、
前記軸の移動量の決定を機械学習する移動量調整学習部と、
前記移動量調整学習部による前記軸の移動量の決定の機械学習結果と、前記状態データとに基づいて、前記軸の移動量を前記工具の加速度が最適になるように決定して出力する移動量出力部と、
を有し、
前記移動量調整学習部は、決定された前記軸の移動量と、出力された前記軸の移動量に基づいた前記工作機械のシミュレーション動作後における前記状態観測部により取得された前記状態データと、前記報酬計算部が計算した前記報酬と、に基づいて前記軸の移動量の決定を機械学習する、
ことを特徴とするシミュレーション装置。
【請求項６】
工作機械が備える少なくとも１つの軸の移動量の調整を機械学習した機械学習器であって、
前記軸の移動量の決定の機械学習結果を記憶する学習結果記憶部と、
前記工作機械の少なくとも前記軸の軸位置を含む状態データを取得する状態観測部と、
前記学習結果記憶部に記憶された前記機械学習結果と、前記状態データとに基づいて、前記軸の移動量を前記工作機械の工具の加速度が最適になるように決定して出力する移動量出力部と、
を備えたことを特徴とする機械学習器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械に関し、特に各軸の制御における最適な加減速を生成する工作機械に関する。
【背景技術】
【０００２】
従来、加工プログラムを作成し、該加工プログラムに基づいて工作機械を制御して、部品や金型などの加工が行われている。加工を行う際の加工速度は加工プログラム内で軸の移動速度として指令するが、これは工具と加工物の相対移動（工具移動）の最大速度であり、実際に工作機械に対しては、加工開始時やコーナ部、曲線部分などにおいて、各軸の加減速時定数に従い軸の移動速度を変動させた移動データが出力されていた。また、加工物には許容誤差及び目標加工時間があるが、これは工作機械の操作者が加工物の加工面品位を確認しながら、加減速時定数を変更したり、プログラム内で指令する速度を変更したりするなどの方法で調整していた。なお、本明細書においては、指令位置と実際の加工物の形状誤差を意味する加工精度、加工物の形状変化が滑らかである（加工面の傷や筋目が目立たない）度合いを加工面品位とする。
【０００３】
このような加工における加減速時定数や速度などのパラメータ調整に関連する従来技術として、特許文献１には、加工において調整可能な複数種類のパラメータをパラメータセットとして用意して利用するパラメータの調整手法が開示されている。また、特許文献２には、加工パターンを用いて、加工精度を考慮しながら加工時間を短縮する加工経路情報の生成と加工条件の設定を行う加工条件設定方法が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−０５８２１８号公報
【特許文献２】特開２００６−０４３８３６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一般に、加工において工具を制御する際の加減速度を全体的に低く設定することでコーナ部、曲線部における加工面品位を向上させることができるが、全体的に加工速度が低下してしまう。一方で、加工速度を向上させるためには加減速度を全体的に高く設定すればよいが、この様な設定によりコーナ部、曲線部分近傍において工具の急激な減速および加速が行われた場合、機械に振動が発生して加工面品位の悪化を招く（加工面に傷をつける）恐れがある。
【０００６】
図８は、加工プログラムにより指令される工具の経路におけるコーナ部での急な加減速が発生する例を示している。図８（ａ）に示す旋削加工や図８（ｂ）に示す穴あけ加工などのさまざまな加工において、工具の速度が急激に変化すると、その衝撃で機械に振動が発生し、コーナ部や曲線部の加工面品位の悪化の原因となる。このような事象が発生しないように軸移動に関連する各要素を考慮しながら、加工面品位の向上と加工時間の短縮とのバランスを取りながら加減速度の調整を行うことは、操作者に大きな労力がかかるという課題があり、また、必ずしも加減速度を最適に調整できるとは限らないという課題があった。
このような課題に対して、特許文献１，２に開示される技術は用意したパラメータセットや加工パターンに適合する状況にしか対応できず、さまざまな状況に柔軟に対応できない。
【０００７】
そこで本発明の目的は、各軸の制御における最適な加減速を生成する工作機械を提供することである。
【課題を解決するための手段】
【０００８】
本発明では、ある時間における工作機械の軸の位置から、次の瞬間における軸の位置までの変化量を得る。これは数値制御装置から出力される指令パルスと呼ばれるデータである。従来は、工作機械メーカの技術者が各軸加減速時定数として設定するなどの方法で調整を行なっていたため、最適な変化量が得られていない場合があった。軸の移動量を最適にすることにより、加工一回当たりの時間を大きく変化させずにより加速度変化の少ない工具移動を実現し、これにより高品位な加工を実現する。
【０００９】
そして、本願の請求項１に係る発明は、プログラムにより指令される工具の指令経路に基づいて少なくとも１つの軸を駆動してワークの加工を行う工作機械において、前記工作機械の動作を評価して評価データを出力する動作評価部と、前記軸の移動量の決定を機械学習する機械学習器と、を備え、前記機械学習器は、前記工作機械の少なくとも前記軸の軸位置を含むデータと、前記動作評価部から出力された評価データと、を状態データとして取得する状態観測部と、報酬条件を設定する報酬条件設定部と、前記状態観測部が取得した前記状態データに基づいて報酬を計算する報酬計算部と、前記軸の移動量の決定を機械学習する移動量調整学習部と、前記移動量調整学習部による前記軸の移動量の決定の機械学習結果と、前記状態データとに基づいて、前記軸の移動量を前記工具の加速度が最適になるように決定して出力する移動量出力部と、を有し、前記移動量調整学習部は、決定された前記軸の移動量と、出力された前記軸の移動量に基づいた前記工作機械の動作後における前記状態観測部により取得された前記状態データと、前記報酬計算部が計算した前記報酬と、に基づいて前記軸の移動量の決定を機械学習する、ことを特徴とする工作機械である。
【００１０】
本願の請求項２に係る発明は、前記報酬計算部は、前記軸の合成速度が速い速度で進んだときにプラスの報酬を計算し、前記工具が前記指令経路を逸脱するとき、前記工具の速度のＮ階時間微分要素（Ｎは任意の自然数）の変化が大きいとき、前記工作機械に衝撃が発生したときにマイナスの報酬を計算する、ことを特徴とする請求項１に記載の工作機械である。
【００１１】
本願の請求項３に係る発明は、少なくとも１つの他の工作機械と接続されており、前記他の工作機械との間で機械学習の結果を相互に交換または共有する、ことを特徴とする請求項１または２に記載の工作機械である。
【００１２】
本願の請求項４に係る発明は、前記移動量調整学習部は、前記報酬が最大となるように、調整された前記軸の移動量と、前記状態観測部により取得された前記状態データを引数で表現した評価関数を用いて機械学習する、ことを特徴とする請求項３に記載の工作機械である。
【００１３】
本願の請求項５に係る発明は、プログラムにより指令される工具の指令経路に基づいて少なくとも１つの軸を駆動するワークの加工を行う工作機械をシミュレーションするシミュレーション装置において、前記工作機械のシミュレーション動作を評価して評価データを出力する動作評価部と、前記軸の移動量の決定を機械学習する機械学習器と、を備え、前記機械学習器は、前記工作機械の少なくとも前記軸の軸位置を含むシミュレーションされたデータと、前記動作評価部から出力された評価データと、を状態データとして取得する状態観測部と、前記状態観測部が取得した前記状態データに基づいて報酬を計算する報酬計算部と、前記軸の移動量の決定を機械学習する移動量調整学習部と、前記移動量調整学習部による前記軸の移動量の決定の機械学習結果と、前記状態データとに基づいて、前記軸の移動量を前記工具の加速度が最適になるように決定して出力する移動量出力部と、を有し、前記移動量調整学習部は、決定された前記軸の移動量と、出力された前記軸の移動量に基づいた前記工作機械のシミュレーション動作後における前記状態観測部により取得された前記状態データと、前記報酬計算部が計算した前記報酬と、に基づいて前記軸の移動量の決定を機械学習する、ことを特徴とするシミュレーション装置である。
【００１４】
本願の請求項６に係る発明は、工作機械が備える少なくとも１つの軸の移動量の調整を機械学習した機械学習器であって、前記軸の移動量の決定の機械学習結果を記憶する学習結果記憶部と、前記工作機械の少なくとも前記軸の軸位置を含む状態データを取得する状態観測部と、前記学習結果記憶部に記憶された前記機械学習結果と、前記状態データとに基づいて、前記軸の移動量を前記工作機械の工具の加速度が最適になるように決定して出力する移動量出力部と、を備えたことを特徴とする機械学習器である。
【発明の効果】
【００１５】
本発明において、機械学習を最適な各軸の移動量の決定に取り入れることで各軸を最適な加減速で制御し、より短時間で加工面品位を維持したワークの加工を実現することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明により工作機械の加減速度が最適化された例を示す図である。
【図２】強化学習アルゴリズムの基本的な概念を説明する図である。
【図３】本発明の実施形態における工作機械の機械学習に関するイメージ図である。
【図４】本発明の実施形態において扱う各データについて説明する図である。
【図５】本発明の実施形態における工作機械の機能ブロック図である。
【図６】本発明の実施形態における機械学習の流れを示すフローチャートである。
【図７】本発明の他の実施形態におけるシミュレーション装置の機能ブロック図である。
【図８】ワークの加工における加工面品位の低下について説明する図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態を図面と共に説明する。
本発明では、ワークを加工する工作機械に対して人工知能となる機械学習器を導入し、加工プログラムに基づくワークの加工における工作機械の各軸の加減速度調整を目的とした移動量の決定に関する機械学習を行うことで、図１に示すように、ワークの加工における各時点での工作機械の各軸の加減速度（移動量の変化）が最適なものになるように調整を行うようにする。各軸の加減速度の調整では、より速い工具移動と、工具経路をなるべく逸脱しないこと、および衝撃がなるべく発生しないことを目的とし、より短時間で加工面品位を維持したワークの加工を実現する。
以下では、本発明で導入する機械学習について簡単に説明する。
【００１８】
＜１．機械学習＞
一般に、機械学習には教師あり学習や教師なし学習など、その目的や条件によって様々なアルゴリズムに分類されている。本発明では加工プログラムに基づくワークの加工における工作機械の各軸の加減速度の調整を目的とした移動量の決定の学習を目的としており、出力される各軸の移動量に基づく工作機械の状態に対してどのような行動（各軸の移動量の決定）をすることが正しいのかを明示的に示すことが困難であることを考慮して、報酬を与えるだけで機械学習器が目標到達のための行動を自動的に学習する強化学習のアルゴリズムを採用する。
【００１９】
図２は、強化学習アルゴリズムの基本的な概念を説明する図である。強化学習においては、学習する主体となるエージェント（機械学習器）と、制御対象となる環境（制御対象システム）とのやりとりにより、エージェント学習と行動が進められる。より具体的には、（１）エージェントはある時点における環境の状態ｓtを観測し、（２）観測結果と過去の学習に基づいて自分が取れる行動ａtを選択して行動ａtを実行し、（３）行動ａtが実行されることで環境の状態ｓtが次の状態ｓt+1へと変化し、（４）行動ａtの結果としての状態の変化に基づいてエージェントが報酬ｒt+1を受け取り、（５）エージェントが状態ｓt、行動ａt、報酬ｒt+1および過去の学習の結果に基づいて学習を進める、といったやりとりがエージェントと環境の間で行われる。
【００２０】
上記した（５）における学習では、エ−ジェントは将来取得できる報酬の量を判断するための基準となる情報として、観測された状態ｓt，行動ａt，報酬ｒt+1のマッピングを獲得する。例えば、各時刻において取り得る状態の個数がｍ、取り得る行動の個数がｎとすると、行動を繰り返すことによって状態ｓtと行動ａtの組に対する報酬ｒt+1を記憶するｍ×ｎの２次元配列が得られる。
そして、上記得られたマッピングに基づいて現在の状態や行動がどのくらい良いのかを示す関数である価値関数（評価関数）を用い、行動を繰り返す中で価値関数（評価関数）を更新していくことにより状態に対する最適な行動を学習していく。
【００２１】
状態価値関数は、ある状態ｓtがどのくらい良い状態であるのかを示す価値関数である。状態価値関数は、状態を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態の価値などに基づいて更新される。状態価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、強化学習アルゴリズムの１つであるＴＤ学習においては、状態価値関数は以下の数１式で定義される。なお、数１式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２２】
【数１】
2017068325.tif 000003
【００２３】
また、行動価値関数は、ある状態ｓtにおいて行動ａtがどのくらい良い行動であるのかを示す価値関数である。行動価値関数は、状態と行動を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態における行動の価値などに基づいて更新される。行動価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、代表的な強化学習アルゴリズムの１つであるＱ学習においては、行動価値関数は以下の数２式で定義される。なお、数２式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２４】
【数２】
2017068325.tif 000004
【００２５】
なお、学習結果としての価値関数（評価関数）を記憶する方法としては、近似関数を用いる方法や、配列を用いる方法以外にも、例えば状態ｓが多くの状態を取るような場合には状態ｓt、行動ａtを入力として価値（評価）を出力する多値出力のＳＶＭやニューラルネットワーク等の教師あり学習器を用いる方法などがある。
【００２６】
そして、上記した（２）における行動の選択においては、過去の学習によって作成された価値関数（評価関数）を用いて現在の状態ｓtにおいて将来にわたっての報酬（ｒt+1＋ｒt+2＋…）が最大となる行動ａt（状態価値関数を用いている場合には、もっとも価値の高い状態へ移るための行動、行動価値関数を用いている場合には該状態において最も価値の高い行動）を選択する。なお、エージェントの学習中には学習の進展を目的として（２）における行動の選択において一定の確率でランダムな行動を選択することもある（εグリーディ法）。
【００２７】
このように、（１）〜（５）を繰り返すことで学習が進められる。ある環境において学習が終了した後に、新たな環境におかれた場合でも追加の学習を行うことでその環境に適応するように学習を進めることができる。したがって、本発明のように加工プログラムに基づくワークの加工における各時点での各軸の加減速度調整を目的とした移動量の決定に適用することで、新しい工作機械の制御に適用したりした場合であっても、過去のワークの加工における各時点での各軸の加減速度の調整を目的とした移動量の決定の学習に基づいて、新しい加工プログラムを新たな環境として追加の学習をすることで、該加工プログラムに基づくワークの加工における各時点での各軸の加減速度の調整を目的とした移動量の決定の更なる学習を短時間で行うことが可能となる。
【００２８】
また、強化学習においては、複数のエージェントをネットワークなどを介して接続したシステムとし、エージェント間で状態ｓ、行動ａ、報酬ｒなどの情報を共有してそれぞれの学習に利用することで、それぞれのエージェントが他のエージェントの環境も考慮して学習をする分散強化学習を行うことで効率的な学習を行うことができる。本発明においても、複数の環境（制御対象となる工作機械）を制御する複数のエージェント（機械学習器）がネットワークなどを介して接続された状態で分散機械学習を行うことで、工作機械での加工プログラムに基づくワークの加工における各時点での各軸の加減速度の調整を目的とした移動量の決定の学習を効率的に行わせることができるようになる。
【００２９】
なお、強化学習のアルゴリズムとしては、Ｑ学習、ＳＡＲＳＡ法、ＴＤ学習、ＡＣ法など様々な手法が周知となっているが、本発明に適用する方法としていずれの強化学習アルゴリズムを採用してもよい。上記したそれぞれの強化学習アルゴリズムは周知なので、本明細書における各アルゴリズムの更なる詳細な説明は省略する。
以下では、機械学習器を導入した本発明の工作機械について、具体的な実施形態に基づいて説明する。
【００３０】
＜２．実施形態＞
図３は、本発明の一実施形態における人工知能となる機械学習器を導入した工作機械における各時点での各軸の加減速度の調整を目的とした移動量の決定の機械学習に関するイメージを示す図である。なお、図３には本実施形態における工作機械での機械学習の説明に必要な構成のみを示している。
【００３１】
本実施形態において、機械学習器２０が環境（＜１．機械学習＞で説明した状態ｓt）を特定するための情報として、工具の進行方向、工具経路からの逸脱量、現在の各軸速度、現在の各軸の速度のＮ階時間微分要素（加速度、加加速度、…）、衝撃の発生などを機械学習器２０に対して入力している。これら各値は、工作機械１の各部から取得されたデータ、および該データに基づいて動作評価部３により算出されたデータである。
図４は、本実施形態における工作機械１の各軸に係る各データについて説明する図である。本実施形態における工作機械１には、加工プログラムを解析して得られる指令経路が図示しないメモリに記憶されており、上記した入力データには、工作機械１から得られる時刻ｔにおける各軸の軸位置（ｘt，ｚt）、各軸の移動速度（δｘt-1，δｚt-1）、各軸の加速度（δｘt-1−δｘt-2，δｚt-1−δｚt-2）に加えて、各軸位置が指令経路から逸脱している距離ｄなどのように、上記各データに基づいて動作評価部３が算出したデータが含まれる。
なお、図４においては、Ｘ−Ｚの２次元座標系における各入力データの例を示したが、工作機械の各軸の数が３軸以上である場合には、軸数に合わせて入力データの次元数を適宜増やすことで対応できる。
【００３２】
本実施形態では、機械学習器２０が環境に対して出力するもの（＜１．機械学習＞で説明した行動ａt）として、次の瞬間（制御装置の制御周期における今周期）の各軸の移動量を出力データとしている。なお、本実施形態においては、ある周期において出力された各軸の移動量は、各軸を駆動するサーボモータで当該周期内に遅延無く消費（移動）されるものとする。そのため、以下では該移動量をそのまま工具速度として扱う。
【００３３】
また本実施形態では、機械学習器２０に対して与えられる報酬（＜１．機械学習＞で説明した報酬ｒt）として、各軸の合成速度の向上（プラス報酬）、指令と反対方向への移動（マイナス報酬）、工具の速度のＮ階時間微分要素（Ｎは任意の自然数）の大きな変化（マイナス報酬）、工具経路の逸脱（マイナス報酬）、最高速度の超過（マイナス報酬）、衝撃の発生（マイナス報酬）などを採用する。報酬は、動作評価部３が入力データ、出力データ等に基づいて各報酬の達成度合いに基づいて算出する。なお、いずれのデータに基づいて報酬を決定するのかについては、工作機械１での加工プログラムによる加工内容に応じて操作者が適宜設定するようにしてもよく、例えば、穴あけ加工においては穴底未達をマイナス報酬として定義するようにしてもよい。
【００３４】
更に、本実施形態では、機械学習器２０は上記した入力データ、出力データ、報酬に基づいて機械学習を行う。機械学習においては、ある時刻ｔにおいて、入力データの組み合わせにより状態ｓtが定義され、定義された状態ｓtに対して行われる移動量の出力が行動ａtとなり、そして、行動ａtにより移動量の出力が行われた結果として新たに得られた入力データに基づいて評価計算された値が報酬ｒt+1となり、これを＜１．機械学習＞で説明したように、機械学習のアルゴリズムに応じた価値関数（評価関数）の更新式に当てはめることにより学習を進める。
【００３５】
以下では、工作機械１の機能ブロック図に基づいて説明する。
図５は、本実施形態の工作機械の機能ブロック図である。本実施形態の工作機械１は、ワークの加工において各軸を駆動するためのサーボモータなどの駆動部（図示せず）、該サーボモータを制御するサーボ制御部（図示せず）などの工作機械が標準的に備える構成と周辺機器（図示せず）、該駆動部や該周辺機器を制御する数値制御部２、該駆動部や該周辺機器の動作や数値制御部２から取得された各データに基づいて工作機械の動作を評価する動作評価部３、工作機械に発生した衝撃を検出する衝撃センサなどで構成される衝撃検出部４、および機械学習を行う人工知能となる機械学習器２０を備える。図５に示した構成を、図２に示した強化学習における要素と対比すると、機械学習器２０がエージェントに対応し、工作機械１が備える駆動部や周辺機器、数値制御部２などを含む全体が環境に対応する。なお、工作機械１は、上記した以外にも一般的な工作機械の構成を備えているものとし、本発明における機械学習の動作の説明に特段必要な構成以外は本明細書での詳細な説明を省略する。
【００３６】
数値制御部２は、図示しないメモリから読み出された、または図示しない入力機器などを介して入力された加工プログラムを解析し、解析結果として得られた制御データに基づいて工作機械１の各部を制御する。数値制御部２は、通常は加工プログラムの解析結果に基づいた制御を行なうが、本実施形態においては、工作機械１の工具を駆動する各軸の制御については、機械学習器２０から出力される各軸の移動量に従って行われる。
【００３７】
動作評価部３は、数値制御部２から取得した工作機械１の各軸の軸位置、数値制御部２が解析した加工プログラムに指令された工具の指令経路や加工プログラムにより指令される工具の送り速度（最高速度）等に基づいて、各制御周期において機械学習器２０から出力される工作機械の各軸の移動量を評価し、その評価結果を機械学習器２０に通知する。動作評価部３による行動の評価は、機械学習器２０の学習における報酬の計算に用いられる。
行動の評価の例として、工作機械１の各軸の移動量に基づく移動方向と工作機械１の各軸の軸位置から把握される工具の現在位置の近傍における加工プログラムにより指令される指令経路の移動方向との角度や、工具の現在位置と指令経路からの逸脱量、各軸の移動量に基づく移動速度と工具の現在位置の近傍における加工プログラムにより指令される最高速度との差分、加加速度の絶対値の大きさ（加速度変化の大きさ）などが挙げられる。なお、行動の評価は上記した以外にも、機械学習器２０から出力される行動の評価に良否を評価できるものであれば、どのようなものを評価に用いてもよい。
【００３８】
機械学習を行う機械学習器２０は、状態観測部２１、状態データ記憶部２２、報酬条件設定部２３、報酬計算部２４、移動量調整学習部２５、学習結果記憶部２６、移動量出力部２７を備える。機械学習器２０は、図に示すように工作機械１内に備えてもよいし、工作機械１外のパソコン等に備えるようにしてもよい。
【００３９】
状態観測部２１は、数値制御部２を介して工作機械１に関する各データを観測して機械学習器２０内に取得すると共に、動作評価部３による動作の評価結果を状態データとして機械学習器２０内に取得する機能手段である。状態データとしては上記した各軸の軸位置や速度、各軸の速度のＮ階時間微分要素（加速度、加加速度、…）の他に、温度、電流、電圧、圧力、時間、トルク、力、消費電力、さらに各物理量を演算処理して算出した算出値などがある。また、動作評価部３による動作の評価結果としては、上記したように、指令経路と工具の移動方向との角度、工具の現在位置と工具経路に許容誤差を加えた範囲との逸脱度合い、工具の移動速度と指令される最高速度との差分、加加速度の絶対値の大きさ（加速度変化の大きさ）などがある。なお、加加速度の絶対値の大きさは、衝撃の大きさの尺度として用いるものであるから、衝撃検出器４による衝撃の検出値と、動作評価部３から取得された加加速度の絶対値の大きさとは、必ずしも両方が必要となるわけではなく、一方のみを状態データとして取得するようにしてもよい。
【００４０】
状態データ記憶部２２は状態データを入力して記憶し、記憶した該状態データを報酬計算部２４や移動量調整学習部２５に対して出力する機能手段である。入力される状態データは、最新の加工運転で取得したデータでも、過去の加工運転で取得したデータでも構わない。また、他の工作機械１や集中管理システム３０に記憶された状態データを入力して記憶したり、出力したりすることも可能である。
【００４１】
報酬条件設定部２３は、操作者などにより設定された機械学習において報酬を与える条件を設定するための機能手段である。報酬にはプラスの報酬とマイナスの報酬があり、適宜設定が可能である。報酬条件設定部２３への入力は集中管理システムで使用しているパソコンやタブレット端末等からでも構わないが、工作機械１が備える図示しないＭＤＩ機器を介して入力できるようにすることで、より簡便に設定することが可能となる。
報酬計算部２４は、報酬条件設定部２３で設定された条件に基づいて状態観測部２１または状態データ記憶部２２から入力された状態データを分析し、計算された報酬を移動量調整学習部２５に出力する。
【００４２】
以下に、本実施形態における報酬条件設定部２３で設定する報酬条件の例を示す。
●［報酬１：各軸の合成速度の向上（プラス報酬，マイナス報酬）］
各軸の合成速度が過去における各軸の合成速度よりも向上した場合に、加工のサイクルタイムの向上につながるため、その度合いに応じてプラスの報酬を与える。
一方で、各軸の合成速度が指令により与えられた最高速度や、各軸の速度が工作機械１に設定された各軸の最高速度を超える場合には、工作機械１の故障などにつながるため、その度合いに応じてマイナスの報酬を与える。
【００４３】
●［報酬２：指令と異なる方向への移動（マイナス報酬）］
工作機械１の各軸の移動量に基づく移動方向と工作機械１の各軸の軸位置から把握される工具の現在位置の近傍における加工プログラムにより指令される指令経路の移動方向との角度に基づいて、移動方向が加工プログラムにより指令される指令経路と大きく異なる方向へ移動する場合には、その度合いに応じてマイナスの報酬を与える。マイナス報酬の例としては、工具の移動方向と指令経路の移動方向との為す角度が所定の角度（例えば±４５度以内）よりも大きい場合に、その差分に所定の係数をかけた値をマイナスの報酬として与えるようにしてもよいし、単純に１８０度を超えた場合（指令経路の移動方向と反対方向）にマイナス報酬を与えるようにしてもよい。
【００４４】
●［報酬３：工具の速度のＮ階時間微分要素（Ｎは任意の自然数）の大きな変化（マイナス報酬）］
工作機械１の各軸の速度のＮ階時間微分要素（Ｎは任意の自然数、加速度、加加速度など）の変化があらかじめ定めた所定の値を超える場合に、その超過度合いに応じてマイナスの報酬を与える。
【００４５】
●［報酬４：工具経路の逸脱（マイナス報酬）］
工具の現在位置が、加工プログラムにより指令される指令経路から逸脱した場合、その逸脱の度合に応じてマイナス報酬を与える。逸脱した度合は、工具の現在位置と、指令経路との距離量に応じてマイナス報酬を与えるようにしてもよい。
【００４６】
●［報酬５：衝撃の発生（マイナス報酬）］
工作機械１が備える衝撃検出部４によりあらかじめ定めた所定の値を候える衝撃が検出された場合に、その超過度合いに応じてマイナスの報酬を与える。
【００４７】
移動量調整学習部２５は、入力データなどを含む状態データと、自身が行った工作機械１の各軸の移動量の調整結果、および報酬計算部２４で計算された報酬とに基づいて機械学習（強化学習）を行う。
【００４８】
ここで、移動量調整学習部２５が行う機械学習においては、ある時刻ｔにおける状態データの組み合わせにより状態ｓtが定義され、定義された状態ｓtに応じて各軸の移動量を決定することが行動ａtとなり、後述する移動量出力部２７により決定された各軸の移動量が数値制御部２に出力され、数値制御部２により該決定された各軸の移動量に基づいて工作機械１の各軸の移動が行われた結果として得られたデータに基づいて報酬計算部２４で計算された値が報酬ｒt+1となる。学習に用いられる価値関数については、適用する学習アルゴリズムに応じて決定する。例えば、Ｑ学習を用いる場合には、上記した数２式に従って行動価値関数Ｑ（ｓt，ａt）を更新することにより学習を進めるようにすれば良い。
【００４９】
図６のフローチャートを用いて、移動量調整学習部２５が行う機械学習の流れを説明する。
●［ステップＳＡ０１］機械学習が開始されると、状態観測部２１が工作機械１の加工状態に係るデータを取得する。
●［ステップＳＡ０２］移動量調整学習部２５は、状態観測部２１が取得した加工状態に係るデータに基づいて現在の状態Ｓtを特定する。
【００５０】
●［ステップＳＡ０３］移動量調整学習部２５は、過去の学習結果とステップＳＡ０２で特定した状態Ｓtに基づいて行動ａt（各軸の移動量の決定）を選択する。
●［ステップＳＡ０４］ステップＳＡ０３で選択された行動ａtを実行する。
【００５１】
●［ステップＳＡ０５］状態観測部２１が、工作機械１の状態を示す加工状態に係るデータを取得する。この段階においては、工作機械１の状態は時刻ｔから時刻ｔ＋１への時間的推移と共にステップＳＡ０４で実行された行動ａtによって変化している。
●［ステップＳＡ０６］ステップＳＡ０５で取得された評価結果のデータに基づいて、報酬計算部２４が報酬ｒt+1を算出する。
●［ステップＳＡ０７］ステップＳＡ０２で特定された状態Ｓt、ステップＳＡ０３で選択された行動ａt、ステップＳＡ０６で算出された報酬ｒt+1に基づいて、移動量調整学習部２５が機械学習を進め、ステップＳＡ０２へ戻る。
【００５２】
図５に戻って、学習結果記憶部２６は、前記移動量調整学習部２５が学習した結果を記憶する。また、移動量調整学習部２５が学習結果を再使用する際には、記憶している学習結果を移動量調整学習部２５に出力する。学習結果の記憶には、上述したように、利用する機械学習アルゴリズムに応じた価値関数を、近似関数や、配列、又は多値出力のＳＶＭやニューラルネットワーク等の教師あり学習器などにより記憶するようにすれば良い。
なお、学習結果記憶部２６に、他の工作機械１や集中管理システム３０が記憶している学習結果を入力して記憶させたり、学習結果記憶部２６が記憶している学習結果を他の工作機械１や集中管理システム３０に対して出力したりすることも可能である。
【００５３】
移動量出力部２７は、移動量調整学習部２５が学習した結果と現在の状態データとに基づいて各軸の移動量を決定する。ここでいう各軸の移動量の決定が、機械学習に用いられる行動ａに相当する。各軸の移動量の決定は、例えば、各軸正負方向の移動量を組み合わせたものを選択可能な行動（例えば、行動１：（Ｘ軸移動量、Ｚ軸移動量）＝（１，０）、行動２：（Ｘ軸移動量、Ｚ軸移動量）＝（２，０）、…、行動ｎ：（Ｘ軸移動量，Ｚ軸移動量）＝（δｘmax，δｚmax））として用意しておき、過去の学習結果に基づいて将来に得られる報酬が最も大きくなる行動を選択するようにしてもよい。また、上記したεグリーディ法を採用し、所定の確率でランダムな行動を選択することで学習の進展を図るようにしてもよい。
その後、移動量出力部２７は、決定された各軸の移動量を数値制御部２に対して出力する。そして、数値制御部２は移動量出力部２７から出力された各軸の移動量に基づいて工作機械１の各軸を駆動する。
【００５４】
そして、再び動作評価部３による各軸の駆動の結果の評価が行われ、該評価結果と現在の工作機械１の状況の取得が機械学習器２０により行われ、入力された状態データを使用して学習を繰り返すことにより、より優れた学習結果を得ることができる。
このようにして機械学習器２０が学習した結果、指令経路上の各位置における最適な加減速が確認された段階で機械学習器２０による学習を完了させる。学習が完了した機械学習器２０により出力される各軸の移動量（指令パルス）を工具経路１周分にわたって集めたデータが工具の移動データとなる。
【００５５】
上記学習が完了した学習データを用いて実際に工作機械で加工する際には、機械学習器２０は新たな学習を行なわないようにして学習完了時の学習データをそのまま使用して繰り返し運転をするようにしてもよい。
また、学習が完了した機械学習器２０（または、他の機械学習器２０の完了した学習データを学習結果記憶部２６に複写した機械学習器２０）を他の工作機械１に取付けて、学習完了時の学習データをそのまま使用して繰り返し運転をするようにしてもよい。
更に、学習が完了した機械学習器２０の学習機能を有効にしたままで他の工作機械１に取付けて、ワークの加工を続けることで、工作機械毎に異なる個体差や経年変化などを更に学習させ、当該工作機械にとってより良い工具経路を探索しながら運転することも可能である。
【００５６】
なお、上記したように工作機械の数値制御部２を用いて学習動作をする場合、数値制御部２は実際に工作機械１を動作させずに仮想的なワークの加工処理に基づいて学習するようにしてもよい。また、図７に示すように、別途工作機械の動作をシミュレーションするシミュレーション部６を備えたシミュレーション装置５に対して機械学習器２０を組み込んで、該シミュレーション部６によるシミュレーションの結果に基づいて機械学習器２０の学習動作を行わせるようにしてもよい。いずれの場合においても、学習初期の段階においては指令経路を大きく逸脱する移動量が出力されることが多いため、実際のワークの加工を伴わないようにすることが望ましい。
【００５７】
また、工作機械１の機械学習器２０は単独で機械学習をするようにしてもよいが、複数の工作機械１がそれぞれ外部との通信手段を更に備えると、それぞれの前記状態データ記憶部２２が記憶した状態データや学習結果記憶部２６が記憶した学習結果を送受信して共有することが可能となり、より効率良く機械学習を行うことができる。例えば、所定の範囲内で移動量を変動させて学習する際に、複数の工作機械１において異なる移動量を所定の範囲内でそれぞれ変動させて成形しながら、それぞれの工作機械１の間で状態データや学習データをやり取りすることにより並列して学習を進めるようにすることで効率的に学習させることができる。
このように複数の工作機械１間でやり取りする際には、通信は集中管理システム３０等のホストコンピュータを経由しても、直接工作機械１同士が通信しても構わないし、クラウドを使用しても構わないが、大量のデータを取り扱う場合があるため、なるべく通信速度が速い通信手段が好ましい。
【００５８】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【符号の説明】
【００５９】
１  工作機械
２  数値制御部
３  動作評価部
４  衝撃検出部
５  シミュレーション装置
６  シミュレーション部
２０  機械学習器
２１  状態観測部
２２  状態データ記憶部
２３  報酬条件設定部
２４  報酬計算部
２５  移動量調整学習部
２６  学習結果記憶部
２７  移動量出力部
３０  集中管理システム
【図２】
2017068325.tif 000005
【図５】
2017068325.tif 000006
【図６】
2017068325.tif 000007
【図７】
2017068325.tif 000008
【図１】
2017068325.tif 000009
【図３】
2017068325.tif 000010
【図４】
2017068325.tif 000011
【図８】
2017068325.tif 000012