以下に、本開示の実施の形態にかかる数値制御装置、加工システム、数値制御方法および加工方法を図面に基づいて詳細に説明する。なお、以下の説明中において、同様の機能を有する複数の構成要素に共通の数字の後にハイフンおよび数字を付して区別することがある。同様の機能を有する複数の構成要素のそれぞれを区別する必要がない場合、共通の数字のみを記す。
実施の形態1.
図1は、実施の形態1にかかる加工システム1の機能構成を示す図である。加工システム1は、工作機械2と、数値制御装置3とを有する。数値制御装置3は、数値制御プログラム4に記述された指令に基づいて生成する運転指令を工作機械2に与えることによって、工作機械2を制御する。なお、工作機械2および数値制御装置3は、近接する場所に設置されてもよいし、数値制御装置3が工作機械2を制御することができるように接続されていれば、数値制御装置3は工作機械2と離れた場所に設置されてもよい。
工作機械2は、1つの主軸駆動系21と、1または複数の送り駆動系22と、加工対象物Wを加工するための工具23と、加工対象物Wを保持するテーブル24とを有する。
主軸駆動系21は、主軸モータ211と、主軸モータ211によって駆動される主軸駆動機構212とを有する。主軸駆動系21には、工具23が接続されており、主軸駆動系21は、工具23を回転させることができる。主軸モータ211または主軸駆動機構212には、主軸駆動系21の角度情報を表すエンコーダ(不図示)が備わる。
送り駆動系22は、サーボモータ221と、サーボモータ221によって駆動される送り駆動機構222とを有する。送り駆動系22は、工具23および加工対象物Wの相対位置を変化させることができる。サーボモータ221および送り駆動機構222には、送り駆動系22の位置情報を表すエンコーダ(不図示)が備わる。送り駆動系22には、加工対象物Wを載置するテーブル24または工具23が接続されており、送り駆動系22は、テーブル24または工具23を移動させることで、工具23および加工対象物Wの相対位置を変化させることができる。なお、図1に示す例では、工作機械2は、工具23を移動させる送り駆動系22-1と、テーブル24を移動させる送り駆動系22-2とを有し、工具23およびテーブル24の両方を移動させることとしたが、工具23だけを移動させてもよいし、テーブル24だけを移動させてもよい。工具23と、テーブル24に保持された加工対象物Wとの相対位置を変化させることができればよい。送り駆動系22が工具23および加工対象物Wの相対位置を変化させることで、工具23が加工経路に沿って加工対象物Wを切削することになる。
主軸駆動系21および送り駆動系22は、数値制御装置3に接続され、数値制御装置3から与えられる運転指令によって主軸モータ211およびサーボモータ221が制御される。以下では、主軸駆動系21および送り駆動系22の両方を指す場合、単に駆動系20と称する。なお、工具23の刃先が加工対象物Wに侵入することで切りくずを生成しながら加工面を形成するという一連の過程は、加工プロセスMと呼ばれる。
図2は、図1に示す工作機械2の物理構成の一例を示す図である。テーブル24は、水平面を有し、この水平面に加工対象物Wが載置される。主軸駆動機構212は、工具23がテーブル24に保持された加工対象物Wの上方に位置するように設けられている。主軸モータ211は、主軸駆動機構212に隣接して設けられる。主軸モータ211および主軸駆動機構212を有する主軸駆動系21の主軸は、テーブル24の水平面と垂直な方向であり、主軸駆動系21は、主軸を中心に工具23を回転させる。
工具23を移動させる送り駆動系22-1の送り駆動機構222-1は、工具23が取り付けられた主軸駆動機構212を含む構造物を介して工具23と接続されている。送り駆動系22-1のサーボモータ221-1は、送り駆動機構222-1に隣接して設けられる。送り駆動系22-1の送り軸は、主軸と平行であり、送り駆動系22-1は、工具23を送り軸に沿って上下に移動させる。
テーブル24を移動させる送り駆動系22-2の送り駆動機構222-2は、テーブル24と接続されている。送り駆動系22-2のサーボモータ221-2は、送り駆動機構222-2に隣接して設けられる。送り駆動系22-2の送り軸は、テーブル24の水平面内の方向であり、送り駆動系22-2は、テーブル24を水平方向に移動させる。なお、ここでは、テーブル24を移動させる送り駆動系22を1つだけ説明したが、工作機械2は、送り駆動系22-2の送り軸と垂直であってテーブル24の水平面内の方向に送り軸を有する送り駆動系22をさらに有してもよい。
なお、ここで示す物理構成は説明を容易にするための一例であり、工作機械2の物理構成は図2に示す例に限定されるものではない。例えば、工作機械2の送り駆動系22は1つであってもよいし、3つ以上であってもよい。主軸および送り軸の方向についても、一例である。また、テーブル24は加工対象物Wを保持する機構の一例であり、加工対象物Wを保持することができ、工具23に対する相対的な位置を制御可能な構成であればよい。
図1の説明に戻る。数値制御装置3は、指令生成部31と、制御特性設定部32と、記憶部33と、連成シミュレーション部34と、プロセス評価部35と、駆動制御部36とを有する。
数値制御プログラム4には、工作機械2の主軸および送り軸の運動を指示する複数の指令が含まれている。数値制御プログラム4に含まれる指令は、例えば、工具23が移動する経路を加工対象物Wに対する相対的な位置で指定する指令である。工具23の経路を指定する指令は、経路上の位置を指定する複数の位置指令を含む。また、数値制御プログラム4は、各位置指令が示す位置における、主軸の回転速度を示す主軸回転速度指令と、送り軸の移動速度を示す送り速度指令とをさらに含む。数値制御プログラム4は、数値制御装置3の外部から数値制御装置3に対して与えられてもよいし、数値制御装置3が内部に保持していてもよい。
指令生成部31は、数値制御プログラム4に記述された指令を解析し、工作機械2を制御するために工作機械2に与えられる時々刻々の運転指令を生成する。指令生成部31は、数値制御プログラム4に記述された指令を工作機械2に実行させるための運転指令を生成する。指令生成部31は、生成した運転指令を連成シミュレーション部34および駆動制御部36のそれぞれに出力する。
制御特性設定部32は、後述する駆動制御部36に備わる制御器の特性を表すパラメータである制御特性パラメータの組を生成する。制御特性パラメータの組のことをパラメータセットと称する。制御特性パラメータの詳細については、後述する。制御特性設定部32は、1または複数のパラメータセットを生成し、生成したパラメータセットを、連成シミュレーション部34および駆動制御部36のそれぞれに出力する。
記憶部33は、加工プロセスモデル331と、ダイナミクスモデル332と、主軸駆動制御モデル333と、送り駆動制御モデル334と、加工条件情報335とを記憶する。記憶部33は、記憶された情報を連成シミュレーション部34に出力することができる。加工条件情報335は、例えば、工具23の刃数、工具径およびねじれ角を含む工具形状情報と、その工具23を用いた場合の切り込み量とを含む。加工プロセスモデル331、ダイナミクスモデル332、主軸駆動制御モデル333および送り駆動制御モデル334の詳細については後述される。
工作機械2が実行する切削加工は、加工プロセスMと機械ダイナミクスとが相互に影響する物理現象であるため、加工状態を管理または制御するためには、加工プロセスおよび機械ダイナミクスの両者を統合した解析を行うことが望ましい。ここで、加工プロセスとは、工具23の刃先が加工対象物Wに侵入することで切りくずを生成しながら加工面を形成するという一連の過程を表す。機械ダイナミクスとは、工作機械2の加工中に、内外の振動源によって振動を生じる構造物の動的な振る舞いを表す。ここでいう構造物は、工作機械2を構成する構造物に加えて、工具23および加工対象物Wを含むことができる。
駆動系20が数値制御装置3によって制御されることで、工具23が回転しながら加工対象物Wに対して予め定められた経路を通過するように運動する。工具23が加工対象物Wを切削している間、工具23と加工対象物Wとの間で発生する切削力Fcが構造物を通じて外乱力Fdとして送り駆動系22に伝達され、外乱トルクTdとして主軸駆動系21に伝達される。送り駆動系22に外乱力Fdが加わるため、送り駆動系22の位置は、工具23が加工対象物Wを切削していない場合の位置を基準としたときに、外乱力Fdの振幅および周波数に応じて変動する。同様に、主軸駆動系21に外乱トルクTdが加わると、主軸駆動系21の回転角度は、工具23が加工対象物Wを切削していない場合の回転角度に対して変動する。
上記の関係について図を用いて説明する。図3は、図1に示す主軸駆動系21と機械ダイナミクスと加工プロセスMとの関係を示す図である。図4は、図3に示す物理量を工作機械2の物理構成と共に示す図である。数値制御装置3が運転指令を主軸駆動系21に与えると、主軸モータ211が主軸駆動機構212を駆動して、工具23を含めた工作機械2の構造物が回転し、加工対象物Wを加工する。ここで、主軸駆動系21が運転指令に基づいて主軸駆動系角度θ1に制御されると、実際の工具23の角度は、工具側機械ダイナミクスMD1の影響を受けて、工具角度θ2となる。工具23が加工対象物Wに侵入し、切りくずを生成しながら加工面を形成するという一連の加工プロセスMが実行される。このとき生じる切削トルクTcは、構造物を通じて工具側機械ダイナミクスMD1の影響を受けて外乱トルクTdとして主軸駆動系21に帰還する。工作機械2は、フィードバック信号を数値制御装置3に出力する。外乱トルクTdを受けた主軸駆動系21の状態が運転指令と異なる場合、数値制御装置3は、主軸駆動系21から伝達されるフィードバック信号に基づいて、運転指令を変化させる。
図5は、図1に示す送り駆動系22-2と機械ダイナミクスと加工プロセスMとの関係を示す図である。図6は、図5に示す物理量を工作機械2の物理構成と共に示す図である。数値制御装置3が運転指令を送り駆動系22-2に与えると、工具23と加工対象物Wとの相対運動によって加工対象物Wが加工される。このとき、送り駆動系22-2のサーボモータ221-2が運転指令に基づいて送り駆動機構222-2を駆動した結果、テーブル24に駆動系変位r1が生じる。加工対象物Wにおいて発生する実際の変位は、駆動系変位r1が生じたときの加工対象物側機械ダイナミクスMD2の影響を受けて、構造物変位r2となる。このとき生じる切削力Fcは、構造物を通じて外乱力Fdとして送り駆動系22-2に帰還する。外乱力Fdを受けた送り駆動系22-2の状態が運転指令と異なる場合、数値制御装置3は、送り駆動系22-2から伝達されるフィードバック信号に基づいて運転指令を変化させる。
なお、上記では説明のため図3から図6を用いて、主軸駆動系21および送り駆動系22のそれぞれを分けて説明したが、加工中における変位と力の伝搬とは主軸駆動系21および送り駆動系22で同時になされる。
このように、切削加工では、加工プロセスMと機械ダイナミクスと駆動系20とが連成した系を成し、数値制御装置3は、駆動系20および機械ダイナミクスを介して加工プロセスMに関与する。また、工具23と加工対象物Wとの間の切削プロセスにおいて、切削力Fcが発生している加工点は、切りくずの生成と共に消失するため、センサを設置して切削力Fcを直接的に検出することはできない。したがって、工具23および加工対象物Wの運動を含めた切削加工を正確に評価するには、加工プロセスMおよび機械ダイナミクスに加えて、主軸駆動系21および送り駆動系22の動作を含めたシミュレーションを行う必要がある。
続いて、記憶部33が記憶する加工プロセスモデル331、ダイナミクスモデル332、主軸駆動制御モデル333および送り駆動制御モデル334の具体例について説明する。これらのモデルは、後述の連成シミュレーション部34がシミュレーションを行う際に使用される。
加工プロセスモデル331は、工具23と加工対象物Wとの間の加工特性を表す。より具体的には、加工プロセスモデル331は、工具23および加工対象物Wの位置関係に応じて発生する切削力Fcを表現する数理モデルである。以下に示す数式(1)は、工具23の刃先が加工対象物Wに接触している間の切削力Fcを表現する数式の一例である。数式(1)は、比切削抵抗Kc、エッジフォース係数Ke、工具23の断面の微小厚さΔa、加工対象物Wの切り取り厚さh、工具23の回転角度φおよび時刻tを用いて工具23の断面あたりの微小切削力ΔFcを表している。工具23の切り込みによって発生する合計の切削力Fcは、数式(1)に示される微小切削力ΔFcを工具23の軸方向に足し合わせることで算出することができる。加工対象物Wの切り取り厚さhは、工具23の半径方向における前加工面と今回加工面との間の距離である。数式(1)は、切り取り厚さhに比例する力と、エッジフォースと呼ばれる一定量の力との和によって切削力Fcを算出することができることを表している。
切り取り厚さhは、以下に示す数式(2)によって表現することができる。切り取り厚さhは、1刃あたりの工具23の送り量cによって決定されるノミナルな切り取り厚さを表す成分と、工具23および加工対象物Wの相対的な振動を表す成分と、工具23が複数の刃先を備える場合に各刃先の回転半径の差異による切り取り厚さの増減を表す成分との和で表される。工具23および加工対象物Wの相対的な振動を表す成分は、今回加工面を切り取る瞬間の工具23および加工対象物Wの間の相対変位の工具23の半径方向成分urと、前加工面に転写された工具23および加工対象物Wの間の相対変位の工具半径方向成分wrとの差異で表される。各刃先の回転半径の差異による切り取り厚さの増減を表す成分は、工具23の刃先の回転半径補正量Δeで表される。
数式(1)は加工プロセスモデル331の一例であり、加工プロセスモデル331は、上記のものに限定されない。例えば、工具23の形状と加工対象物Wの形状とを表現したボクセルを用いて切削力Fcを算出するモデルであってもよい。
ダイナミクスモデル332は、工作機械2の動作中に振動を生じる構造物の動特性を表す。具体的には、ダイナミクスモデル332は、構造物に動的な力が加わったときにその構造物が動的に変位することを表す数理モデルである。例えば、駆動系20に接続された加工対象物Wに対して切削力Fcがかかったときの加工対象物Wの挙動は、以下に示す数式(3)で表すことができる。
数式(3)は、加工対象物Wの振動を表現する数式の一例である。工具23および加工対象物Wの間で発生した切削力Fcは、工具23および加工対象物Wの間の相対変位uと、駆動系20の相対変位vと、加工対象物Wの等価質量mと、加工対象物Wの等価粘性係数Cと、加工対象物Wの等価ばね定数Kとを用いて表される。数式(3)は、切削力Fcが加工対象物Wを通じて駆動系20に外乱力Fdとして伝達する機械ダイナミクスを表す。
なお、ダイナミクスモデル332は、数式(3)に限定されない。例えば、加工対象物Wの形状をボクセルで表現し、FEM(Finite Element Method)解析を用いて構造物が振動するときの変位を算出するモデルであってもよい。なお、ここで説明したダイナミクスモデル332は加工対象物Wの振動のみを表現しているが、ダイナミクスモデル332は、加工対象物Wの代わりに工具23、またはその他の構造物の振動を表現してもよい。或いは、ダイナミクスモデル332は、工具23および加工対象物Wの両方の振動を表現してもよい。
主軸駆動制御モデル333は、工作機械2が有する主軸駆動系21と、数値制御装置3の駆動制御部36内に存在し、主軸駆動系21を制御する制御器である主軸駆動制御器とを表す数理モデルである。図7は、図1の主軸駆動制御モデル333の一例を説明するための図である。主軸駆動制御モデル333は、主軸回転角度指令が与えられたときに、切削トルクTcに起因する外乱トルクTdが主軸駆動系21に伝達される状況下において、主軸駆動制御器が有する位置制御器および速度制御器によって、主軸駆動系21の位置および速度が制御される場合の数理モデルである。この数理モデルは、制御器に主軸回転角度指令θrを入力すると、主軸実回転角度θを出力する。ここで、Kpp1,Kvp1,Kvi1は制御ゲインであり、それぞれ位置制御のための比例ゲインKpp1、速度制御のための比例ゲインKvp1、速度制御のための積分ゲインKvi1である。P1(s)は主軸駆動系21全体のトルクから位置の伝達関数であり、sは複素数である。P1(s)は既知のシステム同定手法によって主軸駆動系21の実際の応答から同定することができる。なお、ここでは主軸駆動系21を1慣性系としてモデル化しているが、主軸駆動系21は多慣性系としてモデル化してもよい。また、主軸駆動制御器にフィードフォワード制御器を追加してもよい。また制御器は、回転角度または回転角度に応じた摩擦などの誤差要因を補正する補正量を加算する構造であってもよい。
送り駆動制御モデル334は、工作機械2が有する送り駆動系22と、数値制御装置3の駆動制御部36内に存在し、送り駆動系22を制御する制御器である送り駆動制御器とを表す数理モデルである。図8は、図1の送り駆動制御モデル334の一例を説明するための図である。送り駆動制御モデル334は、送り駆動系位置指令が与えられたときに、切削力Fcに起因する外乱力Fdが送り駆動系22に伝達される状況下において、送り駆動制御器が有する位置制御器および速度制御器によって、送り駆動系22の位置および速度が制御される場合の数理モデルである。この数理モデルは、送り駆動系位置指令xrを入力すると、送り駆動系実位置xを出力する。ここで、Kpp2,Kvp2,Kvi2は制御ゲインであり、それぞれ位置制御のための比例ゲインKpp2、速度制御のための比例ゲインKvp2、速度制御のための積分ゲインKvi2である。P2(s)は送り駆動系22全体の力から位置の伝達関数であり、sは複素数である。P2(s)は既知のシステム同定手法によって送り駆動系22の実際の応答から同定することができる。なお、ここでは送り駆動系22を1慣性系としてモデル化しているが、送り駆動系22は多慣性系としてモデル化してもよい。また、送り駆動制御器にフィードフォワード制御器を追加してもよい。また制御器は、位置または速度に応じた摩擦などの誤差要因を補正する補正量を加算する構造であってもよい。この補正量は、例えば、位置または速度に係数パラメータを乗じた値である。また制御器は、周波数パラメータによって特定の帯域の振動を通過または除外するための信号処理フィルタを有する構造であってもよい。
ここで、制御特性パラメータについて説明する。制御特性パラメータとは、駆動系20を制御する制御器の制御特性を表すパラメータである。図7および図8においては、制御特性パラメータは、制御器の制御ゲインである。なお、制御特性パラメータは、制御ゲインに限定されず、制御器が誤差要因を補正する補正量を加算する構造である場合、補正量を決定する係数パラメータが制御特性パラメータに相当する。また、制御器が特定の帯域の振動を通過または除外するための信号処理フィルタを有する構造である場合、信号処理フィルタの帯域を指定する周波数パラメータが制御特性パラメータに相当する。なお、制御特性パラメータは、一定値であるとは限らず、経時変化する値であってもよい。
制御特性パラメータの値が異なると、駆動系20は異なる周波数特性を示す。具体的には、駆動系20において、制御特性パラメータの値によって、運転指令に対する追従性や外乱に対する抑制性が変化する。続いて制御特性パラメータと駆動系20の周波数特性の対応関係について説明する。図9は、図1に示す駆動系20に運転指令が入力されたときの応答を周波数毎に表したゲイン曲線を示す図である。図9には、第1組、第2組および第3組と称される3組のパラメータセットに対するゲイン応答が表されている。パラメータセット毎にゲイン応答が異なり、第1組、第2組および第3組のそれぞれのゲイン応答のピークとなる周波数は互いに異なる。
図10は、図1に示す駆動系20に運転指令が入力されたときの応答を周波数毎に表した位相曲線を示す図である。図10には、図9と同様に、第1組、第2組および第3組と称される3種類のパラメータセットに対する位相応答が表されている。パラメータセット毎に位相応答が異なり、第1組、第2組および第3組のそれぞれの位相応答において、位相が変化する周波数はそれぞれ異なる。図9および図10に示したように、制御特性パラメータの値が異なると、駆動系20は異なる周波数特性を示す。
ここで、制御特性設定部32が生成するパラメータセットについて詳述する。制御特性設定部32は、上述の通り、1つ以上のパラメータセットを生成する。制御器は、主軸駆動系21および送り駆動系22の数だけ存在する。パラメータセットは、工作機械2に備わる主軸駆動系21および送り駆動系22のそれぞれに対応する制御器の特性を決定づける制御特性パラメータの集合である。各パラメータセットは、1つの制御器について1つの種類の制御特性パラメータを含んでもよいし、1つの制御器について複数の種類の制御特性パラメータを含んでもよい。例えば、工作機械2が1つの主軸駆動系21と2つの送り駆動系22とを有する場合、数値制御装置3は、3つの制御器を有する。この場合、1つのパラメータセットは、3つの制御器のそれぞれに対応して1種類、3つの制御特性パラメータの値を含んでもよいし、制御器毎に複数の種類の制御特性パラメータの値を含んでもよい。上記の図7および図8に示す例では、工作機械2が1つの主軸駆動系21と2つの送り駆動系22とを有する場合、パラメータセットは、主軸駆動制御器について、位置制御のための比例ゲインKpp1、速度制御のための比例ゲインKvp1、および速度制御のための積分ゲインKvi1の値を1つずつ含み、送り駆動制御器について、位置制御のための比例ゲインKpp2、速度制御のための比例ゲインKvp2、および速度制御のための積分ゲインKvi2の値を2つずつ含むことができる。なお、図7および図8には、比例ゲインおよび積分ゲインを含む制御器を示しているが、微分ゲインを含む制御器が用いられてもよい。
制御特性設定部32は、複数の制御器のそれぞれに対して同じ値の制御特性パラメータを設定することができる。なお、ここで制御特性パラメータの値が同じとは、複数の制御器の間で、同じ種類の制御特性パラメータの値が同一であることを指す。制御特性設定部32は、複数の制御器のそれぞれに対して同じ種類の制御特性パラメータを設定可能である場合、複数の制御器のそれぞれに設定する同じ種類の制御特性パラメータの値を同一にすることができる。例えば、制御特性設定部32は、送り駆動系22-1を制御するための送り駆動制御器と送り駆動系22-2を制御するための送り駆動制御器との間で、比例ゲインKpp2、比例ゲインKvp2、および積分ゲインKvi2のそれぞれの値を同一にすることができる。このように、複数の制御器のそれぞれが同じ値の制御特性パラメータで動作する場合、複数の制御器が互いに等しい周波数特性を示すようになる。したがって、駆動系20と構造物とを含めた系は、加工対象物Wに対する工具23の相対的な送り方向によらず同じ周波数特性となる。
或いは、制御特性設定部32は、複数の制御器のそれぞれに対して異なる値の制御特性パラメータを設定することができる。なお、ここで制御特性パラメータの値が異なるとは、複数の制御器の間で、同じ種類の制御特性パラメータの値が異なることを指す。1つの制御器について複数の種類の制御特性パラメータが設定可能である場合、制御特性設定部32は、複数の種類の制御特性パラメータの少なくとも一部に対して異なる値を設定することができる。このように、複数の制御器のそれぞれが異なる値の制御特性パラメータで動作する場合、複数の制御器がそれぞれ異なる周波数特性を示すようになる。したがって、駆動系20と構造物とを含めた系は、加工対象物Wに対する工具23の相対的な送り方向によって異なる周波数特性となる。
また、制御特性設定部32は、制御器に対応する送り駆動系22の運動方向毎に異なる値の制御特性パラメータを設定してもよい。ここでは、図2に示すように1つの主軸駆動系21と、1つの主軸駆動系21に対応する複数の送り駆動系22とを備える工作機械2について説明したが、工作機械2が複数の主軸駆動系21を有する場合、工作機械2は、運動方向が同一である複数の送り駆動系22を備える場合もある。運動方向が同一である複数の送り駆動系22を備える工作機械2については、制御特性設定部32は、運動方向が同一である複数の送り駆動系22には同一の値の制御特性パラメータを設定し、運動方向が互いに異なる複数の送り駆動系22には、異なる値の制御特性パラメータを設定することができる。この場合、工作機械2の動作中に振動を生じる構造物と送り駆動系22とを合成した系のゲイン応答または位相応答は、送り駆動系22の運動方向毎に互いに異なる。
さらに別の例として、制御特性設定部32は、加工対象物Wに対する工具23の相対的な軌跡に応じて、複数の制御器のそれぞれに対する制御特性パラメータを時々刻々経時的に変化させることができる。図11は、図1に示す制御特性設定部32が生成するパラメータセットの一例について説明するための図である。図11には、工作機械2の動作中に工具23が加工対象物Wに対して描く相対軌跡Lが示されている。相対軌跡L上の各位置Pにおける送り方向R1と、送り方向R1の法線方向R2とは、それぞれの位置Pにおいて変化する。例えば、相対軌跡Lが曲線状であれば、位置P-1における送り方向R1-1と位置P-2における送り方向R1-2とは異なり、位置P-1における法線方向R2-1と位置P-2における法線方向R2-2とは異なる。ここで、法線方向R2とは、工具23のある位置Pにおける相対軌跡Lの法線方向を表し、その位置Pにおける送り方向R1に垂直である。制御特性設定部32は、工具23の送り方向R1と法線方向R2とで、周波数特性が互いに異なるように、各時点の制御特性パラメータを変化させる。この場合、工作機械2の動作中に振動を生じる構造物と送り駆動系22とを合成した系のゲイン応答または位相応答は、加工対象物Wに対する工具23の相対的な送り方向R1と、法線方向R2とで互いに異なる。
ここで、機械ダイナミクスと連成した加工プロセスMのメカニズムについて説明する。図12は、図1に示す工作機械2の動作中における工具23の状態と加工対象物Wの加工面の状態との関係の第1の例を示す図である。図12には、加工対象物Wの第1の加工面a1と、第1の加工面a1を切削加工する際の工具23の移動軌跡b1とが示されている。移動軌跡b1は、切削加工中の工具23の振動を表している。第1の加工面a1を切削加工したときの切りくずの厚さv1は、第1の加工面a1と工具23の移動軌跡b1との差分で表される。
続いて、第2の加工面a2は、工具23によって第1の加工面a1の表面が除去された後の加工対象物Wの表面であり、第1の加工面a1を切削したときの工具23の移動軌跡b1に応じた形状となる。第1の例では、工作機械2の動作中に工具23が振動しているため、第2の加工面a2には、第1の加工面a1を切削加工したときの工具23の振動が転写される。また、この第2の加工面a2を切削加工するときの切りくずの厚さv2は、第2の加工面a2と工具23の移動軌跡b2との差分で表される。このため、第2の加工面a2を切削加工するときの切りくずの厚さv2は、第2の加工面a2の形状と、第2の加工面a2を切削加工するときの工具23の振動とによって異なる。したがって、加工対象物Wの切りくずの厚さは、各加工面を切削加工するときの工具23の振動によって変化する。
図12に示す第1の例において、第1の加工面a1を加工するときの切りくずの厚さv1と、第2の加工面a2を加工するときの切りくずの厚さv2とは同程度となっている。このような加工プロセスMは安定しており、振動が発散する可能性は低い。
図13は、図1に示す工作機械2の動作中における工具23の状態と加工対象物Wの加工面の状態との関係の第2の例を示す図である。図13には、加工対象物Wの第3の加工面a3と、第3の加工面a3を切削加工する際の工具23の移動軌跡b3とが示されている。第3の加工面a3を切削加工したときの切りくずの厚さv3は、第3の加工面a3と工具23の移動軌跡b3との差分で表される。
続いて、第4の加工面a4は、工具23によって第3の加工面a3の表面が除去された後の加工対象物Wの表面であり、第3の加工面a3を切削加工したときの工具23の移動軌跡b3に応じた形状となる。第2の例では、工作機械2の動作中に工具23が第1の例よりも大きな振幅で振動しており、第4の加工面a4には、第3の加工面a3を切削加工したときの工具23の振動が転写される。また、この第4の加工面a4を切削加工するときの切りくずの厚さv4は、第4の加工面a4と工具23の移動軌跡b4との差分で表される。
工具23の振動の振幅は、図12に示す第1の例よりも図13に示す第2の例の方が大きい。このため、第3の加工面a3を加工するときの切りくずの厚さv3と、第4の加工面a4を加工するときの切りくずの厚さv4との差は、第1の例における厚さv1と厚さv2との差よりも大きくなっている。このような加工プロセスMは不安定であり、ビビり振動を引き起こす可能性が高い。
図14は、図1に示す工作機械2の動作中における工具23の状態と加工対象物Wの加工面の状態との関係の第3の例を示す図である。図14には、加工対象物Wの第5の加工面a5と、第5の加工面a5を切削加工する際の工具23の移動軌跡b5とが示されている。第5の加工面a5を切削加工したときの切りくずの厚さv5は、第5の加工面a5と工具23の移動軌跡b5との差分で表される。
続いて、第6の加工面a6は、工具23によって第5の加工面a5の表面が除去された後の加工対象物Wの表面であり、第5の加工面a5を切削加工したときの工具23の移動軌跡b5に応じた形状となる。第3の例では、工作機械2の動作中に工具23が振動しており、第6の加工面a6には、第5の加工面a5を切削加工したときの工具23の振動が転写される。また、この第6の加工面a6を切削加工するときの切りくずの厚さv6は、第6の加工面a6と工具23の移動軌跡b6との差分で表される。ここで、第5の加工面a5を切削加工するときの工具23の振動の位相と、第6の加工面a6を切削加工するときの工具23の振動の位相との差は、第1の例において、第1の加工面a1を切削加工するときの工具23の振動の位相と、第2の加工面a2を切削加工するときの工具23の振動の位相との差よりも大きくなっており、位相がほぼ逆転している。このため、第5の加工面a5を切削加工するときの切りくずの厚さv5と第6の加工面a6を切削加工するときの切りくずの厚さv6との差が、第1の例における厚さv1と厚さv2との差よりも大きくなっている。このような加工プロセスMは、第2の例と同様に不安定であり、びびり振動を引き起こす可能性が高い。
図12から図14を用いて説明したように、工具23の振動状態によって、切りくずの厚さは変化する。特に、工具23の振動の振幅および位相が加工プロセスMの安定性に与える影響が大きい。したがって、工具23の振動の振幅および位相を適切に制御することで、加工プロセスMを安定化させることが可能である。
連成シミュレーション部34は、指令生成部31が出力した運転指令を工作機械2に与え、制御特性設定部32が生成したパラメータセットが示す制御特性を有する制御器を用いて工作機械2を制御した場合の加工をシミュレーションした結果を示すプロセス情報を算出する。プロセス情報は、加工誤差を比較可能なパラメータを含み、例えば、加工対象物Wの切り取り厚さ、切削力Fc、外乱力Fdなどを含む。ここで、加工対象物Wの切り取り厚さは、工具23により切り取られた切りくずの厚さとなる。連成シミュレーション部34は、主軸駆動系21および送り駆動系22を含む駆動系20の動作と、工作機械2の動作中に振動を生じる構造物のダイナミクスとが加工プロセスMに与える影響を含めて、工作機械2が行う加工をシミュレーションすることができる。連成シミュレーション部34は、制御特性設定部32が生成したパラメータセットの数だけシミュレーションを行い、シミュレーション結果を示すプロセス情報をパラメータセットの数だけ生成する。連成シミュレーション部34は、生成したプロセス情報をプロセス評価部35に出力する。
連成シミュレーション部34は、加工プロセスモデル331、ダイナミクスモデル332、主軸駆動制御モデル333、および、送り駆動制御モデル334を用いて、工作機械2が行う加工をパラメータセット毎にシミュレーションすることができる。具体的には、連成シミュレーション部34は、主軸駆動制御モデル333における主軸駆動制御器の制御特性パラメータと、送り駆動制御モデル334における送り駆動制御器の制御特性パラメータとを、制御特性設定部32が生成したパラメータセットが示す値とし、加工プロセスモデル331、ダイナミクスモデル332、主軸駆動制御モデル333、および、送り駆動制御モデル334に対して、指定された加工条件を用いて、指令生成部31が出力した運転指令を与えることで、工作機械2が行う加工をシミュレーションして、シミュレーション結果を示すプロセス情報を算出する。このとき連成シミュレーション部34は、記憶部33に記憶された加工プロセスモデル331、ダイナミクスモデル332、主軸駆動制御モデル333、送り駆動制御モデル334、および、加工条件情報335を用いることができる。記憶部33に記憶された加工条件情報335を用いる場合、指定された加工条件は、加工条件情報335が示す加工条件となる。
連成シミュレーション部34は、工具23および加工対象物Wの間の加工プロセスMと、工作機械2の構造物の機械ダイナミクスと、主軸駆動系21の動作と、送り駆動系22の動作とが連成されたシミュレーションを実行する。連成シミュレーション部34では、図3から図6に示した関係に基づいて、加工プロセスモデル331、ダイナミクスモデル332、主軸駆動制御モデル333および送り駆動制御モデル334の各モデルを組み合わせた連成モデルに対して、パラメータセットが示す制御特性パラメータの値を用いて、加工条件情報335に記述された加工条件の下、運転指令を与えたときの駆動信号と主軸駆動系角度θ1と駆動系変位r1と工具角度θ2と送り系の構造物変位r2と加工対象物Wの切り取り厚さhと切削トルクTcと切削力Fcと外乱トルクTdと外乱力Fdとフィードバック信号とをシミュレーションし、それらの時系列情報および周波数成分情報を演算する連成シミュレーションを行う。連成シミュレーション部34は、制御特性設定部32が生成したパラメータセットの数だけシミュレーションを行い、シミュレーション結果をプロセス情報として出力する。
プロセス評価部35は、連成シミュレーション部34が出力する複数のプロセス情報に基づいて、制御特性設定部32が生成したパラメータセットを用いたときの加工誤差の大きさをパラメータセット毎に評価し、評価結果に基づいて工作機械2の制御に用いるパラメータセットを選択する。プロセス評価部35は、選択したパラメータセットを示す選択信号を駆動制御部36に出力する。
図12から図14を用いて説明したように、機械ダイナミクスと連成した加工プロセスMは、加工面と工具23の振動との関係によって不安定化する場合がある。制御特性設定部32が生成するパラメータセットが示す制御特性パラメータの値によって、主軸駆動系21および送り駆動系22の特性は変化する。工具23と、加工対象物Wが載置されるテーブル24とは、主軸駆動系21および送り駆動系22の少なくともいずれかに接続されているため、工具23および加工対象物Wの機械ダイナミクスは、制御特性設定部32が生成するパラメータセットによって間接的に変化させることができる。したがって、連成シミュレーション部34が、制御特性設定部32により生成されたパラメータセット毎に連成シミュレーションを実行することで、プロセス評価部35は、パラメータセット毎に加工プロセスMの安定性を評価することができる。プロセス評価部35は、生成された全てのパラメータセットのうち、最も加工プロセスMが安定するパラメータセットを選択する。これにより、加工誤差が最小となるパラメータセットを用いて、工作機械2を制御することが可能になる。
以下、プロセス評価部35における評価方法の一例を説明する。プロセス評価部35は、加工対象物Wの切り取り厚さhの時間変化に基づいて、加工誤差の大きさを評価することができる。連成シミュレーション部34が生成するプロセス情報は、運転指令に基づいて計算された加工対象物Wの切り取り厚さhを含むこととする。プロセス評価部35は、加工対象物Wの切り取り厚さhの増大が小さいほど加工誤差の大きさが小さいと評価する。プロセス評価部35は、切り取り厚さhの増大が最小となるパラメータセットを、工作機械2の制御に用いるパラメータセットとして選択することができる。ここで切り取り厚さhは、図12から図14を用いて説明した切りくずの厚さに相当し、加工面と工具23の移動軌跡との間の厚みを表す。工具23および加工対象物Wの間で、びびり振動と呼ばれる振動が発生すると、時間経過とともに振幅が増大して加工誤差の悪化を招く。このため、切り取り厚さhの経時変化を評価することで、プロセス評価部35は、工具23および加工対象物Wの間の振動が最小となるパラメータセットを選択することができる。工具23および加工対象物Wの間の振動が最小となるパラメータセットは、加工プロセスMを安定化させることができ、工具23および加工対象物Wの間の振動に起因する加工誤差を最小化することができる。
また、プロセス評価部35は、パラメータセット毎に運転指令を実行したときの外乱力Fdまたは外乱トルクTdの最大振幅に基づいて、加工誤差の大きさを評価することができる。プロセス評価部35は、外乱力Fdまたは外乱トルクTdの最大振幅が小さいほど加工誤差の大きさが小さいと評価する。プロセス評価部35は、最大振幅が最小となるパラメータセットを、工作機械2の制御に用いるパラメータセットとして選択することができる。外乱力Fdまたは外乱トルクTdの最大振幅が小さいほど、外乱力Fdまたは外乱トルクTdに起因する駆動系20の振動が小さくなる。このため、外乱力Fdまたは外乱トルクTdの最大振幅が最小となるパラメータセットを選択することで、駆動系20の振動に起因する加工誤差を最小化することができる。
また、プロセス評価部35は、連成シミュレーション部34が算出したプロセス情報の時間波形を、予め設定された目標プロファイルと比較して、目標プロファイルとの乖離に基づいて、加工誤差の大きさを評価することができる。目標プロファイルは、加工誤差が許容値以下となるプロファイルであり、例えば、プロセス評価部35の内部に予め設定される。プロセス評価部35は、目標プロファイルとの乖離が小さいほど加工誤差の大きさが小さいと評価する。プロセス評価部35は、2乗和誤差などの損失関数に基づいて、目標プロファイルとの乖離を評価してもよいし、パターンマッチングなどの機械学習手法に基づいて、目標プロファイルとの乖離を評価してもよい。プロセス評価部35は、目標プロファイルとの乖離が最小となるパラメータセットを選択することで、加工誤差を最小化することができる。
プロセス評価部35は、上記の複数の評価方法のいずれか1つを用いて加工誤差の大きさを評価してもよいし、上記の複数の評価方法を組み合わせて用いてもよい。
駆動制御部36は、指令生成部31が生成した運転指令に従って、工作機械2の駆動系20を制御する。駆動制御部36は、主軸駆動系21を制御するための制御器である主軸駆動制御器と、送り駆動系22を制御するための制御器である送り駆動制御器とを内部に有する。主軸駆動制御器は、主軸駆動系21に備わるエンコーダの信号を監視しながら、主軸駆動系21の位置および速度が運転指令で指定された量になるように、主軸モータ211に対して指令を出力する。送り駆動制御器は、送り駆動系22に備わるエンコーダの信号を監視しながら、送り駆動系22の位置および速度が運転指令で指定された量になるように、サーボモータ221に対して指令を出力する。駆動制御部36は、プロセス評価部35が出力する選択信号に基づいて、制御特性設定部32が出力したパラメータセットのうち、工作機械2の制御に用いるパラメータセットを選択し、主軸駆動制御器および送り駆動制御器の制御特性パラメータの値を、選択されたパラメータセットが示す制御特性パラメータの値とする。
図15は、図1に示す数値制御装置3の動作を説明するためのフローチャートである。加工システム1が運転を開始すると、数値制御装置3の指令生成部31は、数値制御プログラム4を読み込んで、読み込んだ数値制御プログラム4を解析し、数値制御プログラム4に基づく運転指令を生成する。また、制御特性設定部32は、制御特性パラメータの組であるパラメータセットを1つ以上生成する(ステップS101)。指令生成部31は、生成した運転指令を連成シミュレーション部34および駆動制御部36に出力し、制御特性設定部32は、生成したパラメータセットを連成シミュレーション部34および駆動制御部36に出力する。
連成シミュレーション部34は、指令生成部31が出力した運転指令と、制御特性設定部32が出力したパラメータセットとを用いて、パラメータセット毎に連成シミュレーションを実行してプロセス情報を算出する(ステップS102)。連成シミュレーション部34は、算出したプロセス情報をプロセス評価部35に出力する。
プロセス評価部35は、プロセス情報を評価して、パラメータセット毎に加工誤差の大きさを評価し、工作機械2の制御に用いるパラメータセットを選択する(ステップS103)。プロセス評価部35は、選択したパラメータセットを示す選択信号を駆動制御部36に出力する。
駆動制御部36は、プロセス評価部35が出力した選択信号に基づいて、選択されたパラメータセットを用いて工作機械2の運転を制御する(ステップS104)。指令生成部31は、数値制御プログラム4に記述された全ての指令の読み取りが完了したか否かを判断する(ステップS105)。読み取りが完了していない場合(ステップS105:No)、指令生成部31は、ステップS101から処理を繰り返す。読み取りが完了した場合(ステップS105:Yes)、加工システム1は運転を終了する。
以上説明したように、実施の形態1の加工システム1において、数値制御装置3は、数値制御プログラム4に基づいて生成した運転指令を工作機械2に与えた場合の加工をシミュレーションした結果を示すプロセス情報を、駆動系20の動作と、工作機械2の動作中に振動を生じる構造物のダイナミクスとが、工具23による加工対象物Wの加工プロセスMに与える影響を含めてパラメータセット毎に算出し、プロセス情報の評価結果に基づいて工作機械2の制御に用いるパラメータセットを選択する。数値制御装置3の駆動制御部36は、選択されたパラメータセットが示す制御特性パラメータを使用して、運転指令に基づいて工作機械2を制御する。したがって、数値制御装置3は、加工プロセスと、駆動系20の動作と、工作機械2の動作中に振動を生じる構造物の機械ダイナミクスとが相互に影響し合って加工誤差が生じる場合においても、加工誤差を低減することが可能になる。
制御特性設定部32が駆動系20の制御特性を決定づける制御特性パラメータの組であるパラメータセットを生成するため、加工システム1の加工能率は変化しない。特に、加工対象物Wに対する工具23の送り方向R1とその法線方向R2とで制御特性が異なる制御特性パラメータの組を生成する場合、駆動系20の作用により、工具23の送り方向R1の機械ダイナミクスの動特性と、法線方向R2の機械ダイナミクスの動特性との比率を工具23の各位置で保ったままの運転を実現することができる。
連成シミュレーション部34は、工具23と加工対象物Wとの間の加工特性を表す加工プロセスモデル331と、工作機械2の動作中に振動を生じる構造物の動特性を表すダイナミクスモデル332と、主軸駆動系21と主軸駆動系21を制御する主軸駆動制御器とを表す主軸駆動制御モデル333と、送り駆動系22と送り駆動系22を制御する送り駆動制御器とを表す送り駆動制御モデル334と、に対して、制御特性設定部32が生成したパラメータセットを用いて、指定された加工条件で運転指令を与えたときのプロセス情報を算出する。数理モデルを用いて連成シミュレーションを行うことで、運転指令が駆動系20および機械ダイナミクスを介して加工プロセスMに与える影響を正確に評価することが可能になる。
実施の形態1では、加工プロセスモデル331と、ダイナミクスモデル332と、主軸駆動制御モデル333と、送り駆動制御モデル334と、加工条件を示す加工条件情報335とを記憶する記憶部33は、数値制御装置3に備わることとしたが、記憶部33は、数値制御装置3の外部に備わっていてもよい。
なお、記憶部33は、数値制御プログラム4に記述された加工工程に応じて異なるモデルおよび加工条件を記憶してもよい。連成シミュレーション部34は、加工工程に応じて異なるモデルおよび加工条件を用いて、シミュレーションを行うことが可能になる。また、実施の形態1では、工作機械2が1つの主軸駆動系21と、1または複数の送り駆動系22とを備えることとしたが、工作機械2は複数の主軸駆動系21を有してもよい。工作機械2が複数の主軸駆動系21を有する場合であっても、図15に示した動作を同様に行えばよい。
また、実施の形態1では、例えばマシニングセンタのように、主軸駆動系21に工具23が接続されており、工具23が回転する工作機械2について説明したが、工作機械2は、例えばNC(Numerically Control)旋盤のように主軸駆動系21に加工対象物Wが接続され、加工対象物Wが回転する構成であってもよい。
実施の形態2.
図16は、実施の形態2にかかる加工システム1aの機能構成を示す図である。実施の形態1と同様の機能を有する機能構成は実施の形態1と同一の符号を付して、重複する説明を省略する。以下、実施の形態1と異なる点について主に説明する。加工システム1aは、シミュレーション結果に基づいて運転指令を生成する点が、加工システム1と異なる。
加工システム1aは、工作機械2と、数値制御装置3aとを有する。数値制御装置3aは、数値制御装置3と同様に、数値制御プログラム4に記述された指令に基づいて工作機械2を制御する。数値制御装置3aは、指令生成部31と、制御特性設定部32aと、記憶部33aと、連成シミュレーション部34aと、プロセス評価部35と、駆動制御部36とを有する。
記憶部33aは、記憶部33と同様に、加工プロセスモデル331と、ダイナミクスモデル332と、主軸駆動制御モデル333と、送り駆動制御モデル334と、加工条件情報335とを記憶し、記憶した情報を連成シミュレーション部34aに出力する。記憶部33aは、さらに、制御特性設定部32aにも記憶した情報を出力することができる。
連成シミュレーション部34aは、連成シミュレーション部34と同様に、制御特性設定部32が生成したパラメータセットを用いて工作機械2を制御した場合の加工をシミュレーションした結果を示すプロセス情報を算出する。連成シミュレーション部34aは、算出したプロセス情報をプロセス評価部35に出力すると共に、制御特性設定部32aにも出力する。
制御特性設定部32aは、パラメータセットを1つ生成し、連成シミュレーション部34aに出力する。さらに、制御特性設定部32aは、生成したパラメータセットを用いて連成シミュレーション部34aが生成したプロセス情報を取得し、取得したプロセス情報に基づいて、パラメータセットを修正する。
ここで、上記で説明した図12から図14を用いて、パラメータセットの修正について説明する。連成シミュレーション部34aから取得したプロセス情報が示すシミュレーション結果が、図13または図14のように、切りくずの厚さの変動が大きい場合、制御特性設定部32aは、駆動系20の周波数応答におけるゲインまたは位相の少なくとも一方が変化するように制御特性パラメータを変更する。例えば、図13に示した第2の例のように、工具23の振動の位相が同相であるが振幅が大きい場合、制御特性設定部32aは、制御ゲインを増減させたり、バンドストップフィルタの阻止帯域が当該周波数を含むように阻止帯域を変更したりする。このような変更を行うことで、制御特性設定部32aは、工具23の振動の周波数を含む帯域における振動の振幅を低下させることができる。
また、別の例として、図14に示す第3の例のように、工具23の振動の振幅は小さいが加工対象の加工面に転写された振動の位相と、その加工面を切削加工するときの工具23の振動の位相とが逆相である場合、制御特性設定部32aは、制御ゲインを増減したり、位相補償フィルタの位相補償量を変更したりする。このような変更を行うことで、加工対象の加工面に転写された振動の位相と、その加工面を切削加工するときの工具23の振動の位相との位相差を減少させることができる。制御特性設定部32aは、プロセス情報に基づいて、パラメータセットを上記の例のように変更することで、図12に示したように、切りくずの厚さの変動を小さくし、加工プロセスMを安定化させ、加工誤差を低減することが可能である。
図17は、図16に示す数値制御装置3aの動作を説明するためのフローチャートである。加工システム1aが運転を開始すると、数値制御装置3aの指令生成部31は、数値制御プログラム4を読み込んで、読み込んだ数値制御プログラム4を解析し、数値制御プログラム4に記述された指令を工作機械2に実行させるための運転指令を生成すると共に、第1のパラメータセットを生成する(ステップS201)。指令生成部31は、生成した運転指令を連成シミュレーション部34aおよび駆動制御部36に出力し、制御特性設定部32aは、生成した第1のパラメータセットを連成シミュレーション部34aおよび駆動制御部36に出力する。
連成シミュレーション部34aは、制御特性設定部32aが生成した第1のパラメータセットを用いて、指令生成部31が出力した運転指令を工作機械2が実行するときの連成シミュレーションを実行してプロセス情報を生成する(ステップS202)。連成シミュレーション部34aは、生成したプロセス情報をプロセス評価部35および制御特性設定部32aのそれぞれに出力する。
制御特性設定部32aは、ステップS202を実行した結果出力されるプロセス情報に基づいてパラメータセットを修正して、第2のパラメータセットを生成する(ステップS203)。制御特性設定部32aは、生成した第2のパラメータセットを連成シミュレーション部34aおよび駆動制御部36に出力する。
連成シミュレーション部34aは、制御特性設定部32aが出力した第2のパラメータセットを用いて工作機械2を制御したときの連成シミュレーションを実行してプロセス情報を生成する(ステップS204)。連成シミュレーション部34aは、生成したプロセス情報をプロセス評価部35および制御特性設定部32aのそれぞれに出力する。
プロセス評価部35は、複数のプロセス情報を比較評価して、各パラメータセットを用いたときの加工誤差の大きさを評価し、工作機械2の制御に使用するパラメータセットを選択する(ステップS205)。プロセス評価部35は、選択したパラメータセットを示す選択信号を駆動制御部36に出力する。
駆動制御部36は、プロセス評価部35が出力した選択信号に基づいて、選択されたパラメータセットを用いて工作機械2の運転を制御する(ステップS206)。指令生成部31は、数値制御プログラム4に記述された全ての指令の読み取りが完了したか否かを判断する(ステップS207)。読み取りが完了していない場合(ステップS207:No)、指令生成部31は、ステップS201から処理を繰り返す。読み取りが完了した場合(ステップS207:Yes)、加工システム1aは運転を終了する。
なお、上記の例では、制御特性設定部32aは、第1のパラメータセットを用いて工作機械2を制御した場合のシミュレーション結果を示すプロセス情報に基づいて第1のパラメータセットを修正した第2のパラメータセットを生成し、プロセス評価部35は、第1のパラメータセットおよび第2のパラメータセットの中から、工作機械2の制御に用いるパラメータセットを選択することとしたが、制御特性設定部32aは、3つ以上のパラメータセットを生成してもよい。例えば、制御特性設定部32aは、1つのプロセス情報に基づいて、複数のパラメータセットを生成してもよい。或いは、制御特性設定部32aは、パラメータセットの修正を繰り返してもよい。例えば、制御特性設定部32aは、第2のパラメータセットを用いて工作機械2を制御した場合のシミュレーション結果を示すプロセス情報に基づいてさらに第3のパラメータセットを生成してもよい。この場合、加工対象物Wの切り取り厚さの振動成分の振幅または位相を評価値として機械学習手法を用いて、加工対象物Wの切り取り厚さの振動を低減することが可能なパラメータセットを探索する手法を採用することができる。
図18は、図16に示す数値制御装置3aに関する学習装置50の構成の一例を示す図である。学習装置50は、例えば、図16に示す数値制御装置3aが備えてもよいし、数値制御装置3aと異なる情報処理装置であってもよい。学習装置50は、学習用データ取得部51とモデル生成部52とを有する。
学習用データ取得部51は、制御特性設定部32aが生成したパラメータセットと、パラメータセットに対応するプロセス情報、つまり、パラメータセットが示す制御特性パラメータの値を用いて工作機械2を制御した場合のシミュレーション結果を示すプロセス情報とを学習用データとして取得する。学習用データ取得部51は、取得した学習用データをモデル生成部52に出力することができる。なお、学習用データ取得部51は、プロセス情報の全てを取得してもよいし、プロセス情報の一部を取得してもよい。例えば、学習用データ取得部51は、プロセス情報のうち、加工誤差の大きさを示すパラメータを学習用データとして取得することができる。例えば学習用データ取得部51は、加工対象物Wの切り取り厚さ、或いは、加工対象物Wの切り取り厚さの振動成分の振幅または位相を学習用データとして取得することができる。
モデル生成部52は、パラメータセットと、パラメータセットを用いて工作機械2を制御した場合のシミュレーション結果を示すプロセス情報とを含む学習用データに基づいて、新たなパラメータセットを学習する。すなわち、モデル生成部52は、数値制御装置3aのプロセス情報から新たなパラメータセットを推論するための学習済モデルを生成する。モデル生成部52は、生成した学習済モデルを学習済モデル記憶部53に出力する。
モデル生成部52が用いる学習アルゴリズムは教師あり学習、教師なし学習、強化学習(Reinforcement Learning)等の公知のアルゴリズムを用いることができる。一例として、強化学習を適用した場合について説明する。強化学習では、ある環境内における行動主体であるエージェントが、現在の状態を示す環境のパラメータを観測し、取るべき行動を決定する。エージェントの行動により環境が動的に変化し、エージェントには環境の変化に応じて報酬が与えられる。エージェントはこれを繰り返し、一連の行動を通じて報酬が最も多く得られる行動方針を学習する。強化学習の代表的な手法として、Q学習(Q-Learning)やTD学習(TD-Learning)が知られている。例えば、Q学習の場合、行動価値関数Q(s,a)の一般的な更新式は以下に示す数式(4)で表される。
数式(4)において、stは時刻tにおける環境の状態を表し、atは時刻tにおける行動を表す。行動atにより、状態はst+1に変わる。rt+1はその状態の変化によってもらえる報酬を表し、γは割引率を表し、αは学習係数を表す。なお、γは0<γ≦1、αは0<α≦1の範囲の値をとる。修正運転指令が行動atとなり、プロセス情報が状態stとなり、学習装置50は、時刻tの状態における最良の行動atを学習する。
数式(4)で表される更新式は、時刻t+1における最もQ値の高い行動aの行動価値Qが、時刻tにおいて実行された行動aの行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻tにおける行動aの行動価値Qを、時刻t+1における最良の行動価値に近づけるように、行動価値関数Q(S,a)を更新する。それにより、ある環境における最良の行動価値Qが、それ以前の環境における行動価値Qに順次伝搬していくようになる。
上記のように、強化学習によって学習済モデルを生成する場合、モデル生成部52は、報酬計算部54と、関数更新部55とを備えている。
報酬計算部54は、パラメータセットと、プロセス情報とに基づいて報酬を計算する。報酬計算部54は、報酬増大基準D1および報酬減少基準D2を含む報酬基準Dに基づいて、報酬rを計算する。例えば、報酬基準Dは、プロセス情報が示す、加工誤差の大きさに基づいて定められる。加工誤差の大きさを示すパラメータとしては、例えば、加工対象物Wの切り取り厚さの振動成分の振幅が用いられる。例えば、報酬増大基準D1は、加工対象物Wの切り取り厚さの振動成分の振幅が閾値未満であることとし、報酬減少基準D2は、加工対象物Wの切り取り厚さの振動成分の振幅が閾値以上であることとすることができる。報酬計算部54は、報酬増大基準D1を満たす場合、例えば「+1」の報酬を与えることで、報酬rを増大させ、報酬減少基準D2を満たす場合、例えば「-1」の報酬を与えることで、報酬rを減少させる。報酬計算部54は、計算した報酬rを関数更新部55に出力する。また、別の例として、加工誤差の大きさを示すパラメータとしては、切りくず厚さの振動成分の振幅の他に、加工対象物Wの切り取り厚さの振動成分の位相を用いることもできる。ここで切り取り厚さの振動成分の位相とは、工具23の刃先が加工対象物Wを切り取り始める瞬間に切りくず形状に重畳する振動の位相である。この場合、報酬増大基準D1は加工対象物Wの切り取り厚さの振動成分の位相が予め定められた範囲内の値であることとし、報酬減少基準D2は加工対象物Wの切り取り厚さの振動成分の位相が上記の範囲外の値であることとすることができる。
関数更新部55は、報酬計算部54によって計算される報酬rに従って、パラメータセットを決定するための関数を更新し、学習済モデル記憶部53に出力する。例えばQ学習の場合、数式(4)で表される行動価値関数Q(st,at)を、修正運転指令を算出するための関数として用いる。
以上のような学習を繰り返し実行する。学習済モデル記憶部53は、関数更新部55によって更新された行動価値関数Q(st,at)、すなわち、学習済モデルを記憶する。
次に、図19を用いて、学習装置50が学習する処理について説明する。図19は、図18に示す学習装置50の学習処理を説明するためのフローチャートである。
学習用データ取得部51は、制御特性設定部32aが生成したパラメータセットと、パラメータセットに対応するプロセス情報とを学習用データとして取得する(ステップS301)。
モデル生成部52は、学習用データ取得部51が取得した学習用データに含まれるパラメータセットと、プロセス情報とに基づいて、報酬rを計算する(ステップS302)。具体的には、報酬計算部54は、パラメータセットおよびプロセス情報を取得し、予め定められた報酬基準Dに基づいて報酬rを増大させるかまたは報酬rを減少させるかを判断する(ステップS303)。
報酬計算部54は、報酬rを増大させると判断した場合(ステップS303:増大)、報酬rを増大させる(ステップS304)。報酬計算部54は、報酬rを減少させると判断した場合(ステップS303:減少)、報酬rを減少させる(ステップS305)。
関数更新部55は、報酬計算部54によって計算された報酬rに基づいて、学習済モデル記憶部53が記憶する行動価値関数Q(st,at)を更新する(ステップS306)。
学習装置50は、以上のステップS301からステップS306までの処理を繰り返し実行し、生成された行動価値関数Q(st,at)を学習済モデルとして記憶する。
なお、図18では学習済モデル記憶部53は、学習装置50の外部に備わることとしたが、学習装置50が学習済モデル記憶部53を内部に備えていてもよい。なお、学習装置50が数値制御装置3aに備わっている場合、学習済モデル記憶部53は、記憶部33aと同一の記憶装置に備わっていてもよいし、別の記憶装置に備わっていてもよい。
図20は、図16に示す数値制御装置3aに関する推論装置60の構成の一例を示す図である。推論装置60は、データ取得部61と、推論部62とを有する。推論装置60は、数値制御装置3aに備わっていてもよいし、数値制御装置3aと異なる情報処理装置であってもよい。推論装置60は、例えば数値制御装置3aの指令生成部31に備わる。
データ取得部61は、連成シミュレーション部34aが出力するプロセス情報を取得する。データ取得部61は、取得したデータを推論部62に出力する。
推論部62は、学習済モデル記憶部53に記憶された学習済モデルを利用して、データ取得部61が取得したプロセス情報から新たなパラメータセットを推論する。すなわち、推論部62は、学習済モデルにデータ取得部61が出力するプロセス情報を入力することで、プロセス情報に適したパラメータセットを推論することができる。
なお、上記では、推論装置60は、数値制御装置3aから取得したデータを用いて機械学習を行った結果の学習済モデルを用いて修正運転指令を出力することとしたが、他の数値制御装置3aから学習済モデルを取得して、この学習済モデルに基づいて新たなパラメータセットを出力するようにしてもよい。
図21は、図20に示す推論装置60の動作を説明するためのフローチャートである。推論装置60のデータ取得部61は、プロセス情報を推論用のデータとして取得し(ステップS401)、取得したデータを推論部62に出力する。
推論部62は、学習済モデル記憶部53に記憶された学習済モデルに、ステップS401で取得された推論用のデータであるプロセス情報を入力する(ステップS402)。推論部62は、学習済モデルにプロセス情報を入力した結果であるパラメータセットを出力する(ステップS403)。なお、数値制御装置3aの指令生成部31は、推論部62が出力するパラメータセットを取得して、取得したパラメータセットを、連成シミュレーション部34aに出力する。
なお、上記では、推論部62は学習アルゴリズムとして強化学習を用いることとしたが、推論部62が用いる学習アルゴリズムは強化学習に限られない。推論部62は、強化学習以外にも、教師あり学習、教師なし学習、または半教師あり学習等を学習アルゴリズムとして使用することもできる。
また、モデル生成部52が用いる学習アルゴリズムとしては、特徴量そのものの抽出を学習する、深層学習(Deep Learning)を用いることもでき、他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能推理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
なお、学習装置50および推論装置60のそれぞれは、例えば、ネットワークを介して数値制御装置3aに接続され、この数値制御装置3aとは別個の装置であってもよい。また、学習装置50および推論装置60のそれぞれは、数値制御装置3aに内蔵されていてもよい。さらに、学習装置50および推論装置60のそれぞれは、クラウドサーバ上に存在していてもよい。
また、モデル生成部52は、複数の数値制御装置3aから取得される学習用データを用いて、パラメータセットを学習するようにしてもよい。なお、モデル生成部52は、同一のエリアで使用される複数の数値制御装置3aから学習用データを取得してもよいし、異なるエリアで独立して動作する複数の数値制御装置3aから収集される学習用データを利用してパラメータセットを学習してもよい。また、学習用データを収集する数値制御装置3aを途中で対象に追加したり、対象から除外することも可能である。さらに、ある数値制御装置3aに関してパラメータセットを学習した学習装置50を、これとは別の数値制御装置3aに適用し、当該別の数値制御装置3aに関してパラメータセットを再学習して更新するようにしてもよい。
以上説明したように、実施の形態2にかかる数値制御装置3aは、第1のパラメータセットと、プロセス情報を用いて第1のパラメータセットを修正した第2のパラメータセットとを生成し、それぞれのパラメータセットの評価結果に基づいて工作機械2の制御に用いるパラメータセットが選択される。制御特性設定部32aは、連成シミュレーション部34aで実行したシミュレーション結果に基づいて新たにパラメータセットを生成するため、駆動系20と機械ダイナミクスと加工プロセスMの特性に基づいたパラメータセットを生成することができる。したがって、数値制御装置3aは、効率的に加工誤差を低減することが可能になる。
また、数値制御装置3aは、修正後のパラメータセットのシミュレーション結果からさらに別のパラメータセットを生成してもよい。この場合、修正を繰り返すたびに、加工誤差をより小さくすることが可能なパラメータセットを生成することができる。パラメータセットの修正を繰り返す場合、学習装置50を用いて、機械学習により修正後のパラメータセットを学習することができる。数値制御装置3aは、学習装置50の学習結果である学習済モデルを用いてパラメータセットを推論する推論装置60が出力するパラメータセットを利用することができる。機械学習を用いることで、数値制御装置3aは、探索的にパラメータセットを生成することができるため、加工システム1aは、事前にパラメータセットを修正する規則を準備することなく、加工誤差を低減することができるパラメータセットを生成することが可能になる。
実施の形態3.
図22は、実施の形態3にかかる加工システム1bの構成を示す図である。なお、実施の形態1と同様の機能を有する構成要素は実施の形態1と同一の符号を付して重複する説明を省略する。以下、実施の形態1,2と異なる部分について主に説明する。
加工システム1bは、工作機械2bと、数値制御装置3bとを有する。工作機械2bは、主軸駆動系21と、送り駆動系22と、工具23と、テーブル24と、センサ25とを有する。
センサ25は、工作機械2bの動作中に振動を生じる構造物の振動を検知する。センサ25は、例えば、加速度センサ、力センサである。或いは、センサ25は、駆動系20のフィードバック制御のために予め駆動系20の内部に備わっているエンコーダであってもよい。センサ25は、数値制御装置3bに接続されており、センサ25が取得した信号であるセンサ信号は、数値制御装置3bに出力される。
数値制御装置3bは、指令生成部31と、制御特性設定部32bと、記憶部33と、連成シミュレーション部34と、プロセス評価部35と、駆動制御部36とを有する。数値制御装置3bは、センサ25の出力するセンサ信号に基づいてパラメータセットを生成する点が実施の形態1,2と異なる。
制御特性設定部32bは、実施の形態1にかかる制御特性設定部32と同様の方法で、第1のパラメータセットを生成することができる。また、制御特性設定部32bは、センサ25が出力するセンサ信号に基づいて、第1のパラメータセットを修正して新たなパラメータセットである第2のパラメータセットを生成することができる。具体的には、制御特性設定部32bは、センサ信号の振幅と、制御特性パラメータの値との対応表を予め内部に記憶しておき、その対応表に基づいて、センサ信号からパラメータセットを生成することができる。或いは、制御特性設定部32bは、センサ信号が入力されたときに、パターンマッチングなどの機械学習手法を用いて、制御特性パラメータの値を決定してもよい。
数値制御装置3bの動作は、パラメータセットを修正する際にセンサ信号を用いる点以外は図17に示した数値制御装置3aの動作と同様であるため、ここでは詳細な説明を省略する。
なお、上記では、制御特性設定部32bは、センサ信号を用いて第1のパラメータセットを修正することで第2のパラメータセットを生成することとしたが、パラメータセットの修正は逐次的に行うこととしてもよい。すなわち、制御特性設定部32bは、センサ信号を用いて生成したパラメータセットを用いて工作機械2bを制御したときに検出したセンサ信号を用いて、さらにパラメータセットを修正してもよい。この場合、センサ信号の振動成分の振幅または位相を評価値として強化学習などの機械学習手法を用いて、センサ信号の振動を低減するパラメータセットを探索する手法を用いることができる。
機械学習を用いる場合、例えば、図18に示した学習装置50を用いて学習済モデルを取得し、図20に示す推論装置60を用いて、学習済モデルからパラメータセットを得ることができる。この場合、上記の実施の形態2で行った説明のうち、学習用データ取得部51およびデータ取得部61が取得する「プロセス情報」を「センサ信号」と読み替えることにより、実施の形態3にかかる数値制御装置3bが用いるパラメータセットを生成する方法の説明を省略する。この場合、学習用データ取得部51が取得するパラメータセットは、センサ信号に対応するパラメータセット、具体的には、センサ信号を取得したときに工作機械2bの制御に用いられているパラメータセットとなる。
以上説明したように、実施の形態3にかかる数値制御装置3bは、工作機械2bがセンサ25を備え、数値制御装置3bの制御特性設定部32bは、センサ信号に基づいてパラメータセットを修正することができる。このため、制御特性設定部32bは、工作機械2bにおいて実際に発生する振動の状態に応じてパラメータセットを修正することが可能であり、効率的に加工誤差を低減するパラメータセットを生成することができる。
また、機械学習を用いて探索的にパラメータセットを生成することで、加工システム1bは、事前にパラメータセットの修正則を準備することなく、加工誤差を低減するパラメータセットを生成することが可能になる。
続いて、実施の形態1~3にかかる数値制御装置3,3a,3b、学習装置50、および、推論装置60のハードウェア構成について説明する。数値制御装置3,3a,3bの指令生成部31、制御特性設定部32,32a,32b、連成シミュレーション部34,34a、プロセス評価部35、および、駆動制御部36と、学習装置50の学習用データ取得部51およびモデル生成部52と、推論装置60のデータ取得部61および推論部62とは、処理回路により実現される。これらの処理回路は、専用のハードウェアにより実現されてもよいし、CPU(Central Processing Unit)を用いた制御回路であってもよい。
上記の処理回路が、専用のハードウェアにより実現される場合、これらは、図23に示す処理回路90により実現される。図23は、実施の形態1~3にかかる数値制御装置3,3a,3b、学習装置50、および、推論装置60の機能を実現するための専用のハードウェアを示す図である。処理回路90は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものである。
上記の処理回路が、CPUを用いた制御回路で実現される場合、この制御回路は例えば図24に示す構成の制御回路91である。図24は、実施の形態1~3にかかる数値制御装置3,3a,3b、学習装置50、および、推論装置60の機能を実現するための制御回路91の構成を示す図である。図24に示すように、制御回路91は、プロセッサ92と、メモリ93とを備える。プロセッサ92は、CPUであり、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)などとも呼ばれる。メモリ93は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disk)などである。
上記の処理回路が制御回路91により実現される場合、プロセッサ92がメモリ93に記憶された、各構成要素の処理に対応するプログラムを読み出して実行することにより実現される。また、メモリ93は、プロセッサ92が実行する各処理における一時メモリとしても使用される。
なお、プロセッサ92が実行するプログラムは、記憶媒体に記憶されて提供されてもよいし、通信路を介して提供されてもよい。また、実施の形態1~3にかかる数値制御装置3,3a,3b、学習装置50、および、推論装置60の機能は、図23に示す処理回路90または図24に示す制御回路91のいずれか一方を用いて実現されてもよいし、処理回路90と制御回路91とが組み合わせて用いられてもよい。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。