(57)【要約】【課題】冗長自由度を有する機械への指令を最適化する制御装置及び学習装置を提供する。【解決手段】冗長自由度を有する機械各軸の指令を出力する制御装置１は、機械各軸の指令を学習する機械学習装置１００を備える。機械学習装置１００は、機械各軸の動き又はプログラムの実行状態を示すデータを、環境の現在状態を表す状態変数として観測する状態観測部１０６と、加工結果の適否判定結果を示す判定データを取得する判定データ取得部１０８と、状態変数と判定データとを用いて、機械各軸の動き又はプログラムの実行状態と、機械各軸の指令とを関連付けて学習する学習部１１０と、を備えることを特徴とする。【選択図】図１
2019020959.tif 000002
【特許請求の範囲】
【請求項１】
冗長自由度を有する機械各軸の指令を出力する制御装置であって、
前記機械各軸の指令を学習する機械学習装置を備え、
前記機械学習装置は、
前記機械各軸の動き又はプログラムの実行状態を示すデータを、環境の現在状態を表す状態変数として観測する状態観測部と、
加工結果の適否判定結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記機械各軸の動き又はプログラムの実行状態と、前記機械各軸の指令とを関連付けて学習する学習部と、を備えることを特徴とする
制御装置。
【請求項２】
前記状態変数は、前記機械各軸の動きを示すデータとして、位置、速度、加速度及び加加速度のうち少なくともいずれか１つを含むことを特徴とする
請求項１記載の制御装置。
【請求項３】
前記判定データは、工具の速度及び位置のうち少なくともいずれか１つの適否判定結果を含むことを特徴とする
請求項１に記載の制御装置。
【請求項４】
前記判定データは、サイクルタイム、加工精度及び加工面品位のうち少なくともいずれか１つの適否判定結果を含むことを特徴とする
請求項１に記載の制御装置。
【請求項５】
前記学習部は、
前記適否判定結果に関連する報酬を求める報酬計算部と、
前記報酬を用いて、前記機械各軸の動き又はプログラムの実行状態に対する前記機械各軸の指令の価値を表す関数を更新する価値関数更新部とを備えることを特徴とする
請求項１記載の制御装置。
【請求項６】
前記学習部は、前記状態変数と前記判定データとを多層構造で演算することを特徴とする
請求項１記載の制御装置。
【請求項７】
前記学習部による学習結果に基づいて、前記機械各軸の指令を示す指令値を出力する意思決定部を更に備えることを特徴とする
請求項１記載の制御装置。
【請求項８】
前記学習部は、複数の機械から得られた前記状態変数及び前記判定データを用いて、前記機械各軸の指令を学習することを特徴とする
請求項１記載の制御装置。
【請求項９】
前記機械学習装置は、クラウドサーバに存在することを特徴とする
請求項１記載の制御装置。
【請求項１０】
冗長自由度を有する機械各軸の指令を学習する学習装置であって、
前記機械各軸の動き又はプログラムの実行状態を示すデータを、環境の現在状態を表す状態変数として観測する状態観測部と、
加工結果の適否判定結果を示す判定データを取得する判定データ取得部と、
前記状態変数と前記判定データとを用いて、前記機械各軸の動き又はプログラムの実行状態と、前記機械各軸の指令とを関連付けて学習する学習部と、を備えることを特徴とする
学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は制御装置及び学習装置に関し、特に冗長自由度を有する機械への指令を最適化する制御装置に関する。
【背景技術】
【０００２】
従来の制御装置で使用される加工プログラムは、機械の軸構成に従った指令で構成されることが一般的である。すなわち従来の加工プログラムは、機械の各軸の動きを直接定義する。そのため、ワークを加工する（ワーク形状を指定する）という目的に対して直感的でない。また、機械の置き換え時などに軸構成が変化すると、加工プログラムも更新が必要となるという問題もある。このようなプログラムを、冗長自由度、換言すれば加工指令に対する軸構成の自由度のないプログラムという。
【０００３】
上述の問題を解決するため、冗長自由度を有するプログラムの作成手法も幾つか提案されている。例えば、ワーク（厳密にはテーブル）座標系を基準として、工具位置と工具姿勢（工具方向ベクトル）とをプログラムで指令するＴＣＰ（Ｔｏｏｌ  Ｃｅｎｔｅｒ  Ｐｏｉｎｔ  ｃｏｎｔｒｏｌ：工具先端点制御）と呼ばれる技術が存在する。例えばＴＣＰでは、以下に示す形式（１）のように工具位置と工具姿勢を指令する。ここでＸ，Ｙ，Ｚが工具先端の位置、Ｉ，Ｊ，Ｋが工具姿勢を示す。軸の動きは、制御装置により自動的に決定される。
Ｘ＿Ｙ＿Ｚ＿Ｉ＿Ｊ＿Ｋ＿；    ・・・（１）
【０００４】
また特許文献１は、機械又はワークに設定した任意の座標系から見た、機械に設定した任意の制御点をプログラムで指令する技術を開示している。
【０００５】
冗長自由度を利用することで、サイクルタイムや加工面品位などの加工性能を向上させることができる。冗長自由度があれば、所定の制約条件のなかで機械の各軸の動かし方を任意に変更できるので、例えば加減速のかかり方などを変えられる。その結果、サイクルタイムや加工精度、加工面品位などを変化させることが可能である。
【０００６】
冗長自由度を持った機械の制御技術として、目的関数の解を最小化するものが考案されている。ここで使用する目的関数は工具位置などを入力、機械各軸への指令値を出力とし、例えば、サイクルタイムを短くする、加工精度を上げるなどの評価基準を定式化したものである（一例として特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特願２０１６−２４０４４６号
【特許文献２】特許第５９４７３４９号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述のように、冗長自由度を持った機械の従来の制御技術は、評価基準の定式化が必要であった。これを加工性能の向上に適用するにあたっては次のような問題があった。加工結果は、機械の設置環境や機械特性など様々な要因に影響される。このような要因は加工結果に大きく影響する重要なものであるが、一方で、加工結果に影響する要因全てを定式化することは現実的に不可能である。また、制御装置はどんな機械と組み合わされ、その機械はどこに設置されるかわからないので、上述の要因を予め目的関数に含めることは困難である。
【０００９】
本発明はこのような問題点を解決するためになされたものであって、冗長自由度を有する機械への指令を最適化する制御装置及び学習装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一実施の形態にかかる制御装置は、冗長自由度を有する機械各軸の指令を出力する制御装置であって、前記機械各軸の指令を学習する機械学習装置を備え、前記機械学習装置は、前記機械各軸の動き又はプログラムの実行状態を示すデータを、環境の現在状態を表す状態変数として観測する状態観測部と、加工結果の適否判定結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記機械各軸の動き又はプログラムの実行状態と、前記機械各軸の指令とを関連付けて学習する学習部と、を備えることを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記状態変数は、前記機械各軸の動きを示すデータとして、位置、速度、加速度及び加加速度のうち少なくともいずれか１つを含むことを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記判定データは、工具の速度及び位置のうち少なくともいずれか１つの適否判定結果を含むことを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記判定データは、サイクルタイム、加工精度及び加工面品位のうち少なくともいずれか１つの適否判定結果を含むことを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記学習部は、前記適否判定結果に関連する報酬を求める報酬計算部と、前記報酬を用いて、前記機械各軸の動き又はプログラムの実行状態に対する前記機械各軸の指令の価値を表す関数を更新する価値関数更新部とを備えることを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記学習部は、前記状態変数と前記判定データとを多層構造で演算することを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記学習部による学習結果に基づいて、前記機械各軸の指令を示す指令値を出力する意思決定部を更に備えることを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記学習部は、複数の機械から得られた前記状態変数及び前記判定データを用いて、前記機械各軸の指令を学習することを特徴とする。
本発明の一実施の形態にかかる制御装置は、前記機械学習装置は、クラウドサーバに存在することを特徴とする。
本発明の一実施の形態にかかる学習装置は、冗長自由度を有する機械各軸の指令を学習する学習装置であって、前記機械各軸の動き又はプログラムの実行状態を示すデータを、環境の現在状態を表す状態変数として観測する状態観測部と、加工結果の適否判定結果を示す判定データを取得する判定データ取得部と、前記状態変数と前記判定データとを用いて、前記機械各軸の動き又はプログラムの実行状態と、前記機械各軸の指令とを関連付けて学習する学習部と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、冗長自由度を有する機械への指令を最適化する制御装置及び学習装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】冗長自由度を持つ機械の制御手法の一例を示す図である。
【図２】冗長自由度を持つ機械の制御手法の一例を示す図である。
【図３】制御装置１の一形態を示す概略的な機能ブロック図である。
【図４】制御装置１の一形態を示す概略的な機能ブロック図である。
【図５】機械学習方法の一形態を示すフローチャートである。
【図６】機械学習方法の一形態を示すフローチャートである。
【図７Ａ】機械学習方法の一形態を示すフローチャートである。
【図７Ｂ】機械学習方法の一形態を示すフローチャートである。
【図８Ａ】ニューロンを説明する図である。
【図８Ｂ】ニューラルネットワークを説明する図である。
【図９】制御装置２の一形態を示す概略的な機能ブロック図である。
【図１０】制御装置を組み込んだシステム１７０の一形態を示す概略的な機能ブロック図である。
【図１１】制御装置を組み込んだシステム１７０’の一形態を示す概略的な機能ブロック図である。
【図１２】制御装置を組み込んだ制御システム３００の一形態を示す概略的な機能ブロック図である。
【発明を実施するための形態】
【００１３】
はじめに、本発明の理解を容易にするため、機械が冗長自由度を持つ場合における制御方法について、幾つかの例を用いて概略を説明する。
【００１４】
図１に示すように、Ｘ，Ｙ，Ｃ軸を持つ機械で、ワーク上に設定した座標系（以下、ワーク座標系Σｗ）に対してＸ，Ｙ軸を移動するプログラムを実行するものとする。制御装置は、機械各軸への指令を機械座標系Σｍを基準に出力する。ΣｗのＸ−Ｙ平面上でΣｍ原点を中心とする一周円を描く加工プログラムを実行する場合、これを実現するため制御装置が機械各軸を制御する方法は無数に存在する。例えば、次の（１）乃至（３）などの方法が考えられる。（１）Ｃｍは固定し、Ｘｍ，Ｙｍを移動させる。すなわちテーブル上のワークは止めたままで、Ｘｍ，Ｙｍの合成により工具を動かして円弧を描く。（２）Ｘｍ，Ｙｍは固定し、Ｃｍを回転させる。すなわち工具を動かすことなくテーブル上のワークを回転させる。（３）Ｘｍ，ＹｍとＣｍを交互に移動させる。すなわちテーブル、工具の両方を動かす。これらの制御方法はそれぞれ、加工時間や加工精度において違いを有するため、制御装置は制御目的に応じた方法を選択し、制御周期毎に機械各軸へ指令を出力する必要がある。
【００１５】
また、回転工具を使用する直行３軸、回転３軸の機械は、プログラムに対して常に冗長自由度を持つ。図２に示すように、ワーク上の工具位置及び姿勢を実現する機械各軸の位置は、ストロークの限界を度外視すれば無数に存在する。制御装置は、このように無数に存在する機械各軸の位置の中から１つの組み合わせを選択して、制御周期毎に機械各軸へ指令を出力する必要がある。
【００１６】
本発明は、このように冗長自由度を有する機械を制御する場合に、例えば加工時間優先、加工精度優先、両者のバランス重視などといった目的に応じ、制御装置が各軸の最適な動かし方を決定する手法を提供する。
【００１７】
＜実施の形態１＞
以下、本発明の実施の形態を図面を用いて説明する。まず、図３のブロック図を用いて、本発明の実施の形態１にかかる制御装置１の構成について説明する。制御装置１は、機械学習装置１００を含む。機械学習装置１００は、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態に対する、機械各軸への指令を、いわゆる機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ等）を含む。この場合、制御装置１が備える機械学習装置１００が学習するものは、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態と、機械各軸への指令との、相関性を表すモデル構造に相当する。
【００１８】
図３に機能ブロックで示すように、制御装置１が備える機械学習装置１００は、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態をそれぞれ示すデータを環境の現在状態を表す状態変数Ｓとして観測する状態観測部１０６と、工具の速度及び位置を判定データＤとして取得する判定データ取得部１０８と、状態変数Ｓと判定データＤとを用いて、機械各軸の動き又はプログラムの実行状態と、機械各軸への指令とを関連付けて学習する学習部１１０とを備える。なお、判定データ取得部１０８は、サイクルタイム、加工精度及び加工面品位を判定データＤとして取得しても良い。
【００１９】
状態観測部１０６は、例えば制御装置１が備えるプロセッサの一機能として構成できる。或いは状態観測部１０６は、例えばプロセッサを機能させるためのソフトウェアとして構成できる。
【００２０】
状態変数Ｓのうち機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態は、制御装置１が制御周期毎にこれらの値を算出又は取得し、状態観測部１０６に入力することができる。
【００２１】
判定データ取得部１０８は、例えば制御装置１のプロセッサの一機能として構成できる。或いは判定データ取得部１０８は、例えばプロセッサを機能させるためのソフトウェアとして構成できる。
【００２２】
判定データＤとして工具の速度及び位置を使用する場合は、制御装置１が制御周期毎にこれらの値を算出又は取得し、判定データ取得部１０８に入力することができる。すなわちこの場合は、制御周期が学習周期となる。この際、基本的に判定データＤは１周期分（数ｍｓ）の加工結果に基づいて計算されるが、さらに長いスパン（過去１ｓなど）にわたる加工結果に基づいて計算しても構わない。一方、判定データＤとしてサイクルタイム、加工精度及び加工面品位を使用する場合は、切削ブロックやプログラムの切れ目など、加工中の適切なタイミング毎に算出又は取得できる。例えば切削ブロックやプログラムのサイクルタイムは制御装置１により測定可能であり、加工精度及び加工面品位は、切削ブロックやプログラムの切れ目においてカメラやレーザセンサを測定モードとすることなどにより、機械内で測定することができる。判定データ取得部１０８は、これらの測定値を判定データＤとして取得できる。この場合は、加工中の適切なタイミング毎に１周期の学習が行われる。
【００２３】
学習部１１０に対して入力される状態変数Ｓは、学習部１１０による学習周期で考えた場合、判定データＤが取得された１学習周期前のデータに基づくものとなる。すなわち、制御装置１が備える機械学習装置１００が学習を進める間、環境においては、状態変数Ｓの取得、状態変数Ｓに基づいて調整された機械各軸への指令の出力、判定データＤの取得が繰り返し実施される。
【００２４】
学習部１１０は、例えば制御装置１のプロセッサの一機能として構成できる。或いは学習部１１０は、例えばプロセッサを機能させるためのソフトウェアとして構成できる。学習部１１０は、機械学習と総称される任意の学習アルゴリズムに従い、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態に対応する、機械各軸への指令を学習する。学習部１１０は、状態変数Ｓと判定データＤとを含むデータ集合に基づく学習を、制御周期毎に、又は加工中の適切なタイミング毎に反復実行することができる。
【００２５】
このような学習サイクルを繰り返すことにより、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態を示す状態変数Ｓと、機械各軸への指令との相関性を暗示する特徴を自動的に識別することができる。学習アルゴリズムの開始時には状態変数Ｓと機械各軸への指令との相関性は実質的に未知であるが、学習部１１０は、学習を進めるに従い徐々に特徴を識別して相関性を解釈する。状態変数Ｓと機械各軸への指令との相関性が、ある程度信頼できる水準まで解釈されると、学習部１１０が反復出力する学習結果は、現在状態（つまり機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態）に対して、機械各軸への指令をどのような値とするべきかという行動の選択（つまり意思決定）を行うために使用できるものとなる。
【００２６】
上記したように、制御装置１が備える機械学習装置１００は、状態観測部１０６が観測した状態変数Ｓと判定データ取得部１０８が取得した判定データＤとを用いて、学習部１１０が機械学習アルゴリズムに従い、機械各軸への指令を学習するものである。状態変数Ｓは、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態といったデータで構成され、また判定データＤは、工具の速度及び位置（又はサイクルタイム、加工精度及び加工面品位）を取得することにより一義的に求められる。したがって、制御装置１が備える機械学習装置１００によれば、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態に応じた機械各軸への指令を、演算や目算によらずに自動的に、しかも正確に求めることができるようになる。
【００２７】
そして、機械各軸への指令を、演算や目算によらずに自動的に求めることができれば、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態を把握するだけで、機械各軸への指令の適切な値を迅速に決定することができる。したがって、機械各軸への指令を効率よく決定することができる。
【００２８】
上記構成を有する機械学習装置１００では、学習部１１０が実行する学習アルゴリズムは特に限定されず、機械学習として公知の学習アルゴリズムを採用できる。図４は、図３に示す制御装置１の一形態であって、学習アルゴリズムの一例として強化学習を実行する学習部１１０を備えた構成を示す。強化学習は、学習対象が存在する環境の現在状態（つまり入力）を観測するとともに現在状態で所定の行動（つまり出力）を実行し、その行動に対し何らかの報酬を与えるというサイクルを試行錯誤的に反復して、報酬の総計が最大化されるような方策（本願の機械学習装置では機械各軸への指令の決定）を最適解として学習する手法である。
【００２９】
図４に示す制御装置１が備える機械学習装置１００において、学習部１１０は、状態変数Ｓに基づいて機械各軸への指令が決定された場合における工具の速度及び位置（又はサイクルタイム、加工精度及び加工面品位）の適否判定結果（状態変数Ｓが取得された次の学習周期で用いられる判定データＤに相当）に関連する報酬Ｒを求める報酬計算部１１２と、報酬Ｒを用いて、機械各軸への指令の価値を表す関数Ｑを更新する価値関数更新部１１４とを備える。学習部１１０は、価値関数更新部１１４が関数Ｑの更新を繰り返すことによって機械各軸への指令の最適解を学習する。
【００３０】
学習部１１０が実行する強化学習のアルゴリズムの一例を説明する。この例によるアルゴリズムは、Ｑ学習（Ｑ−ｌｅａｒｎｉｎｇ）として知られるものであって、行動主体の状態ｓと、その状態ｓで行動主体が選択し得る行動ａとを独立変数として、状態ｓで行動ａを選択した場合の行動の価値を表す関数Ｑ（ｓ，ａ）を学習する手法である。状態ｓで価値関数Ｑが最も高くなる行動ａを選択することが最適解となる。状態ｓと行動ａとの相関性が未知の状態でＱ学習を開始し、任意の状態ｓで種々の行動ａを選択する試行錯誤を繰り返すことで、価値関数Ｑを反復して更新し、最適解に近付ける。ここで、状態ｓで行動ａを選択した結果として環境（つまり状態ｓ）が変化したときに、その変化に応じた報酬（つまり行動ａの重み付け）ｒが得られるように構成し、より高い報酬ｒが得られる行動ａを選択するように学習を誘導することで、価値関数Ｑを比較的短時間で最適解に近付けることができる。
【００３１】
価値関数Ｑの更新式は、一般に下記の数１式のように表すことができる。数１式において、ｓｔ及びａｔはそれぞれ時刻ｔにおける状態及び行動であり、行動ａｔにより状態はｓｔ＋１に変化する。ｒｔ＋１は、状態がｓｔからｓｔ＋１に変化したことで得られる報酬である。ｍａｘＱの項は、時刻ｔ＋１で最大の価値Ｑになる（と時刻ｔで考えられている）行動ａを行ったときのＱを意味する。α及びγはそれぞれ学習係数及び割引率であり、０＜α≦１、０＜γ≦１で任意設定される。
【００３２】
【数１】
2019020959.tif 000003
【００３３】
学習部１１０がＱ学習を実行する場合、状態観測部１０６が観測した状態変数Ｓ及び判定データ取得部１０８が取得した判定データＤは、更新式の状態ｓに該当し、現在状態（つまり機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態）に対する機械各軸への指令をどのように決定するべきかという行動は、更新式の行動ａに該当し、報酬計算部１１２が求める報酬Ｒは、更新式の報酬ｒに該当する。よって価値関数更新部１１４は、現在状態に対する機械各軸への指令の出力の価値を表す関数Ｑを、報酬Ｒを用いたＱ学習により繰り返し更新する。
【００３４】
報酬計算部１１２が求める報酬Ｒは、例えば、機械各軸への指令の出力を決定した後に、決定した指令に基づく機械各軸の制御を行ったときに、工具の速度及び位置（又はサイクルタイム、加工精度及び加工面品位）の適否判定結果が「適」と判定される場合に正（プラス）の報酬Ｒとし、適否判定結果が「否」と判定される場合に負（マイナス）の報酬Ｒとすることができる。
【００３５】
例えば制御周期毎に学習を行う場合であれば、工具速度とプログラム指令速度との差が所定の速度差範囲内であれば＋５、速度差範囲を超えて工具速度のほうが速ければ＋１０、速度差範囲を超えて工具速度のほうが遅ければ−１０などと報酬Ｒを設定できる。これにより、関数Ｑは、サイクルタイムが早くなる指令ほど価値が大きいと評価するようになる。また、工具位置とプログラム指令経路との差が所定の誤差範囲内であれば＋５、誤差範囲よりも小さければ＋１０、誤差範囲を超えて大きければ−１０などと報酬Ｒを設定できる。これにより、関数Ｑは、加工精度が高くなる指令ほど価値が大きいと評価するようになる。（図６参照）
【００３６】
また、加工中の適切なタイミング毎に学習を行う場合であれば、サイクルタイムが予め定められた時間の範囲内であれば＋０、予め定められた時間の範囲よりも短ければ＋５、予め定められた時間の範囲を超えて長ければ−５などと報酬Ｒを設定できる。これにより、関数Ｑは、サイクルタイムが早くなる指令ほど価値が大きいと評価するようになる。また、加工精度の評価値が予め定められた範囲内であれば＋０、予め定められた範囲を超えて良ければ＋５、予め定められた範囲を超えて悪ければ−５などと報酬Ｒを設定できる。これにより、関数Ｑは、加工精度が良くなる指令ほど価値が大きいと評価するようになる。また、加工面品位の評価値が予め定められた範囲内であれば＋０、予め定められた範囲を超えて良ければ＋５、予め定められた範囲を超えて悪ければ−５などと報酬Ｒを設定できる。これにより、関数Ｑは、加工面品位が良くなる指令ほど価値が大きいと評価するようになる。（図７Ａ、図７Ｂ参照）
【００３７】
価値関数更新部１１４は、状態変数Ｓと判定データＤと報酬Ｒとを、関数Ｑで表される行動価値（例えば数値）と関連付けて整理した行動価値テーブルを持つことができる。この場合、価値関数更新部１１４が関数Ｑを更新するという行為は、価値関数更新部１１４が行動価値テーブルを更新するという行為と同義である。Ｑ学習の開始時には環境の現在状態とロボットが備える各モータの移動速度の調整量との相関性は未知であるから、行動価値テーブルにおいては、種々の状態変数Ｓと判定データＤと報酬Ｒとが、無作為に定めた行動価値の値（関数Ｑ）と関連付けた形態で用意されている。なお報酬計算部１１２は、判定データＤが分かればこれ対応する報酬Ｒを直ちに算出でき、算出した値Ｒが行動価値テーブルに書き込まれる。
【００３８】
工具の速度及び位置（又はサイクルタイム、加工精度及び加工面品位）の適否判定結果に応じた報酬Ｒを用いてＱ学習を進めると、より高い報酬Ｒが得られる行動を選択する方向へ学習が誘導され、選択した行動を現在状態で実行した結果として変化する環境の状態（つまり状態変数Ｓ及び判定データＤ）に応じて、現在状態で行う行動についての行動価値の値（関数Ｑ）が書き換えられて行動価値テーブルが更新される。この更新を繰り返すことにより、行動価値テーブルに表示される行動価値の値（関数Ｑ）は、適正な行動ほど大きな値となるように書き換えられる。このようにして、未知であった環境の現在状態（機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態）とそれに対する行動（機械各軸への指令）との相関性が徐々に明らかになる。つまり行動価値テーブルの更新により、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態と、機械各軸への指令との関係が最適解に徐々に近づけられる。
【００３９】
図５を参照して、学習部１１０が実行する上記したＱ学習のフロー（つまり機械学習方法の一形態）をさらに説明する。まずステップＳＡ０１で、価値関数更新部１１４は、その時点での行動価値テーブルを参照しながら、状態観測部１０６が観測した状態変数Ｓが示す現在状態で行う行動として機械各軸への指令を無作為に選択する。次に価値関数更新部１１４は、ステップＳＡ０２で、状態観測部１０６が観測している現在状態の状態変数Ｓを取り込み、ステップＳＡ０３で、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。次に価値関数更新部１１４は、ステップＳＡ０４で、判定データＤに基づき、機械各軸への指令が適当であったか否かを判断し、適当であった場合、ステップＳＡ０５で、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。ステップＳＡ０４で、機械各軸への指令が適当でなかったと判断した場合、ステップＳＡ０７で、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用し、次いでステップＳＡ０６で、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。学習部１１０は、ステップＳＡ０１〜ＳＡ０７を繰り返すことで行動価値テーブルを反復して更新し、機械各軸への指令の最適解の学習を進行させる。なお、ステップＳＡ０４からステップＳＡ０７までの報酬Ｒを求める処理及び価値関数の更新処理は、判定データＤに含まれるそれぞれのデータについて実行される。
【００４０】
強化学習を進める際に、例えばＱ学習の代わりに、ニューラルネットワークを用いることもできる。図８Ａは、ニューロンのモデルを模式的に示す。図８Ｂは、図８Ａに示すニューロンを組み合わせて構成した三層のニューラルネットワークのモデルを模式的に示す。ニューラルネットワークは、例えば、ニューロンのモデルを模した演算装置や記憶装置等によって構成できる。
【００４１】
図８Ａに示すニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）に対する結果ｙを出力するものである。各入力ｘ１〜ｘ３には、この入力ｘに対応する重みｗ（ｗ１〜ｗ３）が掛けられる。これにより、ニューロンは、次の数２式により表現される出力ｙを出力する。なお、数２式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆｋは活性化関数である。
【００４２】
【数２】
2019020959.tif 000004
【００４３】
図８Ｂに示す三層のニューラルネットワークは、左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。図示の例では、入力ｘ１、ｘ２、ｘ３のそれぞれに対応の重み（総称してｗ１で表す）が乗算されて、個々の入力ｘ１、ｘ２、ｘ３がいずれも３つのニューロンＮ１１、Ｎ１２、Ｎ１３に入力されている。
【００４４】
図８Ｂでは、ニューロンＮ１１〜Ｎ１３の各々の出力を、総称してｚ１で表す。ｚ１は、入カベクトルの特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ１のそれぞれに対応の重み（総称してｗ２で表す）が乗算されて、個々の特徴ベクトルｚ１がいずれも２つのニューロンＮ２１、Ｎ２２に入力されている。特徴ベクトルｚ１は、重みＷ１と重みＷ２との間の特徴を表す。
【００４５】
図８Ｂでは、ニューロンＮ２１〜Ｎ２２の各々の出力を、総称してｚ２で表す。ｚ２は、特徴ベクトルｚ１の特徴量を抽出した特徴ベクトルと見なすことができる。図示の例では、特徴ベクトルｚ２のそれぞれに対応の重み（総称してｗ３で表す）が乗算されて、個々の特徴ベクトルｚ２がいずれも３つのニューロンＮ３１、Ｎ３２、Ｎ３３に入力されている。特徴ベクトルｚ２は、重みＷ２と重みＷ３との間の特徴を表す。最後にニューロンＮ３１〜Ｎ３３は、それぞれ結果ｙ１〜ｙ３を出力する。
なお、三層以上の層を為すニューラルネットワークを用いた、いわゆるディープラーニングの手法を用いることも可能である。
【００４６】
制御装置１が備える機械学習装置１００においては、状態変数Ｓと判定データＤとを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、機械各軸への指令（結果ｙ）を出力することができる。また、制御装置１が備える機械学習装置１００においては、ニューラルネットワークを強化学習における価値関数として用い、状態変数Ｓと行動ａとを入力ｘとして、学習部１１０が上記したニューラルネットワークに従う多層構造の演算を行うことで、当該状態における当該行動の価値（結果ｙ）を出力することもできる。なお、ニューラルネットワークの動作モードには、学習モードと価値予測モードとがあり、例えば学習モードで学習データセットを用いて重みｗを学習し、学習した重みｗを用いて価値予測モードで行動の価値判断を行うことができる。なお価値予測モードでは、検出、分類、推論等を行うこともできる。
【００４７】
上記した制御装置１の構成は、プロセッサが実行する機械学習方法（或いはソフトウェア）として記述できる。この機械学習方法は、機械各軸への指令を学習する機械学習方法であって、コンピュータのＣＰＵが、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態を、環境の現在状態を表す状態変数Ｓとして観測するステップと、調整された機械各軸への指令に応じて得られた工具の速度及び位置（又はサイクルタイム、加工精度及び加工面品位）の適否判定結果を示す判定データＤを取得するステップと、状態変数Ｓと判定データＤとを用いて、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態と、機械各軸への指令とを関連付けて学習するステップとを有する。
【００４８】
＜実施の形態２＞
図９は、実施の形態２による制御装置２を示す。制御装置２は、機械学習装置１２０と、状態観測部１０６が観測する状態変数Ｓである機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態を、状態データＳ０として取得する状態データ取得部３とを備える。状態データ取得部３は、制御装置２や、機械が備える各種センサなどから、状態データＳ０を取得することができる。
【００４９】
制御装置２が有する機械学習装置１２０は、機械各軸への指令を機械学習により自ら学習するためのソフトウェア（学習アルゴリズム等）及びハードウェア（プロセッサ等）に加えて、学習結果に基づいて求めた機械各軸への指令を制御装置２に出力するためのソフトウェア（演算アルゴリズム等）及びハードウェア（プロセッサ等）を含むものである。制御装置２が含む機械学習装置１２０は、１つの共通のプロセッサが、学習アルゴリズム、演算アルゴリズム等の全てのソフトウェアを実行する構成を有することもできる。
【００５０】
意思決定部１２２は、例えば制御装置２が備えるプロセッサの一機能として構成できる。或いは意思決定部１２２は、例えばプロセッサを機能させるためのソフトウェアとして構成できる。意思決定部１２２は、学習部１１０が学習した結果に基づいて、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態に対する、機械各軸への指令を含む指令値Ｃを生成し、出力する。意思決定部１２２が指令値Ｃを制御装置２に対して出力した場合、これに応じて、環境の状態が変化する。
【００５１】
状態観測部１０６は、意思決定部１２２による環境への指令値Ｃを出力した後に変化した状態変数Ｓを次の学習周期において観測する。学習部１１０は、変化した状態変数Ｓを用いて、例えば価値関数Ｑ（すなわち行動価値テーブル）を更新することで、機械各軸への指令を学習する。
【００５２】
意思決定部１２２は、学習結果に基づいて求めた機械各軸への指令を示す指令値Ｃを制御装置２へと出力する。この学習周期を繰り返すことにより、機械学習装置１２０は機械各軸への指令の学習を進め、自身が決定する機械各軸への指令の信頼性を徐々に向上させる。
【００５３】
上記構成を有する制御装置２が備える機械学習装置１２０は、前述した機械学習装置１００と同等の効果を奏する。特に機械学習装置１２０は、意思決定部１２２の出力によって環境の状態を変化させることができる。他方、機械学習装置１００では、学習部１１０の学習結果を環境に反映させるための意思決定部に相当する機能を、外部装置に求めることができる。
【００５４】
図６は、制御周期毎に学習を行う場合において、制御装置２の学習部１１０が実行するＱ学習のフローの一例を具体的に示したものである。まずステップＳＢ０１で、状態観測部１０６は、前回の行動の後に変化した、現在の状態変数Ｓを観測する。ステップＳＢ０２で、意思決定部１２２は、その時点での行動価値テーブルを参照しながら、状態変数Ｓが示す現在状態で行う行動として最適な機械各軸への指令を選択する。ここで意思決定部１２２は、その時点での行動価値テーブルを参照しながら、機械各軸への指令を所定の確率でランダムに選択しても良い。これにより学習効率を上げることができる。ステップＳＢ０３で、学習部１１０は、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。学習部１１０は、ステップＳＢ０４で、判定データＤのうち工具速度に基づき、機械各軸への指令が適当であったか否かを判断する。またステップＳＢ０５で、判定データＤのうち工具位置に基づき、機械各軸への指令が適当であったか否かを判断する。ステップＳＢ０４，ＳＢ０５のいずれにおいても、指令が適当であったと判断した場合、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用し、適当でなかったと判断した場合、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用する。最後にステップＳＢ０６で、学習部１１０は、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。
【００５５】
図７Ａ及び図７Ｂは、加工中の適切なタイミング毎に学習を行う場合において、制御装置２の学習部１１０が実行するＱ学習のフローの一例を具体的に示したものである。まずステップＳＣ０１で、状態観測部１０６は、前回の行動の後に変化した、現在の状態変数Ｓを観測する。ステップＳＣ０２で、意思決定部１２２は、その時点での行動価値テーブルを参照しながら、状態変数Ｓが示す現在状態で行う行動として最適な機械各軸への指令を選択する。ここで意思決定部１２２は、その時点での行動価値テーブルを参照しながら、機械各軸への指令を所定の確率でランダムに選択しても良い。これにより学習効率を上げることができる。ステップＳＣ０３で、切削ブロックやプログラムの切れ目など学習に適したタイミングが到来したか、すなわち学習条件が成就しているか否かが判定される。学習条件が成就していなければ、ステップＳＣ０１に遷移する。学習条件が成就していればステップＳＣ０４に遷移し、学習部１１０は、判定データ取得部１０８が取得している現在状態の判定データＤを取り込む。学習部１１０は、ステップＳＣ０５で、判定データＤのうちサイクルタイムに基づき、機械各軸への指令が適当であったか否かを判断する。ステップＳＣ０６では、判定データＤのうち加工精度に基づき、機械各軸への指令が適当であったか否かを判断する。ステップＳＣ０７では、判定データＤのうち加工面品位に基づき、機械各軸への指令が適当であったか否かを判断する。ステップＳＣ０５，ＳＣ０６，ＳＣ０７のいずれにおいても、指令が適当であったと判断した場合は、報酬計算部１１２が求めた正の報酬Ｒを関数Ｑの更新式に適用し、適当でなかったと判断した場合は、報酬計算部１１２が求めた負の報酬Ｒを関数Ｑの更新式に適用する。最後にステップＳＣ０８で、学習部１１０は、現在状態における状態変数Ｓ及び判定データＤと報酬Ｒと行動価値の値（更新後の関数Ｑ）とを用いて行動価値テーブルを更新する。
【００５６】
図１０は、機械１６０を備えた一実施形態によるシステム１７０を示す。システム１７０は、同種の構成を有する複数の機械１６０、１６０’と、それら機械１６０、１６０’を互いに接続する有線／無線のネットワーク１７２とを備え、複数の機械１６０のうち少なくとも１つが、上記した制御装置２を備える機械１６０として構成される。またシステム１７０は、制御装置２を備えない機械１６０’を含むことができる。機械１６０、１６０’は、同じ目的の作業に必要とされる機構を有する。
【００５７】
上記構成を有するシステム１７０は、複数の機械１６０、１６０’のうちで制御装置２を備える機械１６０が、学習部１１０の学習結果を用いて、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態に対する、機械各軸への指令を、演算や目算によらずに自動的に、しかも正確に求めることができる。また、少なくとも１つの機械１６０の制御装置２が、他の複数の機械１６０、１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全ての機械１６０、１６０’に共通する機械各軸への指令を学習し、その学習結果を全ての機械１６０、１６０’が共有するように構成できる。したがってシステム１７０によれば、より多様なデータ集合（状態変数Ｓ及び判定データＤを含む）を入力として、機械各軸への指令の学習の速度や信頼性を向上させることができる。
【００５８】
図１１は、機械１６０’を備えた他の実施形態によるシステム１７０’を示す。システム１７０’は、機械学習装置１２０（又は１００）と、同種の構成を有する複数の機械１６０’と、それら機械１６０’と機械学習装置１２０（又は１００）とを互いに接続する有線／無線のネットワーク１７２とを備える。
【００５９】
上記構成を有するシステム１７０’は、機械学習装置１２０（又は１００）が、複数の機械１６０’のそれぞれについて得られた状態変数Ｓ及び判定データＤに基づき、全ての機械１６０’に共通する機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態に対する機械各軸への指令を学習し、その学習結果を用いて、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態に対する機械各軸への指令を、演算や目算によらずに自動的に、しかも正確に求めることができる。
【００６０】
システム１７０’は、機械学習装置１２０（又は１００）が、ネットワーク１７２に用意されたクラウドサーバ等に存在する構成を有することができる。この構成によれば、複数の機械１６０’のそれぞれが存在する場所や時期に関わらず、必要なときに必要な数の機械１６０’を機械学習装置１２０（又は１００）に接続することができる。
【００６１】
システム１７０、１７０’に従事する作業者は、機械学習装置１２０（又は１００）による学習開始後の適当な時期に、機械学習装置１２０（又は１００）による機械各軸への指令の学習の到達度（すなわち機械各軸への指令の信頼性）が要求レベルに達したか否かの判断を実行することができる。
【００６２】
＜実施の形態３＞
図１２は、上述の制御装置１（又は２）を一要素として用いた制御システム３００の一例を示す図である。制御システム３００は、ＣＡＤ３１０、ＣＡＭ３２０、ＣＮＣ３３０を有する。ここでＣＮＣ３３０は制御装置１（又は２）である。
【００６３】
ＣＡＤ３１０は、加工ワークのモデルデータを作成する。ＣＡＭ３２０は、ＣＡＤ３１０が作成したモデルデータを、加工プログラムに変換する。加工プログラムの形式には、［１］各軸への指令形式、すなわち機械の各軸の動きを指定する冗長自由度のない形式と、［２］工具位置・姿勢形式、すなわち冗長自由度を有する形式と、の２種類があるものとする。［１］各軸への指令形式のプログラムは、例えば以下に示す形式（２）のように記述される。ここで「Ｘ＿Ｙ＿Ｚ＿」は直線軸位置又は工具位置、「Ｂ＿Ｃ＿」は回転軸の角度を示す。［２］工具位置・姿勢形式のプログラムは、例えば以下に示す形式（３）のように記述される。ここで「Ｘ＿Ｙ＿Ｚ＿」は工具位置、「Ｉ＿Ｊ＿Ｋ＿」は工具姿勢を示す。なお、［１］又は［２］のいずれの形式のプログラムを出力するかは、ＣＡＭ３２０が備える機能や設定などに依存する。
Ｘ＿Ｙ＿Ｚ＿Ｂ＿Ｃ＿；        ・・・（２）
Ｘ＿Ｙ＿Ｚ＿Ｉ＿Ｊ＿Ｋ＿；    ・・・（３）
【００６４】
ＣＮＣ３３０は、ＣＡＭ３２０が出力した加工プログラム［１］又は［２］を取得し（［３］又は［４］）、取得した加工プログラムを解析して補間データを生成する。補間データの形式には、［５］各軸への指令形式、すなわち機械の各軸の動きを指定する冗長自由度のない形式と、［６］工具位置・姿勢形式、すなわち冗長自由度を有する形式と、の２種類があるものとする。［５］各軸への指令形式の補間データは、例えば以下に示す形式（４）のように記述される。ここで「Ｘ＿Ｙ＿Ｚ＿」は直線軸位置、「Ｂ＿Ｃ＿」は回転軸の角度を示す。［６］工具位置・姿勢形式の補間データは、例えば以下に示す形式（５）のように記述される。ここで「Ｘ＿Ｙ＿Ｚ＿」は工具位置、「Ｉ＿Ｊ＿Ｋ＿」は工具姿勢を示す。
Ｘ＿Ｙ＿Ｚ＿Ｂ＿Ｃ＿；        ・・・（４）
Ｘ＿Ｙ＿Ｚ＿Ｉ＿Ｊ＿Ｋ＿；    ・・・（５）
【００６５】
ＣＮＣ３３０は、加工プログラム［２］（冗長自由度あり）から補間データ［５］（冗長自由度なし）を生成する場合、機械学習装置１００又は１２０の状態観測部１０６に、現在の機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態を示す状態変数Ｓを入力し、これに対応する機械各軸の指令を学習部１１０の出力として得る。この出力を補間データ［５］として利用することができる。
【００６６】
続いてＣＮＣ３３０は、生成された補間データ［５］又は［６］に基づいて（［７］又は［８］）、機械各軸への指令データ［９］を生成する。なお機械各軸への指令［９］には冗長自由度はない。［９］機械各軸への指令は、例えば以下に示す形式（６）のように記述される。ここで「Ｘ＿Ｙ＿Ｚ＿」は直線軸位置、「Ｂ＿Ｃ＿」は回転軸の角度を示す。
Ｘ＿Ｙ＿Ｚ＿Ｂ＿Ｃ＿；        ・・・（６）
【００６７】
ＣＮＣ３３０は、補間データ［６］（冗長自由度あり）から機械各軸への指令［９］（冗長自由度なし）を生成する場合、機械学習装置１００又は１２０の状態観測部１０６に、現在の機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態を示す状態変数Ｓを入力し、これに対応する機械各軸の指令を学習部１１０の出力として得る。この出力を機械各軸への指令［９］として利用することができる。
【００６８】
なお、制御システム３００は、ＣＮＣ３３０の機械学習装置１００又は１２０を学習させる際にも利用することができる。例えばＣＮＣ３３０は、ＣＡＭ３２０が出力する加工プログラム［２］又は［３］をすべて補間データ［６］（冗長自由度あり）に変換する。それから、自由度の中から１つの動作、つまり機械各軸への指令をランダムに選択し、実施の形態１又は２として示した手法で加工結果を評価し、学習モデルを構築する。
【００６９】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００７０】
例えば、機械学習装置１００，１２０が実行する学習アルゴリズム、機械学習装置１２０が実行する演算アルゴリズム、制御装置１、２が実行する制御アルゴリズム等は、上述したものに限定されず、様々なアルゴリズムを採用できる。
【００７１】
また、上記した実施形態では制御装置１（又は２）と機械学習装置１００（又は１２０）が異なるＣＰＵを有する装置として説明しているが、機械学習装置１００（又は１２０）は制御装置１（又は２）が備えるプロセッサと、記憶装置に記憶されるシステム・プログラムにより実現するようにしても良い。
【００７２】
また、上記実施形態では、状態変数Ｓとして、機械各軸の動きを示すデータである位置、速度、加速度、加加速度を利用する例を示したが、これらのデータの一部のみを状態変数Ｓとして利用しても良く、機械各軸の動きを示す他のデータを状態変数Ｓとして利用しても良い。また、上記実施形態では、判定データＤとして、加工結果を示すデータである工具の速度及び位置（又はサイクルタイム、加工精度及び加工面品位）を利用する例を示したが、これらのデータの一部のみを判定データＤとして利用しても良く、加工結果を示す他のデータを判定データＤとして利用しても良い。
【００７３】
また、上記実施形態では、判定データＤである工具の速度及び位置を用いて報酬Ｒを計算する例（図６）、及び判定データＤであるサイクルタイム、加工精度及び加工面品位を用いて報酬Ｒを計算する例（図７Ａ及び図７Ｂ）を示した。しかし、本発明はこれに限定されるものではなく、これらの判定データＤの一部のみを利用して報酬Ｒを計算しても良く、加工結果を示す他の判定データＤを利用して報酬Ｒを計算しても良い。すなわち、機械各軸への指令を最適化するにあたって考慮すべき要素、すなわち得たい加工結果に関わる判定データＤを、報酬Ｒの計算に利用すれば良い。例えば、目的が加工時間を短縮することのみであれば、加工時間に関係のある工具の速度やサイクルタイムのみを判定データＤとして用い、報酬Ｒを計算すれば良い。目的が加工時間と加工精度との両立であれば、加工時間に関係のある工具の速度やサイクルタイムと、加工精度に関係のある工具の位置や加工精度と、の両方を判定データＤとして用い、報酬Ｒを計算すれば良い。
【００７４】
また、上記実施形態では、学習部１１０は、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態と、機械各軸への指令との相関を示す学習モデルを構築する例を主に示した。しかし本発明はこれに限定されるものではなく、学習部１１０は、機械各軸の動き（位置、速度、加速度、加加速度など）又はプログラムの実行状態と、補間データとの相関を示す学習モデルも構築できる。
【００７５】
また、実施の形態１では学習によるモデルの構築手法、実施の形態２では加工（機械各軸への指令の出力）を行いながら学習を進める手法を主に説明したが、実際の加工においては、新たな学習を行うことなく、上述の手法によって構築された学習モデルを繰り返し利用して制御装置１（又は２）を運転しても良い。
【００７６】
また、上記実施形態では、制御装置１（又は２）は実際の加工を繰り返すことで学習を進める例を示したが、本発明はこれに限定されるものではなく、加工シミュレーションを繰り返すことで学習を進めても良い。
【００７７】
また、学習は、基本的にはワーク毎に実施することが好ましい。ワークが異なれば、最適な機械各軸への指令も異なるはずだからである。しかしながら、既存の学習モデルを、類似ワークの加工に利用することも可能である。類似ワークとは、例えば学習の対象となったワークとは径のみが異なるなど、加工上の差異が小さいワークを言う。
【００７８】
また、ワークを複数の部分に分割し、部分毎に学習を実施しても良い。この際、部分毎に加工の目的を区別することも可能である。すなわち、一部は品位重視、一部はスピード重視で加工したい場合は、各部分で異なる判定データＤを用い、異なる学習モデルを作成することができる。
【符号の説明】
【００７９】
１，２  制御装置
３  状態データ取得部
１００  機械学習装置
１０６  状態観測部
１０８  判定データ取得部
１１０  学習部
１１２  報酬計算部
１１４  価値関数更新部
１２０  機械学習装置
１２２  意思決定部
１６０，１６０’  機械
１７０，１７０’  システム
１７２  ネットワーク
３００  制御システム
３１０  ＣＡＤ
３２０  ＣＡＭ
３３０  ＣＮＣ（制御装置）
【図１】
2019020959.tif 000005
【図２】
2019020959.tif 000006
【図３】
2019020959.tif 000007
【図４】
2019020959.tif 000008
【図５】
2019020959.tif 000009
【図６】
2019020959.tif 000010
【図７Ａ】
2019020959.tif 000011
【図７Ｂ】
2019020959.tif 000012
【図８Ａ】
2019020959.tif 000013
【図８Ｂ】
2019020959.tif 000014
【図９】
2019020959.tif 000015
【図１０】
2019020959.tif 000016
【図１１】
2019020959.tif 000017
【図１２】
2019020959.tif 000018