(57)【特許請求の範囲】
【請求項１】
加工プログラムに従って、複数の駆動軸を制御して工具を移動させる工作機械を制御する数値制御装置であって、
前記工具を振動させながらワークを加工する際の前記工具の振動経路を示す振動波形を生成する振動波形生成部と、
前記振動波形を、前記複数の駆動軸のいずれか一つの駆動軸である第１の軸に対し一定の角度となる第２の軸の方向への振動波形として、前記複数の駆動軸それぞれにおける前記工具の移動経路を示す前記駆動軸ごとの指令振動波形を生成する振動移動量算出部と、
を備えることを特徴とする数値制御装置。
【請求項２】
前記一定の角度は、前記加工プログラムによって指定される、または、前記第２の軸の設定により指定されることを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記設定は、前記工具を指定することにより行われることを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記工具を振動させる際の前記工具の振動方向と前記第１の軸の方向の角度に基づいて、前記振動波形の成分を前記複数の駆動軸のそれぞれに分配する分配比を決定する分配比決定部、
を備え、
前記振動移動量算出部は、前記振動波形の成分を前記分配比に従い前記複数の駆動軸のそれぞれに分配して各前記駆動軸の前記指令振動波形を生成する、
ことを特徴とする請求項１から３のいずれか一つに記載の数値制御装置。
【請求項５】
前記振動移動量算出部は、前記駆動軸ごとに、前記ワークを加工する際の前記工具の単位時間あたりの移動量を、前記工具の移動量に前記指令振動波形を重畳して生成する、
ことを特徴とする請求項１から４のいずれか一つに記載の数値制御装置。
【請求項６】
前記工具を振動させたときの前記工具の実際の移動経路を示す前記駆動軸ごとのフィードバック振動波形と、前記駆動軸ごとの前記指令振動波形とを比較する比較部と、
前記比較部による比較結果に基づいて、前記駆動軸ごとの前記指令振動波形を調整する指令振動波形調整部と、
を備えることを特徴とする請求項１から５のいずれか一つに記載の数値制御装置。
【請求項７】
前記指令振動波形調整部は、各前記駆動軸のサーボパラメータを変更して前記指令振動波形を調整する、
ことを特徴とする請求項６に記載の数値制御装置。
【請求項８】
前記比較部による比較結果と、前記指令振動波形調整部が前記指令振動波形を調整する際の各前記駆動軸の振動振幅調整量および各前記駆動軸のサーボパラメータの変更内容を示す変更情報と、前記複数の駆動軸それぞれのイナーシャ情報とを状態変数として観測する状態観測部と、
前記状態変数に基づいて作成されるデータセットに従って、各前記駆動軸の振動振幅の調整内容および各前記駆動軸の前記サーボパラメータの調整内容を示す振動波形補正情報を学習する学習部と、
を備えることを特徴とする請求項７に記載の数値制御装置。
【請求項９】
加工プログラムに従って、複数の駆動軸を制御して工具を移動させる工作機械を制御する数値制御装置が実行する数値制御方法であって、
前記工具を振動させながらワークを加工する際の前記工具の振動経路を示す振動波形を生成する振動波形生成ステップと、
前記振動波形を、前記複数の駆動軸のいずれか一つの駆動軸である第１の軸に対し一定の角度となる第２の軸の方向への振動波形として、前記複数の駆動軸それぞれにおける前記工具の移動経路を示す前記駆動軸ごとの指令振動波形を生成する指令振動波形生成ステップと、
を含むことを特徴とする数値制御方法。
【請求項１０】
工作機械を制御する数値制御装置が加工プログラムに従って工具を移動させる際に制御する複数の駆動軸のいずれか一つの駆動軸である第１の軸に対し一定の角度となる第２の軸の方向に前記工具を振動させる際の前記複数の駆動軸それぞれにおける前記工具の振動経路を示す前記駆動軸ごとの指令振動波形を調整する調整内容を学習する機械学習装置であって、
前記工具を振動させたときの前記工具の実際の移動経路を示す前記駆動軸ごとのフィードバック振動波形と前記駆動軸ごとの前記指令振動波形の比較結果と、前記駆動軸ごとの前記指令振動波形を調整する際の各前記駆動軸の振動振幅調整量および各前記駆動軸のサーボパラメータの変更内容を示す変更情報と、前記複数の駆動軸それぞれのイナーシャ情報と、を状態変数として観測する状態観測部と、
前記状態変数に基づいて作成されるデータセットに従って、各前記駆動軸の振動振幅の調整内容および各前記駆動軸の前記サーボパラメータの調整内容を示す振動波形補正情報を学習する学習部と、
を備えることを特徴とする機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ワークを振動切削する工作機械を制御する数値制御装置、数値制御方法および機械学習装置に関する。
【背景技術】
【０００２】
従来の数値制御装置として、切削工具を低周波振動させながらワークを加工する振動切削加工を実現可能な数値制御装置が存在する。【０００３】
特許文献１には、ねじ切り加工に振動切削加工を適用した加工を実現する数値制御装置が記載されている。特許文献１に記載された数値制御装置は、主軸と直交する駆動軸の中の１つに沿って切削工具を振動させながらワークを加工するよう工作機械を制御することにより、ねじ切り加工に振動切削加工を適用した加工を実現している。【０００４】
また、数値制御装置の中には、仮想軸制御が可能なものが存在する。仮想軸制御とは、複数の駆動軸の制御を同期さる同期制御を行うことにより、各駆動軸のいずれとも異なる仮想的な軸（以下、仮想軸と称する）に沿って、切削工具などの制御対象物を移動させる制御である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５８５１６７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された数値制御装置は、１つの駆動軸に沿って切削工具を振動させながら加工を行う構成であり、仮想軸制御で切削工具を移動させる場合、すなわち、ねじ切り加工を行う際の切削工具の振動方向が複数の駆動軸を同期制御することにより実現される仮想軸の方向である場合、振動切削加工を行うことができない、という問題があった。【０００７】
本発明は、上記に鑑みてなされたものであって、切削工具の振動方向が各駆動軸のいずれとも異なる方向である場合でも、振動切削加工を適用することが可能な数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、本発明は、加工プログラムに従って、複数の駆動軸を制御して工具を移動させる工作機械を制御する数値制御装置であって、工具を振動させながらワークを加工する際の工具の振動経路を示す振動波形を生成する振動波形生成部と、振動波形を、複数の駆動軸のいずれか一つの駆動軸である第１の軸に対し一定の角度となる第２の軸の方向への振動波形として、複数の駆動軸それぞれにおける工具の移動経路を示す駆動軸ごとの指令振動波形を生成する振動移動量算出部と、を備える。
【発明の効果】
【０００９】
本発明にかかる数値制御装置は、切削工具の振動方向が各駆動軸のいずれとも異なる方向である場合でも、振動切削加工を適用することが可能となる、という効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】各実施の形態にかかる数値制御装置で使用する仮想軸制御を説明するための図
【図２】各実施の形態にかかる数値制御装置が制御する対象の工作機械の構成例を説明するための図
【図３】実施の形態１にかかる数値制御装置の構成例を示す図
【図４】ねじ切り加工において振動切削を行う場合の工具の振動方向を示す図
【図５】ねじ切り加工における振動切削のイメージを示す図
【図６】実施の形態１にかかる数値制御装置が仮想軸制御により工具を振動させながらねじ切り加工を行う動作の一例を示すフローチャート
【図７】実施の形態１にかかる数値制御装置の振動波形生成部が生成する指令振動波形の一例を示す図
【図８】指令振動波形とフィードバック振動波形の関係の一例を示す図
【図９】調整を行う前の各軸の指令振動波形を合成した場合に得られる合成振動波形の一例を示す図
【図１０】調整を行った後の各軸の指令振動波形を合成した場合に得られる合成振動波形の一例を示す図
【図１１】傾斜軸制御を説明するための図
【図１２】傾斜軸制御を使用する工作機械の構成例を示す図
【図１３】振動切削加工を行う工作機械の構成を説明するための図
【図１４】実施の形態１にかかる数値制御装置が備える制御演算部のハードウェア構成例を示す図
【図１５】実施の形態２にかかる数値制御装置の構成例を示す図
【発明を実施するための形態】
【００１１】
以下に、本発明の実施の形態にかかる数値制御装置、数値制御方法および機械学習装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】
各実施の形態では、数値制御装置が仮想軸制御により切削工具を振動させながらねじ切り加工を行う構成について説明する。そこで、まず、仮想軸制御の説明と、各実施の形態にかかる数値制御装置が制御する対象の工作機械の説明とを行う。
【００１３】
図１は、各実施の形態にかかる数値制御装置で使用する仮想軸制御を説明するための図である。仮想軸制御では、数値制御装置に制御される工作機械が有している座標系である実機械座標系を回転させるなどして得られる仮想機械座標系を用いて、制御対象物を制御する。仮想機械座標系の各軸のそれぞれを仮想軸と呼ぶ。図１に示した例では、Ｘ軸およびＹ軸からなる実機械座標系を時計回りに４５°回転させ、さらに、原点（図１では実機械座標原点と記載）を、Ｘ軸上で−１２０ｍｍシフトさせるとともにＹ軸上で−６０ｍｍシフトさせたものを仮想機械座標系としている。
【００１４】
図１に示す仮想機械座標系を用いる仮想軸制御は、例えば、ねじ切り加工で使用する切削工具の振動方向が、実機械座標系のＸ軸（図１では実Ｘ軸と記載）から４５°傾いている場合に使用される。この仮想軸制御では切削工具の振動方向と仮想Ｘ軸の方向とが一致する。
【００１５】
図２は、各実施の形態にかかる数値制御装置が制御する対象の工作機械の構成例を説明するための図である。図２に示すように、各実施の形態にかかる数値制御装置が制御する対象の工作機械は、Ｔ１〜Ｔ５の５種類の切削工具が取り付けられた刃物台を有し、いずれか一つの切削工具を使用してワークの加工を行う構成である。図２は、ワークの回転軸の方向から見たときの刃物台の断面を示している。各切削工具は、刃物がワークの方向を向くように設置されている。各切削工具は、ワークに向かって直線上を移動するように制御される。各切削工具は、数値制御装置が、刃物台を実Ｘ軸方向に移動させるＸ軸サーボモータと、刃物台を実Ｙ軸方向に移動させるＹ軸サーボモータとを制御することにより、ワークの中心を通る直線上を移動する。なお、切削工具の数は一例であり５種類に限定されない。
【００１６】
図２に示す構成を有する工作機械を使用して振動切削加工を行う場合、Ｘ軸およびＹ軸それぞれについての振動指令を加工プログラムに書き込むことにより、ワークの中心を通る直線上で切削工具を振動させることが可能である。しかし、このような方法で振動切削加工を行う場合、加工プログラムの作成負荷が大きくなる。そのため、各実施の形態にかかる数値制御装置は、切削工具の制御で仮想軸制御を使用できるようにする。仮想軸制御を用いることで、１つの仮想軸に沿って工具が振動させることが可能となる。すなわち、１つの軸に対する振動指令で、切削工具を仮想軸上で振動させることが可能となる。加工プログラムの作成者は、振動切削を行う加工プログラムを作成する際、仮想軸を意識する必要は無く、実Ｘ軸または実Ｙ軸を基準軸とし、基準軸の方向で切削工具を振動させる振動指令を使用して振動条件を指定すればよい。これにより、図２に示す構成を有する工作機械、すなわち、切削工具の振動方向がいずれの駆動軸の方向とも異なる構成の工作機械を使用して振動切削加工を行うための加工プログラムを作成する作業の負荷が軽減される。
【００１７】
数値制御装置は、図２に示す構成を有する工作機械を制御する場合、ワークの加工で使用する切削工具を変更するごとに、仮想機械座標の設定を変更する。図２では、切削工具Ｔ２を使用してワークを加工する場合の例を示しており、この場合、数値制御装置は、切削工具Ｔ２が移動する方向と仮想Ｘ軸の方向が一致するように仮想機械座標を設定した上で、仮想機械座標を用いて刃物台の動作を制御する。切削工具Ｔ２を使用する場合について説明したが、他の切削工具を使用する場合も同様である。例えば、切削工具Ｔ４を使用する場合、数値制御装置は、切削工具Ｔ４が移動する方向と仮想Ｘ軸の方向が一致するように仮想機械座標の設定を変更する。なお、切削工具Ｔ３を使用する場合、数値制御装置は、切削工具Ｔ３が移動する方向と仮想Ｘ軸の方向が一致するように仮装機械座標の設定を変更するが、この場合の仮想Ｘ軸は実Ｘ軸と一致する。図２に示した例では切削工具の振動方向と仮想Ｘ軸の方向が一致するように設定を行うこととしたが、切削工具の振動方向と仮想Ｙ軸の方向が一致するように設定を行ってもよい。
【００１８】
このように、各実施の形態にかかる数値制御装置は、使用する切削工具の振動方向と仮想機械座標のＸ軸である仮想Ｘ軸の方向が一致するように、または、使用する切削工具の振動方向と仮想機械座標のＹ軸である仮想Ｙ軸の方向が一致するように、仮想機械座標を設定し、仮想機械座標を使用して、工作機械が有する各軸の制御を行う。各実施の形態にかかる数値制御装置は、図２に示すＸ軸サーボモータおよびＹ軸サーボモータを制御することで、切削工具Ｔ１〜Ｔ５を実Ｘ軸方向および実Ｙ軸方向に移動させる。なお、各実施の形態では、切削工具を「工具」と記載する。また、各実施の形態の説明では、実Ｘ軸をＸ軸と称し、実Ｙ軸をＹ軸と称する場合がある。
【００１９】
実施の形態１．
図３は、実施の形態１にかかる数値制御装置の構成例を示す図である。実施の形態１にかかる数値制御装置１Ｘは、入力操作部３と、表示部４と、制御演算部２Ｘと、を備える。図３では、数値制御装置１Ｘにより制御される工作機械に設けられた駆動部９０も併せて記載している。工作機械の駆動部９０以外の構成要素については記載を省略している。
【００２０】
工作機械に設けられた駆動部９０は、加工対象物であるワークおよび工具のいずれか一方または両方を少なくとも２軸方向に駆動する機構である。ここでは、数値制御装置１Ｘ上で規定された各軸の方向にワークおよび工具の一方または両方を移動させる複数のサーボモータ９１と、各サーボモータ９１の回転子の位置および回転速度を検出する複数の検出器９２と、を備える。また、駆動部９０は、検出器９２が検出した位置および回転速度に基づいてサーボモータ９１の制御を行うＸ軸サーボ制御部９３Ｘ，Ｙ軸サーボ制御部９３Ｙ，…を備える。なお、以下では、駆動軸の方向を区別する必要がない場合、各軸に対応するサーボ制御部（Ｘ軸サーボ制御部９３Ｘ，Ｙ軸サーボ制御部９３Ｙ，…）を単にサーボ制御部９３と表記する。また、駆動部９０は、ワークを回転させるための主軸を回転させる主軸モータ９４と、主軸モータ９４の回転子の位置および回転数を検出する検出器９５と、検出器９５が検出した位置および回転数に基づいて主軸モータ９４を制御する主軸制御部９６と、を備える。
【００２１】
数値制御装置１Ｘの説明に戻り、入力操作部３は、数値制御装置１Ｘに情報を入力する手段である。入力操作部３は、キーボード、操作ボタン、マウスなどによって構成され、ユーザによる数値制御装置１Ｘに対するコマンド、加工プログラム、パラメータなどの入力を受け付け、制御演算部２Ｘに受け渡す。
【００２２】
表示部４は、液晶表示装置などによって構成され、制御演算部２Ｘによって処理された情報の表示などを行う。
【００２３】
制御演算部２Ｘは、入力制御部３２と、データ設定部３３と、記憶部３４と、画面処理部３１と、制御信号処理部３５と、ＰＬＣ（Programmable  Logic  Controller）３６と、解析処理部３７と、補間処理部３８Ｘと、加減速処理部３９と、軸データ入出力部４０と、を備える。なお、ＰＬＣ３６は制御演算部２Ｘの外部に配置されていてもよい。
【００２４】
入力制御部３２は、入力操作部３から入力される情報を受け付ける。データ設定部３３は、入力制御部３２が受け付けた情報を記憶部３４に格納する。たとえば、入力された内容が、記憶部３４が保持している加工プログラム３４３の編集の場合、データ設定部３３は、記憶部３４が保持している加工プログラム３４３に編集された内容を反映させる。また、パラメータが入力された場合、データ設定部３３は、記憶部３４が保持しているパラメータ３４１を更新する。
【００２５】
記憶部３４は、制御演算部２Ｘの処理で使用されるパラメータ３４１、表示部４に表示させる表示データ３４２、実行される加工プログラム３４３などを記憶する。
【００２６】
また、記憶部３４には、パラメータ３４１、表示データ３４２および加工プログラム３４３以外のデータを記憶する共有エリア３４４が設けられている。この共有エリア３４４には、制御演算部２Ｘが駆動部９０を制御する処理で生成されるデータが一時的に格納される。画面処理部３１は、記憶部３４が保持する表示データ３４２を表示部４に表示させる制御を行う。
【００２７】
解析処理部３７は、移動指令解析部３７１および振動指令解析部３７２を備える。解析処理部３７は、１以上のブロックを含む加工プログラム３４３を記憶部３４から読み込み、読み込んだ加工プログラム３４３を移動指令解析部３７１または振動指令解析部３７２で解析する。移動指令解析部３７１は、加工プログラム３４３に含まれる移動指令を解析し、解析結果を記憶部３４の共有エリア３４４に書き込む。振動指令解析部３７２は、加工プログラム３４３に含まれる振動指令を解析し、解析結果を記憶部３４の共有エリア３４４に書き込む。振動指令は、振動切削加工における工具の振動の内容を示す引数を含む。振動指令には、振動方向、すなわち、どの軸の方向に工具を振動させるかを示す引数、振動の振幅を示す引数、振動の周波数を示す引数などが含まれる。振動の周波数は、例えば、主軸が１回転する間の振動回数で示される。振動指令は、例えばＧ１６５コードで示される。
【００２８】
制御信号処理部３５は、解析処理部３７によって、数値制御軸である駆動軸を動作させる指令以外の機械を動作させる指令としての補助指令が読み込まれた場合に、補助指令が指令されたことをＰＬＣ３６に通知する。補助指令の例は、ＭコードまたはＴコードである。
【００２９】
ＰＬＣ３６は、制御信号処理部３５から補助指令が指令されたことの通知を受けると、その補助指令に対応する処理を実行する。ＰＬＣ３６は、機械動作が記述されたラダープログラムを保持している。ＰＬＣ３６は、補助指令であるＴコードまたはＭコードを受付けると、ラダープログラムに従って補助指令に対応する処理を実行する。ＰＬＣ３６は、補助指令に対応する処理を実行した後、加工プログラム３４３の次のブロックを実行させるために、補助指令に対応する処理が完了したことを示す完了信号を制御信号処理部３５に送る。
【００３０】
制御演算部２Ｘにおいて、制御信号処理部３５と、解析処理部３７と、補間処理部３８Ｘとは、記憶部３４を介して接続されている。解析処理部３７、制御信号処理部３５および補間処理部３８Ｘは、記憶部３４の共有エリア３４４を介して、各種情報の受け渡しを行う。以下では、制御信号処理部３５、解析処理部３７および補間処理部３８Ｘの間で情報の受け渡しを説明する際に、記憶部３４が介されていることの記載を省略する場合がある。
【００３１】
補間処理部３８Ｘは、工具の移動経路に関連する引数を含む指令を解析処理部３７が解析した場合、解析した指令に含まれる引数を使用し、補間処理により工具の移動経路を算出する。工具の移動経路に関連する引数を含む指令とは、工具の位置を示す引数、工具の移動速度を示す引数、補間処理で使用する補間方法を示す引数、などを１つ以上含む指令である。振動指令も工具の移動経路に関連する引数を含む指令に該当する。
【００３２】
補間処理部３８Ｘは、分配比決定部３８１、波形情報取得部３８２、比較部３８３、指令振動波形調整部３８４Ｘ、振動波形生成部３８５および振動移動量算出部３８６を備える。
【００３３】
振動波形生成部３８５は、振動指令解析部３７２が振動指令を解析した結果に基づいて、すなわち、解析した振動指令に含まれる引数に基づいて、工具を振動させる制御を行う際の工具の移動経路を示す振動波形を生成する。振動波形生成部３８５が生成する振動波形は、仮想軸の方向に工具を振動させる場合の工具の振動経路を示す。
【００３４】
分配比決定部３８１は、振動波形生成部３８５が生成する振動波形を、仮想軸制御により工具を移動させる際に制御する各駆動軸に分配する比率を決定する。上述したように、仮想軸制御は、複数の駆動軸を同期制御することにより、仮想軸の方向に工具を移動させる。そのため、工具の仮想軸の方向の移動量は、仮想軸制御で同期制御を行う各駆動軸の方向それぞれの移動量を合成したものとなる。一方、振動波形生成部３８５が生成する振動波形は、仮想軸を用いて表現される仮想機械座標系における波形、すなわち、仮想軸の方向の振動を示す波形である。そのため、分配比決定部３８１は、振動波形生成部３８５が生成する振動波形の成分を各駆動軸にどのような比率で分配すれば、駆動軸それぞれの方向の振動を示す波形が得られるかを決定する。
【００３５】
波形情報取得部３８２は、工具を振動させる制御を行った場合の工具の実際の移動経路を示す波形に関する情報を、駆動部９０から取得する。
【００３６】
比較部３８３は、振動波形生成部３８５が生成した振動波形と、波形情報取得部３８２が取得した情報が示す波形であるフィードバック波形とを比較する。比較部３８３は、振動波形生成部３８５が生成した振動波形をＸ軸の成分とＹ軸の成分とに分離して比較を行う。具体的には、比較部３８３は、Ｘ軸の成分が示すＸ軸上の振動波形を、Ｘ軸のサーボモータ９１の回転子の位置および速度を検出する検出器９２から取得した情報が示すＸ軸のフィードバック波形と比較する。また、比較部３８３は、Ｙ軸の成分が示すＹ軸上の振動波形を、Ｙ軸のサーボモータ９１の回転子の位置および速度を検出する検出器９２から取得した情報が示すＹ軸のフィードバック波形と比較する。
【００３７】
指令振動波形調整部３８４Ｘは、比較部３８３による比較結果に基づいて、後述する指令振動波形を調整する。
【００３８】
振動移動量算出部３８６は、振動波形生成部３８５が生成した振動波形と、分配比決定部３８１が決定した比率とに基づいて、Ｘ軸上での工具の移動経路を示すＸ軸の指令振動波形およびＹ軸上での工具の移動経路を示すＹ軸の指令振動波形を生成し、生成した各軸の指令振動波形に基づいて、工具を振動させて振動切削加工を行う際の工具の単位時間あたりの移動量を算出する。振動移動量算出部３８６は、駆動軸ごとに、工具の単位時間あたりの移動量である振動移動量を算出する。すなわち、振動移動量算出部３８６は、駆動軸ごとの指令振動波形に基づいて、工具のＸ軸の振動移動量と、工具のＹ軸の振動移動量とを算出する。
【００３９】
加減速処理部３９は、補間処理部３８Ｘの振動移動量算出部３８６から受け取った各駆動軸の単位時間あたりの移動量を、予め指定された加減速パターンに基づいて、加減速を考慮した単位時間あたりの移動指令に変換する。
【００４０】
軸データ入出力部４０は、加減速処理部３９から出力される単位時間あたりの移動指令を、各駆動軸を制御するサーボ制御部９３に出力する。また、軸データ入出力部４０は、駆動部９０から、各サーボモータ９１の位置および回転速度を示すデータを取得する。
【００４１】
図３に示す数値制御装置１Ｘがねじ切り加工において振動切削を行う場合の動作について簡単に説明する。
【００４２】
数値制御装置１Ｘの解析処理部３７は、加工プログラム３４３から１ブロックを読み出し、読み出したブロックがねじ切り指令の場合は移動指令解析部３７１で解析を行い、読み出したブロックが振動指令の場合は振動指令解析部３７２で解析を行う。解析処理部３７は、例えば、読み出したブロックがＧ３３コードであれば、ねじ切り指令と判断し、読み出したブロックがＧ１６５コードであれば、振動指令と判断する。
【００４３】
ねじ切り指令は、１回のねじ切り加工における工具の移動経路を指定する引数を含む。ねじ切り指令は、例えば、ねじ切り加工を開始する位置を示す引数と、ねじ切り加工を終了する位置を示す引数と、ワーク１回転あたりの工具の移動量を示す引数（ピッチ）とを含む。ねじ切り加工で使用する工具は、使用する工具を指定する指令によって予め指定されることを想定するが、使用する工具を指定する引数をねじ切り指令に含めてもよい。
【００４４】
ねじ切り加工において振動切削を行う場合、通常のワークの加工において振動切削を行う場合とは異なり、ねじ切りの加工方向に対して垂直な方向、すなわち、ワークの回転軸に対して垂直な方向に工具を振動させながら、ねじ切り加工を行う（図４参照）。図４は、ねじ切り加工において振動切削を行う場合の工具の振動方向を示す図である。Ｘ軸とＺは直交するものとする。図４に示すように、加工方向がＺ軸の方向の場合、振動切削で工具を振動させる方向はＸ軸方向となる。
【００４５】
振動波形生成部３８５は、振動指令解析部３７２が振動指令を解析すると、共有エリア３４４を介して、振動指令の解析結果を取得し、取得した解析結果を元に振動の基本波形である振動波形を生成する。振動移動量算出部３８６は、振動波形生成部３８５が生成した振動波形と、工具の移動経路とを使用して、例えばＸ軸の振動移動量を求める。具体的には、振動移動量算出部３８６は、工具の移動経路に振動波形の振幅を加算した振動前進位置と、工具の移動経路から振動波形の振幅を減算した振動後進位置とを求め、Ｘ軸の振動移動量を生成する。工具の移動経路は、移動指令解析部３７１によるねじ切り指令の解析結果から求める。
【００４６】
振動移動量算出部３８６で算出された振動移動量は、加減速処理部３９および軸データ入出力部４０を介して、駆動部９０に送られる。駆動部９０では、振動移動量算出部３８６から受け取った振動移動量に基づいて、Ｘ軸サーボ制御部９３ＸがＸ軸のサーボモータ９１を制御する。すなわち、ねじ切り加工における振動切削を行う。図５は、ねじ切り加工における振動切削のイメージを示す図である。図５では、濃い部分が、工具の振動に伴い切り込み量が大きくなりワークを深く切り込んだ部分を示し、淡い部分がワークを浅く切り込んだ部分を示す。１回目のねじ切り加工の図４に示すＸ軸方向の振動と２回目のねじ切り加工のＸ軸方向の振動の位相を例えば１８０°ずらすと、１回目に深く切り込んだ部分が、２回目は浅く切り込まれることになり、当該部分で、切り屑が分断される。すなわち、細切れの切り屑が排出されることになる。
【００４７】
図６は、実施の形態１にかかる数値制御装置１Ｘが仮想軸制御により工具を振動させながらねじ切り加工を行う動作の一例を示すフローチャートである。ここで、仮想軸制御を行う場合、加工プログラム３４３には、仮想軸制御の開始を指示する仮想軸制御指令が含まれる。すなわち、仮想軸制御により工具を仮想軸上で振動させる場合、加工プログラム３４３の作成者は、数値制御装置１Ｘがまず仮想軸制御指令を実行し、その後に振動指令を実行する構成の加工プログラム３４３を作成する。仮想軸制御指令には、仮想軸制御で使用する仮想機械座標系と実機械座標系との関係を示す各種引数が含まれる。仮想軸制御指令に含まれる引数の例は、実機械座標系を回転させて仮想機械座標系を設定する際の回転角度、すなわち、仮想機械座標系を設定する際に実機械座標系の各実軸をどれだけ回転させるかを示す回転角度を示す引数、仮想機械座標系を設定する際に実機械座標系を各実軸の方向にどれだけシフトさせるかを示す引数、などである。振動指令は振動方向を示す引数が含まれるが、仮想軸制御を開始した後に実行する振動指令の引数は仮想機械座標系での振動方向を示す。例えば、Ｘ軸方向での振動を示す引数が含まれる振動指令を仮想軸制御開始後に実行した場合、振動指令の引数が示す振動方向は仮想Ｘ軸方向となる。
【００４８】
図６に示す動作では、まず、解析処理部３７が、加工プログラム３４３に含まれる指令のうち、仮想軸制御指令から、回転角度を取得する（ステップＳ１）。なお、ここでは仮想軸制御指令から回転角度を取得することとしたが、解析処理部３７は、使用する工具を指定する指令に基づいて回転角度を取得してもよい。本実施の形態では、図２に示すように、ねじ切り加工で使用する各工具が加工時に移動する方向は予め決まっている。例えば、切削工具Ｔ２の振動方向に一致する仮想Ｘ軸と実Ｘ軸の角度は４５°である。そのため、切削工具Ｔ２が使用する工具として指定された場合の回転角度は４５°となる。また、切削工具Ｔ１が使用する工具として指定された場合の回転角度は９０°となる。したがって、使用する工具が分かれば、仮想軸と実軸の角度、すなわち回転角度が分かる。
【００４９】
次に、補間処理部３８Ｘが、回転角度に基づいて、振動波形を実軸のそれぞれに分配する（ステップＳ２）。このステップＳ２では、まず、分配比決定部３８１が、ステップＳ１で取得された回転角度に基づいて、振動波形生成部３８５が生成する振動波形を実Ｘ軸および実Ｙ軸に分配する比率（以下、分配比と称する）を決定する。分配比決定部３８１は、決定した分配比を振動移動量算出部３８６に通知する。振動波形生成部３８５は、振動指令の解析結果に基づいて振動波形を生成して振動移動量算出部３８６に渡す。振動移動量算出部３８６は、振動波形生成部３８５が生成した振動波形と分配比決定部３８１が決定した分配比とに基づいて、各軸の指令振動波形を生成する。すなわち、振動移動量算出部３８６は、振動波形生成部３８５が生成した振動波形の成分を分配比に従い実軸のそれぞれに分配して各軸の指令振動波形を生成する。本実施の形態では、振動移動量算出部３８６は、実Ｘ軸の指令振動波形と、実Ｙ軸の指令振動波形とを生成する。そして、振動移動量算出部３８６は、実Ｘ軸の工具の移動量に実Ｘ軸の指令振動波形を重畳させ、また、実Ｙ軸の工具の移動量に実Ｙ軸の指令振動波形を重畳させることにより、各軸の振動移動量を生成する。振動移動量算出部３８６が生成した各軸の振動移動量は、加減速処理部３９および軸データ入出力部４０を経由して駆動部９０の各軸のサーボ制御部９３（Ｘ軸サーボ制御部９３Ｘ，Ｙ軸サーボ制御部９３Ｙ，…）に送られる。各軸のサーボ制御部９３は、振動移動量算出部３８６から受け取った振動移動量に基づいて、制御対象のサーボモータ９１を制御する。
【００５０】
図２に示す例では切削工具Ｔ２が選択されており、切削工具Ｔ２の振動方向に対応する仮想Ｘ軸の回転角度が４５°である。この場合、振動波形の分配比は、実Ｘ軸が１／２、実Ｙ軸が１／２となる。図２に示す切削工具Ｔ２を選択して振動切削を伴うねじ切り加工を行う場合の実Ｘ軸の指令振動波形および実Ｙ軸の指令振動波形の一例を図７に示す。図７は、実施の形態１にかかる数値制御装置１Ｘの振動波形生成部３８５が生成する指令振動波形の一例を示す図である。図７の（ａ）は実Ｘ軸の指令振動波形を示し、（ｂ）は実Ｙ軸の指令振動波形を示す。説明を簡単化するため、図７では各軸の移動量を考慮しない指令振動波形、すなわち、各軸の移動量が０の場合の振動波形を示している。振動波形の分配比は実Ｘ軸が１／２、実Ｙ軸が１／２であるため、実Ｘ軸の指令振動波形と実Ｙ軸の指令振動波形は振幅および周波数が同じ波形となっている。回転角度が４５°以外であれば、実Ｘ軸の指令振動波形の振幅と実Ｙ軸の指令振動波形の振幅とは異なる大きさになる。なお、実Ｘ軸の指令振動波形および実Ｙ軸の指令振動波形の周波数は回転角度が４５°以外の場合も同じ値となる。
【００５１】
図６の説明に戻り、次に、波形情報取得部３８２が、各サーボモータ９１に取り付けられた検出器９２から出力されるデータに基づいて、各軸のフィードバック振動波形（以下、ＦＢ振動波形とする）を取得する（ステップＳ３）。ＦＢ振動波形とは、加工で使用している工具の実際の振動波形である。
【００５２】
次に、比較部３８３が、振動移動量算出部３８６が生成する各軸の指令振動波形とステップＳ３で取得した各軸のＦＢ振動波形とを比較する（ステップＳ４）。指令振動波形とＦＢ振動波形の比較は軸ごとに行う。例えば、振動移動量算出部３８６が生成する各軸の指令振動波形が図８の実線で示す波形であり、各軸のＦＢ振動波形が図８の点線で示す波形である場合、比較部３８３は、実Ｘ軸の指令振動波形とＦＢ振動波形では振幅が異なり、実Ｙ軸の指令振動波形とＦＢ振動波形では振幅および位相が異なると判断する。比較部３８３は、例えば、指令振動波形の振幅の最大値とＦＢ振動波形の振幅の最大値とを比較することで、振幅が一致するかを判断する。また、比較部３８３は、例えば、指令振動波形の振幅が最大となる位置とＦＢ振動波形の振幅が最大となる位置とを比較することで、位相が一致するかを判断する。比較部３８３は、指令振動波形とＦＢ振動波形の振幅の差が定められた値以下の場合に振幅が一致していると判断し、指令振動波形とＦＢ振動波形の位相の差が定められた値以下の場合に位相が一致していると判断してもよい。
【００５３】
各軸の指令振動波形とＦＢ振動波形の振幅が一致する場合（ステップＳ５：Ｙｅｓ）、補間処理部３８Ｘは、ステップＳ７の処理に進む。各軸の指令振動波形とＦＢ振動波形の振幅が一致しない場合、すなわち、実Ｘ軸および実Ｙ軸のうち、少なくとも一方の軸の指令振動波形とＦＢ振動波形の振幅が一致しない場合（ステップＳ５：Ｎｏ）、指令振動波形調整部３８４Ｘが、振幅が一致していない軸の指令振動波形とＦＢ振動波形の振幅の差分が０に近づくよう指令振動波形を調整する（ステップＳ６）。図８に示す例の場合、実Ｘ軸および実Ｙ軸の双方において振幅が一致していないため、指令振動波形調整部３８４Ｘは、実Ｘ軸の指令振動波形および実Ｙ軸の指令振動波形の振幅の調整を行う。指令振動波形調整部３８４Ｘは、例えば、指令振動波形のピーク値とＦＢ振動波形のピーク値の差を複数の箇所で算出し、その平均値を、次回作成する指令振動波形のピーク値に加算または減算して振幅を調整する。以下、指令振動波形の振幅を調整する際の調整量を振動振幅調整量と称する。
【００５４】
各軸の指令振動波形とＦＢ振動波形の位相が一致する場合（ステップＳ７：Ｙｅｓ）、補間処理部３８Ｘは、ステップＳ３の処理に戻る。各軸の指令振動波形とＦＢ振動波形の位相が一致しない場合、すなわち、実Ｘ軸および実Ｙ軸のうち、少なくとも一方の軸の指令振動波形とＦＢ振動波形の位相が一致しない場合（ステップＳ７：Ｎｏ）、指令振動波形調整部３８４Ｘが、位相が一致していない軸の指令振動波形とＦＢ振動波形の位相のずれが０に近づくよう指令振動波形を調整する（ステップＳ８）。図８に示す例の場合、実Ｘ軸の指令振動波形とＦＢ振動波形は位相が一致しており、実Ｙ軸の指令振動波形とＦＢ振動波形は位相が一致していないため、指令振動波形調整部３８４Ｘは、実Ｙ軸の指令振動波形の位相の調整を行う。指令振動波形とＦＢ振動波形の位相がずれる場合、通常は、ＦＢ振動波形の位相が指令振動波形の位相から遅れる。指令振動波形調整部３８４Ｘは、サーボモータ９１の応答性を上げて位相のずれを０に近づけるために、電流ループゲイン、速度ループゲインなどのサーボパラメータを調整する。これらのサーボパラメータは記憶部３４が保持するパラメータ３４１に含まれる。指令振動波形調整部３８４Ｘは、パラメータ３４１に含まれるサーボパラメータのうち、位相の調整に必要な各サーボパラメータの値を例えば「５」だけ上げて調整する。調整後のパラメータは、加減速処理部３９および軸データ入出力部４０を経由してＸ軸サーボ制御部９３Ｘ，Ｙ軸サーボ制御部９３Ｙ，…に送信され、この結果、サーボモータ９１の電流ループゲイン、速度ループゲインなどが調整される。ここではサーボパラメータの調整量を「５」としたが他の調整量としてもよい。ステップＳ８を実行した後、補間処理部３８Ｘは、ステップＳ３の処理に戻る。
【００５５】
図６に示す動作を実行して指令振動波形を調整することにより、実Ｘ軸の指令振動波形と実Ｙ軸の指令振動波形とを合成して得られる合成振動波形が、図９に示したものから図１０に示したものとなる。図９に示す合成振動波形は、各軸の指令振動波形の振幅および位相を調整する前の合成振動波形、図１０に示す合成振動波形は、各軸の指令振動波形の振幅および位相を調整した後の合成振動波形である。
【００５６】
図６に示す動作、すなわち、工具を移動させる各軸のＦＢ振動波形に基づいて各軸の指令振動波形の振幅および位相を調整する動作を行うことにより、各軸のサーボモータ９１の応答性が異なる場合でも、合成振動波形を正常な形状に近づけることができる。この結果、仮想軸制御を使用して行う振動切削加工において切り屑の分断を確実に行うことができる。
【００５７】
本実施の形態では、振動切削加工に仮想軸制御を適用する場合について説明したが、図１１に示す傾斜軸制御を適用することも可能である。図１１に示す傾斜軸制御は、図１２に示す構成の工作機械、すなわち、サーボモータが取り付けられる軸（図１１，図１２ではＸ軸およびＹ軸）の角度が９０°以外の工作機械を制御する場合に使用される。図１１に示す例の場合、実Ｙ軸とプログラム上のＹ軸（図示のｙ軸）との傾斜角度がθである。ｙ軸の方向に工具を振動させる場合、実Ｘ軸および実Ｙ軸のサーボモータを同期制御する必要があるが、上述した仮想軸制御を適用する場合と同様に、ｙ軸の振動波形を生成し、これを傾斜角度θに基づいて実Ｘ軸および実Ｙ軸に分配することで、実Ｘ軸および実Ｙ軸の指令振動波形を生成すればよい。
【００５８】
また、図１３に示す構成の工作機械で振動切削加工を行うことも可能である。図１３に示す工作機械は、工具を回転し、位置決めを行い、使用する構成である。また、工具の移動方向が、工作機械が有する制御軸（図示のＸ軸，Ｚ軸）と一致していない。そのため、工具を振動させる場合、複数の軸のサーボモータを同期制御する必要があるが、上述した仮想軸制御および傾斜軸制御と同様の方法で複数の軸それぞれの指令振動波形を生成すればよい。
【００５９】
なお、図２に示す切削工具Ｔ１，Ｔ３，Ｔ５を使用する場合、仮想軸制御指令が実行されずに振動指令が実行されることになる。この場合、補間処理部３８Ｘの分配比決定部３８１は、切削工具Ｔ１を使用するときは回転角度を９０°、切削工具Ｔ３を使用するときは回転角度を０°、切削工具Ｔ５を使用するときは回転角度を−９０°として分配比を決定する。
【００６０】
つづいて、数値制御装置１Ｘが備える制御演算部２Ｘのハードウェア構成について説明する。図１４は、実施の形態１にかかる数値制御装置１Ｘが備える制御演算部２Ｘのハードウェア構成例を示す図である。
【００６１】
制御演算部２Ｘは、図１４に示したプロセッサ１０１およびメモリ１０２により実現することができる。プロセッサ１０１の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ１０２の例は、ＲＡＭ（Random  Access  Memory）またはＲＯＭ（Read  Only  Memory）である。
【００６２】
制御演算部２Ｘは、プロセッサ１０１が、メモリ１０２で記憶されている、制御演算部２Ｘの動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部２Ｘの手順または方法をコンピュータに実行させるものであるともいえる。メモリ１０２は、プロセッサ１０１が各種処理を実行する際の一時メモリにも使用される。
【００６３】
プロセッサ１０１が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な（non-transitory）記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ１０１が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
【００６４】
また、制御演算部２Ｘを専用のハードウェアで実現してもよい。また、制御演算部２Ｘの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【００６５】
以上のように、本実施の形態にかかる数値制御装置１Ｘは、工具を振動させる際の工具の移動経路を示す振動波形を生成する振動波形生成部３８５と、実機械座標系を回転させて仮想機械座標系を設定する際の実機械座標系の回転角度に基づいて、工具を振動させる際の制御対象軸のそれぞれに振動波形を分配する際の分配比を決定する分配比決定部３８１と、振動波形と分配比とに基づいて、制御対象軸のそれぞれにおける工具の振動波形を生成し、生成した振動波形に基づいて各制御対象軸の振動移動量を算出する振動移動量算出部３８６を備える。これにより、工具の振動方向が複数の駆動軸を同期制御することにより実現される仮想軸の方向である場合でも、振動切削を行うことが可能となる。また、数値制御装置１Ｘは、制御対象軸のそれぞれにおける工具の実際の振動波形と、振動移動量算出部３８６が生成する制御対象軸のそれぞれにおける工具の振動波形とを比較する比較部３８３と、比較部３８３での比較結果に基づいて、振動移動量算出部３８６が生成する制御対象軸のそれぞれにおける工具の振動波形を調整する指令振動波形調整部３８４Ｘを備える。これにより、各制御対象軸のサーボモータ９１の応答性が異なる場合でも、切り屑の分断を確実に行うことができる。
【００６６】
実施の形態２．
図１５は、実施の形態２にかかる数値制御装置の構成例を示す図である。図１５では、実施の形態１にかかる数値制御装置１Ｘと同じ構成要素に同一の符号を付している。
【００６７】
実施の形態２にかかる数値制御装置１Ｙは、実施の形態１にかかる数値制御装置１Ｘの制御演算部２Ｘを制御演算部２Ｙに置き換えた構成である。制御演算部２Ｙは、実施の形態１にかかる制御演算部２Ｘの補間処理部３８Ｘを補間処理部３８Ｙに置き換えるとともに、機械学習装置５０を追加した構成である。制御演算部２Ｙの補間処理部３８Ｙおよび機械学習装置５０以外の構成は実施の形態１にかかる制御演算部２Ｘと同じであるため、説明は省略する。
【００６８】
補間処理部３８Ｙは、補間処理部３８Ｘの指令振動波形調整部３８４Ｘを指令振動波形調整部３８４Ｙに置き換えた構成である。指令振動波形調整部３８４Ｙは、機械学習装置５０が出力する振動波形補正情報に基づいて指令振動波形を補正する。機械学習装置５０は、学習部５１および状態観測部５２を含む。
【００６９】
機械学習装置５０は、共有エリア３４４に格納されている各軸のイナーシャ情報と、比較部３８３が各軸の振動波形とＦＢ振動波形とを比較して得られる各軸の振動波形ずれ量と、パラメータ３４１に含まれる各軸のサーボパラメータの変更情報とを用いて機械学習を行い、指令振動波形調整部３８４Ｙが指令振動波形を補正する際に使用する振動波形補正情報を生成する。
【００７０】
機械学習装置５０が振動波形補正情報を推測するための学習に使用する振動波形ずれ量とは、振動波形とＦＢ振動波形の振幅の差および位相の差である。振動波形とＦＢ振動波形の振幅の差は、上述した振動振幅調整量である。また、各軸のサーボパラメータの変更情報に関して、各軸のサーボパラメータとは、上述した図６のステップＳ８で位相のずれを０に近づけるために変更する電流ループゲイン、速度ループゲインなどである。サーボパラメータの変更情報とは、サーボパラメータの変更内容を示す情報である。
【００７１】
また、各軸のイナーシャ情報に関して、各軸のサーボモータ９１は、それぞれ、カップリング等のリンク機構を介して、機械のボールねじと接続される。また、ボールねじには機械の構造体が取り付けられており、この取り付けられる構造体は、各軸で通常異なっている。したがって、各サーボモータ９１が同じ容量であっても、取り付けられる構造体が異なっている関係で、サーボモータ９１のそれぞれにかかるイナーシャは異なってくる。実際、機械を新規にセットアップする時に、サーボモータが適正なトルクが出せるように、サーボモータの調整を行う。この調整を行う際に、サーボモータにかかるイナーシャ情報が必要になる。本実施の形態にかかる数値制御装置１Ｙは、各軸のサーボモータ９１にかかるイナーシャを計測する機能を有し、この機能を使用して予め計測したイナーシャ情報を共有エリア３４４に格納済みであるものとする。なお、数値制御装置１Ｙがイナーシャの計測機能を有することは本発明を実現する上で必須ではない。機械をセットアップする際に作業者が各軸のイナーシャを測定してイナーシャ情報を作成し、作成したイナーシャ情報を記憶部３４の共有エリア３４４または他のエリアに予め格納しておけば、機械学習装置５０は学習を行うことができる。
【００７２】
状態観測部５２は、データ観測した結果であるデータセットを学習部５１に出力する。学習部５１は、状態観測部５２から入力されるデータセットに基づいて、振動波形補正情報を学習する。すなわち、状態観測部５２は、共有エリア３４４に格納されている各軸のイナーシャ情報と、指令振動波形調整部３８４Ｙによる各軸のサーボパラメータの変更内容を示す変更情報と、比較部３８３で生成された各軸の振動波形ずれ量とを状態変数として観測し、状態変数に基づいて作成したデータセットを学習部５１に出力する。学習部５１は、状態観測部５２から出力されるデータセットに基づいて、振動波形補正情報を学習する。ここで、データセットは、振動振幅調整量、各軸のイナーシャ情報、各軸のサーボパラメータ変更情報および各軸の振動波形ずれ量を互いに関連付けたデータである。振動波形補正情報は、指令振動波形を補正してＦＢ振動波形に近づける際の振幅の補正量すなわち振動振幅調整量と、実施の形態１で説明した各軸のＦＢ振動波形を指令振動波形に近づけるために行うサーボパラメータの調整内容とを示す。
【００７３】
なお、機械学習装置５０は、例えば、実施の形態１にかかる数値制御装置１Ｘにネットワークを介して接続され、数値制御装置１Ｘとは別個の装置であってもよい。この場合、機械学習装置５０は、クラウドサーバ上に存在していてもよい。また、機械学習装置５０は、図１５に図示したように数値制御装置１Ｙに内蔵されていてもよい。
【００７４】
学習部５１は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により、各軸のイナーシャ情報、各軸のサーボパラメータ変更情報および各軸の振動波形ずれ量を互いに関連付けたデータセットから学習する。ここで、教師あり学習とは、ある入力と結果のデータの組を大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデルをいう。本実施の形態にかかる数値制御装置１Ｙにおいては、各軸の振動波形ずれ量が教師データとなる。
【００７５】
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層および複数のニューロンからなる出力層で構成される。中間層は隠れ層とも呼ばれる。中間層は、１層、または２層以上でもよい。
【００７６】
例えば、３層のニューラルネットワークであれば、複数の入力が入力層に入力されると、その値に重みを掛けて中間層に入力され、その結果にさらに重みを掛けて出力層から出力される。この出力結果は、各々の重みの値によって変わる。
【００７７】
本実施の形態にかかる機械学習装置５０において、ニューラルネットワークは、状態観測部５２で生成されるデータセットに従って、いわゆる教師あり学習により、振動波形補正情報を学習する。
【００７８】
すなわち、ニューラルネットワークの入力層には、各軸のイナーシャ情報、各軸のサーボパラメータ変更情報および各軸の振動波形ずれ量を互いに関連付けたデータセットが入力される。ニューラルネットワークは、データセットが入力されるごとに、出力層から出力される振動波形補正情報に従って指令振動波形調整部３８４Ｙが指令振動波形を調整したときの各軸の振動波形ずれ量が０に近づくように上記の重みそれぞれを個別に調整することで、学習を行う。
【００７９】
また、ニューラルネットワークは、いわゆる教師なし学習によって、振動波形補正情報を学習することもできる。教師なし学習とは、入力データのみを大量に機械学習装置５０に与えることで、入力データがどのような分布をしているか学習し、対応する教師出力データを与えなくても、入力データに対して圧縮、分類、整形などを行う装置を学習する手法である。教師なし学習は、入力されるデータセットにある特徴を似た者どうしにクラスタリングすることなどができる。この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することできる。
【００８０】
また、機械学習装置５０が数値制御装置１Ｙに内蔵されていない構成の場合、学習部５１は、複数の数値制御装置１Ｙに対して作成されるデータセットに従って、振動波形補正情報を学習結果として出力してもよい。なお、学習部５１は、同一の現場で使用される複数の数値制御装置１Ｙからデータセットを取得してもよいし、或いは、異なる現場で独立して稼働する複数の工作機械の数値制御装置１Ｙから収集されるデータセットを利用してもよい。本構成では、さらに、データセットを収集する数値制御装置１Ｙを途中で対象に追加し、或いは、逆に対象から切り離すことも可能である。また、ある数値制御装置１Ｙから取得したデータセットを用いて学習を行った機械学習装置５０を、これとは別の数値制御装置１Ｙに取り付け、当該別の数値制御装置１Ｙからデータセットを取得して再学習を行い、学習結果を更新するようにしてもよい。
【００８１】
また、学習部５１に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習（Ｄｅｅｐ  Ｌｅａｒｎｉｎｇ）を用いることもでき、他の公知の方法、例えば遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
【００８２】
機械学習装置５０が出力する振動波形補正情報は指令振動波形調整部３８４Ｙに受け渡される。指令振動波形調整部３８４Ｙは、振動波形補正情報に従い各軸の指令振動波形を調整する。
【００８３】
このように、本実施の形態にかかる数値制御装置１Ｙは、各軸のイナーシャ情報と、各軸の振動波形ずれ量と、振動振幅調整量と、各軸のサーボパラメータの変更情報とを使用して機械学習を行う機械学習装置５０を備える。指令振動波形調整部３８４Ｙは、機械学習装置５０が機械学習を行い生成する振動波形補正情報に従い、各軸の指令振動波形を調整する。これにより、各制御対象軸のサーボモータ９１の応答性が異なる場合でも、切り屑の分断を確実に行うことができる。
【００８４】
なお、実施の形態２にかかる数値制御装置１Ｙが備える制御演算部２Ｙおよび機械学習装置５０は、実施の形態１にかかる数値制御装置１Ｘが備える制御演算部２Ｘと同様に、図１４に示すプロセッサ１０１およびメモリ１０２で実現することが可能である。
【００８５】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００８６】
１Ｘ，１Ｙ  数値制御装置、２Ｘ，２Ｙ  制御演算部、３  入力操作部、４  表示部、３１  画面処理部、３２  入力制御部、３３  データ設定部、３４  記憶部、３５  制御信号処理部、３６  ＰＬＣ、３７  解析処理部、３８Ｘ，３８Ｙ  補間処理部、３９  加減速処理部、４０  軸データ入出力部、５０  機械学習装置、５１  学習部、５２  状態観測部、９０  駆動部、９１  サーボモータ、９２，９５  検出器、９３Ｘ  Ｘ軸サーボ制御部、９３Ｙ  Ｙ軸サーボ制御部、９４  主軸モータ、９６  主軸制御部、３４１  パラメータ、３４２  表示データ、３４３  加工プログラム、３４４  共有エリア、３７１  移動指令解析部、３７２  振動指令解析部、３８１  分配比決定部、３８２  波形情報取得部、３８３  比較部、３８４Ｘ，３８４Ｙ  指令振動波形調整部、３８５  振動波形生成部、３８６  振動移動量算出部。
【要約】
複数の駆動軸を制御して工具を移動させる工作機械を制御する数値制御装置（１Ｘ）であって、工具を振動させながらワークを加工する際の工具の振動経路を示す振動波形を生成する振動波形生成部（３８５）と、工具を振動させる際の工具の振動方向と複数の駆動軸のいずれか一つの駆動軸である基準軸の方向の角度と、振動波形とに基づいて、複数の駆動軸それぞれにおける工具の移動経路を示す駆動軸ごとの指令振動波形を生成する振動移動量算出部（３８６）と、を備える。【図１】
0006843314.tif 000002
【図２】
0006843314.tif 000003
【図３】
0006843314.tif 000004
【図４】
0006843314.tif 000005
【図５】
0006843314.tif 000006
【図６】
0006843314.tif 000007
【図７】
0006843314.tif 000008
【図８】
0006843314.tif 000009
【図９】
0006843314.tif 000010
【図１０】
0006843314.tif 000011
【図１１】
0006843314.tif 000012
【図１２】
0006843314.tif 000013
【図１３】
0006843314.tif 000014
【図１４】
0006843314.tif 000015
【図１５】
0006843314.tif 000016