(57)【特許請求の範囲】
【請求項１】
加工プログラムに基づいて工作機械を制御する制御部と、
前記工作機械が用いる切削工具を駆動するモータの負荷電流値と、前記切削工具によるワークへの切削位置と、前記切削工具の種別であるツール種別と、前記ワークの種別であるワーク種別と、前記ワークの温度であるワーク温度と、を含む状態変数を観測する状態観測部と、
前記切削工具の摩耗量を計測した結果である摩耗量計測結果を取得するデータ取得部と、
前記状態変数および前記摩耗量計測結果の組み合わせに基づいて作成されるデータセットに従って、前記状態変数から前記切削工具の摩耗量を推定するための学習モデルを生成する学習部と、
を備えることを特徴とする数値制御装置。
【請求項２】
前記学習部は、前記学習モデルを用いて、前記状態変数から前記切削工具の摩耗量を推定する、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記学習部により推定された前記摩耗量に基づいて、前記切削工具の位置を補正する位置補正量を算出し、前記位置補正量を前記制御部に送ることで、前記位置補正量を前記切削工具の位置に反映させる反映部をさらに備える、
ことを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記切削位置および前記負荷電流値に基づいて、前記切削工具が前記ワークへの加工を開始する座標である切削開始座標を算出するとともに、前記ワークが正常な状態で前記切削工具が前記ワークへの加工を開始する座標と、前記切削開始座標との間の差である座標差が、閾値を超えている場合に、警告を出力する異常判定装置をさらに備える、
ことを特徴とする請求項１から３の何れか１つに記載の数値制御装置。
【請求項５】
前記ワークの形状が正常であると仮定した場合の前記ワークの取付誤差量を、前記座標差に基づいて推定し、前記取付誤差量を出力する誤差量計算装置をさらに備える、
ことを特徴とする請求項４に記載の数値制御装置。
【請求項６】
工作機械が用いる切削工具を駆動するモータの負荷電流値と、前記切削工具によるワークへの切削位置と、前記切削工具の種別であるツール種別と、前記ワークの種別であるワーク種別と、前記ワークの温度であるワーク温度と、を含む状態変数を観測する状態観測部と、
前記切削工具の摩耗量を計測した結果である摩耗量計測結果を取得するデータ取得部と、
前記状態変数および前記摩耗量計測結果の組み合わせに基づいて作成されるデータセットに従って、前記状態変数から前記切削工具の摩耗量を推定するための学習モデルを生成する学習部と、
を備えることを特徴とする機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、工作機械が用いる切削工具の摩耗量を推定する数値制御装置および機械学習装置に関する。
【背景技術】
【０００２】
切削工具を用いてワークを加工する工作機械は、数値制御装置によって制御される。この工作機械が長期間に渡って加工を行うと、切削工具の刃先が摩耗するので、完成品のワークは寸法誤差が大きくなる。この寸法誤差を抑えるため、工作機械のオペレータが、切削工具の摩耗量を定期的に計測している。【０００３】
このような摩耗量のオペレータによる計測の手間を省くために、様々な取組が試みられている。特許文献１に記載の数値制御装置は、切削工具がワークに衝突した際のモータ負荷電流の変化率と切削工具の摩耗量との相関性を示すデータから、実際の切削工具の摩耗量を推定している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−２０９１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の技術では、ワークの取付異常およびワークの形状異常等を考慮せずに、切削工具の摩耗量を推定している。すなわち、上記特許文献１の技術では、切削工具の摩耗に伴うモータ負荷電流の増加と、ワークの取付異常またはワークの形状異常等に伴ってワークの切削領域が変化することを原因とするモータ負荷電流の増加とを区別できず、正確な摩耗量を推定することができない。【０００６】
本開示は、上記に鑑みてなされたものであって、切削工具の摩耗量を正確に推定することができる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本開示の数値制御装置は、加工プログラムに基づいて工作機械を制御する制御部と、工作機械が用いる切削工具を駆動するモータの負荷電流値と、切削工具によるワークへの切削位置と、切削工具の種別であるツール種別と、ワークの種別であるワーク種別と、ワークの温度であるワーク温度と、を含む状態変数を観測する状態観測部とを備える。また、本開示の数値制御装置は、切削工具の摩耗量を計測した結果である摩耗量計測結果を取得するデータ取得部と、状態変数および摩耗量計測結果の組み合わせに基づいて作成されるデータセットに従って、状態変数から切削工具の摩耗量を推定するための学習モデルを生成する学習部とを備える。
【発明の効果】
【０００８】
本開示にかかる数値制御装置は、切削工具の摩耗量を正確に推定することができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１にかかる数値制御装置を備えた制御システムの構成を示す図
【図２】実施の形態１にかかる機械学習装置による機械学習の処理手順を示すフローチャート
【図３】実施の形態１にかかる機械学習装置による推定摩耗量の推定処理手順を示すフローチャート
【図４】実施の形態１にかかる機械学習装置が用いるニューラルネットワークの構成を示す図
【図５】実施の形態１にかかる機械学習装置を実現するハードウェア構成例を示す図
【図６】実施の形態２にかかる数値制御装置を備えた制御システムの構成を示す図
【図７】実施の形態２にかかる数値制御装置が検知する、取付誤差の無いワークへの切削開始座標を説明するための図
【図８】実施の形態２にかかる数値制御装置が検知する、取付誤差の有るワークへの切削開始座標を説明するための図
【発明を実施するための形態】
【００１０】
以下に、本開示の実施の形態にかかる数値制御装置および機械学習装置を図面に基づいて詳細に説明する。
【００１１】
実施の形態１．
図１は、実施の形態１にかかる数値制御装置を備えた制御システムの構成を示す図である。制御システム１００Ａは、数値制御（ＮＣ：Numerical  Control）装置１Ａと、工作機械２Ａとを有している。
【００１２】
数値制御装置１Ａは、工作機械２Ａを制御するコンピュータである。工作機械２Ａは、切削工具を用いて、被加工物であるワークを加工する装置である。工作機械２Ａは、ドライブユニット３１と、ＨＭＩ（Human  Machine  Interface）画面３２と、温度センサ３３と、摩耗量計測装置３４とを備えている。
【００１３】
ドライブユニット３１は、モータを駆動する。ドライブユニット３１が駆動するモータは、サーボモータおよび主軸モータである。サーボモータが切削工具を駆動する場合、ドライブユニット３１は、サーボモータの負荷電流値をモータ負荷電流値４１として数値制御装置１Ａに送る。主軸モータが切削工具を駆動する場合、ドライブユニット３１は、主軸モータの負荷電流値をモータ負荷電流値４１として数値制御装置１Ａに送る。
【００１４】
ＨＭＩ画面３２は、オペレータによって入力される情報を表示する画面である。ＨＭＩ画面３２は、オペレータによって入力される情報を受け付ける入力装置（図示せず）に接続されており、入力装置から送られてくる情報を表示する。入力装置の例は、マウス、キーボードなどである。
【００１５】
入力装置に対し、オペレータによって入力される情報は、ツール種別４２およびワーク種別４３である。ＨＭＩ画面３２に表示されるツール種別４２およびワーク種別４３は、数値制御装置１Ａに送られる。ツール種別４２は、切削工具の種類を示す情報であり、ワーク種別４３は、ワークの種類を示す情報である。ワーク種別４３には、ワークの素材の情報、ワークの形状の情報、ワークの大きさの情報などが含まれている。なお、ツール種別４２およびワーク種別４３は、何れの方法によって設定されてもよい。以下の説明では、入力装置に入力されたツール種別４２およびワーク種別４３が、ＨＭＩ画面３２に送られ、ＨＭＩ画面３２から数値制御装置１Ａにツール種別４２およびワーク種別４３が送られる場合について説明する。
【００１６】
温度センサ３３は、ワークの温度を測定することができる温度検出装置の一例である。温度センサ３３は、測定した温度をワーク温度４４として数値制御装置１Ａに送る。
【００１７】
摩耗量計測装置３４は、切削工具の摩耗量を計測する装置である。摩耗量計測装置３４が手動で切削工具の摩耗量を計測するノギスなどである場合、摩耗量の計測結果である摩耗量計測結果４５は、オペレータによって数値制御装置１Ａに入力される。摩耗量計測装置３４が、切削工具の摩耗量を自動で計測する装置である場合、摩耗量計測装置３４が、摩耗量計測結果４５を数値制御装置１Ａに送る。
【００１８】
摩耗量計測装置３４が手動計測の装置である場合、摩耗量計測装置３４は、工作機械２Ａの外部に配置され、摩耗量計測装置３４が自動計測の装置である場合、摩耗量計測装置３４は、工作機械２Ａの内部に配置される。以下の説明では、摩耗量計測装置３４が自動計測の装置であり、摩耗量計測装置３４から数値制御装置１Ａに摩耗量計測結果４５が送られる場合について説明する。
【００１９】
数値制御装置１Ａは、機械学習装置１０と、制御部２１と、推定摩耗量反映部２２とを備えている。制御部２１は、加工プログラム２０を用いて工作機械２Ａを制御する。また、制御部２１は、加工プログラム２０を実行する際に、加工プログラム２０に基づいて、切削工具によるワークへの切削位置（工具座標）を示す切削座標値４０を算出する。制御部２１は、切削座標値４０を機械学習装置１０に送る。
【００２０】
機械学習装置１０は、切削工具によってワークを加工する際に取得した情報に基づいて、切削工具の摩耗量を学習するコンピュータである。機械学習装置１０は、切削工具の摩耗量を学習する機能と、学習結果を用いて切削工具の摩耗量を推定する機能とを有している。機械学習装置１０は、推定結果である推定摩耗量７５を、推定摩耗量反映部２２に出力する。
【００２１】
機械学習装置１０は、状態観測部１１Ａと、データ取得部１２と、学習部１３とを具備している。状態観測部１１Ａは、工作機械２Ａから、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４を取得する。
【００２２】
具体的には、状態観測部１１Ａは、ドライブユニット３１からモータ負荷電流値４１を取得し、ＨＭＩ画面３２からツール種別４２およびワーク種別４３を取得する。また、状態観測部１１Ａは、温度センサ３３からワーク温度４４を取得する。また、状態観測部１１Ａは、制御部２１から切削座標値４０を取得する。状態観測部１１Ａは、取得した、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４を学習部１３に送る。
【００２３】
データ取得部１２は、摩耗量計測装置３４から摩耗量計測結果４５を取得する。データ取得部１２は、取得した摩耗量計測結果４５を学習部１３に送る。
【００２４】
学習部１３は、状態観測部１１Ａから出力される、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、ワーク温度４４、および、データ取得部１２から出力される摩耗量計測結果４５の組合せに基づいて作成されるデータセットに基づいて、推定摩耗量７５を学習する。ここで、データセットは、状態変数および判定データを互いに関連付けたデータである。実施の形態１では、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４が状態変数であり、摩耗量計測結果４５が判定データである。
【００２５】
学習部１３は、学習段階では、ニューラルネットワークなどの学習モデルを更新することによって、推定摩耗量７５を学習する。学習部１３は、状態変数を学習モデルに入力した場合に学習モデルから摩耗量計測結果４５が出力されるよう、学習モデルを調整する。学習部１３は、この学習モデルを記憶しておく。
【００２６】
学習部１３は、活用段階（推定段階）では、状態観測部１１Ａから状態変数を受け付けると、この状態変数を学習モデルに入力する。この場合、学習モデルからは、状態変数に対応する推定摩耗量７５が出力される。学習部１３は、推定摩耗量７５を推定摩耗量反映部２２に送る。
【００２７】
推定摩耗量反映部２２は、推定摩耗量７５に基づいて、補正量７６を算出する。補正量７６は、切削工具によるワークの加工位置を補正するための、切削工具の位置補正量である。補正量７６は、切削工具の摩耗に起因するワークの加工誤差を解消するために用いられる。
【００２８】
反映部である推定摩耗量反映部２２は、補正量７６を制御部２１に送ることで、補正量７６を切削工具の位置に反映させる。制御部２１は、補正量７６を用いて切削工具の位置を補正しながら、工作機械２Ａの制御を行う。
【００２９】
つぎに、機械学習装置１０による機械学習の処理手順および機械学習装置１０による推定摩耗量７５の推定処理手順について説明する。図２は、実施の形態１にかかる機械学習装置による機械学習の処理手順を示すフローチャートである。
【００３０】
ワークの加工に使用されるツール種別４２およびワーク種別４３は、予めＨＭＩ画面３２を用いて設定される。状態観測部１１Ａは、ＨＭＩ画面３２からツール種別４２およびワーク種別４３を取得する（ステップＳ１０）。
【００３１】
制御部２１は、加工プログラム２０の実行を開始すると、加工プログラム２０に基づいて、切削座標値４０を算出する。状態観測部１１Ａは、制御部２１から切削座標値４０を取得する（ステップＳ２０）。また、状態観測部１１Ａは、モータ負荷電流値４１をドライブユニット３１から取得し（ステップＳ３０）、ワーク温度４４を温度センサ３３から取得する（ステップＳ４０）。状態観測部１１Ａは、取得したデータを学習部１３に送信する（ステップＳ５０）。状態観測部１１Ａが学習部１３に送信するデータは、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４である。
【００３２】
機械学習時には、データ取得部１２が、摩耗量計測装置３４から摩耗量計測結果４５を取得する（ステップＳ６０）。データ取得部１２は、取得したデータを学習部１３に送信する（ステップＳ７０）。すなわち、データ取得部１２は、摩耗量計測結果４５を学習部１３に送信する。なお、ステップＳ１０からＳ７０の処理は、何れの順番で実行されてもよい。
【００３３】
学習部１３は、状態観測部１１Ａおよびデータ取得部１２によって取得されたデータに基づいて、推定摩耗量７５を学習する（ステップＳ８０）。すなわち、学習部１３は、状態変数および判定データを互いに関連付けたデータセットに基づいて、学習モデルを生成する。学習部１３は、学習モデルを記憶しておく。
【００３４】
図３は、実施の形態１にかかる機械学習装置による推定摩耗量の推定処理手順を示すフローチャートである。図３に示す処理のうち、図２に示した処理と同様の処理については、その説明を省略する。
【００３５】
推定摩耗量７５を推定する際の機械学習装置１０による処理のうち、ステップＳ１０からＳ５０までは、機械学習時と同じである。ステップＳ５０において、状態観測部１１Ａが、取得したデータを学習部１３に送信した後、学習部１３は、学習モデル、および状態観測部１１Ａによって取得されたデータに基づいて、推定摩耗量７５を推定する（ステップＳ９０）。すなわち、学習部１３は、状態変数および学習モデルに基づいて、推定摩耗量７５を推定する。このように、学習部１３は、状態変数および判定データを互いに関連付けたデータセットを用いて生成した学習結果（学習モデル）に基づき、状態観測部１１Ａから取得した状態変数から、推定摩耗量７５を推定する。
【００３６】
なお、学習部１３は、推定摩耗量７５を推定する際にも、学習モデルを更新してもよい。換言すると、学習部１３は、推定摩耗量７５を推定しながら、推定摩耗量７５の学習を行ってもよい。
【００３７】
学習部１３は、推定した推定摩耗量７５を推定摩耗量反映部２２に送る。推定摩耗量反映部２２は、取得した推定摩耗量７５に基づいて、切削工具の位置を補正するための補正量７６を算出する。推定摩耗量反映部２２は、算出した補正量７６を制御部２１に送る。制御部２１は、補正量７６および加工プログラム２０を用いて、工作機械２Ａの制御を行う。
【００３８】
ここで、状態観測部１１Ａが取得する各データとデータ取得部１２が取得する摩耗量計測結果４５との関係について説明する。切削工具が摩耗し、切れ味が落ちるのに伴い、ワークと切削工具との間の抵抗が大きくなるので、モータ負荷電流値４１が増加する。また、ワークの取付誤差、またはワーク形状のばらつき、ワークの膨張等によって、切削工具による切削領域が変化した場合にも、モータ負荷電流値４１は変化する。
【００３９】
機械学習装置１０は、モータ負荷電流値４１の変化が、切削工具の摩耗によるものか、切削領域の変化によるものかを判別するために切削座標値４０を用いる。
【００４０】
機械学習装置１０は、切削座標値４０が予め設定しておいた正常な座標となっているタイミングでモータ負荷電流値４１が変化すると、切削工具の摩耗によってモータ負荷電流値４１が変化したと判断する。この場合、機械学習装置１０は、推定摩耗量７５が、摩耗量計測結果４５に近づくように学習モデルを調整する。すなわち、機械学習装置１０は、切削座標値４０が正常な座標に近いほど、推定摩耗量７５が、摩耗量計測結果４５に近づくように学習モデルを調整する。
【００４１】
一方、機械学習装置１０は、切削座標値４０が予め設定しておいた正常な座標ではないタイミングでモータ負荷電流値４１が変化すると、ワークの取付誤差等によって切削領域が変化したことが原因でモータ負荷電流値４１が変化したと判断する。この場合、機械学習装置１０は、推定摩耗量７５が、摩耗量計測結果４５に近づかないように学習モデルを調整する。すなわち、機械学習装置１０は、切削座標値４０が正常な座標に遠いほど、推定摩耗量７５が、摩耗量計測結果４５から遠ざかるように学習モデルを調整する。
【００４２】
また、切削工具およびワークの材質または形状が変わると、同一の加工であっても、切削工具の摩耗量は変化する。このため、機械学習装置１０は、ツール種別４２およびワーク種別４３に基づいて、学習モデルを調整する。
【００４３】
また、ワーク温度４４が変化するとワーク自体が変形するので、ワーク温度４４が変化すると切削領域が変化する。例えば、ワーク温度４４が高くなると、ワークが膨張するので切削領域が大きくなる。この場合、ワーク温度４４の上昇に伴ってモータ負荷電流値４１も上昇する。すなわち、ワーク温度４４が変化するとモータ負荷電流値４１も変化する。このため、機械学習装置１０は、ワーク温度４４に基づいて、学習モデルを調整する。
【００４４】
このように、機械学習装置１０は、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４に対応する推定摩耗量７５を学習するために使用される。なお、機械学習装置１０は、例えば、ネットワークを介して数値制御装置１Ａに接続された、数値制御装置１Ａとは別個の装置であってもよい。また、機械学習装置１０は、数値制御装置１Ａに内蔵されていてもよい。さらに、機械学習装置１０は、クラウドサーバ上に存在していてもよい。
【００４５】
学習部１３は、例えば、ニューラルネットワークモデルに従って、いわゆる教師あり学習により、推定摩耗量７５を学習する。ここで、教師あり学習とは、ある入力と結果（ラベル）とのデータの組を大量に学習装置に与えることで、それらのデータセットにある特徴を学習し、入力から結果を推定するモデルをいう。
【００４６】
ニューラルネットワークは、複数のニューロンからなる入力層、複数のニューロンからなる中間層（隠れ層）、および複数のニューロンからなる出力層で構成される。中間層は、１層、または２層以上でもよい。
【００４７】
図４は、実施の形態１にかかる機械学習装置が用いるニューラルネットワークの構成を示す図である。例えば、図４に示すような３層のニューラルネットワークであれば、複数の入力が入力層Ｘ１〜Ｘ３に入力されると、その値に重みｗ１１〜ｗ１６を掛けて中間層Ｙ１，Ｙ２に入力され、その結果にさらに重みｗ２１〜ｗ２６を掛けて出力層Ｚ１〜Ｚ３から出力される。この出力結果は、重みｗ１１〜ｗ１６および重みｗ２１〜ｗ２６の値によって変わる。
【００４８】
実施の形態１のニューラルネットワークは、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、ワーク温度４４、および摩耗量計測結果４５の組合せに基づいて作成されるデータセットに従って、いわゆる教師あり学習により、推定摩耗量７５を学習する。
【００４９】
すなわち、ニューラルネットワークは、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４を入力して出力層Ｚ１〜Ｚ３から出力された結果が、摩耗量計測結果４５に近づくように重みｗ１１〜ｗ１６，ｗ２１〜ｗ２６を調整することで推定摩耗量７５を学習する。学習部１３は、重みｗ１１〜ｗ１６，ｗ２１〜ｗ２６を調整したニューラルネットワークを記憶しておく。
【００５０】
また、ニューラルネットワークは、いわゆる教師なし学習によって、推定摩耗量７５を学習することもできる。教師なし学習とは、入力データのみを大量に機械学習装置に与えることで、入力データがどのような分布をしているか学習し、対応する教師データ（出力データ）を与えなくても、入力データに対して圧縮、分類、整形等を行う装置を学習する手法である。教師なし学習では、それらのデータセットにある特徴を似た者同士にクラスタリングすること等ができる。教師なし学習は、この結果を使って、何らかの基準を設けてそれを最適にするような出力の割り当てを行うことで、出力の予測を実現することができる。また、教師なし学習と教師あり学習の中間的な問題設定として、半教師あり学習と呼ばれるものもあり、これは一部のみ入力および出力のデータの組が存在し、それ以外は入力のみのデータである場合がこれに当たる。
【００５１】
また、学習部１３は、複数の数値制御装置１Ａに対して作成されるデータセットに従って、推定摩耗量７５を学習するようにしてもよい。なお、学習部１３は、同一の現場で使用される複数の工作機械２Ａからデータセットを取得してもよいし、あるいは、異なる現場で独立して稼働する複数の工作機械２Ａから収集されるデータセットを利用して、推定摩耗量７５を学習してもよい。さらに、データセットを収集する数値制御装置を途中で対象に追加し、あるいは、逆に対象から除去することも可能である。また、ある数値制御装置に関して、推定摩耗量７５を学習した機械学習装置を、これとは別の数値制御装置に取りつけ、当該別の数値制御装置に関して推定摩耗量７５を再学習して更新するようにしてもよい。
【００５２】
また、学習部１３に用いられる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習（Deep  Learning：ディープラーニング）を用いることもでき、学習部１３は、他の公知の方法、例えば遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
【００５３】
ここで、機械学習装置１０のハードウェア構成について説明する。図５は、実施の形態１にかかる機械学習装置を実現するハードウェア構成例を示す図である。機械学習装置１０は、入力装置１０３、プロセッサ１０１、メモリ１０２、表示装置１０５、および出力装置１０４により実現することができる。
【００５４】
プロセッサ１０１の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ１０２の例は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）である。
【００５５】
機械学習装置１０は、プロセッサ１０１が、メモリ１０２で記憶されている機械学習装置１０の動作を実行するための、コンピュータで実行可能な、学習プログラムを読み出して実行することにより実現される。機械学習装置１０の動作を実行するためのプログラムである学習プログラムは、機械学習装置１０の手順または方法をコンピュータに実行させるものであるともいえる。
【００５６】
機械学習装置１０で実行される学習プログラムは、状態観測部１１Ａと、データ取得部１２と、学習部１３とを含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが主記憶装置上に生成される。
【００５７】
入力装置１０３は、状態変数である、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４を工作機械２Ａから受け付けて、プロセッサ１０１に入力する。また、入力装置１０３は、判定データである摩耗量計測結果４５を工作機械２Ａから受け付けて、プロセッサ１０１に入力する。また、入力装置１０３は、状態変数である切削座標値４０を制御部２１から受け付けて、プロセッサ１０１に入力する。
【００５８】
メモリ１０２は、プロセッサ１０１が各種処理を実行する際の一時メモリに使用される。メモリ１０２は、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４、摩耗量計測結果４５、推定摩耗量７５などを記憶する。出力装置１０４は、推定摩耗量７５などを推定摩耗量反映部２２に出力する。
【００５９】
表示装置１０５は、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、およびワーク温度４４、摩耗量計測結果４５、推定摩耗量７５などを表示する。表示装置１０５の例は、液晶モニタである。
【００６０】
学習プログラムは、インストール可能な形式または実行可能な形式のファイルで、コンピュータが読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されてもよい。また、学習プログラムは、インターネットなどのネットワーク経由で機械学習装置１０に提供されてもよい。なお、機械学習装置１０の機能について、一部を専用回路などの専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。また、数値制御装置１Ａについても、機械学習装置１０と同様のハードウェア構成によって実現できる。
【００６１】
工作機械２Ａは、ワークを工作機械２Ａ内に固定した状態で加工を行うが、ワーク取付時の取付誤差に加え、ワーク自体のサイズ、ワーク形状のばらつき、ワークの温度変化によるワークの変形などが発生する場合がある。これらの要因により、同じ加工であってもワークの切削領域が変化するので、切削工具の摩耗量も変化する。また、切削工具が摩耗することによって、ワークと切削工具との間の抵抗が大きくなるので、加工に必要なモータ負荷電流値４１が増加する。また、ワークの取付誤差、またはワーク形状のばらつき等が大きい場合、完成品のワーク精度に影響が出る懸念がある。
【００６２】
実施の形態１では、数値制御装置１Ａが、ワークの取付誤差、またはワーク形状のばらつき等の影響を考慮するために、モータ負荷電流値４１、ワーク温度４４、および切削座標値４０に基づいて、推定摩耗量７５を推定しているので、高精度に切削工具の推定摩耗量７５を推定することができる。したがって、数値制御装置１Ａは、高精度に推定した推定摩耗量７５に基づいて、高精度な補正量７６を算出することができる。
【００６３】
算出された補正量７６は、自動で制御部２１に反映されるので、数値制御装置１Ａは、オペレータの手動操作を介さず、長期間の連続稼働が可能となり、生産性の向上につながる。
【００６４】
このように実施の形態１では、数値制御装置１Ａが、状態観測部１１Ａと、データ取得部１２と、学習部１３とを備えている。そして、状態観測部１１が、モータ負荷電流値４１と、切削工具によるワークへの切削位置である切削座標値４０と、ツール種別４２と、ワーク種別４３と、ワーク温度４４と、を含む状態変数を観測している。また、データ取得部１２が、切削工具の摩耗量を計測した結果である摩耗量計測結果４５を取得している。また、学習部１３が、状態変数および摩耗量計測結果４５の組み合わせに基づいて作成されるデータセットに従って、状態変数から切削工具の摩耗量を推定するための学習モデルを生成している。このように、数値制御装置１Ａは、切削座標値４０と、モータ負荷電流値４１と、ワーク温度４４とを用いて、ワークの取付異常およびワークの形状異常等を考慮した摩耗量を推定しているので、切削工具の摩耗量を正確に推定することができる。
【００６５】
実施の形態２．
つぎに、図６から図８を用いて実施の形態２について説明する。実施の形態２では、数値制御装置が、ワークの取付位置の異常、ワークの形状の異常等のワークの異常を検出する。
【００６６】
図６は、実施の形態２にかかる数値制御装置を備えた制御システムの構成を示す図である。図６の各構成要素のうち図１に示す実施の形態１の数値制御装置１Ａと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
【００６７】
制御システム１００Ｂは、数値制御装置１Ｂと、工作機械２Ｂとを有している。数値制御装置１Ｂは、工作機械２Ｂを制御するコンピュータである。数値制御装置１Ｂは、ワークの取付位置の異常等を検出する機能と、ワークの取付誤差量を算出する機能とを有している。工作機械２Ｂは、工作機械２Ａと同様に、切削工具でワークを加工する装置である。工作機械２Ａは、ドライブユニット３１と、ＨＭＩ画面３２とを備えている。
【００６８】
ＨＭＩ画面３２に接続されている入力装置に対し、オペレータによって入力される情報は、ツール種別４２、ワーク種別４３、および誤差閾値４６である。誤差閾値４６は、ワークの取付誤差量が許容範囲内であるか否かを判定するための閾値である。すなわち、誤差閾値４６は、ワークの取付誤差量に対して、警告を出すか否か判定するための閾値である。ワークの取付誤差量は、切削工具によるワークへの切削の開始位置である切削開始座標に基づいて、算出される。正常時の切削開始座標と、実際の切削開始座標との差が、ワークの取付誤差量である。
【００６９】
数値制御装置１Ｂは、制御部２１と、状態観測部１１Ｂと、異常判定装置５０と、誤差量計算装置６０とを備えている。異常判定装置５０、誤差量計算装置６０、および数値制御装置１Ｂは、機械学習装置１０と同様のハードウェア構成によって実現できる。数値制御装置１Ｂの状態観測部１１Ｂは、工作機械２Ｂから、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、および誤差閾値４６を取得する。
【００７０】
具体的には、状態観測部１１Ｂは、ドライブユニット３１からモータ負荷電流値４１を取得し、ＨＭＩ画面３２からツール種別４２、ワーク種別４３、および誤差閾値４６を取得する。また、状態観測部１１Ｂは、制御部２１から切削座標値４０を取得する。状態観測部１１Ｂは、取得した、切削座標値４０、モータ負荷電流値４１、ツール種別４２、ワーク種別４３、および誤差閾値４６を異常判定装置５０に送る。
【００７１】
異常判定装置５０は、ワークの取付誤差量またはワーク形状等が事前に設定しておいた誤差閾値４６を超えているか否かの判定を行う装置である。誤差量計算装置６０は、ワークの取付誤差量を計算する装置である。
【００７２】
異常判定装置５０は、取付異常判定部５２と、警告表示部５１とを有している。また、誤差量計算装置６０は、誤差量計算部６２と、計算結果表示部６１を有している。
【００７３】
取付異常判定部５２は、状態観測部１１Ｂから出力されるモータ負荷電流値４１、切削座標値４０、ツール種別４２、ワーク種別４３、および誤差閾値４６を受け付ける。取付異常判定部５２は、モータ負荷電流値４１および切削座標値４０に基づいて、切削の開始位置である切削開始座標を検知する。
【００７４】
ここで、切削開始座標について説明する。図７は、実施の形態２にかかる数値制御装置が検知する、取付誤差の無いワークへの切削開始座標を説明するための図である。図８は、実施の形態２にかかる数値制御装置が検知する、取付誤差の有るワークへの切削開始座標を説明するための図である。
【００７５】
図７および図８では、Ｚ軸方向が鉛直方向であり、ワーク８０が取付けられる加工テーブル８５の上面に平行なＸＹ平面が水平面である場合について説明する。すなわち、加工テーブル８５の上面と平行な面内の２つの軸であって互いに直交する２つの軸をＸ軸およびＹ軸とする。また、Ｘ軸およびＹ軸に直交する軸をＺ軸とする。
【００７６】
図７では、ワーク８０が加工テーブル８５に対して傾斜することなく真っすぐ取付けられた場合を示している。図８では、ワーク８０が加工テーブル８５に対して傾斜した状態で取付けられた場合を示している。
【００７７】
例えば、切削工具７１は、Ｚ軸方向からワーク８０を加工する。この場合、切削工具７１は、ワーク８０の上側から移動してきて、ワーク８０に接触する。
【００７８】
ワーク８０の加工テーブル８５への取付誤差が無い場合、切削工具７１は、所望の切削開始座標（Ｘ１，Ｚ１）でワーク８０と接触した後に、ワーク８０の加工を開始する。この場合、切削開始座標（Ｘ１，Ｚ１）で切削工具７１がワーク８０に接触するので、切削開始座標（Ｘ１，Ｚ１）でモータ負荷電流値４１が急上昇する。そして、切削工具７１は、ワーク８０に対してＺ軸方向に加工を実行することで、ワーク８０のうちのＺ軸方向に延びる加工領域８１を加工する。
【００７９】
一方、ワーク８０の加工テーブル８５への取付誤差が有る場合、切削工具７１は、所望の切削開始座標（Ｘ１，Ｚ１）とは異なる切削開始座標（Ｘ２，Ｚ２）でワーク８０と接触した後に、ワーク８０の加工を開始する。この場合、切削開始座標（Ｘ２，Ｚ２）で切削工具７１がワーク８０に接触するので、切削開始座標（Ｘ２，Ｚ２）でモータ負荷電流値４１が急上昇する。そして、切削工具７１は、ワーク８０に対してＺ軸方向に加工を実行することで、ワーク８０のうちの下部にある加工領域８２を加工する。加工領域８２は、加工領域８１とは異なる領域である。
【００８０】
このように、ワーク８０の取付誤差がある場合、取付誤差がない場合と比べて切削開始座標が変化する。同様に、ワーク８０の形状にばらつきがある場合、ワーク８０の形状にばらつきが無い場合と比べて切削開始座標が変化する。また、ワーク８０が膨張または収縮している場合も、ワーク８０が膨張または収縮していない場合と比べて切削開始座標が変化する。
【００８１】
取付異常判定部５２は、変化した切削開始座標（Ｘ２，Ｚ２）と正常時の切削開始座標（Ｘ１，Ｚ１）との差である座標差が、事前に設定された誤差閾値４６を超えた場合に、ワーク８０の異常と判定する。ワーク８０の異常は、ワーク８０の加工テーブル８５への取付異常、ワーク８０の形状異常などである。
【００８２】
正常時の切削開始座標は、ツール種別４２とワーク種別４３との組み合わせ毎に異なるものである。したがって、取付異常判定部５２は、ツール種別４２とワーク種別４３との組み合わせに対応する、正常時の切削開始座標を用いて、ワーク８０に異常があるか否かを判定する。
【００８３】
取付異常判定部５２は、異常を検知した場合には、警告表示部５１に、異常判定を示す異常情報を送る。また、取付異常判定部５２は、変化した切削開始座標と正常時の切削開始座標との座標差である開始位置誤差、ツール種別４２、およびワーク種別４３を誤差量計算部６２に送る。
【００８４】
警告表示部５１は、取付異常判定部５２から異常情報を受け取ると、ワーク８０が異常であることを示す警告を表示し、オペレータに、完成品のワーク８０の加工精度への懸念がある旨を警告し注意を促す。なお、警告表示部５１は、警告の表示に限らず、何れの方法によって警告を出力してもよい。例えば、警告表示部５１は、警告音を出力してもよい。
【００８５】
誤差量計算部６２は、取付異常判定部５２から開始位置誤差を受け取ると、ワーク８０の形状は正常であると仮定したうえで、開始位置誤差、ツール種別４２、およびワーク種別４３に基づいて、ワーク取付誤差量を計算する。誤差量計算部６２は、計算結果であるワーク取付誤差量を、計算結果表示部６１に送る。計算結果表示部６１は、誤差量計算部６２からワーク取付誤差量を受け取ると、受け取ったワーク取付誤差量を表示し、オペレータに、完成品のワーク８０の加工精度への懸念がある旨を警告し注意を促す。このように、数値制御装置１Ｂは、ワーク取付誤差等の異常がある場合にはオペレータに警告するので、完成品のワーク８０の不良品が流出すること防止できる。
【００８６】
なお、数値制御装置１Ａ，１Ｂを組合わせてもよい。すなわち、数値制御装置１Ａが異常判定装置５０を備えていてもよいし、数値制御装置１Ａが異常判定装置５０および誤差量計算装置６０を備えていてもよい。また、数値制御装置１Ｂが、機械学習装置１０を備えていてもよいし、数値制御装置１Ｂが、機械学習装置１０および推定摩耗量反映部２２を備えていてもよい。
【００８７】
このように実施の形態２では、数値制御装置１Ｂが、切削座標値４０、モータ負荷電流値４１、および誤差閾値４６を用いて、ワークの取付位置の異常、ワークの形状の異常等のワークの異常を検出している。これにより、数値制御装置１Ｂは、ワークの異常が発生した場合には、警告等を出力することが可能となる。
【００８８】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００８９】
１Ａ，１Ｂ  数値制御装置、２Ａ，２Ｂ  工作機械、１０  機械学習装置、１１Ａ，１１Ｂ  状態観測部、１２  データ取得部、１３  学習部、２０  加工プログラム、２１  制御部、２２  推定摩耗量反映部、３１  ドライブユニット、３２  ＨＭＩ画面、３３  温度センサ、３４  摩耗量計測装置、４０  切削座標値、４１  モータ負荷電流値、４２  ツール種別、４３  ワーク種別、４４  ワーク温度、４５  摩耗量計測結果、４６  誤差閾値、５０  異常判定装置、５１  警告表示部、５２  取付異常判定部、６０  誤差量計算装置、６１  計算結果表示部、６２  誤差量計算部、７１  切削工具、７５  推定摩耗量、７６  補正量、８０  ワーク、８１，８２  加工領域、８５  加工テーブル、１００Ａ，１００Ｂ  制御システム、１０１  プロセッサ、１０２  メモリ、１０３  入力装置、１０４  出力装置、１０５  表示装置、Ｘ１〜Ｘ３  入力層、Ｙ１，Ｙ２  中間層、Ｚ１〜Ｚ３  出力層。
【要約】
数値制御装置（１Ａ）が、工作機械（２Ａ）を制御する制御部（２１）と、工作機械（２Ａ）が用いる切削工具を駆動するモータのモータ負荷電流値（４１）と、切削工具によるワークへの切削位置である切削座標値（４０）と、切削工具の種別であるツール種別（４２）と、ワークの種別であるワーク種別（４３）と、ワークの温度であるワーク温度（４４）と、を含む状態変数を観測する状態観測部（１１Ａ）と、切削工具の摩耗量を計測した結果である摩耗量計測結果（４５）を取得するデータ取得部（１２）と、状態変数および摩耗量計測結果（４５）の組み合わせに基づいて作成されるデータセットに従って、切削工具の摩耗量を学習する学習部（１３）と、を備える。【図１】
0006865908.tif 000002
【図２】
0006865908.tif 000003
【図３】
0006865908.tif 000004
【図４】
0006865908.tif 000005
【図５】
0006865908.tif 000006
【図６】
0006865908.tif 000007
【図７】
0006865908.tif 000008
【図８】
0006865908.tif 000009