(58)【調査した分野】(Int.Cl.,DB名)
前記主制御部は、前記移動物の位置情報と前記トルク値または前記モータを制御する電流値とを前記サーボ部から受け取り、前記位置情報から前記加速度を算出し、前記電流値を受け取った場合に、前記電流値から前記トルク値を演算する、請求項1に記載の工作機械。
前記主制御部は、前記未実行部分のうち前記第1ブロック以降の任意のブロックの実行前または実行中に、前記移動物の重量に基づいて前記フィルタ処理部の前記固有振動数の設定を変更する、請求項1または請求項2に記載の工作機械。
前記主制御部は、複数の位置における固有振動数を予め演算若しくは測定し、前記複数の位置の間における固有振動数を補間することによって、前記任意の位置における前記第3固有振動数を演算する、請求項4または請求項5に記載の工作機械。
前記主制御部は、前記複数の位置の間における固有振動数を線形補間またはラグランジュ補間することによって、前記任意の位置における前記第3固有振動数を演算する、請求項6に記載の工作機械。
ワークと該ワークを載置可能なテーブルとを含む移動物を移動させる駆動機構と、前記駆動機構を動作させるモータと、前記モータを制御するサーボ制御部とを有するサーボ部と、前記サーボ部へ位置指令を出力する主制御部と、を備えた工作機械における前記移動物の振動抑制方法であって、
前記ワークの加工中に前記移動物の重量を演算し、
前記移動物の重量に基づいて前記移動物の固有振動数を演算し、
前記移動物の固有振動数帯域の振動を減衰させるようにフィルタ処理部を具備し、
前記移動物の重量を演算する前に、
前記ワークの加工中に、前記ワークの加工プログラムのうち未だ実行されていない未実行部分を予め解析し、
前記未実行部分のうち前記移動物が所定値以上の距離を加速または減速する第1ブロックを検出することをさらに具備し、
前記移動物の重量は、該第1ブロックを実行することによって得られる加速度およびトルク値に基づいて演算される、ことをさらに具備する、振動抑制方法。
【発明を実施するための形態】
【0022】
以下、図面を参照して本発明に係る実施形態説明する。本実施形態は、本発明を限定するものではない。
【0023】
(第1実施形態)
図1は、第1実施形態による工作機械100のモータ11、駆動機構2およびテーブル3の構成の一例を示す図である。工作機械100は、ワークを搭載するテーブル3を移動させながら工具を用いてワークに切削等の加工を行う。移動物は、所謂、直線系移動物であり、軸に沿って水平方向に移動するワークおよびテーブル3等である。ワークは、例えば、金型である。尚、移動物は、ワークおよびテーブル3に代えて、主軸頭を含む工具であってもよい。
【0024】
モータ11は、カップリング4を介して駆動機構2と連結されている。
【0025】
駆動機構2は、ワークと該ワークを載置可能なテーブル3とを含む移動物を移動させる。駆動機構2は、ベッド21と、ボールねじ22と、リニアガイド23とを備えている。ベッド21は、工作機械100の本体に固定され、駆動機構2の他の構成要素を搭載する。ボールねじ22は、カップリング4によってモータ11と連結されており、モータ11の軸の回転に従って回転するように構成されている。モータ11の回転力は、ボールネジ22を介してナット24に伝達され、ボールネジ22に沿って直線移動を行うことができる。
【0026】
テーブル3は、リニアガイド23によって支持されている。テーブル3は、ボールねじ22およびリニアガイド23の軸方向(矢印Arの方向)に移動する。矢印Arの方向は、例えば、水平面内の或る直線方向である。テーブル3は、ワークを搭載可能である。また、ワークを工具で切削するために、テーブル3はワークをベッド21に対して相対的に動作させる。
【0027】
図2は、第1実施形態による工作機械100の構成の一例を示すブロック図である。工作機械100は、サーボ部1と、駆動機構2と、主制御部5とを備えている。サーボ部1は、モータ11、フィルタ処理部14およびサーボ制御部12を備えている。
【0028】
モータ11は、
図1を参照して説明したように、駆動機構2を動作させる。これにより、テーブル3がリニアガイド23に沿って移動する。モータ11は、サーボ制御部12によって動作する。
【0029】
フィルタ処理部14は移動物の固有振動数帯域の振動を減衰させる様に働く。
【0030】
サーボ制御部12は、モータ11を制御する位置制御部12a、速度制御部12bおよび電流制御部12cを備えている。サーボ制御部12は、主制御部5からの指令位置情報をフィルタ処理部14でフィルタ処理し、フィルタ処理された指令位置情報に従ってモータ11をフィードバック制御する。モータ11には、ロータリエンコーダ13が設けられている。ロータリエンコーダ13は、モータ11の軸の回転を検出し、その位置の変位を測定する。その位置の変位はサーボ制御部12(位置制御部12aおよび速度制御部12b)および主制御部5へフィードバックされる。ロータリエンコーダ13はリニアエンコーダやレゾルバでも良い。また、電流制御部12cは、モータ11を制御するトルク値を主制御部5へ出力する。尚、電流制御部12cは、モータ11を制御する電流の値を主制御部5へ出力してもよい。ここで、トルク値とは、電流制御部12cから受け取るトルク実測値またはトルク指令値である。後述するトルク演算値とは異なる場合がある。トルク値は、上記モータ11を制御する電流(電流値)から換算されてもよい。以下、トルク値は、単に、“トルク”とも言う。
【0031】
サーボ部1は、移動物の固有振動数帯域の振動を減衰させるフィルタ処理部14を有する。サーボ部1が主制御部5から固有振動数を受け取ることにより、フィルタ処理部14に固有振動数が設定される。フィルタは、移動物の固有振動数帯域の振動を減衰させることができる、例えば、ノッチフィルタである。
【0032】
主制御部5は、パラメータ設定部51と、プログラム解析部52と、軌道生成部53と、重量演算部54と、固有振動数演算部55とを備えている。
【0033】
パラメータ設定部51は、工作機械100のパラメータを格納する。パラメータは、例えば、ワークを乗せる軸の情報(リード情報)、送り駆動機構の剛性等である。これらのパラメータがパラメータ設定部51に格納される。
【0034】
プログラム解析部52は、ワークの加工プログラム6を解析し、解析情報を生成し、軌道生成部53へ出力する。解析情報とは、加工プログラム6の解析によって得られる、加工プログラム6の1ブロック毎の移動物の目標位置の座標、および、移動物の目標移動速度等の情報である。ブロックとは、加工プログラム6の基本単位であり、例えば、1行分の指令を示す。1行分の指令(1ブロック)は、例えば、直線移動、円弧移動、主軸の回転開始/停止等の基本的な動作の指令である。また、プログラム解析部52は、軌道生成部53が指令位置情報を生成するのに先んじて予め未処理のブロックを解析する。これは、
図4を参照して後で説明する“先解析”である。
【0035】
軌道生成部53は、加工プログラム6の1ブロック毎の移動位置、移動速度等の解析情報に基づいて、制御周期毎の目標位置データ等の指令位置情報を生成する。これにより、例えば、
図5(A)に示すように、軌道生成部53は、設定された加速度で目標速度まで加速し、一定の目標速度で移動した後、当該加速度で目標速度から減速して目標位置に到達することができるように指令位置情報を生成する。工作機械100は、このように加工プログラム6の各ブロックに従って移動物を移動させながらワークを加工する。
【0036】
また、制御周期は、位置制御部12aの制御周期であり、一つのブロックが実行されてから終了するまでの時間よりも短い時間の単位である。
【0037】
例えば、制御周期は1msecであるとする。この場合、軌道生成部53は、
図5(A)におけるt1〜t4(例えば、1min)で1msecごとにどれだけ動けばよいかを計算し、1msecごとに移動物が動く距離を指令位置情報として生成する。移動物が動くトータルの移動距離は、
図5(A)における速度のグラフにおいて1msecごとの指令位置情報を積分すれば得られる。このようにして、工作機械100は、該ブロックに従って移動物の移動を実行する。
【0038】
さらに、軌道生成部53は、重量演算部54へ重量演算指令を送る。重量演算指令は、或るブロックの解析情報の結果に基づいて、移動物の重量Mを演算するか否かを決定する指令である。例えば、解析情報において、該ブロックが移動物の重量Mを演算可能である場合、軌道生成部53は、重量演算指令を論理ハイにする。この場合、重量演算部54は、上記ブロックに従って移動物を移動させる際に、移動物の重量Mを演算する。一方、該ブロックが移動物の重量Mを演算しない場合、軌道生成部53は、重量演算指令を論理ロウにする。この場合、重量演算部54は、上記ブロックに従って移動物を移動させる際に、移動物の重量Mを演算しない。このように、軌道生成部53は、解析情報に基づいて、重量演算部54に移動物の重量Mを演算させることができる。
【0039】
重量演算部54は、重量演算指令に従って、ワークの加工中に移動物の重量Mを演算する場合、後述する式3を用いて、モータ11のトルク演算値Tと移動物の加速度Aとに基づいて求める。トルク演算値Tとは、重量演算に用いられるトルクの演算値であり、トルク実測値あるいはトルク指令値から演算される値である。従って、トルク演算値Tは、トルク値、即ち、トルク実測値あるいはトルク指令値と異なる場合もある。重量演算部54は、演算した移動物の重量Mを固有振動数演算部55へ出力する。
【0040】
一方、移動物を移動させるためのトルクは、モータ11や移動物の加減速に用いられるトルク(加減速トルク)だけでなく、摩擦トルク等のようにモータ11や移動物の駆動に用いられない成分も含む。
【0041】
本実施形態では、重量演算は、加減速時のトルクの平均を用いる。また、加速時のトルクの平均と減速時のトルクの平均の差を求めると、摩擦トルクはキャンセルされ、無視できる。従って、重量演算で用いるトルク演算値Tには、加速時のトルクの平均と減速時のトルクの平均の差を2で割った値を用いる。
【0042】
固有振動数演算部55は、重量演算部54から移動物の重量Mを受け取る。固有振動数演算部55は、移動物の重量Mと後述する式2とを用いることにより、移動物の固有振動数ωを演算する。さらに、演算した移動物の固有振動数ωでフィルタを働かせることにより、固有振動数ωの振動を抑制することができる。
【0043】
尚、主制御部5を構成するパラメータ設定部51と、プログラム解析部52と、軌道生成部53と、重量演算部54と、固有振動数演算部55とは、一つのCPU(Central Processing Unit)で実現されてもよく、それぞれ個別のCPUで実現されていてもよい。また、サーボ部1は、主制御部5の一部であってもよい。また、サーボ部1はフィルタ処理部14を備えず、主制御部5がフィルタ処理部14を備えてもよい。
【0044】
図3(A)〜
図3(C)は、それぞれ、移動物が加速される際における移動物の速度、移動物の加速度および移動物の固有振動の振幅を示すグラフである。このグラフでは、サーボ部1のフィルタ処理部14は適切に設定されていない。従って、
図3(B)および
図3(C)を参照すると、移動物の加速度が上昇および下降する時点t10、t20において、移動物に固有振動が発生していることが分かる。この固有振動数ω(rad/sec)と周波数f(Hz)の関係は、式1で表される。
【数1】
【0045】
また、移動物の固有振動数ωは、式2でも表される。
【数2】
尚、kは送り駆動機構の剛性であり、その単位は、(kgf/m)である。Mは移動物の質量であり、その単位は(kg)である。以降、移動物の重量(kgf)と質量(kg)とは同じとして、これらを移動物の重量Mと表す。
【0046】
ワークの切削加工の場合、ワークの加工が進むにつれて、時々刻々と移動物の重量Mは変化する。式2を参照すると、それに伴って、移動物の固有振動数ωも時々刻々と変化することが分かる。
【0047】
これに対し、本実施形態による工作機械100は、ワークの加工によって変化する移動物の固有振動数ωに応じて適切にフィルタ処理部14に設定する。このために、工作機械100は、ワークの加工中に移動物の重量Mを演算し、重量Mに基づいて移動物の固有振動数ωを演算する。
【0048】
ワークの加工中に移動物の重量Mを演算するためには、移動物が十分な距離を加速または減速する必要がある。従って、移動物の加速距離または減速距離を予め検出するために、以下のような加工プログラム6の先解析が必要となる。
【0049】
図4は、加工プログラム6の処理の一例を示す図である。
図4を参照して先解析について説明する。先解析は、軌道生成部53が加工プログラム6のうち未実行部分のブロックの指令位置情報を生成するのに先んじて、該ブロックに示されている目標位置や目標速度を予め解析することである。未実行部分のブロックは、実行中のブロックよりも後に実行されるブロックである。プログラム解析部52は、ワークの加工中に、ワークの加工プログラム6のうち未だ実行されていない未実行部分のブロックを先解析する。
【0050】
例えば、
図4においてはブロックB3が実行中のブロックであり、ブロックB4以降のブロックが未実行部分のブロックである。プログラム解析部52は、例えば、未実行部分のブロックB4、B5、B6・・・を実行順に先解析する。先解析において、プログラム解析部52は、未実行部分のブロックB5の目標位置や目標速度を解析する。先解析によって得られた解析情報(目標位置および目標速度)は、ブロックB5の実行前に軌道生成部53へ送られる。軌道生成部53は、解析情報に基づいて、制御周期ごとの目標位置を求め、指令位置情報を生成し、この指令位置情報に従ってサーボ部1が駆動機構2を動作させる。このように、プログラム解析部52は、移動物を移動させるために、加工プログラム6をブロックごとに先解析する。
【0051】
一方、軌道生成部53は、解析情報に基づき、指令位置情報だけでなく、重量演算指令も出力する。即ち、本実施形態は、先解析によって得られる解析情報を、移動物の移動だけでなく、重量Mの演算の可否判断にも利用している。
【0052】
例えば、まず、プログラム解析部52は、第1ブロックとしてのブロックB5を先解析し、ブロックB5の解析情報を生成し、加速または減速する距離を演算する。次に、プログラム解析部52は、ブロックB5における移動物の加速または減速する距離が所定値以上であるか否かを判断する。この所定値は、移動物の重量Mを演算することが可能な距離の閾値を示す。例えば、目標距離が所定値より短い場合、移動物は、加速して目標速度に達することなく減速してしまう。この場合、トルクが過渡的な状態となってしまい、目標速度におけるモータ11の正しいトルクを得ることが難しい。そのため、軌道生成部53は、移動物の重量Mを演算しないと判断する。一方、加速または減速する距離が所定値以上の場合、軌道生成部53はブロックB5の実行によって移動物の重量Mを演算すると判断する。プログラム解析部52は、先解析の結果を解析情報として軌道生成部53へ出力する。尚、重量Mの演算の可否判断は、プログラム解析部52が行ってもよい。
【0053】
次に、軌道生成部53は、
図2に示す重量演算部54に解析情報に応じた重量演算指令を出力する。それとともに、ブロックB4の実行後に、軌道生成部53は、解析情報に基づいて、ブロックB5の指令位置情報をサーボ部1へ出力する。これにより、重量演算部54は、ブロックB5に従って移動物が移動されるタイミングで、移動物の加速度Aおよびトルク演算値Tを測定および演算することができる。
【0054】
尚、移動物の重量Mの演算については後で詳細に説明する。
【0055】
重量演算部54は、移動物の重量Mを固有振動数演算部55へ送る。固有振動数演算部55は、重量演算部54から移動物の重量Mを受け取り、移動物の重量Mを式2に適用することにより、移動物の固有振動数ωを演算する。
【0056】
ブロックB5に従って移動物を移動させた後、その次のブロックB6に従って移動物を移動させる前に、固有振動数演算部55は、移動物の固有振動数ωの振動を減衰させるようにサーボ部1の有するフィルタ処理部14を働かせる。あるいは、固有振動数演算部55は、ブロックB6以降の任意のブロックの実行前に、フィルタ処理部14を働かせてもよい。この場合のフィルタ処理部14は、例えば、加工プログラム6により設定されたタイミング、または、工作機械100の外部からPLC(Programmable Logic Controller)等により通知されたタイミングで固有振動数の設定変更が行われてもよい。また、固有振動数演算部55は、ブロックB6以降の任意のブロックの実行中に、フィルタ処理部14を働かせてもよい。
【0057】
このように、移動物の重量Mを正確に演算するために、プログラム解析部52は、先解析において、移動物が所定値以上の距離だけ加速または減速する加工プログラム6のブロックを予め検出している。
【0058】
(重量Mの演算)
移動物の重量Mの演算について説明する。
【0059】
図5(A)〜
図5(E)は、それぞれ、
図4に示すブロックB5に従った移動物の速度、モータ11の加減速トルク、クーロン摩擦による摩擦トルク、粘性摩擦による摩擦トルクおよびトルクを示すグラフである。
図5(A)は、ブロックB5における位置の変位の実測値から計算される速度、または、軌道生成部53により生成されるブロックB5の速度指令を示す。
図5(B)は、モータ11の加減速トルクを示す。
図5(C)は、ブロックB5の実行時におけるクーロン摩擦を示す。
図5(D)は、ブロックB5の実行時における粘性摩擦を示す。
図5(E)は、ブロックB5のトルクを示す。尚、このトルクは、モータ11を制御する電流の実測値から換算されてもよい。
【0060】
摩擦トルクには、
図5(C)に示すクーロン摩擦と
図5(D)に示す粘性摩擦とがある。
図5(C)に示すクーロン摩擦は、質量を有する物体が動くときに働く摩擦である。従って、
図5(C)のクーロン摩擦は、移動物の速度がゼロでない領域で一定の摩擦が働くことを示している。粘性摩擦は、移動物の速度に比例する摩擦である。従って、
図5(D)の粘性摩擦は、移動物の速度と類似するグラフとなる。トルクは、加減速トルクと、クーロン摩擦の摩擦トルクと、粘性摩擦の摩擦トルクとの和であり、
図5(E)に示すようなグラフとなる。
【0061】
まず、重量演算部54は、加速時または減速時における速度およびトルクをサンプリングする。このサンプリングは、制御周期ごとに得られた速度およびトルクの中から任意のデータ点を選択することである。サンプリングの回数は、特に限定しないが、例えば、t1〜t2の加速時またはt3〜t4の減速時において100回ずつ行われる。次に、重量演算部54は、サンプリングしたデータをローパスフィルタで高周波成分をカットする。次に、重量演算部54は、サンプリングした速度の傾きを最小二乗法により求める。この速度の傾きが加速度Aとなる。t1〜t2およびt3〜t4におけるそれぞれの加速度の絶対値の平均値を加速度Aとしてもよい。尚、加速度は、位置の変位の実測値によらず、加速度の指令値を用いてもよい。
【0062】
さらに、重量演算部54は、ブロックB5の加減速時のトルクの平均値を求める。重量演算部54は、
図5(E)のt1〜t2の加速期間におけるサンプリングしたトルクの平均値とt3〜t4の減速期間におけるサンプリングしたトルクの平均値との差を2で割り算する。これにより、重量演算部54は、摩擦トルクを除去した加減速時のトルクの平均値をトルク演算値Tとして演算することができる。トルク演算値Tは、
図5(B)のt1〜t2の加減速トルクとt3〜t4の加減速トルクの絶対値との平均値にほぼ等しくなる。
【0063】
その後、重量演算部54は、トルク演算値Tと加速度Aとを式3に用いることによって、移動物の重量Mを演算する。移動物の重量Mは、式3で表される。
【数3】
ここで、トルク演算値Tの単位は、(kgf・m)、Aの単位は(m/sec
2)、Jmは回転駆動系のイナーシャ(kgf・m・sec
2)、Lはモータ1回転あたりの軸移動量(m)である。尚、回転駆動系のイナーシャJmおよびモータ1回転あたりの軸移動量Lは、パラメータ設定部51により設定される定数である。
【0064】
このように、本実施形態による工作機械100は、ワークの加工中に移動物の重量Mを自動で演算することができる。
【0065】
尚、重量演算部54は、加速時または減速時のいずれか一方の加速度A、および/または、トルク演算値Tに代えて加速時または減速時のいずれか一方のトルクの平均値を式3に用いて移動物の重量Mを求めてもよい。この場合、重量演算部54は、摩擦トルクを測定する等の対処が必要となる。
【0066】
また、重量演算部54は、重量センサ等の外部センサを用いて移動物の重量Mを計測してもよい。また、固有振動数演算部55は、振動センサなどの外部センサを用いて移動物の固有振動数ωを計測してもよい。
【0067】
図6は、第1実施形態による工作機械100の一連の動作例を示すフロー図である。
【0068】
まず、ユーザがパラメータ設定部51に工作機械100のパラメータの設定をする(S10)。パラメータ設定部51には、ワークを乗せる軸を示す識別情報と、送り駆動機構の剛性kと、加工時の移動物の加速度と、回転駆動系のイナーシャJm(モータ情報)と、モータ1回転あたりの軸移動量L(リード情報)とが格納される。これらのパラメータは、機械調整時に設定されるものである。
【0069】
次に、工作機械100は、加工プログラム6を実行する(S20)。加工プログラム6が終わるまで、プログラム解析部52は加工プログラム6の先解析を行う(S30のNO、S40)。プログラム解析部52は、加工プログラム6のブロック(例えば、B5)を先解析し、移動物を加速または減速する距離が所定値以上であるか否かを検出する。加速または減速する距離が所定値以上の場合(S50のYES)、重量演算部54は、上述の通り、式3を用いて移動物の重量Mを演算する(S60)。
【0070】
固有振動数演算部55は、演算された移動物の重量Mに基づいて、移動物の固有振動数ωを演算する(S70)。固有振動数演算部55は、移動物の固有振動数ωの振動を抑制するように、サーボ部1のフィルタ処理部14の固有振動数設定を変更する(S80)。フィルタ処理部14の固有振動数の設定変更は、先解析されたブロックの次のブロック(例えば、B6)の実行前に行われる。尚、フィルタ処理部14の固有振動数の設定変更は、先解析されたブロック(例えば、B5)以降の任意のブロックの実行前でもよい。また、固有振動数演算部55は、ブロックB6以降の任意のブロックの実行中に、フィルタ処理部14の固有振動数設定を変更してもよい。
【0071】
一方、加速または減速する距離が所定値未満である場合(S50のNO)、そのブロックではステップS60〜S80は実行されない。この場合、フィルタ処理部14の固有振動数の設定変更は実行されないものの、ワークの加工は継続される。
【0072】
工作機械100は、加工プログラム6が終了するまでステップS40〜S80を繰り返し、加工プログラム6が終了した場合に動作を終了する(S30のYES)。
【0073】
このように、本実施形態による工作機械100は、ワークの加工中に移動物の重量Mを演算し、時々刻々変化する移動物の重量Mに対応する移動物の固有振動数ωを演算し、その固有振動数ωの振動を抑制するようにフィルタ処理部14の固有振動数を設定することができる。このように、時々刻々変化する移動物の固有振動を抑制することで、固有振動による加工不良を抑制し、高精度な加工を行うことが可能となる。さらに、工作機械100は、移動物の加速度を低下させることなく、移動物の固有振動を抑制することができるため、高い加速度で加工することが可能となる。従って、本実施形態による工作機械100は、ワークを高速、短時間にかつ高精度に加工することができる。
【0074】
また、本実施形態による工作機械100は、加工プログラム6の実行中に自動で移動物の重量を演算してフィルタの設定までを行うため、ユーザにとって手間がかからない。
【0075】
(第2実施形態)
移動物の固有振動数ωは、駆動機構2における移動物の位置に依存する場合もある。しかし、第1実施形態においては、加工中の移動物の固有振動数ωは、移動物の重量Mに依存しているものの、移動物の位置については考慮していない。そこで、第2実施形態による工作機械100は、移動物の重量Mだけではなく、移動物の位置も考慮して移動物の固有振動数ωを演算する。
【0076】
第2実施形態による工作機械100は、移動物の重量Mによる固有振動数と移動物の位置による固有振動数とを別々に求め、それぞれの固有振動数の変化を補正することにより移動物の固有振動数ωを演算する。
【0077】
尚、移動物の重量Mによる固有振動数は、第1実施形態による工作機械100が演算する移動物の固有振動数ωと同じでよい。また、第2実施形態による工作機械100の構成は、第1実施形態による工作機械100の構成と基本的に同様であるので、その詳細な説明を省略する。
【0078】
図7は、第2実施形態による移動物の固有振動数ωの一例を示すグラフである。このグラフの縦軸は、移動物の固有振動数を示し、横軸は、或る基準点からの移動物の距離を示す。即ち、X軸は、移動物の位置を示す。
【0079】
加工前または加工開始当初において、ワークはほとんど切削されていないので、移動物の重量Mは比較的重い。一方、加工途中において、ワークの加工が進むと、移動物の重量Mは次第に軽くなる。従って、加工が進むにつれて移動物の固有振動数は、加工前の固有振動数よりも高くなる。
【0080】
さらに、
図7から分かるように、移動物の固有振動数は、移動物の位置によっても変化する。第2実施形態による工作機械100は、このような移動物の位置による移動物の固有振動数の変化も考慮してフィルタ処理部14の固有振動数の設定を行う。
【0081】
例えば、予め、移動物の位置を複数個所変えて移動物の固有振動数をハンマリング試験等で測定する。測定した固有振動数はパラメータ設定部51に格納しておく。測定した位置の固有振動数と他の位置との固有振動数間は、直線補間、線形補間、ラグランジェ補間等の補間方法で補間する。
図7の例ではXA〜XEの5ヶ所で固有振動数(固有振動数ωA〜ωE)を測定し、それぞれの固有振動数を直線補間で補間して任意の位置の第3固有振動数を求める。尚、固有振動数演算部55は、予め、移動物の位置を複数個所変えて移動物の固有振動数を演算してもよい。
【0082】
図7の任意の位置Xaの場合を例に説明する。
【0083】
任意の位置Xaでの第3固有振動数ω3は、ωC〜ωD間を直線補間しているので、
【数4】
となり、また、加工前または加工開始当初の加速度Aおよびトルク演算値Tを式3に適用して固有振動数演算部55で演算した第1固有振動数をω1、加工途中(Xaの位置)の移動物の加速度Aおよびトルク演算値Tを式3に適用して固有振動数演算部55で演算した加工途中の第2固有振動数をω2とすると、フィルタ処理部14で減衰させる第4固有振動数ω4は、ω4=ω3×ω2/ω1となる。
【0084】
このように、任意の位置における第3固有振動数を予め求めておき、加工前または加工開始当初の移動物の第1固有振動数ω1と加工途中の移動物の第2固有振動数ω2との比率(ω2/ω1)を用いて補正することによって、該位置における加工途中の移動物の第4固有振動数ω4を演算することができる。
【0085】
第2実施形態による工作機械100は、移動物の重量Mによる固有振動数の変化および移動物の位置による固有振動数の変化を考慮して、任意の位置における加工途中の移動物の固有振動数を演算することができる。従って、第2実施形態による工作機械100は、より正確な移動物の固有振動数を演算することができる。
【0086】
(変形例)
第2実施形態による工作機械100は、移動物をX軸方向に移動させる駆動機構2を有する。これに対し、本変形例による工作機械100は、移動物をX軸方向に移動させる駆動機構と、移動物をY軸方向に移動させる駆動機構とを有する。X軸およびY軸は、水平面内において互いに直交している。即ち、本変形例による駆動機構2は、移動物を水平面内に移動させることができる。
【0087】
Y軸方向を考慮せずにX軸方向の位置による移動物の固有振動数ωを求めてフィルタ処理部14の固有振動数を設定しても、固有振動を抑制することができない場合がある。また、場合によっては、Y軸方向の固有振動がX軸方向の固有振動に影響を与える可能性もある。そこで、本変形例による工作機械100は、X軸方向およびY軸方向の両方向の位置を考慮して移動物の固有振動数ωを演算する。
【0088】
例えば、本変形例では、加工前または加工開始当初に、X軸方向およびY軸方向の両方向に移動物を移動させながら複数の位置において固有振動数を測定する。その後、複数の位置における固有振動数を用いて複数の位置の間における固有振動数を補間する。これにより、固有振動数演算部55は、水平面内の任意の位置における第3固有振動数ω3を演算することができる。尚、補間は、線形補間またはラグランジュ補間のいずれの補間でもよい。
【0089】
さらに、固有振動数演算部55は、第2実施形態と同様に、加工前または加工開始当初の移動物の第1固有振動数ω1と加工途中の移動物の第2固有振動数ω2との比率(ω2/ω1)を演算し、第3固有振動数ω3を補正することによって、水平面内の任意の位置における加工途中の移動物の第4固有振動数ω4を演算することができる。
【0090】
このように、移動物を水平面内に移動させる場合においても、本変形例による工作機械100は、移動物の重量Mによる固有振動数の変化および移動物の位置による固有振動数の変化を考慮して、任意の位置における加工途中の移動物の固有振動数を演算することができる。尚、本変形例は、鉛直方向であるZ軸を加えた3次元にも拡張することができる。
【0091】
本実施形態による工作機械における振動抑制方法の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、その方法の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。また、振動抑制方法の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0092】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。