(57)【要約】【課題】リジッドタップの加工精度を維持しつつサイクルタイムを短縮できる数値制御装置を提供する。【解決手段】数値制御装置１００は、主軸の回転数と送り速度とを同期させてリジッドタップを実行するリジッドタップ制御部１１０、ワーク上面以上の高さに設定されたＲ点において、主軸の回転数と送り速度との同期誤差の監視を開始又は終了する同期誤差監視部１２０、ワーク上面の位置を検出するワーク上面検出部１３０を有する。同期誤差監視部１３０は、Ｒ点に代えて、ワーク上面の位置において同期誤差の監視を開始する。【選択図】図７
2018083238.tif 000002
【特許請求の範囲】
【請求項１】
主軸の回転数と送り速度とを同期させてリジッドタップを実行するリジッドタップ制御部と、
ワーク上面以上の高さに設定されたＲ点において、主軸の回転数と送り速度との同期誤差の監視を開始又は終了する同期誤差監視部を有する数値制御装置において、
前記ワーク上面の位置を検出するワーク上面検出部をさらに備え、
前記同期誤差監視部は、前記Ｒ点に代えて、前記ワーク上面の位置において前記同期誤差の監視を開始することを特徴とする
数値制御装置。
【請求項２】
主軸の回転数と送り速度とを同期させてリジッドタップを実行するリジッドタップ制御部と、
ワーク上面以上の高さに設定されたＲ点において、主軸の回転数と送り速度との同期誤差の監視を開始又は終了する同期誤差監視部を有する数値制御装置において、
前記ワーク上面の位置を検出するワーク上面検出部と、
少なくとも前記ワーク上面の位置を状態データとして入力すると、前記状態データにおいて、サイクルタイム及びワーク上面における同期誤差が所定の条件を満たす前記Ｒ点を出力するよう学習させた機械学習部と、をさらに備え、
前記同期誤差監視部は、前記機械学習部が出力する前記Ｒ点において、前記同期誤差の監視を開始することを特徴とする
数値制御装置。
【請求項３】
主軸の回転数と送り速度とを同期させてリジッドタップを実行するリジッドタップ制御部と、
ワーク上面以上の高さに設定されたＲ点において、主軸の回転数と送り速度との同期誤差の監視を開始又は終了する同期誤差監視部を有する数値制御装置において、
前記ワーク上面の位置を検出するワーク上面検出部と、
前記同期誤差監視部は、前記Ｒ点に代えて、前記ワーク上面の位置において前記同期誤差の監視を終了することを特徴とする
数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は数値制御装置に関し、特にリジッドタップのサイクルタイムを短縮できる数値制御装置に関する。
【背景技術】
【０００２】
リジッドタップとは、主軸の回転数と送り速度とを同期させることで、一定のピッチでねじ切りを行う加工方法である。例えば特許文献１には、従来のリジッドタップの一例が開示されている。
【０００３】
図１を用いて、従来のリジッドタップについて説明する。主軸の回転数と送り速度との同期を開始する位置をＲ点と称する。Ｒ点は、ワーク上面から所定の距離だけ上方に設定される。数値制御装置は、Ｒ点までは主軸を早送りで移動させる。これによりサイクルタイムを短縮できる。Ｒ点から先は、同期精度を確保できる程度の送り速度で加工を行う。一般に、数値制御装置による指令から実際の軸の動作（Ｚ方向の移動及び軸回転）までには、ある程度の遅れが生じ、送り速度が速すぎると同期精度が確保できなくなるためである。
【０００４】
従来の数値制御装置は、Ｒ点で一旦主軸の移動を停止させる。ここまでに生じた指令に対する動作の遅れを一旦解消することで、以降の同期精度を確保するためである。数値制御装置は、Ｒ点以降は同期精度を監視し、指定した誤差量を超えるとエラーとする。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３４３３９６７号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、サイクルタイム短縮のためにＲ点での軸停止を実施しないケースが増えている。これは例えば、サイクルタイム短縮や、軸停止により発生するショックの抑制などの要請があるためである。しかしながら、Ｒ点での軸停止を実施しないことで、以下のような問題が生じうる。
【０００７】
まず、Ｒ点における穴あけ軸の位置偏差量、すなわち指令に対する主軸の動作の遅れが大きくなり、リジッドタップの同期誤差、すなわち主軸と穴あけ軸間の同期誤差も大きくなる。そのため、従来と同じようにＲ点以降の同期精度を監視すると、エラーの発生頻度が高くなる。これを抑制するためには、Ｒ点での軸停止をしない場合には、同期精度監視処理においてエラーと判定すべき誤差量のしきい値を大きく設定しなければならない。結果として、Ｒ点での軸停止をする場合と比較して加工精度が悪くなる可能性がある。すなわち、Ｒ点で軸停止をしないことにより生じる誤差を見過ごすこととすると、本来見逃すべきでない誤差をも見逃してしまうというデメリットが生じる。
【０００８】
なお、もし数値制御装置がワーク上面の位置を把握していれば、Ｒ点で軸停止しなくとも、遅くともワーク上面から厳密な同期精度監視を行うことによって、加工精度を維持できる可能性がある。しかしながら、現在までにそのような手法は提案されていない。
【０００９】
あるいは、Ｒ点とワーク上面との距離を離せば、Ｒ点からワーク上面まで工具を移動させる間に穴あけ軸の位置偏差量を吸収できるから、Ｒ点で軸停止しなくともタップの加工精度をある程度維持できる可能性がある。しかしながら、Ｒ点とワーク上面との距離を離せばサイクルタイムが長くなるという問題がある。
【００１０】
図２を用いてこの問題についてさらに説明する。上図は、Ｒ点とワーク上面との距離が近い場合の、穴あけ方向の主軸速度と、位置偏差量と、の時間変化を示している。この場合、サイクルタイムは短くできるが、切削開始時の誤差量は大きくなる。一方、下図は、Ｒ点とワーク上面との距離が離れている場合の、穴あけ方向の主軸速度と、位置偏差量と、の時間変化を示している。この場合、切削開始時の誤差量は小さくできるが、サイクルタイムが伸びてしまう。
【００１１】
本発明は、このような問題点を解決するためになされたものであり、リジッドタップの加工精度を維持しつつサイクルタイムを短縮できる数値制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一実施の形態にかかる数値制御装置は、主軸の回転数と送り速度とを同期させてリジッドタップを実行するリジッドタップ制御部と、ワーク上面以上の高さに設定されたＲ点において、主軸の回転数と送り速度との同期誤差の監視を開始又は終了する同期誤差監視部を有する数値制御装置において、前記ワーク上面の位置を検出するワーク上面検出部をさらに備え、前記同期誤差監視部は、前記Ｒ点に代えて、前記ワーク上面の位置において前記同期誤差の監視を開始することを特徴とする。
【００１３】
他の実施の形態にかかる数値制御装置は、主軸の回転数と送り速度とを同期させてリジッドタップを実行するリジッドタップ制御部と、ワーク上面以上の高さに設定されたＲ点において、主軸の回転数と送り速度との同期誤差の監視を開始又は終了する同期誤差監視部を有する数値制御装置において、前記ワーク上面の位置を検出するワーク上面検出部と、少なくとも前記ワーク上面の位置を状態データとして入力すると、前記状態データにおいて、サイクルタイム及びワーク上面における同期誤差が所定の条件を満たす前記Ｒ点を出力するよう学習させた機械学習部と、をさらに備え、前記同期誤差監視部は、前記機械学習部が出力する前記Ｒ点において、前記同期誤差の監視を開始することを特徴とする。
【００１４】
他の実施の形態にかかる数値制御装置は、主軸の回転数と送り速度とを同期させてリジッドタップを実行するリジッドタップ制御部と、ワーク上面以上の高さに設定されたＲ点において、主軸の回転数と送り速度との同期誤差の監視を開始又は終了する同期誤差監視部を有する数値制御装置において、前記ワーク上面の位置を検出するワーク上面検出部と、前記同期誤差監視部は、前記Ｒ点に代えて、前記ワーク上面の位置において前記同期誤差の監視を終了することを特徴とする。
【００１５】
本発明によれば、リジッドタップの加工精度を維持しつつサイクルタイムを短縮できる数値制御装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】従来のリジッドタップを説明する図である。
【図２】従来のリジッドタップの問題点を説明する図である。
【図３】実施の形態１にかかる数値制御装置１００によるリジッドタップを説明する図である。
【図４】実施の形態２にかかる数値制御装置１００によるリジッドタップを説明する図である。
【図５】実施の形態２にかかる数値制御装置１００の機械学習部１４０の概要を説明する図である。
【図６】実施の形態２にかかる数値制御装置１００の機械学習部１４０の動作を説明する図である。
【図７】実施の形態１にかかる数値制御装置１００の構成を示すブロック図である。
【図８】実施の形態２にかかる数値制御装置１００の構成を示すブロック図である。
【図９】強化学習アルゴリズムの基本的な概念を説明する図である。
【図１０】ニューロンのモデルを示す模式図である。
【図１１】３層の重みを有するニューラルネットワークを示す模式図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態を図面と共に説明する。
＜実施の形態１＞
実施の形態１にかかる数値制御装置１００は、Ｒ点ではなくワーク上面から同期誤差監視を開始することを特徴とする。
【００１８】
図７は、本発明の実施の形態１にかかる数値制御装置１００の構成を示すブロック図である。数値制御装置１００は、リジッドタップ制御部１１０、同期誤差監視部１２０及びワーク上面検出部１３０を有する。数値制御装置１００は、典型的には中央処理装置（ＣＰＵ）、記憶装置及び入出力装置を備えた情報処理装置であり、ＣＰＵが所定のプログラムを実行することによりリジッドタップ制御部１１０、同期誤差監視部１２０及びワーク上面検出部１３０を論理的に実現する。
【００１９】
リジッドタップ制御部１１０は、主軸を制御してリジッドタップを実行する。同期誤差監視部１２０は、ワーク上面より先の加工を行う際に、同期誤差を監視し、誤差量が予め定められたしきい値を超えた場合にエラーを出力する。ワーク上面検出部１３０は、リジッドタップ制御部１１０によるリジッドタップの実行に先立ち、ワークの上面の位置を検出し、検出した位置を記憶する。
【００２０】
次に、実施の形態１における数値制御装置１００の典型的な動作について説明する。一般に、リジッドタップの実行前にワークに下穴を開ける処理が実施される。ワーク上面検出部１３０は、木の下穴を開ける処理の実行中、主軸の負荷トルクを監視し、負荷がしきい値を超えて大きくなった時点の工具の先端位置を記憶する（図３、左図）。この位置は、ワークの上面と推定される。
【００２１】
続いて、リジッドタップ制御部１１０がリジッドタップを実行する。ここでリジッドタップ制御部１１０は、Ｒ点での軸停止を実行しない。また、同期誤差監視部１２０も、Ｒ点以降の同期誤差監視を行わない。
【００２２】
同期誤差監視部１２０は、工具の先端位置を常に監視するとともに、ワーク上面検出部１３０が記憶しているワークの上面位置と比較する。工具の先端位置がワークの上面に達したとき、同期誤差監視部１２０は、同期誤差の監視処理を開始する（図３、右図）。
【００２３】
より具体的には、同期誤差監視部１２０は、以下の計算式により同期誤差を計算する。
同期誤差幅＝（主軸換算位置偏差の差のプラス側最大値）−（主軸換算位置偏差の差のマイナス側最大値）
主軸換算位置偏差の差＝（主軸位置偏差量／ギア比）−（穴あけ軸位置偏差量×主軸一回転あたりのパルス数）／ネジのリード
ここでギア比とはスピンドルモータと主軸のギア比であり、典型的には１：１である。主軸位置偏差量とは、数値制御装置からの角度指令に対して、実際の主軸の遅れの角度を示すパルス数である。穴あけ軸位置偏差量とは、数値制御装置からの指令に対して、実際の軸の遅れの量を示すパルス数である。
【００２４】
本実施の形態では、エラーと判定すべき誤差量のしきい値は、Ｒ点から同期誤差監視を開始した場合に比べて小さく設定できる。通常、Ｒ点からワーク上面に達するまでの間に穴あけ軸の位置偏差量が吸収され、同期誤差も小さくなるからである。よって、無用に大きなしきい値を採用する必要はなくなり、適切なしきい値を設定して、本来見逃すべきでないエラーを検出することができるようになる。
【００２５】
本実施の形態によれば、数値制御装置１００は、Ｒ点ではなくワーク上面から同期誤差監視を実施する。これにより、Ｒ点で軸停止することによるサイクルタイムの低下を防ぎつつ、加工精度も維持することができる。
【００２６】
＜実施の形態２＞
実施の形態２にかかる数値制御装置１００は、Ｒ点の位置を自動調整する機構を備えることを特徴とする。
【００２７】
図８は、本発明の実施の形態２にかかる数値制御装置１００の構成を示すブロック図である。数値制御装置１００は、リジッドタップ制御部１１０、同期誤差監視部１２０、ワーク上面検出部１３０及び機械学習部１４０を有する。数値制御装置１００は、典型的には中央処理装置（ＣＰＵ）、記憶装置及び入出力装置を備えた情報処理装置であり、ＣＰＵが所定のプログラムを実行することによりリジッドタップ制御部１１０、同期誤差監視部１２０、ワーク上面検出部１３０及び機械学習部１４０を論理的に実現する。
【００２８】
リジッドタップ制御部１１０は、主軸を制御してリジッドタップを実行する。同期誤差監視部１２０は、Ｒ点より先の加工を行う際に、同期誤差を監視し、誤差量が予め定められたしきい値を超えた場合にエラーを出力する。ワーク上面検出部１３０は、リジッドタップ制御部１１０によるリジッドタップの実行に先立ち、ワークの上面の位置を検出し、検出した位置を記憶する。機械学習部１４０は、ある条件下において、最適なサイクルタイムやワーク上面における同期誤差を得られるようなＲ点位置を出力するよう、予め学習が施された機械学習器である。
【００２９】
次に、実施の形態１における数値制御装置１００の典型的な動作について説明する。まず、実施の形態１と同様に、ワーク上面検出部１３０が、ワークの上面の位置を検出、記憶する（図４、左図）。続いて、機械学習部１４０が、上述のワーク上面位置をはじめ、主軸送り速度、主軸回転数などの状態データを入力し、学習済みの人工知能を用いて、サイクルタイムやワーク上面における同期誤差を最適化できるＲ点の位置を出力する（図４、右図）。
【００３０】
次いで、リジッドタップ制御部１１０がリジッドタップを実行する。リジッドタップ制御部１１０は、Ｒ点での軸停止を実行しない。同期誤差監視部１２０は、Ｒ点において同期誤差監視処理を開始する。このように、本実施の形態では機械学習によって最適化されたＲ点を用いることによって、サイクルタイムの短縮と、加工精度を保つことが可能となる。
【００３１】
ここで、機械学習部１４０の構成について説明する。機械学習部１４０は、リジッドタップにおける最適なＲ点を求めるための機械学習器である。機械学習部１４０は、主軸送り速度、主軸回転数、ワーク上面位置等を加工の状態に係るデータ（以下、状態データという）とし、これらの状態データを前提としてＲ点を変動させた場合のサイクルタイム及びワーク上面における同期誤差に関する機械学習を行うことで、状態データに応じた最適なＲ点を導出できるようにする。
【００３２】
以下、本実施の形態で導入する機械学習について簡単に説明する。
＜１．機械学習＞
機械学習は、機械学習を行う装置（以下、機械学習器）に入力されるデータの集合から、その中にある有用な規則や知識表現、判断基準などを解析により抽出し、その判断結果を出力すると共に、知識の学習を行うことで実現される。機械学習の手法は様々であるが、大別すれば「教師あり学習」、「教師なし学習」、「強化学習」に分けられる。さらに、これらの手法を実現する上で、特徴量そのものの抽出を学習する、「深層学習」と呼ばれる手法がある。
【００３３】
「教師あり学習」とは、ある入力と結果（ラベル）のデータの組を大量に機械学習器に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデル、即ち、その関係性を帰納的に獲得することができる。これは後述のニューラルネットワークなどのアルゴリズムを用いて実現することができる。
【００３４】
「教師なし学習」とは、入力データのみを大量に学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。それらのデータセットにある特徴を似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することができる。また「教師なし学習」と「教師あり学習」との中間的な問題設定として、「半教師あり学習」と呼ばれるものもあり、これは一部のみ入力と出力のデータの組が存在し、それ以外は入力のみのデータである場合がこれに当たる。本実施形態においては、実際に加工機を動作させなくても取得することが出来るデータを教師なし学習で利用し、学習を効率的に行うことが出来る。
【００３５】
「強化学習」とは、判定や分類だけではなく、行動を学習することにより、環境に行動が与える相互作用を踏まえて適切な行動を学習、即ち、将来的に得られる報酬を最大にするための学習する方法である。強化学習においては、機械学習器は行動が引き起こす結果を全く知らない状態から、または不完全にしか知らない状態から学習はスタートすることができる。また、人間の動作を真似るように事前学習（前述の教師あり学習や、逆強化学習といった手法）した状態を初期状態として、良いスタート地点から学習をスタートさせることもできる。
【００３６】
なお、加工機に対して機械学習を適用する場合、加工機が実際に動作して初めて、その結果をデータとして得ることが出来ること、即ち、試行錯誤しながら最適な行動を探索する必要があることを考慮する必要がある。そこで、本実施の形態では、機械学習器の主たる学習アルゴリズムとして報酬を与えることで機械学習器が目標到達のための行動を自動的に学習する強化学習のアルゴリズムを採用している。
【００３７】
図９は、強化学習アルゴリズムの基本的な概念を説明する図である。強化学習においては、学習する主体となるエージェント（機械学習器）と、制御対象となる環境（制御対象システム）とのやりとりにより、エージェントの学習と行動が進められる。より具体的には、（１）エージェントはある時点における環境の状態ｓtを観測し、（２）観測結果と過去の学習に基づいて自分が取れる行動ａtを選択して行動ａtを実行し、（３）何らかの規則および行動ａtの実行に基づいて環境の状態ｓtが次の状態ｓt+1へと変化し、（４）行動ａtの結果としての状態の変化に基づいてエージェントが報酬ｒt+1を受け取り、（５）エージェントが状態ｓt、行動ａt、報酬ｒt+1および過去の学習の結果に基づいて学習を進める、といったやりとりがエージェントと環境の間で行われる。
【００３８】
強化学習の初期の段階では、エージェントは（２）の行動選択において環境の状態ｓtに対する最適な行動ａtを選択するための価値判断の基準が全く分かっていない。そこで、エージェントは或る状態ｓtの元で様々な行動ａtを選択し、その時の行動ａtに対して与えられた報酬ｒt+1に基づいて、より良い行動の選択、すなわち正しい価値判断の基準を学習していく。
【００３９】
上記した（５）における学習においては、エ−ジェントは将来取得できる報酬の量を判断するための基準となる情報として、観測された状態ｓt，行動ａt，報酬ｒt+1のマッピングを獲得する。例えば、各時刻において取り得る状態の個数がｍ、取り得る行動の個数がｎとすると、行動を繰り返すことによって状態ｓtと行動ａtの組に対する報酬ｒt+1を記憶するｍ×ｎの２次元配列が得られる。
【００４０】
そして、上記得られたマッピングに基づいて選択した状態や行動がどのくらい良いのかを示す関数である価値関数（評価関数）を用い、行動を繰り返す中で価値関数（評価関数）を更新していくことにより状態に対する最適な行動を学習していく。
【００４１】
状態価値関数は、ある状態ｓtがどのくらい良い状態であるのかを示す価値関数である。状態価値関数は、状態を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態の価値などに基づいて更新される。状態価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、強化学習アルゴリズムの１つであるＴＤ学習においては、状態価値関数は以下の数１式で更新される。なお、数１式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００４２】
【数１】
2018083238.tif 000003
【００４３】
また、行動価値関数は、ある状態ｓtにおいて行動ａtがどのくらい良い行動であるのかを示す価値関数である。行動価値関数は、状態と行動を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態における行動の価値などに基づいて更新される。行動価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、代表的な強化学習アルゴリズムの１つであるＱ学習においては、行動価値関数は以下の数２式で更新される。なお、数２式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００４４】
【数２】
2018083238.tif 000004
【００４５】
この式は、行動ａtの結果帰ってきた報酬ｒt+1を元に、状態ｓtにおける行動ａtの評価値Ｑ（ｓt，ａt）を更新する方法を表している。状態ｓtにおける行動ａtの評価値Ｑ（ｓt，ａt）よりも、報酬ｒt+1＋行動ａtによる次の状態における最良の行動ｍａｘ（ａ）の評価値Ｑ（ｓt+1，ｍａｘ（ａ））の方が大きければ、Ｑ（ｓt，ａt）を大きくするし、反対に小さければ、Ｑ（ｓt，ａt）も小さくする事を示している。つまり、ある状態におけるある行動の価値を、結果として即時帰ってくる報酬と、その行動による次の状態における最良の行動の価値に近付けるようにしている。
【００４６】
Ｑ学習においては、このような更新を繰り返すことで、最終的にＱ（ｓt，ａt）が期待値Ｅ［Σγtｒt］となるようにすることを目指す（期待値は最適な行動に従って状態変化した時についてとる。もちろん、それは分かっていないので、探索しながら学習しなければならない）。
【００４７】
そして、上記した（２）における行動の選択においては、過去の学習によって作成された価値関数（評価関数）を用いて現在の状態ｓtにおいて将来にわたっての報酬（ｒt+1＋ｒt+2＋…）が最大となる行動ａt（状態価値関数を用いている場合には、もっとも価値の高い状態へ移るための行動、行動価値関数を用いている場合には該状態において最も価値の高い行動）を選択する。なお、エージェントの学習中には学習の進展を目的として（２）における行動の選択において一定の確率でランダムな行動を選択することもある（εグリーディ法）。
【００４８】
なお、学習結果としての価値関数（評価関数）を記憶する方法としては、すべての状態行動ペア（ｓ，ａ）に対して、その値をテーブル（行動価値テーブル）として保持しておく方法や、上記価値関数を近似するような関数を用意する方法がある。後者の方法では、前述の更新式は、確率勾配降下法などの手法で近似関数のパラメータを調整していくことで実現することが出来る。近似関数としては、ニューラルネットワークなどの教師あり学習器を用いることが出来る。
【００４９】
ニューラルネットワークは、たとえば図１０に示すようなニューロンのモデルを模したニューラルネットワークを実現する演算装置及びメモリ等で構成される。図２は、ニューロンのモデルを示す模式図である。
【００５０】
図１０に示すように、ニューロンは、複数の入力ｘ（ここでは一例として、入力ｘ1〜入力ｘ3）に対する出力ｙを出力するものである。各入力ｘ1〜ｘ3には、この入力ｘに対応する重みｗ（ｗ1〜ｗ3）が掛けられる。これにより、ニューロンは、次の数３式により表現される出力ｙを出力する。なお、数３式において、入力ｘ、出力ｙ及び重みｗは、すべてベクトルである。また、θはバイアスであり、ｆkは活性化関数である。
【００５１】
【数３】
2018083238.tif 000005
【００５２】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図１１を参照して説明する。図１１は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。図１１に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。
【００５３】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてｗ１と標記されている。ニューロンＮ１１〜Ｎ１３は、それぞれ、ｚ１１〜ｚ１３を出力する。これらのｚ１１〜ｚ１３はまとめて特徴ベクトルｚ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルｚ１は、重みｗ１と重みｗ２との間の特徴ベクトルである。
【００５４】
ｚ１１〜ｚ１３は、２つのニューロンＮ２１、Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ２と標記されている。ニューロンＮ２１、Ｎ２２は、それぞれ、ｚ２１、ｚ２２を出力する。これらは、まとめて特徴ベクトルｚ２と標記されている。この特徴ベクトルｚ２は、重みｗ２と重みｗ３との間の特徴ベクトルである。
【００５５】
特徴ベクトルｚ２１、ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ３と標記されている。
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００５６】
ニューラルネットワークの動作には、学習モードと価値予測モードとがあり、学習モードにおいて学習データセットを用いて重みｗを学習し、そのパラメータを用いて予測モードにおいて加工機の行動判断を行う（便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能である）。
【００５７】
予測モードで実際に加工機を動かして得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００５８】
重みｗ１〜ｗ３は、誤差逆伝搬法（バックプロパゲーション）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００５９】
ニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
【００６０】
このようなニューラルネットワークを近似関数として用いることで、上記した強化学習の過程における（１）〜（５）を繰り返しつつ上記した価値関数（評価関数）をニューラルネットワークとして記憶して学習を進めることができる。
【００６１】
ある環境において学習が終了した後に、新たな環境におかれた場合でも追加の学習を行うことでその環境に適応するように学習を進めることができる。したがって、本発明のようにワイヤ放電加工機のシミュレーション装置における中子の各溶着区間の位置と長さの調整に適用することで、新しい加工の前提条件（加工対象となるワークの形状、ワーク厚さ、ワーク素材の密度、溶着区間最小距離、溶着単位長さあたりの耐力、中子を落とすときの力など）に適用したりする場合であっても、過去の中子の各溶着区間の位置と長さの調整の学習に、新たな加工の前提条件における追加の学習をすることで、中子の各溶着区間の位置と長さの調整の学習を短時間で行うことが可能となる。
【００６２】
また、強化学習においては、複数のエージェントをネットワークなどを介して接続したシステムとし、エージェント間で状態ｓ、行動ａ、報酬ｒなどの情報を共有してそれぞれの学習に利用することで、それぞれのエージェントが他のエージェントの環境も考慮して学習をする分散強化学習を行うことで効率的な学習を行うことができる。本発明においても、複数の環境（ワイヤ放電加工機のシミュレーション装置）に組み込まれた複数のエージェント（機械学習器）がネットワークなどを介して接続された状態で分散機械学習を行うことで、ワイヤ放電加工機のシミュレーション装置における中子の各溶着区間の位置と長さの調整の学習を効率的に行わせることができるようになる。
【００６３】
なお、強化学習のアルゴリズムとしては、Ｑ学習、ＳＡＲＳＡ法、ＴＤ学習、ＡＣ法など様々な手法が周知となっているが、本発明に適用する方法としていずれの強化学習アルゴリズムを採用してもよい。上記したそれぞれの強化学習アルゴリズムは周知なので、本明細書における各アルゴリズムの詳細な説明は省略する。
【００６４】
続いて、機械学習部１４０の実施形態について説明する。
＜２．実施形態＞
図５は、機械学習部１４０おけるＲ点の最適化の機械学習の概念を示す図である。なお、図５では本実施の形態における機械学習の説明に必要な構成のみを示している。
【００６５】
機械学習部１４０は、状態観測部１４１、判定データ取得部１４２、学習部１４３、意思決定部１４４を含む。学習部１４３は、報酬計算部１４３１、価値関数更新部１４３２を含む。
【００６６】
状態観測部１４１は、環境（＜１．機械学習＞で説明した状態ｓt）を特定するための情報として、状態データを取得する。本実施の形態では、状態データとして主軸の送り速度、主軸回転数、ワーク上面位置を用いる。主軸の送り速度及び主軸回転は、数値制御装置１００が加工機から取得できるデータである。ワーク上面位置は、ワーク上面検出部１３０より取得できる。なお、状態データとしていかなるデータを用いるかは、作業者が適宜決定することとしても良い。
【００６７】
また、本実施の形態で機械学習部１４０が環境に対して出力する情報（＜１．機械学習＞で説明した行動ａt）は、Ｒ点の位置である。
【００６８】
また、本実施の形態では、図６に示すように、機械学習部１４０に対して与えられる報酬（＜１．機械学習＞で説明した報酬ｒt）として、サイクルタイムの長短（プラス・マイナス報酬）、ワーク上面における同期誤差（プラス・マイナス報酬）を採用する。例えば、サイクルタイムについては、プログラム指令どおりのＲ点で加工した場合のサイクルタイムを基準値とし、基準値と同等である場合は０、それよりも長い場合は−５、短い場合は＋５の報酬を与える。ワーク上面における同期誤差については、予め定められた基準値と同等である場合は０、より大きい場合には−２０、小さい場合には＋５の報酬を与える。なお、どのようなデータに基づいてどのような報酬を与えるのかは、作業者が適宜設定するようにしてもよい。
【００６９】
本実施の形態では、機械学習部１４０は上記した入力データ、出力データ、報酬に基づいて機械学習を行う。機械学習においては、入力データの組み合わせにより状態ｓtが定義され、定義された状態ｓtを前提とするＲ点の設定が行動ａtとなり、そして、行動ａtによりリジッドタップが行われた結果について評価計算された値が報酬ｒt+1となり、これを＜１．機械学習＞で説明したように、機械学習のアルゴリズムに応じた価値関数（評価関数）の更新式に当てはめることにより学習を進める。
【００７０】
意思決定部１４４は、学習部１４３が学習した結果と現在の状態に係るデータとに基づいて、最適なＲ点の位置を決定、出力する。ここでいうＲ点の位置の決定が、機械学習に用いられる行動ａに相当する。Ｒ点の位置は、例えば、Ｒ点の位置を選択可能な行動（例えば、行動１＝ワーク上面＋０．１ｍｍ、行動２＝ワーク上面＋０．２ｍｍ、…）として用意しておき、過去の学習結果に基づいて将来に得られる報酬が最も大きくなる行動を選択するようにしてもよい。また、上記したεグリーディ法を採用し、所定の確率でランダムな行動を選択することで学習部１４３の学習の進展を図るようにしてもよい。
【００７１】
そして、意思決定部１４４は、行動の選択により決定されたＲ点の位置を同期誤差監視部１２０へと出力する。その後、報酬計算部１４３１による評価値の算出、および状態観測部１４１による状態データの取得が行われ、機械学習を繰り返すことにより、より優れた学習結果を得ることができる。
【００７２】
上記学習が完了したならば、機械学習部１４０は新たな学習を行なわないようにして、学習完了時の学習データをそのまま使用して運転をするようにしてもよい。また、学習が完了した機械学習部１４０（または、他の機械学習部１４０の完了した学習データを複写した機械学習部１４０）を他の数値制御装置１００に取付けて、学習完了時の学習データをそのまま使用して運転をするようにしてもよい。
【００７３】
数値制御装置１００の機械学習部１４０は単独で機械学習をするようにしてもよいが、複数の数値制御装置１００がそれぞれ外部との通信手段を更に備えると、それぞれの機械学習部１４０が記憶した学習結果を送受信して共有することが可能となり、より効率良く機械学習を行うことができる。例えば、複数の数値制御装置１００において異なるＲ点の位置を所定の範囲内でそれぞれ変動させながら、それぞれの数値制御装置１００の間で状態データや学習データをやり取りすることにより並列して学習を進めるようにすることで効率的に学習させることができる。
【００７４】
このように複数の数値制御装置１００の間でやり取りする際には、通信は上位装置であるホストコンピュータを経由しても、直接数値制御装置１００同士が通信しても構わないし、クラウドを使用しても構わないが、大量のデータを取り扱う場合があるため、なるべく通信速度が速い通信手段が好ましい。
【００７５】
＜実施の形態３＞
実施の形態３にかかる数値制御装置１００は、ワークから工具が抜けた後におけるＲ点の位置を最適化する点に特徴を有する。
【００７６】
実施の形態１及び実施の形態２では、ワークに対し加工を行う前の時点、すなわちワークに工具を貫入させる前の時点におけるＲ点の設定方法について説明した。実施の形態３では、ワークから工具が抜けた後におけるＲ点の設定手法について述べる。
【００７７】
図１に示すように、従来は、ワークに工具を貫入させる前の時点におけるＲ点と、ワークに工具を貫入させる前の時点におけるＲ点とは、同じ位置に設定されていた。ところで、Ｒ点とは、主軸の回転数と送り速度との同期状態をＯＮ／ＯＦＦする点である。つまり、ワークから工具が抜けた後におけるＲ点とは、それまで維持されていた同期状態が解除される点である。通常、ワークから工具が抜けたならば、それ以後も同期状態を維持するべき理由はない。したがって、ワークから工具が抜けた後における最適なＲ点の位置は、ワーク上面である。
【００７８】
実施の形態３にかかる数値制御装置１００の構成は、実施の形態１と同様である。すなわち、数値制御装置１００は、リジッドタップ制御部１１０、同期誤差監視部１２０及びワーク上面検出部１３０を有する。
【００７９】
リジッドタップ制御部１１０は、主軸を制御してリジッドタップを実行する。同期誤差監視部１２０は、ワーク上面（実施の形態１を前提とする場合）又はＲ点（実施の形態２又は従来技術を前提とする場合）からより先の加工を行う際に、同期誤差を監視し、誤差量が予め定められたしきい値を超えた場合にエラーを出力する。また、同期誤差監視部１２０は、工具がワーク上面から抜けた時点で同期誤差の監視を終了する。ワーク上面検出部１３０は、リジッドタップ制御部１１０によるリジッドタップの実行に先立ち、ワークの上面の位置を検出し、検出した位置を記憶する。
【００８０】
同期誤差監視部１２０の動作について更に説明する。同期誤差監視部１２０は、リジッドタップの実行中も工具の先端位置を常に監視し、ワーク上面検出部１３０が記憶しているワークの上面位置と比較する。工具先端がワーク上面を経て一旦穴底に達し、反転して再度ワーク上面に達したとき、同期誤差監視部１２０は、同期誤差の監視処理を終了する。
【００８１】
本実施の形態によれば、数値制御装置１００は、ワーク上面から工具が抜けた時点で同期誤差監視を終了する。換言すれば、工具が抜けた後におけるＲ点を、ワーク上面に設定する。これにより、従来、リジッドタップ終了後、ワーク上面からＲ点に達するまでの間にも行われていた同期誤差監視処理を省略することができ、サイクルタイムを向上させることができる。
【００８２】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。本発明はその発明の範囲内において、実施の形態の任意の構成要素の変形、もしくは実施の形態の任意の構成要素の省略が可能である。
【００８３】
例えば、上述の実施の形態では、ワーク上面検出部１３０は下穴加工における主軸負荷に基づいてワーク上面を検出したが、本発明はこれに限定されるものでなく、他の任意の手法、例えば距離センサ等を用いてワーク上面位置を検出しても良い。
【符号の説明】
【００８４】
１００  数値制御装置
１１０  リジッドタップ制御部
１２０  同期誤差監視部
１３０  ワーク上面検出部
１４０  機械学習部
１４１  状態観測部
１４２  判定データ取得部
１４３  学習部
１４３１  報酬計算部
１４３２  価値関数更新部
１４４  意思決定部
【図１】
2018083238.tif 000006
【図２】
2018083238.tif 000007
【図３】
2018083238.tif 000008
【図４】
2018083238.tif 000009
【図５】
2018083238.tif 000010
【図６】
2018083238.tif 000011
【図７】
2018083238.tif 000012
【図８】
2018083238.tif 000013
【図９】
2018083238.tif 000014
【図１０】
2018083238.tif 000015
【図１１】
2018083238.tif 000016