(57)【要約】【課題】最適なテールストック押付け力を自動計算することが可能な数値制御装置を提供する。【解決手段】数値制御装置１は、旋盤加工時のワークの挙動を安定させるためのテールストック押付け力を機械学習により算出するテールストック押付け力算出部を有する。数値制御装置１は、現在のワークの形状を含む前提条件を取得し、現在のテールストック押付け力を状態情報として取得し、現在の前記ワークの振動、又は変位、あるいはテールストック軸の消費電力のうち少なくともいずれか１つを判定データとして取得し、判定データに基づいて価値関数を更新し、価値関数に基づいて状態情報の調整値を出力することを特徴とする。【選択図】図８
2018130798.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がどのくらい良い状態であるのかを示す価値関数である。状態価値関数は、状態を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態の価値などに基づいて更新される。状態価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、強化学習アルゴリズムの１つであるＴＤ学習においては、状態価値関数は以下の数１式で更新される。なお、数１式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２６】
【数１】
2018130798.tif 000003
【００２７】
また、行動価値関数は、ある状態ｓtにおいて行動ａtがどのくらい良い行動であるのかを示す価値関数である。行動価値関数は、状態と行動を引数とする関数として表現され、行動を繰り返す中での学習において、ある状態における行動に対して得られた報酬や、該行動により移行する未来の状態における行動の価値などに基づいて更新される。行動価値関数の更新式は強化学習のアルゴリズムに応じて定義されており、例えば、代表的な強化学習アルゴリズムの１つであるＱ学習においては、行動価値関数は以下の数２式で更新される。なお、数２式においてαは学習係数、γは割引率と呼ばれ、０＜α≦１、０＜γ≦１の範囲で定義される。
【００２８】
【数２】
2018130798.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は活性化関数である。
【００３５】
【数３】
2018130798.tif 000005
【００３６】
次に、上述したニューロンを組み合わせた３層の重みを有するニューラルネットワークについて、図７を参照して説明する。図７は、Ｄ１〜Ｄ３の３層の重みを有するニューラルネットワークを示す模式図である。図７に示すように、ニューラルネットワークの左側から複数の入力ｘ（ここでは一例として、入力ｘ１〜入力ｘ３）が入力され、右側から結果ｙ（ここでは一例として、結果ｙ１〜結果ｙ３）が出力される。
【００３７】
具体的には、入力ｘ１〜入力ｘ３は、３つのニューロンＮ１１〜Ｎ１３の各々に対して対応する重みが掛けられて入力される。これらの入力に掛けられる重みはまとめてｗ１と標記されている。ニューロンＮ１１〜Ｎ１３は、それぞれ、ｚ１１〜ｚ１３を出力する。これらのｚ１１〜ｚ１３はまとめて特徴ベクトルｚ１と標記され、入力ベクトルの特徴量を抽出したベクトルとみなすことができる。この特徴ベクトルｚ１は、重みｗ１と重みｗ２との間の特徴ベクトルである。
【００３８】
ｚ１１〜ｚ１３は、２つのニューロンＮ２１、Ｎ２２の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ２と標記されている。ニューロンＮ２１、Ｎ２２は、それぞれ、ｚ２１、ｚ２２を出力する。これらは、まとめて特徴ベクトルｚ２と標記されている。この特徴ベクトルｚ２は、重みｗ２と重みｗ３との間の特徴ベクトルである。
【００３９】
特徴ベクトルｚ２１、ｚ２２は、３つのニューロンＮ３１〜Ｎ３３の各々に対して対応する重みが掛けられて入力される。これらの特徴ベクトルに掛けられる重みは、まとめてｗ３と標記されている。
最後に、ニューロンＮ３１〜Ｎ３３は、それぞれ、結果ｙ１〜結果ｙ３を出力する。
【００４０】
ニューラルネットワークの動作には、学習モードと価値予測モードとがあり、学習モードにおいて学習データセットを用いて重みｗを学習し、そのパラメータを用いて予測モードにおいて加工機の行動判断を行う（便宜上、予測と書いたが、検出、分類、推論など多様なタスクが可能である）。
【００４１】
予測モードで実際に加工機を動かして得られたデータを即時学習し、次の行動に反映させる（オンライン学習）ことも、あらかじめ収集しておいたデータ群を用いてまとめた学習を行い、以降はずっとそのパラメータで検知モードを行う（バッチ学習）こともできる。その中間的な、ある程度データが溜まるたびに学習モードを挟むということも可能である。
【００４２】
重みｗ１〜ｗ３は、誤差逆伝搬法（バックプロパゲーション）により学習可能なものである。誤差の情報は、右側から入り左側に流れる。誤差逆伝搬法は、各ニューロンについて、入力ｘが入力されたときの出力ｙと真の出力ｙ（教師）との差分を小さくするように、それぞれの重みを調整（学習）する手法である。
【００４３】
ニューラルネットワークは、３層以上にさらに層を増やすことも可能である（深層学習と称される）。入力の特徴抽出を段階的に行い、結果を回帰する演算装置を、教師データのみから自動的に獲得することが可能である。
【００４４】
このようなニューラルネットワークを近似関数として用いることで、上記した強化学習の過程における（１）〜（５）を繰り返しつつ上記した価値関数（評価関数）をニューラルネットワークとして記憶して学習を進めることができる。
【００４５】
ある環境において学習が終了した後に、新たな環境におかれた場合でも追加の学習を行うことでその環境に適応するように学習を進めることができる。したがって、本発明のようにテールストック押付け力の大きさの調整に適用することで、新しい加工の前提条件（加工対象となるワークの形状、ワークの材質、主軸回転数、切込み量など）に適用したりする場合であっても、過去のテールストック押付け力の大きさの調整の学習に、新たな加工の前提条件における追加の学習をすることで、テールストック押付け力の大きさの調整の学習を短時間で行うことが可能となる。
【００４６】
また、強化学習においては、複数のエージェントをネットワークなどを介して接続したシステムとし、エージェント間で状態ｓ、行動ａ、報酬ｒなどの情報を共有してそれぞれの学習に利用することで、それぞれのエージェントが他のエージェントの環境も考慮して学習をする分散強化学習を行うことで効率的な学習を行うことができる。本発明においても、複数の環境（数値制御装置）に組み込まれた複数のエージェント（機械学習器）がネットワークなどを介して接続された状態で分散機械学習を行うことで、数値制御装置におけるテールストック押付け力の大きさの調整の学習を効率的に行わせることができるようになる。
【００４７】
なお、強化学習のアルゴリズムとしては、Ｑ学習、ＳＡＲＳＡ法、ＴＤ学習、ＡＣ法など様々な手法が周知となっているが、本発明に適用する方法としていずれの強化学習アルゴリズムを採用してもよい。上記したそれぞれの強化学習アルゴリズムは周知なので、本明細書における各アルゴリズムの詳細な説明は省略する。
【００４８】
以下、機械学習器を導入した本発明の数値制御装置について、具体的な実施形態に基づいて説明する。
＜２．実施形態＞
図８は、本発明の一実施形態における数値制御装置１におけるテールストック押付け力の大きさの調整の機械学習プロセスを示す図である。なお、図８には本実施形態における数値制御装置１での機械学習プロセスの説明に必要な構成のみを示している。
【００４９】
数値制御装置１は、テールストック押付け力算出部１０、動作評価部１１、機械学習器２０を有する。機械学習器２０は、環境（＜１．機械学習＞で説明した状態ｓt）を特定するための情報として、加工の前提条件を入力する。テールストック押付け力の大きさを、状態情報として入力する。また、機械学習器２０は、テールストック押付け力の大きさの調整行動を環境に対して出力する（＜１．機械学習＞で説明した行動ａt）。
【００５０】
数値制御装置１に前提条件として入力されるデータについて説明する。数値制御装置１は、主軸モータが備えるセンサを用いて主軸回転数を取得する。また、数値制御装置１は、テールストック軸モータが備えるセンサよりトルクを取得し、これをテールストック押付け力とみなす。また、数値制御装置１は、ワークの材質を加工情報から特定する。また、数値制御装置１は、ＣＡＤ／ＣＡＭデータ及びプログラムの進行度から、現在のワークの形状及び切込み量を特定する。これらの情報が、前提条件として機械学習器２０に入力される。
【００５１】
現在のワークの形状及び切込み量の特定処理について更に詳しく説明する。数値制御装置１は、ワークの完成形を定義したＣＡＤ／ＣＡＭデータ、加工プログラムの実行中ブロック、及び実行中ブロックの残り移動量をそれぞれ公知の手法により取得する。現在の切込み量は、ＣＡＤ／ＣＡＭデータ及び加工プログラムの実行中ブロックから特定できる。現在のワークの形状を機械学習器２０に入力可能なデータとして表現する方法は種々考えられる。以下に幾つかの例を示す。
【００５２】
方法１：数値制御装置１は、ＣＡＤ／ＣＡＭデータ、加工プログラムの実行中ブロック、及び実行中ブロックの残り移動量に基づいて、現在のワークの形状を想定する。図３上図において、破線の矩形は加工前のワークの形状を示している。矢印の実線部は加工プログラムの既に実行されたブロック、矢印の破線部は加工プログラムの実行中ブロックの残り移動量を示す。図３下図に、これらから想定される現在のワーク形状及び切込み量を示す。次に、数値制御装置１は、現在のワーク形状のＺ軸方向の一方の端面から他方の端面までの間に、一定間隔で（Ｎ−１）個の計測点を設定し、各計測点及びワーク両端におけるワークの直径をそれぞれ算出する。そして、これらＮ個の直径の値を要素として含むＮ次元ベクトルを作成し、このベクトルを現在のワーク形状を示すデータとする。なお、ワークの大きさにかかわらず計測点の数を固定化しておけば、どのような大きさのワークも同じＮ次元ベクトルの形で表すことが可能である。
【００５３】
方法２：数値制御装置１は、ＣＡＤ／ＣＡＭデータ、加工プログラムの実行中ブロック、及び実行中ブロックの残り移動量から、現在まで実行した各ブロックの始点又は終点におけるワークの径とテールストック位置からのＺ方向の移動量との組み合わせを抽出する。そして、これらの組合せの履歴を要素として含む多次元ベクトルを生成して、当該ベクトルを現在のワーク形状を示すデータとする。例えば、図３上図において、Ｎ１ブロックの始点又は終点におけるワークの径がｐ、移動量がＰ、Ｎ３ブロックの始点又は終点におけるワークの径がｑ、移動量がＱ、Ｎ５ブロックの始点又は終点におけるワークの径がｒ、移動量がＲ、Ｎ７ブロックの始点又は終点におけるワークの径がｓ、現在までの移動量がＳであるとする。このとき、数値制御装置１は、多次元ベクトルＭ（ｐ，Ｐ，ｑ，Ｑ，ｒ，Ｒ，ｓ，Ｓ）を作成し、このベクトルＭにより現在のワーク形状を表現する。
【００５４】
方法３：数値制御装置１は、ＣＡＤ／ＣＡＭデータ、加工プログラムの実行中ブロック、及び実行中ブロックの残り移動量に基づいて、現在のワーク形状の３次元モデル、又は当該３次元モデルを投影した２次元画像を作成する。次に、数値制御装置１は、当該モデル又は画像から公知の手法により特徴点を抽出し、当該特徴点を現在のワーク形状を表現するデータとする。なお、数値制御装置１は、図示しない撮影装置により加工中のワークを実際に撮影し、撮影画像から抽出される特徴点をもって現在のワーク形状を表現することとしても良い。
【００５５】
また、機械学習器２０は、テールストック押付け力を状態情報として入力する。ここで、初回のテールストック押付け力は、例えば特許文献１などの従来技術の手法を用いて決定するようにしてもよく、作業者に適宜入力させるようにしてもよい。
【００５６】
動作評価部１１は、状態情報としてテールストック押付け力が入力されると、それに対して与えられる報酬（＜１．機械学習＞で説明した報酬ｒt）を計算する。以下に、報酬条件の例を示す。
【００５７】
報酬１：ワークの振動や変位の大小（プラス・マイナス報酬）
数値制御装置１は、ワークの振動やたわみを検出し、これらが大きい場合には、その度合いに応じてマイナスの報酬を与える。一方、これらが０に近いほどプラスの報酬を与える。典型的には、ワークの振動やたわみの大小は、工具に設けられた振動センサや変位センサ、主軸負荷、工具の各制御軸方向の負荷、及びテールストック軸の負荷等に基づいて求めることが可能である。
【００５８】
報酬２：テールストック軸の消費電力の大小（プラス・マイナス報酬）
数値制御装置１は、テールストック軸の消費電力を推定し、これらが大きい場合には、その度合いに応じてマイナスの報酬を与える。一方、これらが０に近いほどプラスの報酬を与える。典型的には、テールストック軸の消費電力の大小は、テールストック軸のモータ電流値や抵抗値に基づいて求めることが可能である。
なお、いずれのデータに基づいて報酬を決定するのかについては、作業者が適宜設定するようにしてもよい。
【００５９】
機械学習器２０は、動作評価部１１の評価結果に従って、価値関数を更新する。例えばＱ学習はＡｃｔｏｒ−Ｃｒｉｔｉｃ等の公知の手法により、できるだけ大きな報酬が得られるテールストック押付け力の調整を出力するよう、価値関数を更新してゆく。
【００６０】
このように、数値制御装置１は上述の入力データ、出力データ、報酬に基づいて機械学習を行う。機械学習においては、ある時刻ｔにおいて、入力データの組み合わせにより状態ｓtが定義され、定義された状態ｓtに対して行われるテールストック押付け力の調整が行動ａtとなり、そして、行動ａtによりテールストック押付け力の調整が行われた結果として新たに得られた入力データに基づいて評価計算された値が報酬ｒt+1となり、これを＜１．機械学習＞で説明したように、機械学習のアルゴリズムに応じた価値関数（評価関数）の更新式に当てはめることにより学習を進める。すなわち、機械学習器２０は、入力された前提条件及び状態データと、自身が行ったテールストック押付け力の調整結果、および報酬計算部２４で計算された報酬とに基づいて機械学習（強化学習）を行う。
【００６１】
図４のフローチャートを用いて、数値制御装置１が行う機械学習の流れを説明する。
ステップＳ１０１：
機械学習器２０は、ワークの材質、現在のワーク形状、現在の切込み量、主軸回転数などの前提条件と、状態情報であるテールストック押付け力とを入力する。なお、初回はテールストック押付け力として何らかの初期値が与えられる。
ステップＳ１０２：
テールストック押付け力算出部１０は、現時点で最適なテールストック押付け力を算出する。すなわち、テールストック押付け力の調整が既に出力されていれば、ステップＳ１０１で入力されたテールストック押付け力に、テールストック押付け力の調整を加える。
ステップＳ１０３：
動作評価部１１は、ステップＳ１０２で調整されたテールストック押付け力に対する報酬を計算するため、判定データを取得する。例えば、ワークの振動や変位、テールストック軸の消費電力等を計算する。
ステップＳ１０４乃至Ｓ１０６：
動作評価部１１は、ステップＳ１０３で取得した判定データと、予め定められた判定条件とに基づいて、報酬を計算する。例えば、ワークの振動や変位、あるいはテールストックの消費電力が大きければ報酬を大きくし、ワークの振動や変位、あるいはテールストックの消費電力が０に近ければ報酬を小さくする。
ステップＳ１０７：
機械学習器２０は、動作評価部１１の計算した報酬に従って価値観数を更新し、テールストック押付け力の調整を計算して出力する。
ステップＳ１０８：
数値制御装置１は、加工が終了するまでの間、上述の一連の処理を繰り返し実行する。このように機械学習を繰り返すことにより、より優れた学習結果を得ることができるようになる。
【００６２】
なお、上記学習が完了した学習データを用いてＮＣ旋盤を運転する際には、機械学習器２０は新たな学習を行なわないようにしてＮＣ旋盤に取り付け、学習完了時の学習データをそのまま使用して運転をするようにしてもよい。
また、学習が完了した機械学習器２０（または、他の機械学習器２０の完了した学習データを学習結果記憶部２６に複写した機械学習器２０）を他のＮＣ旋盤に取付けて、学習完了時の学習データをそのまま使用して運転をするようにしてもよい。
【００６３】
機械学習器２０は単独で機械学習をするようにしてもよいが、複数の数値制御装置１がそれぞれ外部との通信手段を更に備えると、それぞれの学習結果を送受信して共有することが可能となり、より効率良く機械学習を行うことができる。
このように複数の数値制御装置１の間でやり取りする際には、通信は図示しない管理装置等を経由しても良いし、直接数値制御装置１同士が通信しても構わないし、クラウドを使用しても構わないが、大量のデータを取り扱う場合があるため、なるべく通信速度が速い通信手段が好ましい。
【００６４】
本実施の形態によれば、数値制御装置は、ワークの振動や変位、あるいはテールストック軸の消費電力がなるべく低くなるようにテールストック押付け力を自動的に調整する。これにより、ユーザはテールストック押付け力を手作業で調整する必要がない。また、従来は最適化する手法が提案されていなかったテールストック軸の消費電力についても、なるべくこれを抑制するよう、テールストック押付け力が自動的に調整される。
【００６５】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【符号の説明】
【００６６】
１  数値制御装置
１０  テールストック押付け力算出部
１１  動作評価部
２０  機械学習器
【図１】
2018130798.tif 000006
【図２】
2018130798.tif 000007
【図３】
2018130798.tif 000008
【図４】
2018130798.tif 000009
【図５】
2018130798.tif 000010
【図６】
2018130798.tif 000011
【図７】
2018130798.tif 000012
【図８】
2018130798.tif 000013