(57)【要約】補正データ作成時の運転指令は制御装置内部で生成し、外部測長器の測定データを入力部より入力して、シリンダサーボモータの制御装置内で推定位置と比較し、その誤差を補正メモリに記録する。また、通常運転時には外部測長器を取り外して該入力部へ移動指令を入力し、補正メモリに記録された誤差で移動指令を補正し、予想される誤差を打ち消し運転する。
2002091096.tif 000002
【特許請求の範囲】
【請求項１】
回転子を有するサーボモータ部と、このサーボモータ部の回転軸に設けられ、回転軸の回転動作を直線動作に変換する回転直線変換機構と、前記サーボモータ部の電流を検出する電流検出器と、前記サーボモータ部の回転角度を検出する回転検出器と、前記サーボモータ部を制御する制御部とを備え、前記サーボモータ部と制御部とを機械的に一体化した制御装置内蔵型シリンダサーボモータにおいて、前記制御部に、前記サーボモータ部に対する位置決め誤差測定用の指令を記憶した指令メモリと、この指令メモリに記憶された指令に基づいて動作する前記回転直線変換機構における出力軸の位置を測長する測長器の測定結果及び外部指令装置の指令を入力する入力手段と、制御装置内蔵型シリンダサーボモータを通常運転モード及びテスト運転モードの何れかのモードに切替える運転モード切替手段と、この運転モード切替手段にてテスト運転モードに切替えられたとき、前記回転検出器が検出した検出角度に基づいて前記回転直線変換機構における出力軸の推定位置を演算するとともに、この演算された出力軸の推定位置と前記入力手段を通じて入力された前記測長器の測定結果とに基づいて位置決め誤差補正データを演算する位置決め誤差補正データ演算手段と、この位置決め誤差補正データ演算手段にて演算された位置決め誤差補正データを記憶する補正メモリと、前記運転モード切替手段にて通常運転モードに切替えられたとき、前記補正メモリに記憶された位置決め誤差補正データに基づいて前記サーボモータ部を位置決め誤差補正して制御する手段とを設けたことを特徴とする制御装置内蔵型シリンダサーボモータ。
【請求項２】
前記制御部は、前記運転モード切替手段にて通常運転モードに切替えられたとき、前記補正メモリに記憶されたデータ、前記回転検出器の検出データ及び電流検出器の検出データに基づいてバックラッシュ補正データを演算する手段と、この演算手段にて演算されたバックラッシュ補正データに基づいて前記サーボモータ部をバックラッシュ誤差補正して制御する手段とを有することを特徴とする請求の範囲第１項に記載の制御装置内蔵型シリンダサーボモータ。
【請求項３】
前記制御部は、前記運転モード切替手段にてテスト運転モードに切替えられたとき、前記バックラッシュ補正データ演算に使用するデータを作成し、この作成したデータを前記補正メモリに記憶させる手段を有することを特徴とする請求の範囲第２項に記載の制御装置内蔵型シリンダサーボモータ。
【請求項４】
前記回転直線変換機構の温度を検出する温度検出器を備え、且つ前記制御部は、前記運転モード切替手段にて通常運転モードに切替えられたとき、前記補正メモリに記憶されたデータ及び前記温度検出器の検出データに基づいて温度誤差補正データを演算する演算手段と、この演算手段にて演算された温度誤差補正データに基づいて前記サーボモータ部を温度誤差補正して制御する手段とを有することを特徴とする請求の範囲第１項に記載の制御装置内蔵型シリンダサーボモータ。
【請求項５】
前記制御部は、前記運転モード切替手段にてテスト運転モードに切替えられたとき、温度誤差補正データ演算に使用するデータを作成し、この作成したデータを前記補正メモリに記憶させる手段を有することを特徴とする請求の範囲第４項に記載の制御装置内蔵型シリンダサーボモータ。
【請求項６】
前記制御部は、前記運転モード切替手段にて通常運転モードに切替えられたとき、前記電流検出器の検出データに基づいて前記回転直線変換機構の出力軸の推力を演算するとともに、この演算した推力に基づいて前記回転直線変換機構の出力軸の応力歪データを演算する応力歪演算手段と、この応力歪演算手段にて演算された応力歪データに基づいて前記サーボモータ部を応力歪補正して制御する手段とを有することを特徴とする請求の範囲第１項に記載の制御装置内蔵型シリンダサーボモータ。
【請求項７】
回転子を有するサーボモータ部と、このサーボモータ部の回転軸に設けられ、回転軸の回転動作を直線動作に変換する回転直線変換機構と、前記サーボモータ部の回転角度を検出する回転検出器と、前記サーボモータ部を制御する制御部とを備え、前記サーボモータ部と制御部とを機械的に一体化した制御装置内蔵型シリンダサーボモータにおいて、前記制御部に、前記回転検出器が検出する検出角度に対応して複数の位置決め誤差補正データを予め記憶したメモリと、制御装置内蔵型シリンダサーボモータを機械装置に組み込んだ状態で前記回転直線変換機構の出力軸をストロークエンド位置まで移動させた時における前記出力軸のストロークエンド推定位置を演算するとともに、この演算された出力軸のストロークエンド推定位置と機械装置固有のストロークエンド位置とを比較し、両者の間に差がある場合、その差に基づいて、位置決め誤差補正時に、前記メモリに記憶された複数の位置決め誤差補正データ中から前記差に基づく位置決め誤差を修正できる特定の位置決め誤差補正データを呼び出すデータ、または前記メモリに予め記憶された複数の位置決め誤差補正データそのものを修正するデータを演算する演算手段とを設けたことを特徴とする制御装置内蔵型シリンダサーボモータ。
【発明の詳細な説明】
技術分野
この発明は、サーボモータ部、このサーボモータ部を制御する制御部、サーボモータ部の回転角度を検出する検出器、サーボモータ部の回転動作を直線動作に変換する回転直線変換機構等を一体化した制御装置内蔵型シリンダサーボモータ（以下シリンダサーボモータと称する）に関するものである。
背景技術
シリンダサーボモータの従来例を第２４図に示す。
なお、第２４図に示すものは発明者等が提案したもので、ＰＣＴ出願（出願番号：ＰＣＴ／ＪＰ００／０１１１７）されている。
図において、１はサーボモータ部で、ロータ２、ステータ３から構成されている。４はロータ２と負荷側で結合されたボールナット、５はボールナット４と螺合され、軸方向に移動する出力軸となるボールネジで、ボールナット４とともに回転直線変換機構を構成している。７はロータ２の回転量を検出する回転検出器で、センサ部７ａ及び信号処理部７ｂを有している。なお、信号処理部７ｂは回転検出器制御部８、補正メモリ９及び加減算回路１０で構成されている。６はサーボモータ部１の制御部、１１はボールネジ５の先端に取付けられた反射ミラー１１ａの移動距離を測定する測長器、１９は外部指令装置、１２は第１の入力部１３、第２の入力部１４、差分回路１５、制御部１６、メモリ１７及びメモリライタ１８を有する試験装置である制御装置、１００は外部指令装置１６と制御部６との間でデータのやり取りを行うために必要な第１の入出力部、１０１は制御装置１２と補正メモリ９との間でデータのやり取りを行うために必要な第２の入出力部である。
そしてこのシリンダサーボモータは、外部指令装置１９より第１の入出力部１００を介して制御部６に指令が出力されると、制御部６を通じてサーボモータ部１のロータ２が回転し、ボールナット４とボールネジ５により、ロータ２の回転運動が直線運動に変換されることによりボールネジ５が往復動運転する。
ところで、本シリンダサーボモータは、使用前（工場出荷時）に、位置決め誤差（シリンダサーボモータの部品精度、回転検出器の精度等に起因する）を補正するための補正データを取得し、この取得した位置決め誤差データを補正メモリ９に記憶させる作業を行う。
即ち、ボールネジ５の先端に反射ミラー１１ａを取付けるとともに、この反射ミラー１１ａと対向する位置にレーザ測長器１１を設置し、且つ試験設備である制御装置１２を用意する。
次に外部指令装置１９より指令を与えることにより、シリンダサーボモータを運転してボールネジ５を往復運動させ、このボールネジ５の移動距離を、反射ミラー１１ａを通じて測長器１１で測定する。そしてこの測定データを、第２の入力部１４を介して制御装置１２の制御部１６へ入力する。一方、センサ部７ａで検出された角度データを、制御部６へ出力すると同時に第２の入出力部１０１、第１の入力部１３を介して制御部１６へ入力し、制御部１６で回転検出器７の検出データにボールネジリードを乗算してボールネジ先端の推定位置を得る。そして、制御部１６で演算したボールネジ先端の推定位置と測長器１１の測定データとを差分回路１５に送り、この差分回路１５でボールネジ先端の推定位置と測長器１１との間の位置決め誤差を演算させる。差分回路１５で演算した誤差を、制御部１６を介してメモリ１７に格納し、上記誤差の計測が終了した後、メモリ１７に記録された誤差を、メモリライタ１８により第２の入出力部１０１を介して補正メモリ９に書込む。本シリンダサーボモータは、以上説明したように、使用前（工場出荷時）に、位置決め誤差を補正する補正データを補正メモリ９に記憶させる作業を行う。
また、通常運転時には、反射ミラー１１ａ、測長器１１及び試験装置である制御装置１２を取り外し、ボールネジ５の先端が正確な位置に位置決めされるように、回転検出器７の検出データに補正メモリ９に記録された補正データを補正した値を制御部６へ出力する。制御部６は入力した値を考慮してサーボモータ部１をサーボ制御する。
従来のシリンダサーボモータは、測長器１１を使用して出力軸であるボールネジ５の位置決め精度を予め計測し、回転検出器７のデータを補正して正確な位置決めを実現可能とするものであるが、補正データ演算のため、測長器１１以外に補正データ演算や補正メモリ９への書込みを行うための制御装置１２を必要とする。このため、保守や修理のためにシリンダサーボモータを分解すると、その都度、試験設備である制御装置１２を用意して補正データを再作成する必要があった。
また、従来のシリンダサーボモータは、外部指令装置１６とシリンダサーボモータとの間でデータのやり取りを行うために必要な入出力部１００以外に、制御装置１２とシリンダサーボモータとの間でデータのやり取りを行うために必要な入出力部１０１を必要とした。
また、従来のシリンダサーボモータは温度変動やバックラッシュ、応力歪等による位置決め精度の悪化について考慮されていなかったので、このシリンダサーボモータを運転すると、温度変動やバックラッシュ、応力歪等による誤差が発生し、位置決め精度が悪化する恐れがあった。
因みに、温度変動やバックラッシュ、応力歪等による誤差を補正するためにサーミスタや、速度センサ、力センサ等を機械装置に付加することが考えられるが、センサの他に配線等も必要となるため、コストアップや工数の増大、整備性の低下を招く恐れがある。また、上記センサの検出データを外部指令装置１９で処理すると、外部指令装置１９の計算負荷が増大する等の問題が発生する恐れがある。
発明の開示
この発明は上記のような問題点を解決するためのもので、位置決め誤差補正データ等の作成を容易に実施できるシリンダサーボモータを得ることを目的とする。
またこの発明は、外部指令装置や測長器等の外部装置との間でデータのやり取りに使用する入出力部の数を減少させることができるシリンダサーボモータを得ることを目的とする。
またこの発明は、温度変動やバックラッシュ、応力歪等による位置決め精度の悪化を防止できるシリンダサーボモータを得ることを目的とする。
またこの発明は、予め記憶された位置決め誤差補正データを容易に校正できるシリンダサーボモータを得ることを目的とする。
この発明は上記目的を達成させるためになされたもので、回転子を有するサーボモータ部と、このサーボモータ部の回転軸に設けられ、回転軸の回転動作を直線動作に変換する回転直線変換機構と、前記サーボモータ部の電流を検出する電流検出器と、前記サーボモータ部の回転角度を検出する回転検出器と、前記サーボモータ部を制御する制御部とを備え、前記サーボモータ部と制御部とを機械的に一体化した制御装置内蔵型シリンダサーボモータにおいて、前記制御部に、前記サーボモータ部に対する位置決め誤差測定用の指令を記憶した指令メモリと、この指令メモリに記憶された指令に基づいて動作する前記回転直線変換機構における出力軸の位置を測長する測長器の測定結果及び外部指令装置の指令を入力する入力手段と、制御装置内蔵型シリンダサーボモータを通常運転モード及びテスト運転モードの何れかのモードに切替える運転モード切替手段と、この運転モード切替手段にてテスト運転モードに切替えられたとき、前記回転検出器が検出した検出角度に基づいて前記回転直線変換機構における出力軸の推定位置を演算するとともに、この演算された出力軸の推定位置と前記入力手段を通じて入力された前記測長器の測定結果とに基づいて位置決め誤差補正データを演算する位置決め誤差補正データ演算手段と、この位置決め誤差補正データ演算手段にて演算された位置決め誤差補正データを記憶する補正メモリと、前記運転モード切替手段にて通常運転モードに切替えられたとき、前記補正メモリに記憶された位置決め誤差補正データに基づいて前記サーボモータ部を位置決め誤差補正して制御する手段とを設けたものである。
またこの発明は、前記制御部に、前記運転モード切替手段にて通常運転モードに切替えられたとき、前記補正メモリに記憶されたデータ、前記回転検出器の検出データ及び電流検出器の検出データに基づいてバックラッシュ補正データを演算する手段と、この演算手段にて演算されたバックラッシュ補正データに基づいて前記サーボモータ部をバックラッシュ誤差補正して制御する手段とを設けたものである。
またこの発明は、前記制御部に、前記運転モード切替手段にてテスト運転モードに切替えられたとき、前記バックラッシュ補正データ演算に使用するデータを作成し、この作成したデータを前記補正メモリに記憶させる手段を設けたものである。
またこの発明は、前記回転直線変換機構の温度を検出する温度検出器を備え、且つ前記制御部に、前記運転モード切替手段にて通常運転モードに切替えられたとき、前記補正メモリに記憶されたデータ及び前記温度検出器の検出データに基づいて温度誤差補正データを演算する演算手段と、この演算手段にて演算された温度誤差補正データに基づいて前記サーボモータ部を温度誤差補正して制御する手段とを設けたものである。
またこの発明は、前記制御部に、前記運転モード切替手段にてテスト運転モードに切替えられたとき、温度誤差補正データ演算に使用するデータを作成し、この作成したデータを前記補正メモリに記憶させる手段を設けたものである。
またこの発明は、前記制御部に、前記運転モード切替手段にて通常運転モードに切替えられたとき、前記電流検出器の検出データに基づいて前記回転直線変換機構の出力軸の推力を演算するとともに、この演算した推力に基づいて前記回転直線変換機構の出力軸の応力歪データを演算する応力歪演算手段と、この応力歪演算手段にて演算された応力歪データに基づいて前記サーボモータ部を応力歪補正して制御する手段とを設けたものである。
またこの発明は、回転子を有するサーボモータ部と、このサーボモータ部の回転軸に設けられ、回転軸の回転動作を直線動作に変換する回転直線変換機構と、前記サーボモータ部の回転角度を検出する回転検出器と、前記サーボモータ部を制御する制御部とを備え、前記サーボモータ部と制御部とを機械的に一体化した制御装置内蔵型シリンダサーボモータにおいて、前記制御部に、前記回転検出器が検出する検出角度に対応して複数の位置決め誤差補正データを予め記憶したメモリと、制御装置内蔵型シリンダサーボモータを機械装置に組み込んだ状態で前記回転直線変換機構の出力軸をストロークエンド位置まで移動させた時における前記出力軸のストロークエンド推定位置を演算するとともに、この演算された出力軸のストロークエンド推定位置と機械装置固有のストロークエンド位置とを比較し、両者の間に差がある場合、その差に基づいて、位置決め誤差補正時に、前記メモリに記憶された複数の位置決め誤差補正データ中から前記差に基づく位置決め誤差を修正できる特定の位置決め誤差補正データを呼び出すデータ、または前記メモリに予め記憶された複数の位置決め誤差補正データそのものを修正するデータを演算する演算手段とを設けたものである。
発明を実施するための最良の形態
実施の形態１．
以下この発明の実施の形態１を、第１図〜第１４図を用いて説明する。
第１図は実施の形態１におけるシリンダサーボモータの構成図である。なお、この図は通常運転モード時の構成を示す。
図において、１はサーボモータ部で、ロータ２、ステータ３から構成されている。４はロータ２と負荷側で結合されたボールナット、５はボールナット４と螺合され、軸方向に移動する出力軸となるボールネジで、ボールナット４とともに回転直線変換機構を構成している。また２０は制御部、２１はサーボモータ部１をサーボ制御する、組み込み型マイコン等で構成される制御回路、２２は後述するテスト運転モード時に使用される指令メモリ、２３はシリンダサーボモータの位置決め精度向上のための各種補正データを記録するための補正メモリであり、後述するように複数のパラメータやピッチエラー、バックラッシュ、温度等の補正データを記録する。４２は後述するテスト運転モード時に使用される一時メモリ、２５はサーボモータ部１を駆動するインバータ回路、２６は外部指令装置１９や測長器１１との通信に用いる入出力部、２７はサーボモータ部１の電流検出し、制御回路２１へ出力する電流検出器、２８はサーボモータ部１の回転を検出し、制御回路２１へ出力する回転検出器、３１はボールネジ５及びボールナット４の温度計測を行い、制御回路２１へ出力する温度検出器である。
ところで、このシリンダサーボモータは、大きく分類して、通常運転モードとテスト運転モードの２つの運転モードを有している。第３図は各運転モード選択時の動作内容を示すブロック図である。この２つの運転モードは、補正データを計算するためのテスト運転モード６２と通常運転モード６１とに分かれ、更にテスト運転モード６２は、ピッチエラー補正データ作成モード６３、バックラッシュ補正データ作成モード６４及び温度補正データ作成モード６５の３つの運転モードに分かれる。また、補正メモリ２３に記録された運転モードパラメータに従って制御モード切替え回路３６がスイッチ３７〜４０を切替え、通常運転モード６１、またはピッチエラー補正データ作成モード６３、バックラッシュ補正データ作成モード６４、温度補正データ作成モード６５の何れかを選択実行する。運転モードパラメータは通常運転時に外部指令装置１９により書き換えられ、再電源投入時に運転モードパラメータの内容に従ってテスト運転モードを起動する。なお、第３図中、入出力部２６及び補正メモリ２３以外の回路は、制御回路２１に実装されるソフトウェアプログラムで構成される。
また、上記運転モードパラメータは４ｂｉｔで構成され、各ｂｉｔには連続テスト運転モード（ピッチエラー補正データ作成モード６３、バックラッシュ補正データ作成モード６４及び温度補正データ作成モード６５の３つの運転モードを順に実行する）と３つの単体でのテスト運転モードが割り当てられる。テスト運転モードを実行する場合は、事前に通常運転モードで外部指令装置１９の指令に従って制御回路２１が該当パラメータを０から１に変更し、電源を切る。再電源投入時に制御モード切替え回路３６がテスト運転モードを示す４つのパラメータを参照し、１となっているｂｉｔに該当するテスト運転モードを選択し、同時に該パラメータを０にクリアする。また、電源オン時に全てのパラメータが０のとき通常運転が選択される。
以上の動作をフローチャートにまとめると第４図となる。ここでは、ｂｉｔ０が１の時に連続テスト運転モード、ｂｉｔ１が１の時にピッチエラー補正データ作成モード６３、ｂｉｔ２が１の時にバックラッシュ補正データ作成モード６４、ｂｉｔ３が１の時に温度補正データ作成モード６５を実行する。なお、バックラッシュ補正データ作成モード６４は事前にピッチエラー補正データ作成モード６３が実行される必要があるため、ｂｉｔ２が１のときは、ピッチエラー補正データ作成モード６３及びバックラッシュ補正データ作成モード６４が順に実行される。
電源オン後、制御モード切替え回路３６は、運転モードパラメータを参照してｂｉｔ０に１が入力されているか否かを判断し（Ｓ１）、ｂｉｔ０に１が入力されている場合、運転モードパラメータの全ｂｉｔを０クリアし（Ｓ２）、スイッチ３８〜４０を順次切り換えて、ピッチエラー補正データ作成モード６３、バックラッシュ補正データ作成モード６４、温度補正データ作成モード６５を実行する。
即ち、ステップＳ３でスイッチ３８をオンしてピッチエラー補正データ作成モード６３を実行し（Ｓ４）、次にステップＳ５でスイッチ３９をオンしてバックラッシュ補正データ作成モード６４を実行し（Ｓ６）、最後にステップＳ７でスイッチ４０をオンして温度補正データ作成モード６５を実行する（Ｓ８）。
なおこのとき、ステップＳ１で全てのパラメータが０にクリアされるので、次回電源投入時には通常運転モード６１が実行される。
また、電源投入時にｂｉｔ０に０が入力されている場合、ｂｉｔ１に１が入力されているか否かを判断し（Ｓ９）、ｂｉｔ１に１が入力されている場合、制御モード切替え回路３６はｂｉｔ１を０にクリアし（Ｓ１０）、スイッチ３８をオンして（Ｓ１１）ピッチエラー補正データ作成モードを実行する（Ｓ１２）。このとき、ｂｉｔ２またはｂｉｔ３に１が入力されている場合、次回電源投入時にはバックラッシュ補正データ作成モード６４、温度補正データ作成モード６５が実行される。またｂｉｔ２及びｂｉｔ３が双方とも０であれば次回電源投入時には通常運転モード６１が実行される。
また、電源投入時にｂｉｔ０及びｂｉｔ１が０が入力されている場合、ｂｉｔ２に１が入力されているか否かを判断し（Ｓ１３）、ｂｉｔ２に１が入力されている場合、制御モード切替え回路３６はｂｉｔ２を０クリアし（Ｓ１４）、スイッチ３８をオンして（Ｓ１５）ピッチエラー補正データ作成モードを実行（Ｓ１６）後、スイッチ３９をオンして（Ｓ１７）バックラッシュ補正データ作成モード６４を実行する（Ｓ１８）。なおこのとき、ｂｉｔ３に１が入力されている場合、次回電源投入時には温度補正データ作成モード６５が選択され、ｂｉｔ３が０であれば次回電源投入時には通常運転モード６１が実行される。
また、ｂｉｔ０、ｂｉｔ１、ｂｉｔ２が全て０である場合、ｂｉｔ３に１が入力されているか否かを判断し（Ｓ１９）、ｂｉｔ３に１が入力されている場合、制御モード切替え回路３６はｂｉｔ２を０にクリアし（Ｓ２０）、スイッチ４０をオンして（Ｓ２１）、温度補正データ作成モード６５を実行する（Ｓ２２）。
なおこのとき、全てのパラメータが０であるので、次回電源投入時には通常運転モード６１が実行される。
また、ｂｉｔ０、ｂｉｔ１、ｂｉｔ２、ｂｉｔ３が全て０の場合、制御モード切替え回路３６はスイッチ３７をオンし（Ｓ２３）、通常運転モード６１を実行する（Ｓ２４）。
次に、各テスト運転モードの詳細について説明する。その構成図を第２図に示す。
即ち、ボールネジ５の先端に反射ミラー１１ａを固定し、この反射ミラー１１ａに対向するように測長器１１を設置するとともに、測長器１１の出力部を入出力部２６に接続する。そして測長器１１が反射ミラー１１ａの位置からボールネジ５の先端位置を測定し、この測定結果を制御部２０の入出力部２６から制御回路２１へ送る。また、指令メモリ２２に記録された運転パターンが指令として制御回路２１へ送られ、回転検出器２８が検出したサーボモータ部１の回転量も制御回路２１へ送られ、フィードバック制御によりインバータ回路２５を駆動してサーボモータ部１を運転する。
上記において、シリンダサーボモータは上位コントローラから移動指令を入力する必要が無いため、入出力部２６のためのコネクタは測長器１１の測定データを入力するために使用され、一つのコネクタを装備すればよい。
ピッチエラー補正データ作成モード６３では、シリンダサーボモータの部品（回転直線変換機構等）の精度や検出器の精度に起因する誤差（ピッチエラー誤差）のテーブル（以下  位置決め誤差テーブルと称する）を作成する。第２図では制御回路２１が、測長器１１が検出した反射ミラー１１ａの位置、即ちボールネジ先端位置と、サーボモータ部１の回転量とボールネジ５のリード長との積で推定されるボールネジ先端位置との差分を計算し、補正メモリ２３へ位置決め誤差テーブルとして記録する。
このときの動作を第５図の制御ブロック図を用いて説明する。図中、灰色で塗りつぶされた回路は第１図、第２図の同一符号のものと同一品を示し、差分回路４１、ボールネジリード乗算回路５３ａ及び平均処理部４５は、第１図、第２図の制御回路２１に実装されるソフトウェアプログラムで構成される。
即ち、指令メモリ２２に記録されている運転パターンに従って移動指令を生成し、差分回路４１及びコントローラ４３によって構成されるフィードバック制御によりインバータ回路２５を駆動し、サーボモータ部１を運転する。なお、指令メモリ２２に記録されている運転パターンは往復運動とし、誤差データを前進１回、後退１回の計２回計測して平均を補正メモリ２３に記録する。
回転検出器２８が検出した検出角度θ（モータ回転量）にボールネジリードＬをボールネジリード乗算回路５３ａで乗算して推定したボールネジ先端の推定位置と、測長器１１が測定したボールネジ先端位置の差分を差分回路２４で演算し、演算結果を回転検出器２８が検出した前記θとともに仮位置決め誤差として一時メモリ４２に記録する。
サーボモータ部１を反転運転するときにも同様に、回転検出器２８が検出した前記θにボールネジリードＬをボールネジリード乗算回路５３ａで乗算して推定したボールネジ先端の推定位置と、測長器１１が測定したボールネジ先端位置の差分を差分回路２４で演算し、更に、平均処理部４５では、正転運転時に一時メモリ４２に記録した仮位置決め誤差を呼び出し、反転時の位置決め誤差と平均を取って前記θとともに、補正メモリ２３に位置決め誤差テーブルとして記録する。
同時に後述のバックラッシュ補正のため、正転時の位置決め誤差と反転時の位置決め誤差の差をバックラッシュ仮データとして一時メモリ４２に記録する。
以上の動作をまとめると第６図のフローチャートとなる。
先ず、指令メモリ２２から制御回路２１に正転指令を与え、インバータ回路２５を通じてサーボモータ部１のロータ２を正転させる（Ｓ２５）。サーボモータ部１が回転すると、サーボモータ部１が回転するにつれて回転検出器２８が検出角度θ（モータ回転量）を検出し（Ｓ２６）、この検出したθにボールネジリード５のリード長Ｌをボールネジリード乗算回路５３ａで乗じてボールネジ先端の推定位置を演算する（Ｓ２７）。一方サーボモータ部１を正転させることによりボールネジ５が軸方向に移動するが、この移動に伴うボールネジ先端位置を測長器１１で測定する（Ｓ２８）。そして差分回路２４にて、ステップＳ２７で推定した推定位置と測長器１１で測定したボールネジ先端位置の誤差を取り（Ｓ２９）、この誤差データを一時メモリ４２の前記θに対応するアドレス位置に記録する（Ｓ３０）。なお、具体的な一時メモリ４２への記録方法は、該誤差データを、前記θを使って読み出せるように、次式で表現されるアドレスに誤差データを格納する。なお、補正メモリ２３への記録も同様である。
2002091096.tif 000003
上式中、ｆｌｏｏｒは小数点以下を切り捨てる関数、Ｎは分割数、Ｏｆｆｓｅｔは先頭アドレスを指定するためのオフセットを示す。
第８図にその具体例を示す。図中左が前記θと前記誤差データのプロット図で、横軸下の符号が上式第１項に対応し、図右のアドレスマップに示されるアドレスへ格納される。本例ではオフセット（Ａ）が位置決め誤差データの先頭アドレスを示す。θに対応したデータを読み出す必要があるものは位置決め誤差データ以外にも存在するが、同様に先頭アドレス（オフセット）を変えて記録する。例えば後述するバックラッシ
2002091096.tif 000004
差データと同様にオフセット（Ｂ）及びオフセット（Ｃ）を使って第８図に示すようなメモリマップとする。
一時メモリ４２への記録は正転計測が完了するまで継続し、正転計測終了と判断されると（Ｓ３１）、指令メモリ２２から制御回路２１に逆転指令を与え、Ｓ２５〜Ｓ２８と同様の動作を行わせる（Ｓ３２〜Ｓ３５）。そして差分回路２４にて、回転検出器２８が検出した検出角度θ（モータ回転量）にボールネジリード５のリード長Ｌをボールネジリード乗算回路５３ａで乗じたボールネジ先端推定位置と、測長器１１で計測したボールネジ先端位置の誤差を取り（Ｓ３６）、ステップＳ３０で一時メモリ４２に記録した誤差データと平均を取ってこれを補正メモリ２３の前記θに対応するアドレス位置へ記録する（Ｓ３７）。これは、正転逆転双方の誤差データからバックラッシュ相当の誤差を除去するためのものである。また、ステップＳ３０で一時メモリ４２に記録した誤差データとＳ３２〜Ｓ３６で計測した誤差データの差をバックラッシュ仮データとして、一時メモリ４２の前記θに対応するアドレス位置へ記録する（Ｓ３８）。これは、無負荷時のバックラッシュの大きさに相当し、後述するバックラッシュ補正データ作成モード６４で使用するため一時メモリ４２に記録するものである。
最後に逆転計測が完了すれば（Ｓ３９）、ピッチエラー補正データ作成モード６３が終了する。
なお、ステップＳ３０で一時メモリ４２に記録したデータは以後使用しないので、該当部のメモリ領域は解放してよい。
次にバックラッシュ補正データ作成モード６４について第２図、第７図及び第９図を用いて説明する。本モードでは、シリンダサーボモータのバックラッシュに起因する誤差を得、これを補正メモリ２３に上記θとともに記録する。
バックラッシュ量はボールネジ５の負荷状態により定まると考えられ、ボールネジ５の負荷はサーボモータ部１のトルクに比例し、かつサーボモータ部１のトルクはサーボモータ部１の電流に比例するため、次式の様に推定できる。
2002091096.tif 000005
ただし、θはサーボモータ部１の回転検出器２８が検出した検出角度を表し、ｉは電流、ｇはサーボモータ部１の回転量および電流からバックラッシュ量を計算するための関数を示す。
ここで、関数ｇ（θ，ｉ）を１次でテイラー展開すると、
2002091096.tif 000006
と近似する。
バックラッシュ補正データ作成モード６４ではバックラッシュ補正
2002091096.tif 000007
ド６３において一時メモリ４２にバックラッシュ仮データを記録しているが、その半分が無負荷時のバックラッシュ係数ｇ（θ，０）である。即ち
2002091096.tif 000008
と計算できる。
更に、第２図の推力受け２９に負荷をかけ、サーボモータ部１の回転量θにおいて、測長器１１がボールネジ先端位置Ｌ１を検出し、電流検出器２７が電流ｉを検出し、ボールネジリードをＬ、サーボモータ部１の回転量θにおけるピッチエラー誤差をεとすると、負荷時のバックラ
2002091096.tif 000009
より求めることができる。
なお、上式中｛｝内がピッチエラー誤差補正と無負荷時のバックラッシュ補正を施した推定位置を示している。
以上のバックラッシュ補正係数演算部６０は第２図の制御回路２１にソフトウェアプログラムとして実装される。
このときの動作を、第７図を用いて説明する。即ち、第２図の推力受け２９へ負荷をかけつつ指令メモリ２２に記録されている運転パターンに従って移動指令を生成し、差分回路４１及びコントローラ４３によって構成されるフィードバック制御によりインバータ回路２５を駆動し、サーボモータ部１を運転する。測長器１１が測定したボールネジ５の先端位置Ｌ１と、回転検出器２８が検出した検出角度θ（回転量）にボールネジ５のリードＬをボールネジリード乗算回路５３ａで乗じて推定されるボールネジ先端位置と、前記ピッチエラー補正データ作成モード６３で補正メモリ２３に記録した回転量θにおけるピッチエラー誤差εと、一時メモリ４２に記録した前記バックラッシュ仮データと、電流検出器２７が検出した電流ｉを補正データ演算部６０に入力する。補正データ演算部６０は第２図の制御回路２１にソフトウェアプログラムとして実装され、上述した式（２）、（３）を用いてバックラッシュ係数
2002091096.tif 000010
し、バックラッシュ補正係数テーブルを作成する。
以上の動作をまとめると第９図のフローチャートとなる。まず、推力受け２９（第２図）に推力負荷をかけ（Ｓ４０）、指令メモリ２２から制御回路２１に指令を与え、サーボモータ部１のロータ２を正転させる（Ｓ４１）。そして回転検出器２８で検出角度θ（回転量）を検出し（Ｓ４２）、このθとボールネジリード長Ｌをボールネジリード乗算回路５３ａ（第７図）で乗算し（Ｓ４３）、同時に前記θに対応したピッチエラー誤差εを補正メモリ２３から読み出し（Ｓ４４）、また前記θに対応したバックラッシュ仮データを一時メモリ４２から読み出す（Ｓ４５）。また、測長器１１（第２図）でボールネジ５の先端位置を計測し（Ｓ４６）、電流検出器２７でサーボモータ部１の電流を検出する（Ｓ４７）。そしてＳ４２〜Ｓ４７で得られたデータから補正データ演算部６０（第７図）を使って補正係
2002091096.tif 000011
を補正メモリ２３へ記録する（Ｓ４９）。補正データ演算部６０は制御回路２１に実装されたバックラッシュ補正データ作成用プログラムで、式
2002091096.tif 000012
る。補正メモリ２３のアドレス指定は、前記ピッチエラー補正データ作成モード６３と同様である。
なお、バックラッシュは負荷が正のときと負のときで一致しない可能性もあり、その場合はそれぞれの状態を個別に計測し補正する必要がある。このため、Ｓ５１〜Ｓ６１のステップを実施することにより逆方向の負荷がかかる際の補正係数を計算する。
即ち、正転完了した後（Ｓ５０）、推力受け２９にステップＳ４０と逆方向に負荷をかけ（Ｓ５１）、指令メモリ２２から制御回路２１に逆転指令を与えてサーボモータ部１のロータ２を逆転させる（Ｓ５２）。そして回転検出器２８で検出角度θ（回転量）を検出し（Ｓ５３）、このθとボールネジリード長Ｌをボールネジリード乗算回路５３ａ（第７図）で乗算し（Ｓ５４）、同時に前記θに対応したピッチエラー誤差εを補正メモリ２３から読み出し（Ｓ５５）、また前記θに対応したバックラッシュ仮データを一時メモリ４２から読み出す（Ｓ５６）。また、測長器１１（第２図）でボールネジ５の先端位置を計測し（Ｓ５７）、電流検出器２７でサーボモータ部１の電流を検出する（Ｓ５８）。そしてＳ５３〜Ｓ５８で得られたデー
2002091096.tif 000013
へ記録する（Ｓ６０）。
最後に逆転計測が終了すれば（Ｓ６１）、バックラッシュ補正データ作成モード６４が終了する。
なお、第６図のフローチャートＳ３８で一時メモリ４２に記録したバックラッシュ仮データは、Ｓ６０以後使用しないので、該当部のメモリ領域は解放してよい。
次に温度補正データ作成モード６５について第２図、第１０図及び第１１図を用いて説明する。この温度補正データ作成モード６５では、温度変動に伴うボールネジ・ナット等の熱膨張・収縮を補正するためのデータを得、これを補正メモリ２３に記録する。ボールネジ５等の熱膨張は、ボールネジ形状および材質から理論計算することも可能であるが、この実施の形態では次の手法によりボールネジ５の熱膨張を計測する。
まず、シリンダサーボモータの出力軸であるボールネジ５を最大限押し出し、測長器１１のデータを入力すると同時に上記位置決め誤差運転作成時の温度を第２図の温度検出器３１を使って検出して、温度Ｔ１での位置Ｌｍａｘ（測長器１１のデータ）を記録する。その後、シリンダサーボモータの動作保証最高温度Ｔ２まで加熱し、温度Ｔ２を検出した時点のボールネジ先端位置Ｌｍａｘ’を測長器１１で計測する。そして補正係数εＴを、
2002091096.tif 000014
と計算し、補正メモリ２３へ記録する。
このときの動作を、第１０図を用いて説明する。図中、サンプリング回路４７、補正データ演算部４８、サンプリング指令部４９及び微分回路７２は、制御回路２１に実装されるソフトウェアプログラムで構成される。微分回路７２は回転検出器２８の出力θを時間微分して回転速度を計算し、サンプリング指令部４９へ出力する。サンプリング指令部４９は、特定の温度またはモータ回転数でサンプリング回路４７へ指令を出力する。本例では、回転速度０と温度Ｔ２のいずれかを検出した時点でサンプリング回路４７を駆動する指令を出力する。サンプリング回路４７は、サンプリング指令部４９の指令を検出すると入力されたデータをサンプリングし、補正メモリ２３または一時メモリ４２へ出力する。補正データ演算部４８は、前記の式（６）に従って補正係数εＴを計算する。
まず、あらかじめ指令メモリ２２に記録されている運転パターンに従って移動指令を生成し、シリンダサーボモータに内蔵されたサーボモータ部１を、ボールネジ５を最大限伸長させるように運転する（第１０図には図示せず）。上記運転が完了すると、微分回路７２が出力するサーボモータ部１（第２図）の回転速度が０となるため、これをサンプリング指令部４９が検出してサンプリング回路４７を動作させ、入出力部２６から入力したボールネジ先端位置の測定データをサンプリングし、Ｌｍａｘとして一時メモリ４２へ出力し、同時に温度検出器（サーミスタ）３１が検出した温度Ｔ１を補正メモリ２３に記録する。次に恒温槽（図示せず）等によりシリンダサーボモータを加熱し、温度検出器３１が温度Ｔ２を検出したときサンプリング指令４９がサンプリング回路４７を動作させ、入出力部２６（第２図）を通して入力された測長器１１（第２図）が測定したボールネジ先端位置Ｌｍａｘ’を一時メモリ４２へ出力する。補正データ演算部４８は制御回路２１に実装された温度補正データ作成用プログラムで、一時メモリ４２に記録されたＬｍａｘ、Ｌｍａｘ’、補正メモリ２３に記録された温度Ｔ１及び温度Ｔ２から、前述の式（６）を用いて補正係数εＴを計算し、補正メモリ２３へ記録する。
以上の動作をまとめると第１１図のフローチャートとなる。まず、指令メモリ２２から制御回路２１に指令を与え、サーボモータ部１を回転させてボールネジ５を最大限伸長させる（Ｓ６２）。サーボモータ部１が停止したときが、ボールネジ５が最大限伸長したときであるので、回転検出器２８が零速度を検出すると（Ｓ６３）、測長器１１により計測したボールネジ先端位置をＬｍａｘとして一時メモリ４２へ記録する（Ｓ６４）（Ｓ６５）。同時に温度検出器３１で検出した温度Ｔ１を補正メモリ２３へ記録する（Ｓ６６）（Ｓ６７）。次に、シリンダサーボモータを加熱し（Ｓ６８）、温度検出器３１が温度Ｔ２を検出した時点（Ｓ６９）で測長器１１が計測したボールネジ先端位置をＬｍａｘ’として一時メモリ４２に記録する（Ｓ７０）（Ｓ７１）。次に、補正データ演算部４８が一時メモリ４２及び補正メモリ２３に記録された上記計測データ（Ｌｍａｘ、Ｌｍａｘ’、Ｔ１）及び温度Ｔ２を使って式（６）により補正係数εＴを計算し（Ｓ７２）、この計算結果である補正係数εＴを補正メモリ２３に記録する（Ｓ７３）。最後に指令メモリ２２から制御回路２１に指令を与え、ボールネジ５をスタート位置まで戻るようにサーボモータ部１を回転させ（Ｓ７４）、温度補正データ作成モード６５を終了させる。なお、ステップＳ６５及びＳ７１で一時メモリ４２に記録されたデータ（Ｌｍａｘ、Ｌｍａｘ’）はステップＳ７２以後は使用しないため、一時メモリ４２の該当メモリ領域は解放してよい。
次に通常運転モード６１について第１図、第１２図〜第１４図を用いて説明する
通常運転モード６１でのシリンダサーボモータの構成図は第１図となる。図において、外部指令装置１９より出力される指令位置を入出力部２６から制御回路２１へ入力する。制御回路２１は補正メモリ２３に記録されたデータを使って誤差を補正し、インバータ回路２５を駆動してサーボモータ部１をサーボ制御運転する。サーボモータ部１の回転は回転自在で軸方向に固定されたボールナット４を回転させ、ボールナット４の回転により軸方向に移動自在で回転を拘束されたボールネジ５を前後に動作させる。ボールネジ５の移動距離は、ボールナット４の回転量を、ロータ２を介して一体に回転する回転検出器２８が検出し、制御回路２１へ出力する。
次に通常運転モードの動作を第１２図の制御ブロック図を用いて説明する。外部指令装置１９から入力される指令位置は、位置決め誤差推定部３０で推定される誤差を差分回路５０で差分修正し、誤差を考慮した指令位置を作成する。本修正指令位置をボールネジリード除算回路５３ｂでサーボモータ回転指令へ変換し、差分回路４１及びコントローラ４３で構成されるフィードバック制御によりインバータ回路２５を制御し、サーボモータ部１を駆動する。一方、外部指令装置１９へ出力する現在位置データは、ボールネジリード乗算回路５３ａにて、回転検出器２８が検出した検出角度θにボールネジリード長を乗じ、位置決め誤差推定部３０で推定される誤差を加算回路５１で加算修正して出力する。なお、第１２図中、灰色で塗りつぶされた回路は第１図の同一符号のものと同等品を示し、また補正メモリ２３を除く部分の位置決め誤差推定部３０、差分回路５０、ボールネジ除算回路５３ｂ、差分回路４１、ボールネジ乗算回路５３ａ及び加算回路５１は、第１図に示す制御回路２１に実装されるソフトウェアプログラムで構成される。また、位置決め誤差テーブル及びバックラッシュ補正係数テーブルは補正メモリ２３に記録された補正データである。
次に位置決め誤差推定部３０の動作について説明する。
部品精度や検出器の精度に起因する誤差の補正（ピッチエラー補正）は、回転検出器２８が検出したサーボモータ部１の検出角度θから補正メモリ２３に記録された位置決め誤差テーブルの該当誤差を読み出し、加算回路５２に出力する。
温度変動によるボールネジの収縮は、温度検出器３１の検出温度、回転検出器２８が検出したサーボモータ部１の回転角度θ及び補正メモリ２３に記録されている補正係数εＴを温度補正演算部５５へ入力し、演算結果を加算回路５２へ出力する。温度補正演算部５５では、ボールネジのリードをＬ、ロータ９の回転角度をθ、θ＝０での位置をＬ０、温度Ｔ１（補正メモリ２３に記録された温度補正データ作成時の初期温度）と検出温度の差Ｔを使って、熱膨張による補正量を
2002091096.tif 000015
と計算する。
バックラッシュ補正は、回転検出器２８が検出した検出角度θに対応したバックラッシュ補正係数を補正メモリ２８のバックラッシュ補正係数テーブルから読み出し、また電流検出器２７で検出した電流ｉをバックラッシュ補正演算部５６へ入力してバックラッシュ量を計算し、計算結果を加算回路５２へ出力する。バックラッシュ補正演算部５６は式（３）の計算を実行するソフトウェアプログラムで構成され、制御回路２１に実装される。
また、ボールネジ５が推力を発生すると応力歪により出力軸先端の位置に誤差が生じる。応力歪は推力に比例し、推力はサーボモータ部１のトルクに比例し、サーボモータ部１のトルクはサーボモータ部１に流す電流に比例する。また、ボールネジ５を構成する材質のヤング率およびボールネジの径は一定と考えることができるので、ボールネジ５のバネ定数（弾性係数）はボールナット４からボールネジ５の先端までの距離に比例すると考えることができる。即ち、サーボモータ部１のトルク定数をｋＴ、ボールネジ５の材質のヤング率とボールネジ断面積を乗じたた値をｋ、サーボモータ回転角度θ、ボールネジリードＬ、ボールネジ効率η、θ＝０でのボールナットからボールネジ先端までの距離をＬ０、電流検出器２７が検出した電流をｉとすると，
2002091096.tif 000016
と計算できる。なお、上式中、分子はアンプ内蔵シリンダサーボモータ部１の推力、分母はバネ定数を示す。
即ち、第１２図では電流検出器２７が検出した電流ｉを応力歪演算部５７に入力し、この応力歪演算部５７では式（８）を用いて応力歪を演算し、この演算結果を加算回路５２へ出力する。
最後に通常運転時の補正動作について、第１３図のフローチャートを用いて第１図及び第１２図も参照しながら説明する。第１３図において、電源オン（Ｓ７５）後、回転検出器２８からサーボモータ部１の回転角度θを検出し、また温度検出器３１から温度Ｔを検出するとともに、電流検出器２７から電流ｉを検出する（Ｓ７６）。次に補正メモリ２３に記録した位置決め誤差テーブルから回転角度θに該当する位置決め誤差を読み出し（Ｓ７７）、同時に温度Ｔ及び回転角度θ等から温度上昇に伴う熱膨張を温度補正演算部５５（式（７））で計算し（Ｓ７８）、推力の発生により生じる応力歪を電流ｉ、回転角度θ等から応力歪演算部５７（式（８））にて計算し（Ｓ７９）、回転角度θと電流Ｉ等からバックラッシュ補正演算部５６（式（３））にてバックラッシュ量を計算する（Ｓ８０）。そして以上の総和を補正データとして第１２図の加算回路５２で加算する（Ｓ８１）。なお、ステップＳ７７〜Ｓ８１は上述した第１２図の位置決め誤差推定部３０の処理内容である。次に、ステップＳ８１の計算結果を用いて第１２図の差分回路５０により入力指令を修正し（Ｓ８２）、サーボモータ部１をフィードバック運転する（Ｓ８３）。また、運転結果はモニタ精度を向上させるため、第１２図の加算回路５１の修正（Ｓ８４）を経て、外部指令装置１９へ現在位置として出力（送信）する（Ｓ８５）。
なお、第１３図中、Ｓ７６〜Ｓ８１、Ｓ８２〜Ｓ８３及びＳ８４〜Ｓ８５の各ステップは、第１４図に示すように非同期に実施することもできる。即ち、一般的にはステップＳ８３のフィードバック運転は高速に実行し、補正演算のステップＳ７６〜Ｓ８１や上位コントローラ（外部指令装置）への出力Ｓ８４〜Ｓ８５は比較的低速に実行することにより、Ｓ７６〜Ｓ８１、Ｓ８２〜Ｓ８３及びＳ８４〜Ｓ８５の各ステップを非同期に実施することもできる。
実施の形態２．
次に実施の形態２を第１５図〜第２１図を用いて説明する。
即ち、この実施の形態２は、シリンダサーボモータを機械装置に組み込んだ後に、経年変化や分解補修等によりシリンダサーボモータに誤差が発生した際に、シリンダサーボモータを機械装置より取り外すことなく簡易的に位置決め誤差（ピッチエラー誤差）を補正するデータを修正するものである。
第１５図はその補正データを修正するための処理を示すフローチャート、第１６図はその制御ブロック図であり、先ず、サーボモータ部１を、指令メモリ２２からの正転指令により、差分回路４１、コントローラ４３及び電流制限回路７７にてトルク制限しながらサーボ制御運転を行う（Ｓ８７）。このとき微分回路７４は回転検出器２８の検出角度を時間微分して回転速度を計算し、サンプルリング指令部７３へ出力する。またこのとき、ボールネジリード乗算回路５３ａにて、検出角度にボールネジのリード長Ｌを乗じ（Ｓ８８）、これに位置決め誤差推定部３０（但しピッチエラー誤差補正を除く）の誤差を加算回路５１にて補正し（Ｓ８９）、この補正したものをサンプリング回路７５に出力している。そしてサンプルリング指令部７３が回転検出器２８、微分回路７４を通じてサーボモータ部１の回転の停止を検出すると（Ｓ９０）、サーボモータ部１のボールネジ５がストロークエンドに達したものとして、サンプリング回路７５に指令を与える。サンプリング回路７５はサンプルリング指令部７３からの指令により、このときの前記検出角度にリード長Ｌを乗じたものに位置決め誤差推定部３０の誤差を補正したものを、ストロークエンド推定位置として、前記検出角度とともに一時メモリ４２に記憶する（Ｓ９１）。また、サンプリング指令部７３の指令は指令メモリ２２にも出力されるので、正転後、前記と同様にサーボモータ部１を逆転し、反対側のストロークエンド位置でのストロークエンド推定位置を検出角度とともに一時メモリ４２に記憶する。（Ｓ９２〜Ｓ９６）。次に、修正係数演算回路７６にて、一時メモリ４２に記憶した経年変化や分解修理等の後のストロークエンド推定位置と、補正メモリ２３に記憶されている実際（稼動当初）のストロークエンド位置（機械装置固有で既知。以下、Ｌ０及びＬ１とする。第１７図参照）とを比較し（Ｓ９７）、誤差があれば、補正メモリ２３の位置決め誤差テーブルに予め記録されている検出角度に対応したピッチエラー誤差（＝ピッチエラー誤差の補正データ）の修正係数（位置決め誤差テーブルに予め記憶されている検出角度に対応したピッチエラー誤差を、ピッチエラー補正時に呼び出す際、各ピッチエラー誤差に対応する検出角度に補正を加えるためのもので、ピッチエラー補正時には、その補正を加えた検出角度に対応するピッチエラー誤差を呼び出すことになる。その詳細については第１７図〜第２３図を用いて説明する）を演算し（Ｓ９８）、補正メモリ２３に記録する（Ｓ９９）。即ち、修正係数演算回路７６は、実際のストロークエンド位置Ｌ１−正転時のストロークエンド推定位置＝誤差、実際のストロークエンド位置Ｌ０−逆転時のストロークエンド推定位置＝誤差を夫々演算し、これらの演算した誤差と補正メモリ２３に予め記憶されている実際のストロークエンド位置Ｌ０、Ｌ１のピッチエラー誤差とを夫々比較し、両者の差が０であれば、経年変化や分解修理等の後であっても前記修正係数の演算は不要と判断し、また両者の間に差があれば、前記修正係数の演算は必要と判断して前記修正係数を演算し、補正メモリ２３に記録する。
なお、第１６図において、電流制限回路７７、サンプリング指令部７３、サンプリング回路７５、微分回路７４及び修正係数演算回路７６は、第２図の制御回路２１上で実行されるソフトウェアプログラムにより構成されている。
次に位置決め誤差テーブルに予め記憶されている検出角度に対応したピッチエラー誤差（＝ピッチエラー補正データ）を、ピッチエラー補正時に呼び出す際、ピッチエラー誤差に対応する検出角度に補正を加えるための修正係数、及びこの修正係数を演算する修正係数演算回路７６について説明する。
即ち、補正メモリ２３に記録されたピッチエラー誤差は、第１８図に示すように、回転検出器２８が検出するボールネジ５の検出角度ｘを横軸に、ピッチエラー誤差を縦軸にとり、補正メモリ２３に記録されたピッチエラー誤差を検出角度ｘに対応してプロットすれば、ｅ＝ｆ（ｘ）とする関数により表現することができる。補正メモリ２３に記録されたピッチエラー誤差に対応する検出角度に修正を加え、ピッチエラー補正時に、この修正を加えた検出角度に対応するピッチエラー誤差を呼び出すことは、関数ｆ（ｘ）を修正することと同義である。以下、関数ｆ（ｘ）及びｅ＝ｆ（ｘ）をグラフ化した際の誤差波形を使って、修正係数及びこの修正係数を演算する修正係数演算回路７６について説明する。
なお、本修正では温度補正、バックラッシュ補正及び応力歪補正は変動しないと仮定し、以下ではピッチエラー補正を除く補正（温度補正、バックラッシュ補正、応力歪補正）後を前提として説明する。
即ち、ストロークエンド位置と、出荷当初の機械装置に組みつけられた直後の回転検出器２８の検出角度、再測定時（経年変化や分解補修等により誤差が発生したとき）の回転検出器２８の検出角度を次表のように定義する。
2002091096.tif 000017
第１７図は上記数値を、モデルを使って説明した図である。図左の（ａ）が出荷当初の機械装置に組みつけられた直後の状態、図右の（ｂ）が再測定時（経年変化や分解補修等により誤差が発生したとき）の状態を示し、図上が、ボールネジ５の先端に固定されたバー６６がストロークエンド位置Ｌ０でストッパー６７の一方に接触した状態を、また図下が、ボールネジ５の先端に固定されたバー６６がストロークエンド位置Ｌ１でストッパー６７の他方に接触した状態を示している。なお、バー６６とストッパー６７は、本シリンダサーボモータが組みつけられた機械のストロークを図示するためのモデルである。また、図中、ｘ１、ｘ０、ｘ１＋ε′、ｘ０＋εは、ボールネジ５の先端部が各ストロークエンド位置Ｌ０、Ｌ１にあるときの、回転検出器２８の検出角度を示す。
そしてストッパー６７の位置は変動しないと仮定しているため、ストロークエンド位置は、図左上と図右上では同じＬ１であるが、回転検出器２８の検出角度はε′の誤差を生じている。図左下と図右下も同様の関係にあり、ストロークエンド位置はＬ０であるが、回転検出器２８の検出角度はεの誤差を生じている。
誤差を補正するためのデータは、ストロークエンド位置Ｌ０とＬ１の２点しか得ることが出来ないが、２点間の誤差波形は当初測定した誤差波形と相似であると推定される。ここで、誤差波形グラフｅ＝ｆ（ｘ）が変動したため、既存の誤差波形ｅ＝ｆ（ｘ）による補正では上表の再測定時の検出角度でεまたはε’で示すような誤差を生じると考えることができる。
第１８図〜第２０図にその様子を図示する。
第１８図はｅ＝ｆ（ｘ）を示すグラフで、横軸は回転検出器２８の検出角度、縦軸はピッチエラー誤差である。点線は誤差波形ｅ＝ｆ（ｘ）で、位置決め誤差はピッチエラー誤差に一致するため、検出角度ｘ１の位置（＝ストロークエンド位置Ｌ１）でｐのピッチエラー誤差が存在し、また検出角度ｘ０の位置（＝ストロークエンド位置Ｌ０）でｐ‘のピッチエラー誤差が存在する。なお図中の定義域とは、当初のシリンダサーボモータ単体での動作範囲で、動作範囲で示した範囲（ｘ０〜ｘ１）が機械取付け時の動作範囲（＝ストロークエンド位置Ｌ１−ストロークエンド位置Ｌ０）である。
経年変化や分解補修等による変動により、位置決め誤差位置６８、６９が位置決め誤差位置７０、７１へ変動した場合を示した図が、第１９図である。本実施の形態では、この変動は経年変化や分解補修等により誤差波形ｅ＝ｆ（ｘ）が変動したものと考えて実線で示すように誤差波形ｅ＝ｆ（ｘ）を平行移動したと仮定して、誤差波形ｅ＝ｆ（ｘ）（即ちピッチエラー補正データ）を修正するものであり、第１９図では矢印で示す方向へ平行移動している。
第２０図は、第１９図に詳細説明を加えた図である。シリンダサーボモータ単体の動作範囲は修正前の定義域と一致するが、誤差波形の修正を施した後の定義域は、第２０図に示すように修正前に比較して左へずれているため、シリンダサーボモータ単体の動作範囲内ではあるがピッチエラー補正データの領域を越えた補正できない領域（図中補正不能領域）が発生する。しかし、実際の使用領域は図中の動作範囲（修正後）で示す領域のため、実用上問題はない。
次に、上記誤差波形グラフの変動を誤差波形グラフｅ＝ｆ（ｘ）がｅ＝ｆ（ｘ−ａ）＋ｂの位置に平行移動したと仮定して、修正係数ａおよびｂを求める手法の一例について説明する。第１８図〜第２０図の例では、位置決め誤差位置７０、７１は修正後の誤差波形グラフｅ＝ｆ（ｘ−ａ）＋ｂ上にあるが、実際には誤差波形グラフｅ＝ｆ（ｘ）を平行移動で修正しても位置決め誤差位置７０、７１の２点を同時かつ完全に補正する修正係数ａ、ｂは存在しない場合が多い。そこで、ａおよびｂは小さい校正量（誤差波形グラフの平行移動量）で、かつ校正後のストロークエンド位置の推定誤差が小さくなるように決定する。
例えば、最小２乗法を用いて係数を決定するには、
2002091096.tif 000018
とし、評価関数Ｊを最小とするａ、ｂを計算する。なお、式（９）の第１項は真のストロークエンド位置Ｌ０と誤差波形グラフｅ＝ｆ（ｘ−ａ）＋ｂによるサーボモータ回転量からの推定位置との誤差の大きさを示し、第２項は真のストロークエンド位置Ｌ１と誤差波形グラフｅ＝ｆ（ｘ−ａ）＋ｂによるサーボモータ回転量からの推定位置との誤差の大きさを示し、第３項が平行移動距離を示す。また、ωは重みで、平行移動量ａ、ｂとストロークエンドでの推定位置精度のバランスを決定する。ωが小さい場合は校正後の精度より、校正量を少なくする事に重点を置く事を意味し、ωが大きい場合は校正後のストロークエンド推定位置の精度を重視する計算結果を得られる。上記手法で計算したａ、ｂを用いて誤差関数ｆ（ｘ−ａ）＋ｂを校正後の誤差関数ｆ（ｘ）とする。なお、通常、ａ、ｂを陽関数の形で直接求める事は出来ないため、繰り返し計算で、以下の式（１０）（１１）のａ、ｂを計算し、上記評価関数Ｊが最小となるａ、ｂを求める。なおａは横軸方向の平行移動可能範囲で
2002091096.tif 000019
を満たす範囲にある。ただし、Ｘ０、Ｘ１は制御装置内蔵シリンダサーボモータ単体でのストロークエンド位置を示し、Ｘ０＜ｘ０＜ｘ１＜Ｘ１とする。即ちａが式（１０）の範囲にあれば、ｘ０＜ｘ＜ｘ１を満たすｘにおいてｆ（ｘ−ａ）＋ｂを計算可能である。（実施の形態１の位置決め誤差テーブル作成運転ではＸ０＜ｘ＜Ｘ１においてｆ（ｘ）のデータを取得しているため）
2002091096.tif 000020
なお上式において、ｈは関数ｆ（ｘ）の刻み幅、ｉは計算中に現れるカウント数（負でない整数）である。また、式（１３）は、式（１０）のａの範囲を表す式に式（１１）を代入したものである。また、式（１２）は、ａを固定したときのストロークエンド位置と、校正位置決め誤差テーブルで補正した推定ストロークエンド位置の誤差の和が±０となるようにｂを定めるものである。以上の計算は修正係数演算回路７６で行われる。
また、この計算をフローチャートにまとめたものが、第２１図である。
第２１図において、まず、初期値ｉを設定し（Ｓ９６）、Ｊｍｉｎに初期値を設定する（Ｓ９７）。式（９）（１１）（１２）よりａ、ｂ、Ｊを計算後（Ｓ９８〜Ｓ１００）、ＪｍｉｎとＪを比較し（Ｓ１０１）、Ｊｍｉｎ＞Ｊであれば、ａ、ｂ、Ｊを（ａｍｉｎ、ｂｍｉｎ、Ｊｍｉｎとして保存し（Ｓ１０２）、またＪｍｉｎ＞Ｊでなければ、ステップＳ１０３に移行する。次にｉを１つカウントアップし（Ｓ１０３）、ｉが式（１３）を満たすか否かを判断し（Ｓ１０４）、ｉが式（１３）を満たさないときは、以上の手法で得られたａｍｉｎ、ｂｍｉｎを修正係数ａ、ｂとして、補正メモリ２３に記録して（Ｓ１０５）終了する。またｉが式（１３）を満たすときはＳ９８へ戻り、Ｓ９８〜Ｓ１０３を繰り返す。
上記手法で計算された修正係数ａ、ｂは、補正メモリ２３に記録され、通常運転時には次式により修正係数ａ、ｂを使用してピッチエラー補正データを計算するのに用いられる。
即ち、アドレスｉのデータをｄ［ｉ］とすると角度θのピッチエラー誤差は式（１）から
2002091096.tif 000021
て
2002091096.tif 000022
いられる。
実施の形態３．
なお、修正係数の求め方として、実施の形態２で説明したような求め方により求めることなく、簡易的に
2002091096.tif 000023
または
2002091096.tif 000024
と求めてもよい。前者は制御装置内蔵シリンダサーボの分解等により検出器と出力軸の相対位置に誤差が発生した場合の校正式であり、例えば回転直線変換機構を分解し、ロータとナットや出力軸の取付け角度が変化した場合に発生する。これは第２３図に相当し、横軸方向に平行移動して誤差波形ｅ＝ｆ（ｘ）を修正する。後者はストロークエンド位置の誤差をオフセットとして差分修正するもので磨耗等によるボールネジ長の変動修正に相当する。これは第２２図に相当し、縦軸方向に平行移動して誤差波形ｅ＝ｆ（ｘ）を修正する。
実施の形態４．
また、上記実施の形態２，３においては、位置決め誤差テーブルに予め記憶されている検出角度に対応したピッチエラー誤差（＝ピッチエラー補正データ）を、ピッチエラー補正時に呼び出す際、ピッチエラー誤差に対応する検出角度に補正を加えるための修正係数を求め、この補正係数に基づいて補正された検出角度に対応する位置のピッチエラー誤差を補正メモリ２３より呼び出してピッチエラー補正を行うものについて説明した。即ち、経年変化や分解補修等により誤差が発生したときであっても、補正メモリ２３に予め記憶されている検出角度に対応したピッチエラー誤差データそのものを修正することなく、その誤差を修正できるものについて説明したが、これとは相対的に、上記修正係数に基づいて前記ピッチエラー誤差データそのものを修正しておき、回転検出器２８にて検出される検出角度には修正を加えないで上記誤差を修正するように構成してもよい。
以上のように、この発明によれば、回転子を有するサーボモータ部と、このサーボモータ部の回転軸に設けられ、回転軸の回転動作を直線動作に変換する回転直線変換機構と、サーボモータ部の電流を検出する電流検出器と、サーボモータ部の回転角度を検出する回転検出器と、前記サーボモータ部を制御する制御部とを備え、サーボモータ部と制御部とを機械的に一体化した制御装置内蔵型シリンダサーボモータにおいて、制御部に、サーボモータ部に対する位置決め誤差測定用の指令を記憶した指令メモリと、この指令メモリに記憶された指令に基づいて動作する回転直線変換機構における出力軸の位置を測長する測長器の測定結果及び外部指令装置の指令を入力する入力手段と、制御装置内蔵型シリンダサーボモータを通常運転モード及びテスト運転モードの何れかのモードに切替える運転モード切替手段と、この運転モード切替手段にてテスト運転モードに切替えられたとき、回転検出器が検出した検出角度に基づいて回転直線変換機構における出力軸の推定位置を演算するとともに、この演算された出力軸の推定位置と入力手段を通じて入力された測長器の測定結果とに基づいて位置決め誤差補正データを演算する位置決め誤差補正データ演算手段と、この位置決め誤差補正データ演算手段にて演算された位置決め誤差補正データを記憶する補正メモリと、運転モード切替手段にて通常運転モードに切替えられたとき、補正メモリに記憶された位置決め誤差補正データに基づいてサーボモータ部を位置決め誤差補正して制御する手段とを設けたので、シリンダサーボモータの位置決め誤差補正データの作成に際し、測長器以外の試験装置を必要とせず、よって出荷工場以外での保守点検、修理等による再補正データ作成を容易に実施できる。また、出荷工場における誤差補正データ作成においても特別な試験装置を必要としないため試験装置の製作や設置の費用を削減することが出来る。
また、入力手段として、測長器の測定結果を入力する入力手段と外部指令装置の指令を入力する入力手段とを兼用しているため、入力のためのコネクタや通信のための回路を一つ用意すればよく、部品点数の削減やコストダウンが可能である。
またこの発明によれば、制御部に、運転モード切替手段にて通常運転モードに切替えられたとき、補正メモリに記憶されたデータ、回転検出器の検出データ及び電流検出器の検出データに基づいてバックラッシュ補正データを演算する手段と、この演算手段にて演算されたバックラッシュ補正データに基づいてサーボモータ部をバックラッシュ誤差補正して制御する手段とを設けたので、高精度のバックラッシュ補正を掛けることができる。また、バックラッシュ補正演算はシリンダサーボモータの制御部で演算されるため、外部指令装置がバックラッシュ量を計算する場合と異なり、通信による無駄時間が無くリアルタイムでバックラッシュ量を推定できる。
またこの発明によれば、制御部に、運転モード切替手段にてテスト運転モードに切替えられたとき、バックラッシュ補正データ演算に使用するデータを作成し、この作成したデータを補正メモリに記憶させる手段を設けたので、シリンダサーボモータのバックラッシュ補正データ演算に使用するデータの作成に際し、測長器以外の試験装置を必要とせず、データ作成を容易に実施できる。
またこの発明によれば、回転直線変換機構の温度を検出する温度検出器を備え、且つ前記制御部に、運転モード切替手段にて通常運転モードに切替えられたとき、補正メモリに記憶されたデータ及び前記温度検出器の検出データに基づいて温度誤差補正データを演算する演算手段と、この演算手段にて演算された温度誤差補正データに基づいてサーボモータ部を温度誤差補正して制御する手段とを設けたので、ユーザーや外部指令装置を介在させることなく発熱による温度上昇を、シリンダサーボモータ単体で補正することができる。また、温度検出器もシリンダサーボモータ内に持つため、機械側で温度検出器の設置や、温度検出器のデータを伝達するためのケーブル及び処理回路を設計・製作する必要がないため、機械装置全体でのコスト削減や小形化を実現できる。更に、温度検出器と制御部の距離を短くできるため、温度検出器から制御部のＡＤ変換器間の信号劣化を防ぎ、高精度の補正が可能である。
またこの発明によれば、制御部に、前記運転モード切替手段にてテスト運転モードに切替えられたとき、温度誤差補正データ演算に使用するデータを作成し、この作成したデータを補正メモリに記憶させる手段を設けたので、シリンダサーボモータの温度補正データ演算に使用するデータの作成に際し、測長器以外の試験装置を必要とせず、データ作成を容易に実施できる。
またこの発明によれば、制御部に、運転モード切替手段にて通常運転モードに切替えられたとき、電流検出器の検出データに基づいて回転直線変換機構の出力軸の推力を演算するとともに、この演算した推力に基づいて回転直線変換機構の出力軸の応力歪データを演算する応力歪演算手段と、この応力歪演算手段にて演算された応力歪データに基づいてサーボモータ部を応力歪補正して制御する手段とを設けたので、高精度の応力歪補正を掛けることができる。また、補正演算はシリンダサーボモータの制御部で演算されるため、外部指令装置が応力歪を計算する場合と異なり、通信による無駄時間が無くリアルタイムで応力歪補正を掛けることができる。
またこの発明によれば、制御部に、回転検出器が検出する検出角度に対応して複数の位置決め誤差補正データを予め記憶したメモリと、制御装置内蔵型シリンダサーボモータを機械装置に組み込んだ状態で回転直線変換機構の出力軸をストロークエンド位置まで移動させた時における出力軸のストロークエンド推定位置を演算するとともに、この演算された出力軸のストロークエンド推定位置と機械装置固有のストロークエンド位置とを比較し、両者の間に差がある場合、その差に基づいて、位置決め誤差補正時に、メモリに記憶された複数の位置決め誤差補正データ中から差に基づく位置決め誤差を修正できる特定の位置決め誤差補正データを呼び出すデータ、またはメモリに予め記憶された複数の位置決め誤差補正データそのものを修正するデータを演算する演算手段とを設けたので、測長器を使用せず、機械装置に取付けたままで特別な装置を使用することなく位置決め誤差補正データを校正することができる。
また、上記各発明は温度検出器の設置を除き、シリンダサーボモータに追加的な機構や部品を必要とせず、制御部のＳ／Ｗ変更のみで対応する事が可能なため、シリンダサーボモータをコストアップすることなく実現する事が可能である。
産業上の利用可能性
以上のように、この発明にかかる制御装置内蔵型シリンダサーボモータは、油圧シリンダまたは空圧シリンダを使用する機械装置において、油圧シリンダまたは空圧シリンダの代替品として用いられるのに適している。
【図面の簡単な説明】
第１図はこの発明の実施の形態１に係るシリンダサーボモータの通常運転時の構成図である。
第２図はこの発明の実施の形態１に係るシリンダサーボモータのテスト運転時の構成図である。
第３図はこの発明の実施の形態１に係る各運転モード選択時の動作内容を示すブロック図である。
第４図はこの発明の実施の形態１に係る各運転モード選択時の動作内容を示すフローチャートである。
第５図はこの発明の実施の形態１に係る位置決め誤差補正データ作成時の制御ブロック図である。
第６図はこの発明の実施の形態１に係る位置決め誤差補正データ作成時の動作内容を示すフローチャートである。
第７図はこの発明の実施の形態１に係るバックラッシュ補正データ作成時の制御ブロック図である。
第８図はこの発明の実施の形態１に係るメモリマップを示す図である。
第９図はこの発明の実施の形態１に係るバックラッシュ補正データ作成時の動作内容を示すフローチャートである。
第１０図はこの発明の実施の形態１に係る温度補正データ作成時の制御ブロック図である。
第１１図はこの発明の実施の形態１に係る温度補正データ作成時の動作内容を示すフローチャートである。
第１２図はこの発明の実施の形態１に係る通常運転時の制御ブロック図である。
第１３図はこの発明の実施の形態１に係る通常運転時の動作内容を示すフローチャートである。
第１４図はこの発明に係る実施の形態１の変形例を示すフローチャートである。
第１５図はこの発明の実施の形態２に係る動作を示すフローチャートである。
第１６図はこの発明の実施の形態２に係る動作を示す制御ブロック図である。
第１７図はこの発明の実施の形態２に係るストロークエンド位置と回転検出器の検出角度との関係を説明するための図である。
第１８図はこの発明の実施の形態２に係るピッチエラー誤差と回転検出器の検出角度との関係を説明するための図である。
第１９図はこの発明の実施の形態２に係るピッチエラー誤差の修正を説明するための図である。
第２０図はこの発明の実施の形態２に係るピッチエラー誤差の修正をより詳細に説明するための図である。
第２１図はこの発明の実施の形態２に係るピッチエラー誤差の修正係数を得るための動作を示すフローチャートである。
第２２図はこの発明の実施の形態３に係るピッチエラー誤差の修正を説明するための図である。
第２３図はこの発明の実施の形態３に係る他のピッチエラー誤差の修正を説明するための図である。
第２４図は従来例を説明するための構成図である。
【図１】
2002091096.tif 000025
【図２】
2002091096.tif 000026
【図３】
2002091096.tif 000027
【図４】
2002091096.tif 000028
【図５】
2002091096.tif 000029
【図６】
2002091096.tif 000030
【図７】
2002091096.tif 000031
【図８】
2002091096.tif 000032
【図９】
2002091096.tif 000033
【図１０】
2002091096.tif 000034
【図１１】
2002091096.tif 000035
【図１２】
2002091096.tif 000036
【図１３】
2002091096.tif 000037
【図１４】
2002091096.tif 000038
【図１５】
2002091096.tif 000039
【図１６】
2002091096.tif 000040
【図１７】
2002091096.tif 000041
【図１８】
2002091096.tif 000042
【図１９】
2002091096.tif 000043
【図２０】
2002091096.tif 000044
【図２１】
2002091096.tif 000045
【図２２】
2002091096.tif 000046
【図２３】
2002091096.tif 000047
【図２４】
2002091096.tif 000048
【国際調査報告】
2002091096.tif 000049
2002091096.tif 000050
2002091096.tif 000051
2002091096.tif 000052