(57)【要約】 【課題】ワークを高精度に加工することができる工作機械および振動抑制方法を提供する。【解決手段】本実施形態による工作機械は、ワークと該ワークを載置可能なテーブルとを含む移動物を移動させる駆動機構と、駆動機構を動作させるモータと、モータを制御するサーボ制御部とを有するサーボ部と、ワークの加工中に移動物の重量を演算する重量演算部と、移動物の重量に基づいて移動物の固有振動数を演算する固有振動数演算部と、ワークを加工する為のパラメータを設定および記憶するパラメータ設定部と、加工プログラムを解析するプログラム解析部と、駆動機構が動く軌道を生成する軌道生成部とを有する主制御部と、を備え、サーボ部または主制御部は、移動物の固有振動数帯域の振動を減衰させるフィルタ処理部をさらに備える。【選択図】図２
2018118362.tif 000002
【特許請求の範囲】
【請求項１】
ワークと該ワークを載置可能なテーブルとを含む移動物を移動させる駆動機構と、
前記駆動機構を動作させるモータと、前記モータを制御するサーボ制御部とを有するサーボ部と、
前記ワークの加工中に前記移動物の重量を演算する重量演算部と、前記移動物の重量に基づいて前記移動物の固有振動数を演算する固有振動数演算部と、前記ワークを加工する為のパラメータを設定および記憶するパラメータ設定部と、加工プログラムを解析するプログラム解析部と、前記駆動機構が動く軌道を生成する軌道生成部とを有する主制御部と、を備え、
前記サーボ部または前記主制御部は、前記移動物の固有振動数帯域の振動を減衰させるフィルタ処理部をさらに備える工作機械。
【請求項２】
前記主制御部は、前記移動物の加速度と前記モータのトルク値とに基づいて前記移動物の重量を演算する、請求項１に記載の工作機械。
【請求項３】
前記主制御部は、前記移動物の位置情報と前記トルク値または前記モータを制御する電流値とを前記サーボ部から受け取り、前記位置情報から前記加速度を算出し、前記電流値を受け取った場合に、前記電流値から前記トルク値を演算する、請求項２に記載の工作機械。
【請求項４】
前記主制御部は、前記ワークの加工中に、前記ワークの加工プログラムのうち未だ実行されていない未実行部分を予め解析し、該未実行部分のうち前記移動物が所定値以上の距離を加速または減速する第１ブロックを検出し、該第１ブロックを実行することによって得られる前記加速度および前記トルク値に基づいて前記移動物の重量を演算する、請求項２または請求項３に記載の工作機械。
【請求項５】
前記主制御部は、前記未実行部分のうち前記第１ブロック以降の任意のブロックの実行前または実行中に、前記移動物の重量に基づいて前記フィルタ処理部の前記固有振動数の設定を変更する、請求項４に記載の工作機械。
【請求項６】
前記主制御部は、加工前または加工開始当初の前記移動物の第１固有振動数と加工途中の前記移動物の第２固有振動数との比率を演算し、該比率を用いて任意の位置における前記移動物の第３固有振動数を補正することによって、前記任意の位置における加工途中の前記移動物の第４固有振動数を演算し、該第４固有振動数の前記振動を減衰させるように前記フィルタ処理部に設定する、請求項１から請求項５のいずれか一項に記載の工作機械。
【請求項７】
前記主制御部は、前記任意の位置における前記第３固有振動数に前記比率を乗算することによって、前記任意の位置における前記第４固有振動数を演算する、請求項６に記載の工作機械。
【請求項８】
前記主制御部は、複数の位置における固有振動数を予め演算若しくは測定し、前記複数の位置の間における固有振動数を補間することによって、前記任意の位置における前記第３固有振動数を演算する、請求項６または請求項７に記載の工作機械。
【請求項９】
前記主制御部は、前記複数の位置の間における固有振動数を直線補間することによって、前記任意の位置における前記第３固有振動数を演算する、請求項８に記載の工作機械。
【請求項１０】
前記主制御部は、前記複数の位置の間における固有振動数を線形補間またはラグランジュ補間することによって、前記任意の位置における前記第３固有振動数を演算する、請求項８に記載の工作機械。
【請求項１１】
ワークと該ワークを載置可能なテーブルとを含む移動物を移動させる駆動機構と、前記駆動機構を動作させるモータと、前記モータを制御するサーボ制御部とを有するサーボ部と、前記サーボ部へ位置指令を出力する主制御部と、を備えた工作機械における前記移動物の振動抑制方法であって、
前記ワークの加工中に前記移動物の重量を演算し、
前記移動物の重量に基づいて前記移動物の固有振動数を演算し、
前記移動物の固有振動数帯域の振動を減衰させるようにフィルタ処理部を具備する振動抑制方法。
【請求項１２】
前記移動物の重量は、前記移動物の加速度と前記モータのトルク値とに基づいて演算される、請求項１１に記載の振動抑制方法。
【請求項１３】
前記移動物の重量を演算する前に、
前記移動物の位置情報と前記トルク値または前記モータを制御する電流値とを前記サーボ部から受け取ることをさらに具備し、
前記加速度は前記位置情報から算出され、前記電流値を受け取った場合に、前記トルク値は前記電流値から演算される、請求項１２に記載の振動抑制方法。
【請求項１４】
前記サーボ制御部から前記位置情報と前記トルク値または前記電流値とを受け取る前に、
前記ワークの加工中に、前記ワークの加工プログラムのうち未だ実行されていない未実行部分を予め解析し、
前記未実行部分のうち前記移動物が所定値以上の距離を加速または減速する第１ブロックを検出することをさらに具備し、
前記移動物の重量は、該第１ブロックを実行することによって得られる前記加速度および前記トルク値に基づいて演算される、請求項１３に記載の振動抑制方法。
【請求項１５】
加工前または加工開始当初の前記移動物の第１固有振動数と加工途中の前記移動物の第２固有振動数との比率を演算し、
該比率を用いて任意の位置における前記移動物の第３固有振動数を補正することによって、前記任意の位置における加工途中の前記移動物の第４固有振動数を演算することをさらに具備し、
前記フィルタ処理部は、該第４固有振動数の前記振動を減衰させるように設定される、請求項１１から請求項１４のいずれか一項に記載の振動抑制方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明による実施形態は、工作機械および振動抑制方法に関する。
【背景技術】
【０００２】
工作機械は、ワークを搭載したテーブルを移動させながら該ワークを加工する。ワークの切削等の加工時に、ワークおよびテーブル等の移動物において固有振動が発生する場合がある。このような移動物の固有振動の振幅は、ワーク重量が重くなるほど大きくなり、また、移動物の加速度が大きくなるほど大きくなる。このような移動物の固有振動は、ワークの切削表面の平坦性を悪化させる原因となる。従って、移動物の固有振動の振幅が許容値を超える場合には、加工不良の問題が生じる。この問題を解決する手段として、加工前に測定したワーク重量に応じて、移動物の加速度を設定する手法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−０９０７６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、ワーク重量に応じて加速度を設定して加工時間を短縮できたとしても、加工が進むに従って変化する移動物の重量による移動物の固有振動の振動数の変化には対応することができず、加工誤差が許容範囲を超えてしまう場合がある。また、移動物の固有振動を抑える為にフィルタを用いる場合が有るが、フィルタのカットオフ周波数の設定やワーク重量の測定と移動物の加速度の設定とを行う時期は加工を始める前である。従って、フィルタのカットオフ周波数は、加工前の比較的重いワーク重量に基づいて低く設定されていた。フィルタのカットオフ周波数が低く設定されていると、ワークの加工によってワーク重量が時々刻々と変化しても、フィルタのカットオフ周波数は低いままであるので、加工が進むと振動を抑制できなくなってしまう。
【０００５】
本発明は、上記問題点を解決するためになされたもので、ワークを高精度に加工することができる工作機械および振動抑制方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本実施形態による工作機械は、ワークと該ワークを載置可能なテーブルとを含む移動物を移動させる駆動機構と、駆動機構を動作させるモータと、モータを制御するサーボ制御部とを有するサーボ部と、ワークの加工中に移動物の重量を演算する重量演算部と、移動物の重量に基づいて移動物の固有振動数を演算する固有振動数演算部と、ワークを加工する為のパラメータを設定および記憶するパラメータ設定部と、加工プログラムを解析するプログラム解析部と、駆動機構が動く軌道を生成する軌道生成部とを有する主制御部と、を備え、サーボ部または主制御部は、移動物の固有振動数帯域の振動を減衰させるフィルタ処理部をさらに備える。
【０００７】
主制御部は、移動物の加速度とモータのトルク値とに基づいて移動物の重量を演算してもよい。
【０００８】
主制御部は、移動物の位置情報とトルク値またはモータを制御する電流値とをサーボ部から受け取り、位置情報から加速度を算出し、電流値を受け取った場合に、電流値からトルク値を演算してもよい。
【０００９】
主制御部は、ワークの加工中に、ワークの加工プログラムのうち未だ実行されていない未実行部分を予め解析し、該未実行部分のうち移動物が所定値以上の距離を加速または減速する第１ブロックを検出し、該第１ブロックを実行することによって得られる加速度およびトルク値に基づいて移動物の重量を演算してもよい。
【００１０】
主制御部は、未実行部分のうち第１ブロック以降の任意のブロックの実行前または実行中に、移動物の重量に基づいてフィルタ処理部の固有振動数設定を変更してもよい。
【００１１】
主制御部は、加工前または加工開始当初の移動物の第１固有振動数と加工途中の移動物の第２固有振動数との比率を演算し、該比率を用いて任意の位置における移動物の第３固有振動数を補正することによって、任意の位置における加工途中の移動物の第４固有振動数を演算し、該第４固有振動数の振動を減衰させるようにフィルタ処理部の設定をしてもよい。
【００１２】
主制御部は、任意の位置における第３固有振動数に比率を乗算することによって、任意の位置における第４固有振動数を演算してもよい。
【００１３】
主制御部は、複数の位置における固有振動数を予め演算若しくは測定し、複数の位置の間における固有振動数を補間することによって、任意の位置における第３固有振動数を演算してもよい。
【００１４】
主制御部は、複数の位置の間における固有振動数を直線補間することによって、任意の位置における第３固有振動数を演算してもよい。
【００１５】
主制御部は、複数の位置の間における固有振動数を線形補間またはラグランジュ補間することによって、任意の位置における第３固有振動数を演算してもよい。
【００１６】
本実施形態による振動制御方法は、ワークと該ワークを載置可能なテーブルとを含む移動物を移動させる駆動機構と、駆動機構を動作させるモータと、モータを制御するサーボ制御部とを有するサーボ部と、サーボ部へ位置指令を出力する主制御部と、を備えた工作機械における移動物の振動抑制方法であって、ワークの加工中に移動物の重量を演算し、移動物の重量に基づいて移動物の固有振動数を演算し、移動物の固有振動数帯域の振動を減衰させるフィルタ処理部を具備する。
【００１７】
移動物の重量は、移動物の加速度とモータのトルク値とに基づいて演算されてもよい。
【００１８】
当該振動制御方法は、移動物の重量を演算する前に、移動物の位置情報とトルク値またはモータを制御する電流値とをサーボ部から受け取ることをさらに具備し、加速度は位置情報から算出され、電流値を受け取った場合に、トルク値は電流値から演算されてもよい。
【００１９】
当該振動制御方法は、サーボ制御部から位置情報とトルク値または電流値とを受け取る前に、ワークの加工中に、ワークの加工プログラムのうち未だ実行されていない未実行部分を予め解析し、未実行部分のうち移動物が所定値以上の距離を加速または減速する第１ブロックを検出することをさらに具備し、移動物の重量は、該第１ブロックを実行することによって得られる加速度およびトルク値に基づいて演算されてもよい。
【００２０】
当該振動制御方法は、加工前または加工開始当初の移動物の第１固有振動数と加工途中の移動物の第２固有振動数との比率を演算し、該比率を用いて任意の位置における移動物の第３固有振動数を補正することによって、任意の位置における加工途中の移動物の第４固有振動数を演算することをさらに具備し、フィルタ処理部は、該第４固有振動数の振動を減衰させるように設定されてもよい。
【図面の簡単な説明】
【００２１】
【図１】第１実施形態による工作機械１００のモータ１１、駆動機構２およびテーブル３の構成の一例を示す図。
【図２】第１実施形態による工作機械１００の構成の一例を示すブロック図。
【図３】移動物が加速される際における移動物の速度、移動物の加速度および移動物の固有振動の振幅を示すグラフ。
【図４】加工プログラム６の処理の一例を示す図。
【図５】図４に示すブロックＢ５に従った移動物の速度、モータ１１の加減速トルク指令、クーロン摩擦による摩擦トルク、粘性摩擦による摩擦トルクおよびトルクを示すグラフ。
【図６】第１実施形態による工作機械１００の一連の動作例を示すフロー図。
【図７】第２実施形態による移動物の固有振動数ωの一例を示すグラフ。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明に係る実施形態説明する。本実施形態は、本発明を限定するものではない。
【００２３】
（第１実施形態）
図１は、第１実施形態による工作機械１００のモータ１１、駆動機構２およびテーブル３の構成の一例を示す図である。工作機械１００は、ワークを搭載するテーブル３を移動させながら工具を用いてワークに切削等の加工を行う。移動物は、所謂、直線系移動物であり、軸に沿って水平方向に移動するワークおよびテーブル３等である。ワークは、例えば、金型である。尚、移動物は、ワークおよびテーブル３に代えて、主軸頭を含む工具であってもよい。
【００２４】
モータ１１は、カップリング４を介して駆動機構２と連結されている。
【００２５】
駆動機構２は、ワークと該ワークを載置可能なテーブル３とを含む移動物を移動させる。駆動機構２は、ベッド２１と、ボールねじ２２と、リニアガイド２３とを備えている。ベッド２１は、工作機械１００の本体に固定され、駆動機構２の他の構成要素を搭載する。ボールねじ２２は、カップリング４によってモータ１１と連結されており、モータ１１の軸の回転に従って回転するように構成されている。モータ１１の回転力は、ボールネジ２２を介してナット２４に伝達され、ボールネジ２２に沿って直線移動を行うことができる。
【００２６】
テーブル３は、リニアガイド２３によって支持されている。テーブル３は、ボールねじ２２およびリニアガイド２３の軸方向（矢印Ａｒの方向）に移動する。矢印Ａｒの方向は、例えば、水平面内の或る直線方向である。テーブル３は、ワークを搭載可能である。また、ワークを工具で切削するために、テーブル３はワークをベッド２１に対して相対的に動作させる。
【００２７】
図２は、第１実施形態による工作機械１００の構成の一例を示すブロック図である。工作機械１００は、サーボ部１と、駆動機構２と、主制御部５とを備えている。サーボ部１は、モータ１１、フィルタ処理部１４およびサーボ制御部１２を備えている。
【００２８】
モータ１１は、図１を参照して説明したように、駆動機構２を動作させる。これにより、テーブル３がリニアガイド２３に沿って移動する。モータ１１は、サーボ制御部１２によって動作する。
【００２９】
フィルタ処理部１４は移動物の固有振動数帯域の振動を減衰させる様に働く。
【００３０】
サーボ制御部１２は、モータ１１を制御する位置制御部１２ａ、速度制御部１２ｂおよび電流制御部１２ｃを備えている。サーボ制御部１２は、主制御部５からの指令位置情報をフィルタ処理部１４でフィルタ処理し、フィルタ処理された指令位置情報に従ってモータ１１をフィードバック制御する。モータ１１には、ロータリエンコーダ１３が設けられている。ロータリエンコーダ１３は、モータ１１の軸の回転を検出し、その位置の変位を測定する。その位置の変位はサーボ制御部１２（位置制御部１２ａおよび速度制御部１２ｂ）および主制御部５へフィードバックされる。ロータリエンコーダ１３はリニアエンコーダやレゾルバでも良い。また、電流制御部１２ｃは、モータ１１を制御するトルク値を主制御部５へ出力する。尚、電流制御部１２ｃは、モータ１１を制御する電流の値を主制御部５へ出力してもよい。ここで、トルク値とは、電流制御部１２ｃから受け取るトルク実測値またはトルク指令値である。後述するトルク演算値とは異なる場合がある。トルク値は、上記モータ１１を制御する電流（電流値）から換算されてもよい。以下、トルク値は、単に、“トルク”とも言う。
【００３１】
サーボ部１は、移動物の固有振動数帯域の振動を減衰させるフィルタ処理部１４を有する。サーボ部１が主制御部５から固有振動数を受け取ることにより、フィルタ処理部１４に固有振動数が設定される。フィルタは、移動物の固有振動数帯域の振動を減衰させることができる、例えば、ノッチフィルタである。
【００３２】
主制御部５は、パラメータ設定部５１と、プログラム解析部５２と、軌道生成部５３と、重量演算部５４と、固有振動数演算部５５とを備えている。
【００３３】
パラメータ設定部５１は、工作機械１００のパラメータを格納する。パラメータは、例えば、ワークを乗せる軸の情報（リード情報）、送り駆動機構の剛性等である。これらのパラメータがパラメータ設定部５１に格納される。
【００３４】
プログラム解析部５２は、ワークの加工プログラム６を解析し、解析情報を生成し、軌道生成部５３へ出力する。解析情報とは、加工プログラム６の解析によって得られる、加工プログラム６の１ブロック毎の移動物の目標位置の座標、および、移動物の目標移動速度等の情報である。ブロックとは、加工プログラム６の基本単位であり、例えば、１行分の指令を示す。１行分の指令（１ブロック）は、例えば、直線移動、円弧移動、主軸の回転開始／停止等の基本的な動作の指令である。また、プログラム解析部５２は、軌道生成部５３が指令位置情報を生成するのに先んじて予め未処理のブロックを解析する。これは、図４を参照して後で説明する“先解析”である。
【００３５】
軌道生成部５３は、加工プログラム６の１ブロック毎の移動位置、移動速度等の解析情報に基づいて、制御周期毎の目標位置データ等の指令位置情報を生成する。これにより、例えば、図５（Ａ）に示すように、軌道生成部５３は、設定された加速度で目標速度まで加速し、一定の目標速度で移動した後、当該加速度で目標速度から減速して目標位置に到達することができるように指令位置情報を生成する。工作機械１００は、このように加工プログラム６の各ブロックに従って移動物を移動させながらワークを加工する。
【００３６】
また、制御周期は、位置制御部１２ａの制御周期であり、一つのブロックが実行されてから終了するまでの時間よりも短い時間の単位である。
【００３７】
例えば、制御周期は１ｍｓｅｃであるとする。この場合、軌道生成部５３は、図５（Ａ）におけるｔ１〜ｔ４（例えば、１ｍｉｎ）で１ｍｓｅｃごとにどれだけ動けばよいかを計算し、１ｍｓｅｃごとに移動物が動く距離を指令位置情報として生成する。移動物が動くトータルの移動距離は、図５（Ａ）における速度のグラフにおいて１ｍｓｅｃごとの指令位置情報を積分すれば得られる。このようにして、工作機械１００は、該ブロックに従って移動物の移動を実行する。
【００３８】
さらに、軌道生成部５３は、重量演算部５４へ重量演算指令を送る。重量演算指令は、或るブロックの解析情報の結果に基づいて、移動物の重量Ｍを演算するか否かを決定する指令である。例えば、解析情報において、該ブロックが移動物の重量Ｍを演算可能である場合、軌道生成部５３は、重量演算指令を論理ハイにする。この場合、重量演算部５４は、上記ブロックに従って移動物を移動させる際に、移動物の重量Ｍを演算する。一方、該ブロックが移動物の重量Ｍを演算しない場合、軌道生成部５３は、重量演算指令を論理ロウにする。この場合、重量演算部５４は、上記ブロックに従って移動物を移動させる際に、移動物の重量Ｍを演算しない。このように、軌道生成部５３は、解析情報に基づいて、重量演算部５４に移動物の重量Ｍを演算させることができる。
【００３９】
重量演算部５４は、重量演算指令に従って、ワークの加工中に移動物の重量Ｍを演算する場合、後述する式３を用いて、モータ１１のトルク演算値Ｔと移動物の加速度Ａとに基づいて求める。トルク演算値Ｔとは、重量演算に用いられるトルクの演算値であり、トルク実測値あるいはトルク指令値から演算される値である。従って、トルク演算値Ｔは、トルク値、即ち、トルク実測値あるいはトルク指令値と異なる場合もある。重量演算部５４は、演算した移動物の重量Ｍを固有振動数演算部５５へ出力する。
【００４０】
一方、移動物を移動させるためのトルクは、モータ１１や移動物の加減速に用いられるトルク（加減速トルク）だけでなく、摩擦トルク等のようにモータ１１や移動物の駆動に用いられない成分も含む。
【００４１】
本実施形態では、重量演算は、加減速時のトルクの平均を用いる。また、加速時のトルクの平均と減速時のトルクの平均の差を求めると、摩擦トルクはキャンセルされ、無視できる。従って、重量演算で用いるトルク演算値Ｔには、加速時のトルクの平均と減速時のトルクの平均の差を２で割った値を用いる。
【００４２】
固有振動数演算部５５は、重量演算部５４から移動物の重量Ｍを受け取る。固有振動数演算部５５は、移動物の重量Ｍと後述する式２とを用いることにより、移動物の固有振動数ωを演算する。さらに、演算した移動物の固有振動数ωでフィルタを働かせることにより、固有振動数ωの振動を抑制することができる。
【００４３】
尚、主制御部５を構成するパラメータ設定部５１と、プログラム解析部５２と、軌道生成部５３と、重量演算部５４と、固有振動数演算部５５とは、一つのＣＰＵ（Central Processing Unit）で実現されてもよく、それぞれ個別のＣＰＵで実現されていてもよい。また、サーボ部１は、主制御部５の一部であってもよい。また、サーボ部１はフィルタ処理部１４を備えず、主制御部５がフィルタ処理部１４を備えてもよい。
【００４４】
図３（Ａ）〜図３（Ｃ）は、それぞれ、移動物が加速される際における移動物の速度、移動物の加速度および移動物の固有振動の振幅を示すグラフである。このグラフでは、サーボ部１のフィルタ処理部１４は適切に設定されていない。従って、図３（Ｂ）および図３（Ｃ）を参照すると、移動物の加速度が上昇および下降する時点ｔ１０、ｔ２０において、移動物に固有振動が発生していることが分かる。この固有振動数ω（ｒａｄ／ｓｅｃ）と周波数ｆ（Ｈｚ）の関係は、式１で表される。
【数１】
2018118362.tif 000003
【００４５】
また、移動物の固有振動数ωは、式２でも表される。
【数２】
2018118362.tif 000004
尚、ｋは送り駆動機構の剛性であり、その単位は、（ｋｇｆ／ｍ）である。Ｍは移動物の質量であり、その単位は（ｋｇ）である。以降、移動物の重量（ｋｇｆ）と質量（ｋｇ）とは同じとして、これらを移動物の重量Ｍと表す。
【００４６】
ワークの切削加工の場合、ワークの加工が進むにつれて、時々刻々と移動物の重量Ｍは変化する。式２を参照すると、それに伴って、移動物の固有振動数ωも時々刻々と変化することが分かる。
【００４７】
これに対し、本実施形態による工作機械１００は、ワークの加工によって変化する移動物の固有振動数ωに応じて適切にフィルタ処理部１４に設定する。このために、工作機械１００は、ワークの加工中に移動物の重量Ｍを演算し、重量Ｍに基づいて移動物の固有振動数ωを演算する。
【００４８】
ワークの加工中に移動物の重量Ｍを演算するためには、移動物が十分な距離を加速または減速する必要がある。従って、移動物の加速距離または減速距離を予め検出するために、以下のような加工プログラム６の先解析が必要となる。
【００４９】
図４は、加工プログラム６の処理の一例を示す図である。図４を参照して先解析について説明する。先解析は、軌道生成部５３が加工プログラム６のうち未実行部分のブロックの指令位置情報を生成するのに先んじて、該ブロックに示されている目標位置や目標速度を予め解析することである。未実行部分のブロックは、実行中のブロックよりも後に実行されるブロックである。プログラム解析部５２は、ワークの加工中に、ワークの加工プログラム６のうち未だ実行されていない未実行部分のブロックを先解析する。
【００５０】
例えば、図４においてはブロックＢ３が実行中のブロックであり、ブロックＢ４以降のブロックが未実行部分のブロックである。プログラム解析部５２は、例えば、未実行部分のブロックＢ４、Ｂ５、Ｂ６・・・を実行順に先解析する。先解析において、プログラム解析部５２は、未実行部分のブロックＢ５の目標位置や目標速度を解析する。先解析によって得られた解析情報（目標位置および目標速度）は、ブロックＢ５の実行前に軌道生成部５３へ送られる。軌道生成部５３は、解析情報に基づいて、制御周期ごとの目標位置を求め、指令位置情報を生成し、この指令位置情報に従ってサーボ部１が駆動機構２を動作させる。このように、プログラム解析部５２は、移動物を移動させるために、加工プログラム６をブロックごとに先解析する。
【００５１】
一方、軌道生成部５３は、解析情報に基づき、指令位置情報だけでなく、重量演算指令も出力する。即ち、本実施形態は、先解析によって得られる解析情報を、移動物の移動だけでなく、重量Ｍの演算の可否判断にも利用している。
【００５２】
例えば、まず、プログラム解析部５２は、第１ブロックとしてのブロックＢ５を先解析し、ブロックＢ５の解析情報を生成し、加速または減速する距離を演算する。次に、プログラム解析部５２は、ブロックＢ５における移動物の加速または減速する距離が所定値以上であるか否かを判断する。この所定値は、移動物の重量Ｍを演算することが可能な距離の閾値を示す。例えば、目標距離が所定値より短い場合、移動物は、加速して目標速度に達することなく減速してしまう。この場合、トルクが過渡的な状態となってしまい、目標速度におけるモータ１１の正しいトルクを得ることが難しい。そのため、軌道生成部５３は、移動物の重量Ｍを演算しないと判断する。一方、加速または減速する距離が所定値以上の場合、軌道生成部５３はブロックＢ５の実行によって移動物の重量Ｍを演算すると判断する。プログラム解析部５２は、先解析の結果を解析情報として軌道生成部５３へ出力する。尚、重量Ｍの演算の可否判断は、プログラム解析部５２が行ってもよい。
【００５３】
次に、軌道生成部５３は、図２に示す重量演算部５４に解析情報に応じた重量演算指令を出力する。それとともに、ブロックＢ４の実行後に、軌道生成部５３は、解析情報に基づいて、ブロックＢ５の指令位置情報をサーボ部１へ出力する。これにより、重量演算部５４は、ブロックＢ５に従って移動物が移動されるタイミングで、移動物の加速度Ａおよびトルク演算値Ｔを測定および演算することができる。
【００５４】
尚、移動物の重量Ｍの演算については後で詳細に説明する。
【００５５】
重量演算部５４は、移動物の重量Ｍを固有振動数演算部５５へ送る。固有振動数演算部５５は、重量演算部５４から移動物の重量Ｍを受け取り、移動物の重量Ｍを式２に適用することにより、移動物の固有振動数ωを演算する。
【００５６】
ブロックＢ５に従って移動物を移動させた後、その次のブロックＢ６に従って移動物を移動させる前に、固有振動数演算部５５は、移動物の固有振動数ωの振動を減衰させるようにサーボ部１の有するフィルタ処理部１４を働かせる。あるいは、固有振動数演算部５５は、ブロックＢ６以降の任意のブロックの実行前に、フィルタ処理部１４を働かせてもよい。この場合のフィルタ処理部１４は、例えば、加工プログラム６により設定されたタイミング、または、工作機械１００の外部からＰＬＣ（Programmable Logic Controller）等により通知されたタイミングで固有振動数の設定変更が行われてもよい。また、固有振動数演算部５５は、ブロックＢ６以降の任意のブロックの実行中に、フィルタ処理部１４を働かせてもよい。
【００５７】
このように、移動物の重量Ｍを正確に演算するために、プログラム解析部５２は、先解析において、移動物が所定値以上の距離だけ加速または減速する加工プログラム６のブロックを予め検出している。
【００５８】
（重量Ｍの演算）
移動物の重量Ｍの演算について説明する。
【００５９】
図５（Ａ）〜図５（Ｅ）は、それぞれ、図４に示すブロックＢ５に従った移動物の速度、モータ１１の加減速トルク、クーロン摩擦による摩擦トルク、粘性摩擦による摩擦トルクおよびトルクを示すグラフである。図５（Ａ）は、ブロックＢ５における位置の変位の実測値から計算される速度、または、軌道生成部５３により生成されるブロックＢ５の速度指令を示す。図５（Ｂ）は、モータ１１の加減速トルクを示す。図５（Ｃ）は、ブロックＢ５の実行時におけるクーロン摩擦を示す。図５（Ｄ）は、ブロックＢ５の実行時における粘性摩擦を示す。図５（Ｅ）は、ブロックＢ５のトルクを示す。尚、このトルクは、モータ１１を制御する電流の実測値から換算されてもよい。
【００６０】
摩擦トルクには、図５（Ｃ）に示すクーロン摩擦と図５（Ｄ）に示す粘性摩擦とがある。図５（Ｃ）に示すクーロン摩擦は、質量を有する物体が動くときに働く摩擦である。従って、図５（Ｃ）のクーロン摩擦は、移動物の速度がゼロでない領域で一定の摩擦が働くことを示している。粘性摩擦は、移動物の速度に比例する摩擦である。従って、図５（Ｄ）の粘性摩擦は、移動物の速度と類似するグラフとなる。トルクは、加減速トルクと、クーロン摩擦の摩擦トルクと、粘性摩擦の摩擦トルクとの和であり、図５（Ｅ）に示すようなグラフとなる。
【００６１】
まず、重量演算部５４は、加速時または減速時における速度およびトルクをサンプリングする。このサンプリングは、制御周期ごとに得られた速度およびトルクの中から任意のデータ点を選択することである。サンプリングの回数は、特に限定しないが、例えば、ｔ１〜ｔ２の加速時またはｔ３〜ｔ４の減速時において１００回ずつ行われる。次に、重量演算部５４は、サンプリングしたデータをローパスフィルタで高周波成分をカットする。次に、重量演算部５４は、サンプリングした速度の傾きを最小二乗法により求める。この速度の傾きが加速度Ａとなる。ｔ１〜ｔ２およびｔ３〜ｔ４におけるそれぞれの加速度の絶対値の平均値を加速度Ａとしてもよい。尚、加速度は、位置の変位の実測値によらず、加速度の指令値を用いてもよい。
【００６２】
さらに、重量演算部５４は、ブロックＢ５の加減速時のトルクの平均値を求める。重量演算部５４は、図５（Ｅ）のｔ１〜ｔ２の加速期間におけるサンプリングしたトルクの平均値とｔ３〜ｔ４の減速期間におけるサンプリングしたトルクの平均値との差を２で割り算する。これにより、重量演算部５４は、摩擦トルクを除去した加減速時のトルクの平均値をトルク演算値Ｔとして演算することができる。トルク演算値Ｔは、図５（Ｂ）のｔ１〜ｔ２の加減速トルクとｔ３〜ｔ４の加減速トルクの絶対値との平均値にほぼ等しくなる。
【００６３】
その後、重量演算部５４は、トルク演算値Ｔと加速度Ａとを式３に用いることによって、移動物の重量Ｍを演算する。移動物の重量Ｍは、式３で表される。
【数３】
2018118362.tif 000005
ここで、トルク演算値Ｔの単位は、（ｋｇｆ・ｍ）、Ａの単位は（ｍ／ｓｅｃ２）、Ｊｍは回転駆動系のイナーシャ（ｋｇｆ・ｍ・ｓｅｃ２）、Ｌはモータ１回転あたりの軸移動量（ｍ）である。尚、回転駆動系のイナーシャＪｍおよびモータ１回転あたりの軸移動量Ｌは、パラメータ設定部５１により設定される定数である。
【００６４】
このように、本実施形態による工作機械１００は、ワークの加工中に移動物の重量Ｍを自動で演算することができる。
【００６５】
尚、重量演算部５４は、加速時または減速時のいずれか一方の加速度Ａ、および／または、トルク演算値Ｔに代えて加速時または減速時のいずれか一方のトルクの平均値を式３に用いて移動物の重量Ｍを求めてもよい。この場合、重量演算部５４は、摩擦トルクを測定する等の対処が必要となる。
【００６６】
また、重量演算部５４は、重量センサ等の外部センサを用いて移動物の重量Ｍを計測してもよい。また、固有振動数演算部５５は、振動センサなどの外部センサを用いて移動物の固有振動数ωを計測してもよい。
【００６７】
図６は、第１実施形態による工作機械１００の一連の動作例を示すフロー図である。
【００６８】
まず、ユーザがパラメータ設定部５１に工作機械１００のパラメータの設定をする（Ｓ１０）。パラメータ設定部５１には、ワークを乗せる軸を示す識別情報と、送り駆動機構の剛性ｋと、加工時の移動物の加速度と、回転駆動系のイナーシャＪｍ（モータ情報）と、モータ１回転あたりの軸移動量Ｌ（リード情報）とが格納される。これらのパラメータは、機械調整時に設定されるものである。
【００６９】
次に、工作機械１００は、加工プログラム６を実行する（Ｓ２０）。加工プログラム６が終わるまで、プログラム解析部５２は加工プログラム６の先解析を行う（Ｓ３０のＮＯ、Ｓ４０）。プログラム解析部５２は、加工プログラム６のブロック（例えば、Ｂ５）を先解析し、移動物を加速または減速する距離が所定値以上であるか否かを検出する。加速または減速する距離が所定値以上の場合（Ｓ５０のＹＥＳ）、重量演算部５４は、上述の通り、式３を用いて移動物の重量Ｍを演算する（Ｓ６０）。
【００７０】
固有振動数演算部５５は、演算された移動物の重量Ｍに基づいて、移動物の固有振動数ωを演算する（Ｓ７０）。固有振動数演算部５５は、移動物の固有振動数ωの振動を抑制するように、サーボ部１のフィルタ処理部１４の固有振動数設定を変更する（Ｓ８０）。フィルタ処理部１４の固有振動数の設定変更は、先解析されたブロックの次のブロック（例えば、Ｂ６）の実行前に行われる。尚、フィルタ処理部１４の固有振動数の設定変更は、先解析されたブロック（例えば、Ｂ５）以降の任意のブロックの実行前でもよい。また、固有振動数演算部５５は、ブロックＢ６以降の任意のブロックの実行中に、フィルタ処理部１４の固有振動数設定を変更してもよい。
【００７１】
一方、加速または減速する距離が所定値未満である場合（Ｓ５０のＮＯ）、そのブロックではステップＳ６０〜Ｓ８０は実行されない。この場合、フィルタ処理部１４の固有振動数の設定変更は実行されないものの、ワークの加工は継続される。
【００７２】
工作機械１００は、加工プログラム６が終了するまでステップＳ４０〜Ｓ８０を繰り返し、加工プログラム６が終了した場合に動作を終了する（Ｓ３０のＹＥＳ）。
【００７３】
このように、本実施形態による工作機械１００は、ワークの加工中に移動物の重量Ｍを演算し、時々刻々変化する移動物の重量Ｍに対応する移動物の固有振動数ωを演算し、その固有振動数ωの振動を抑制するようにフィルタ処理部１４の固有振動数を設定することができる。このように、時々刻々変化する移動物の固有振動を抑制することで、固有振動による加工不良を抑制し、高精度な加工を行うことが可能となる。さらに、工作機械１００は、移動物の加速度を低下させることなく、移動物の固有振動を抑制することができるため、高い加速度で加工することが可能となる。従って、本実施形態による工作機械１００は、ワークを高速、短時間にかつ高精度に加工することができる。
【００７４】
また、本実施形態による工作機械１００は、加工プログラム６の実行中に自動で移動物の重量を演算してフィルタの設定までを行うため、ユーザにとって手間がかからない。
【００７５】
（第２実施形態）
移動物の固有振動数ωは、駆動機構２における移動物の位置に依存する場合もある。しかし、第１実施形態においては、加工中の移動物の固有振動数ωは、移動物の重量Ｍに依存しているものの、移動物の位置については考慮していない。そこで、第２実施形態による工作機械１００は、移動物の重量Ｍだけではなく、移動物の位置も考慮して移動物の固有振動数ωを演算する。
【００７６】
第２実施形態による工作機械１００は、移動物の重量Ｍによる固有振動数と移動物の位置による固有振動数とを別々に求め、それぞれの固有振動数の変化を補正することにより移動物の固有振動数ωを演算する。
【００７７】
尚、移動物の重量Ｍによる固有振動数は、第１実施形態による工作機械１００が演算する移動物の固有振動数ωと同じでよい。また、第２実施形態による工作機械１００の構成は、第１実施形態による工作機械１００の構成と基本的に同様であるので、その詳細な説明を省略する。
【００７８】
図７は、第２実施形態による移動物の固有振動数ωの一例を示すグラフである。このグラフの縦軸は、移動物の固有振動数を示し、横軸は、或る基準点からの移動物の距離を示す。即ち、Ｘ軸は、移動物の位置を示す。
【００７９】
加工前または加工開始当初において、ワークはほとんど切削されていないので、移動物の重量Ｍは比較的重い。一方、加工途中において、ワークの加工が進むと、移動物の重量Ｍは次第に軽くなる。従って、加工が進むにつれて移動物の固有振動数は、加工前の固有振動数よりも高くなる。
【００８０】
さらに、図７から分かるように、移動物の固有振動数は、移動物の位置によっても変化する。第２実施形態による工作機械１００は、このような移動物の位置による移動物の固有振動数の変化も考慮してフィルタ処理部１４の固有振動数の設定を行う。
【００８１】
例えば、予め、移動物の位置を複数個所変えて移動物の固有振動数をハンマリング試験等で測定する。測定した固有振動数はパラメータ設定部５１に格納しておく。測定した位置の固有振動数と他の位置との固有振動数間は、直線補間、線形補間、ラグランジェ補間等の補間方法で補間する。図７の例ではＸＡ〜ＸＥの５ヶ所で固有振動数（固有振動数ωＡ〜ωＥ）を測定し、それぞれの固有振動数を直線補間で補間して任意の位置の第３固有振動数を求める。尚、固有振動数演算部５５は、予め、移動物の位置を複数個所変えて移動物の固有振動数を演算してもよい。
【００８２】
図７の任意の位置Ｘａの場合を例に説明する。
【００８３】
任意の位置Ｘａでの第３固有振動数ω３は、ωＣ〜ωＤ間を直線補間しているので、
【数４】
2018118362.tif 000006
となり、また、加工前または加工開始当初の加速度Ａおよびトルク演算値Ｔを式３に適用して固有振動数演算部５５で演算した第１固有振動数をω１、加工途中（Ｘａの位置）の移動物の加速度Ａおよびトルク演算値Ｔを式３に適用して固有振動数演算部５５で演算した加工途中の第２固有振動数をω２とすると、フィルタ処理部１４で減衰させる第４固有振動数ω４は、ω４＝ω３×ω２／ω１となる。
【００８４】
このように、任意の位置における第３固有振動数を予め求めておき、加工前または加工開始当初の移動物の第１固有振動数ω１と加工途中の移動物の第２固有振動数ω２との比率（ω２／ω１）を用いて補正することによって、該位置における加工途中の移動物の第４固有振動数ω４を演算することができる。
【００８５】
第２実施形態による工作機械１００は、移動物の重量Ｍによる固有振動数の変化および移動物の位置による固有振動数の変化を考慮して、任意の位置における加工途中の移動物の固有振動数を演算することができる。従って、第２実施形態による工作機械１００は、より正確な移動物の固有振動数を演算することができる。
【００８６】
（変形例）
第２実施形態による工作機械１００は、移動物をＸ軸方向に移動させる駆動機構２を有する。これに対し、本変形例による工作機械１００は、移動物をＸ軸方向に移動させる駆動機構と、移動物をＹ軸方向に移動させる駆動機構とを有する。Ｘ軸およびＹ軸は、水平面内において互いに直交している。即ち、本変形例による駆動機構２は、移動物を水平面内に移動させることができる。
【００８７】
Ｙ軸方向を考慮せずにＸ軸方向の位置による移動物の固有振動数ωを求めてフィルタ処理部１４の固有振動数を設定しても、固有振動を抑制することができない場合がある。また、場合によっては、Ｙ軸方向の固有振動がＸ軸方向の固有振動に影響を与える可能性もある。そこで、本変形例による工作機械１００は、Ｘ軸方向およびＹ軸方向の両方向の位置を考慮して移動物の固有振動数ωを演算する。
【００８８】
例えば、本変形例では、加工前または加工開始当初に、Ｘ軸方向およびＹ軸方向の両方向に移動物を移動させながら複数の位置において固有振動数を測定する。その後、複数の位置における固有振動数を用いて複数の位置の間における固有振動数を補間する。これにより、固有振動数演算部５５は、水平面内の任意の位置における第３固有振動数ω３を演算することができる。尚、補間は、線形補間またはラグランジュ補間のいずれの補間でもよい。
【００８９】
さらに、固有振動数演算部５５は、第２実施形態と同様に、加工前または加工開始当初の移動物の第１固有振動数ω１と加工途中の移動物の第２固有振動数ω２との比率（ω２／ω１）を演算し、第３固有振動数ω３を補正することによって、水平面内の任意の位置における加工途中の移動物の第４固有振動数ω４を演算することができる。
【００９０】
このように、移動物を水平面内に移動させる場合においても、本変形例による工作機械１００は、移動物の重量Ｍによる固有振動数の変化および移動物の位置による固有振動数の変化を考慮して、任意の位置における加工途中の移動物の固有振動数を演算することができる。尚、本変形例は、鉛直方向であるＺ軸を加えた３次元にも拡張することができる。
【００９１】
本実施形態による工作機械における振動抑制方法の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、その方法の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。また、振動抑制方法の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００９２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００９３】
１００  工作機械、１１  モータ、１２  サーボ制御部、１４  フィルタ処理部、１  サーボ部、２  駆動機構、３  テーブル、５  主制御部、５１  パラメータ設定部、５２  プログラム解析部、５３  軌道生成部、５４  重量演算部、５５  固有振動数演算部、６  加工プログラム、Ｍ  移動物の重量、ω  移動物の固有振動数、Ａ  移動物の加速度、Ｔ  モータのトルク、ω１  第１固有振動数、ω２  第２固有振動数、ω３  第３固有振動数、ω４  第４固有振動数
【図１】
2018118362.tif 000007
【図２】
2018118362.tif 000008
【図３】
2018118362.tif 000009
【図４】
2018118362.tif 000010
【図５】
2018118362.tif 000011
【図６】
2018118362.tif 000012
【図７】
2018118362.tif 000013