(57)【要約】【課題】直線と曲線で形成される所定の加工物の輪郭を工具経路とする工具の動作を機械学習する工作機械を提供すること。【解決手段】本発明の工作機械は、工作機械の動作を評価して評価データを出力する動作評価部と、工作機械の軸の移動量を機械学習する機械学習器とを備え、機械学習器は、工作機械の物理量データと評価データとを取得する状態観測部と、物理量データと評価データに基づいて報酬を計算する報酬計算部と、機械学習結果および物理量データに基づいて軸の移動量の調整を行う移動量調整学習部と、移動量調整学習部が調整した軸の移動量を出力する移動量出力部と、を有し、移動量調整学習部は、調整された前記軸の移動量と、状態観測部により取得された物理量データと、報酬計算部が計算した前記報酬と、に基づいて軸の移動量の調整を機械学習する。【選択図】図５
2017033138.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がどのくらい良い状態であるのかを示す価値関数である。状態価値関数は、状態を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態の価値などに基づいて更新される。状態価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、強化学習アルゴリズムの１つであるＴＤ学習においては、状態価値関数は以下の数１式で定義される。なお、数１式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２３】
【数１】
2017033138.tif 000003
【００２４】
また、行動価値関数は、ある状態ｓtにおいて行動ａtがどのくらい良い行動であるのかを示す価値関数である。行動価値関数は、状態と行動を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態における行動の価値などに基づいて更新される。行動価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、代表的な強化学習アルゴリズムの１つであるＱ学習においては、行動価値関数は以下の数２式で定義される。なお、数２式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２５】
【数２】
2017033138.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となり、これを＜１．機械学習＞で説明したように、機械学習のアルゴリズムに応じた価値関数（評価関数）の更新式に当てはめることにより学習を進める。
【００３６】
以下では、工作機械１の機能ブロック図に基づいて説明する。
図５は、本実施形態の工作機械の機能ブロック図である。本実施形態の工作機械１は、ワークの加工において各軸を駆動するためのサーボモータなどの駆動部（図示せず）、該サーボモータを制御するサーボ制御部（図示せず）などの工作機械が標準的に備える構成と周辺機器（図示せず）、該駆動部や該周辺機器を制御する数値制御部２、該駆動部や該周辺機器の動作や数値制御部２から取得された各データに基づいて工作機械の動作を評価する動作評価部３、および機械学習を行う人工知能となる機械学習器２０を備える。図５に示した構成を、図２に示した強化学習における要素と対比すると、機械学習器２０がエージェントに対応し、工作機械１が備える駆動部や周辺機器、数値制御部２などを含む全体が環境に対応する。
【００３７】
数値制御部２は、図示しないメモリから読み出された、または図示しない入力機器などを介して入力された加工プログラムを解析し、解析結果として得られた制御データに基づいて工作機械１の各部を制御する。数値制御部２は、通常は加工プログラムの解析結果に基づいた制御を行なうが、本実施形態においては、工作機械１の工具を駆動する各軸の制御については、機械学習器２０から出力される各軸の移動量に従って行われる。
数値制御装置２には、加工プログラムにより指令される指令経路に対して工具の逸脱を許容する範囲を示す許容誤差を設定することが可能となっている。許容誤差は、それぞれの指令経路に対する各軸方向への距離や、指令経路の周りの領域として定義される。許容誤差の設定は、（１）数値制御装置内の不揮発性メモリ内に定数値として記憶、この定数値は加工開始前に工作機械の操作者があらかじめ設定、（２）加工プログラム内で加工指令の一部として指令、（３）あらかじめ工作機械に設定された可動範囲、ワークを固定する治具の干渉などにより制約される可動範囲、のいずれか、またはこれら（１）〜（３）の複数の組み合わせにより定義される。
【００３８】
動作評価部３は、数値制御部２から取得した工作機械１の各軸の軸位置、数値制御部２が解析した加工プログラムに指令された工具経路や加工プログラムにより指令される工具の最高速度等に基づいて、各制御周期において機械学習器２０から出力される工作機械の各軸の移動量を評価し、その評価結果を機械学習器２０に通知する。動作評価部３による行動の評価は、機械学習器２０の学習における報酬の計算に用いられる。
行動の評価の例として、工作機械１の各軸の移動量に基づく移動方向と工作機械１の各軸の軸位置から把握される工具の現在位置の近傍における加工プログラムにより指令される指令経路の移動方向との角度や、工具の現在位置と指令経路に許容誤差を加えた範囲との逸脱度合い、各軸の移動量に基づく移動速度と工具の現在位置の近傍における加工プログラムにより指令される最高速度との差分などが挙げられるが、機械学習器２０から出力される行動の評価に良否を評価できるものであれば、どのようなものを評価に用いてもよい。
【００３９】
機械学習を行う機械学習器２０は、状態観測部２１、物理量データ記憶部２２、報酬条件設定部２３、報酬計算部２４、移動量調整学習部２５、学習結果記憶部２６、移動量出力部２７を備える。前記機械学習器２０は、工作機械１内に備えてもよいし、工作機械１外のパソコン等に備えるようにしてもよい。
【００４０】
状態観測部２１は、数値制御部２を介して工作機械１に関する物理量データを観測して機械学習器２０内に取得すると共に、動作評価部３による動作の評価結果を機械学習器２０内に取得する機能手段である。物理量データとしては上記した各軸の軸位置や速度、加速度の他に、温度、電流、電圧、圧力、時間、トルク、力、消費電力、さらに各物理量を演算処理して算出した算出値などがある。また、動作評価部３による動作の評価結果としては、上記したように、指令経路と工具の移動方向との角度、工具の現在位置と工具経路に許容誤差を加えた範囲との逸脱度合い、工具の移動速度と指令される最高速度との差分、などがある。
【００４１】
物理量データ記憶部２２は物理量データを入力して記憶し、記憶した該物理量データを報酬計算部２４や移動量調整学習部２５に対して出力する機能手段である。入力される物理量データは、最新の加工運転で取得したデータでも、過去の加工運転で取得したデータでも構わない。また、他の工作機械１や集中管理システム３０に記憶された物理量データを入力して記憶したり、出力したりすることも可能である。
【００４２】
報酬条件設定部２３は、機械学習において報酬を与える条件を設定するための機能手段である。報酬にはプラスの報酬とマイナスの報酬があり、適宜設定が可能である。さらに、報酬条件設定部２３への入力は集中管理システムで使用しているパソコンやタブレット端末等からでも構わないが、工作機械１が備える図示しないＭＤＩ機器を介して入力できるようにすることで、より簡便に設定することが可能となる。
報酬計算部２４は、報酬条件設定部２３で設定された条件に基づいて状態観測部２１または物理量データ記憶部２２から入力された物理量データを分析し、計算された報酬を移動量調整学習部２５に出力する。
【００４３】
以下に、本実施形態における報酬条件設定部２３で設定する報酬条件の例を示す。
●［報酬１：各軸の合成速度の向上（プラス報酬，マイナス報酬）］
各軸の合成速度が過去における各軸の合成速度よりも向上した場合に、加工のサイクルタイムの向上につながるため、その度合いに応じてプラスの報酬を与える。
一方で、各軸の合成速度が指令により与えられた最高速度や、各軸の速度が工作機械１に設定された各軸の最高速度を超える場合には、工作機械１の故障などにつながるため、その度合いに応じてマイナスの報酬を与える。
【００４４】
●［報酬２：指令と異なる方向への移動］
工作機械１の各軸の移動量に基づく移動方向と工作機械１の各軸の軸位置から把握される工具の現在位置の近傍における加工プログラムにより指令される指令経路の移動方向との角度に基づいて、移動方向が加工プログラムにより指令される指令経路と大きく異なる方向へ移動する場合には、その度合いに応じてマイナスの報酬を与える。マイナス報酬の例としては、工具の移動方向と指令経路の移動方向との為す角度が所定の角度（例えば±４５度以内）よりも大きい場合に、その差分に所定の係数をかけた値をマイナスの報酬として与えるようにしてもよいし、単純に１８０度を超えた場合（指令経路の移動方向と反対方向）にマイナス報酬を与えるようにしてもよい。
【００４５】
●［報酬３：工具経路の逸脱］
工具の現在位置が、加工プログラムにより指令される指令経路に許容誤差を加えた範囲から逸脱した度合に応じてマイナス報酬を与える。逸脱した度合は、工具の現在位置と、指令経路に許容誤差を加えた範囲との距離量に応じてマイナス報酬を与えるようにしてもよい。
【００４６】
●［報酬４：最高速度の超過］
工具の移動速度が、加工プログラムに指令される最高速度を超過した場合に、その超過量に応じてマイナス報酬を与える。
【００４７】
図５に戻って、移動量調整学習部２５は、入力データなどを含む物理量データと、自身が行った工作機械１の各軸の移動量の調整結果、および報酬計算部２４で計算された報酬とに基づいて機械学習（強化学習）を行うと共に、過去の学習結果に基づいて現在の物理量データに基づいて各軸の移動量の調整をする。ここでいう各軸の移動量の調整が、機械学習に用いられる行動ａに相当する。
【００４８】
移動量の調整方法、例えば、各軸正負方向の移動量を組み合わせたもの（行動１：（Ｘ軸移動量、Ｚ軸移動量）＝（１，０）、行動２：（Ｘ軸移動量、Ｚ軸移動量）＝（２，０）、…、行動ｎ：（Ｘ軸移動量，Ｚ軸移動量）＝（δｘmax，δｚmax））を選択可能な行動として用意しておき、過去の学習結果に基づいて将来に得られる報酬が最も大きくなる行動を選択するようにしてもよい。また、上記したεグリーディ法を採用し、所定の確率でランダムな行動を選択することで学習の進展を図るようにしてもよい。
【００４９】
ここで、移動量調整学習部２５が行う機械学習においては、ある時刻ｔにおける物理量データの組み合わせにより状態ｓtが定義され、定義された状態ｓtに応じて各軸の移動量を調整して後述する移動量出力部２７により該調整結果を出力することが行動ａtとなり、そして、調整結果に基づいて工作機械１の各軸の移動が行われた結果として得られたデータに基づいて前記報酬計算部２４で計算された値が報酬ｒt+1となる。学習に用いられる価値関数については、適用する学習アルゴリズムに応じて決定する。例えば、Ｑ学習を用いる場合には、上記した数２式に従って行動価値関数Ｑ（ｓt，ａt）を更新することにより学習を進めるようにすれば良い。
【００５０】
図６のフローチャートを用いて、移動量調整学習部２５が行う機械学習の流れを説明する。
●［ステップＳＡ０１］機械学習が開始されると、状態観測部２１が工作機械１の状態を示す物理量データを取得する。
●［ステップＳＡ０２］移動量調整学習部２５は、状態観測部２１が取得した物理量データに基づいて現在の状態Ｓtを特定する。
【００５１】
●［ステップＳＡ０３］移動量調整学習部２５は、過去の学習結果とステップＳＡ０２で特定した状態Ｓtに基づいて行動ａt（各軸の移動量の調整）を選択する。
●［ステップＳＡ０４］ステップＳＡ０３で選択された行動ａtを実行する。
【００５２】
●［ステップＳＡ０５］状態観測部２１が、工作機械１の状態を示す物理量データと、動作評価部３が工作機械１の状態を評価した評価結果のデータとを取得する。この段階においては、工作機械１の状態はステップＳＡ０４で実行された行動ａtによって時刻ｔから時刻ｔ＋１への時間的推移と共に変化している。
●［ステップＳＡ０６］ステップＳＡ０５で取得された評価結果のデータに基づいて、報酬計算部２４が報酬ｒt+1を算出する。
●［ステップＳＡ０７］ステップＳＡ０２で特定された状態Ｓt、ステップＳＡ０３で選択された行動ａt、ステップＳＡ０６で算出された報酬ｒt+1に基づいて、移動量調整学習部２５が機械学習を進め、ステップＳＡ０２へ戻る。
【００５３】
学習結果記憶部２６は、前記移動量調整学習部２５が学習した結果を記憶する。また、移動量調整学習部２５が学習結果を再使用する際には、記憶している学習結果を移動量調整学習部２５に出力する。学習結果の記憶には、上述したように、利用する機械学習アルゴリズムに応じた価値関数を、近似関数や、配列、又は多値出力のＳＶＭやニューラルネットワーク等の教師あり学習器などにより記憶するようにすれば良い。
なお、学習結果記憶部２６に、他の工作機械１や集中管理システム３０が記憶している学習結果を入力して記憶させたり、学習結果記憶部２６が記憶している学習結果を他の工作機械１や集中管理システム３０に対して出力したりすることも可能である。
【００５４】
移動量出力部２７は、前記移動量調整学習部２５による移動量の調整結果を数値制御部２に対して出力する。数値制御部２は移動量出力部２７から出力された各軸の移動量に基づいて工作機械１の各軸を駆動する。
【００５５】
そして、再び動作評価部３による各軸の駆動の結果の評価が行われ、該評価結果と現在の工作機械１の状況の取得が機械学習器２０により行われ、入力された物理量データを使用して学習を繰り返すことにより、より優れた学習結果を得ることができる。
このようにして機械学習器２０が学習した結果、図１（ａ）、図１（ｂ）に示す最適な移動経路が確認された段階で機械学習器２０による学習が完了する。学習が完了した機械学習器２０により出力される各軸の移動量（指令パルス）を工具経路１周分にわたって集めたデータが工具の移動データとなる。
【００５６】
上記学習が完了した学習データを用いて実際に工作機械で加工する際には、機械学習器２０は新たな学習を行なわないようにして学習完了時の学習データをそのまま使用して繰り返し運転をするようにしてもよい。
また、学習が完了した機械学習器２０（または、他の機械学習器２０の完了した学習データを学習結果記憶部２６に複写した機械学習器２０）を他の工作機械１に取付けて、学習完了時の学習データをそのまま使用して繰り返し運転をするようにしてもよい。
更に、学習が完了した機械学習器２０の学習機能を有効にしたままで他の工作機械１に取付けて、ワークの加工を続けることで、工作機械毎に異なる個体差や経年変化などを更に学習させ、当該工作機械にとってより良い工具経路を探索しながら運転することも可能である。
【００５７】
なお、上記したように工作機械の数値制御部２を用いて学習動作をする場合、数値制御部２は実際に工作機械１を動作させずに仮想的なワークの加工処理に基づいて学習するようにしてもよい。また、図７に示すように、別途工作機械の動作をシミュレーションするシミュレーション部５を備えたシミュレーション装置４に対して機械学習器２０を組み込んで、該シミュレーション部５によるシミュレーションの結果に基づいて機械学習器２０の学習動作を行わせるようにしてもよい。いずれの場合においても、学習初期の段階においては実際のワークの加工を伴わないようにすることが望ましい。
【００５８】
また、工作機械１は単独で機械学習をするようにしてもよいが、複数の工作機械１がそれぞれ外部との通信手段を更に備えると、それぞれの前記物理量データ記憶部２２が記憶した物理量データや学習結果記憶部２６が記憶した学習結果を送受信して共有することが可能となり、より効率良く機械学習を行うことができる。例えば、所定の範囲内で移動量を変動させて学習する際に、複数の工作機械１において異なる操作条件を所定の範囲内でそれぞれ変動させて成形しながら、それぞれの工作機械１の間で物理量データや学習データをやり取りすることにより並列して学習を進めるようにすることで効率的に学習させることができる。
このように複数の工作機械１間でやり取りする際には、通信は集中管理システム３０等のホストコンピュータを経由しても、直接工作機械１同士が通信しても構わないし、クラウドを使用しても構わないが、大量のデータを取り扱う場合があるため、なるべく通信速度が速い通信手段が好ましい。
【００５９】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【符号の説明】
【００６０】
１  工作機械
２  数値制御部
３  動作評価部
４  シミュレーション装置
５  シミュレーション部
２０  機械学習器
２１  状態観測部
２２  物理量データ記憶部
２３  報酬条件設定部
２４  報酬計算部
２５  移動量調整学習部
２６  学習結果記憶部
２７  移動量出力部
３０  集中管理システム
【図２】
2017033138.tif 000005
【図５】
2017033138.tif 000006
【図６】
2017033138.tif 000007
【図７】
2017033138.tif 000008
【図１】
2017033138.tif 000009
【図３】
2017033138.tif 000010
【図４】
2017033138.tif 000011
【図８】
2017033138.tif 000012
【図９】
2017033138.tif 000013
【手続補正書】
【提出日】平成28年9月27日(2016.9.27)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本願の請求項１に係る発明は、プログラムに基づいて少なくとも１つの軸を駆動してワークの加工を行う工作機械において、前記工作機械の動作を評価して評価データを出力する動作評価部と、制御周期毎の前記軸の移動量の調整を機械学習する機械学習器と、を備え、前記機械学習器は、前記工作機械の少なくとも前記軸の軸位置を含む物理量データと、前記動作評価部から出力された評価データとを取得する状態観測部と、前記状態観測部が取得した前記物理量データおよび前記評価データに基づいて報酬を計算する報酬計算部と、制御周期毎の前記軸の移動量の調整の機械学習結果と、前記状態観測部が取得した前記物理量データと、に基づいて制御周期毎の前記軸の移動量の調整を行う移動量調整学習部と、前記移動量調整学習部が調整した制御周期毎の前記軸の移動量を出力する移動量出力部と、を有し、前記移動量調整学習部は、調整された制御周期毎の前記軸の移動量と、出力された制御周期毎の前記軸の移動量に基づく工作機械の動作後における前記状態観測部により取得された前記物理量データと、前記報酬計算部が計算した前記報酬と、に基づいて制御周期毎の前記軸の移動量の調整を機械学習する、ことを特徴とする工作機械である。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
本願の請求項４に係る発明は、前記移動量調整学習部は、前記報酬が最大となるように、調整された制御周期毎の前記軸の移動量と、前記状態観測部により取得された前記物理量データを引数で表現した評価関数を用いて機械学習する、ことを特徴とする請求項３に記載の工作機械である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１４
【補正方法】変更
【補正の内容】
【００１４】
本願の請求項５に係る発明は、プログラムに基づいて少なくとも１つの軸を駆動するワークの加工を行う工作機械をシミュレーションするシミュレーション装置において、前記工作機械のシミュレーション動作を評価して評価データを出力する動作評価部と、制御周期毎の前記軸の移動量の調整を機械学習する機械学習器と、を備え、前記機械学習器は、前記工作機械の少なくとも前記軸の軸位置を含むシミュレーションされた物理量データと、前記動作評価部から出力された評価データとを取得する状態観測部と、前記状態観測部が取得した前記物理量データおよび前記評価データに基づいて報酬を計算する報酬計算部と、制御周期毎の前記軸の移動量の調整の機械学習結果と、前記状態観測部が取得した前記物理量データと、に基づいて制御周期毎の前記軸の移動量の調整を行う移動量調整学習部と、前記移動量調整学習部が調整した制御周期毎の前記軸の移動量を出力する移動量出力部と、を有し、前記移動量調整学習部は、調整された制御周期毎の前記軸の移動量と、出力された制御周期毎の前記軸の移動量に基づく前記工作機械のシミュレーション動作後における前記状態観測部により取得された前記物理量データと、前記報酬計算部が計算した前記報酬と、に基づいて制御周期毎の前記軸の移動量の調整を機械学習する、ことを特徴とするシミュレーション装置である。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
本願の請求項６に係る発明は、工作機械が備える少なくとも１つの制御周期毎の軸の移動量の調整を機械学習した機械学習器であって、制御周期毎の前記軸の移動量の調整の機械学習結果を記憶する学習結果記憶部と、前記工作機械の少なくとも前記軸の軸位置を含む物理量データを取得する状態観測部と、制御周期毎の前記軸の移動量の調整の機械学習結果と、前記状態観測部が取得した前記物理量データと、に基づいて制御周期毎の前記軸の移動量の調整を行う移動量調整学習部と、前記移動量調整学習部が調整した制御周期毎の前記軸の移動量を出力する移動量出力部と、を備えたことを特徴とする機械学習器である。
【手続補正５】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラムに基づいて少なくとも１つの軸を駆動してワークの加工を行う工作機械において、
前記工作機械の動作を評価して評価データを出力する動作評価部と、
制御周期毎の前記軸の移動量の調整を機械学習する機械学習器と、
を備え、
前記機械学習器は、
前記工作機械の少なくとも前記軸の軸位置を含む物理量データと、前記動作評価部から出力された評価データとを取得する状態観測部と、
前記状態観測部が取得した前記物理量データおよび前記評価データに基づいて報酬を計算する報酬計算部と、
制御周期毎の前記軸の移動量の調整の機械学習結果と、前記状態観測部が取得した前記物理量データと、に基づいて制御周期毎の前記軸の移動量の調整を行う移動量調整学習部と、
前記移動量調整学習部が調整した制御周期毎の前記軸の移動量を出力する移動量出力部と、
を有し、
前記移動量調整学習部は、調整された制御周期毎の前記軸の移動量と、出力された制御周期毎の前記軸の移動量に基づく前記工作機械の動作後における前記状態観測部により取得された前記物理量データと、前記報酬計算部が計算した前記報酬と、に基づいて制御周期毎の前記軸の移動量の調整を機械学習する、
ことを特徴とする工作機械。
【請求項２】
前記報酬計算部は、前記軸の合成速度が速い速度で進んだときにプラスの報酬を計算し、前記プログラムにより指令される指令経路の範囲を逸脱するときにマイナスの報酬を計算する、
ことを特徴とする請求項１に記載の工作機械。
【請求項３】
少なくとも１つの他の工作機械と接続されており、
前記他の工作機械との間で機械学習の結果を相互に交換または共有する、
ことを特徴とする請求項１または２に記載の工作機械。
【請求項４】
前記移動量調整学習部は、前記報酬が最大となるように、調整された制御周期毎の前記軸の移動量と、前記状態観測部により取得された前記物理量データを引数で表現した評価関数を用いて機械学習する、
ことを特徴とする請求項３に記載の工作機械。
【請求項５】
プログラムに基づいて少なくとも１つの軸を駆動するワークの加工を行う工作機械をシミュレーションするシミュレーション装置において、
前記工作機械のシミュレーション動作を評価して評価データを出力する動作評価部と、
制御周期毎の前記軸の移動量の調整を機械学習する機械学習器と、
を備え、
前記機械学習器は、
前記工作機械の少なくとも前記軸の軸位置を含むシミュレーションされた物理量データと、前記動作評価部から出力された評価データとを取得する状態観測部と、
前記状態観測部が取得した前記物理量データおよび前記評価データに基づいて報酬を計算する報酬計算部と、
制御周期毎の前記軸の移動量の調整の機械学習結果と、前記状態観測部が取得した前記物理量データと、に基づいて制御周期毎の前記軸の移動量の調整を行う移動量調整学習部と、
前記移動量調整学習部が調整した制御周期毎の前記軸の移動量を出力する移動量出力部と、
を有し、
前記移動量調整学習部は、調整された制御周期毎の前記軸の移動量と、出力された制御周期毎の前記軸の移動量に基づく前記工作機械のシミュレーション動作後における前記状態観測部により取得された前記物理量データと、前記報酬計算部が計算した前記報酬と、に基づいて制御周期毎の前記軸の移動量の調整を機械学習する、
ことを特徴とするシミュレーション装置。
【請求項６】
工作機械が備える少なくとも１つの制御周期毎の軸の移動量の調整を機械学習した機械学習器であって、
制御周期毎の前記軸の移動量の調整の機械学習結果を記憶する学習結果記憶部と、
前記工作機械の少なくとも前記軸の軸位置を含む物理量データを取得する状態観測部と、制御周期毎の前記軸の移動量の調整の機械学習結果と、前記状態観測部が取得した前記物理量データと、に基づいて制御周期毎の前記軸の移動量の調整を行う移動量調整学習部と、
前記移動量調整学習部が調整した制御周期毎の前記軸の移動量を出力する移動量出力部と、
を備えたことを特徴とする機械学習器。