(57)【特許請求の範囲】
【請求項１】
リニアモータの駆動力によって転動ステージの可動部を駆動させる位置制御装置であって、
前記可動部の移動方向が反転する反転位置からの変位及び速度に対する駆動力に関するデータベースを格納するデータベース部と、
前記可動部を駆動させるためのプログラムが記憶された記憶部と、
前記プログラムから前記可動部の反転位置を特定し、前記反転位置からの前記可動部の変位及び速度を算出する指令生成部と、
前記データベースから前記指令生成部により算出された変位及び速度に応じた駆動力を抽出し、前記抽出した駆動力に応じた前記反転位置からの位置指令を作成し、前記作成した位置指令を基に前記可動部を駆動させ、前記可動部の変位、速度及び駆動力を測定し、前記測定した結果を基に前記データベースを更新するデータベース作成部と、を有し、
前記更新したデータベースを用いて、前記プログラムに基づいて前記可動部を駆動させることを特徴とする位置制御装置。
【請求項２】
前記プログラムは、ワークを載せるためのステージの位置が記述されていることを特徴とする請求項１記載の位置制御装置。
【請求項３】
前記位置指令は正弦波状の位置指令であり、前記正弦波状の位置指令の周期が変化する複数種類の条件を有することを特徴とする請求項１又は２に記載の位置制御装置。
【請求項４】
前記データベース作成部は、前記複数種類の条件から、前記抽出した駆動力に応じた前記反転位置からの位置指令を作成することを特徴とする請求項３に記載の位置制御装置。
【請求項５】
リニアモータの駆動力によって駆動する転動ステージの可動部の位置制御方法であって、
前記可動部を駆動させるためのプログラムから前記可動部の移動方向が反転する反転位置を特定するステップと、
前記反転位置からの前記可動部の変位及び速度を算出するステップと、
予め求めておいた前記可動部の反転位置からの変位及び速度に対する駆動力に関するデータベースから前記算出された変位及び速度に応じた駆動力を抽出するステップと、
前記抽出した駆動力に応じた前記反転位置からの位置指令を作成するステップと、
前記作成した位置指令を基に前記可動部を駆動させ、前記可動部の変位、速度及び駆動力を測定し、前記測定した結果を基に前記データベースを更新するステップと、
前記更新したデータベースを用いて前記プログラムを実行し前記可動部を駆動するステップと、を有することを特徴とする位置制御方法。
【請求項６】
前記プログラムは、ワークを載せるためのステージの位置が記述されていることを特徴とする請求項５記載の位置制御方法。
【請求項７】
前記位置指令は正弦波状の位置指令であり、前記正弦波状の位置指令の周期が変化する複数種類の条件を有することを特徴とする請求項５又は６に記載の位置制御方法。
【請求項８】
前記反転位置からの位置指令を作成するステップは、前記複数種類の条件から、前記抽出した駆動力に応じた前記反転位置からの位置指令を作成することを特徴とする請求項７に記載の位置制御方法。
【請求項９】
請求項５乃至８いずれか一項に記載の位置制御方法を用いて加工機の可動部を駆動することにより物品を製造することを特徴とする物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、軸受けや案内面に摩擦が作用する各種産業機械において、摩擦によって生じる偏差を低減する位置制御装置に関する。
【背景技術】
【０００２】
精密加工機や精密計測機などには、高精度な位置決め性能を持つステージが搭載される。そのステージに用いられる直動案内には、一般的に、転動ガイド、すべり軸受け、静圧軸受けなどがあるが、その中でも最も幅広く用いられるものが転動ガイドである。転動ガイドは、安価で取り付けも容易であるため、使い勝手が良いというメリットがある。
【０００３】
一方で、転動ガイドの案内部には、球型もしくは円筒型の転動体が用いられるため、転動体と転がり面との間に接触による摩擦が存在する。その摩擦により、転動体の転がり方向が反転する際に転動体が転がらない領域が存在し、非線形な摩擦特性を示すことが知られている（非特許文献１）。この摩擦特性によって、ステージの移動方向を反転させる際に突起状の偏差が発生するという問題がある。この突起状の偏差は、一般的に象限突起と呼ばれ、ステージ位置をフィードバックする閉ループ制御を用いても無くすことは難しい。
【０００４】
象限突起の発生原因である非線形な摩擦特性について説明する。通常、転動体と転がり面との間には固体接触を防ぐための潤滑油が挿入されているが、速度が限りなくゼロに近い状況ではその油膜が薄くなり、転動体と転がり面との間に固体接触が発生するために大きな摩擦力が発生する。そして、反転位置からの変位がゼロ〜数百μｍ領域では、転動体が転がらずに弾性変形することによって摩擦力（厳密には弾性変形力）は増加する。さらに、変位が大きくなり数百μｍ以上の領域になると、転動体は転がり始めることによって、弾性変形から解放され摩擦力が減少する。
【０００５】
ただし、この摩擦特性は、ステージの変位に依存するというだけでは説明できない。ステージの速度がゼロから大きくなるにつれて転動体が転がり始めるため、転動体と転がり面との間に油膜層が形成されその油膜層の潤滑によって摩擦力が低減する。また、この油膜層は、速度に依存して形成のされ方が変わるため、転動体と転がり面との間の摩擦力は速度にも依存する。
【０００６】
速度が速い領域では潤滑油の粘性力が大きくなり抵抗となるということは知られているが、上述のように、ステージの速度が極めて遅い領域でも転動体と転がり面との間の摩擦力が速度に依存するということは、あまり知られていない。このように、転動体と転がり面との間の摩擦力は、変位と速度の双方に対して互いに独立でなく依存していることが摩擦特性を複雑化させており、これに係る象限突起を低減するという課題の難易度を高くしている。
【０００７】
特許文献１は、象限突起補正に使用する最適パラメータを高効率かつ高精度に決定する技術を開示する。また、特許文献２は、移動機構の制御特性が経年変化したときに、制御パラメータを適正な値に自動調整する技術を開示する。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１１−２３１９２１号公報
【特許文献２】特開２０１１−１３４１６９号公報
【非特許文献】
【０００９】
【非特許文献１】精密位置決め制御のためのリニアモータボールガイドの摩擦モデルに関する研究（第２報）田中、大岩、大塚  精密工学会誌Ｖｏｌ．７３、  Ｎｏ４、  ２００７
【発明の概要】
【発明が解決しようとする課題】
【００１０】
摩擦補償用のデータベースを用いて摩擦補償を行う位置制御装置において、転動体と転がり面との間の摩擦特性の経年変化のため、使用していると摩擦補償用のデータベースと実際に生じる摩擦との間にずれが生じることがある。摩擦補償用のデータベースにずれが生じ、摩擦力の補償値を誤ることになる。この問題を解決するために、装置使用前に摩擦補償データベース更新を行うことが考えられるが、更新に時間がかかるため装置の稼働率低下につながる。
【００１１】
そこで、本発明は、転動ステージのフィードフォワード制御に用いられる摩擦補償用のデータベースの更新にかかる時間を低減する位置制御装置及び位置制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の一実施形態は、リニアモータの駆動力によって転動ステージの可動部を駆動させる位置制御装置であって、可動部の移動方向が反転する反転位置からの変位及び速度に対する駆動力に関するデータベースを格納するデータベース部と、可動部を駆動させるためのプログラムが記憶された記憶部と、プログラムから可動部の反転位置を特定し、反転位置からの可動部の変位及び速度を算出する指令生成部と、データベースから指令生成部により算出された変位及び速度に応じた駆動力を抽出し、抽出した駆動力に応じた反転位置からの位置指令を作成し、作成した位置指令を基に可動部を駆動させ、可動部の変位、速度及び駆動力を測定し、測定した結果を基にデータベースを更新するデータベース作成部と、を有し、更新したデータベースを用いて、プログラムに基づいて可動部を駆動させることを特徴とする位置制御装置を提供する。
【００１３】
また、本発明の一実施形態は、リニアモータの駆動力によって駆動する転動ステージの可動部の位置制御方法であって、可動部を駆動させるためのプログラムから可動部の移動方向が反転する反転位置を特定するステップと、反転位置からの可動部の変位及び速度を算出するステップと、予め求めておいた可動部の反転位置からの変位及び速度に対する駆動力に関するデータベースから算出された変位及び速度に応じた駆動力を抽出するステップと、抽出した駆動力に応じた反転位置からの位置指令を作成するステップと、作成した位置指令を基に可動部を駆動させ、可動部の変位、速度及び駆動力を測定し、測定した結果を基にデータベースを更新するステップと、更新したデータベースを用いてプログラムを実行し可動部を駆動するステップと、を有することを特徴とする位置制御方法を提供する。
【発明の効果】
【００１４】
本発明の一実施形態に係る位置制御装置は、動作時のフィードフォワード制御のための２次元データベースを部分的に更新するため、２次元データベースの更新に要する時間が削減される。加工動作前に２次元データベースの更新を行う場合には、装置の稼働率向上にも寄与する。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態に係る位置制御装置の概略を示す構成図である。
【図２】駆動演算部における処理のフローチャートである。
【図３】データベース作成時における位置制御装置の概略を示す構成図である。
【図４】データベース作成手順のフローチャートである。
【図５】正弦波状の指令の例を示す図である。
【図６】駆動力と変位の測定結果の例を示す図である。
【図７】変位と速度に対する駆動力の２次元データベースの例を示す図である。
【図８】加工プログラムに応じたデータベース作成に係るフローチャートである。
【図９】抽出した反転動作からデータ点を選択する例を示す図である。
【図１０】条件Ｎｏの違いによる更新できるデータ点の違いの例を示す図である。
【図１１】使用するデータ点から条件Ｎｏを選択する例を示す図である。
【図１２】データベースの作成手順のフローチャートである。
【発明を実施するための形態】
【００１６】
［第１実施形態］
本発明の第１実施形態を図面に基づいて説明する。本実施形態は、反転位置からの変位及び速度に対する駆動力の２次元データベースの更新方法を付加した位置制御装置に関する。
【００１７】
図１は、本実施形態による位置制御装置１００の概略を示す構成図である。まずは、制御対象である転動ステージ１について説明する。転動ステージ１は、固定部と可動部に分けられる。転動ステージ１の固定部は、ベース２とその上面に設置されたレール３を含む。転動ステージ１の可動部は、キャリッジ４とその上面に設置されたテーブル５を含み、テーブル５にはリニアモータ６と位置センサ７が設置されている。
【００１８】
転動ステージ１の固定部のレール３の表面が「転がり面」であり、転動ステージ１の可動部のキャリッジ４に内蔵されているボールが「転動体」である。転がり面と転動体が接触することにより、それらの間に摩擦力が発生する。
【００１９】
転動ステージ１の可動部を動かすための推力は、リニアモータ６により発生し、当該可動部の移動量は、位置センサ７により、テーブル５とベース２との間の相対位置を測定することにより求まる。
【００２０】
指令生成部１６は、記憶部１５に格納された各種プログラムに応じて、位置制御部８、駆動力演算部１０、データベース作成部１３、及びデータ測定部１４と情報をやりとりし、位置制御装置１００全体を制御する。また、記憶部１５には、ワークの加工プログラム等が格納されている。
【００２１】
次に、位置制御装置１００による転動ステージ１の可動部の制御について説明する。位置センサ７にて取得した転動ステージ１の可動部の現在位置と指令生成部１６からの指令値（位置指令）との差分を基に、位置制御部８にてＰＩＤ制御を行い、ドライバ９を介して送られる駆動指令に応じてリニアモータ６が当該可動部の推力を発生する。このようなフィードバック制御の構成に加えて、駆動力演算部１０にて駆動力のフィードフォワード制御が行われる。そして、フィードバック制御及びフィードフォワード制御を受けた転動ステージ１の可動部は、指令生成部１６からの指令により指定された位置に指定された速度（及び加速度）で移動する。
【００２２】
ここで、図２のフローチャートを用いて、駆動力演算部１０によるフィードフォワード制御処理について説明する。なお、フィードフォワード制御処理は、ワークの加工に係る加工プログラム中の各指令ごとに行われる。
【００２３】
Ｓ１０１で、駆動力演算部１０は、指令生成部１６から現在指令値Ｐを取得する。現在指令値Ｐは、転動ステージ１の可動部がこれから位置すべき位置を示す情報（位置指令）を含む。Ｓ１０２で、駆動力演算部１０は、現在指令値Ｐと過去指令値Ｐｏｌｄから転動ステージ１の可動部の現在速度Ｖを計算する。ここで、駆動力演算部１０は、前回のフィードフォワード制御処理におけるＳ１１３で内部メモリに記憶された過去指令値Ｐｏｌｄを読み出し用いる。また、現在速度Ｖの計算は、過去指令値Ｐｏｌｄを基にした転動ステージ１の可動部の現在の位置と、現在指令値Ｐで指定されたこれから位置すべき位置及びそこへ到達すべき時間とを基に計算する。
【００２４】
Ｓ１０３で、駆動力演算部１０は、現在速度Ｖの符号ｓ（＋又は−）を内部メモリ（不図示）に記憶する。Ｓ１０４で、駆動力演算部１０は、現在速度Ｖの符号ｓと過去速度の符号ｓｏｌｄとが一致しているかどうか判断する。ここで、過去速度の符号ｓｏｌｄは、前回のフィードフォワード制御処理におけるＳ１１４で駆動力演算部１０の内部メモリに記憶された値を読み出し用いる。一致していなければ（Ｓ１０４でＮｏ）、Ｓ１０５で、駆動力演算部１０は、転動ステージ１の可動部の現在位置（動き出す前の位置）を反転位置Ｐｒｅｖとして内部メモリに記憶する。一致していれば（Ｓ１０４でＹｅｓ）、Ｓ１０７に進む。
【００２５】
Ｓ１０６で、駆動力演算部１０は、これから転動ステージ１の可動部を反転移動させるための駆動力（反転時の駆動力Ｆｒｅｖ）を計算し、内部メモリに記憶する。なお、駆動力Ｆは、位置指令（又は速度若しくは加速度指令）に応じて、リニアモータ６が出力すべき転動ステージ１の可動部に対する推力を基に計算される。
【００２６】
Ｓ１０７で、駆動力演算部１０は、現在指令値Ｐと現在位置（又は反転位置Ｐｒｅｖ）を基に現在位置（又は反転位置Ｐｒｅｖ）から現在指令値Ｐで指定された位置（指令位置）までの変位Ｘを計算する。Ｓ１０８で、駆動力演算部１０は、補間演算部１１にＳ１０７で計算した変位Ｘと、Ｓ１０２で計算した現在速度Ｖの値を渡す。
【００２７】
Ｓ１０９で、補間演算部１１は、データベース部１２と通信し、受け取った変位Ｘと速度Ｖに対応する駆動力Ｆの補間計算を行う。補間計算は、データベース部１２に格納された後述する２次元データベースから、変位Ｘ及び速度Ｖに対応する駆動力Ｆの値を読み出すことにより行う。Ｓ１１０で、駆動力演算部１０は、補間演算部１１から補間された駆動力Ｆを受け取る。
【００２８】
Ｓ１１１で、駆動力演算部１０は、補間演算部１１から受け取った駆動力ＦとＳ１０６で記憶した反転時の駆動力Ｆｒｅｖより、数式（１）にて駆動指令Ｆｔｏｔａｌを求める。なお、反転時ではない場合は、Ｆｒｅｖの代わりに、指令生成部１６からの指令を基に駆動力演算部１０で計算した駆動力が用いられる。
【数１】
0006557477.tif 000002
【００２９】
Ｓ１１２で、駆動力演算部１０は、位置制御部８からの指令に、求めた駆動指令Ｆｔｏｔａｌを加算し、加算された駆動指令はドライバ９に出力される。このようにして駆動力のフィードフォワード制御が行われる。Ｓ１１３で、駆動力演算部１０は、現在指令値Ｐを過去指令値Ｐｏｌｄとして内部メモリに記憶する。Ｓ１１４で、駆動力演算部１０は、現在速度Ｖの符号ｓを過去速度の符号ｓｏｌｄとして内部メモリに記憶する。
【００３０】
次に、データベース作成部１３による、データベース部１２に記憶されたデータベースの作成方法について説明する。図３は、データベース測定時における位置制御装置１００の概略を示す構成図である。図４は、データベース作成部１３による、変位と速度に対する駆動力の２次元データベースの作成手順のフローチャートである。
【００３１】
Ｓ２０１で、データベース作成部１３は、条件Ｎｏを初期化する（条件Ｎｏ＝０）。Ｓ２０２で、データベース作成部１３は、条件Ｎｏを加算する（条件Ｎｏ＝条件Ｎｏ＋１）。Ｓ２０３で、データベース作成部１３は、条件Ｎｏに応じた正弦波状の位置指令を作成する。
【００３２】
ここで、図５（ａ）の実線（条件１）で示すような正弦波状の加速度指令を考えると、三角関数の微積分の関係から、条件１に関する速度指令は図５（ｂ）の実線に示すようになり、位置指令は図５（ｃ）の実線に示すようになる。なお、条件２、３に関する正弦波状の指令もそれぞれ異なる破線で図５に描かれている。
【００３３】
Ｓ２０４で、データベース作成部１３は、Ｓ２０３で作成した位置指令を、図３に示すように、位置制御部８に入力される指令値に加える。その指令値をドライバ９を介して受け取ったリニアモータ６が推力を発生し、転動ステージ１の可動部は駆動する。なお、このときには、指令生成部１６からの指令値及び駆動力演算部１０からの駆動力Ｆtotalは加えられない。データベース作成部１３からの指令値と過去指令値とを基にフィードバック制御が行われ、転動ステージ１の可動部の変位、速度及び加速度の測定結果を基にデータベースの作成が行われる。
【００３４】
Ｓ２０５で、データ測定部１４は、転動ステージ１の可動部の駆動時の位置（変位）、速度及び駆動力を測定し、その測定結果をデータベース作成部１３に送る。データベース作成部１３は、当該測定結果を内部メモリに記憶する。ここで、図６に、データ測定部１４で測定される、条件１〜３ごとの変位に対する駆動力の測定結果の例を示す。
【００３５】
Ｓ２０６で、データベース作成部１３は、データ測定部１４から送られた測定結果を基に、予め決めておいた複数の変位に対する速度と駆動力の値をピックアップ（サンプリング）する。なお、当該変位の決め方としては、限定されないが、変位と摩擦力との関係が対数の比例に近い傾向を示すことから、変位の対数刻みで速度及び駆動力の値をピックアップすると良い。また、駆動力が急激な変化を示している箇所（図６の例では低変位側）に対して重点的に速度及び駆動力をピックアップし、データ点数を増やすと、補償誤差の低減に効果的である。
【００３６】
Ｓ２０７で、データベース作成部１３は、Ｓ２０６でピックアップした複数の変位に対する速度及び駆動力を基に、変位と速度に対する駆動力のデータベースを作成し、データベース部１２に記憶する。Ｓ２０８で、データベース作成部１３は、条件Ｎｏが目標条件数より小さいかどうか判断する。なお、目標条件数は、全条件の数（図５の例では３）であってもよいし、全条件の数よりも小さい数であってもよい。条件Ｎｏが全条件数より小さければ（Ｓ２０８でＹｅｓ）、データベース作成部１３は、Ｓ２０２〜２０８の処理を繰り返し行い、Ｓ２０７で作成するデータベースにデータを加えていく。そして、目標条件数に達すると（Ｓ２０８でＮｏ）データベースの作成手順は終了する。
【００３７】
ここで、Ｓ２０３での条件Ｎｏに応じた正弦波状の指令は、図５の破線（条件２、３）のように、正弦波の周期を数種類変えて予め作成しておく。周期の変え方としては、速度と摩擦力との関係が対数の比例に近い傾向を示すことから、対数刻みで変えると良い。変位と速度のどちらとも、対数刻みでデータベースを作成することによって、リニアでデータベースを作るよりもデータ点数を減らすことができ、データベースに使用するメモリ領域削減や補間計算での計算時間削減に効果がある。そして、条件数が目標条件数に達すれば、データベースの作成終了である。図７に、作成した変位と速度に対する駆動力の２次元データベースの例を示す。
【００３８】
次に、プログラム動作について説明する。プログラム動作とは、加工プログラムに基づく動作のことで、ワークの加工動作など精密な位置決めが必要な動作を想定している。加工プログラムは、ワークの加工処理において、ワークを載せる転動ステージ１の可動部の位置を記述するプログラムである。
【００３９】
まず、指令生成部１６が、記憶部１５に格納された加工プログラムを読込み、加工プログラム中で設定される位置にステージを移動させる動作指令を生成する。このとき、待機位置から加工プログラムの開始位置への移動や、加工プログラムの終了位置から待機位置への移動など、加工動作前後の移動動作指令もこの指令生成部１６により生成される。指令生成部１６は、生成した動作指令を位置制御部８及び駆動力演算部１０に与え、ドライバ９を通じて転動ステージ１の可動部に指令が伝わることで当該可動部が移動する。
【００４０】
加工プログラムに基づく動作が開始すると、転動ステージ１の可動部が加工動作の開始位置に移動し、そこで当該可動部に配置されたワークに対して加工装置（不図示）により加工動作が開始される。加工動作が全て終了すると、当該可動部は待機位置へと移動し、加工動作は終了する。
【００４１】
従来の転動ステージの位置制御装置は、加工動作前に、フィードフォワード制御の補間処理に用いる２次元データベースの全領域（全変位及び全速度）に対して測定及び更新を行うものであった。しかしながら、本実施形態の位置制御装置１００は、加工プログラムを事前に読込み、加工動作で使用する２次元データベースのデータ点を予め確認し、それに応じて更新箇所を予め特定する。そして、位置制御装置１００は、ワークの加工動作の開始前に、特定した箇所のデータベースを更新する。このように２次元データベースを部分的に更新する構成であるため、２次元データベースの更新に要する時間は削減される。
【００４２】
次に、加工プログラムから２次元データベースの更新箇所を特定する方法について図８を用いて説明する。更新箇所は、２次元データベースのうち、転動ステージ１の可動部が反転する位置からの変位と速度に関する部分である。
【００４３】
Ｓ３０１で、指令生成部１６は、記憶部１５に記憶された加工プログラムを１行読み込む。加工プログラム内には１行ごとに動作開始から一定周期毎の転動ステージ１の可動部の位置すべき位置が設定されている。
【００４４】
Ｓ３０２で、指令生成部１６は、Ｓ３０１で読み込んだ加工プログラムの中に、転動ステージ１の可動部の移動方向を反転させる指令があるかどうかを検出する。反転するかどうかは、加工プログラムに記載された速度指令の符号ｓが反転するか否かにより判定する。
【００４５】
転動ステージ１の可動部の移動方向が反転することを検出すると（Ｓ３０２でＹｅｓ）、Ｓ３０３で、指令生成部１６は、転動ステージ１の可動部の移動方向が反転する位置（反転位置）を内部メモリに記憶する。反転を検出しない場合は（Ｓ３０２でＮｏ）、Ｓ３０８へ進む。
【００４６】
Ｓ３０４で、指令生成部１６は、転動ステージ１の可動部の現在位置と、Ｓ３０３で記憶した反転位置とから反転後の変位を計算し、それが測定範囲の設定値内かを確認する。測定範囲の設定値内であれば（Ｓ３０４でＹｅｓ）Ｓ３０５の処理へ移行し、そうでなければ（Ｓ３０４でＮｏ）Ｓ３０８の処理へ移行する。
【００４７】
Ｓ３０５で、指令生成部１６は、反転位置からその次に位置すべき位置（加工プログラムから読み出す）までの変位Ｘｒを算出し、反転位置からその次に位置すべき位置及び加工プログラムで指定された時間を基に速度Ｖｒを算出する。そして、司令生成部１６は、変位Ｘｒ及び速度Ｖｒをデータベース作成部１３に送る。Ｓ３０６で、データベース作成部１３は、データベース部１２に格納されたデータベースから、変位Ｘｒ及び速度Ｖｒに対するデータベース上での駆動力に係るデータ点をピックアップする。
【００４８】
ここで、データベース上のデータ点のピックアップは、変位Ｘｒ及び速度Ｖｒの値が一番近い駆動力に係るデータ点Ｆ［ｉ、ｊ］が選択される。例えば、反転動作中から変位ｘ、速度ｖの動作を抽出した場合、図９に示すように、変位ｘ及び速度ｖに一番近い駆動力に係るデータ点Ｆ［ｉ、ｊ］が選択される。選択するデータ点が決まったら、Ｓ３０７で、データベース作成部１３は、選択したデータ点に係る配列インデックス［ｉ、ｊ］を内部メモリに記憶する。
【００４９】
Ｓ３０８で、指令生成部１６は、加工プログラムの読み込みが終了したか（言い換えると、加工プログラムの最後の行まで本処理を行ったか）どうかをチェックし、終了していなければＳ３０１に戻り、Ｓ３０１〜Ｓ３０８を繰り返す。Ｓ３０８でプログラム読込終了を検出したら、Ｓ３０９で、データベース作成部１３は、内部メモリに記憶した配列インデックス［ｉ、ｊ］より、更新すべきデータ点に係る配列インデックス［ｉ、ｊ］に対して使用する条件Ｎｏの特定を行う。
【００５０】
ここで、２次元データベースの使用箇所から、データベース更新のための動作を特定する方法について説明する。図１０は条件Ｎｏの違いによる、データベース上の更新できるデータ点の違いを示したものである。たとえば、条件Ｎｏ１の正弦波状の位置指令で転動ステージ１の可動部を動作させた場合、図中の三角記号で示すデータ点を更新することができる。同様に、条件Ｎｏ２、３ではそれぞれ対応する記号で示すデータ点を更新することができる。
【００５１】
２次元データベース上の全データ点を更新する際は、複数ある条件Ｎｏに対応する正弦波状の位置指令をそれぞれ与えて全条件で摩擦特性を測定する。しかし、本実施形態のように、加工プログラムのプログラム動作（反転位置からの変位及び速度）に応じて条件を特定する場合は、加工動作中に使用するデータ点が更新できる条件Ｎｏでのみ測定動作を行う。
【００５２】
例えば、図１１の線上の点が、加工プログラムの動作中で使用するデータ点を示したものである。図１１の例では、配列インデックス［ｉ、ｊ］＝［ｉ１、ｊ１］のデータ点に対しては条件Ｎｏ＝１を特定し、配列インデックス［ｉ、ｊ］＝［ｉ２、ｊ２］、［ｉ３、ｊ３］、［ｉ４、ｊ４］、［ｉ５、ｊ５］のデータ点に対しては条件Ｎｏ＝２を特定する。このようにして、このデータ点を更新するための条件ＮｏをＳ３０９で特定する。そして、Ｓ３１０で、データベース作成部１３は、図１２のフローチャートに示す処理を行い、配列インデックス［ｉ、ｊ］に係る２次元データベースの駆動力Ｆのデータ値を更新する。
【００５３】
次に、加工動作中で使用するデータ点のみを更新する方法について説明する。
【００５４】
図１２に動作フローを示す。この更新方法は、先に説明したデーベースの作成方法と一部Ｓ４０３が異なるが同様の処理を行う。Ｓ４０１で、データベース作成部１３は、条件Ｎｏを初期化する（条件Ｎｏ＝０）。Ｓ４０２で、データベース作成部１３は、条件Ｎｏを加算する（条件Ｎｏ＝条件Ｎｏ＋１）。
【００５５】
Ｓ４０３で、データベース作成部１３は、現在の条件ＮｏがＳ３０９で特定した条件Ｎｏであるかどうかを確認する。現在の条件ＮｏがＳ３０９で特定した条件Ｎｏに一致する場合（Ｓ４０３でＹｅｓ）、Ｓ４０４〜Ｓ４０８の処理が行われ、そうで無い場合（Ｓ４０３でＮｏ）、Ｓ４０９へ処理を進める。
【００５６】
Ｓ４０４で、データベース作成部１３は、条件Ｎｏに応じた正弦波状の位置指令を作成する。Ｓ４０５で、データベース作成部１３は、Ｓ２０３で作成した位置指令を図３に示した構成図の位置制御部８に入力される指令値に加えて転動ステージ１の可動部を駆動する。Ｓ４０６で、データ測定部１４は、転動ステージ１の可動部の駆動時の変位・速度・駆動力を同時に測定し、データベース作成部１３に送り、データベース作成部１３はそれを内部メモリに記憶する。
【００５７】
Ｓ４０７で、データベース作成部１３は、予め決めておいた変位に対する速度と駆動力の値をピックアップ（サンプリング）する。Ｓ４０８で、データベース作成部１３は、変位と速度に対する駆動力をデータベース部１２に記憶する。Ｓ４０９で、データベース作成部１３は、条件Ｎｏが目標条件数より小さいかどうかを判断する。小さければ（Ｓ４０９でＹｅｓ）、Ｓ４０２〜４０９の処理を繰り返し行い、小さくなければ（Ｓ４０９でＮｏ）終了である。なお、目標条件数は、全条件の数（図５の例では３）であってもよいし、全条件の数よりも小さい数であってもよい。
【００５８】
次に、本実施形態の効果について説明する。通常、複数の正弦波状の加速度指令でステージ動作を行ってデータベースの更新を行う。それに対し、本実施形態では予め加工プログラムを読み込み、それに応じた条件Ｎｏの正弦波状の加速度指令でのみ転動ステージを動作させ、データベース上のデータ点のうち加工動作中に使用するデータ点のみ更新を行う。これにより、データベース更新に要する時間を削減することができる。加工動作前に毎回データベース更新を行う装置であれば、装置の稼働率向上にも寄与することができる。
【００５９】
（その他の実施形態）
なお、本発明のその他の実施形態として、データベースの更新は、実際の加工動作前の実施に限らない。例えば、装置が稼働していないアイドルタイムを利用して、データベース更新処理を実施しすることにより、装置の稼働率低下を防止することが出来る。また、計測機など通常動作時に外力が入らずデータベース算出が可能な場合は、計測動作中にてデータベース更新処理を実施することにより、装置の稼働率低下を防止することが出来る。
【００６０】
また、データベースの更新履歴を用いて最適な更新時期を算出し、必要最小限のデータベース更新処理を実施することにより、装置の稼働率低下を防止することが出来る。
また、要求される精度が低い場合にはデータベース更新処理を実施せず加工動作を行うことにより、装置の稼働率低下を防止することが出来る。
【符号の説明】
【００６１】
１    転動ステージ
２    ベース
３    レール
４    キャリッジ
５    テーブル
６    リニアモータ
７    位置センサ
８    位置制御部
９    ドライバ
１０  駆動力演算部
１１  補間演算部
１２  テータベース部
１３  データベース作成部
１４  データ測定部
１５  記憶部
１６  指令生成部
【図１】
0006557477.tif 000003
【図２】
0006557477.tif 000004
【図３】
0006557477.tif 000005
【図４】
0006557477.tif 000006
【図５】
0006557477.tif 000007
【図６】
0006557477.tif 000008
【図７】
0006557477.tif 000009
【図８】
0006557477.tif 000010
【図９】
0006557477.tif 000011
【図１０】
0006557477.tif 000012
【図１１】
0006557477.tif 000013
【図１２】
0006557477.tif 000014