【文献】
日野 順市,花岡 寛,芳村 敏夫,高速エンドミル加工時のびびり振動発生予測に関する研究(切削条件と切削音を入力とするファジィニューラルネットワークモデル),日本機械学会論文集 C編,日本,2003年,69巻 683号,pages.181-186
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0010】
以下に、本開示の実施の形態にかかる数値制御装置、びびり振動の発生判定方法、および学習装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの開示の技術的範囲が限定されるものではない。
【0011】
実施の形態1.
図1は、実施の形態1にかかる数値制御装置1の機能構成を示す図である。数値制御装置1は、工作機械100に運転指令208を与えることによって、工作機械100を数値制御する。
【0012】
工作機械100は、運転指令208により駆動するモータを備えた主軸101および送り軸102を有する。本実施の形態では、主軸101には加工対象物が設置され、送り軸102には工具が設置される。また、工作機械100は、主軸101と送り軸102の位置、速度、およびモータ電流を少なくとも含む動作情報209を数値制御装置1に出力する。なお、本実施の形態では、工具の刃数は1枚とする。
【0013】
工作機械100には、センサ103が取り付けられている。センサ103は、工具または加工対象物の振動を検出したセンサ信号200を数値制御装置1に出力する。センサ103は、工作機械100の主軸101または送り軸102の構造物に取り付けられる。センサ103を取り付ける位置は、工具または加工対象物の振動を検出可能な位置であればよく、工具と加工対象物とが接触する点の近傍であることが好ましい。センサ103の種類は、工具または加工対象物の振動を検出することができるセンサであればよく、センサ103は、例えば、変位センサ、速度センサ、加速度センサ、角速度センサなどである。また、センサ103は、切削反力を検出する力センサ、加工中の切削音を検出するマイクロフォンであってもよい。或いは、センサ103の代わりに動作情報に含まれる主軸101および送り軸102の位置と速度とモータ電流とのうち、少なくとも1つ以上を用いて、加工中に生じる工具または加工対象物の振動を検出し、検出した振動を示す情報をセンサ信号200として出力してもよい。
【0014】
数値制御装置1は、フィルタ処理部10と、センサ信号処理部11と、位相差演算部12と、振動判定部13と、指令値補正部14と、駆動指令部15と、タイミング信号生成部16とを有する。
【0015】
駆動指令部15は、工作機械100から動作情報209を受け取り、動作情報209に基づいて工作機械100に運転指令208を出力し、タイミング信号生成部16へ主軸運転指令206を出力する。また、駆動指令部15は、後述の指令値補正部14が出力する補正信号205に基づいて運転指令208を補正する。運転指令208は、工作機械100の主軸101の角度指令、および速度指令の少なくともいずれかと、送り軸102の位置指令および速度指令の少なくともいずれかとを含む。また、主軸運転指令206は、主軸101の角度指令および速度指令の少なくともいずれかを含む。
【0016】
フィルタ処理部10は、工作機械100が出力するセンサ信号200をフィルタリングしてびびり振動成分信号201を生成し、生成したびびり振動成分信号201をセンサ信号処理部11に出力する。フィルタ処理部10は、センサ信号200から切削成分を除去する。
【0017】
図2は、
図1に示すフィルタ処理部10のフィルタ特性を説明するための図である。
図2の横軸は周波数を示し、縦軸は振幅を示す。
図2は、周波数領域において、びびり振動成分と、切削成分と、フィルタの通過帯域とを示している。切削成分は、主に、主軸回転数に工具の刃数を乗じた周波数の振動成分、および、その高調波成分である。フィルタ処理部10は、各切削成分を含む帯域を、予め定められた帯域幅で除去する。例えば、予め定められた帯域幅は、切削成分付近の数Hz程度とすることができる。フィルタ処理部10は、公知のバンドパスフィルタ、ノッチフィルタ、複数のバンドパスフィルタの組合せ、複数のノッチフィルタの組合せ、櫛形フィルタなどを用いて設計することができる。
図2に示す通過帯域のフィルタを用いることで、フィルタ処理部10は、センサ信号200から切削成分を除去してびびり振動成分信号201を生成することができる。
【0018】
図1の説明に戻る。センサ信号処理部11は、センサ信号200に基づいて、複数の種類の状態量を生成し、生成した複数の種類の状態量を示す状態量信号202を位相差演算部12に出力する。具体的には、センサ信号処理部11は、フィルタ処理部10が出力するびびり振動成分信号201に基づいて、状態量信号202を生成する。状態量信号202は、第1の状態量および第2の状態量を含む。例えば、第1の状態量は、びびり振動成分信号201であり、第2の状態量は、びびり振動成分信号201を1回時間微分することにより得られる状態量である。センサ信号処理部11は、びびり振動成分信号201およびびびり振動成分信号201を1回時間微分した信号を同時に時系列信号として状態量信号202とする。
【0019】
なお、第1の状態量および第2の状態量の時間微分の回数の差は、奇数であればどのような組合せであってもよい。例えば、第1の状態量がびびり振動成分信号201をP回時間微分することにより得られる状態量であり、第2の状態量がQ回時間微分することにより得られる状態量であるとする。ここでPおよびQは整数とする。この場合、PとQの差分が奇数であればよい。さらに、第1の状態量と第2の状態量の次元は、びびり振動成分信号201を時間積分して得られる次元であってもよい。具体例として、第1の状態量を加速度とし、第2の状態量を速度としてもよい。或いは、第1の状態量を加速度の微分値であるジャークとし、第2の状態量を位置としてもよい。センサ信号処理部11は、例えば、センサ信号200と、センサ信号200を時間微分することにより得られる状態量と、センサ信号を時間積分することにより得られる状態量とのうち2種類以上の状態量を生成することができる。
【0020】
タイミング信号生成部16は、駆動指令部15が出力する主軸運転指令206に基づき、主軸101の角度指令が予め定められた角度を通過したと判定すると、位相差演算部12へタイミング信号207を出力する。タイミング信号207の生成方法の詳細を説明する。
【0021】
図3は、
図1に示すタイミング信号生成部16が出力するタイミング信号207と主軸101の角度指令との関係を示す図である。主軸101の角度指令は、駆動指令部15が出力する主軸運転指令206に含まれる。
図3において角度指令は、0度から360度の値をとり、360度に達すると0度に戻る信号である。タイミング信号生成部16は、主軸101の角度指令が所定の角度ψ1を通過する度にタイミング信号207を出力する。これにより、タイミング信号207は、工作機械100の主軸101の回転と同期したタイミングで周期的に出力されることになる。角度ψ1は主軸101が1回転する間に1箇所定められていれば、任意の角度であってよく、例えば主軸101のオリエンテーション時の主軸101の角度ψ1とすることができる。主軸オリエンテーションとは、主軸101を停止させる基準角度である。
【0022】
或いは、タイミング信号生成部16は、主軸運転指令206に含まれる主軸101の速度指令を用いて、タイミング信号207を生成することもできる。この場合、タイミング信号生成部16は、初期時刻t0を基準時刻として、主軸101の速度指令S(rpm)から以下に示す数式(1)を用いて算出される時間T1ごとにタイミング信号207を出力する。また、タイミング信号生成部16は、主軸101の角度指令および速度指令を合わせて使用してもよい。なお、ここではタイミング信号生成部16は、主軸101の運転指令を用いて、タイミング信号207を生成することとしたが、主軸101の運転指令に代えて、あるいは、主軸101の運転指令に加えて、送り軸102の運転指令を用いて、タイミング信号207を生成してもよい。
【0024】
位相差演算部12は、タイミング信号生成部16が出力するタイミング信号207と、センサ信号処理部11が出力する状態量信号202とを受け付ける。位相差演算部12は、タイミング信号207および状態量信号202に基づいて、状態空間内において複数の種類の状態量を示す無次元量を、タイミング信号207毎に生成し、無次元量の位相間の差分を示す位相差情報203を演算する。位相差演算部12は、生成した位相差情報203を振動判定部13に出力する。
【0025】
位相差演算部12は、状態量信号202に含まれる複数の状態量のそれぞれを正規化する。位相差演算部12は、予め定められたそれぞれの状態量の最大値で、各状態量を除することでそれぞれの状態量を正規化する。ここで用いる最大値は、事前の加工実験で得られた各状態量の最大値としてもよいし、事前のシミュレーションで求められた各状態量の最大値としてもよい。
【0026】
位相差演算部12が時刻t1および時刻t2でタイミング信号207を受け取ったとする。このときt2はt1よりも大きい値とする。位相差演算部12は、時刻t1における状態量信号202を正規化し、正規化後の値を第1の無次元量N1とする。位相差演算部12は、時刻t2において、時刻t1と同様に状態量信号202を正規化し、正規化後の値を第2の無次元量N2とする。
【0027】
図4は、
図1に示す位相差演算部12が算出する無次元量を示す図である。
図4は、位相差演算部12が算出する第1の無次元量N1と、第2の無次元量N2とを、状態量信号202の第1の状態量の次元と、第2の状態量の次元とからなる状態空間内で表している。位相差演算部12は、前回の無次元量である第1の無次元量N1と、状態空間の原点と、今回の無次元量である第2の無次元量N2とがなす角度θを、第1の無次元量N1と第2の無次元量N2との位相差として演算する。位相差演算部12は、タイミング信号207毎に上記の演算を行い、最新の無次元量と、前回の無次元量との位相差を演算する。位相差演算部12は、演算した位相差を示す位相差情報203を振動判定部13に出力する。
【0028】
図5は、びびり振動が発生している場合に
図1に示す位相差演算部12が演算する位相差の推移の一例を示す図である。無次元量N10〜N13は、タイミング信号207を受け取った各時刻t10〜t13で算出された無次元量である。このとき、t13>t12>t11>t10とする。また、角度θ10は、無次元量N10と状態空間の原点と無次元量N11とがなす角度を示し、角度θ11は、無次元量N11と状態空間の原点と無次元量N12とがなす角度を示し、角度θ12は、無次元量N12と状態空間の原点と無次元量N13とがなす角度を示す。
【0029】
びびり振動が発生している場合、状態空間内の無次元量N10〜N13の軌跡は円状となり、各無次元量の間の角度は一定となる。したがって、タイミング信号207を受け取った各時刻における角度θは一定となる。
【0030】
図6は、びびり振動が発生していない場合に
図1に示す位相差演算部12が演算する位相差の推移の一例を示す図である。無次元量N20〜N23は、タイミング信号207を受け取った各時刻t20〜t23で算出された無次元量である。このとき、t23>t22>t21>t20とする。また、角度θ20は、無次元量N20と状態空間の原点と無次元量N21とがなす角度を示し、角度θ21は、無次元量N21と状態空間の原点と無次元量N22とがなす角度を示し、角度θ22は、無次元量N22と状態空間の原点と無次元量N23とがなす角度を示す。
【0031】
びびり振動が発生していない場合、状態空間内の無次元量N20〜N23の軌跡と
各無次元量の間の角度は不規則になる。したがって、タイミング信号207を受け取った各時刻における角度θは一定とならない。
【0032】
このため、位相差演算部12は、びびり振動が発生している場合には一定値の角度θすなわち位相差を算出し、びびり振動が発生していない場合には不規則な値の角度θすなわち位相差を算出することになる。
【0033】
ここで、びびり振動の有無による角度θの差異を確認するための実験結果について説明する。本実験では、一般的なCNC(Computer Numerical Control)旋盤のチャックに、炭素鋼鋼材であるS45Cの丸棒を設置し、丸棒の外周を旋削により加工した。なお、工具は超硬工具を用い、工具に加速度センサを設置することで加工中の加速度を計測した。
【0034】
びびり振動が発生したときの加工条件は、主軸回転数2000(RPM)、1刃あたり送り0.1(mm)、径方向切込み1.0(mm)、チャックからのワーク突き出し量200(mm)である。
【0035】
図7は、びびり振動が発生した場合の実験結果であり、加工中に生じた加速度の波形を示す図である。
図8は、
図7に示す実験結果から求めた無次元量の位相差を示す図である。本実験では、フィルタ処理部10、センサ信号処理部11、タイミング信号生成部16および位相差演算部12は、加速度センサの出力する加速度データをセンサ信号200として処理することにより、
図8に示す無次元量および角度θが算出された。
【0036】
まず、フィルタ処理部10は、主軸回転数に基づいて、2000/60=33.3(Hz)と、その高調波から成る切削成分を加速度データから除去した。次に、センサ信号処理部11は、第1の状態量を加速度、第2の状態量を速度とする状態量信号202を演算して出力した。なお、第2の状態量である速度は、加速度を積分することによって得た。
【0037】
タイミング信号生成部16は、主軸101の角度指令が主軸オリエンテーション時の主軸角度を通過するたびにタイミング信号207を出力した。位相差演算部12は、状態量信号202を正規化し、各タイミング信号207を受け取った各時刻t101〜t106における無次元量N101〜N106を算出した。ここで、t106>t105>t104>t103>t102>t101である。
【0038】
図8には、状態空間内における無次元量N101〜N106が示されている。角度θ101は、無次元量N101と状態空間の原点と無次元量N102とがなす角度を示し、角度θ102は、無次元量N102と状態空間の原点と無次元量N103とがなす角度を示し、角度θ103は、無次元量N103と状態空間の原点と無次元量N104とがなす角度を示す。角度θ104は、無次元量N104と状態空間の原点と無次元量N105とがなす角度を示し、角度θ105は、無次元量N105と状態空間の原点と無次元量N106とがなす角度を示す。角度θ101〜θ105は一定である。以上の実験結果から、びびり振動が発生している場合、状態空間内の無次元量の軌跡は円状になり、各時刻における角度θ101〜θ105は一定の値をとることが実験的に示された。
【0039】
続いて、びびり振動が発生しないときの加工条件は、主軸回転数2000(RPM)、1刃あたり送り0.1(mm)、径方向切込み1.0(mm)、チャックからのワーク突き出し量100(mm)である。
【0040】
図9は、びびり振動が発生していない場合の実験結果であり、加工中に生じた加速度の波形を示す図である。
図10は、
図9に示す実験結果から求めた無次元量の位相差を示す図である。本実験においても、フィルタ処理部10、センサ信号処理部11、タイミング信号生成部16および位相差演算部12は、加速度センサの出力する加速度データをセンサ信号200として処理することにより、
図10に示す無次元量および角度θが算出された。
【0041】
まず、フィルタ処理部10は、主軸回転数に基づいて、2000/60=33.3(Hz)と、その高調波から成る切削成分を加速度データから除去した。次に、センサ信号処理部11は、第1の状態量を加速度、第2の状態量を速度とする状態量信号202を演算して出力した。なお、第2の状態量である速度は、加速度を積分することによって得た。
【0042】
タイミング信号生成部16は、主軸101の角度指令が主軸オリエンテーション時の主軸角度を通過するたびにタイミング信号207を出力した。位相差演算部12は、状態量信号202を正規化し、各タイミング信号207を受け取った各時刻t201〜t206における無次元量N201〜N206を算出した。ここで、t206>t205>t204>t203>t202>t201である。
【0043】
図10には、状態空間内における無次元量N201〜N206が示されている。角度θ201は、無次元量N201と状態空間の原点と無次元量N202とがなす角度を示し、角度θ202は、無次元量N202と状態空間の原点と無次元量N203とがなす角度を示し、角度θ203は、無次元量N203と状態空間の原点と無次元量N204とがなす角度を示す。角度θ204は、無次元量N204と状態空間の原点と無次元量N205とがなす角度を示し、角度θ205は、無次元量N205と状態空間の原点と無次元量N206とがなす角度を示す。以上の実験結果から、びびり振動が発生していない場合、状態空間内の無次元量の軌跡は不規則であり、各時刻における角度θ201〜θ205は不定の値をとることが実験的に示された。
【0044】
図1の説明に戻る。振動判定部13は、位相差演算部12から位相差である角度θを受け取り、以下に示す手順を用いてびびり振動の判定を行う。振動判定部13は、位相差演算部12が算出した位相差情報203に基づいて、びびり振動の発生有無を判定する。びびり振動が発生していると判定した場合、振動判定部13は、振動判定情報204を指令値補正部14へ出力する。振動判定部13の詳細について説明する。
【0045】
振動判定部13は、位相差演算部12が出力した位相差情報203を記録する。この記録は、位相差情報203を受け取るたびに繰り返し行われ、位相差情報203に含まれる角度θを時系列データとして記録する。
【0046】
また振動判定部13は、記録された角度θの差分を計算し、角度θの差分が予め定められた閾値を下回る場合、びびり振動が発生していると判定し、振動判定情報204を指令値補正部14に出力する。ここで振動判定部13が使用する閾値について説明する。なお、ここでは位相差演算部12から角度θが±180度の範囲で出力されることとする。びびり振動が発生していない場合、角度θは±180度の範囲で不定の値をとるため角度θの差分は、±360度の値をとる。また、びびり振動が発生している場合、角度θは一定の値をとるため、角度θの差分はゼロとなる。ただし、実際の角度θには測定誤差などに由来する誤差が含まれる。このため、閾値を、角度θの誤差よりも十分に大きい値とすれば、びびり振動の有無を判定することができる。例えば、角度θの誤差が±10度ある場合、閾値は20度よりも大きい値、例えば30度とすればよい。
【0047】
或いは、振動判定部13は、繰返し受信する複数の位相差情報203に含まれる角度θの標準偏差を算出し、角度θの標準偏差が予め定められた閾値を下回る場合、びびり振動が発生していると判定する。
図11は、
図1に示す振動判定部13の処理の第1の例について説明するための図である。振動判定部13は、時刻t3から時刻t4の間に取得された角度θを用いて標準偏差を算出し、びびり振動の有無を判定する。
図11に示す第1の例では、角度θの標準偏差は、標準偏差の閾値を上回っている。このため、振動判定部13は、びびり振動が発生していないと判定することができる。また、
図12は、
図1に示す振動判定部13の処理の第2の例について説明するための図である。
図12に示す第2の例では、角度θの標準偏差は、標準偏差の閾値を下回っている。このため、振動判定部13は、びびり振動が発生していると判定することができる。
【0048】
標準偏差の閾値の定め方について説明する。びびり振動が発生する場合、角度θは一定の値をとるため、角度θの差分はゼロとなる。ただし、実際の角度θには、測定誤差などに由来する誤差が存在する。したがって、閾値に、角度θに含まれる誤差よりも十分に大きい値を設定することで、びびり振動の有無を判定することができる。例えば、角度θの誤差が±10度である場合、標準偏差の閾値は10度よりも大きい値、例えば20度とすることができる。
【0049】
また、別の例として、振動判定部13は、繰返し受信する複数の位相差情報203に含まれる角度θの標準偏差に代わって、角度θの分散を用いてびびり振動の有無を判定することができる。この場合も標準偏差の場合と同様の方法で分散の閾値を定めることができる。
【0050】
さらに別の例として、振動判定部13は、角度θの最大値と最小値の差を用いて、びびり振動の判定を行ってもよい。この場合、振動判定部13は、予め定められた長さの期間中に受信した角度θの最大値および最小値の差を算出し、算出した最大値および最小値の差が、予め定められた閾値よりも小さい場合、びびり振動が発生していると判定することができる。
【0051】
さらに別の例として、振動判定部13は、びびり振動の有無を判定するように予め機械学習が行われた推論モデルを用いて、びびり振動の判定を行ってもよい。
図22は、
図1に示す振動判定部13の処理の第3の例を実現するための構成例を示す図である。第3の例において、振動判定部13は、情報観測部301と推論部302とを有する。情報観測部301は、予め定められたサンプリング数分の、位相差情報203に含まれる角度θを時系列データとして観測し、推論用データセット303を生成する。推論部302は、びびり振動の有無を出力するように予め機械学習を行った推論モデルに、情報観測部301が生成する推論用データセット303を入力することで、びびり振動の有無を示す振動判定情報204を出力する。
【0052】
推論部302は、どのようなアルゴリズムの推論モデルを用いてもよい。一例として、ニューラルネットワークを用いた推論モデルについて説明する。
図23は、ニューラルネットワークを用いた推論モデルの構成例を示す図である。
図23に示す例において、ニューラルネットワークは、n個のニューロンを有する入力層x1,x2,・・・,xnと、m個のニューロンを有する中間層y1,y2,・・・,ymと、1個のニューロンを有する出力層z1とから構成される。なお、
図23では、中間層が1層である例を示したが、2層以上の中間層を設けてもよい。
【0053】
入力層x1,x2,・・・,xnは、中間層y1,y2,・・・,ymと接続されており、中間層y1,y2,・・・,ymは、出力層z1と接続されている。なお、
図23に示す入力層と中間層との接続は一例であり、各入力層x1,x2,・・・,xnは、いずれの中間層y1,y2,・・・,ymと接続されてもよい。
【0054】
図23に示すような3層のニューラルネットワークであれば、複数の入力が入力層x1,x2,・・・,xnに入力されると、その値に重みA1〜Aaが掛けられて中間層y1,y2,・・・,ymに入力される。中間層y1,y2,・・・,ymに入力された値は、さらに重みB1〜Bbが掛けられて出力層z1に入力され、出力層z1から出力される。なお、aおよびbのそれぞれは自然数であり、
図23に示す例では、b=mとなる。出力結果は、重みA1〜Aa,B1〜Bbの値によって変わる。
【0055】
図24は、
図22に示す振動判定部13が用いる推論モデルを学習する学習装置400の機能構成を示す図である。学習装置400は、データ取得部401と、学習処理部402とを有する。
【0056】
データ取得部401は、実加工中に取得された位相差情報203と、びびり振動の有無を示すびびり振動有無情報305とを対応づけた学習用データセット304を取得する。びびり振動の有無は、びびり振動が発生したか否かによって異なる数値を用いて表すことができる。例えば、びびり振動が発生した場合「1」、発生しなかった場合「0」といった数値が用いられてよい。なお、学習用データセット304に含まれるびびり振動有無情報305は、例えば、加工後に加工面を評価することによって判定された結果を用いることができる。
【0057】
学習処理部402は、学習用データセット304に含まれる位相差情報203を入力データとして学習を行う。学習処理部402は、推論モデルの出力がびびり振動有無情報3
05の数値と一致するようにいわゆる教師あり学習を行う。学習処理部402は、入力層に位相差情報203を入力して出力層から出力された値が、びびり振動の有無を示す数値に近づくように、重みA1〜Aa,B1〜Bbを調整することで、位相差情報203を入力するとびびり振動の有無に対応する出力値を出力する推論モデルを学習する。
【0058】
学習処理部402は、推論モデルの学習時に用いる教師あり学習手法として誤差逆伝搬法を用いることができる。また、学習処理部402は、推論モデルの汎化性能を向上させるために、学習の際にニューロンをランダムに除外する「dropout」、誤差を監視して学習を早く打ち切る「early stopping」といった手法を用いてもよい。学習処理部402は、学習が完了した推論モデルを学習済み推論モデルとして出力する。学習処理部402が出力する学習済み推論モデルは、
図22に示す推論部302において用いることができる。
【0059】
なお、上記では、推論モデルにニューラルネットワークを用いる場合について説明したが、他の公知の方法、例えばRNN(Recurrent Neural Network)、LSTM(Long Short−Term Memory)、SVM(Support Vector Machine)などを用いて推論モデルを構成してもよい。
【0060】
指令値補正部14は、振動判定部13から振動判定情報204を受け取った場合、駆動指令部15へ運転指令208の変更を指示する補正信号205を出力する。補正信号205は、現在の主軸速度に対応して予め定められた所定の割合だけ、主軸101の速度指令を変更する信号である。
【0061】
あるいは、補正信号205は、主軸101の回転数が予め有限要素解析で算出した機械構造の共振周波数の整数分の1と一致するように、主軸101の回転数を変更する信号であってもよい。なお、機械構造の共振周波数は、有限要素解析でなく事前実験により同定した値を用いてもよい。
【0062】
さらに補正信号205は、送り軸102の速度指令
値を所定の割合だけ変更する信号であってもよい。具体的には補正信号205は、送り軸102のモータ電流が予め定められた基準値よりも小さくなるように、送り軸102の速度指令値を減少する信号とすることができる。
【0063】
以上説明したように、実施の形態1によれば、工作機械100に取り付けられる工具または加工対象物の振動を検出したセンサ信号200に基づいて、複数の種類の状態量の時系列データが生成される。そして、状態空間内において、複数の種類の状態量を示す無次元量がタイミング信号207ごとに生成され、無次元量の位相間の差分である角度θを示す位相差情報203が演算される。この位相差情報203のばらつきに基づいて、工作機械100におけるびびり振動の発生が判定される。
【0064】
数値制御装置1は、びびり振動の判定にFFTに代表される周波数解析を用いないため、データ取得時間の制約を受けずに、びびり振動の判定に十分な周波数分解能を得ることができる。このため、びびり振動の判定に要する時間、つまり、びびり振動が発生してからびびり振動の発生を判定するまでの時間を短縮することができる。したがって、びびり振動が発生してから、びびり振動を抑制するまでの時間も短縮され、高速にびびり振動を抑制することができる。
【0065】
また、数値制御装置1では、無次元量である位相差情報203に基づいてびびり振動を判定する。従来の方法としては、例えば、びびり振動の振幅に基づいてびびり振動を判定する方法がある。びびり振動の振幅を用いる場合、加工条件に依存して振幅の大きさが異なるため、加工条件に応じて振幅の閾値を設けなければならない。これに対して、無次元量である位相差情報203に基づいてびびり振動を判定する数値制御装置1では、加工条件に依存せずにびびり振動を判定することができ、加工条件に応じて閾値を設ける必要がなくなる。
【0066】
なお、実施の形態1にかかる工作機械100は、主軸101に加工対象物を設置する構成としたが、例えばフライス盤および旋削盤に代表されるように、主軸101に工具を設置する場合であっても同様の効果を奏することができる。
【0067】
また、実施の形態1では、1個のセンサ103を用いる構成としたが、工作機械100の複数箇所にセンサ103を設置してもよい。この場合、設置したすべてのセンサ103に対して、実施の形態1で説明した処理を行い、びびり振動の発生を判定することができる。複数箇所にセンサ103を設置する場合、加工中に複数の箇所でびびり振動が発生しても、びびり振動の判定および抑制を行うことができる。
【0068】
なお、工作機械100に設置するセンサ103は、2種類以上のセンサ103を用いて振動を検出し、2種類以上の状態量を含むセンサ信号200をフィルタ処理部10に出力してもよい。この場合、センサ信号処理部11は、2種類のセンサ出力をそれぞれ第1の状態量および第2の状態量とすることができる。第2の状態量をセンサ103で直接計測することで、微分または積分に伴う量子化誤差の影響を受けずに、びびり振動の判定を行うことができる。
【0069】
なお、実施の形態1では、センサ信号処理部11は、2種類の状態量を抽出しているが、3種類以上の状態量を抽出してもよい。
【0070】
実施の形態2.
実施の形態1では、工具の刃数が1枚の例を説明した。実施の形態2では、工具の刃数が2枚以上の場合にびびり振動の発生を判定するための構成について説明する。
【0071】
図13は、実施の形態2にかかる数値制御装置2の機能構成を示す図である。数値制御装置2は、フィルタ処理部10と、センサ信号処理部11と、位相差演算部12と、振動判定部13と、指令値補正部14と、駆動指令部15と、タイミング信号生成部16−1と、工具情報記録部17とを有する。
【0072】
数値制御装置2は、実施の形態1にかかる数値制御装置1の構成に加えて、工具情報210を出力する工具情報記録部17を有し、数値制御装置1のタイミング信号生成部16に代えて、タイミング信号生成部16−1を有する。以下、数値制御装置1と異なる部分について主に説明する。
【0073】
工具情報記録部17は、工作機械100に設置された工具に関する情報である工具情報210を記録し、記録している工具情報210をタイミング信号生成部16−1に出力する。工具情報210は、少なくとも工具の刃数を示す情報を含む。さらに、工具情報210は、エンドミル、バイトなどの工具の種類、工具長、工具径などの工具形状を示す情報を含んでもよい。なお、工作機械100に1つの旋削工具が取り付けられている場合、工具情報記録部17は、工具の刃数は1枚であることを示す工具情報210を出力する。また、工作機械100に旋削工具が取り付けられている場合であっても、複数の工具が同時に切削する場合、刃数は工具の数と同数になる。例えば工作機械100が下刃物台と上刃物台とを有し、両方の刃物台に1枚ずつ取り付けられた旋削工具で加工を行う場合、工具情報記録部17は、刃数が2枚であることを示す工具情報210を出力する。
【0074】
タイミング信号生成部16−1は、駆動指令部15が出力する主軸運転指令206および工具情報記録部17が出力する工具情報210に基づき、主軸角度が予め定められた角度を通過したことを判定し、判定したタイミングでタイミング信号207を位相差演算部12へ出力する。
【0075】
タイミング信号生成部16−1の処理の詳細を説明する。以下では刃数α枚の工具を、主軸101に取り付ける場合について説明する。αは、2以上の自然数とする。
【0076】
まず、α=2の場合について説明する。
図14は、
図13に示すタイミング信号生成部16−1が出力するタイミング信号207と主軸101の角度指令との間の関係の第1の例を示す図である。角度指令は、0度から360度の間の値をとり、360度に達すると0度に戻る信号である。タイミング信号207は、主軸101の角度指令が予め定められた複数の角度である角度ψ1および角度ψ2を通過するたびに出力される。つまり、タイミング信号207は、主軸101が1回転する間に、刃数と同数である2回出力される。角度ψ1は、主軸101が1回転する間に1か所定められていれば任意の角度であってよい。例えば、角度ψ1は、主軸オリエンテーション時の主軸角度とすることができる。さらに、角度ψ1と角度ψ2との間の差は、360度を工具刃数の2で除した値となり、ψ2−ψ1=180度となる。
【0077】
続いて、αが任意の自然数である場合について説明する。
図15は、
図13に示すタイミング信号生成部16−1が出力するタイミング信号207と主軸101の角度指令との間の関係の第2の例を示す図である。タイミング信号207は、主軸101の角度指令が予め定められた角度ψ
βを通過するたびに出力される。βは、2以上α以下の自然数である。タイミング信号207は、主軸101が1回転する間にα回出力される。ψ1は、主軸101が1回転する間に1か所定められていれば任意の角度であってよい。ψ1とψβ―1との間には、以下に示す数式(2)に示す制約がある。言い換えると、タイミング信号生成部16−1は、360度を刃数αで除した角度だけ主軸101が回転する毎にタイミング信号207を出力する。
【0079】
なお、タイミング信号生成部16−1は、主軸運転指令206に含まれる主軸101の速度指令を用いて、タイミング信号207を生成してもよい。この場合、タイミング信号生成部16−1は、主軸101の速度指令S(rpm)から以下の数式(3)を用いて算出される時間T2ごとにタイミング信号207を生成する。
【0081】
以上説明したように、実施の形態2によれば、工具情報210に基づいてタイミング信号207が生成されるため、工作機械100に取り付けられる工具の刃数が複数である場合であっても、実施の形態1と同様に、びびり振動の判定に要する時間、つまり、びびり振動が発生してからびびり振動の発生を判定するまでの時間を短縮することができる。
【0082】
なお、刃数が1である場合、数値制御装置2は、数値制御装置1と同様の処理によってびびり振動の判定および抑制を行うことができる。
【0083】
実施の形態3.
図16は、実施の形態3にかかる数値制御装置3の機能構成を示す図である。数値制御装置3は、フィルタ処理部10と、センサ信号処理部11と、位相差演算部12と、振動判定部13と、指令値補正部14と、駆動指令部15と、タイミング信号生成部16−2とを有する。数値制御装置3は、数値制御装置1のタイミング信号生成部16に代えて、タイミング信号生成部16−2を有する。以下、数値制御装置1と異なる部分について主に説明する。
【0084】
工作機械100は、実施の形態1で説明した構成に加えて、主軸101に取り付けられた角度情報センサ104を有する。角度情報センサ104は、主軸角度を測定するセンサであり、例えばエンコーダ、ポテンショセンサなどを用いることができる。角度情報211は、角度情報センサ104により測定された主軸角度の実測値を少なくとも含む信号である。角度情報センサ104は、生成した角度情報211を数値制御装置3に出力する。
【0085】
タイミング信号生成部16−2は、角度情報211が含む主軸角度の実測値に基づき、タイミング信号207を生成する。タイミング信号生成部16−2がタイミング信号207を生成する方法は、実施の形態1と同様であるが、主軸101の角度指令に代わり、主軸角度の実測値が用いられる。
【0086】
なお、角度情報センサ104は、主軸速度の実測値を検出するセンサであってもよい。この場合、角度情報センサ104は、角速度センサである。タイミング信号生成部16−2は、主軸101の角度指令に代わり、主軸速度の実測値に基づいてタイミング信号207を生成することができる。タイミング信号生成部16−2は、初期時刻t0を基準時刻として、主軸速度の実測値S
ref(rpm)から、以下に示す数式(4)を用いて算出される時間T3ごとにタイミング信号207を出力する。
【0088】
以上説明したように、実施の形態3によれば、タイミング信号207は、主軸角度の実測値に基づいて生成される。このため、主軸101の角度指令と実際の角度の間で生じる制御の追従誤差の影響を受けることなく、タイミング信号207を生成することができる。したがって、数値制御装置3は、主軸101の角度指令と実際の角度の間に制御の追従誤差が発生する場合であっても、実施の形態1と同様に、びびり振動の判定に要する時間、つまり、びびり振動が発生してからびびり振動の発生を判定するまでの時間を短縮することができる。
【0089】
なお、実施の形態3では、主軸角度または主軸速度の実測値を用いて、タイミング信号207を生成する例について説明したが、タイミング信号生成部16−2は、主軸角度指令と主軸角度の実測値とを併せて用いてもよいし、主軸速度指令と主軸速度の実測値とを併せて用いてもよい。
【0090】
実施の形態4.
図17は、実施の形態4にかかる数値制御装置4の機能構成を示す図である。数値制御装置4は、フィルタ処理部10と、センサ信号処理部11と、位相差演算部12と、振動判定部13と、指令値補正部14と、駆動指令部15と、タイミング信号生成部16−3と、工具情報記録部17とを有する。つまり、数値制御装置4は、実施の形態3で説明した数値制御装置3の構成に加えて、工具情報記録部17を有し、タイミング信号生成部16−2の代わりにタイミング信号生成部16−3を有する。以下、数値制御装置2と異なる部分について主に説明する。
【0091】
タイミング信号生成部16−3は、角度情報センサ104が出力する角度情報211と、工具情報記録部17が出力する工具情報210とに基づいて、タイミング信号207を生成し、生成したタイミング信号207を位相差演算部12に出力する。タイミング信号生成部16−3は、実施の形態2のタイミング信号生成部16−1と同様の方法でタイミング信号207を生成することができる。このとき、タイミング信号生成部16−3は、主軸101の角度指令に代わって、主軸角度の実測値を用いて、タイミング信号207を生成する。
【0092】
以上説明したように、実施の形態4によれば、実施の形態3と同様に、主軸101の角度指令と実際の角度の間で生じる制御の追従誤差の影響を受けることなく、タイミング信号207を生成することができるという効果に加えて、実施の形態2と同様に、刃数が複数である場合にも、実施の形態1と同様に、びびり振動の判定に要する時間、つまり、びびり振動が発生してからびびり振動の発生を判定するまでの時間を短縮することができる。
【0093】
実施の形態5.
図18は、実施の形態5にかかる数値制御装置5の機能構成を示す図である。数値制御装置5は、フィルタ処理部10と、センサ信号処理部11と、位相差演算部12と、振動判定部13と、指令値補正部14と、駆動指令部15と、タイミング信号生成部16−4とを有する。また、数値制御装置5は、工作機械100を制御するための加工プログラム18から、主軸回転数指令213を含む加工プログラム情報212を取得することができる。以下、数値制御装置1と異なる部分について主に説明する。
【0094】
主軸回転数指令213は、タイミング信号生成部16−4に出力され、加工プログラム情報212は、駆動指令部15に出力される。駆動指令部15は、加工プログラム情報212に従って、工作機械100に運転指令208を出力することができる。
【0095】
タイミング信号生成部16−4は、加工プログラム情報212から抽出された主軸回転数指令213に基づいて、タイミング信号207を生成する。タイミング信号生成部16−4は、初期時刻t0を基準時刻とし、主軸回転数指令213と以下に示す数式(5)とを用いて算出される時間T4ごとにタイミング信号207を出力する。なお、数式(5)のS
cmdは、主軸回転数指令213が示す主軸回転数を示す。
【0097】
以上説明したように、実施の形態5によれば、加工プログラム18に含まれる主軸回転数指令213に基づいて、タイミング信号207を生成することができる。加工プログラム18を使用してタイミング信号207を生成する場合であっても、実施の形態1と同様に、びびり振動の判定に要する時間、つまり、びびり振動が発生してからびびり振動の発生を判定するまでの時間を短縮することができる。
【0098】
実施の形態6.
図19は、実施の形態6にかかる数値制御装置6の機能構成を示す図である。数値制御装置6は、フィルタ処理部10と、センサ信号処理部11と、位相差演算部12と、振動判定部13と、指令値補正部14と、駆動指令部15と、タイミング信号生成部16−5と、工具情報記録部17とを有する。数値制御装置6は、数値制御装置5の構成に加えて、工具情報記録部17を有し、タイミング信号生成部16−4に代えてタイミング信号生成部16−5を有する。
【0099】
タイミング信号生成部16−5は、工具情報210と、主軸回転数指令213とに基づいて、タイミング信号207を生成し、生成したタイミング信号207を位相差演算部12に出力する。
【0100】
タイミング信号生成部16−5は、初期時刻t0を基準時刻として、以下に示す数式(6)と、刃数αと、主軸回転数S
cmdとを用いて算出される時間T5ごとにタイミング信号207を出力する。
【0102】
以上説明したように、実施の形態6によれば、実施の形態5の効果に加えて、さらに、工具の刃数が複数である場合にも、びびり振動の発生を判定することが可能になる。
【0103】
続いて、実施の形態1〜6にかかる数値制御装置1〜6のハードウェア構成について説明する。数値制御装置1〜6の各機能部は、処理回路により実現される。これらの処理回路は、専用のハードウェアにより実現されてもよいし、CPU(Central Processing Unit)を用いた制御回路であってもよい。
【0104】
上記の処理回路が、専用のハードウェアにより実現される場合、これらは、
図20に示す処理回路90により実現される。
図20は、実施の形態1〜6にかかる数値制御装置1〜6の機能を実現するための専用のハードウェアを示す図である。処理回路90は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものである。
【0105】
上記の処理回路が、CPUを用いた制御回路で実現される場合、この制御回路は例えば
図21に示す構成の制御回路91である。
図21は、実施の形態1〜6にかかる数値制御装置1〜6の機能を実現するための制御回路91の構成を示す図である。
図21に示すように、制御回路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)などである。
【0106】
上記の処理回路が制御回路91により実現される場合、プロセッサ92がメモリ93に記憶された、各構成要素の処理に対応するプログラムを読み出して実行することにより実現される。また、メモリ93は、プロセッサ92が実行する各処理における一時メモリとしても使用される。
【0107】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。