(57)【要約】【課題】サーボ系に生じる摩擦力など非線形外乱の補償を行い、サーボ系の運動精度を向上するとともに、運転条件や摩擦の状態が多少変化しても適切に外乱を補償できるようにすることである。【解決手段】フィードバック補償部より出力される速度指令値を常に監視し、速度指令値の符号が反転したときに、補償関数発生部において補償関数値を生成し速度指令値に加算する。そのときの補償関数値は、速度指令値の符号が反転してから予め設定した符号反転後時間までは速度指令値を定数倍した値とし、該時間から速度指令値の大きさが符号反転後時間における補償関数値と速度指令値との加算値よりも大きくなるまでは、速度指令値と補償関数値との加算値が一定となるような補償関数値を生成するものとする。これにより、サーボ系の運動精度を大幅に改善することができる。【選択図】　図２
2004094368.tif 000002
【特許請求の範囲】
【請求項１】
運動制御中、制御目標である位置指令値と負荷の検出位置との偏差をフィードバック補償部に入力するフィードバック信号経路と、前記のフィードバック補償部が入力された位置偏差に基づいて運動精度を高めるための速度指令値を生成し、かかる速度指令値を制御対象の速度制御部に入力する速度信号経路とを有する、制御対象に所望の運動をさせるための数値制御サーボ系において、制御対象に生じる摩擦力などの非線形外乱による影響を打ち消すために、速度指令値の符号を常に監視し、速度指令値の符号が反転したのを検知した場合、その検知時刻から予め設定した符号反転後時間までの間は速度指令値を定数倍した値を補償関数値として速度指令値に加算したものを加算後速度指令値とし、符号反転後時間が経過した後は、速度指令値の値と符号反転後時間における加算後速度指令値とを常に比較し、速度指令値の値が符号反転後時間における加算後速度指令値の値以上になるまでは、加算後速度指令値が一定値となるような補償関数値を速度指令値に加算し、そうでなければゼロを加算することを特徴とするサーボ系の制御方法。
【請求項２】
運動制御中、制御目標である位置指令値と負荷の検出位置との偏差をフィードバック補償部に入力するフィードバック信号経路と、前記のフィードバック補償部が入力された位置偏差に基づいて運動精度を高めるための速度指令値を生成し、かかる速度指令値を制御対象の速度制御部に入力する速度信号経路とを有する、制御対象に所望の運動をさせるための数値制御サーボ系において、フィードバック補償部から出力される速度指令値を監視してその符号反転を検知する符号反転検知ブロックと、符号反転時からの経過時間を測定して符号反転後時間に達したことを検知する符号反転後時間検知ブロックと、符号反転後時間における加算後速度指令値を記憶して符号反転後時間が経過した後に速度指令値と符号反転後時間における加算後速度指令値とを比較し、速度指令値が符号反転後時間における加算後速度指令値以上になったことを検知する速度指令値比較ブロックと、速度指令値の符号が反転した時刻から符号反転後時間までは速度指令値を定数倍した値を補償関数値として出力し、符号反転後時間が経過してから速度指令値の値が反転後時間における加算後速度指令値の値以上になるまでは加算後速度指令値が一定値となるような補償関数値を出力し、そうでなければゼロを出力する補償関数発生ブロックとを含んだ補償関数発生手段と、補償関数値と速度指令値とを加算して加算後速度指令値とする手段とを有することを特徴とするサーボ系の制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、数値制御工作機械やロボットのように、電動機を介して負荷を駆動する際の運動精度を向上させるための制御方法に関する。
【０００２】
【従来の技術】
従来、数値制御工作機械やロボットにおいて、電動機の運動方向反転時に静止摩擦やクーロン摩擦などの非線形外乱の影響により運動精度が劣化するという問題がある。例えば、数値制御工作機械の送り駆動系のように、直線運動をする２つのサーボ系を直行するように組み合わせ、２つのサーボ系を同期して運動させることで制御対象に円弧軌跡を描かせる場合、ある軸の運動方向が反転するときに摩擦力などの影響で即座に反転することができず、その箇所において指令軌跡からの誤差が生じる（図１）。
【０００３】
通常このような場合には、直線運動をする各サーボ系の運動方向をそれぞれＸ軸およびＹ軸とするため、指令軌跡からの誤差は各象限が切替る時に生じるが、座標軸のとり方を変えたとしても、指令軌跡からの誤差が生じる箇所が変化するだけで、ある軸の運動方向が反転するときに指令軌跡からの誤差が生じるという現象そのものは変化しない。
【０００４】
これを改善する一方法として、特公平７−１０４７２９号公報が提案されている。これは、輪郭加工中、各アクチュエータの位置指令値と検出位置との間の偏差を常時監視して、輪郭の象限切替り時点で該偏差の正または負の符号が逆転したのを検出したとき、予め内部に設定された象限切替り時の異常応答を補償するために用いる時間の関数である補償関数値を発生し、該補償関数値をサーボ系の速度指令値に加算することを特徴とする制御方法である　（以下、特公平７−１０４７２９号公報を『従来例』という）。
【０００５】
【発明が解決しようとする課題】
ところが従来例では、予め設定された補償関数を用いるため、運転条件や摩擦の状態が少しでも変化すると、設定した補償関数では摩擦などの非線形外乱を補償できなくなる。また、補償関数の設定にはいくつものパラメータを調整しなければならず、そのパラメータが摩擦などの非線形外乱を補償する際の性能に大きく影響するため、設定に多くの時間を要する。
【０００６】
本発明は、運転条件や摩擦などの非線形外乱の状態が変化しても、多少の変化ならば適切に外乱を補償し、高精度な運動制御をできるようにするためのものである。また、補償関数のパラメータの設定を簡便にするためのものである。
【０００７】
【課題を解決するための手段】
本発明では、サーボ系の速度指令値を常に監視し、速度指令値の符号が反転してから予め設定しておいた符号反転後時間までは、速度指令値ｕを定数倍した値を補償関数値ｕｃとして出力する。
【０００８】
【数１】
2004094368.tif 000003
【０００９】
上記の数式において、Ｋｃは速度指令値ｕを何倍するかという定数であり、本発明を適用するサーボ系ごとに設定する必要がある。しかし、速度指令値ｕはフィードバック補償部より出力されているため、運転条件や外乱の状態によって変化し、これとともに補償関数値ｕｃも運転条件や外乱の状態によって変化する。よって、運転条件や外乱の状態が多少変化しても外乱を適切に補償することができる。また同様の理由により、Ｋｃの値はそれほど厳密に調整する必要がなく、短時間で調整できる。
【００１０】
Ｋｃの値を０とした場合には補償関数値が出力されず、外乱の補償を行わないことになる。また、Ｋｃの値をあまり大きくするとサーボ系の安定性を損なうため、Ｋｃの値の上限は本発明を適用しようとするサーボ系の特性により異なる。
【００１１】
符号反転後時間が経過した後は、速度指令値ｕと補償関数値ｕｃとの加算値である加算後速度指令値ｕ’　が一定値となるような補償関数値ｕｃを出力する。加算後速度指令値ｕ’　が一定となるような補償関数値ｕｃは、サーボ系の各定数（機構の設計値、サーボパラメータ等）およびサーボ系へ与える位置指令値から時間の関数として導出できる。
【００１２】
また、符号反転後時間が経過した後の補償関数値ｕｃは、サーボ系の各定数と位置指令値により時間の関数として自動的に与えられるため、補償関数のパラメータは速度指令値ｕを何倍するかということのみを設定すればよい。
【００１３】
【発明の実施の形態】
図２に、補償関数発生部を付加したサーボ系の一例を示す。位置指令値１とパルスカウンタ部１２の出力との偏差を偏差カウンタ部２で演算し、フィードバック補償部３に入力する。フィードバック補償部３では、偏差カウンタ部２で演算された偏差を基に、速度指令値ｕを生成する。また補償関数発生部４では、速度指令値ｕを基に補償関数値ｕｃを生成し、加算部５で速度指令値ｕと補償関数値ｕｃを加算して加算後速度指令値ｕ’　を生成する。加算後速度指令値ｕ’　はＤ／Ａ変換部６で電圧に変換され、サーボアンプ部７に入力される。サーボアンプ部７では、ロータリーエンコーダ８の情報を基に演算されるモータ回転速度とサーボアンプ部７に入力された速度指令値との偏差を基にサーボモータ９を駆動し、制御対象１０が駆動される。制御対象の位置は位置検出器１１によって測定され、パルスカウンタ部ｌ２に入力される。また、本発明は上位制御装置内部の改良のみによって実施されるため、サーボアンプ部７以降には公知であるどのようなサーボ系を用いてもよい。
【００１４】
図３には直線運動をする２つのサーボ系をそれぞれＸ軸、Ｙ軸と平行に直行して組み合わせ円運動を行ったときのＸ軸、Ｙ軸それぞれの位置指令値を、図４にはそのときの速度指令値ｕと補償関数値ｕｃ、および加算後速度指令値ｕ’　とを示す。制御対象に円運動をさせる場合、各運動軸に入力する位置指令値はサイン波とコサイン波になる。また、そのときの速度指令値ｕは図４に示したようになる。
【００１５】
図４において、速度指令値の単位はｒａｄ／ｓとなっているが、これはサーボモータを回転させる場合であり、例えばリニアモータを駆動するような場合にはこの限りではない。
【００１６】
図４に示した補償関数値ｕｃは、補償関数発生部４において、図５に示すフローチャートに従って生成される。補償関数発生部４ではフィードバック補償部３から出力される速度指令値ｕを常に監視し、符号反転検知ブロック１３において速度指令値ｕの値が反転したことを検知し、かつ符号反転後時間検知ブロック１４において符号反転後時間ｔ０が経過したことを検知されるまでは、補償関数発生ブロック１６において速度指令値ｕをＫｃ倍した補償関数値（数１）を生成し、加算部５に出力する。その後、符号反転後時間検知ブロック１４において符号反転後時間ｔ０が経過したことが検知され、かつ速度指令値比較ブロック１５において速度指令値ｕが符号反転後時間ｔ０における加算後速度指令値ｕ’　以上になったことを検知されるまでは、補償関数発生ブロック１６において加算後速度指令値ｕ’が一定となるような補償関数値ｕｃを出力する。またそうでなければ、補償関数発生ブロック１６からはゼロが出力される。
【００１７】
例えばボールネジを用いてサーボモータの回転運動を直線運動に変換する構造をもつサーボ系の場合、加算後速度指令値ｕ’　が一定となるような補償関数値ｕｃは数２のようになる。数２は、円運動を行う際に各軸の運動方向が反転する付近での速度指令値ｕの増加率を導出し、符号反転後時間ｔ０における補償関数値ｕｃの値から、補償関数値ｕｃの値が速度指令値ｕの増加率と同じ割合で減少するようにしたものである。
【００１８】
【数２】
2004094368.tif 000004
【００１９】
数２において、ｕｃ（ｔ０）は符号反転後時間ｔ０における補償関数値ｕｃの値、Ｆは円運動における制御対象の移動速度の指令値、ｒは円運動における負荷の回転半径の指令値であり、ｌはサーボ系に用いられているボールネジのリードである。
【００２０】
数２はボールネジを用いたサーボ系を２つ組み合わせて円運動を行う場合における補償関数であるが、例えばリニアモータを用いたもの、ロボットアームのような構造を持つもの、または回転運動の制御を行うものなど、他の構造を持つサーボ系についても、加算後速度指令値ｕ’　が一定となるような補償関数は容易に導出でき、本発明を適用できる。また、例えば１つのサーボ系のみの直線運動で速度が滑らかに変化する場合など、円運動以外の運動についても同様である。
【００２１】
【発明の効果】
図６は、Ｙ軸のサーボ系の上にＸ軸のサーボ系が載った構造を持つＸ−Ｙテーブルである。Ｘ−Ｙテーブルの位置はリニアスケールによって常に監視され、パーソナルコンピュータを利用した数値制御装置に入力される。また、数値制御装置からは速度指令値をＤ／Ａ変換した速度指令電圧が出力され、各軸のサーボアンプに入力される。
【００２２】
図７は、図６に示した装置を用いて、半径５０ミリメートルの円運動を行った結果である。テーブルの移動速度は毎分４．８メートルとした。指令運動軌跡と測定された運動軌跡との誤差を１０００倍に拡大して表示してあるため、ＡからＤの各対応点における軌跡誤差は、突起となってあらわれている。また、図７における１目盛りは１０マイクロメートルである。
【００２３】
図８は、図６の数値制御装置に本発明を適用し、図７と同じ条件で実験を行った結果である。図８によれば、図７にみられるような突起はほぼ消滅していることがわかる。また、本発明を適用しない場合の真円度は２０．０マイクロメートルだったのに対し、本発明を適用した場合には８．６マイクロメートルとなり、運動精度が大幅に向上した。また、このときのＸ軸のＫｃは５、Ｙ軸のＫｃは４とし、ｔ０はＸ軸、Ｙ軸とも０．００５秒としてある。
【００２４】
本発明ではフィードバック補償部より出力された速度指令値ｕを基に補償関数値ｕｃを生成するため、運転条件や摩擦の状態が多少変化しても、摩擦を適切に補償することができる。また上記と同様の理由により、フィードバック補償部には公知であるどのような方法を用いてもよく、また、位置指令値の微分値を定数倍して速度指令値ｕに加えるというようなフィードフォワード制御を組み合わせることもできる。
【００２５】
発明の実施例では２つのサーボ系を組み合わせたＸ−Ｙテーブルに適用した例を示したが、本発明が適用できるサーボ系はそれに限ったものではなく、さらに多くのサーボ系を同期して運動させる場合や、ロボットアーム等にも適用することができる。
【図面の簡単な説明】
【図１】摩擦力の影響によって生じる指令軌跡からの誤差の模式図である。
【図２】補償関数発生部を付加したサーボ系である。
【図３】円運動を行う際にＸ軸、Ｙ軸に与える位置指令である。
【図４】円運動を行う際の速度指令値と補償関数値の関係である。
【図５】補償関数発生部で補償関数値を生成する際のフローチャートである。
【図６】本発明の検証を行った実験用のサーボ系である。
【図７】補償関数発生部を付加しないサーボ系で円運動を行った場合の円弧軌跡である。
【図８】補償関数発生部を付加したサーボ系で円運動を行った場合の円弧軌跡である。
【符号の説明】
１　位置指令値
２　偏差カウンタ部
３　フィードバック補償部
４　補償関数発生部
５　加算部
６　Ｄ／Ａ変換部
７　サーボアンプ
８　ロータリーエンコーダ
９　サーボモータ
１０　披駆動体負荷
１１　位置検出器
１２　パルスカウンタ部
１３　符号反転検知ブロック
１４　符号反転後時間検知ブロック
１５　速度指令値比較ブロック
１６　補償関数発生ブロック
ｕ　速度指令値
ｕｃ　補償関数値
ｕ’　加算後速度指令値
【図１】
2004094368.tif 000005
【図２】
2004094368.tif 000006
【図３】
2004094368.tif 000007
【図４】
2004094368.tif 000008
【図５】
2004094368.tif 000009
【図６】
2004094368.tif 000010
【図７】
2004094368.tif 000011
【図８】
2004094368.tif 000012