(57)【特許請求の範囲】
【請求項１】
加工プログラムを解析し、工作機械のモータを制御するための制御条件である運転指令信号を生成する指令生成部と、  前記工作機械の振動の有無を判定する振動判定部と、  前記振動判定部が振動有と判定する場合に、変動区間の間、前記モータを第１の変動条件に基づいて制御する駆動制御部と、  前記モータを前記第１の変動条件に基づいて制御した時間である実変動時間と、前記実変動時間の前記モータの温度の最大値とが入力され、前記モータの温度の最大値が前記モータの許容温度以内で前記工作機械の振動を抑制できる第２の変動条件を推定するよう変動条件モデルを生成する学習部と、  を備えた数値制御装置。
【請求項２】
加工プログラムを解析し、工作機械のモータを制御するための制御条件である運転指令信号を送信する指令生成部と、  前記工作機械の振動の有無を判定する振動判定部と、  前記振動判定部が振動有と判定する場合に、変動区間の間、前記モータを第１の変動条件に基づいて制御する駆動制御部と、  前記モータを前記第１の変動条件に基づいて制御した時間である実変動時間と、前記実変動時間の前記モータの温度の最大値とが入力され、前記モータの温度の最大値が前記モータの許容温度以内で前記工作機械の振動を抑制できる第２の変動条件を推定するよう学習された変動条件モデルに、前記変動区間の長さ及び前記モータの許容温度を入力し、前記変動条件モデルにより推定された前記第２の変動条件を前記駆動制御部に出力する変動条件設定部と、  を備えた数値制御装置。
【請求項３】
前記指令生成部は、前記第１の変動条件を前記駆動制御部に送信することを特徴とする請求項１または２に記載の数値制御装置。
【請求項４】
前記変動区間の長さは、前記加工プログラムに記述された情報であることを特徴とする請求項１から３のいずれか一項に記載の数値制御装置。
【請求項５】
前記加工プログラムが実行された時の前記振動判定部による振動判定結果を記憶する振動記憶部と、  前記振動判定部による前記振動判定結果にもとづき、前記変動区間において前記第１の変動条件での制御を継続できるか否かを判定する温度判定部と、  をさらに有することを特徴とする請求項１から３のいずれか一項に記載の数値制御装置。
【請求項６】
前記加工プログラムには前記モータを制御するための加工条件が記述され、  前記加工条件から前記工作機械の振動推測値を算出するシミュレーション部をさらに有し、  前記振動判定部は、前記振動推測値を用いて前記工作機械に振動が発生したか否かを判定し、  前記振動判定部による前記判定の結果にもとづき、前記変動区間において前記第１の変動条件での制御を継続できるか否かを判定する温度判定部と、  をさらに有することを特徴とする請求項１から３のいずれか一項に記載の数値制御装置。
【請求項７】
前記第１の変動条件または前記第２の変動条件は、変動周波数および変動周期のいずれか一方と変動振幅の組み合わせであることを特徴とする請求項１から６のいずれか一項に記載の数値制御装置。
【請求項８】
前記温度判定部は、前記モータの温度と前記モータの許容温度とを比較することによって、前記変動区間において前記第１の変動条件での制御を継続できるか否かを判定することを特徴とする請求項１から７のいずれか一項に記載の数値制御装置。
【請求項９】
前記モータの温度は、センサにより取得される値、または前記温度判定部により予測される値であることを特徴とする請求項１から８のいずれか一項に記載の数値制御装置。
【請求項１０】
モータを制御するための加工条件と、前記モータの仕様情報であるモータ仕様情報と、前記モータの状態を示すモータ状態情報と、変動区間において第１の変動条件での前記モータの制御を継続できる時間長である変動時間情報とを含む学習データを取得し、  前記学習データを用いて、前記加工条件と、前記モータ仕様情報と、前記モータ状態情報と、前記変動区間の長さとから、第２の変動条件を推論するための変動条件モデルを生成する学習部を備える学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】  この開示は数値制御装置および学習装置に関するものである。
【背景技術】
【０００２】  工作機械は、工具を用いてワークに力またはエネルギーを与えることでワークの加工を行う装置である。工作機械における加工不良の一つにびびり振動と呼ばれる現象がある。これは、工具とワークが接触したときに発生する切削抵抗が原因で工具またはワークまたは工作機械本体の構造物が振動する現象である。びびり振動を抑制する方法として、主軸回転数を変動させる方法が知られている。主軸回転数を変動させることによって、振動の発生が不均一になり、びびり振動の励起を阻害することができる。主軸回転数を変動させるときは、一般的に、変動前の主軸の基準回転速度波形に三角波や正弦波などの周期的な波形を重畳させた波形が設定される。そのため、主軸回転数を変動させるには、重畳する周期的な波形の振幅と周波数の組み合わせを決定しなければならない。以下では、変動のために重畳させる振幅と周波数をそれぞれ変動振幅と変動周波数と呼び、両者の組み合わせを変動条件と呼ぶ。【０００３】  変動条件を決定した上で工作機械の主軸回転数を変動させる方法として、特許文献１に記載の方法が提案されている。特許文献１に記載の方法は、定格出力をはじめとするモータ駆動に関わる情報を用いるもので、モータ定格出力に対して、主軸回転数の変動のために使用するモータ出力の割合を予め設定することで、当該割合を上限とした変動条件を設定できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１３０９８３
【発明の概要】
【発明が解決しようとする課題】
【０００５】  ここで、モータの温度上昇と、変動条件との関係について説明する。びびり振動の抑制のため主軸モータの主軸回転数の変動を繰り返すと、モータ温度が上昇する。モータ温度の上昇が続くとモータの劣化・故障につながるため、モータに影響を与えない範囲内で運転させなければならない。一方で、びびり振動を抑制するためには、十分な大きさの変動振幅および変動周波数をモータに与える必要があることが知られている。このため、モータ温度の上昇抑制とびびり振動抑制にはトレードオフの関係がある。【０００６】  変動条件が同じ場合、変動時間の長短によってモータの温度上昇に差が発生する。主軸回転数を変動させる時間が短い場合には、当該時間が長い場合に比べて、モータ温度の許容値と実際のモータ温度の差に余裕がある。このため、変動振幅と変動周波数を、変動時間が長い場合よりも高い値に設定できる。言い換えると、主軸回転数を変動させる時間が短い場合には、変動時間が長い場合と比べ、びびり振動に対して抑制効果の高い変動条件を設定することができる。しかし、特許文献１に記載の方法は、主軸回転数を変動させる時間を考慮していないので、モータ出力に基づいて変動条件の制限を一意的に設けている。このため、主軸回転数を変動させる時間が短い場合であっても、びびり振動に対する抑制効果が高い変動条件を選択できないという課題があった。【０００７】  そこで、本開示は上記問題に鑑みなされたものであって、モータ温度の許容範囲内であって、びびり振動に対する抑制効果が高い変動条件を重畳させた制御条件でモータを制御することができる数値制御装置を提供することを目的としたものである。
【課題を解決するための手段】
【０００８】  この開示は、加工プログラムを解析し、工作機械のモータを制御するための制御条件である運転指令信号を生成する指令生成部と、工作機械の振動の有無を判定する振動判定部と、振動判定部が振動有と判定する場合に、変動区間の間、モータを第１の変動条件に基づいて制御する駆動制御部と、モータを第１の変動条件に基づいて制御した時間である実変動時間と、実変動時間のモータの温度の最大値とが入力され、モータの温度の最大値がモータの許容温度以内で工作機械の振動を抑制できる第２の変動条件を推定するよう変動条件モデルを生成する学習部とを備えるものである。
【発明の効果】
【０００９】  本開示にかかる数値制御装置は、モータ温度の許容範囲内であって、びびり振動を抑制できる最適な変動条件でモータを動作させることができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１にかかる数値制御装置の構成を示すブロック図
【図２】実施の形態１にかかる数値制御装置の変動条件モデルおよび学習段階の入出力信号の関係を表す図
【図３】実施の形態１にかかる数値制御装置の変動条件モデルおよび推論段階の入出力信号の関係を表す図
【図４】実施の形態１にかかる数値制御装置の学習段階のフローチャート
【図５】実施の形態１にかかる数値制御装置の推測段階のフローチャート
【図６】実施の形態１にかかる数値制御装置のハードウェア構成の一例を示す図
【図７】変動区間長さの違いによる変動条件設定可能範囲の違いを表す図
【図８】変動区間長さの違いによる主軸回転数とモータ温度の違いを表す図
【図９】実施の形態２にかかる数値制御装置の構成を示すブロック図
【図１０】実施の形態３にかかる数値制御装置の構成を示すブロック図
【発明を実施するための形態】
【００１１】実施の形態１．  図１は、本開示の実施の形態１にかかる数値制御装置１の構成を示すブロック図である。実施の形態１の数値制御装置１は、外部から与えられた加工プログラム１２に基づいて、工作機械２に備えられた主軸モータ４に制御信号を送信し、図示しない工具やワークを相対的に移動させることでワークを加工する。工作機械２には、工作機械２に発生する振動を検出するセンサ３と、工具やワークを相対的に移動させるための主軸モータ４が備えられている。センサ３は、例えば、工作機械２に予め備えられた位置決めのためのエンコーダである。また、別の例として、工作機械２に付加的に備え付けた加速度センサ、力センサ、またはマイクロフォンでも良い。
【００１２】  数値制御装置１は、工作機械２に備えられたセンサ３からセンサ信号を受信する振動判定部５と、加工プログラム１２を解析し、運転指令信号を生成する指令生成部１１と、指令生成部１１から運転指令信号及び変動条件を受信し、主軸モータ４に制御信号を送信する駆動制御部６と、指令生成部１１から変動区間信号を受信する温度予測部７と、温度予測部７から継続判定信号及び変動区間長さを受信し、変動条件信号を駆動制御部６へ送信する変動条件設定部８と、変動条件を学習する学習部１０と、を備える。
【００１３】  加工プログラム１２には、ワークを所定の形状に加工するための加工条件および加工経路が記述されている。ここで、加工条件とは、主軸回転数と、工具のワークに対する相対的な送り速度と、工具のワークに対する切り込み量である。また、加工経路は工具が辿る経路であり時系列データである。さらに、加工プログラム１２には、びびり振動が発生した場合に、そのびびり振動を抑制するための変動条件が記述されている。さらに、加工プログラム１２には、主軸回転数を変動させる区間を表す指令である変動区間指令が記述されている。変動区間指令は、任意の加工区間に対応する一連の加工ブロックにおいて主軸回転数が変動する区間となるよう記述される。したがって、変動区間中にびびり振動が発生した場合、変動区間が終了するまでモータの変動が継続される。すなわち、変動区間中にびびり振動が発生した場合、変動区間が終了するまでの間、当初の加工条件を変動条件に変更した状態でモータが動作される。
【００１４】  以下では、本実施の形態１の数値制御装置１の各部の動作について説明する。振動判定部５は、工作機械２のセンサ３からセンサ信号を受信し、工作機械２におけるびびり振動の有無を判定し、その判定結果を振動検出信号として駆動制御部６へ送信する。
【００１５】  指令生成部１１は、加工プログラム１２に記述された指令を解析して運転指令信号を生成し、駆動制御部６へ運転指令信号を送信する。運転指令信号は、加工プログラム１２に従って、主軸モータ４を制御するための信号である。加えて指令生成部１１は、加工プログラム１２内の変動区間指令を読み取った場合に、温度予測部７へ変動区間信号を送信し、加工プログラム１２に記載されている変動条件を駆動制御部６へ送信する。指令生成部１１から送信された変動条件は第１の変動条件である。第１の変動条件は、変動区間の間、運転指令信号に重畳されるモータ制御に関する条件である。変動区間指令は変動区間長さに関する情報であり、加工プログラム１２に記述される。変動区間長さは、変動区間指令から導出可能である。
【００１６】  温度予測部７は、駆動制御部６からモータ温度信号、モータ電流を受信する。さらに、温度予測部７は、指令生成部１１から変動区間信号を受信し、モータ温度信号に基づいて変動区間中にモータ変動を継続できるか否かを判定する。温度予測部７は温度判定部である。温度予測部７で行う温度予測は、数式１に基づいて行う。
【００１７】
【数１】
0006896196.tif 000002
【００１８】  ここで、ｎは時刻を示す時系列データの番号であり、Δｔはサンプリング周期、Ｔは温度時定数、τは温度、Ｒは熱係数、Ｉはモータを制御する際に必要なモータ電流である。数式１は、モータ電流が発生したときのモータ温度の推移を表す。変動中のモータは速度が周期的に変化するので、加減速を発生させるためのモータ電流も周期的に変化する。したがって、１周期分の変動中のモータ電流と初期モータ温度（変動開始時のモータ温度）を数式１に与えれば、各時刻の温度を導くことができる。温度予測部７が駆動制御部６から受け取るモータ温度信号は、例えば時刻０（時系列データの最初）のモータの温度である。ある時刻（例えば時刻０）のモータの温度がモータ温度信号により指定されることで、温度予測部７は、数式１より各時刻の温度を算出できる。ある時刻のモータ温度は、温度センサにより実際に取得される。
【００１９】  温度予測部７は、変動区間長さを変動区間信号から算出し、変動区間長さまでの各時刻での温度を算出する。そして、温度予測部７は、算出した温度とあらかじめ設定されたモータ許容温度を比較する。温度予測部７は、変動区間中（ある時刻から変動区間長さを経過するまでの間）のモータ温度を数式１に基づいて算出することで予測し、変動区間中の最大モータ温度がモータ許容温度以下の場合には変動区間中のモータ変動の継続が可能と判定し、そうでない場合には変動区間中のモータ変動の継続が不可と判定する。温度予測部７は、判定した結果である継続判定信号と、変動区間長さを変動条件設定部８に送信する。
【００２０】  なお、ここでは、モータ温度を温度予測部７が数式１に従い算出する方式としたが、これに限られない。例えば、他の数式に従い算出してもよい。
【００２１】  また、モータ許容温度とは、主軸モータ４の機械的および電気的な設計仕様に応じて決定される値であり、主軸モータ４に異常を発生させずに主軸モータ４の運転を継続できる上限の温度を表す。モータ許容温度は、数値制御装置１の起動前にあらかじめ数値制御装置１の記憶部に登録されており、温度予測部７が温度算出時に記憶部にモータ許容温度を読みにいく。または、加工プログラム１２に、モータ許容温度を記載しておくことにしてもよい。
【００２２】  駆動制御部６は、指令生成部１１からの運転指令信号により、加工プログラム１２に基づいて主軸モータ４を制御する。駆動制御部６は振動判定部５から振動検出信号を受信し、びびり振動が発生していると振動判定部５で判定されている場合には、指令生成部１１から送信された変動条件、または、変動条件設定部８から送信された変動条件（以降、第２の変動条件と呼ぶ）に従って、主軸回転数を変動させ、これを変動区間が終了するまで継続する。変動条件設定部８から変動条件信号が入力されると、駆動制御部６は、変動条件を加工プログラム１２に記述された条件から、変動条件設定部８で設定された第２の変動条件に変更する。第２の変動条件は、加工プログラム１２に記述された条件とは異なる変動条件である。
【００２３】  加えて、駆動制御部６は、学習データ信号を学習部１０に出力し、推論データ信号を変動条件設定部８に出力する。学習データ信号は後述の変動条件モデル９を構築するためのデータ信号であり、推論データ信号は後述の変動条件モデル９から変動条件を算出するためのデータ信号である。学習データは、加工条件情報とモータ仕様情報とモータ状態情報と変動時間情報と変動条件情報から構成されるデータである。推論データは、加工条件情報とモータ仕様情報とモータ状態情報とから構成されるデータである。
【００２４】  変動条件設定部８は、温度予測部７から継続判定信号および変動区間長さを受信し、駆動制御部６から推論データ信号を受信する。温度予測部７で変動区間中のモータ変動が不可と判定された場合には、変動条件設定部８は、変動区間長さと、推論データ信号とを学習部１０が生成した変動条件モデル９に入力することで、変動区間長さと、推論データ信号とから推論される第２の変動条件を出力することができる。第２の変動条件は、変動区間中のモータ変動が可となる条件、すなわち、変動区間中、モータの許容温度の範囲内でモータのびびり振動を抑制するために、加工プログラムに記載された変動区間外のモータ動作条件に重畳される条件である。第２の変動条件は、変動条件信号として変動条件設定部８により駆動制御部６へ出力される。
【００２５】  学習部１０が用いる学習アルゴリズムは教師あり学習、強化学習等の公知のアルゴリズムを用いることができる。一例として、教師あり学習手法であるニューラルネットワークを適用することができる。
【００２６】  ここで、変動条件モデル９と、当該モデルの入出力に使用する学習データと推論データ、および変動時間情報の詳細について説明する。変動条件モデル９は図２、図３に示すニューラルネットワークである。図２は、学習部１０が学習データを用いて変動条件モデル９を学習する際の変動条件モデル９の入出力関係を表し、図３は、変動条件設定部８が推論データと変動区間長さを用いて変動条件を設定する際の変動条件モデル９の入出力関係を表す。ニューラルネットワークは、１以上のノードからなる入力層、１以上のノードからなる中間層（隠れ層）、および１以上のノードからなる出力層で構成される。中間層の数は、１層または２層以上でもよい。
【００２７】  学習部１０で学習する場合の変動条件モデル９の入出力関係を、図２を用いながら説明する。図２において、変動条件モデル９の入力は、加工条件情報を表す工具番号とワーク番号と主軸回転数と送り速度と切り込み量と、モータ仕様情報を表すモータ型番と温度時定数と、モータ状態情報を表す最大モータ温度と、変動時間情報を表す実変動時間である。ここで、加工条件情報である主軸回転数と送り速度と切り込み量には、びびり振動が発生していないときに取得された値が与えられる。なお、主軸回転数および送り速度には、変動波形を重畳する前の一定速度状態のときの値が与えられる。
【００２８】  モータ仕様情報であるモータ型番と温度時定数は加工プログラム１２によらないモータ固有の情報が与えられる。モータ状態情報である最大モータ温度には、主軸モータ４が変動している間のモータ温度の最大値が与えられる。変動時間情報である実変動時間には、主軸モータ４が変動を継続した実際の時間が用いられる。変動条件設定部８では、継続判定信号から継続可の信号が出力される時間長を算出することで、実変動時間を算出する。
【００２９】  また、図２において、変動条件モデル９の出力は、変動条件情報である変動振幅と変動周波数である。さらに、図２では学習のための教師信号が存在し、学習データに含まれる変動振幅と変動周波数が変動条件モデル９に与えられる。学習部１０は変動条件モデル９の出力と学習データに含まれる教師信号とを比較し、誤差逆伝播法等の公知の方法によって変動条件モデル内部の重み係数を最適化する。学習部１０が上記の学習データを用いて変動条件モデル９の学習処理を行うことによって、ある加工条件とモータ仕様の組み合わせでびびり振動が発生した場合に、そのびびり振動を抑制することができる変動条件とその変動条件に対応するモータ状態と変動時間の関係が変動条件モデル９内に構築できる。
【００３０】  次に、変動条件設定部８で、第２の変動条件を算出する場合の変動条件モデル９の入出力関係を、図３を用いながら説明する。図３において、変動条件モデル９の入力の一部は、図２と同じく加工条件情報を表す工具番号とワーク番号と主軸回転数と送り速度と切り込み量と、モータ仕様情報を表すモータ型番と温度時定数である。その他の入力は図２の場合と異なり、モータ状態情報としてモータ許容温度を入力し、変動時間情報として変動区間長さを入力する。変動区間長さとは、加工プログラム１２に記述された変動区間指令により主軸回転数を変動させる時間の長さである。変動区間長さは、変動条件設定部８で算出され、変動区間信号に含まれる加工プログラム１２中の送り速度と加工経路から算出できる。
【００３１】  また、図３において、変動条件モデル９の出力は、図２と同じく変動条件情報である。なお、変動条件設定部８の処理において学習は行わないので、図２で存在した教師信号は存在しない。また、ここでは変動区間長さは、変動区間信号に含まれる加工プログラム１２中の送り速度と加工経路から算出しているが、この方法に限られない。例えば、指令生成部１１で変動区間長さを求め、変動区間信号として変動区間長さを温度予測部７および変動条件設定部８に送信するようにしてもよい。
【００３２】  変動条件設定部８が駆動制御部６から受け取った推論データと、温度予測部７から受け取った変動区間長さとを用いて変動条件モデル９の推論処理を行うことによって、びびり振動が発生している加工条件とモータ仕様の組み合わせに対して、加工プログラム１２で記述されている変動区間内にモータ許容温度を超えない第２の変動条件を算出することができる。
【００３３】  以上に述べた実施の形態１の数値制御装置１の処理フローを、図４、図５を用いて説明する。図４は、変動条件モデル９を構築するために、学習部１０で実施される学習段階の処理フローであり、図５は変動条件設定部８で実施され、生成した変動条件モデル９を用いる推論段階の処理フローである。図４、図５で同じ処理の箇所は同じ番号を振っている。数値制御装置１は、変動条件モデル９の学習完了前は図４の処理フローを実行し、変動条件モデル９の学習完了後は図５の処理フローを実行する。以下、図４を用いて学習段階の処理フローについて説明する。数値制御装置１は、次に述べる処理を種々の加工プログラム１２に対して実行することで、変動条件モデル９を生成する。
【００３４】  ステップＳ１１１では、振動判定部５がセンサ３からセンサ信号を受信し、工作機械２のびびり振動の有無を判定し、判定結果である振動検出信号を駆動制御部６へ送信する。ここで振動判定部５が行う判定は、公知の方法を用いてよい。例えば、所定の時間領域における振動振幅が判定しきい値を超えた場合にびびり振動が発生したと判定する。また別の例として、所定の周波数領域における最大ピークの成分が判定しきい値を超えた場合にびびり振動が発生したと判定してもよい。びびり振動が発生していない場合は、本フローを終了し、びびり振動が発生した場合、Ｓ１１２に進む。
【００３５】  ステップＳ１１２では、駆動制御部６が指令生成部１１から受信した変動条件を用いて、主軸モータ４の主軸回転数を変動させる。主軸モータ４の主軸回転数は、主軸モータ４の制御条件である。すなわち、駆動制御部６は主軸モータ４の制御条件を変動させる。ステップＳ１１３では、学習部１０が、駆動制御部６から送信される学習データ信号を収集し、変動条件モデルを構築する。学習部１０が収集する学習データ信号は、びびり振動が発生していないと判定されているときの加工条件情報と、モータ仕様情報と、数式１により予測されたモータ温度がモータ許容温度以下でありびびり振動の抑制が成功しているときの変動条件情報と、その変動条件を加工条件に重畳させている間のモータ状態情報と、その変動条件を継続した実変動時間である変動時間情報である。学習部１０は、学習データ信号を収集し、その信号から抽出したデータを用いて変動条件モデル９の入出力関係を学習する。
【００３６】  ステップＳ１１４では、学習部１０が、収集した学習データから変動条件モデル９を生成する。学習部１０は、駆動制御部６から学習データ信号を受信し、加工条件情報とモータ仕様情報とモータ状態情報と変動時間情報の組み合わせに基づいて、モータ温度がモータ許容温度以下でびびり振動を抑制できる変動条件を学習し、その学習結果として、変動条件モデル９を生成する。ここで、学習データ信号は、加工条件情報、モータ仕様情報、モータ状態情報、変動時間情報及び変動条件情報を互いに関連づけたデータである。誤差逆伝播法等の公知の方法により、モータ状態情報とモータ仕様情報と変動区間長さから変動条件を生成できるように入出力関係を学習する。
【００３７】  なお、本実施の形態において学習部１０は、数値制御装置１の内部に備えられ、変動条件を学習するために使用されるが、例えば、数値制御装置１とは別の外部装置としてネットワークを介して数値制御装置１に接続されてもよい。さらに、学習部１０はクラウドサーバ上に存在していてもよい。また、変動条件設定部８は、数値制御装置１の学習部１０で学習した変動条件モデル９を用いて第２の変動条件を出力するものとして説明したが、数値制御装置１の外部からネットワークを介して変動条件モデル９を取得し、その変動条件モデル９に基づいて第２の変動条件を出力するようにしてもよい。
【００３８】  図５を用いて推論段階の処理フローについて、以下の通り説明する。ステップＳ１１１、Ｓ１１２、Ｓ１１５は、図４と同様である。ステップＳ１２３では、温度予測部７において、変動区間長さを算出し、数式１を用いて、主軸モータ４の変動が変動区間内で継続できるかを判定する。すなわち、数式１を用いて予測したモータ温度が、モータ許容温度以内であるかを判定する。変動区間内の変動の継続が可能であると判定した場合、すなわち、変動区間内における予測モータ温度がモータ許容温度以内であった場合、ステップＳ１１５へ進む。そうでない場合、すなわち、変動区間内における予測モータ温度がモータ許容温度を超える場合、ステップＳ１２４へ進む。
【００３９】  ステップＳ１２４では、変動条件設定部８が、学習部１０で生成された変動条件モデル９を用いて学習データ信号から第２の変動条件を算出する。変動条件モデル９では、学習部１０による学習が完了した入出力関係が構築されている。変動条件設定部８は、変動条件モデル９に推論データと、変動時間情報とを与えることで、当該推論データに対応する変動条件を算出する。変動条件設定部８は、びびり振動が発生していると判定されているときの加工条件情報と、モータ仕様情報と、モータ許容温度を表すモータ状態情報とを、推論データ信号として駆動制御部から取得する。算出後の変動条件が第２の変動条件である。変動条件設定部８は第２の変動条件を駆動制御部６に送信する。駆動制御部６は、この変動条件を変動前の回転速度波形に重畳させることで、主軸モータ４の主軸回転数を変動させる。ステップＳ１１５では、駆動制御部６は、変動区間終了時に主軸モータ４の変動を終了する。  
【００４０】  図６は、実施の形態１にかかる数値制御装置のハードウェア構成の一例を示す図である。図６に示すように、数値制御装置１は、プロセッサ１０１と、メモリ１０２と、インタフェース回路１０３とを備えるコンピュータを含む。
【００４１】  プロセッサ１０１、メモリ１０２、およびインタフェース回路１０３は、例えば、バス１０４によって互いに情報の送受信が可能である。変動条件モデル９は、メモリ１０２に格納される。駆動制御部６は、インタフェース回路１０３で実現される。プロセッサ１０１は、メモリ１０２に記憶されたプログラムを読み出して実行することによって、振動判定部５、温度予測部７、変動条件設定部８、学習部１０、指令生成部１１などの機能を実行する。プロセッサ１０１は、例えば、処理回路の一例であり、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）、およびシステムＬＳＩ（Large  Scale  Integration）のうち一つ以上を含む。
【００４２】  メモリ１０２は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ、ＥＰＲＯＭ（Erasable  Programmable  Read  Only  Memory）、およびＥＥＰＲＯＭ（登録商標）（Electrically  Erasable  Programmable  Read  Only  Memory）のうち一つ以上を含む。また、メモリ１０２は、コンピュータが読み取り可能なプログラムが記録された記録媒体を含む。かかる記録媒体は、不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルメモリ、光ディスク、コンパクトディスク、およびＤＶＤ（Digital  Versatile  Disc）のうち一つ以上を含む。なお、数値制御装置１は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）およびＦＰＧＡ（Field  Programmable  Gate  Array）などの集積回路を含んでいてもよい。
【００４３】  一般的に、びびり振動を抑制するには、変動振幅と変動周波数をそれぞれ十分に高くする必要がある。しかし、変動振幅と変動周波数が高すぎる場合には、加減速によるモータの負荷が上昇しモータが過熱状態になるので、モータにとって正常な運転を維持できない。ここで、変動区間の長短と変動条件の設定可能範囲とモータ温度上昇傾向の関係について、図７および図８を用いて説明する。図７は、変動区間長さの違いによる変動条件設定可能範囲の違いを表す図である。図７（ａ）は変動区間が長い場合に設定可能な変動条件の範囲であり、図７（ｂ）は変動区間が短い場合に設定可能な変動条件の範囲である。両図において、変動条件設定可能範囲外の変動条件を与えると、モータへの負荷が高くなるのでモータが過熱状態に陥ることを表す。図７（ａ）の変動区間が長い場合の変動条件設定可能範囲ａと比べて、図７（ｂ）の変動区間が短い場合の変動条件設定範囲ｂは広い。これは、変動区間が短いとモータ温度が上昇する時間も短いので、変動区間が長い図７（ａ）の場合に比べて、よりモータ負荷の高い変動条件が設定できるためである。
【００４４】  図７に示す変動条件ａおよび変動条件ｂの条件で主軸回転数が変動した場合のモータ温度の上昇傾向の違いを、図８を用いて説明する。図８（ａ）は変動区間が長い場合に変動条件ａで主軸回転数が変動したときの主軸回転数とモータ温度であり、図８（ｂ）は変動区間が短い場合に変動条件ｂで主軸回転数が変動したときの主軸回転数とモータ温度である。両図とも、びびり振動検知時刻から変動区間終了時刻の間に主軸回転数が変動している。図８（ａ）では実変動区間が長いので温度上昇が緩やかな変動条件となっており、図８（ｂ）では実変動区間が短いので温度上昇が急な変動条件となっている。このように、数値制御装置１は、モータが過熱状態にならない範囲でびびり振動を抑制したときの学習データを収集し、変動条件モデル９を構築するので、推論データを用いてモータ温度の許容範囲内である変動条件設定可能範囲内の変動条件を算出することができる。
【００４５】  以上説明したように、本実施の形態１の数値制御装置１は、工作機械２にびびり振動が発生した場合に、これを検知して加工プログラム１２に記述された変動条件で主軸モータ４を変動させ、変動条件を学習する。さらに、モータ温度に基づいて変動区間内に主軸モータ４の変動が継続できるか否かを判定し、継続ができないと判定した場合には、学習によって構築した変動条件モデル９から算出した、最大モータ温度がモータ許容温度に入るような第２の変動条件に変更する。このため、本実施の形態１の数値制御装置１は、主軸モータ４が過熱状態になることなく、びびり振動抑制に効果的な第２の変動条件へ自動的に変更することができるという効果を奏する。
【００４６】  数値制御装置１は、学習時にはモータ状態情報に最大モータ温度を用いて学習し、推論時にはモータ状態情報にモータ許容温度を用いて推論する。これによって、数値制御装置１は、推論時に変動条件モデル９から、モータ温度が変動中にモータ許容温度を超えない変動条件を算出し、その変動条件でモータを変動させることができる。この変動条件は、モータ状態情報以外に加工条件情報とモータ仕様情報と変動時間情報から算出される。
【００４７】  このため、加工プログラム１２に記述された主軸モータ４の指令内容によらず、モータの仕様に応じて、変動区間内で振動を抑制できる変動条件を自動的に算出することができる。この結果、数値制御装置１は、変動区間が短い場合にはモータ温度が上昇しやすい負荷の高い変動条件でモータを制御し、変動区間が長い場合にはモータ温度が上昇しにくい負荷の低い変動条件でモータを制御することができる。すなわち、数値制御装置１は、変動区間長さに応じた適切な負荷の変動条件でびびり振動を抑制できるという効果を奏する。
【００４８】  また、本実施の形態１で数値制御装置１は、１つの主軸モータに対して変動波形を重畳する指令を生成するが、主軸と送り軸両方の回転数を変動させる場合であっても同様の効果を奏することができる。また、本実施の形態１で数値制御装置１は、１つのセンサ３に対して振動判定を行う構成だったが、２つ以上のセンサ３であっても同様の構成で処理を行うことができる。工作機械２に２つ以上のセンサ３が設定されている場合には、少なくとも１つのセンサ３の出力値が判定しきい値を超えた場合に振動発生ありと判定すればよい。
【００４９】  また、学習部１０は、数値制御装置１のみならず、他の数値制御装置内の生成される学習データに従って変動条件モデル９を作成するようにしてもよい。この場合、学習データを収集する対象となる数値制御装置を加工プログラム毎に切り替えることも可能である。さらに、数値制御装置１で作成した変動条件モデル９を他の数値制御装置に送信し、変動条件モデル９を再学習するようにしてもよい。
【００５０】  また、本実施の形態１の数値制御装置１では、変動条件を変動振幅と変動周波数の組み合わせとしているが、変動振幅と変動周期の組み合わせであってもよい。
【００５１】実施の形態２．  実施の形態１は、加工プログラム１２で指令された変動区間内に発生するびびり振動を抑制する構成であった。すなわち、変動区間を予め外部から指定する構成であった。本実施の形態では、加工プログラム１２ｂには変動区間の記述がなく、加工プログラム１２ｂを１回以上実行したときにびびり振動が発生した区間を記憶しておき、その後の加工プログラム１２ｂの実行時に、記憶した区間に対してモータの回転数を変動させることで、びびり振動を抑制するものである。
【００５２】  図９は本開示の実施の形態２に係る数値制御装置１ｂの構成を示すブロック図である。なお、図９では、図１に示した実施の形態１の構成要素と同一ないしは同等である構成要素には同一の符号が付されている。実施の形態２では、実施の形態１に対し、振動記憶部４０が追加の構成となる。また、振動判定部５ｂ、駆動制御部６ｂ、指令生成部１１ｂ、変動条件設定部８ｂ、温度予測部７ｂの処理内容が実施の形態１の対応する処理とそれぞれ異なり、加工プログラム１２ｂも、実施の形態１のものとは異なる。ここでは、実施の形態１と異なる部分を中心に説明する。
【００５３】  加工プログラム１２ｂには、実施の形態１と同様、ワークを所定の形状に加工するための加工条件および加工経路、さらに、びびり振動が発生した場合に、そのびびり振動を抑制するための変動条件が記述されている。ただし、加工プログラム１２ｂには、実施の形態１とは異なり変動区間指令の記述はない。指令生成部１１ｂは、加工プログラム１２ｂに記述された指令を解析し、駆動制御部６ｂへ運転指令信号を送信する。また、指令生成部１１ｂは駆動制御部６ｂに、加工プログラム１２ｂに記述された変動条件を送信する。振動判定部５ｂは、実施の形態１と同様にセンサ信号を受信し、工作機械２におけるびびり振動の有無を判定する。その結果である振動検出信号の送信先は実施の形態１とは異なり、駆動制御部６ｂおよび後述の振動記憶部４０である。
【００５４】  振動記憶部４０は、振動判定部５ｂが出力する振動検出信号を受信し記憶する。さらに、振動記憶部４０は、数値制御装置１ｂが加工プログラム１２ｂの運転を１回以上実行した後に、変動区間信号を駆動制御部６ｂと温度予測部７ｂと変動条件設定部８ｂへ出力する。変動区間信号とは、振動記憶部４０内部に記憶した振動検出信号であって、びびり振動の発生が判定された区間の時間長さが算出可能な信号である。
【００５５】  温度予測部７ｂは、振動記憶部４０から変動区間信号を受信し、実施の形態１の温度予測部７と同様に数式１を用いて変動区間内の最大モータ温度がモータ許容温度を超えるか否かを判定し、その判定結果を継続判定信号として変動条件設定部８ｂへ出力する。なお、ここでは、振動記憶部４０は、びびり振動の発生が判定された区間の時間長さが算出可能な変動区間信号を駆動制御部６ｂと、温度予測部７ｂと、変動条件設定部８ｂに送信したが、振動記憶部４０がびびり振動の発生が判定された区間の時間長さを算出し、駆動制御部６ｂと、温度予測部７ｂと、変動条件設定部８ｂに振動有区間の時間長さを送信してもよい。
【００５６】  変動条件設定部８ｂは、温度予測部７ｂから継続判定信号を受信し、振動記憶部４０から変動区間信号を受信する。さらに、変動条件設定部８ｂは、実施の形態１の変動条件設定部８と同様に駆動制御部６ｂから推論データ信号を受信する。ここで、変動条件モデル９へ与える入力の一部である加工条件情報とモータ仕様情報とモータ状態情報は、当該推論データから与える。残りの入力である変動時間情報には、振動記憶部４０から受信した変動区間信号から算出した変動区間長さを与える。駆動制御部６ｂは、振動記憶部４０から変動区間信号を受信し、変動区間内であれば、指令生成部１１ｂから受信した第１の変動条件または変動条件設定部８ｂで設定された第２の変動条件でモータを変動させる。モータ変動は変動区間が終了するまで継続する。
【００５７】  以上説明したように、本実施の形態２の数値制御装置１ｂは、同一の加工プログラム１２ｂを複数回実行する場合に、びびり振動が発生していると判定した区間を記憶し、その後の加工において、記憶した変動区間に対してモータを変動させる構成である。この構成によって、主軸モータ４を変動させる区間が実際の加工におけるびびり振動の発生区間に一致するので、主軸モータ４が変動する区間の長さを必要最小限に留めることができる。言い換えると、変動区間が最小化されることで、モータはより大きい振幅と変動周波数を出力可能になる。これによって、振動抑制効果が高い変動条件でびびり振動を抑制することが可能になるという効果を奏する。
【００５８】実施の形態３．  実施の形態２は、びびり振動が発生した区間を記憶しておき、その後同一の加工プログラム１２ｂの実行時に、当該区間に対してモータを変動させる構成であった。本実施の形態３では、加工シミュレーションによってびびり振動が発生し継続する区間を予測し、びびり振動が終了すると予測した時刻までモータの変動を継続させる構成について説明する。
【００５９】  図１０は本開示の実施の形態３に係る数値制御装置１ｃの構成を示すブロック図である。実施の形態３では、実施の形態２に対し、振動記憶部４０およびセンサ３がなく、シミュレーション部４１が追加の構成要素となる。さらに、振動判定部５ｃ、駆動制御部６ｃ、指令生成部１１ｃの処理内容は実施の形態２の同名の処理とそれぞれ異なる。なお、図１０では、図９に示した実施の形態２の構成要素と同一ないしは同等である構成要素には同一の符号が付されている。ここでは、本実施の形態３に関わる部分を中心に説明する。
【００６０】  指令生成部１１ｃは、加工プログラム１２ｂを解析し、加工条件情報を後述のシミュレーション部４１へ送信する。その他の処理は実施の形態２の指令生成部１１ｂと同様である。ここで、加工プログラム１２ｂは、実施の形態２の加工プログラム１２ｂと同一である。シミュレーション部４１は、指令生成部１１ｃから加工条件信号を受信する。加工条件信号とは、加工プログラム１２ｂに記述されている加工条件情報を表す信号である。
【００６１】  シミュレーション部４１の内部には、工具とワークのそれぞれの動コンプライアンスと、工具とワークの間の比切削抵抗が設定されている。シミュレーション部４１は、これらの情報を用いて加工条件情報に従う加工シミュレーション４１を実行し、加工プログラム１２ｂを実行した場合の工作機械２内の運転動作および加工プロセスおよび振動を再現する。
【００６２】  シミュレーション部４１は、シミュレーションの実行によって算出された工作機械２の振動をシミュレーション信号として振動判定部５ｃへ送信する。振動判定部５ｃでは、シミュレーション部４１より受信したシミュレーション信号に対し、実施の形態１および実施の形態２と同様にびびり振動の有無について判定を行い、判定結果を振動検出信号としてシミュレーション部４１に送信する。シミュレーション部４１は、振動検出信号に基づき、びびり振動が発生していると判定された区間を表す情報を変動区間信号として温度予測部７ｂと変動条件設定部８ｂと駆動制御部６ｃへ送信する。
【００６３】  以上説明したように、本実施の形態３の数値制御装置１ｃは、加工プログラムに記述されている加工条件情報に基づいて加工シミュレーションを実行することでびびり振動が発生する区間を予測し、その区間においてモータを変動させる構成である。これによって、センサ３または振動記憶部４０を使用しない形態においてもモータを過熱させない変動条件でびびり振動を抑制できるという効果を奏する。
【００６４】  なお、本実施の形態３の数値制御装置１ｃでは加工条件情報から加工シミュレーションを実行する構成であるが、加工プログラム１２ｂに記述されている主軸回転数および加工経路の代わりに、主軸モータ４から取得できるフィードバック情報に基づいて加工シミュレーションを実行する構成としてもよい。この場合、実際の工具とワークの動作を反映させながらシミュレーションを実行できるので、精度良くびびり振動を判定することができる。
【００６５】  以上の実施の形態に示した構成は、本開示の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、上記の実施の形態の組み合わせや、本開示の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００６６】  １  数値制御装置、２  工作機械、３  センサ、４  主軸モータ、５  振動判定部、６  駆動制御部、７  温度予測部、８  変動条件設定部、９  変動条件モデル、１０  学習部、１１  指令生成部、１２  加工プログラム。
【要約】加工プログラム（１２）を解析し、工作機械（２）のモータ（４）を制御するための制御条件である運転指令信号を生成する指令生成部（１１）と、工作機械（２）の振動の有無を判定する振動判定部（５）と、振動判定部（５）が振動有と判定する場合に、変動区間の間、モータ（４）を第１の変動条件に基づいて制御する駆動制御部（６）と、モータ（４）を第１の変動条件に基づいて制御した時間である実変動時間と、実変動時間のモータ（４）の温度の最大値とが入力され、モータ（４）の温度の最大値がモータ（４）の許容温度以内で工作機械（２）の振動を抑制できる第２の変動条件を推定するよう変動条件モデルを生成する学習部（１０）とを備えることを特徴とするものである。【図１】
0006896196.tif 000003
【図２】
0006896196.tif 000004
【図３】
0006896196.tif 000005
【図４】
0006896196.tif 000006
【図５】
0006896196.tif 000007
【図６】
0006896196.tif 000008
【図７】
0006896196.tif 000009
【図８】
0006896196.tif 000010
【図９】
0006896196.tif 000011
【図１０】
0006896196.tif 000012