(57)【要約】【課題】軸移動の移動方向の反転後に生じるロストモーションを精度良く補償できる数値制御装置とロストモーション補償方法を提供する。【解決手段】数値制御装置は、テーブルの移動方向が反転した後に生じるロストモーションを補償する。ロストモーションはテーブル機構の弾性変形に起因して生じるが、複数のロストモーションが合成されて生じる場合が多い。数値制御装置は２つのロストモーションを想定し、２つの近似式を用いる。２つの近似式は、各ロストモーションの補償量、テーブルの変位量に対する各補償量の傾き、テーブルの移動方向が反転したときの前回の最終補償量Ｐｂｍ、及び前回の変位量ｘｂｍに基づく近似式であってｔａｎｈ関数を用いている。故に数値制御装置はテーブルの移動方向の反転後に緩やかに生じるロストモーションを精度よく補償できる。【選択図】図５
2014149581.tif 000002
【特許請求の範囲】
【請求項１】
ボール螺子軸と該ボール螺子軸に螺合するボールナットとを有し該ボールナットに固定した移動体を移動する送り機構と、前記ボール螺子軸を回転駆動するモータと、前記モータを制御して前記移動体の位置を指定する位置指令を生成する制御手段と、前記制御手段が生成した前記位置指令に従い、前記モータを制御するモータ制御手段と、前記移動体の移動方向が反転した後に前記送り機構の弾性変形に起因して生じるロストモーションを補償する補償量を演算する演算手段と、前記演算手段が演算した前記補償量を前記位置指令に加算して前記位置指令を補正する加算手段とを備えた数値制御装置において、
前記位置指令に対応する前記移動体の実位置を推定する実位置推定手段と、
前記実位置推定手段が推定した前記実位置を前記移動体の前記移動方向が反転した後の変位量として算出する算出手段と
を備え、
前記演算手段は、
前記算出手段が算出する前記変位量を変数とし、
前記移動体の前記移動方向が反転してから次回反転するまでに生じる複数のロストモーションを夫々補償する為に設定する複数の補償量と、
前記複数の補償量の前記変位量に対する夫々の傾きと、
前記演算手段による前記移動体の前記移動方向が反転したときの前回の最終補償量と、
前記移動体の前記移動方向が反転したときの前記移動体の前回の変位量と
に基づく複数の近似式を用いて前記補償量を演算することを特徴とする数値制御装置。
【請求項２】
前記複数の近似式はｔａｎｈ関数を用いた近似式を含むことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記移動体はマイナス方向とプラス方向に往復移動可能であって、
前記演算手段は、第１近似式であるＰ１と第２近似式であるＰ２を備え、
さらに、前記算出手段が算出する前記変位量をｘ'ｔ、前記移動体の前記移動方向が反転した時から生じる第一ロストモーションを補償する第一補償量をＰｃ１、前記変位量ｘ'ｔが所定量ｂ２に達した時から生じる第二ロストモーションを補償する第二補償量をＰｃ２、前記第一補償量のｘ'ｔに対する傾きの立ち上がり係数をａ１、前記第二補償量のｘ'ｔに対する傾きの立ち上がり係数をａ２、前記前回の最終補償量をＰｂｍ、前記前回の変位量をｘｂｍとし、
ｂ２＝０  ならば  ｘ'ｔ＝ｘ'
ｂ２＞ｘｂｍ  ならば  ｘ'ｔ＝ｘ'（ｂ２／ｘｂｍ）
ｂ２≦ｘｂｍ  ならば  ｘ'ｔ＝ｘ'
とした上で、
前記移動体の前記移動方向が前記マイナス方向から前記プラス方向に反転する時に、
｜Ｐｂｍ｜＜Ｐｃ２である場合、
Ｐ１＝Ｐｃ１＋Ｐｃ２−｜Ｐｂｍ｜
Ｐ２＝｜Ｐｂｍ｜ｔａｎｈ（ｘ'ｔ／ａ２）
であって、Ｐ１で算出した値とＰ２で算出した値とを加算したものを前記補償量として演算することを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記移動体の前記移動方向が前記マイナス方向から前記プラス方向に反転する時に、
｜Ｐｂｍ｜＞Ｐｃ２である場合、
ｘ'ｔがｂ２を超えるまでは、
Ｐ１＝（｜Ｐｂｍ｜−Ｐｃ２）ｔａｎｈ（ｘ'ｔ／ａ１）
で算出した値を前記補償量とし、
ｘ'ｔがｂ２を超えた場合は、
Ｐ２＝Ｐｃ２ｔａｎｈ｛（ｘ'ｔ−ｂ２）／ａ２｝
で算出した値をＰ１で算出した値に加算したものを前記補償量として演算することを特徴とする請求項３に記載の数値制御装置。
【請求項５】
前記移動体の前記移動方向が前記プラス方向から前記マイナス方向に反転する時に、
｜Ｐｂｍ｜＞Ｐｃ２である場合、
ｘ'ｔがｂ２を超えるまでは、
Ｐ１＝−（｜Ｐｂｍ｜−Ｐｃ２）ｔａｎｈ（ｘ'ｔ／ａ１）
で算出した値を前記補償量とし、
ｘ'ｔがｂ２を超えた場合は、
Ｐ２＝−Ｐｃ２ｔａｎｈ｛（ｘ'ｔ−ｂ２）／ａ２｝
で算出した値をＰ１で算出した値に加算したものを前記補償量として演算することを特徴とする請求項３又は４に記載の数値制御装置。
【請求項６】
前記移動体の前記移動方向が前記プラス方向から前記マイナス方向に反転する時に、
｜Ｐｂｍ｜＜Ｐｃ２である場合、
Ｐ１＝−Ｐｃ１−Ｐｃ２＋｜Ｐｂｍ｜
Ｐ２＝−｜Ｐｂｍ｜ｔａｎｈ（ｘ'ｔ／ａ２）
であって、Ｐ１で算出した値とＰ２で算出した値とを加算したものを前記補償量として演算することを特徴とする請求項５に記載の数値制御装置。
【請求項７】
ボール螺子軸と該ボール螺子軸に螺合するボールナットとを有し該ボールナットに固定した移動体を移動する送り機構と、前記ボール螺子軸を回転駆動するモータとを備えた数値制御装置よって行われ、前記モータを制御して前記移動体の位置を指定する位置指令を生成する制御工程と、前記制御工程で生成した前記位置指令に従い、前記モータを制御するモータ制御工程と、前記移動体の移動方向が反転した後に前記送り機構の弾性変形に起因して生じるロストモーションを補償する補償量を演算する演算工程と、前記演算工程で演算した前記補償量を前記位置指令に加算して前記位置指令を補正する加算工程とを備えたロストモーション補償方法において、
前記位置指令に対応する前記移動体の実位置を推定する実位置推定工程と、
前記実位置推定工程で推定した前記実位置を前記移動体の前記移動方向が反転した後の変位量として算出する算出工程と
を備え、
前記演算工程では、
前記算出手段が算出する前記変位量を変数とし、
前記移動体の前記移動方向が反転してから次回反転するまでに生じる複数のロストモーションを夫々補償する為に設定する複数の補償量と、
前記複数の補償量の前記変位量に対する夫々の傾きと、
前記演算手段による前記移動体の前記移動方向が反転したときの前回の最終補償量と、
前記移動体の前記移動方向が反転したときの前記移動体の前回の変位量と
に基づく複数の近似式を用いて前記補償量を演算することを特徴とするロストモーション補償方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置とロストモーション補償方法に関する。
【背景技術】
【０００２】
図１に示すテーブル機構２０は工作機械の一部である。テーブル機構２０はテーブル３をＸ軸方向とＹ軸方向に移動可能に支持する。数値制御装置はテーブル機構２０の動作を制御する。テーブル３の移動方向が反転した場合、テーブル機構２０はロストモーションを生じる。ロストモーションは機構の弾性変形による遅れであり、ワークの加工精度が低下する原因となる。故に数値制御装置はロストモーションを補償する必要がある。従来の数値制御装置は、セミクローズドループ制御において、移動方向反転時に予め位置指令にロストモーションに相当する量を加えるものが多い。セミクローズドループ制御は、駆動軸の位置制御をエンコーダのフィードバックで行う制御方法である。
【０００３】
図１中上部のチャート図は、ＸＹ平面で半径１０ｍｍの円弧を１００ｍｍ／ｍｉｎで工具を移動した場合の工具端の位置をグリッドエンコーダで測定したものである。ロストモーションは移動方向が反転した瞬間に最大値になるのではなく、反転時から遅れを持って生じる。故に工具が０°、９０°、１８０°、２７０°の位置において、ロストモーションが緩やかに生じている（図１中Ｑ１〜Ｑ４部分参照）。故にテーブル３は目的位置よりも行き過ぎてしまうので、ワークに食い込みを生じ、加工精度が悪化する場合がある。
【０００４】
特許文献１，２は、入力を反転位置からの距離とし、出力を補償量とした関数によってロストモーションの反転後の立ち上がりを近似する方法を開示する。特許文献１は、反転後の距離によって線形の近似式の傾きを変化する方法を開示する。特許文献２は、指数関数を用いて立ち上がり形状を近似する方法を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−１５２９１０号公報
【特許文献２】特開平１０−１５４００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１は、線形の近似式を組み合わせる手法であるので、立ち上がり形状を滑らかに近似できないという問題点があった。特許文献２は、指数関数を用いるので、立ち上がり形状を滑らかに近似することはできるが、反転後の距離が長くなるにつれて、ずれ幅が大きくなり近似できないという問題点があった。
【０００７】
本発明の目的は、軸移動の移動方向の反転後に生じるロストモーションを精度良く補償できる数値制御装置とロストモーション補償方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の請求項１に係る数値制御装置は、ボール螺子軸と該ボール螺子軸に螺合するボールナットとを有し該ボールナットに固定した移動体を移動する送り機構と、前記ボール螺子軸を回転駆動するモータと、前記モータを制御して前記移動体の位置を指定する位置指令を生成する制御手段と、前記制御手段が生成した前記位置指令に従い、前記モータを制御するモータ制御手段と、前記移動体の移動方向が反転した後に前記送り機構の弾性変形に起因して生じるロストモーションを補償する補償量を演算する演算手段と、前記演算手段が演算した前記補償量を前記位置指令に加算して前記位置指令を補正する加算手段とを備えた数値制御装置において、前記位置指令に対応する前記移動体の実位置を推定する実位置推定手段と、前記実位置推定手段が推定した前記実位置を前記移動体の前記移動方向が反転した後の変位量として算出する算出手段とを備え、前記演算手段は、前記算出手段が算出する前記変位量を変数とし、前記移動体の前記移動方向が反転してから次回反転するまでに生じる複数のロストモーションを夫々補償する為に設定する複数の補償量と、前記複数の補償量の前記変位量に対する夫々の傾きと、前記演算手段による前記移動体の前記移動方向が反転したときの前回の最終補償量と、前記移動体の前記移動方向が反転したときの前記移動体の前回の変位量とに基づく複数の近似式を用いて前記補償量を演算することを特徴とする。それ故、数値制御装置は、移動体の移動方向の反転後に緩やかに生じるロストモーションを複数の近似式を用いて補償するので、ロストモーションを精度良く補償できる。
【０００９】
請求項２に係る発明の数値制御装置は、請求項１に記載の発明の構成に加え、前記複数の近似式はｔａｎｈ関数を用いた近似式を含んでもよい。数値制御装置は、ｔａｎｈ関数を用いた近似式を用いることで、緩やかに生じるロストモーションをより精度良く補償できる。
【００１０】
請求項３に係る発明の数値制御装置は、請求項２に記載の発明の構成に加え、前記移動体はマイナス方向とプラス方向に往復移動可能であって、前記演算手段は、第１近似式であるＰ１と第２近似式であるＰ２を備え、更に、前記算出手段が算出する前記変位量をｘ'ｔ、前記移動体の前記移動方向が反転した時から生じる第一ロストモーションを補償する第一補償量をＰｃ１、前記変位量ｘ'ｔが所定量ｂ２に達した時から生じる第二ロストモーションを補償する第二補償量をＰｃ２、前記第一補償量のｘ'ｔに対する傾きの立ち上がり係数をａ１、前記第二補償量のｘ'ｔに対する傾きの立ち上がり係数をａ２、前記前回の最終補償量をＰｂｍ、前記前回の変位量をｘｂｍとし、
ｂ２＝０  ならば  ｘ'ｔ＝ｘ'
ｂ２＞ｘｂｍ  ならば  ｘ'ｔ＝ｘ'（ｂ２／ｘｂｍ）
ｂ２≦ｘｂｍ  ならば  ｘ'ｔ＝ｘ'
とした上で、前記移動体の前記移動方向が前記マイナス方向から前記プラス方向に反転する時に、｜Ｐｂｍ｜＜Ｐｃ２である場合、
Ｐ１＝Ｐｃ１＋Ｐｃ２−｜Ｐｂｍ｜
Ｐ２＝｜Ｐｂｍ｜ｔａｎｈ（ｘ'ｔ／ａ２）
であって、Ｐ１で算出した値とＰ２で算出した値とを加算したものを前記補償量として演算することを特徴とする。それ故、数値制御装置は、移動体の移動方向がマイナス方向からプラス方向に反転する時に、｜Ｐｂｍ｜＜Ｐｃ２である場合に、ロストモーションを精度よく演算できる。
【００１１】
請求項４に係る発明の数値制御装置は、請求項３に記載の発明の構成に加え、前記移動体の前記移動方向が前記マイナス方向から前記プラス方向に反転する時に、｜Ｐｂｍ｜＞Ｐｃ２である場合、ｘ'ｔがｂ２を超えるまでは、
Ｐ１＝（｜Ｐｂｍ｜−Ｐｃ２）ｔａｎｈ（ｘ'ｔ／ａ１）
で算出した値を前記補償量とし、ｘ'ｔがｂ２を超えた場合は、
Ｐ２＝Ｐｃ２ｔａｎｈ｛（ｘ'ｔ−ｂ２）／ａ２｝
で算出した値をＰ１で算出した値に加算したものを前記補償量として演算することを特徴とする。それ故、数値制御装置は、移動体の移動方向がマイナス方向からプラス方向に反転する時に、｜Ｐｂｍ｜＞Ｐｃ２である場合に、ロストモーションを精度よく演算できる。
【００１２】
請求項５に係る発明の数値制御装置は、請求項３又は４に記載の発明の構成に加え、前記移動体の前記移動方向が前記プラス方向から前記マイナス方向に反転する時に、｜Ｐｂｍ｜＞Ｐｃ２である場合、ｘ'ｔがｂ２を超えるまでは、
Ｐ１＝−（｜Ｐｂｍ｜−Ｐｃ２）ｔａｎｈ（ｘ'ｔ／ａ１）
で算出した値を前記補償量とし、ｘ'ｔがｂ２を超えた場合は、
Ｐ２＝−Ｐｃ２ｔａｎｈ｛（ｘ'ｔ−ｂ２）／ａ２｝
で算出した値をＰ１で算出した値に加算したものを前記補償量として演算することを特徴とする。それ故、数値制御装置は、移動体の移動方向がプラス方向からマイナス方向に反転する時に、｜Ｐｂｍ｜＞Ｐｃ２である場合に、ロストモーションを精度よく演算できる。
【００１３】
請求項６に係る発明の数値制御装置は、請求項５に記載の発明の構成に加え、前記移動体の前記移動方向が前記プラス方向から前記マイナス方向に反転する時に、｜Ｐｂｍ｜＜Ｐｃ２である場合、
Ｐ１＝−Ｐｃ１−Ｐｃ２＋｜Ｐｂｍ｜
Ｐ２＝−｜Ｐｂｍ｜ｔａｎｈ（ｘ'ｔ／ａ２）
であって、Ｐ１で算出した値とＰ２で算出した値とを加算したものを前記補償量として演算することを特徴とする。それ故、数値制御装置は、移動体の移動方向がプラス方向からマイナス方向に反転する時に、｜Ｐｂｍ｜＜Ｐｃ２である場合に、ロストモーションを精度よく演算できる。
【００１４】
請求項７に係る発明のロストモーション補償方法は、ボール螺子軸と該ボール螺子軸に螺合するボールナットとを有し該ボールナットに固定した移動体を移動する送り機構と、前記ボール螺子軸を回転駆動するモータとを備えた数値制御装置よって行われ、前記モータを制御して前記移動体の位置を指定する位置指令を生成する制御工程と、前記制御工程で生成した前記位置指令に従い、前記モータを制御するモータ制御工程と、前記移動体の移動方向が反転した後に前記送り機構の弾性変形に起因して生じるロストモーションを補償する補償量を演算する演算工程と、前記演算工程で演算した前記補償量を前記位置指令に加算して前記位置指令を補正する加算工程とを備えたロストモーション補償方法において、前記位置指令に対応する前記移動体の実位置を推定する実位置推定工程と、前記実位置推定工程で推定した前記実位置を前記移動体の前記移動方向が反転した後の変位量として算出する算出工程とを備え、前記演算工程では、前記算出手段が算出する前記変位量を変数とし、前記移動体の前記移動方向が反転してから次回反転するまでに生じる複数のロストモーションを夫々補償する為に設定する複数の補償量と、前記複数の補償量の前記変位量に対する夫々の傾きと、前記演算手段による前記移動体の前記移動方向が反転したときの前回の最終補償量と、前記移動体の前記移動方向が反転したときの前記移動体の前回の変位量とに基づく複数の近似式を用いて前記補償量を演算することを特徴とする。数値制御装置は上記方法を行うことで、移動体の移動方向の反転後に緩やかに生じるロストモーションを複数の近似式を用いて補償するので、ロストモーションを精度良く補償できる。
【図面の簡単な説明】
【００１５】
【図１】テーブル機構２０の斜視図。
【図２】数値制御装置１の電気的構成を示す図。
【図３】補償器１３の電気的構成を示すブロック図。
【図４】ロストモーションの形状と補償量Ｐｃ１，Ｐｃ２を示すグラフ。
【図５】場面１の補償量を説明する為のグラフ。
【図６】場面２の補償量を説明する為のグラフ。
【図７】場面３の補償量を説明する為のグラフ。
【図８】場面４の補償量を説明する為のグラフ。
【図９】場面５の補償量を説明する為のグラフ。
【図１０】場面６の補償量を説明する為のグラフ。
【図１１】場面７の補償量を説明する為のグラフ。
【図１２】場面８の補償量を説明する為のグラフ。
【図１３】試験１の結果を示すグラフ。
【図１４】試験２の結果を示すグラフ。
【図１５】試験３の結果を示すチャート図。
【発明を実施するための形態】
【００１６】
本発明の一実施形態を図面を参照して説明する。図１に示すテーブル機構２０はテーブル３をＸ軸方向とＹ軸方向に移動可能に支持する。工作機械の主軸（図示略）はＺ軸方向に昇降可能である。数値制御装置１はＮＣプログラムが指定する経路に従い、主軸とテーブル機構２０の動作を制御し、テーブル３上に治具で固定したワーク（図示略）の切削加工を行う。なお、図１の左斜め下方、右斜め上方、右斜め下方、左斜め上方は、夫々、テーブル機構２０の前方、後方、右方、左方である。テーブル機構２０の左右方向、前後方向、上下方向は、夫々、Ｘ軸方向、Ｙ軸方向、Ｚ軸方向である。
【００１７】
図１を参照し、テーブル機構２０の構造を説明する。テーブル機構２０は基台２、中間テーブル５０、テーブル３を備える。基台２は上面に中間テーブル５０をＹ軸方向に移動可能に支持する。中間テーブル５０は上面にテーブル３をＸ軸方向に移動可能に支持する。故にテーブル３は基台２を基準にＸ軸方向とＹ軸方向に移動可能となる。
【００１８】
基台２は上面に一対のリニアガイド６Ａ、ボール螺子軸４Ａ、モータ２Ａ等を備える。リニアガイド６ＡはＹ軸方向に延出する。リニアガイド６Ａは中間テーブル５０をＹ軸方向に案内する。ボール螺子軸４Ａは一対のリニアガイド６Ａの間にＹ軸方向に平行に設ける。中間テーブル５０は下面に第１ボールナット（図示略）を固定する。ボール螺子軸４Ａは第１ボールナットに挿入する。モータ２Ａはボール螺子軸４Ａを回転する。ボール螺子軸４Ａが回転すると、中間テーブル５０は第１ボールナットを介してＹ軸方向に移動する。
【００１９】
中間テーブル５０はＸ軸方向に長手を有する板状である。中間テーブル５０は上面に一対のリニアガイド６Ｂ、ボール螺子軸４Ｂ、モータ２Ｂ等を備える。リニアガイド６ＢはＸ軸方向に延出する。リニアガイド６Ｂはテーブル３をＸ軸方向に案内する。ボール螺子軸４Ｂは一対のリニアガイド６Ｂの間にＸ軸方向に平行に設ける。テーブル３は下面に第２ボールナット（図示略）を固定する。ボール螺子軸４Ｂは第２ボールナットに挿入する。モータ２Ｂはボール螺子軸４Ｂを回転する。ボール螺子軸４Ｂが回転すると、テーブル３は第２ボールナットを介してＸ軸方向に移動する。従って、テーブル機構２０はテーブル３をＸ軸方向とＹ軸方向に移動できる。
【００２０】
数値制御装置１はモータ２Ａ、２Ｂに夫々接続する。数値制御装置１０はモータ２Ａ，２Ｂを駆動して、テーブル３をＸ軸方向とＹ軸方向に移動する。ボール螺子軸４Ａ、４Ｂ、第１ボールナット、第２ボールナットはモータ２Ａ、２Ｂの回転運動を二軸方向におけるテーブル３の直進運動に変換する。数値制御装置１０はモータ２Ａ、２Ｂを制御し、テーブル３の位置、速度、加速度を制御する。ロータリーエンコーダ６０（以下、エンコーダ６０という）はモータ２Ａ、２Ｂに夫々取り付ける。エンコーダ６０はモータ２Ａ、２Ｂの各位置（回転角）を検出する。数値制御装置１はテーブル３の位置を、モータ２Ａ，２Ｂの各位置、ボール螺子軸４Ａ、４Ｂのピッチ（螺子山の間隔）に基づいて算出する。
【００２１】
図２を参照し、数値制御装置１の構成を説明する。数値制御装置１は、上位制御部１０、位置制御器１１、速度制御器１２、補償器１３、電流制御増幅器１５、微分器１６、加算器１７等を備える。上位制御部１０はＮＣプログラムに基づき、位置指令信号を位置制御器１１に出力する。各エンコーダ６０はモータ２Ａ、２Ｂの位置検出信号を位置制御器１１に出力する。位置制御器１１は位置指令信号と位置検出信号が一致するように速度指令信号を生成し速度制御器１２に出力する。微分器１６は位置検出信号を速度検出信号に変換し速度制御器１２に加える。速度制御器１２は速度指令信号と速度検出信号とが一致するようにトルク指令信号を生成し、電流制御増幅器１５に出力する。
【００２２】
補償器１３は上位制御部１０からの位置指令信号に基づき、ロストモーション補償信号を生成する。加算器１７はロストモーション補償信号を上位制御部１０が位置制御器１１に出力した位置指令信号に加算する。故に位置制御器１１はロストモーション補償した位置指令信号と位置検出信号が一致するようにトルク指令信号を生成する。速度制御器１２はロストモーション補償したトルク指令信号を生成する。電流制御増幅器１５はトルク指令信号にできる限り忠実なトルクを発生するようにモータ２Ａ、２Ｂの電流を制御する。
【００２３】
図３を参照し、補償器１３の構成を説明する。補償器１３は、実位置推定部２１、微分器２２、符号反転検出部２３、積分器２４、第一補償部２６、第二補償部２７、加算器２９を少なくとも備える。第一、第二補償部２６，２７は絶対値算出部と極性算出部とを更に内蔵する。絶対値算出部は入力した信号の絶対値を求める。極性算出部は入力した信号の時間微分した信号の極性を求める。
【００２４】
上位制御部１０は位置指令信号を実位置推定部２１に入力する。実位置推定部２１はテーブル３の送り運動を行うサーボ制御系のモデルを用いる。実位置推定部２１は位置指令信号に対応するテーブル３の実位置を推定して実位置信号を生成する。実位置推定部２１は例えば一次遅れ要素等で構成しても良い。微分器２２は実位置推定部２１に接続する。微分器２２は実位置信号を微分して速度信号を出力する。
【００２５】
符号反転検出部２３と積分器２４は微分器２２に接続する。符号反転検出部２３は速度信号の符号反転を検出する。符号反転検出部２３はリセット信号を出力する。積分器２４は速度信号を積分して実位置信号を復元する。積分器２４は符号反転検出部２３が出力するリセット信号毎に積分値を零にリセットする。積分器２４はテーブル３が移動方向を反転した位置からの変位信号を生成する。
【００２６】
第一補償部２６と第二補償部２７は積分器２４に接続する。第一補償部２６は、変位信号と後述する第１近似式を用いて補償量Ａを求める。第二補償部２７は、変位信号と後述する第２近似式を用いて補償量Ｂを求める。本実施形態は、第１近似式をＰ１、第２近似式をＰ２とする。加算器２９は第一補償部２６と第二補償部２７に夫々接続する。加算器２９は補償量Ａと補償量Ｂを加算しロストモーション補償信号を生成して加算器１７（図２参照）に出力する。加算器１７はロストモーション補償信号を位置指令信号に加算する。故に位置制御器１１はロストモーション補償した位置指令信号を受信できる。
【００２７】
図４を参照し、ロストモーションの形状を説明する。図４は、テーブル３がＡ地点から＋方向に移動し、Ｂ地点を通過してＣ地点に移動するまでのロストモーション補償量（以下、補償量という）の変化を示すグラフである。電源投入後、テーブル３の移動方向は不明である。故に本実施形態はテーブル３が移動する一方向を＋（プラス）方向、その反対方向を−（マイナス）方向とする。Ａ地点は前回の移動で移動方向が−方向から＋方向に反転した地点である。Ｃ地点は補償量が最大となる地点である。
【００２８】
本実施形態は、テーブル３の移動方向の反転後に生じるロストモーションは少なくとも２つの成分が合成されて生じるものと仮定する。一方の成分はテーブル３の移動方向が反転した直後から増加する第１ロストモーションである。他方の成分はテーブル３の移動方向が反転してから所定量（後述するｂ２）遅れて開始する第２ロストモーションである。故にＡ地点からＣ地点に至るまでの補償量は所定量ずれて二段階で増加する。一山目はＡ地点からＢ地点まで、二山目はＢ地点からＣ地点までである。本実施形態は、第１ロストモーションの補償量を第１補償量、第２ロストモーションの補償量を第２補償量とする。
【００２９】
次に、補償量の算出方法を説明する。上記のように、補償量はＰ１とＰ２で算出した補償量Ａと補償量Ｂを加算した値である。Ｐ１とＰ２に用いる各種パラメータは以下の通りである。
・Ｐｃ１＝第１補償量［ｍｍ］
・Ｐｃ２＝第２補償量［ｍｍ］
・ａ１＝第１ロストモーションの立ち上がり係数
・ａ２＝第２ロストモーションの立ち上がり係数
・ｂ２＝第２ロストモーション開始の遅れ位置［ｍｍ］
・ｘ'＝移動方向の反転位置からの変位［ｍｍ］
・ｘ'ｔ＝ｂ２の大きさに応じて変化するパラメータ
・Ｐｂｍ＝前回（反転前）の最終補償量［ｍｍ］
・ｘｂｍ＝前回（反転前）の変位量［ｍｍ］
なお、ｘ'は正の値である。これら各種パラメータのうち、Ｐｃ１、Ｐｃ２、ａ１、ａ２、ｂ２は、後述する試験２の手法によって予め決定しておく。
【００３０】
ｘ'ｔはｂ２の大きさに応じて以下の通りとする。
ｂ２＝０  ならば  ｘ'ｔ＝ｘ'
ｂ２＞ｘｂｍ  ならば  ｘ'ｔ＝ｘ'（ｂ２／ｘｂｍ）
ｂ２≦ｘｂｍ  ならば  ｘ'ｔ＝ｘ'
【００３１】
図４に示すように、Ａ地点からＢ地点までの変位量はｂ２である。Ａ地点からＢ地点までの一山目の補償量はＰｃ１である。Ｂ地点からＣ地点までの二山目の補償量はＰｃ２である。
【００３２】
Ｐ１とＰ２は、テーブル３の移動方向が反転した位置における前回の最終補償量Ｐｂｍと、前回の変位量ｘｂｍとによって夫々異なる。以下、各場面に分けて順に説明する。
【００３３】
［場面１：−方向から＋方向に反転、｜Ｐｂｍ｜＜Ｐｃ２、ｂ２＞ｘｂｍ］
図５に示すように、場面１は、テーブル３がＣ地点からＤ地点に−方向に移動後、Ｄ地点で反転して＋方向に移動する場合である。前回の移動はＣ地点からＤ地点までの移動である。Ｐｂｍは前回のＤ地点での補償量である。ｘｂｍはＣ地点からＤ地点までの変位量である。場面１では、｜Ｐｂｍ｜＜Ｐｃ２である。更に、Ｃ地点からＤ地点までの変位量が小さいので、ｂ２＞ｘｂｍである。このような場面１で用いるＰ１とＰ２は以下の通りである。
・Ｐ１＝Ｐｃ１＋Ｐｃ２−｜Ｐｂｍ｜
・Ｐ２＝｜Ｐｂｍ｜ｔａｎｈ（ｘ'ｔ／ａ２）
補償量は、Ｐ１で算出した補償量Ａと、Ｐ２で算出した補償量Ｂとを加算した値である。なお、ｂ２＞ｘｂｍであるから、ｘ'ｔ＝ｘ'（ｂ２／ｘｂｍ）である。
【００３４】
［場面２：−方向から＋方向に反転、｜Ｐｂｍ｜＞Ｐｃ２、ｂ２＜ｘｂｍ］
図６に示すように、場面２は、テーブル３がＣ地点からＤ地点を通過してＥ地点まで−方向に移動後、Ｅ地点で反転して＋方向に移動する場合である。前回の移動はＣ地点からＥ地点までの移動である。Ｐｂｍは前回のＥ地点での補償量である。ｘｂｍはＣ地点からＥ地点までの変位量である。場面２では、｜Ｐｂｍ｜＞Ｐｃ２である。更に、Ｃ地点からＥ地点までの変位量が大きいので、ｂ２＜ｘｂｍである。このような場面２で用いるＰ１とＰ２は以下の通りである。
・Ｐ１＝（｜Ｐｂｍ｜−Ｐｃ２）ｔａｎｈ（ｘ'ｔ／ａ１）
・Ｐ２＝Ｐｃ２ｔａｎｈ｛（ｘ'ｔ−ｂ２）／ａ２｝
但し、ｘ'ｔがｂ２を超えるまでは、補償量はＰ１で算出した補償量Ａである。ｘ'ｔがｂ２を超えた場合、補償量は、Ｐ１で算出した補償量Ａと、Ｐ２で算出した補償量Ｂとを加算した値である。なお、ｂ２＜ｘｂｍであるから、ｘ'ｔ＝ｘ'である。
【００３５】
［場面３：−方向から＋方向に反転、｜Ｐｂｍ｜＞Ｐｃ２、ｂ２＞ｘｂｍ、前回反転位置の｜Ｐｂｍ｜＜Ｐｃ１］
図７に示すように、場面３は、テーブル３がＡ地点からＢ地点まで＋方向に移動し、Ｂ地点から−方向への移動が反転しきらずに、更にＣ地点で反転して＋方向に移動する場合である。Ｂ地点は前回反転位置、Ｃ地点は今回反転位置である。Ｐｂｍは前回のＣ地点での補償量である。ｘｂｍはＢ地点からＣ地点までの変位量である。場面３でも、場面２と同様に、｜Ｐｂｍ｜＞Ｐｃ２である。Ｂ地点からＣ地点までの変位量は小さいので、ｂ２＞ｘｂｍである。このような場面３で用いるＰ１とＰ２は、場面２と同様に以下の通りである。
・Ｐ１＝（｜Ｐｂｍ｜−Ｐｃ２）ｔａｎｈ（ｘ'ｔ／ａ１）
・Ｐ２＝Ｐｃ２ｔａｎｈ｛（ｘ'ｔ−ｂ２）／ａ２｝
但し、ｘ'ｔがｂ２を超えるまでは、補償量はＰ１で算出した補償量Ａである。ｘ'ｔがｂ２を超えた場合、補償量は、Ｐ１で算出した補償量Ａと、Ｐ２で算出した補償量Ｂとを加算した値である。
【００３６】
ここで、場面３では、前回反転位置であるＢ地点の｜Ｐｂｍ｜はＰｃ１より小さい。ｘｂｍの一般的な定義は、前回反転位置から今回反転位置までの変位量である。但し、前回反転位置の｜Ｐｂｍ｜がＰｃ１より小さい場合、ｘｂｍの代わりにｘｂｍ'を用いる。ｘｂｍ'は、今回反転位置であるＣ地点から今回移動時のｂ２の位置であるＤ地点までの変位量である。故に、ｘ'ｔ＝ｘ'（ｂ２／ｘｂｍ'）となる。
【００３７】
［場面４：＋方向から−方向に反転、｜Ｐｂｍ｜＜Ｐｃ２、ｂ２＞ｘｂｍ］
図８に示すように、場面４は、テーブル３がＣ地点からＤ地点を通過して−方向に移動後、Ｅ地点で反転して＋方向に移動し、Ｄ地点の手前のＦ地点で更に反転して−方向に移動する場合である。Ｄ地点は前々回の移動で第２補償量が開始する地点である。場面４は＋方向から−方向への移動であるので、補償量の０基準は場面１〜３とは逆になる。つまり、−方向から＋方向への移動における最大補償量の地点は、＋方向から−方向への移動においては０基準となる。前回の移動はＥ地点からＦ地点までの移動である。Ｐｂｍは前回のＦ地点での補償量である。ｘｂｍはＥ地点からＦ地点までの変位量である。場面４では、｜Ｐｂｍ｜＜Ｐｃ２である。Ｅ地点からＦ地点までの変位量が小さいので、ｂ２＞ｘｂｍである。このような場面４で用いるＰ１とＰ２は以下の通りである。
・Ｐ１＝−Ｐｃ１−Ｐｃ２＋｜Ｐｂｍ｜
・Ｐ２＝−｜Ｐｂｍ｜ｔａｎｈ（ｘ'ｔ／ａ２）
補償量は、Ｐ１で算出した補償量Ａと、Ｐ２で算出した補償量Ｂとを加算した値である。なお、ｂ２＞ｘｂｍであるから、ｘ'ｔ＝ｘ'（ｂ２／ｘｂｍ）である。
【００３８】
［場面５：＋方向から−方向に反転、｜Ｐｂｍ｜＞Ｐｃ２、ｂ２＞ｘｂｍ］
図９に示すように、場面５は、テーブル３がＣ地点からＤ地点を通過して−方向に移動後、Ｅ地点で反転して＋方向に移動し、Ｄ地点を通過してＦ地点で更に反転して−方向に移動する場合である。Ｐｂｍは前回のＦ地点での補償量である。ｘｂｍはＥ地点からＦ地点までの変位量である。場面５では、｜Ｐｂｍ｜＞Ｐｃ２である。Ｅ地点からＦ地点までの変位量は小さいので、ｂ２＞ｘｂｍである。このような場面５で用いるＰ１とＰ２は以下の通りである。
・Ｐ１＝−（｜Ｐｂｍ｜−Ｐｃ２）ｔａｎｈ（ｘ'ｔ／ａ１）
・Ｐ２＝−Ｐｃ２ｔａｎｈ｛（ｘ'ｔ−ｂ２）／ａ２｝
但し、ｘ'ｔがｂ２を超えるまでは、補償量はＰ１で算出した補償量Ａである。ｘ'ｔがｂ２を超えた場合、補償量は、Ｐ１で算出した補償量Ａと、Ｐ２で算出した補償量Ｂとを加算した値である。なお、ｂ２＞ｘｂｍであるから、ｘ'ｔ＝ｘ'（ｂ２／ｘｂｍ）である。
【００３９】
［場面６：＋方向から−方向に反転、｜Ｐｂｍ｜＞Ｐｃ２、ｂ２＞ｘｂｍｍ、前回反転位置の｜Ｐｂｍ｜＜Ｐｃ１］
図１０に示すように、場面６は、テーブル３がＣ地点からＤ地点まで−方向に移動し、Ｄ地点から＋方向への移動が反転しきらずに、更にＥ地点で反転して−方向に移動する場合である。Ｄ地点は前回反転位置、Ｅ地点は今回反転位置である。Ｐｂｍは前回のＥ地点での補償量である。ｘｂｍはＤ地点からＥ地点までの変位量である。場面６でも、｜Ｐｂｍ｜＞Ｐｃ２である。Ｄ地点からＥ地点までの変位量が小さいので、ｂ２＞ｘｂｍである。このような場面６で用いるＰ１とＰ２は以下の通りである。
・Ｐ１＝−（｜Ｐｂｍ｜−Ｐｃ２）ｔａｎｈ（ｘ'ｔ／ａ１）
・Ｐ２＝−Ｐｃ２ｔａｎｈ｛（ｘ'ｔ−ｂ２）／ａ２｝
但し、ｘ'ｔがｂ２を超えるまでは、補償量はＰ１で算出した補償量Ａである。ｘ'ｔがｂ２を超えた場合、補償量は、Ｐ１で算出した補償量Ａと、Ｐ２で算出した補償量Ｂとを加算した値である。
【００４０】
ここで、場面６では、前回反転位置であるＤ地点の｜Ｐｂｍ｜はＰｃ１より小さい。前回反転位置の｜Ｐｂｍ｜がＰｃ１より小さい場合、ｘｂｍの代わりにｘｂｍ'を用いる。ｘｂｍ'は、今回反転位置であるＥ地点から今回移動時のｂ２の位置であるＦ地点までの変位量である。故に、ｘ'ｔ＝ｘ'（ｂ２／ｘｂｍ'）となる。
【００４１】
［場面７：ｂ２＝０、−方向から＋方向に反転、｜Ｐｂｍ｜＜Ｐｃ２］
図１１に示すように、ｂ２＝０の場合、図４とは異なり、補償量の曲線は一山である。つまり、第２ロストモーションの開始位置は、第１ロストモーションの開始位置と同じである。場面７は、テーブル３がＢ地点からＣ地点に−方向に移動後、Ｃ地点で反転して＋方向に移動する場合である。前回の移動はＢ地点からＣ地点までの移動である。Ｐｂｍは前回のＣ地点での補償量である。ｘｂｍはＢ地点からＣ地点までの変位量である。場面７では、｜Ｐｂｍ｜＜Ｐｃ２である。このような場面８で用いるＰ１とＰ２は場面１と同じである。ｂ２＝０であるので、ｂ２＜ｘｂｍである。故にｘ'ｔ＝ｘ'である。
【００４２】
［場面８：ｂ２＝０、−方向から＋方向に反転、｜Ｐｂｍ｜＞Ｐｃ２］
図１２に示すように、ｂ２＝０の場合、補償量の曲線は一山である。場面８は、テーブル３がＢ地点からＣ地点に−方向に移動後、Ｃ地点で反転して＋方向に移動する場合である。前回の移動はＢ地点からＣ地点までの移動である。Ｐｂｍは前回のＣ地点での補償量である。ｘｂｍはＢ地点からＣ地点までの変位量である。場面８では、｜Ｐｂｍ｜＞Ｐｃ２である。このような場面８で用いるＰ１とＰ２は場面２と同じである。ｂ２＝０であるので、ｂ２＜ｘｂｍである。故にｘ'ｔ＝ｘ'である。
【００４３】
［場面９：ｂ２＝０、＋方向から−方向に反転、｜Ｐｂｍ｜＜Ｐｃ２］
図示しないが、場面９で用いるＰ１とＰ２は場面４と同じである。ｂ２＝０であるので、ｂ２＜ｘｂｍである。故にｘ'ｔ＝ｘ'である。
【００４４】
［場面１０：ｂ２＝０、＋方向から−方向に反転、｜Ｐｂｍ｜＞Ｐｃ２］
図示しないが、場面１０で用いるＰ１とＰ２は場面５と同じである。ｂ２＝０であるので、ｂ２＜ｘｂｍである。故にｘ'ｔ＝ｘ'である。
【００４５】
次に、本実施形態の効果を確認する為に試験を実施した。上記のように、数値制御装置１は、２つのｔａｎｈ関数を使って、テーブル３の移動方向の反転後に生じるロストモーションを近似して補償する。そこで、１つのｔａｎｈ関数を使って近似した場合と、２つのｔａｎｈ関数を使って近似した場合とを比較した。
【００４６】
試験方法を説明する。テーブル３をＹ軸において２ｍｍ／ｍｉｎで２ｍｍだけ＋方向に移動した後、連続して２ｍｍ／ｍｉｎで−方向に反転移動した時の工具端の位置をレーザ変位計で測定した。サンプリングレートは１００ｍｓｅｃである。低速移動であるので、目標位置とモータ２Ｂ（２Ａ）からのフィードバック位置はほぼ一致する。故に目標位置とレーザ変位計による測定位置との差をロストモーションとみなした。ロストモーションは往路も復路も何れも含んでいるが、本試験では、往路を基準（誤差無し）として、復路ではどれだけ差があるかをロストモーション形状としてプロットした。
【００４７】
試験１は、１つのｔａｎｈ関数を使って、ロストモーションの立ち上がり形状を近似した。近似手法は一般的な線形近似法である。図１３に示すように、１つのｔａｎｈ関数を使った線形近似の場合、実際の誤差に合わせて補償量を綺麗にフィッティングさせることができず、部分的にズレを生じてしまっている。本実施形態は、１つのｔａｎｈ関数で近似した補償量の曲線に基づき、Ｐｃ１、ａ１、Ｐｃ２、ａ２、ｂ２を求めた。各種パラメータは以下の通りである。
・Ｐｃ１＝０．００２５ｍｍ、ａ１＝０．１０３０、Ｐｃ２＝０ｍｍ、ａ２＝０、ｂ２＝０ｍｍ
【００４８】
試験２は、２つのｔａｎｈ関数を使って、ロストモーションの立ち上がり形状を試験１と同様に一般的な線形近似法を用いて近似した。図１４に示すように、２つのｔａｎｈ関数を使った線形近似の場合、実際の誤差に合わせて補償量を綺麗にフィッティングさせることができた。本実施形態は、２つのｔａｎｈ関数で近似した補償量の曲線に基づき、Ｐｃ１、ａ１、Ｐｃ２、ａ２、ｂ２を求めた。各種パラメータは以下の通りである。
・Ｐｃ１＝０．０００８ｍｍ、ａ１＝０．０１３７、Ｐｃ２＝０．００１７ｍｍ、ａ２＝０．１５４５、ｂ２＝０ｍｍ
【００４９】
本実施形態は、試験２の近似手法を用いることによって、Ｐ１，Ｐ２で用いる各種パラメータを予め決定する。本実施形態は、決定した各種パラメータを上記Ｐ１，Ｐ２に設定することによって、テーブル３の反転後に生じるロストモーションを精度良く補償できる。更に、本実施形態は少ないパラメータを設定するだけで、ロストモーションの効果的な補償を行うことができるので、製造工程において工作機械のパラメータを最適にして出荷できる。
【００５０】
試験３は、試験２で決定した各種パラメータを用いて、上記Ｐ１，Ｐ２によるロストモーション補償を行った。試験３では、ＸＹ平面で半径１０ｍｍの円弧を１００ｍｍ／ｍｉｎで工具を移動した場合の工具端の位置をグリッドエンコーダで測定し、指令円からの誤差を拡大して補償有りと補償無しで比較した。図１５に示すように、補償無しでは、回転角度が０°、９０°、１８０°、２７０°において、ロストモーションによるずれが生じていた。これに対し、補償有りのものでは、補償無しと比較して、ロストモーションによるずれが確実に小さくなっている。故に本実施形態の数値制御装置１は、テーブル３を目的位置に正確に移動できるので、ワークの加工精度を制度良く向上できることが実証された。
【００５１】
上記説明において、テーブル３が本発明の移動体に相当し、テーブル機構２０が本発明の送り機構に相当し、上位制御部１０が本発明の制御手段に相当し、位置制御器１１、速度制御器１２、電流制御増幅器１５、微分器１６が本発明のモータ制御手段に相当し、補償器１３が本発明の演算手段に相当し、加算器１７が本発明の加算手段に相当し、実位置推定部２１が本発明の実位置推定手段に相当し、微分器２２、符号反転検出部２３、積分器２４が本発明の算出手段に相当する。
【００５２】
以上説明したように、本実施形態の数値制御装置１は、テーブル３の移動方向が反転した後に生じるロストモーションを補償する。ロストモーションはテーブル機構２０の弾性変形に起因して生じるが、複数のロストモーションが合成されて生じる場合が多い。数値制御装置１は複数の近似式を用いる。近似式は、複数のロストモーションに夫々対応する複数の補償量、複数の補償量の夫々の傾き、前回の最終補償量、前回の変位量に基づくものである。故に数値制御装置１は、テーブル３の移動方向の反転後に緩やかに生じるロストモーションを精度よく補償できるので、テーブル３を目的位置に正確に移動できる。よって、ワークの加工精度は確実に向上する。
【００５３】
本実施形態は更に、複数の近似式はｔａｎｈ関数を用いた近似式を含むので、緩やかに生じるロストモーションをより精度よく補償できる。
【００５４】
本実施形態では更に、場面１〜６において（図５〜図１０参照）、ｂ２を設定したものを先に説明したが、後で説明した場面７〜１０のように、ｂ２を０に設定できる。これにより、本発明は、複数のロストモーションが同時に開始する場合にも適用できるので、広範囲に適用できる。
【００５５】
なお、本発明は上記実施形態に限らず種々の変更が可能である。例えば、ロストモーションを補償する際に、ｔａｎｈ関数は１つでもよいが、本実施形態のように２つ以上であるのが好ましい。上記実施形態は、第一補償部２６と第二補償部２７を備えているが、３つ以上の補償部を備えてもよい。
【００５６】
また本実施形態は、テーブル３をＸ軸方向とＹ軸方向に移動可能に支持し、且つ主軸をテーブル３に対してＺ軸方向に移動可能に支持する工作機械を一例として説明するが、テーブル３を固定とし、主軸をテーブル３に対してＸ軸方向とＹ軸方向に移動させる工作機械であってもよい。主軸に装着する工具とテーブルを相対的に移動するものであればよい。
【符号の説明】
【００５７】
１  数値制御装置
２Ａ，２Ｂ  モータ
３  テーブル
４Ａ，４Ｂ  ボール螺子軸
１０  上位制御部
１１  位置制御器
１２  速度制御器
１３  補償器
１５  電流制御増幅器
１６  微分器
１７  加算器
２０  テーブル機構
２１  実位置推定部
２２  微分器
２３  符号反転検出部
２４  積分器
２６  第一補償部
２７  第二補償部
２９  加算器
【図１】
2014149581.tif 000003
【図２】
2014149581.tif 000004
【図３】
2014149581.tif 000005
【図４】
2014149581.tif 000006
【図５】
2014149581.tif 000007
【図６】
2014149581.tif 000008
【図７】
2014149581.tif 000009
【図８】
2014149581.tif 000010
【図９】
2014149581.tif 000011
【図１０】
2014149581.tif 000012
【図１１】
2014149581.tif 000013
【図１２】
2014149581.tif 000014
【図１３】
2014149581.tif 000015
【図１４】
2014149581.tif 000016
【図１５】
2014149581.tif 000017