(57)【特許請求の範囲】
【請求項１】
工作機械を制御する数値制御装置であって、
前記工作機械の温度と前記工作機械の熱変位量との関係の学習に用いられる学習用データの時間長である第１の時間長を、前記工作機械の運転動作の内容を示す運転データに基づいて決定し、決定した前記第１の時間長に基づいて、前記工作機械の温度を示す温度データと前記工作機械の変位を示す変位データと前記運転データとを含む前記学習用データを生成するデータ生成部と、
前記学習用データを用いて、前記工作機械の温度と前記工作機械の熱変位量との関係を学習して学習モデルを生成する学習部と、
を備えることを特徴とする数値制御装置。
【請求項２】
前記運転データに基づいて熱変位の推定に用いられる推定用データの時間長である第２の時間長を決定し、決定した前記第２の時間長に基づいて、前記温度データと前記運転データとを含む前記推定用データを生成するデータ選択部と、
前記学習部で生成された前記学習モデルと前記推定用データとを用いて、前記工作機械に生じる熱変位量を推定する熱変位推定部と、
前記熱変位推定部で推定した熱変位量から算出した補正量で前記工作機械への制御指令を補正する熱変位補正部と、
を備えることを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記第２の時間長は、前記工作機械に含まれる機械要素の内、少なくとも１つの機械要素の動作状態が変化するタイミングを区切りとして決定されることを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記データ選択部は、前記推定用データを構成するデータのサンプリング点数が前記推定用データ間で同一となるように、前記温度データをリサンプリングして前記推定用データを生成することを特徴とする請求項２または３に記載の数値制御装置。
【請求項５】
前記第１の時間長は、前記工作機械に含まれる機械要素の内、少なくとも１つの機械要素の動作状態が変化するタイミングを区切りとして決定されることを特徴とする請求項１から４のいずれか１つに記載の数値制御装置。
【請求項６】
前記データ生成部は、前記学習用データを構成するデータのサンプリング点数が前記学習用データ間で同一となるように、前記温度データおよび前記変位データをリサンプリングして前記学習用データを生成することを特徴とする請求項１から３のいずれか１つに記載の数値制御装置。
【請求項７】
前記工作機械を制御するための制御指令を生成する制御部、
を備え、
前記運転データは、前記制御指令と、加工プログラムを解析した結果である解析結果と、前記工作機械の動作状態の検出結果を示す運転状態データとを含むことを特徴とする請求項１から６のいずれか１つに記載の数値制御装置。
【請求項８】
前記運転状態データは、前記工作機械が備えるモータの位置および速度および電流のうちの少なくとも１つを含むことを特徴とする請求項７に記載の数値制御装置。
【請求項９】
前記解析結果は、主軸への回転数指令、送り軸への位置指令、送り軸への速度指令、工具番号、クーラントの射出指令、およびクーラントの停止指令、のうちの少なくとも１つを表す情報を含むことを特徴とする請求項７または８に記載の数値制御装置。
【請求項１０】
工作機械の温度と工作機械の熱変位量との関係の学習に用いられる学習用データの時間長である第１の時間長を、前記工作機械の運転動作の内容を示す運転データに基づいて決定し、決定した前記第１の時間長に基づいて、前記工作機械の温度を示す温度データと前記工作機械の変位を示す変位データと前記運転データとを含む前記学習用データを生成するデータ生成部と、
前記学習用データを用いて、前記工作機械の温度と前記工作機械の熱変位量との関係を学習して学習モデルを生成する学習部と、
を備えることを特徴とする学習装置。
【請求項１１】
工作機械を制御する数値制御装置における学習方法であって、
前記工作機械の温度と前記工作機械の熱変位量との関係の学習に用いられる学習用データの時間長である第１の時間長を、前記工作機械の運転動作の内容を示す運転データに基づいて決定し、前記第１の時間長に基づいて、前記工作機械の温度を示す温度データと前記工作機械の変位を示す変位データと前記運転データとを含む前記学習用データを生成するデータ生成ステップと、
前記学習用データを用いて、前記工作機械の温度と前記工作機械の熱変位量との関係を学習して学習モデルを生成する学習ステップと、
を含むことを特徴とする学習方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械の熱変位量を推定する数値制御装置、学習装置および学習方法に関する。
【背景技術】
【０００２】
工作機械は、工具を用いてワークに力またはエネルギーを与えることで除去加工、折り曲げ加工の加工を行う加工装置である。工作機械は、一般に複数の駆動軸を有する。駆動軸は、例えば、モータとモータに接続された１つ以上の構造物とで構成される。工作機械は、工具またはワークを回転させるための駆動軸である主軸と、工具とワークの相対位置の位置決めを行う駆動軸である送り軸とを備える。工作機械の各駆動軸は数値制御装置によって制御される。数値制御装置は、ワークに対する工具の相対位置を駆動軸に指令し、駆動軸が指令に基づいて動作することで工具とワークが接触して加工が実現される。【０００３】
一方、工作機械の内外に存在する熱源によって、工作機械が熱変形を起こすと、工具とワークの間には熱変位が発生する。熱変位とは、工作機械の温度変化によって生じる機械位置の誤差である。工作機械に温度変化を与える代表的な要因の例として、工作機械の周囲温度の変化とモータの発熱が挙げられる。これらの要因により、コラムおよび主軸ヘッドをはじめとする構造物の温度分布が一様でなくなると、構造物が歪むので、工作機械の平行度および直角度が低下する。また、主軸シャフト、ボールねじ等が温度変化により伸長することで、熱変位が生じる。【０００４】
熱変位は加工誤差の要因になる。工作機械の熱変位を抑制するための対策の例として、工作機械に温度変化を与えないように工作機械を恒温室に設置したり、工作機械に冷却装置を備えたりする対策がある。これらの対策を行うことで、工作機械の内外の状況によらずに工作機械の温度を一定に保つことができるが、工作機械のために恒温室を用意する必要があったり、冷却装置による冷却が必要な構造物がある場合、冷却装置により冷却される構造物の熱変形による熱変位を防げなかったりといった問題がある。【０００５】
工作機械の熱変位を抑制するための別の対策として、数値制御装置が生成する指令値を予め熱変位分だけ補正する方法がある。この方法では、工作機械の運転データ、センサデータ等を用いて熱変位を相殺する補正量を求めて指令値に加算することで、工作機械の設置環境および機械構造の制約を受けることなく、熱変位による加工誤差を低減できるという利点がある。【０００６】
特許文献１には、工作機械の動作状態データと熱変位量との関係を表す計算式を学習し、この計算式と動作状態データとを用いて熱変位量を算出し、算出した熱変位量を用いて、工作機械の機械位置を補正する技術が提案されている。特許文献１の方法では、種々の動作状態の計算式を繰り返し学習し、サンプリング時間単位で推定した熱変位量を所定期間内で合計することで、熱変位量を算出している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１８−１１１１４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の方法では、工作機械の運転動作に同期せずに、常に一定の期間を単位とした動作状態データを学習用データとしているので、１つの学習用データの中に熱変位量の時間変化の傾向が異なるデータが含まれると、学習が正しく行われない。例えば、熱変位量を決定する条件が変わると、熱変位に影響を与える工作機械内外の温度変化の傾向も変わる。熱変位に影響を与える工作機械内外の温度変化の傾向を、以下、熱的傾向と呼ぶ。熱的傾向の変化の要因となる条件の変化の具体例は、モータが回転状態から静止状態へ変化する場合、冷却のためのクーラントが吐出状態から停止状態に変化する場合などである。このように条件の変化が生じる状況下では、工作機械の機械要素に発生する熱的傾向も変化する。熱的傾向が変化している期間内の、該期間より期間の短い複数の学習用データを用いる場合、これらの学習用データからは、熱的傾向が変化する期間全体の計算式を学習することはできない。したがって、特許文献１に記載の方法では、このような学習用データを用いて熱変位量を求める計算式を求めるため、温度と熱変位量の関係を精度良く学習することができないという問題がある。【０００９】
本発明は、上記に鑑みてなされたものであって、温度と熱変位量の関係を精度良く学習することができる数値制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、本発明にかかる数値制御装置は、工作機械を制御する数値制御装置であって、工作機械の温度と工作機械の熱変位量との関係の学習に用いられる学習用データの時間長である第１の時間長を、工作機械の運転動作の内容を示す運転データに基づいて決定し、決定した第１の時間長に基づいて、工作機械の温度を示す温度データと工作機械の変位を示す変位データと運転データとを含む学習用データを生成するデータ生成部、を備える。数値制御装置は、さらに、学習用データを用いて、工作機械の温度と工作機械の熱変位量との関係を学習して学習モデルを生成する学習部、を備える。
【発明の効果】
【００１１】
本発明にかかる数値制御装置は、温度と熱変位量の関係を精度良く学習することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明にかかる数値制御装置の実施の形態の構成例を示すブロック図
【図２】工作機械の構成例を示す図
【図３】処理回路の構成例を示す図
【図４】工作機械の熱的傾向に影響を与える代表的な機械要素の状態の変化を表す図
【図５】時刻ｔ１から時刻ｔ２までの時間幅Ｔｗ１の区間の温度データをリサンプリングした例を示す図
【図６】時刻ｔ２から時刻ｔ３までの時間幅Ｔｗ２の区間の温度データをリサンプリングした例を示す図
【図７】ニューラルネットワークのモデル図
【図８】数値制御装置における学習処理手順の一例を示すフローチャート
【図９】数値制御装置における熱変位量の推定処理手順の一例を示すフローチャート
【発明を実施するための形態】
【００１３】
以下に、本発明の実施の形態にかかる数値制御装置、学習装置および学習方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１４】
実施の形態．
図１は、本発明にかかる数値制御装置の実施の形態の構成例を示すブロック図である。本実施の形態の数値制御装置１は、工作機械２に接続可能である。図１では、数値制御装置１が工作機械２に接続された状態を示している。数値制御装置１は、加工プログラム３に基づいて工作機械２を制御する。加工プログラム３は、工作機械２が所望の運転を実行するために数値制御装置１に対して与えられる一連の命令文である。図１では、加工プログラム３は、数値制御装置１の外部から与えられる例を図示しているが、これに限定されず、加工プログラムは、数値制御装置１の内部に保持されていてもよい。
【００１５】
図２は、工作機械２の構成例を示す図である。以下、本実施の形態では、工作機械２が切削加工を行う加工装置である例を説明するが、本実施の形態の学習方法を適用する工作機械２は、切削加工を行う加工装置に限定されず、工作機械２の駆動軸の数も図２に示した例に限定されない。
【００１６】
工作機械２は、主軸２１と、送り軸２２−１〜２２−３と、クーラント装置２７と、冷却装置２８と、温度センサ２９と、変位センサ３０とを備える。工作機械２では、数値制御装置１からの指令に基づいて主軸２１が回転し、主軸２１に取り付けられた工具が主軸２１の回転とともに回転することで、図示しないテーブル上に固定されたワークに対して切削加工を行う。送り軸２２−１〜２２−３は、数値制御装置１からの指令に基づいて工具とワークの相対位置が、指令された位置となるように動作する。
【００１７】
主軸２１は、１つ以上の構造物である機構要素２３と、主軸モータ２４とを備える。機構要素２３は、例えば、ギア、シャフト、ツーリングシステムなどである。送り軸２２−１は、送り軸機構２５−１と送り軸モータ２６−１とを備える。送り軸２２−２は、送り軸機構２５−２と送り軸モータ２６−２とを備える。送り軸２２−３は、送り軸機構２５−３と送り軸モータ２６−３とを備える。以下、送り軸２２−１〜２２−３のそれぞれを、個別に区別しないときには送り軸２２と記載し、送り軸機構２５−１〜２５−３のそれぞれを、個別に区別しないときには送り軸機構２５と記載し、送り軸モータ２６−１〜２６−３のそれぞれを、個別に区別しないときには送り軸モータ２６と記載する。送り軸機構２５は、例えば、カップリング、ボールねじ、テーブルである。
【００１８】
送り軸２２−１は、Ｘ軸方向の位置を定める駆動軸であり、送り軸２２−２は、Ｙ軸方向の位置を定める駆動軸であり、送り軸２２−３は、Ｚ軸方向の位置を定める駆動軸である。Ｘ軸、Ｙ軸、Ｚ軸の定義については、例えば、工具軸方向をＺ軸に一致させ、工具軸方向に垂直な平面内における工具進行方向をＸ軸とし、Ｘ軸とＺ軸にそれぞれ垂直な方向をＹ軸とする。
【００１９】
冷却装置２８は、主軸モータ２４、送り軸モータ２６−１〜２６−３、機構要素２３および送り軸機構２５−１〜２５−３のうちの少なくとも一部を冷却する。クーラント装置２７は、加工部を冷却する。加工部は、工具がワークを加工する工作機械２内の加工エリアである。
【００２０】
温度センサ２９は、周期的に、工作機械２の温度を検出し、検出した温度を示す温度データを数値制御装置１に出力する。温度センサ２９のデータの検出周期を温度検出周期と呼ぶ。図２では、温度センサ２９を１つ図示しているが、一般には温度センサ２９は、複数であり、工作機械内外の複数箇所に設置される。温度センサ２９の温度の検出対象となる箇所は、例えば、主軸モータ２４、送り軸モータ２６−１〜２６−３、機構要素２３および送り軸機構２５−１〜２５−３を構成する１つ以上の構造物、クーラント装置２７の図示しないタンク、工作機械２の周囲などである。温度センサ２９の温度の検出対象が工作機械２の周囲などの場合は、温度センサ２９で検出される温度は工作機械２の構造物自体の温度ではないが、本明細書では、このような場合も含めて工作機械２の温度と呼ぶ。具体的には、温度センサ２９の温度の検出対象となる箇所は、例えば、テーブル、ベッド、コラム、主軸頭などである。温度センサ２９は１つの構造物に対して複数個設置されてもよい。
【００２１】
変位センサ３０は、工作機械２の加工部内の工具とワークの間に生じる変位量を検出し、検出結果を熱変位データとして数値制御装置１に出力する。変位センサ３０は少なくとも１軸方向の変位の検出が可能なセンサである。変位センサ３０を複数個設置し、複数軸方向の変位を検出する構成としてもよい。
【００２２】
また、工作機械２には、工作機械２の運転状態を検出する図示しない１つ以上のセンサが設けられており、センサは工作機械２の運転状態の検出結果を運転状態データとして数値制御装置１へ出力する。運転状態データは、主軸モータ２４および送り軸モータ２６−１〜２６−３の各モータの位置および速度および電流のうちの少なくとも１つを含む情報である。
【００２３】
ここで、温度と熱変位の関係について述べる。熱変位量とは、工作機械２の内外の温度変化の影響で工作機械２の構造物が歪んだり伸長したりすることにより、工具とワークの間に生じる変位量である。工作機械２に温度変化を与える要因として、工作機械２の各モータの駆動による発熱、工作機械２の各駆動軸の摩擦熱、クーラント装置２７による冷却、切削により生じる切削熱、冷却装置２８による冷却、周囲温度等が挙げられる。
【００２４】
本実施の形態の数値制御装置１は、工作機械２を制御する制御指令に対して、工作機械２の熱変位量を推定し、推定した熱変位量を相殺する補正量を加算することにより熱変位量を補正した指令である運転動作指令を工作機械２に出力する。熱変位量が精度良く推定できないと、数値制御装置１は、指令に対する補正精度も低下し、加工誤差が生じることになる。本実施の形態の数値制御装置１は、熱変位量を精度良く推定できるように、後述する運転動作単位で学習用データを生成して熱変位量に関する学習を行う。運転動作単位とは、工作機械２の熱的な傾向が一定である時間区間を表す。運転動作単位の詳細については後述する。以下、本実施の形態の数値制御装置１の構成および動作について説明する。
【００２５】
図１に示すように、数値制御装置１は、データ収集部１１、学習部１２、制御部１３、データ選択部１４、熱変位推定部１５および熱変位補正部１６を備える。
【００２６】
データ生成部であるデータ収集部１１は、工作機械２の温度と工作機械２の熱変位量との関係の学習に用いられる学習用データの時間長である第１の時間長を、運転データに基づいて決定し、第１の時間長に基づいて、温度データと変位データと運転データとを含む学習用データを生成する。運転データは、工作機械２の運転動作の内容を示すデータであり、加工プログラム３の解析結果と運転状態データと制御指令とを含む情報である。詳細には、データ収集部１１は、工作機械２の温度センサ２９から出力される温度データと、工作機械２の変位センサ３０から出力される熱変位データを受け取る。また、データ収集部１１は、制御部１３から運転データを受け取る。制御指令とは、工作機械２の各モータによって工具とワークが所望の動作を行うための指令である。加工プログラム３の解析結果は、主軸モータ２４の回転速度である回転数、送り軸モータ２６の速度をはじめとした工作機械２の運転動作を示す情報である。具体的には、解析結果には、例えば、主軸２１への回転数指令（回転速度指令）、送り軸２２への位置指令、送り軸２２への速度指令、工具番号、クーラントの射出指令、およびクーラントの停止指令、のうちの少なくとも１つを表す情報が含まれる。
【００２７】
さらに、データ収集部１１は、温度データ、熱変位データおよび運転データを用いて学習用データを生成し、学習用データを学習部１２へ出力する。詳細には、データ収集部１１は、運転データの情報を用いて、温度データおよび熱変位データを運転動作単位で分割して分割データを生成し、時間幅が異なる分割データ内のサンプリング点数が一定のサンプリング点数となるようリサンプリングすることにより学習用データを生成する。リサンプリングの詳細は後述する。ここでは、データ収集部１１へ各データが入力される周期は全て同一とし、データ収集部１１へ入力される各データに対応する時刻は、この周期を単位として全て等しいとする。したがって、データ収集部１１は、運転データを監視し、運転データに、後述する運転動作単位の区切りの条件を満たす変化があった場合に、その変化点を学習用データの最後とし、その次に入力された温度データ、熱変位データおよび運転データを次の学習用データの最初とする。または、データ収集部１１は、温度データ、熱変位データおよび運転データを、時刻とともに保持してもよい。この時刻は、温度データ、熱変位データおよび運転データの各データに時刻が付されている場合にはデータに付されている時刻であり、データに時刻が付されていない場合にはデータ収集部１１がデータを受け取った時刻とする。
【００２８】
学習部１２は、データ収集部１１から受け取った学習用データを用いて、工作機械２の温度と工作機械２の熱変位量との関係を学習して学習モデルを生成し、生成した学習モデルを熱変位推定部１５へ出力する。制御部１３は、加工プログラム３に記述された指令を解析する。また、制御部１３は、工作機械２から運転状態データを受け取り、運転状態データと加工プログラム３に記述された指令とに基づいて、主軸モータ２４および送り軸モータ２６−１〜２６−３のそれぞれが加工プログラム３に記述された指令に対応した動作をするための制御指令を生成する。主軸モータ２４および送り軸モータ２６−１〜２６−３の各モータの動作に関する制御指令の生成方法は、一般的なものを用いることができるため詳細な説明は省略する。制御部１３は、生成した制御指令を熱変位補正部１６へ出力する。また、制御部１３は、加工プログラム３の解析結果と運転状態データと制御指令とを含む情報である運転データをデータ収集部１１およびデータ選択部１４へ出力する。
【００２９】
データ選択部１４は、運転データに基づいて熱変位の推定に用いられる推定用データの時間長である第２の時間長を決定し、決定した第２の時間長に基づいて、温度データと運転データとを含む推定用データを生成する。詳細には、データ選択部１４は、工作機械２の温度センサ２９から温度データを受け取り、取得する。さらに、データ収集部１１は、制御部１３から運転データを取得する。データ選択部１４は、運転データから解析される運転動作単位の区間で温度データを時間的に分割し、分割した温度データを推定用データとして熱変位推定部１５に出力する。このとき、データ選択部１４は、データ収集部１１と同様に、時間幅が異なる分割データ内のサンプリング点数が一定のサンプリング点数となるようリサンプリングすることにより推定用データを生成する。
【００３０】
熱変位推定部１５は、学習部１２で生成された学習モデルと、データ選択部１４から受け取った推定用データとを用いて、工作機械２に生じる熱変位量を推定する。具体的には、熱変位推定部１５は、学習部１２で生成された学習モデルを示す計算式に、データ選択部１４から入力される推定用データを入力することにより、熱変位量を算出する。また、熱変位推定部１５は、算出した熱変位量に対してデータ選択部１４で行ったリサンプリングと逆の処理を行うことで、熱変位推定部１５における熱変位量の出力周期を温度センサ２９の温度検出周期に合わせ、リサンプリングと逆の処理後の熱変位量を熱変位補正部１６へ出力する。
【００３１】
熱変位補正部１６は、熱変位推定部１５で推定した熱変位量から算出した補正量で工作機械２への制御指令を補正する。詳細には、熱変位補正部１６は、制御部１３で生成された制御指令に対して、熱変位推定部１５で推定された熱変位量を相殺する補正量を加え、補正量が加えられた制御指令を運転動作指令として工作機械２に出力する。具体的には、熱変位補正部１６は、制御指令に含まれる各軸方向の位置指令に対して、熱変位推定部１５で推定された各軸方向の熱変位量に−１を乗じた値を補正量として加える。別の例として、熱変位推定部１５で推定された各軸方向の熱変位量に対して、予め熱変位補正部１６に設定されている負の係数を乗じた値を補正量として算出する例も挙げられる。さらに、別の例として、予め熱変位補正部１６に設定されている対応表に基づき、推定された熱変位量に対応する補正量を算出する例も挙げられる。
【００３２】
次に、数値制御装置１のハードウェア構成について説明する。図１に示したデータ収集部１１、学習部１２、制御部１３、データ選択部１４、熱変位推定部１５および熱変位補正部１６は処理回路により実現される。処理回路は、プロセッサを備える回路であってもよいし、専用ハードウェアであってもよい。
【００３３】
処理回路がプロセッサを備える回路である場合、処理回路は例えば図３に示した構成の処理回路である。図３は、処理回路の構成例を示す図である。処理回路２００は、プロセッサ２０１およびメモリ２０２を備える。データ収集部１１、学習部１２、制御部１３、データ選択部１４、熱変位推定部１５および熱変位補正部１６が図３に示した処理回路２００によって実現される場合、プロセッサ２０１が、メモリ２０２に格納されたプログラムを読み出して実行することにより、これらが実現される。すなわち、データ収集部１１、学習部１２、制御部１３、データ選択部１４、熱変位推定部１５および熱変位補正部１６が図３に示した処理回路２００によって実現される場合、これらの機能は、ソフトウェアであるプログラムを用いて実現される。メモリ２０２はプロセッサ２０１の作業領域としても使用される。プロセッサ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。メモリ２０２は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリー等の不揮発性または揮発性の半導体メモリ、磁気ディスク等が該当する。
【００３４】
データ収集部１１、学習部１２、制御部１３、データ選択部１４、熱変位推定部１５および熱変位補正部１６を実現する処理回路が専用ハードウェアである場合、処理回路は、例えば、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。なお、データ収集部１１、学習部１２、制御部１３、データ選択部１４、熱変位推定部１５および熱変位補正部１６は、プロセッサを備える処理回路および専用ハードウェアを組み合わせて実現されてもよい。データ収集部１１、学習部１２、制御部１３、データ選択部１４、熱変位推定部１５および熱変位補正部１６は、複数の処理回路により実現されてもよい。
【００３５】
次に、本実施の形態の数値制御装置１の動作について説明する。まず、運転動作単位について説明する。図４は、工作機械２の熱的傾向に影響を与える代表的な機械要素の状態の変化を表す図である。図４には、工作機械２の構成要素である主軸２１、送り軸２２、クーラント装置２７および冷却装置２８のそれぞれの稼動状態とプログラム運転状態との時間的な推移の例が示されている。図４の横軸は時間を示している。プログラム運転状態は、プログラム運転中であるか否かを示している。プログラム運転は、数値制御装置１による加工プログラム３に従った制御の下で工作機械２が動作することである。切削加工では、例えば、工作機械２がある加工をするためのプログラム運転を行い、このプログラム運転が終了すると、作業者によってワークの取り換えなどの作業が行われ、その後、次の加工のためのプログラム運転が行われるといったような流れで作業が行われる。
【００３６】
図４に示した例では、時刻ｔ１から時刻ｔ３の間は、主軸２１には工具＃１が装着され、主軸モータ２４は１分あたり１０００回転の回転速度で回転する。図４において、「Ｓ１０００」のように、Ｓと数字で表される文字は主軸モータ２４の回転速度を示しており、Ｓが主軸モータ２４であることを示し、Ｓの後に続く数値が回転速度を示している。図４では、回転速度は、１分あたりの回転回数である回転数により示されている。時刻ｔ１から時刻ｔ３の間に主軸２１のシャフトは、主軸モータ２４の発熱および主軸２１のベアリングの摩擦熱によって伸長する。
【００３７】
時刻ｔ３から時刻ｔ４の間では、主軸モータ２４は静止状態であるために、主軸２１自体は発熱しない。時刻ｔ４から時刻ｔ７までの間では、主軸２１には工具＃２が装着され、１分あたり３０００回転の回転速度で回転する。時刻ｔ３からｔ４の間でも主軸２１は発熱するので熱変位が発生するが、時刻ｔ１から時刻ｔ３とは異なる工具および異なる回転速度であるため、発熱の傾向は時刻ｔ１から時刻ｔ３までの間とは異なる。このように、主軸２１の熱的な傾向は必ずしも一定ではなく、装着される工具、回転数等によって異なることがわかる。
【００３８】
主軸２１と同様に、送り軸２２、クーラント装置２７および冷却装置２８においても運転状態の変化が生じるので、運転動作に応じて熱的な傾向は異なる。例えば、送り軸２２では、時刻ｔ１から時刻ｔ２の間は、送り軸モータ２６は１分あたり１００回転の回転速度で回転し、時刻ｔ２から時刻ｔ３の間は、送り軸モータ２６は１分あたり２００回転の回転速度で回転する。図４において、「Ｆ１００」のように、Ｆと数字で表される文字は送り軸モータ２６の回転速度を示しており、Ｆが送り軸モータ２６であることを示し、Ｆの後に続く数値が回転速度を示している。送り軸２２では、時刻ｔ１から時刻ｔ２の間と時刻ｔ２から時刻ｔ３の間とでは、送り軸モータ２６の回転速度が異なるので、発熱量が異なる。また、クーラント装置２７がクーラントを吐出中であるか否かによりクーラントにより冷却される部分およびその周辺の温度が変化する。冷却装置２８が稼動中であるか否かによっても、冷却装置２８により冷却される部分およびその周辺の温度が変化する。
【００３９】
さらに、時刻ｔ７以後はプログラム運転が終了しているので、加工部のドアの開閉、ワークの取り換えといった段取り替えが行われる可能性があり、工作機械２の熱的な環境は、プログラム運転中と異なる。以上から、工作機械２に発生する熱変位の傾向は、時刻ｔ１から時刻ｔ２までの区間、時刻ｔ２から時刻ｔ３までの区間、・・・、時刻ｔ７以降のプログラム運転停止中の区間ごとに異なる。
【００４０】
本実施の形態では、時刻ｔ１から時刻ｔ２までの区間、時刻ｔ２から時刻ｔ３までの区間、・・・、時刻ｔ７以降のプログラム運転停止中の区間などのように、工作機械２の運転動作の異なる各区間を運転動作単位と定義する。本実施の形態の数値制御装置１のデータ収集部１１は、制御部１３から受け取った運転データをもとに、運転動作単位となる区間を決定する。詳細には、運転データから、運転動作の内容に変化のあった時刻を求め、この時刻を区切りとして運転動作単位となる区間を決定する。すなわち、学習用データの時間長である第１の時間長は、工作機械２に含まれる機械要素の内、少なくとも１つの機械要素の動作状態が変化するタイミングを区切りとして決定される。そして、データ収集部１１は、温度データ、熱変位データおよび運転データを、運転動作単位となる区間単位で分割する。
【００４１】
運転データには、前述したように、加工プログラム３の解析結果、運転状態データおよび制御指令が含まれる。一般に、主軸モータ２４の回転速度および送り軸モータ２６の回転速度については、加工プログラム３の解析結果、制御指令および運転状態データのいずれにも含まれるので、データ収集部１１は、加工プログラム３の解析結果、制御指令および運転状態データのいずれかに基づいて、主軸モータ２４の回転速度および送り軸モータ２６の回転速度を求めることができる。クーラント装置２７および冷却装置２８が稼動中であるか否かを示す情報は、運転状態データに含まれる。または、数値制御装置１がこれらの装置を制御する場合には、制御指令にこれらの稼動状態に関する指令も含まれるので、データ収集部１１は、制御指令からクーラント装置２７および冷却装置２８の稼動状態を把握してもよい。なお、学習させる上で、各モータ、クーラント装置２７および冷却装置２８の動作の状態は制御指令にも含まれ、制御の結果として運転状態データにも含まれる。指令と結果とのどちらかだけを学習に用いてもよいが、工作機械２の運転状態データに加えてその指令値も一緒に学習させることで、より性能の高い学習モデルの生成が期待できる。
【００４２】
なお、図４では工作機械２の構成要素の種類毎の状態変化について示したが、一般に工作機械２は複数の送り軸２２を備える。また、工作機械２の機械要素の数に応じて冷却装置２８を複数台備える場合がある。このような場合、各々の構成要素の状態が変化したタイミングで、各データを運転動作単位に分割することができる。
【００４３】
区間単位で分割したデータは、第１の時間長である区間の長さすなわち時間幅が一定ではない。例えば、図４に示した例では、時刻ｔ１から時刻ｔ２までの時間幅Ｔｗ１と、時刻ｔ２から時刻ｔ３までの時間幅Ｔｗ２とは異なっている。区間の時間幅が一定でない場合、各区間に含まれるデータのサンプリング点数も一定ではない。区間ごとのサンプリング点数が異なると、学習部１２における学習の処理が煩雑となる。
【００４４】
したがって、本実施の形態では、データ収集部１１は、図５，６に示すように、各区間に対応する学習用データが同じサンプリング点数になるように、区間単位で分割した温度データおよび熱変位データをリサンプリングして学習用データを生成する。すなわち、データ収集部１１は、学習用データを構成するデータのサンプリング点数が学習用データ間で同一となるように、温度データおよび変位データをリサンプリングして学習用データを生成する。図５は、時刻ｔ１から時刻ｔ２までの時間幅Ｔｗ１の区間の温度データをリサンプリングした例を示し、図６は、時刻ｔ２から時刻ｔ３までの時間幅Ｔｗ２の区間の温度データをリサンプリングした例を示している。図５に示した時刻ｔ１から時刻ｔ２までの区間のサンプリング点数はＬ１であり、図６に示した時刻ｔ２から時刻ｔ３までの区間のサンプリング点数はＬ２である。温度データは一定周期で温度検出を行っているため、時間幅が長い区間ほど、該区間に含まれる温度データのサンプリング点数は多くなる。図４から図６に示したように時間幅Ｔｗ２は時間幅Ｔｗ１より長いため、Ｌ２はＬ１より大きな値である。
【００４５】
データ収集部１１は、図５，６に示すように、時刻ｔ１から時刻ｔ２までの区間のサンプリング点数と時刻ｔ２から時刻ｔ３までの区間のサンプリング点数とが、いずれもＬになるようにリサンプリングを行う。なお、リサンプリングの方法は一般的な方法を用いることができ、リサンプリングの方法に特に制約はない。データ収集部１１は、温度データと同様に熱変位データもリサンプリングする。データ収集部１１は、運転データについてもリサンプリングしてもよいが、運転データは温度データおよび熱変位データを運転動作の内容ごとに判別するために用いられるものであるため、運転動作単位でデータが存在すればよくリサンプリングする必要はない。
【００４６】
次に、学習部１２による学習について説明する。学習部１２は、データ収集部１１から受け取った学習用データを用いて、熱変位量に関する学習モデルを生成する。学習モデルは、例えば、以下の式（１）に示す数理多項式である。
【００４７】
【数１】
0006556413.tif 000002
【００４８】
式（１）において、Ｎは、温度センサ２９の数であり、Ｌは、１つの学習用データ内のサンプリング点数であり、ｄｘ，ｄｙ，ｄｚは、それぞれＸ，Ｙ，Ｚ軸方向の熱変位量である。また、ｊは、時刻をサンプリング点単位で離散化して番号で表したものであり、Ｔｉ，ｊは、時刻ｊにおけるｉ番目の温度センサ２９の温度データを示し、ａｉ，ｂｉ，ｃｉ，Ｃ１，Ｃ２，Ｃ３はモデルパラメータである。ｉは温度センサ２９を識別するための温度センサ２９の番号を示す。
【００４９】
学習部１２は、学習用データを用いて上記式（１）内のモデルパラメータを同定する。モデルパラメータの同定の方法としては、最小二乗法などの公知の同定方法を用いることができる。学習部１２は、運転データ内の運転動作単位を決定するデータの値が同じものが同じグループとなるように、グループ分けし、グループごとに、対応する学習用データを用いてモデルパラメータを同定することで、運転動作の内容ごとに、学習モデルを構築することができる。なお、学習モデルである数理多項式は、上記（１）に限定されるものではなく、別の数式であってもよい。
【００５０】
学習方法の別の例として、機械学習手法の一つであるニューラルネットワークを用いる方法がある。ニューラルネットワークを用いる場合、運転動作の内容ごとに学習モデルを構築することなく、運転動作の内容に関わらず、単一の学習モデルで温度データと熱変位データの関係を表現することができる。図７は、ニューラルネットワークのモデル図である。図７では、温度データを入力とする入力層と、熱変位データを出力する出力層と、入力層から出力層に信号を伝播する１層以上の中間層から構成されるネットワーク構造を示している。各層に含まれるノードの入出力関係は以下の式（２）で表される。
【００５１】
【数２】
0006556413.tif 000003
【００５２】
式（２）において、ｘｍ，ｋは、ｍ番目のノードからｋ番目のノードに入力される信号を示し、ｙｋは、ｋ番目のノードから出力される信号を示す。また、ｗｍ，ｋは、ｍ番目のノードとｋ番目のノードとの重み係数であり、ｂｋは、ｋ番目のノードのバイアスであり、ｆは活性化関数を示す。活性化関数ｆには、例えばシグモイド関数、または正規化線形関数を用いることができる。図７に示すニューラルネットワークは、誤差逆伝播法による学習法を用いることで、学習用データに含まれる温度データと熱変位量の関係を学習することができる。なお、ここでは、図７に示したような多層パーセプトロン型のニューラルネットワークを用いた学習モデルについて述べたが、畳み込みニューラルネットワークを用いてもよい。別の例として、リカレントニューラルネットワークを用いてもよい。
【００５３】
次に、数値制御装置１の学習処理と熱変位の補正処理とについて説明する。図８は、数値制御装置１における学習処理手順の一例を示すフローチャートである。数値制御装置１のデータ収集部１１は、温度データと熱変位データと運転データとを収集し、学習用データを生成する（ステップＳ１）。具体的には、データ収集部１１は、工作機械２から温度データおよび熱変位データを取得し、制御部１３から運転データを取得する。前述したように、データ収集部１１は、運転動作単位で各データを分割し、分割した温度データおよび熱変位データをリサンプリングすることにより学習用データを生成する。
【００５４】
学習部１２は、データ収集部１１で生成された学習用データから温度データと熱変位のデータの関係を学習し、学習モデルを生成する（ステップＳ２）。以上の処理により、温度データと熱変位のデータの関係を学習した学習モデルが生成される。数値制御装置１は、上記の学習動作を種々の運転動作に対して実行することで、種々の運転動作における温度データと熱変位データの関係を学習した学習モデルを構築する。
【００５５】
次に、熱変位の補正処理について説明する。図９は、数値制御装置１における熱変位量の推定処理手順の一例を示すフローチャートである。数値制御装置１のデータ選択部１４は、温度データと運転データを取得し、推定用データを生成する（ステップＳ１１）。具体的には、データ選択部１４は、工作機械２から温度データを取得し、制御部１３から運転データを取得する。そして、データ選択部１４は、データ収集部１１と同様に、運転データに基づいて、第２の時間長である推定用データの時間長を決定する。第２の時間長は、工作機械２に含まれる機械要素の内、少なくとも１つの機械要素の動作状態が変化するタイミングを区切りとして決定される。データ選択部１４は、運転動作単位で運転データおよび温度データを分割し、分割した温度データをリサンプリングし、リサンプリングされたデータと分割された運転データとを推定用データとして熱変位推定部１５へ出力する。すなわち、データ選択部１４は、推定用データを構成するデータのサンプリング点数が推定用データ間で同一となるように、温度データをリサンプリングして推定用データを生成する。
【００５６】
熱変位推定部１５は、推定用データと学習モデルを用いて、熱変位量を推定する（ステップＳ１２）。学習モデルは、学習部１２から熱変位推定部１５へ入力される。熱変位推定部１５は、推定した熱変位量を熱変位補正部１６に出力する。熱変位推定部１５は、算出した熱変位量に対してデータ選択部１４で行ったリサンプリングと逆の処理を行うことで、熱変位推定部１５における熱変位量の出力周期を温度センサ２９の温度検出周期に合わせる。ここでは、温度センサ２９の温度検出周期と制御指令の出力周期が同じであることを前提としており、熱変位推定部１５は、熱変位量の出力周期を制御指令の出力周期にあわせるために、リサンプリングと逆の処理を行っている。
【００５７】
次に、熱変位補正部１６が、制御指令に対して熱変位量を相殺する補正量を加える（ステップＳ１３）。具体的には、熱変位補正部１６は、制御部１３から受け取った制御指令に対して、熱変位量を相殺する補正量を加え、補正量を加えた結果を運転動作指令として工作機械２に出力する。以上の処理により、数値制御装置１は、制御指令に対して熱変位量を補正する処理を施すことができる。このため、数値制御装置１は、熱変位によって生じる加工誤差を低減することができる。
【００５８】
以上説明したように、本実施の形態の数値制御装置１は、データ収集部１１が温度データと熱変位データを運転動作単位に分割することで学習用データを生成し、学習部１２が学習用データから温度と熱変位の関係を学習する。さらに、本実施の形態の数値制御装置１は、データ選択部１４が温度データを運転動作単位に分割することで推定用データを生成し、熱変位推定部１５が推定用データと学習モデルを用いて熱変位量を推定するようにした。このため、運転動作単位で運転動作の内容に適した精度の高い学習モデルを生成することができる。すなわち、本実施の形態の数値制御装置１は、温度と熱変位量の関係を精度良く学習することができ、これにより、精度良く熱変位量を推定することができる。したがって、本実施の形態の数値制御装置１は、運転動作の内容を考慮せずに一定の期間を単位としたデータを用いて学習モデルを生成する例に比べて、熱変位量の推定精度を向上させることができる。このため、本実施の形態の数値制御装置１は、推定精度の高い熱変位量の推定値を用いて制御指令を補正することができるため、加工誤差を低減することができる。
【００５９】
なお、本実施の形態では、工具の回転によりワークを切削する構成の工作機械２について述べたが、本発明が適用できる工作機械はこれに限定されない。例えば、旋盤のように工具は固定され、ワークが回転する構成の工作機械でも本実施の形態と同等の効果を奏することができる。
【００６０】
また、本実施の形態では、温度と熱変位量の関係を学習し、検出された温度と学習モデルとを用いて熱変位量を推定した。これに限らず、温度に加え各駆動軸の位置および回転速度のうちの少なくとも１つと熱変位量の関係を学習し、温度と各駆動軸の位置および回転速度のうちの少なくとも１つと学習モデルとを用いて熱変位量を推定してもよい。
【００６１】
また、以上の説明では、温度センサ２９および変位センサ３０が工作機械２の構成要素である例を説明したが、温度センサ２９および変位センサ３０のうちの少なくとも一部が、工作機械２の構成要素ではなく、工作機械２に後から設けられるセンサであってもよい。
【００６２】
また、以上の説明では、数値制御装置１が学習モデルを生成するようにしたが、データ収集部１１および学習部１２を、数値制御装置１とは別の学習装置が備えるようにしてもよい。この場合、学習装置が、数値制御装置１から運転データを受け取り、工作機械２から温度データおよび熱変位データを受け取ることになる。学習装置内のデータ収集部１１および学習部１２は、上述した例と同様の動作を行う。学習装置は、学習部１２が生成した学習モデルを数値制御装置１へ出力する。また、学習部１２を、数値制御装置１とは別の学習装置が備えるようにしてもよい。この場合、学習装置には、数値制御装置１から運転データおよび学習用データが入力され、学習装置は、学習モデルを数値制御装置１へ出力する。
【００６３】
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００６４】
１  数値制御装置、２  工作機械、３  加工プログラム、１１  データ収集部、１２  学習部、１３  制御部、１４  データ選択部、１５  熱変位推定部、１６  熱変位補正部、２１  主軸、２２−１〜２２−３  送り軸、２３  機構要素、２４  主軸モータ、２５−１〜２５−３  送り軸機構、２６−１〜２６−３  送り軸モータ、２７  クーラント装置、２８  冷却装置、２９  温度センサ、３０  変位センサ。
【要約】
本発明にかかる数値制御装置（１）は、工作機械（２）の温度と工作機械（２）の変位量との関係の学習に用いられる学習用データの時間長である第１の時間長を、工作機械（２）の運転動作の内容を示す運転データに基づいて決定し、決定した第１の時間長に基づいて、工作機械（２）の温度を示す温度データと工作機械（２）の変位を示す変位データと運転データとを含む学習用データを生成するデータ収集部（１１）と、学習用データを用いて、工作機械（２）の温度と工作機械（２）の変位量との関係を学習して学習モデルを生成する学習部（１２）と、を備える。【図１】
0006556413.tif 000004
【図２】
0006556413.tif 000005
【図３】
0006556413.tif 000006
【図４】
0006556413.tif 000007
【図５】
0006556413.tif 000008
【図６】
0006556413.tif 000009
【図７】
0006556413.tif 000010
【図８】
0006556413.tif 000011
【図９】
0006556413.tif 000012