以下、本発明の実施形態を説明する。図1に示す工作機械10は、主軸9に装着した工具4を高速回転し、テーブル50上に冶具(図示略)で固定した被削材Wに接触することで、被削材Wの切削加工等を行う。工作機械10の左右方向、前後方向、上下方向は、夫々X軸方向、Y軸方向、Z軸方向である。
図1,図2を参照し、工作機械10の構成を説明する。図1に示すように、工作機械10は、ベッド部2、コラム5、主軸ヘッド7、主軸9、テーブル装置40、操作盤16(図2参照)等を備える。工作機械1は、テーブル装置40のテーブル50がX、Yの二軸方向に移動制御可能な工作機械である。ベッド部2は、工作機械10の土台である。コラム5は、ベッド部2上面後部に固定する。主軸ヘッド7は、コラム5前面に沿ってZ軸方向に移動可能である。コラム5は前面にZ軸移動機構(図示略)を備える。Z軸移動機構は、Z軸モータ11(図2参照)を駆動源とし、主軸ヘッド7をZ軸方向に移動可能に制御する。Z軸移動機構は、後述するY軸移動機構と同様の構造である。主軸9は主軸ヘッド7内部をZ軸方向に延び、回転可能に設ける。主軸9の下端部に設けた工具装着穴(図示略)は、主軸9下部に設ける。工具4は工具装着穴に装着する。
テーブル装置40は、ベッド部2上面で且つ主軸ヘッド7下方に設ける。テーブル装置40は、テーブル50をX軸とY軸の二軸方向に移動制御可能に支持する。なお、説明の便宜上、図1に示すテーブル装置40は、テーブル50をY軸方向に移動するY軸移動機構のみを図示し、X軸移動機構は省略する。テーブル装置40は、ベッド部41、Y軸ガイドレール42、Y軸モータ14、カップリング43、ボールねじ44、前側軸受部45、ナット46、テーブル50等を備える。ベッド部41、Y軸ガイドレール42、Y軸モータ14、カップリング43、ボールねじ44、前側軸受部45、ナット46は、Y軸移動機構を構成する。
ベッド部41は、ベッド部2上面に設置する。ベッド部41は左右方向中央部にY軸方向に長い凹部(図示略)を備え、該凹部の内側に、後述するY軸移動機構の大部分を格納する。Y軸ガイドレール42は、ベッド部41上部に設け、Y軸方向に延びる。Y軸ガイドレール42は、テーブル50をY軸方向に移動可能に案内する。Y軸モータ14は、ベッド部41の凹部後側に設ける。ボールねじ44は、ベッド部2の凹部内側に設け、Y軸方向に延びる。カップリング43は、Y軸モータ14の前方に突出する出力軸と、ボールねじ44の後端部を互いに連結する。前側軸受部45は、ボールねじ44前端部を回転可能に支持する。故にY軸モータ14の出力軸が回転すると、カップリング43を介してボールねじ44は回転する。ナット46はテーブル50の下面に固定し、ボールねじ44に螺合する。故にボールねじ44の回転に伴い、テーブル50はナット46と共にY軸方向に移動する。
なお、テーブル装置40は、上記Y軸移動機構に加え、X軸の移動機構を備える。X軸移動機構は、Y軸移動機構をX軸方向に移動可能に支持する。X軸移動機構は、X軸モータ13(図2参照)を駆動源とし、Y軸移動機構の構造と同様である。
図2に示すように、操作盤16は、入力部17と表示部18を備える。入力部17は各種入力、指示、設定等を行う為の機器である。表示部18は各種画面を表示する機器である。操作盤16は、数値制御装置20の入出力部25に接続する。Z軸モータ11はエンコーダ11Aを備える。主軸モータ12はエンコーダ12Aを備える。X軸モータ13はエンコーダ13Aを備える。Y軸モータ14はエンコーダ14Aを備える。エンコーダ11A〜14Aは数値制御装置20の後述する駆動回路26〜29に各々接続する。
図2を参照し、数値制御装置20の電気的構成を説明する。数値制御装置20は、CPU21、ROM22、RAM23、記憶装置24、入出力部25、駆動回路26〜29等を備える。CPU21は、数値制御装置20を統括制御する。ROM22は、フィルタ設計プログラム、加工制御プログラム等の各種プログラムを記憶する。フィルタ設計プログラムは、後述するフィルタ設計処理(図12〜図14参照)を実行する為のプログラムである。加工制御プログラムは、後述する加工制御処理(図15参照)を実行する為のプログラムである。RAM23は、各種処理実行中の各種データを記憶する。記憶装置24は不揮発性メモリであり、NCプログラムの他、各種データを記憶する。入出力部25は、操作盤16に接続する。駆動回路26〜29はサーボアンプである。駆動回路26はZ軸モータ11とエンコーダ11Aに接続する。駆動回路27は主軸モータ12とエンコーダ12Aに接続する。駆動回路28はX軸モータ13とエンコーダ13Aに接続する。駆動回路29はY軸モータ14とエンコーダ14Aに接続する。
CPU21は、被削材Wを加工する為のNCプログラムを読込み、送り軸(X軸、Y軸、Z軸)、主軸9等の各駆動軸を目標位置に移動する為の制御指令を駆動回路26〜29に送信する。駆動回路26〜29は、CPU21から受信した制御指令(駆動信号)に応じて対応する各モータ11〜14に駆動電流(パルス)を夫々出力する。駆動回路26〜29はエンコーダ11A〜14Aからフィードバック信号(位置と速度の信号)を受け、モータ11〜14の位置と速度の制御を行う。
図1,図3,図4を参照し、テーブル50上に載置する積載物の質量と、工作機械10に発生する振動との関係を説明する。積載物とは、テーブル50上に積載する物であり、例えば被削材Wや治具等である。上記構成の工作機械10は、テーブル50上に様々な冶具や被削材Wを積載して動作する。テーブル50の加減速制御により、テーブル50は振動し(図1中V2参照)、主軸ヘッド7はコラム5を介して振動する(図1中V1参照)。冶具や被削材Wの質量は対象物により、テーブル50の質量に対し数%〜数100%の質量になる。故に積載物の質量が大きく変化した場合、テーブル50の固有振動数も大きく変化する。固有振動数とは、機械が最も振動し易い機械固有の振動周波数を意味する。
本実施形態は、積載物の質量の違いによって工作機械10の固有振動数が変化するか確認する為、テーブル50と主軸ヘッド7の夫々の動特性測定試験を行った。動特性試験は、一般的なインパルス応答法で行い、テーブル50及び主軸ヘッド7の夫々をハンマーで加振したときの振動の周波数特性を、変位センサを用いて測定した。動特性試験では、テーブル50上の積載物の質量を変え、テーブル50側の固有振動数、及び主軸ヘッド7側の固有振動数について分析した。質量Mはテーブル50に積載物を積載した時のテーブル50と積載物の合計の質量である。質量MMAXはテーブル50に積載可能な最大限の質量を積載した時のテーブル50と積載物の合計の質量であり、質量MMINはテーブル50に何も積載していない時のテーブル50のみの質量である。
図3は、テーブル50側の周波数特性の結果である。図3に示すように、質量MMAXのテーブル50の固有振動数は、65Hz付近であった。一方、質量MMINのテーブル50の固有振動数は、90Hz付近であった。故に質量Mが変化した場合、テーブル50の固有振動数も変化することが分かった。
図4は、主軸ヘッド7側の周波数特性の結果である。図4に示すように、質量MMAXの主軸ヘッド7の固有振動数、及び質量MMINの主軸ヘッド7の固有振動数の何れも、40Hz付近であった。故に質量Mが変化した場合であっても、主軸ヘッド7の固有振動数は変化しないことが分かった。固有振動数が変化しない理由は、主軸ヘッド7の質量は変わらないからである。
上記結果より、工作機械10は、質量MMAXのとき、40Hz付近と65Hz付近で振動し易く、質量MMINのとき、40Hz付近と90Hz付近で振動し易いことが分かった。故に数値制御装置20は、加工動作中に発生する振動を効果的に抑制する為に、テーブル50上の積載物の質量の変更によって変化する周波数の振動を抑制すると共に、積載物の質量の変更によっては変化しない周波数の振動を抑制することが重要である。
図5〜図8を参照し、機械の固有振動数と移動平均フィルタの関係を説明する。移動平均フィルタは、送り軸毎の加減速制御に適用するものであり、FIRフィルタを用いるのが好ましい。本実施形態は、機械の固有振動数と移動平均フィルタの関係性を理解する為、処理時間の異なる三つの移動平均フィルタA〜Cを、Y軸の加減速制御に適用したときの振幅を測定し、比較した。移動平均フィルタの処理時間は、時定数である。固有振動数Faに対して、移動平均フィルタA(以下、フィルタAと呼ぶ)の処理時間を1/Faに設定した。その他の移動平均フィルタB、C(以下、フィルタB、Cと呼ぶ)の処理時間を、フィルタCの処理時間<フィルタAの処理時間<フィルタBの処理時間となるように設定した。
図5は、フィルタAを適用したときの振幅の時間変化を示す。フィルタAを適用した場合、振幅は小さい。フィルタAは、固有振動数Faの逆数を処理時間に設定したので、振幅を抑制できることが分かった。図6は、フィルタBを適用したときの振幅の時間変化を示す。フィルタBは処理時間がフィルタAよりも伸びているにも関わらず、振幅は大きくなっている。図7は、フィルタCを適用したときの振幅の時間変化を示す。フィルタCは、フィルタAに比べ、処理時間が短くなっているので、加減速が速くなったことから振幅が大きくなっている。以上結果より、固有振動数Faに対し、フィルタAが最適なフィルタ機能を有していることが分かった。数値制御装置20は、加減速時間が短い場合であっても、最適な処理時間の移動平均フィルタを設定することで、振幅を抑制できる。
仮に固有振動数Faが変化した場合、数値制御装置20は、移動平均フィルタを変更することにより、振幅を小さくできる。上記の動特性試験で説明したように、質量Mが変化した場合、テーブル50の固有振動数Faは変化する。これに合わせ、移動平均フィルタの処理時間を変化させることで、振幅を効果的に抑制できる。
図8は、上記図5〜図7の振幅を夫々フーリエ変換したものである。制振周波数とは、フィルタのゲインが0になる周波数であり、振動を抑制できる周波数である。フィルタAを適用したときの振幅において、フィルタAの制振周波数は、固有振動数Faと一致しているので、フィルタB,Cを適用した場合と比較して、固有振動数Faにおける振幅は小さくなっている。これに対し、フィルタBを適用したときの振幅では、フィルタBの制振周波数は、固有振動数Faに対して低周波数側にずれているので、固有振動数Faにおける振幅は抑制されずに、フィルタAを適用した場合と比較して大きくなっている。フィルタCを適用したときも同様に、フィルタCの制振周波数は、固有振動数Faに対して高周波数側にずれているので、固有振動数Faにおける振幅は抑制されずに、フィルタAを適用した場合と比較して大きくなっている。故に数値制御装置20は、固有振動数Faに対し、移動平均フィルタの処理時間を合わせることで、固有振動数Faにおける振幅を抑制できる。
図9,図10を参照し、移動平均フィルタの処理時間と周波数特性の関係を説明する。数値制御装置20は、移動平均フィルタの処理時間の逆数を、制振周波数から取り除くことができる。図9は、三つの移動平均フィルタの処理時間を示す図表である。三つの移動平均フィルタは、フィルタta、フィルタtb−1、フィルタtb−2である。フィルタtaの処理時間は0.025secである。フィルタtb−1の処理時間は0.011secである。フィルタtb−2の処理時間は0.015secである。故にフィルタtaの制振周波数は40.0Hz、フィルタtb−1の制振周波数は90.9Hz、フィルタtb−2の制振周波数は66.7Hzになる。
図10は、図9に示す三つの移動平均フィルタの周波数特性を示す図表である。移動平均フィルタの周波数特性は、フーリエ変換等で求めることができる。tは処理時間である。フィルタtaのゲインは、40Hzで0(P1参照)になることから、40Hz付近の振動を抑制できる。フィルタtb−1のゲインは、90.9Hzで0(P2参照)になることから、90Hz付近の振動を抑制できる。フィルタtb−2のゲインは、66.7Hzで0(P3参照)になることから、65Hz付近の振動を抑制できる。
故に本実施形態の数値制御装置20は、二つのフィルタtaとtbを設定する。フィルタtaは、質量Mの変更とは関係なく発生する振動を抑制する為に、処理時間を固定したフィルタである。フィルタtbは、質量Mにより変化した周波数の振動を抑制する為に、処理時間を変更可能なフィルタである。フィルタtbの処理時間は、質量Mの設定によって、フィルタtb−1の処理時間と、フィルタtb−2の処理時間との間で変更する。
図11を参照し、フィルタtbの処理時間の変化率を説明する。フィルタtbの処理時間は、質量Mの設定変更により変化する。フィルタtbの処理時間の変化率は、質量MMINのときの固有振動数(90Hz)と、質量MMAXのときの固有振動数(65Hz)とに基づき、算出するとよい。具体的に言うと、固有振動数の逆数はフィルタの処理時間であるから、質量MMINの固有振動数の逆数(0.011sec)と、質量MMAXの固有振動数の逆数(0.015sec)とを直線で結ぶと、図11に示す図表の点線になる。
図11に示す点線は、質量MをMMINからMMAXまで変化させたときのフィルタtbの処理時間の変化に相当する。フィルタtbの処理時間は、質量MMINからMMAXにかけて比例する。フィルタtbの処理時間の変化の傾きは変化率である。故に数値制御装置20は、処理時間の変化率に基づき、質量Mに対応するフィルタtbの処理時間を決定できる。以下説明では、処理時間の変化率をフィルタ変化率と呼ぶ。一方、図11に示す実線は、質量MをMMINからMMAXまで変化させたときのフィルタtaの処理時間の変化を示す。フィルタtaの処理時間は、質量Mに関係無く、0.025secに固定する。
図12を参照し、フィルタ設計処理を説明する。例えば作業者は、工作機械10の動的特性に対応する移動平均フィルタを設計して登録する為、操作盤16の入力部17で移動平均フィルタの設計操作を入力する。CPU21は、移動平均フィルタの設計操作の入力を受け付けると、ROM22からフィルタ設計プログラムを読出し、本処理を実行する。
CPU21は、工作機械10の動的特性を測定する為、テーブル50は積載物無の状態で、準備完了か否か判断する(S1)。CPU21は、表示部18に例えば「テーブル上に積載物はありませんか?」等のメッセージを表示するとよい。作業者はテーブル50上に積載物が無いことを確認し、準備完了であれば、準備完了の操作を入力部17で入力する。準備完了の操作が入力するまで(S1:NO)、CPU21はS1に戻って待機する。準備完了の操作が入力した場合(S1:YES)、CPU21はテーブル50の位置決め動作を実行する(S2)。なお、位置決め動作を実行する前に、CPU21はアラーム等を出力して注意喚起するとよい。位置決め動作は、例えばテーブル50を所定位置Y0からY軸方向に移動して目的位置Y1に位置決めする動作である。
CPU21は位置決め動作実行中に、変位センサを用いて、工作機械10の動特性を測定する(S3)。工作機械10の動特性は、主軸ヘッド7側の動特性と、テーブル50側の動特性である。CPU21は、積載物無の状態で測定した動特性の情報(以下、動特性情報と呼ぶ)をRAM23に記憶する(S4)。動特性情報とは、例えば図3、図4に示す変位の周波数特性の情報である。
CPU21は、テーブル50は最大質量の積載物を積載した状態で、準備完了か否か判断する(S5)。CPU21は、表示部18に例えば「テーブル上に最大質量の積載物を積載しましたか?」等のメッセージを表示するとよい。作業者はテーブル50上に最大質量の積載物を積載し、準備完了であれば、準備完了の操作を入力部17で入力する。準備完了の操作が入力するまで(S5:NO)、CPU21はS5に戻って待機する。準備完了の操作が入力した場合(S5:YES)、CPU21はテーブル50の位置決め動作を再度実行する(S6)。CPU21は位置決め動作実行中に、変位センサを用いて、工作機械10の動特性を再度測定する(S7)。CPU21は、最大質量の積載物を積載した状態で測定した動特性情報をRAM23に記憶する(S8)。CPU21は、ヘッド側フィルタ設計処理を実行する(S9)。
図13を参照し、ヘッド側フィルタ設計処理を説明する。CPU21は、RAM23に記憶した主軸ヘッド7側の動特性情報(図4参照)に基づき、主軸ヘッド7側のフィルタtaを設計する(S21)。例えば、フィルタtaの固有振動数は40Hzであることから、その逆数である0.025secを処理時間とするフィルタtaを設計する。次いで、CPU21は、質量MMINとMMAXの違いで、固有振動数に変化が有るか否か判断する(S22)。動特性の測定結果が正常であれば、質量Mが違っていても固有振動数はほぼ一致する。故に固有振動数の差が閾値以下であれば、変化無とみなし(S22:YES)、CPU21はフィルタtaを設定し、RAM23に記憶する(S23)。CPU21は本処理を終了し、図12に示すフィルタ設計処理に戻り、テーブル側フィルタ設計処理を実行する(S10)。
一方、質量MMINとMMAXの違いで、固有振動数に変化があった場合(S22:NO)、動特性の測定に不備があり、測定が正常に行われなかった可能性が高い。故にCPU21はエラー報知を行い(S24)、本処理を終了する。エラー報知は、例えば表示部18にエラー表示をしてもよく、アラームを出力してもよい。故に作業者は、移動平均フィルタの再設計を試みることができる。
図14を参照し、テーブル側フィルタ設計処理を説明する。CPU21は、RAM23に記憶したテーブル50側の動特性情報(図3参照)に基づき、テーブル50側のフィルタtbminとtbmaxを設計し記憶装置24に記憶する。(S31)。フィルタtbminは、質量MMINのときの固有振動数の逆数を処理時間とするフィルタtbである。フィルタtbmaxは、質量MMAXのときの固有振動数の逆数を処理時間とするフィルタtbである。CPU21は、以下の数1を用いて、フィルタtbminとフィルタtbmaxの夫々の処理時間であるtbmin、tbmaxからフィルタ変化率tx(図11参照)を計算し、記憶装置24に記憶する(S32)。
[数1]
tx=(tbmax/tbmin)/Mmax
CPU21は、記憶装置24に記憶したtx、tbminと予め入力された質量Mから以下の数2を用いてフィルタtbの処理時間を計算し、該計算した処理時間を有するフィルタtbをRAM23に記憶する(S33)。
[数2]
tb=tx×M+tbmin
CPU21は本処理を終了し、図12に示すフィルタ設計処理に戻る。
CPU21は、RAM23に記憶したフィルタtaとtbを合成し、フィルタtcを設計する(S11)。CPU21は、設計したフィルタtcを記憶装置24に記憶し(S12)、本処理を終了する。
なお、本実施形態では、説明の便宜上、Y軸方向における加減速処理に適用するフィルタtaとtbの設計について説明したが、X軸方向における加減速処理に適用するフィルタtaとtbについても同様に設計するとよい。記憶装置24は、軸毎にフィルタtaとtbを記憶するとよい。
図15を参照し、加工制御処理について説明する。例えば、作業者は、表示部に表示したメニュー画面から所望のNCプログラムを選択し、加工動作実行の操作を入力する。CPU21は、加工動作実行の操作の入力を受け付けると、ROM22から加工制御プログラムを読出し、本処理を実行する。
CPU21は、テーブル50上に被削材Wと冶具の設置が完了したか否か判断する(S41)。CPU21は、表示部18に例えば「テーブル上に被削材を設置しましたか?」のメッセージを表示するとよい。作業者はテーブル50上に冶具で被削材Wを固定したことを確認し、設置完了の操作を入力部17で入力する。設置完了の操作が入力するまで(S41:NO)、CPU21はS41に戻って待機する。設置完了の操作が入力した場合(S41:YES)、CPU21は、積載質量の入力を受け付けたか否か判断する(S42)。CPU21は、表示部18に例えば「積載物の質量を入力して下さい。」のメッセージを表示するとよい。作業者は、テーブル50上に積載した被削材Wと冶具を合わせた総質量を、入力部17で入力する。積載物の質量の入力を受け付けるまで(S42:NO)、CPU21はS42に戻って待機する。
積載物の質量の入力を受け付けた場合(S42:YES)、CPU21は、記憶装置24に記憶したフィルタtcとフィルタ変化率を読込む(S43)。CPU21は、読込んだフィルタ変化率を用いて、入力した質量と予め記憶するテーブル50の質量とを合わせた質量Mに対応する処理時間を算出し、算出した処理時間でフィルタtcを変更する(S44)。具体的には、フィルタtcのうちフィルタtbの処理時間だけを変更すればよい。変更したフィルタtcは、フィルタtdとして新たに設定し、RAM23に記憶する(S45)。
CPU21は、操作盤16で作業者が選択したNCプログラムを記憶装置24から読込む(S46)。CPU21は加工開始か否か判断する(S47)。作業者は、加工開始の操作を入力部17で入力する。加工開始の操作が入力するまで(S47:NO)、CPU21はS47に戻って待機する。加工開始の操作が入力した場合(S47:YES)、CPU21はNCプログラムを1行ずつ解釈し、加工動作を実行する(S48)。
CPU21は加工動作中において、テーブル50を移動するか否か判断する(S49)。テーブル50を移動しない場合(S49:NO)、CPU21は、加工が終了したか否か判断する(S51)。加工が終了していない場合(S51:NO)、CPU21はS49に戻って処理を繰り返す。
CPU21は、NCプログラムを解釈し、例えばY軸の移動指令を生成した場合、テーブル50をY軸方向に移動するので(S49:YES)、RAM23に記憶したフィルタtdを読込み、Y軸モータ14に出力する加速度指令をフィルタtdで処理する(S50)。Y軸モータ14は、フィルタtdで処理した加速度指令に従い、テーブル50をY軸方向に移動する。なお、X軸の移動指令を生成した場合もY軸と同様に、X軸に対応するフィルタtdをRAM23から読込み、X軸モータ13に出力する加速度指令をフィルタtdで処理すればよい。故にCPU21は、主軸ヘッド7側の固有振動数による振動を抑制できると共に、テーブル50上の積載物の質量に応じた周波数の振動も抑制できる。故に数値制御装置20は、テーブル50上の被削材Wを良好に切削加工できる。CPU21はS51に進み、加工終了するまで(S51:NO)、S49に戻って処理を繰り返す。加工終了の場合(S51:YES)、CPU21は本処理を終了する。
以上説明したように、本実施形態の数値制御装置20は、工作機械10の動作を制御する。工作機械10はテーブル50をX軸モータ13及びY軸モータ14で移動し、主軸9に装着した工具4で、テーブル50上に冶具で支持した被削材Wを加工可能である。数値制御装置20のCPU21は、テーブル50の位置指令から生成した加速度指令に対して加減速処理を実行可能である。CPU21は、フィルタtaとフィルタtbを合成したフィルタtcで加速度指令を処理する。フィルタtaは、工作機械10の固有振動数の逆数を時定数とする移動平均フィルタである。フィルタtbは、テーブル50上の積載物の質量に応じて変化する振動周波数の逆数を時定数とする移動平均フィルタである。CPU21は、フィルタtcのうちフィルタtbの時定数を、テーブル50上の積載物の質量に応じて変更可能に設定し、フィルタtdとして記憶する。
テーブル50が移動して停止すると、工作機械10は振動する。テーブル50上の積載物の質量を変更した場合、工作機械10の固有振動数はほぼ変化しないが、送り軸であるX軸モータ13及びY軸モータ14で移動するテーブル50の移動機構に起因する振動周波数は変化する。数値制御装置20のCPU21は、上記フィルタtaとフィルタtbで処理するので、テーブル50の移動停止時に工作機械10に発生する振動について、工作機械10の固有振動数による振動を抑制し、且つテーブル50上の積載物の質量の変更によって変化する周波数の振動も抑制できる。
上記実施形態のCPU21は、積載物の質量の入力を受け付け、質量に応じて変化する振動周波数の変化率に基づき、受け付けた質量に対応する振動周波数を算出する。CPU21は算出した振動周波数の逆数を時定数として設定する。故に数値制御装置20は、積載物の質量を入力するだけで、その質量に応じて工作機械10に発生する振動を抑制できる。
上記実施形態のフィルタtaとフィルタtbは、FIRフィルタであるので、加速度指令で制御する加速度の周波数から、フィルタtaの時定数の逆数である機械の固有振動数と、フィルタtbの時定数の逆数である振動周波数とを取り除くことができる。
上記説明にて、X軸モータ13、Y軸モータ14は本発明のモータの一例である。CPU21は本発明の制御部の一例である。フィルタtaは本発明の第一フィルタの一例であり、フィルタtbは本発明の第二フィルタの一例である。図15のS50の処理を実行するCPU21は、本発明の第一処理と第二処理部の一例である。S44,S45の処理を実行するCPU21は、本発明の設定部の一例である。S42の処理を実行するCPU21は、本発明の受付部の一例である。図14のS33、及び図15のS44の処理を実行するCPU21は、本発明の算出部の一例である。
本発明は上記実施形態に限らず各種変形が可能である。本実施形態の工作機械10のテーブル装置40は、テーブル50がX軸とY軸の二軸方向に移動可能な装置であるが、テーブルが一軸方向に移動可能なテーブル装置であってもよい。また、テーブル装置は、Z軸方向に延びる軸を中心に回転可能な回転テーブルであってもよい。その場合、数値制御装置20は、回転テーブルの回転の加減速制御について、上記実施形態のように、フィルタtaとtbを設計して適用してもよい。
上記実施形態のフィルタは、FIRフィルタであるが、その他のデジタルフィルタであってもよい。
上記実施形態のフィルタ設計処理では、フィルタtaとフィルタtbを合成して、フィルタtcにするが、合成せずに個々に記憶してもよい。加減速制御に適応する場合も、二つのフィルタtaとtbで加速度指令を処理してもよい。
上記実施形態の駆動回路26〜30は数値制御装置20に設けているが、工作機械10に設けてもよい。
上記実施形態の工作機械10は、主軸がZ軸方向に延びる立型工作機械であるが、本発明は主軸が水平方向に延びる横型工作機械にも適用できる。
本実施形態はCPU21の代わりに、マイクロコンピュータ、ASIC(Application Specific Integrated Circuits)、FPGA(Field Programmable Gate Array)等を、プロセッサとして用いてもよい。移動制御処理は、複数のプロセッサによって分散処理してもよい。プログラムを記憶するROM22及び記憶装置24は、例えばHDD及び又は記憶装置等の他の非一時的な記憶媒体で構成してもよい。非一時的な記憶媒体は、情報を記憶する期間に関わらず、情報を留めておくことが可能な記憶媒体であればよい。非一時的な記憶媒体は、一時的な記憶媒体(例えば、伝送される信号)を含まなくてもよい。各種プログラムは、例えば、図示外のネットワークに接続されたサーバからダウンロードして(即ち、伝送信号として送信され)、フラッシュメモリ等の記憶装置等に記憶してもよい。この場合、プログラムは、サーバに備えられたHDDなどの非一時的な記憶媒体に保存していればよい。