(57)【要約】【課題】新たな構成を追加せずにびびり振動を検出できる数値制御装置、該数値制御装置を備えた工作機械、びびり振動を検出するための制御プログラム、及び、該制御プログラムを記憶した記憶媒体を提供する。【解決手段】数値制御装置は、被削体に対する工具の相対的な移動方向を特定する（Ｐ５）。数値制御装置は、被削体に対する工具の刃先の位置である刃先位置を複数特定する（Ｐ４）。数値制御装置は、特定した複数の刃先位置に基づき、移動方向において刃が被削体を切削する切込位置を複数特定する（Ｐ６）。数値制御装置は、特定した複数の切込位置の間の距離を、切込量として特定する（Ｐ７）。数値制御装置は、特定した切込量に基づき、びびり振動が発生したか否かを判定する（Ｐ８）。数値制御装置は、びびり振動が発生したと判定した時に報知する（Ｐ９）。【選択図】図３
2020160830.tif 000002
【特許請求の範囲】
【請求項１】
工具を回転する為の主軸と、
前記主軸の回転を検出する第一検出器と、
被削体に対して前記工具を相対移動する為の送り機構と、
前記送り機構による前記工具の相対移動を検出する第二検出器と、
を備えた工作機械を制御し、前記工具により前記被削体の切削加工を行う数値制御装置であって、
前記工具の刃の刃数と径を少なくとも含む工具情報を記憶する記憶部と、
前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の相対的な移動方向を特定する第一特定部と、
前記記憶部に記憶した前記工具情報、前記第一検出器及び前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の刃先の位置である刃先位置を複数特定する第二特定部と、
前記第二特定部により特定した複数の前記刃先位置に基づき、前記第一特定部により特定した前記移動方向において前記刃が前記被削体を切削する切込位置を複数特定する第三特定部と、
前記第三特定部により特定した複数の前記切込位置の間の距離を、切込量として特定する第四特定部と、
前記第四特定部により特定した前記切込量に基づき、びびり振動が発生したか否かを判定する判定部と、
前記判定部によりびびり振動が発生したと判定した時に報知する報知部と
を備えたことを特徴とする数値制御装置。
【請求項２】
前記第一特定部は、
前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の相対位置を複数特定し、特定した複数の前記相対位置に沿って延びる方向の移動平均に基づいて前記移動方向を特定することを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記第二特定部は、
前記第二検出器の検出結果に基づき決定した前記工具の回転中心と、
前記第一検出器の検出結果に基づき決定した前記工具の回転角度と、
前記記憶部に前記工具情報として記憶した前記刃数及び前記径に基づいて、前記刃先位置を複数特定することを特徴とする請求項１又は２に記載の数値制御装置。
【請求項４】
前記第三特定部は、
前記第二特定部により特定した複数の前記刃先位置に基づき、前記刃先の移動軌跡である第一移動軌跡、及び、前記第一移動軌跡と異なる第二移動軌跡を特定し、
前記工具の回転中心から、前記第一特定部により特定した前記移動方向に延びる仮想ベクトルと、特定した前記第一移動軌跡及び前記第二移動軌跡との夫々の交点を、第一切込位置及び第二切込位置として特定し、
前記第四特定部は、
前記第三特定部により特定した前記第一切込位置及び前記第二切込位置の間の距離を、前記切込量として特定する
ことを特徴とする請求項１から３の何れかに記載の数値制御装置。
【請求項５】
前記第三特定部は、
複数の前記刃先位置の位置を通る円弧を、前記移動軌跡として複数特定する
ことを特徴とする請求項４に記載の数値制御装置。
【請求項６】
前記第二特定部は、
前記工具の第一刃の前記刃先位置、及び、前記第一刃と異なる第二刃の前記刃先位置を特定することを特徴とする請求項１から５の何れかに記載の数値制御装置。
【請求項７】
前記報知部は、
前記第三特定部により特定した前記移動軌跡を少なくとも含む軌跡画像を、表示部に表示することを特徴とする請求項４又は５に記載の数値制御装置。
【請求項８】
請求項１から７の何れかに記載の前記数値制御装置を備えたことを特徴とする工作機械。
【請求項９】
工具を回転する為の主軸と、
前記主軸の回転を検出する第一検出器と、
被削体に対して前記工具を相対移動する為の送り機構と、
前記送り機構による前記工具の相対移動を検出する第二検出器と、
を備えた工作機械を制御し、前記工具により前記被削体の切削加工を行うコンピュータに、
前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の相対的な移動方向を特定する第一特定工程と、
記憶部に記憶した、前記工具の刃の刃数と径を少なくとも含む工具情報、前記第一検出器及び前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の刃先の位置である刃先位置を複数特定する第二特定工程と、
前記第二特定工程により特定した複数の前記刃先位置に基づき、前記第一特定工程により特定した前記移動方向において前記刃が前記被削体を切削する切込位置を複数特定する第三特定工程と、
前記第三特定工程により特定した複数の前記切込位置の間の距離を、切込量として特定する第四特定工程と、
前記第四特定工程により特定した前記切込量に基づき、びびり振動が発生したか否かを判定する判定工程と、
前記判定工程によりびびり振動が発生したと判定した時に報知する報知工程と
を実行させる為の制御プログラム。
【請求項１０】
工具を回転する為の主軸と、
前記主軸の回転を検出する第一検出器と、
被削体に対して前記工具を相対移動する為の送り機構と、
前記送り機構による前記工具の相対移動を検出する第二検出器と、
を備えた工作機械を制御し、前記工具により前記被削体の切削加工を行うコンピュータに、
前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の相対的な移動方向を特定する第一特定工程と、
記憶部に記憶した、前記工具の刃の刃数と径を少なくとも含む工具情報、前記第一検出器及び前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の刃先の位置である刃先位置を複数特定する第二特定工程と、
前記第二特定工程により特定した複数の前記刃先位置に基づき、前記第一特定工程により特定した前記移動方向において前記刃が前記被削体を切削する切込位置を複数特定する第三特定工程と、
前記第三特定工程により特定した複数の前記切込位置の間の距離を、切込量として特定する第四特定工程と、
前記第四特定工程により特定した前記切込量に基づき、びびり振動が発生したか否かを判定する判定工程と、
前記判定工程によりびびり振動が発生したと判定した時に報知する報知工程と
を実行させる為の制御プログラムを記憶した、記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置、数値制御装置を備えた工作機械、制御プログラム、及び、制御プログラムを記憶した記憶媒体に関する。
【背景技術】
【０００２】
工作機械にて発生するびびり振動を検出する様々な方法がある。特許文献１は、びびり振動の検出結果をモニタに表示する振動情報表示装置を開示する。該装置は、主軸ハウジングに設けた三つの振動センサから、Ｘ軸、Ｙ軸、Ｚ軸方向の夫々の振動値を取得する。該装置は、取得した振動値と所定閾値との比較結果に基づき、単位時間当たりの振動の変化率を算出する。更に該装置は、変化率が設定値を超えた時、びびり振動の振動情報として振動値等をモニタに表示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２２４６９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
該方法では、びびり振動を検出する為に振動センサを主軸ハウジングに設ける必要がある。これに対し、低コスト化や省スペース化の観点から、振動センサ等の新たな検出器を工作機械に追加せずにびびり振動を検出できることが好ましい。
【０００５】
本発明の目的は、新たな構成を追加せずにびびり振動を検出できる数値制御装置、該数値制御装置を備えた工作機械、びびり振動を検出するための制御プログラム、及び、該制御プログラムを記憶した記憶媒体の提供である。
【課題を解決するための手段】
【０００６】
本発明の第一態様に係る数値制御装置は、工具を回転する為の主軸と、前記主軸の回転を検出する第一検出器と、被削体に対して前記工具を相対移動する為の送り機構と、前記送り機構による前記工具の相対移動を検出する第二検出器と、を備えた工作機械を制御し、前記工具により前記被削体の切削加工を行う数値制御装置であって、前記工具の刃の刃数と径を少なくとも含む工具情報を記憶する記憶部と、前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の相対的な移動方向を特定する第一特定部と、前記記憶部に記憶した前記工具情報、前記第一検出器及び前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の刃先の位置である刃先位置を複数特定する第二特定部と、前記第二特定部により特定した複数の前記刃先位置に基づき、前記第一特定部により特定した前記移動方向において前記刃が前記被削体を切削する切込位置を複数特定する第三特定部と、前記第三特定部により特定した複数の前記切込位置の間の距離を、切込量として特定する第四特定部と、前記第四特定部により特定した前記切込量に基づき、びびり振動が発生したか否かを判定する判定部と、前記判定部によりびびり振動が発生したと判定した時に報知する報知部とを備えたことを特徴とする。
【０００７】
数値制御装置は、工具の刃により被削体を切削した切込量を、第一検出器及び第二検出器の検出結果に基づいて特定する。数値制御装置は、特定した切込量に基づいてびびり振動の発生を検出し、作業者に報知する。このため、数値制御装置は、工作機械が通常備える第一検出器及び第二検出器を用いて、びびり振動の発生の有無を判定できる。故に、数値制御装置は、工作機械に対して振動センサ等の新たな検出器を追加せずに、びびり振動を検出できる。
【０００８】
第一態様において、前記第一特定部は、前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の相対位置を複数特定し、特定した複数の前記相対位置に沿って延びる方向の移動平均に基づいて前記移動方向を特定してもよい。該時、数値制御装置は、被削体に対する工具の相対的な移動方向を、簡易な方法で精度良く特定できる。
【０００９】
第一態様において、前記第二特定部は、前記第二検出器の検出結果に基づき決定した前記工具の回転中心と、第一検出器の検出結果に基づき決定した前記工具の回転角度と、前記記憶部に前記工具情報として記憶した前記刃数及び前記径に基づいて、前記刃先位置を複数特定してもよい。該時、数値制御装置は、刃先位置を精度良く特定できる。
【００１０】
第一態様において、前記第三特定部は、前記第二特定部により特定した複数の前記刃先位置に基づき、前記刃先の移動軌跡である第一移動軌跡、及び、前記第一移動軌跡と異なる第二移動軌跡を特定し、前記工具の回転中心から、前記第一特定部により特定した前記移動方向に延びる仮想ベクトルと、特定した前記第一移動軌跡及び前記第二移動軌跡との夫々の交点を、第一切込位置及び第二切込位置として特定し、前記第四特定部は、前記第三特定部により特定した前記第一切込位置及び前記第二切込位置の間の距離を、前記切込量として特定してもよい。該時、数値制御装置は、切込量を精度良く特定することができるので、びびり振動の発生を正確に検出し、報知できる。
【００１１】
第一態様において、前記第三特定部は、複数の前記刃先位置の位置を通る円弧を、前記移動軌跡として複数特定してもよい。該時、数値制御装置は、刃先の移動軌跡を精度良く推定できるので、切込位置の精度を高めることができる。
【００１２】
第一態様において、前記第二特定部は、前記工具の第一刃の前記刃先位置、及び、前記第一刃と異なる第二刃の前記刃先位置を特定してもよい。該時、数値制御装置は、びびり振動の発生を短時間で迅速に検出し、報知できる。
【００１３】
第一態様において、前記報知部は、前記第三特定部により特定した前記移動軌跡を少なくとも含む軌跡画像を、表示部に表示してもよい。作業者は、びびり振動の発生の有無だけでなく、びびり振動の程度も把握できる。
【００１４】
本発明の第二態様に係る工作機械は、第一態様に係る前記数値制御装置を備えたことを特徴とする。第二態様によれば、第一態様と同様の効果を奏することができる。
【００１５】
本発明の第三態様に係る制御プログラムは、工具を回転する為の主軸と、前記主軸の回転を検出する第一検出器と、被削体に対して前記工具を相対移動する為の送り機構と、前記送り機構による前記工具の相対移動を検出する第二検出器と、を備えた工作機械を制御し、前記工具により前記被削体の切削加工を行うコンピュータに、前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の相対的な移動方向を特定する第一特定工程と、記憶部に記憶した、前記工具の刃の刃数と径を少なくとも含む工具情報、前記第一検出器及び前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の刃先の位置である刃先位置を複数特定する第二特定工程と、前記第二特定工程により特定した複数の前記刃先位置に基づき、前記第一特定工程により特定した前記移動方向において前記刃が前記被削体を切削する切込位置を複数特定する第三特定工程と、前記第三特定工程により特定した複数の前記切込位置の間の距離を、切込量として特定する第四特定工程と、前記第四特定工程により特定した前記切込量に基づき、びびり振動が発生したか否かを判定する判定工程と、前記判定工程によりびびり振動が発生したと判定した時に報知する報知工程とを実行させる。第三態様によれば、第一態様と同様の効果を奏することができる。
【００１６】
本発明の第四態様に係る記憶媒体は、工具を回転する為の主軸と、前記主軸の回転を検出する第一検出器と、被削体に対して前記工具を相対移動する為の送り機構と、前記送り機構による前記工具の相対移動を検出する第二検出器と、を備えた工作機械を制御し、前記工具により前記被削体の切削加工を行うコンピュータに、前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の相対的な移動方向を特定する第一特定工程と、記憶部に記憶した、前記工具の刃の刃数と径を少なくとも含む工具情報、前記第一検出器及び前記第二検出器の検出結果に基づき、前記被削体に対する前記工具の刃先の位置である刃先位置を複数特定する第二特定工程と、前記第二特定工程により特定した複数の前記刃先位置に基づき、前記第一特定工程により特定した前記移動方向において前記刃が前記被削体を切削する切込位置を複数特定する第三特定工程と、前記第三特定工程により特定した複数の前記切込位置の間の距離を、切込量として特定する第四特定工程と、前記第四特定工程により特定した前記切込量に基づき、びびり振動が発生したか否かを判定する判定工程と、前記判定工程によりびびり振動が発生したと判定した時に報知する報知工程とを実行させる為の制御プログラムを記憶する。第四態様によれば、第一態様と同様の効果を奏することができる。
【図面の簡単な説明】
【００１７】
【図１】工作機械１の斜視図。
【図２】工作機械１及び数値制御装置３０の電気的構成を示すブロック図。
【図３】びびり振動の検出方法を説明する説明図。
【図４】刃先位置Ｕ１（ｉ）、Ｕ２（ｉ）の特定方法を説明する説明図。
【図５】移動角度Ｗ（ｉ）の特定方法を説明する説明図。
【図６】第一移動軌跡Ｔ１、第二移動軌跡Ｔ２を示す図。
【図７】第一切込位置Ｃ１（ｋ）の特定方法を説明する説明図。
【図８】メイン処理の流れ図。
【図９】切込位置特定処理の流れ図。
【図１０】切込量特定処理の流れ図。
【図１１】表示部１７に表示した軌跡画像の一例。
【図１２】びびり振動が発生しない時の被削体３の表面写真。
【図１３】びびり振動が発生した時の被削体３の表面写真。
【発明を実施するための形態】
【００１８】
本発明の実施形態を説明する。以下説明は、図中に矢印で示す左右、前後、上下を使用する。工作機械１の左右方向、前後方向、上下方向は夫々工作機械１のＸ軸方向、Ｙ軸方向、Ｚ軸方向である。右方向、後方向、上方向は夫々、対応する軸の正方向である。左方向、前方向、下方向は夫々、対応する軸の負方向である。図１に示す工作機械１は主軸９に装着した工具４を回転し、テーブル１３上面に保持した被削体３に切削加工を施す機械である。数値制御装置３０（図２参照）は工作機械１の動作を制御する。
【００１９】
＜工作機械１の構造＞
図１を参照し、工作機械１の構造を説明する。工作機械１は、基台２、コラム５、主軸ヘッド７、主軸９、テーブル装置１０、工具交換装置２０、制御箱６、操作パネル１５（図２参照）等を備える。基台２は金属製の略直方体状の土台である。コラム５は基台２上部後方に立設する。主軸ヘッド７はコラム５前面に沿ってＺ軸方向に移動可能に設ける。主軸ヘッド７は内部に主軸９を回転可能に支持する。主軸９は主軸ヘッド７下部に装着穴（図示略）を有する。主軸９は該装着穴に工具４を装着し、主軸モータ５２（図２参照）の駆動で回転する。主軸モータ５２は主軸ヘッド７に設ける。主軸ヘッド７はコラム５前面に設けたＺ軸移動機構（図示略）でＺ軸方向に移動する。Ｚ軸移動機構はＺ軸モータ５１（図２参照）等を備える。数値制御装置３０はＺ軸モータ５１（図２参照）の駆動を制御することで、主軸ヘッド７をＺ軸方向に移動制御する。
【００２０】
テーブル装置１０は、Ｙ軸移動機構（図示略）、Ｙ軸テーブル１２、Ｘ軸移動機構（図示略）、テーブル１３等を備える。Ｙ軸移動機構は基台２上面前側に設け、一対のＹ軸レール、Ｙ軸ボール螺子、Ｙ軸モータ５４（図２参照）等を備える。一対のＹ軸レールとＹ軸ボール螺子はＹ軸方向に延びる。一対のＹ軸レールは上面にＹ軸テーブル１２をＹ軸方向に案内する。Ｙ軸テーブル１２は略直方体状に形成し、底部外面にナット（図示略）を備える。該ナットはＹ軸ボール螺子に螺合する。Ｙ軸モータ５４がＹ軸ボール螺子を回転すると、Ｙ軸テーブル１２はナットと共に一対のＹ軸レールに沿って移動する。故にＹ軸移動機構はＹ軸テーブル１２をＹ軸方向に移動可能に支持する。
【００２１】
Ｘ軸移動機構はＹ軸テーブル１２上面に設け、一対のＸ軸レール（図示略）、Ｘ軸ボール螺子（図示略）、Ｘ軸モータ５３（図２参照）等を備える。Ｘ軸レールとＸ軸ボール螺子はＸ軸方向に延びる。テーブル１３は平面視矩形板状に形成し、Ｙ軸テーブル１２上面に設ける。テーブル１３は底部にナット（図示略）を備える。該ナットはＸ軸ボール螺子に螺合する。Ｘ軸モータ５３がＸ軸ボール螺子を回転すると、テーブル１３はナットと共に一対のＸ軸レールに沿って移動する。故にＸ軸移動機構はテーブル１３をＸ軸方向に移動可能に支持する。故にテーブル１３は、Ｙ軸移動機構、Ｙ軸テーブル１２、Ｘ軸移動機構により、基台２上をＸ軸方向とＹ軸方向に移動可能である。
【００２２】
工具交換装置２０は主軸ヘッド７の前側に設け、円盤型の工具マガジン２１、マガジンモータ５５（図２参照）等を備える。工具マガジン２１は外周に複数の工具（図示略）を放射状に保持し、工具交換指令が指示する工具を工具交換位置に位置決めする。工具交換指令はＮＣプログラムで指令する。工具交換位置は工具マガジン２１の最下部位置である。工具交換装置２０はマガジンモータ５５の駆動により、主軸９に装着する工具４と工具マガジン２１に取り付けられた工具とを主軸ヘッド７の上昇、工具マガジン２１の回転、主軸ヘッド７の下降の一連の動作により入れ替え交換する。
【００２３】
制御箱６は数値制御装置３０（図２参照）を格納する。数値制御装置３０は、工作機械１に設けたＺ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４、マガジンモータ５５（図２参照）を夫々制御し、テーブル１３上に保持した被削体３に対して主軸９に装着した工具４を相対移動することで各種加工を被削体３に施す。各種加工とは、例えばドリル、タップ等を用いた穴空け加工、エンドミル、フライス等を用いた側面加工等である。
【００２４】
操作パネル１５は、例えば工作機械１を覆うカバー（図示略）の外壁に設ける。操作パネル１５は操作部１６と表示部１７（図２参照）を備える。操作部１６は各種情報、操作指示等の入力を受け付け、後述する数値制御装置３０に出力する。表示部１７は後述する数値制御装置３０からの指令に基づき、各種画面を表示する。
【００２５】
＜電気的構成＞
図２を参照し、数値制御装置３０と工作機械１の電気的構成を説明する。数値制御装置３０と工作機械１は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、記憶装置３４、外部インタフェース３５、入出力部３６、駆動回路５１Ａ〜５５Ａ、エンコーダ５１Ｂ〜５５Ｂ等を備える。ＲＯＭ３２は各種パラメータを記憶する。ＲＡＭ３３は各種情報を一時的に記憶する。記憶装置３４は不揮発性であり、後述のメイン処理のプログラム、ＮＣプログラム、工具情報を含む各種情報を記憶する。ＮＣプログラムは各種制御指令を含む複数行で構成し、工作機械１の軸移動、工具交換等を含む各種動作を行単位で制御する。ＣＰＵ３１は、ＮＣプログラムの指令を一つずつ読み込んで各種動作を実行する。工具情報は、工作機械１の主軸９に取り付け可能な工具４に関する情報である。工具情報は、工具４の種類毎に刃数及び半径が対応付けてある。刃数は、工具４の刃の数である。半径は、工具４の回転中心から刃の刃先迄の距離であり、刃先毎に対応付ける。外部インタフェース３５は、記憶媒体３５Ａに記憶した情報を読み出す。例えばＣＰＵ３１は、記憶媒体３５Ａに記憶したプログラムを外部インタフェース３５により読み出し、記憶装置３４に記憶する。
【００２６】
駆動回路５１ＡはＺ軸モータ５１とエンコーダ５１Ｂに接続する。駆動回路５２Ａは主軸モータ５２とエンコーダ５２Ｂに接続する。駆動回路５３ＡはＸ軸モータ５３とエンコーダ５３Ｂに接続する。駆動回路５４ＡはＹ軸モータ５４とエンコーダ５４Ｂに接続する。駆動回路５５Ａは工具マガジン２１を駆動するマガジンモータ５５とエンコーダ５５Ｂに接続する。Ｚ軸モータ５１、主軸モータ５２、Ｘ軸モータ５３、Ｙ軸モータ５４、マガジンモータ５５は何れもサーボモータである（以下総称する場合、単に「モータ」と称す）。
【００２７】
駆動回路５１Ａ〜５５ＡはＣＰＵ３１から指令を受け、対応する各モータ５１〜５５に駆動電流を夫々出力する。エンコーダ５１Ｂ〜５５Ｂは、対応する各モータ５１〜５５の回転軸の回転位置を検出し、検出結果を示す信号を駆動回路５１Ａ〜５５Ａに出力する。駆動回路５１Ａ〜５５Ａはエンコーダ５１Ｂ〜５５Ｂから受けた信号を、ＣＰＵ３１に出力する。更に駆動回路５１Ａ〜５５Ａは、エンコーダ５１Ｂ〜５５Ｂから信号を受け、各モータ５１〜５５の回転位置と速度のフィードバック制御を行う。入出力部３６は操作パネル１５の操作部１６と表示部１７に夫々接続する。
【００２８】
＜びびり振動の検出方法＞
図３から図７を参照し、工作機械１にて発生したびびり振動を数値制御装置３０が検出する方法について説明する。びびり振動は、工作機械１による切削加工中に発生する不要な振動の総称である。びびり振動は、被削体３の仕上げ面の品質低下や工具４の異常摩耗等を誘発する可能性がある為、好ましくない。故に、数値制御装置３０は、以下に示す方法でびびり振動を検出し、作業者に報知する。該時、作業者はびびり振動に対して早期に対処できる為、上記不具合の影響を最小限に抑制できる。
【００２９】
以下説明において、工作機械１が合計ｍ（ｍは１以上の整数）枚の刃を有する工具４を使用して切削動作を行う時を例に挙げる。ｍ枚の刃の夫々を、第ｎ刃（ｎは１からｍ迄の整数）と称す。工具４の回転中心から延びる径方向において、該回転中心と第ｎ刃の刃先との間の距離を、半径Ｒｎと称す。該時、記憶装置３４は、刃数ｍ及び半径Ｒ１・・・Ｒｍを工具情報として記憶する。工具４の回転中心から第ｎ刃の刃先を通って径方向に延びる方向の角度を、回転角度θｎ（ｒａｄ）と称す。回転角度θｎの基準となる方向は、工具４の回転中心から所定方向（例えば、Ｘ軸の正の方向（右方向））に向けて延びる方向である。以下、該方向を基準方向と称す。工具４の回転中心から第一刃（ｎ＝１）の刃先を通って延びる方向が基準方向を向いた状態での主軸モータ５２の回転軸の位置を、主軸基準位置と称す。数値制御装置３０のＣＰＵ３１は、主軸モータ５２の回転軸が主軸基準位置にある時、第ｎ刃の回転角度θｎを次の式（１）により導出可能である。
θｎ＝２π／ｍ×（ｎ−１）      （１）
【００３０】
Ｘ軸−Ｙ軸方向における所定の原点位置（０，０）を定義する。原点位置に工具４の回転中心を配置した時のＸ軸モータ５３及びＹ軸モータ５４の夫々の回転軸の位置を、送り軸基準位置とする。
【００３１】
図３を参照し、びびり振動を検出する為の処理の流れを説明する。数値制御装置３０のＣＰＵ３１は、エンコーダ５３Ｂが出力する信号を、駆動回路５３Ａを介して取得する。ＣＰＵ３１は、Ｘ軸モータ５３の回転軸の送り軸基準位置からの回転量を、取得した信号に基づいて特定する。ＣＰＵ３１は、特定した回転量に基づき、工具４の回転中心のＸ軸方向の位置ＸＦＢを特定する（Ｐ１）。ＣＰＵ３１は、エンコーダ５４Ｂが出力する信号を、駆動回路５４Ａを介して取得する。ＣＰＵ３１は、Ｙ軸モータ５４の回転軸の送り軸基準位置からの回転量を、取得した信号に基づいて特定する。ＣＰＵ３１は、特定した回転量に基づき、工具４の回転中心のＹ軸方向の位置ＹＦＢを特定する（Ｐ２）。
【００３２】
ＣＰＵ３１は、手順Ｐ１、Ｐ２により、工具４の回転中心のＸ軸−Ｙ軸方向の位置を、送り軸位置ＱＦＢとして特定する。送り軸位置ＱＦＢが示す座標は、（ＸＦＢ，ＹＦＢ）である。ＣＰＵ３１は、所定周期で送り軸位置ＱＦＢの特定処理を繰り返す。以下、ｉ（ｉは整数）番目に特定した送り軸位置ＱＦＢを、送り軸位置ＱＦＢ（ｉ）と称す。送り軸位置ＱＦＢ（ｉ）が示す座標を、（ＸＦＢ（ｉ），ＹＦＢ（ｉ））（図４参照）と称す。
【００３３】
ＣＰＵ３１は、エンコーダ５２Ｂが出力する信号を、駆動回路５２Ａを介して取得する。ＣＰＵ３１は、主軸モータ５２の回転軸の主軸基準位置からの回転角度を、取得した信号に基づいて特定する（Ｐ３）。特定した回転角度を、主軸角度ＳＦＢと称す。ＣＰＵ３１は、送り軸位置ＱＦＢの特定処理と同じ周期で、主軸角度ＳＦＢの特定処理を繰り返す。以下、ｉ番目に特定した主軸角度ＳＦＢを、主軸角度ＳＦＢ（ｉ）（図４参照）と称す。
【００３４】
ＣＰＵ３１は、手順Ｐ１〜Ｐ３による特定結果に基づき、被削体３に対する工具４の第一刃の刃先の位置（刃先位置Ｕ１と称す。）及び、被削体３に対する第一刃と異なる第二刃の刃先の位置（刃先位置Ｕ２と称す。）を特定する（Ｐ４）。尚、第一刃及び第二刃は、隣接する位置関係でもよいし、第一刃及び第二刃の間に別の刃が介在してもよい。
【００３５】
図４に示すように、手順Ｐ１、Ｐ２により特定した送り軸位置ＱＦＢ（ｉ）、及び、手順Ｐ３により特定した主軸角度ＳＦＢ（ｉ）に基づいて特定する刃先位置Ｕ１及び刃先位置Ｕ２を、夫々、刃先位置Ｕ１（ｉ）、Ｕ２（ｉ）と称す。刃先位置Ｕ１（ｉ）が示す座標を、（Ｘ１（ｉ），Ｙ１（ｉ））と称す。刃先位置Ｕ２（ｉ）が示す座標を、（Ｘ２（ｉ），Ｙ２（ｉ））と称す。ＣＰＵ３１は、送り軸位置ＱＦＢ（ｉ）（座標（ＸＦＢ（ｉ），ＹＦＢ（ｉ））、主軸角度ＳＦＢ（ｉ）、記憶装置３４に記憶した工具情報（刃数ｍ、半径Ｒ１・・・Ｒｍ）、及び、式（１）により算出した回転角度θｎに基づき、次の式（２）を適用することで刃先位置Ｕ１（ｉ）、Ｕ２（ｉ）を特定する。
Ｘ１（ｉ）＝ＸＦＢ（ｉ）＋Ｒ１ｃｏｓ（ＳＦＢ（ｉ）＋θ１）（但し、第一刃の時θ１＝０）
Ｙ１（ｉ）＝ＹＦＢ（ｉ）＋Ｒ１ｓｉｎ（ＳＦＢ（ｉ）＋θ１）（但し、第一刃の時θ１＝０）
Ｘ２（ｉ）＝ＸＦＢ（ｉ）＋Ｒ２ｃｏｓ（ＳＦＢ（ｉ）＋θ２）
Ｙ２（ｉ）＝ＹＦＢ（ｉ）＋Ｒ２ｓｉｎ（ＳＦＢ（ｉ）＋θ２）      （２）
【００３６】
図３に示すように、ＣＰＵ３１は、手順Ｐ１、Ｐ２により所定周期で特定した複数の送り軸位置ＱＦＢに基づき、被削体３に対する工具４の移動方向を示す角度（移動角度Ｗと称す。）を特定する（Ｐ５）。具体的には次の通りである。図５に示すように、ＣＰＵ３１は、送り軸位置ＱＦＢ（ｉ）を特定した場合、送り軸位置ＱＦＢ（ｉ）よりも前に特定したＮ個の送り軸位置ＱＦＢ（ＱＦＢ（ｉ−Ｎ））、ＱＦＢ（ｉ−（Ｎ−１））・・・ＱＦＢ（ｉ−１）を取得する。ＣＰＵ３１は、送り軸位置ＱＦＢ（ｉ−Ｎ）〜ＱＦＢ（ｉ）のそれぞれについて、隣接する送り軸位置ＱＦＢ間を結ぶ線分を特定する。ＣＰＵ３１は、特定した線分と、送り軸位置ＱＦＢにおける基準方向との間のなす角度を、進行方向角度α（ｒａｄ）として特定する。ＣＰＵ３１は、Ｎ個の送り軸位置ＱＦＢ（ｉ−Ｎ））〜ＱＦＢ（ｉ−１）の夫々に対応する進行方向角度α（ｊ）（ｊは、ｉ−Ｎからｉ−１までの整数）を、次の式（３）により特定する。
α（ｊ）＝ｔａｎ−１（（ＹＦＢ（ｊ＋１）−（ＹＦＢ（ｊ））／（ＸＦＢ（ｊ＋１）−（ＸＦＢ（ｊ）））
（３）
【００３７】
ＣＰＵ３１は、次の式（４）に基づいて進行方向角度α（ｊ）の平均値を算出し、被削体３に対する工具４の移動方向を示す移動角度Ｗ（ｉ）（ｒａｄ）として特定する。
【数１】
2020160830.tif 000003
尚、ＣＰＵ３１は、手順Ｐ１、Ｐ２（図３参照）を繰り返すことによりｉを更新して送り軸位置ＱＦＢ（ｉ）を新たに特定する度、算出対象とするＮ個の送り軸位置ＱＦＢ（ｉ−Ｎ）〜ＱＦＢ（ｉ−１）も更新し、式（４）に基づいて進行方向角度αの平均値を算出して移動角度Ｗ（ｉ）を特定する。ここで進行方向角度αは、Ｎ個の送り軸位置ＱＦＢ（ｉ−Ｎ）〜ＱＦＢ（ｉ−１）に沿って延びる各線分の基準方向に対する角度を示す。故に、ＣＰＵ３１は、進行方向角度αの移動平均、言い換えれば、Ｎ個の送り軸位置ＱＦＢ（ｉ−Ｎ）〜ＱＦＢ（ｉ−１）に沿って延びる各線分の角度の移動平均を、移動角度Ｗとして特定する。 
【００３８】
図６は、手順Ｐ４により特定した複数の刃先位置Ｕ1（第一刃）、Ｕ２（第二刃）と、手順Ｐ５により特定した移動角度Ｗとの関係を示すグラフの一例を示す。尚、説明の容易化の為、移動角度Ｗは０（ｒａｄ）で変動せず、工具４の移動方向は常にＸ軸の正方向を向いているとする。即ち、工作機械１は、被削体３に対して工具４をＸ軸の正方向に移動することにより、切削加工を実行している。
【００３９】
図６に示すように、刃先位置Ｕ1の移動軌跡である第一移動軌跡Ｔ１は、中心が移動角度Ｗの方向に移動する半径Ｒ１の円に沿って配置される。刃先位置Ｕ２の移動軌跡である第二移動軌跡Ｔ２は、中心が移動角度Ｗの方向に移動する半径Ｒ２の円に沿って配置される。第二移動軌跡Ｔ２は、第一移動軌跡Ｔ１に対して、工具４の移動方向側（右側）に隣接する。尚、半径Ｒ１、Ｒ２の円の中心は、工具４の回転中心に対応し、Ｐ１、Ｐ２（図３参照）の処理により特定した送り軸位置ＱＦＢに位置する。図６の場合、送り軸位置ＱＦＢは、Ｘ軸に沿って正方向に移動する。
【００４０】
送り軸位置ＱＦＢから移動角度Ｗの方向に延びる仮想ベクトルＶを定義する。図６において、仮想ベクトルＶは、Ｘ軸に沿って正方向を向く。第一移動軌跡Ｔ１及び第二移動軌跡Ｔ２と、仮想ベクトルＶとの交点は、工具４による被削体３の切削過程で第一刃及び第二刃が被削体３に切込を入れる位置（切込位置と称す。）に対応する。第一移動軌跡Ｔ１と仮想ベクトルＶとの交点を、第一切込位置Ｃ１と称す。第二移動軌跡Ｔ２と仮想ベクトルＶとの交点を、第二切込位置Ｃ２と称す。第一切込位置Ｃ１と第二切込位置Ｃ２との間の移動角度Ｗの方向における距離を、切込量Ｄと称す。第一切込位置Ｃ１と第二切込位置Ｃ２を夫々複数特定した時、夫々の切込量Ｄを、切込量Ｄ（ｋ）（ｋは整数）と称す。びびり振動が発生しない時、切込量Ｄ（ｋ−１）、Ｄ（ｋ）、Ｄ（ｋ＋１）・・・の夫々の変動量は僅かである。一方、びびり振動が発生した時、切込量Ｄ（ｋ−１）、Ｄ（ｋ）、Ｄ（ｋ＋１）・・・の夫々の変動が大きくなる。
【００４１】
故に、図３に示すように、ＣＰＵ３１は、手順Ｐ４により特定した刃先位置Ｕ1、Ｕ２、及び、手順Ｐ５により特定した移動角度Ｗに基づき、第一切込位置Ｃ１及び第二切込位置Ｃ２を特定する（Ｐ６）。次いで、ＣＰＵ３１は、特定した第一切込位置Ｃ１及び第二切込位置Ｃ２に基づき、切込量Ｄ（ｋ）を特定する（Ｐ７）。ＣＰＵ３１は、特定した切込量Ｄ（ｋ）に基づき、びびり振動の発生の有無を判定する（Ｐ８）。
【００４２】
図７を参照し、手順Ｐ６（図３参照）による第一切込位置Ｃ１及び第二切込位置Ｃ２（図６参照）の特定方法について説明する。尚、第一切込位置Ｃ１及び第二切込位置Ｃ２の特定方法は同一である為、以下では、第一切込位置Ｃ１の特定方法について説明し、第二切込位置Ｃ２の特定方法の説明は簡略化する。
【００４３】
ＣＰＵ３１は、手順Ｐ１〜Ｐ４（図３参照）により刃先位置Ｕ1を特定した時、送り軸位置ＱＦＢから刃先位置Ｕ1に向けて延びる方向と基準方向との間の角度βを特定する。以下、手順Ｐ４により特定した刃先位置Ｕ1（ｉ）に対応する角度βを、角度β（ｉ）と称す。角度β（ｉ）は、次の式（５）により算出可能である。
β（ｉ）＝ＳＦＢ（ｉ）＋θ１      （５）
【００４４】
ＣＰＵ３１は、特定した角度β（ｉ）と、手順Ｐ１、Ｐ２、Ｐ５（図３参照）により特定した移動角度Ｗ（ｉ）とを比較する。ＣＰＵ３１は、角度β（ｉ−１）が移動角度Ｗ（ｉ）よりも大きく、且つ、角度β（ｉ）が移動角度Ｗ（ｉ）よりも小さくなる迄、ｉを更新しながら手順Ｐ１〜Ｐ５を繰り返す。例えば図７に示すように、角度β（ｉ−１）が移動角度Ｗ（ｉ）よりも大きく、且つ、角度β（ｉ）が移動角度Ｗ（ｉ）よりも小さくなったとする。該時、工具４の第一刃の刃先が刃先位置Ｕ1（ｉ−１）から刃先位置Ｕ1（ｉ）迄移動する間に、送り軸位置ＱＦＢ（ｉ）を通って移動角度Ｗ（ｉ）の方向に延びる仮想ベクトルＶを横切ったことになる。故に、ＣＰＵ３１は、刃先位置Ｕ1（ｉ−２）、Ｕ1（ｉ−１）、Ｕ1（ｉ）を通る円弧を、第一刃の第一移動軌跡Ｔ１として特定する。ＣＰＵ３１は、仮想ベクトルＶと第一移動軌跡Ｔ１との交点を、第一切込位置Ｃ１（ｋ）として特定する。特定した第一切込位置Ｃ１（ｋ）を示す座標を、（Ｘ１Ｄ（ｋ），Ｙ１Ｄ（ｋ））と称す。
【００４５】
ＣＰＵ３１は、上記と同様の方法で第二切込位置Ｃ２（ｋ）を特定する。具体的には次の通りである。ＣＰＵ３１は、手順Ｐ１〜Ｐ４（図３参照）により刃先位置Ｕ２を特定した時、送り軸位置ＱＦＢから刃先位置Ｕ２に向けて延びる方向と基準方向との間の角度βを特定する。ＣＰＵ３１は、特定した角度β（ｉ´）と移動角度Ｗ（ｉ´）とを比較する。ＣＰＵ３１は、角度β（ｉ´−１）が移動角度Ｗ（ｉ´）よりも大きく、且つ、角度β（ｉ´）が移動角度Ｗ（ｉ´）よりも小さくなる迄、ｉ´を更新しながら手順Ｐ１〜Ｐ５を繰り返す。角度β（ｉ´−１）が移動角度Ｗ（ｉ´）よりも大きく、且つ、角度β（ｉ´）が移動角度Ｗ（ｉ´）よりも小さくなった時、ＣＰＵ３１は、刃先位置Ｕ２（ｉ´−２）、Ｕ２（ｉ´−１）、Ｕ２（ｉ´）を通る円弧を、第二刃の第二移動軌跡Ｔ２として特定する。ＣＰＵ３１は、送り軸位置ＱＦＢ（ｉ´）を通って移動角度Ｗ（ｉ´）の方向に延びる仮想ベクトルＶ´と第二移動軌跡Ｔ２との交点を、第二切込位置Ｃ２（ｋ）として特定する。特定した第二切込位置Ｃ２（ｋ）を示す座標を、（Ｘ２Ｄ（ｋ），Ｙ２Ｄ（ｋ））と称す。尚、第一刃の刃先が仮想ベクトルＶを横切る時期と、第二刃の刃先が仮想ベクトルＶを横切る時期とが相違する時がある。故に、上記の第一切込位置Ｃ１（ｋ）を決定する時のｉと、第二切込位置Ｃ２（ｋ）を決定する時のｉ´とは、相違する時がある。
【００４６】
図３に示すように、ＣＰＵ３１は、手順Ｐ６の後、特定した第一切込位置Ｃ１（ｋ）と第二切込位置Ｃ２（ｋ）との間の距離を、切込量Ｄ（ｋ）として特定する（Ｐ７）。ＣＰＵ３１は、第一切込位置Ｃ１（ｋ）の座標（Ｘ１Ｄ（ｋ），Ｙ１Ｄ（ｋ））と、第二切込位置Ｃ２（ｋ）の座標（Ｘ２Ｄ（ｋ），Ｙ２Ｄ（ｋ））を、次の式（６）に適用することにより、切込量Ｄ（ｋ）を特定する。
Ｄ（ｋ）＝√（（Ｘ１Ｄ（ｋ）−Ｘ２Ｄ（ｋ））２＋（Ｙ１Ｄ（ｋ）−Ｙ２Ｄ（ｋ））２）      （６）
【００４７】
ＣＰＵ３１は、手順Ｐ１〜Ｐ７を繰り返すことにより、複数の切込量Ｄ（ｋ）を特定して記憶装置３４に記憶する。ＣＰＵ３１は、切込量Ｄ（ｋ）を特定した時、前回特定した切込量Ｄ（ｋ−１）と切込量Ｄ（ｋ）との差分を変動量として算出する。ＣＰＵ３１は、特定した変動量と所定の閾値とを比較する（Ｐ８）。ＣＰＵ３１は、変動量が所定の閾値以下の時、びびり振動が発生していないと判定する（Ｐ８）。一方、ＣＰＵ３１は、変動量が所定の閾値よりも大きい時、びびり振動が発生したと判定する（Ｐ８）。ＣＰＵ３１は、びびり振動が発生したと判定した時、表示部１７を介して作業者に報知する（Ｐ９）。
【００４８】
＜メイン処理＞
図８から図１０を参照し、メイン処理について説明する。数値制御装置３０のＣＰＵ３１は、工作機械１による切削動作を開始した時、記憶装置３４に記憶したプログラムを読み出して実行することにより、メイン処理を開始する。ＣＰＵ３１は、ＲＡＭ３３に記憶した変数ｉ、ｋ１、ｋ２に１を設定して初期化する（Ｓ１）。
【００４９】
ＣＰＵ３１は、エンコーダ５３Ｂ、５４Ｂが出力する信号を取得する。ＣＰＵ３１は、取得した信号に基づき、Ｘ軸モータ５３及びＹ軸モータ５４の回転軸の送り軸基準位置からの回転量を特定する。ＣＰＵ３１は、特定した回転量に基づき、工具４の回転中心のＸ軸−Ｙ軸方向の位置を、送り軸位置ＱＦＢ（ｉ）（図４参照）として特定する（Ｓ３）。該処理は、図３の手順Ｐ１、Ｐ２に対応する。ＣＰＵ３１は、エンコーダ５２Ｂが出力する信号を取得する。ＣＰＵ３１は、取得した信号に基づき、主軸モータ５２の回転軸の主軸基準位置からの回転角度を主軸角度ＳＦＢ（ｉ）（図４参照）として特定する（Ｓ３）。該処理は、図３の手順Ｐ３に対応する。ＣＰＵ３１は、特定した送り軸位置ＱＦＢ（ｉ）及び主軸角度ＳＦＢ（ｉ）を記憶装置３４に記憶する。
【００５０】
ＣＰＵ３１は、Ｓ３の処理により特定した送り軸位置ＱＦＢ（ｉ）及び主軸角度ＳＦＢ（ｉ）と、記憶装置３４に記憶した工具情報に基づき、被削体３に対する工具４の第一刃の刃先の刃先位置Ｕ１（ｉ）（図４参照）を特定する（Ｓ５）。ＣＰＵ３１は、被削体３に対する工具４の第二刃の刃先の刃先位置Ｕ２（ｉ）（図４参照）を特定する（Ｓ７）。該処理は、図３のＰ４に対応する。ＣＰＵ３１は、特定した刃先位置Ｕ１（ｉ）、Ｕ２（ｉ）を記憶装置３４に記憶する。
【００５１】
ＣＰＵ３１は、記憶装置３４に記憶した送り軸位置ＱＦＢ、主軸角度ＳＦＢ、刃先位置Ｕ１、Ｕ２に基づいて、第一切込位置Ｃ１及び第二切込位置Ｃ２を特定可能か判定する（Ｓ９）。尚、図７に示すように、第一切込位置Ｃ１及び第二切込位置Ｃ２の特定は、刃先位置Ｕ１、Ｕ２が夫々３つ以上記憶装置３４に記憶してあり、且つ、移動角度Ｗ（ｉ）の特定が完了していることが前提となる。又、図５に示すように、移動角度Ｗ（ｉ）の特定には、送り軸位置ＱＦＢがＮ＋１個以上記憶装置３４に記憶してあることが前提となる。故に、ＣＰＵ３１は、（ａ）刃先位置Ｕ１、Ｕ２が夫々記憶装置３４に３つ以上記憶してあり、且つ、（ｂ）送り軸位置ＱＦＢがＮ＋１個以上記憶装置３４に記憶してあるか否かにより、第一切込位置Ｃ１及び第二切込位置Ｃ２を特定可能か判定する（Ｓ９）。
【００５２】
ＣＰＵ３１は、（ａ）（ｂ）の少なくとも何れかの要件を満たさない時、第一切込位置Ｃ１及び第二切込位置Ｃ２を特定できないと判定する（Ｓ９：ＮＯ）。該時、ＣＰＵ３１はＳ３の処理により送り軸位置ＱＦＢ（ｉ）及び主軸角度ＳＦＢ（ｉ）を特定してから所定時間経過後、処理をＳ２３に進める。ＣＰＵ３１は、変数ｉに１加算して更新する（Ｓ２３）。ＣＰＵ３１は、処理をＳ３に戻す。ＣＰＵ３１は、更新した変数ｉに基づき、所定周期でＳ３〜Ｓ９の処理を繰り返す。
【００５３】
ＣＰＵ３１は、（ａ）（ｂ）の要件を何れも満たす時、第一切込位置Ｃ１及び第二切込位置Ｃ２を特定可能と判定する（Ｓ９：ＹＥＳ）。該時、ＣＰＵ３１は、所定周期で記憶装置３４に記憶したＮ＋１個の送り軸位置ＱＦＢ（ｉ−Ｎ））〜ＱＦＢ（ｉ）に基づき、進行方向角度α（ｊ）（図５参照）を特定する。更にＣＰＵ３１は、特定した進行方向角度α（ｊ）の移動平均値を算出し、被削体３に対する工具４の移動方向を示す移動角度Ｗ（ｉ）（図５参照）を特定する（Ｓ１１）。該処理は、図３の手順Ｐ５に対応する。
【００５４】
ＣＰＵ３１は、Ｓ５の処理により特定した第一刃の複数の刃先位置Ｕ1と、Ｓ１１の処理により特定した移動角度Ｗ（ｉ）を、記憶装置３４から取得する。ＣＰＵ３１は、第一切込位置Ｃ１（図７参照）を特定する為に切込位置特定処理（図９参照）を実行する（Ｓ１３）。図９を参照し、切込位置特定処理について説明する。ＣＰＵ３１は、送り軸位置ＱＦＢ（ｉ−１）から刃先位置Ｕ1（ｉ−１）に向けて延びる方向の角度β（ｉ−１）（図７参照）を算出し、送り軸位置ＱＦＢ（ｉ）から刃先位置Ｕ1（ｉ）に向けて延びる方向の角度β（ｉ）（図７参照）を算出する。ＣＰＵ３１は、（ｃ）角度β（ｉ−１）が移動角度Ｗ（ｉ）よりも大きく、且つ、（ｄ）角度β（ｉ）が移動角度Ｗ（ｉ）よりも小さいか判定する（Ｓ３１）。ＣＰＵ３１は、（ｃ）（ｄ）の少なくとも何れかの要件を満たさない時（Ｓ３１：ＮＯ）、切込位置特定処理を終了し、処理をメイン処理（図８参照）に戻す。
【００５５】
ＣＰＵ３１は、（ｃ）（ｄ）の要件を何れも満たす時（Ｓ３１：ＹＥＳ）、刃先位置Ｕ1（ｉ−２）、Ｕ1（ｉ−１）、Ｕ1（ｉ）を通る円弧を、第一刃の第一移動軌跡Ｔ１（図７参照）として特定する（Ｓ３３）。ＣＰＵ３１は、送り軸位置ＱＦＢ（ｉ）を通って移動角度Ｗ（ｉ）の方向に延びる仮想ベクトルＶ（図７参照）を特定する。ＣＰＵ３１は、特定した仮想ベクトルＶと第一移動軌跡Ｔ１との交点を、第一切込位置Ｃ１（ｋ１）（図７参照）として特定する（Ｓ３５）。該処理は、図３の手順Ｐ６に対応する。ＣＰＵ３１は、特定した第一切込位置Ｃ１（ｋ１）を記憶装置３４に記憶する（Ｓ３７）ＣＰＵ３１は、変数ｋ１に１加算して更新する（Ｓ３９）。ＣＰＵ３１は、切込位置特定処理を終了し、処理をメイン処理（図８参照）に戻す。
【００５６】
図８に示すように、ＣＰＵ３１は、第一刃による第一切込位置Ｃ１を特定した（Ｓ１３参照）後、処理をＳ１５に進める。ＣＰＵ３１は、Ｓ７の処理により特定した第二刃の複数の刃先位置Ｕ２と、Ｓ１１の処理により特定した移動角度Ｗ（ｉ）を、記憶装置３４から取得する。ＣＰＵ３１は、第二切込位置Ｃ２を特定する為に切込位置特定処理（図９参照）を実行する（Ｓ１５）。切込位置特定処理は、第一切込位置Ｃ１を特定する為にＳ１３の処理で実行した切込位置特定処理と同一である為、説明を簡略化する。図９に示すように、ＣＰＵ３１は、（ｃ）（ｄ）の要件を何れも満たす時（Ｓ３１：ＹＥＳ）、刃先位置Ｕ２（ｉ−２）、Ｕ２（ｉ−１）、Ｕ２（ｉ）を通る円弧を、第二刃の第二移動軌跡Ｔ２として特定する（Ｓ３３）。ＣＰＵ３１は、送り軸位置ＱＦＢ（ｉ）を通って移動角度Ｗ（ｉ）の方向に延びる仮想ベクトルＶを特定する。ＣＰＵ３１は、特定した仮想ベクトルＶと第二移動軌跡Ｔ２との交点を、第二切込位置Ｃ２（ｋ２）として特定する（Ｓ３５）。ＣＰＵ３１は、特定した第二切込位置Ｃ２（ｋ２）を記憶装置３４に記憶する（Ｓ３７）ＣＰＵ３１は、変数ｋ２に１加算して更新する（Ｓ３９）。
【００５７】
図８に示すように、ＣＰＵ３１は、切込量Ｄ（ｋ）を特定する為に切込量特定処理（図１０参照）を実行する（Ｓ１７）。図１０を参照し、切込量特定処理について説明する。ＣＰＵ３１は、Ｓ１３、Ｓ１５（図８参照）の処理により第一切込位置Ｃ１（ｋ１）及び第二切込位置Ｃ２（ｋ２）の少なくとも何れかを新たに記憶装置３４に記憶したか判定する（Ｓ４１）。ＣＰＵ３１は、第一切込位置Ｃ１（ｋ１）及び第二切込位置Ｃ２（ｋ２）の何れも記憶装置３４に新たに記憶していないと判定した時（Ｓ４１：ＮＯ）、切込量特定処理を終了し、処理をメイン処理（図８参照）に戻す。
【００５８】
ＣＰＵ３１は、第一切込位置Ｃ１（ｋ１）及び第二切込位置Ｃ２（ｋ２）の少なくとも何れかを記憶装置３４に新たに記憶したと判定した時（Ｓ４１：ＹＥＳ）、処理をＳ４３に進める。ＣＰＵ３１は、要素ｋ１、ｋ２が一致する第一切込位置Ｃ１（ｋ）及び第二切込位置Ｃ２（ｋ）を抽出し、夫々の位置の間の距離を切込量Ｄ（ｋ）として特定する（Ｓ４３）。該処理は、図３の手順Ｐ７に対応する。ＣＰＵ３１は、特定した切込量Ｄ（ｋ）を記憶装置３４に記憶する（Ｓ４５）。ＣＰＵ３１は、切込量特定処理を終了し、処理をメイン処理（図８参照）に戻す。
【００５９】
図８に示すように、ＣＰＵ３１は、切込量特定処理（Ｓ１７）の終了後、記憶装置３４に記憶した切込量Ｄ（ｋ−１）、Ｄ（ｋ）を取得する。ＣＰＵ３１は、取得した切込量Ｄ（ｋ−１）、Ｄ（ｋ）の差分を、変動量として算出する。ＣＰＵ３１は、特定した変動量に基づき、びびり振動の発生の有無を判定する（Ｓ１９）。ＣＰＵ３１は、変動量が所定の閾値以下の時、びびり振動が発生していないと判定する（Ｓ１９：ＮＯ）。該時、ＣＰＵ３１はＳ３の処理により送り軸位置ＱＦＢ（ｉ）及び主軸角度ＳＦＢ（ｉ）を特定してから所定時間経過後、処理をＳ２３に進める。ＣＰＵ３１は、変数ｉに１加算して更新する（Ｓ２３）。ＣＰＵ３１は、処理をＳ３に戻す。ＣＰＵ３１は、変動量が所定の閾値よりも大きい時、びびり振動が発生したと判定する（Ｓ１９：ＹＥＳ）。該時、ＣＰＵ３１は処理をＳ２１に進める。該処理は、図３の手順Ｐ８に対応する。
【００６０】
ＣＰＵ３１は、表示部１７に軌跡画像を表示することにより、びびり振動の発生を作業者に報知する（Ｓ２１）。該処理は、図３の手順Ｐ９に対応する。図１１は、表示部１７に表示した軌跡画像の一例を示す。軌跡画像は、Ｓ３（図８参照）の処理により特定した刃先位置Ｕ１を、送り軸位置ＱＦＢを中心とする半径Ｒ１の円で結び、且つ、Ｓ３（図８参照）の処理により特定した刃先位置Ｕ２を、送り軸位置ＱＦＢを中心とする半径Ｒ２の円で結ぶことにより形成される。故に、軌跡画像は、Ｓ３３（図９参照）の処理により特定した第一移動軌跡Ｔ１及び第二移動軌跡Ｔ２を少なくとも含む。領域１７Ａを拡大した拡大図１７１では、移動軌跡が略等間隔に並んでおり、びびり振動が発生していない状態（図１２参照）を示す。領域１７Ｂを拡大した拡大図１７２では、移動軌跡の間隔が変動しており、びびり振動が発生した状態（図１３参照）を示す。
【００６１】
図８に示すように、ＣＰＵ３１は、びびり振動の発生の報知後、メイン処理を終了する。
【００６２】
＜本実施形態の作用、効果＞
数値制御装置３０のＣＰＵ３１は、工具４の刃により被削体３を切削する時の切込量Ｄを、工作機械１のエンコーダ５２Ｂ、５３Ｂ、５４Ｂが出力する信号に基づいて特定する（Ｓ１７）。ＣＰＵ３１は、特定した切込量Ｄに基づいてびびり振動の発生を検出し（Ｓ１９）、作業者に報知する（Ｓ２１）。このため、数値制御装置３０は、工作機械１がモータ５２〜５４を制御する為に通常備えるエンコーダ５２Ｂ〜５４Ｂを用いて、びびり振動の発生の有無を判定できる。故に、数値制御装置３０は、工作機械１に対して振動センサ等の新たな検出器を追加せずに、びびり振動を検出できる。尚、数値制御装置３０は、びびり振動だけでなく、被削体３に対する工具４の移動時を阻害する何らかの不具合が発生した時も検出可能である。
【００６３】
ＣＰＵ３１は、所定周期で記憶装置３４に記憶したＮ＋１個の送り軸位置ＱＦＢに基づき、進行方向角度αを特定する。更にＣＰＵ３１は、特定した進行方向角度αの移動平均値を算出し、被削体３に対する工具４の移動方向を示す移動角度Ｗ（図５参照）を特定する（Ｓ１１）。故に、数値制御装置３０は、被削体３に対する工具４の相対的な移動方向を、簡易な方法で精度良く特定できる。又、数値制御装置３０は、平均値を算出する時の進行方向角度αの数をＮ個に制限することにより、ＣＰＵ３１の負荷増大を抑制できる。
【００６４】
ＣＰＵ３１は、Ｓ３の処理により特定した送り軸位置ＱＦＢ及び主軸角度ＳＦＢと、記憶装置３４に記憶した工具情報に基づき、被削体３に対する工具４の刃先位置Ｕ１、Ｕ２を特定する（Ｓ５、Ｓ７）。該時、数値制御装置３０は、回転しながら移動する工具４の第一刃及び第二刃の刃先位置Ｕ１、Ｕ２を、簡易に且つ精度良く特定できる。
【００６５】
ＣＰＵ３１は、仮想ベクトルＶと、第一移動軌跡Ｔ１及び第二移動軌跡Ｔ２との夫々の交点を、第一切込位置Ｃ１及び第二切込位置Ｃ２として特定する（Ｓ３３）。ＣＰＵ３１は、特定した第一切込位置Ｃ１及び第二切込位置Ｃ２の間の距離を、切込量Ｄとして特定する。該時、数値制御装置３０は、刃先位置Ｕ１、Ｕ２から切込位置を直接特定する場合と比べて、第一刃及び第二刃の夫々の切込位置を精度良く特定できる。故に、数値制御装置３０は、切込量Ｄを精度良く特定してびびり振動の発生を正確に検出できる。
【００６６】
ＣＰＵ３１は、３つの刃先位置Ｕ1を通る円弧を第一移動軌跡Ｔ１として特定し、３つの刃先位置Ｕ２を通る円弧を第二移動軌跡Ｔ２として特定する。該時、数値制御装置３０は、刃先の移動軌跡を簡易な方法で精度良く推定できる。故に、数値制御装置３０は、ＣＰＵ３１の負荷増大を抑制しつつ、第一切込位置Ｃ１及び第二切込位置Ｃ２の精度を高めることができる。
【００６７】
例えばＣＰＵ３１は、工具４の特定の刃の移動軌跡が繰り返し仮想ベクトルＶと交差する時の夫々の交点を、第一切込位置Ｃ１及び第二切込位置Ｃ２として特定することも可能である。該時、第一刃と第二刃とは同一となる。しかしこの方法では、特定した第一切込位置Ｃ１及び第二切込位置Ｃ２に基づいて切込量を特定する迄に、少なくとも工具４が一回転する時間を要する。一方、本実施形態において、ＣＰＵ３１は、工具４の第一刃の刃先位置Ｕ１、及び、工具４のうち第一刃と異なる第二刃の刃先位置Ｕ２を特定し、びびり振動の発生の有無を判定する。該時、工具４が一回転する時間よりも短い時間で、第一切込位置Ｃ１及び第二切込位置Ｃ２に基づいて切込量を特定できる。故に、数値制御装置３０は、びびり振動の発生を短時間で迅速に検出し、報知できる。
【００６８】
ＣＰＵ３１は、びびり振動が発生したと判定した時（Ｓ１９：ＹＥＳ）、第一移動軌跡Ｔ１及び第二移動軌跡Ｔ２を少なくとも含む軌跡画像を表示部１７に表示する。軌跡画像では、第一刃及び第二刃の移動軌跡の間隔が変動している時、びびり振動が発生していることを示す。故に、作業者は、びびり振動の発生の有無を感覚的に認識できる。更に作業者は、びびり振動の発生の有無だけでなく、びびり振動の程度も把握できる。例えば作業者は、被削体３の見た目では判断できないようなびびり振動の発生も認識できる。
【００６９】
＜変形例＞
本発明は上記実施形態に限らない。工作機械１は、主軸９に接続するエンコーダを有してもよい。該時、ＣＰＵ３１は、該エンコーダが出力した信号に基づき、主軸角度ＳＦＢを特定してもよい。工作機械１は、エンコーダと異なる方式で主軸モータ５２の回転を検出できる回転検出センサを、エンコーダ５２Ｂ、５３Ｂ、５４Ｂの代わりに有してもよい。ＣＰＵ３１は、該回転検出センサが出力する信号に基づき、主軸角度ＳＦＢ及び送り軸位置ＱＦＢを特定してもよい。
【００７０】
ＣＰＵ３１が切込量Ｄを特定する時の座標系は、Ｘ軸−Ｙ軸座標系に限らず、Ｘ軸−Ｚ軸座標系、Ｙ軸−Ｚ軸座標系、Ｘ軸−Ｙ軸−Ｚ軸座標系でもよい。例えば、Ｘ軸−Ｙ軸−Ｚ軸座標系に基づき切込量Ｄを特定する時、ＣＰＵ３１は、送り軸位置ＱＦＢとして、座標（ＸＦＢ，ＹＦＢ，ＺＦＢ）を特定してもよい。ＣＰＵ３１は、特定した送り軸位置ＱＦＢと主軸角度ＳＦＢに基づき、刃先位置Ｕ１として座標（Ｘ１，Ｙ１，Ｚ１）を特定し、刃先位置Ｕ２として座標（Ｘ２，Ｙ２，Ｚ２）を特定してもよい。ＣＰＵ３１は、特定した刃先位置Ｕ１、Ｕ２に基づき、移動角度Ｗを３次元的に特定してもよい。ＣＰＵ３１は、特定した刃先位置Ｕ１、Ｕ２及び移動角度Ｗに基づき、第一切込位置Ｃ１として座標（Ｘ１Ｄ，Ｙ１Ｄ，Ｚ１Ｄ）を特定し、第二切込位置Ｃ２として座標（Ｘ２Ｄ，Ｙ２Ｄ，Ｚ２Ｄ）を特定してもよい。ＣＰＵ３１は、特定した第一切込位置Ｃ１及び第二切込位置Ｃ２に基づき、切込量Ｄを特定してもよい。即ち、ＣＰＵ３１は、工具４の切込量Ｄを３次元的に特定し、びびり振動の発生の有無を判定してもよい。
【００７１】
ＣＰＵ３１は、切込量Ｄの変動量が所定の閾値よりも大きい時、びびり振動が発生したと判定した。切込量Ｄに基づいてびびり振動が発生したか否かを判定する方法は、これに限らず、他の周知の外れ値検出アルゴリズムを適用できる。例えばＣＰＵ３１は、記憶装置３４に記憶した切込量Ｄ（１）、Ｄ（２）・・・Ｄ（ｋ）に対してｋ近傍法や特異スペクトル変換法等を適用することにより、びびり振動が発生したか否かを判定してもよい。又、ＣＰＵ３１は、標準偏差や分散等の周知の統計的手法を適用することにより、びびり振動が発生したか否かを判定してもよい。
【００７２】
ＣＰＵ３１は、Ｎ＋１個の送り軸位置ＱＦＢに沿って延びる各線分の角度の移動平均を、移動角度Ｗとして特定した。移動角度Ｗの特定方法は、該方法に限らない。例えばＣＰＵ３１は、Ｎ＋１個の送り軸位置ＱＦＢに基づき、最小二乗法等の周知の近似計算により近似直線を算出し、該近似直線の傾きを移動角度Ｗとして特定してもよい。
【００７３】
工具情報は、半径Ｒ１・・・Ｒｍの代わりに共通の半径Ｒを有していてもよい。工具情報は、工具４の回転中心から各刃先に向けて径方向に延びる線分間の中心角を有してもよい。ＣＰＵ３１は、工具の４の回転中心から各刃先までの径と、該中心角とに基づき、刃先位置Ｕ１、Ｕ２を特定してもよい。
【００７４】
ＣＰＵ３１は、特定した刃先位置Ｕ１、Ｕ２のうち、仮想ベクトルＶに最も近接する刃先位置を、夫々、第一切込位置Ｃ１及び第二切込位置Ｃ２として特定してもよい。この場合、ＣＰＵ３１は、第一移動軌跡Ｔ１及び第二移動軌跡Ｔ２を特定しなくてもよい。
【００７５】
ＣＰＵ３１は、角度β（ｉ−１）が移動角度Ｗ（ｉ）よりも大きく、且つ、角度β（ｉ）が移動角度Ｗ（ｉ）よりも小さくなった時、刃先位置Ｕ1（ｉ−１）、Ｕ1（ｉ）を結ぶ直線を、第一刃の第一移動軌跡Ｔ１として特定してもよい。第二刃の第二移動軌跡Ｔ２についても同様である。
【００７６】
ＣＰＵ３１は、工具４の特定の刃を、第一刃及び第二刃として特定してもよい。即ち、第一刃及び第二刃は、工具４の同一の刃でもよい。ＣＰＵ３１は、工具４の特定の刃の移動軌跡が繰り返し仮想ベクトルＶと交差する時の夫々の交点を、第一切込位置Ｃ１及び第二切込位置Ｃ２として特定してもよい。一方、ＣＰＵ３１は、工具４の３つ以上の刃（例えば、第一刃、第二刃、第三刃）の刃先位置に基づいて、切込位置（第一切込位置、第二切込位置、第三切込位置）を特定してもよい。該時、例えば、ＣＰＵ３１は、第一切込位置と第二切込位置との間の切込量、及び、第二切込位置と第三切込位置との間の切込量の夫々にについて、変動量を算出してもよい。ＣＰＵ３１は、特定した複数の変動量と閾値とを比較することにより、びびり振動の発生の有無を判定してもよい。
【００７７】
びびり振動が発生した時に作業者に報知する場合の報知態様は、上記実施形態に限らない。例えば軌跡画像は、Ｓ３（図８参照）の処理により特定した刃先位置Ｕ１、Ｕ２を夫々直線で結ぶことで形成してもよい。例えばＣＰＵ３１は、非図示のスピーカから警告音を出力することにより、びびり振動の発生を作業者に報知してもよい。更にＣＰＵ３１は、びびり振動の発生を検出した時、工作機械１による切削加工を停止してもよい。
【００７８】
＜その他＞
エンコーダ５２Ｂは、本発明の「第一検出器」の一例である。Ｘ軸モータ５３、Ｙ軸モータ５４は本発明の「送り機構」の一例である。エンコーダ５３Ｂ、５４Ｂは、本発明の「第二検出器」の一例である。記憶装置３４は、本発明の「記憶部」の一例である。Ｓ１１の処理を行うＣＰＵ３１は、本発明の「第一特定部」の一例である。Ｓ５、Ｓ７の処理を行うＣＰＵ３１は、本発明の「第二特定部」の一例である。Ｓ１３、Ｓ１５、図９の処理を行うＣＰＵ３１は、本発明の「第三特定部」の一例である。Ｓ１７の処理を行うＣＰＵ３１は、本発明の「第四特定部」の一例である。Ｓ１９の処理を行うＣＰＵ３１は、本発明の「判定部」の一例である。Ｓ２１の処理を行うＣＰＵ３１は、本発明の「報知部」の一例である。Ｓ１１の処理は、本発明の「第一特定工程」の一例である。Ｓ５、Ｓ７の処理は、本発明の「第二特定工程」の一例である。Ｓ１３、Ｓ１５、図９の処理は、本発明の「第三特定工程」の一例である。Ｓ１７の処理は、本発明の「第四特定工程」の一例である。Ｓ１９の処理は、本発明の「判定工程」の一例である。Ｓ２１の処理は、本発明の「報知工程」の一例である。
【符号の説明】
【００７９】
１      ：工作機械
３      ：被削体
４      ：工具
９      ：主軸
１７    ：表示部
３０    ：数値制御装置
３１    ：ＣＰＵ
３４    ：記憶装置
３５Ａ  ：記憶媒体
５１、５２、５３、５４    ：モータ
５１Ｂ、５２Ｂ、５３Ｂ、５４Ｂ  ：エンコーダ
【図１】
2020160830.tif 000004
【図２】
2020160830.tif 000005
【図３】
2020160830.tif 000006
【図４】
2020160830.tif 000007
【図５】
2020160830.tif 000008
【図６】
2020160830.tif 000009
【図７】
2020160830.tif 000010
【図８】
2020160830.tif 000011
【図９】
2020160830.tif 000012
【図１０】
2020160830.tif 000013
【図１１】
2020160830.tif 000014
【図１２】
2020160830.tif 000015
【図１３】
2020160830.tif 000016