(57)【要約】【課題】加工位置の象限が変わり送り軸の移動方向が反転するときに生じる象限突起の発生等を防止し、高精度の加工ができるようにする。【解決手段】学習制御して、位置偏差が零に収束した段階で、速度指令又は、該速度指令と位置指令を微分した指令速度との差を速度補正データとする。この補正データを速度オフセット手段４に格納する。位置指令に速度フィードバックより位置偏差を求めポジションゲインＫｐを乗じて速度指令を求める。位置指令の負符号の反転を検出した後、所定期間、速度指令の補正を開始する。速度オフセット手段４に格納された速度補正データに基づいて、各位置ループ処理周期毎の対応する補正量を求め、この補正量を速度指令に加算し、補正された速度指令Ｖｃとする。速度補正データに基づいて速度指令が補正されるから、象限が変わる位置で生じる象限突起を小さくし、高精度の加工を可能にする。【選択図】      図２
2004234327.tif 000002
【特許請求の範囲】
【請求項１】
上位制御装置あるいは上位制御部から所定サンプリング周期で送られる位置指令と位置検出器からの位置フィードバックとの偏差に基づいて所定周期毎に速度指令を出力してサーボモータを駆動制御する制御装置において、所定時間に亘って前記速度指令を補正データにより補正しながら前記サーボモータを駆動制御するようにしたことを特徴とするサーボモータの駆動制御装置。
【請求項２】
前記速度指令の補正データは学習制御により求めることを特徴とする請求項１に記載のサーボモータ駆動制御装置。
【請求項３】
前記サーボモータで駆動される被駆動部の所定区間を繰り返して駆動して所定周期に亘る位置偏差を求め、該位置偏差に基づいて学習制御を行い、該学習制御によって得られた速度指令から、前記位置指令を微分した微分値を差し引いて、前記所定時間に亘る速度指令の補正データを求めることを特徴とする請求項２に記載のサーボモータ駆動制御装置。
【請求項４】
前記補正データは、位置指令反転時より所定時間の補正データとし、前記位置指令の反転を検出する手段を有し、該位置指令反転時より所定時間に亘って前記補正データより補正量を求めて速度指令を補正することを特徴とする請求項１乃至３に記載のサーボモータ駆動制御装置。
【請求項５】
前記所定時間に亘る速度指令の補正データを解析し、第２の補正データを作成し、該第２の補正データを、前記速度指令を補正する補正データとすることを特徴とする請求項１乃至４に記載のサーボモータ駆動制御装置。
【請求項６】
前記サーボモータの駆動制御装置にコンピュータを接続し、該コンピュータによって前記速度指令の補正データ或いは第２の補正データを作成することを特徴とする請求項１乃至５に記載のサーボモータ駆動制御装置。
【請求項７】
上位制御装置あるいは上位制御部から所定サンプリング周期で送られる位置指令と位置検出器からの位置フィードバックとの偏差に基づいて所定周期毎に速度指令を出力し、前記速度指令と速度検出器からの速度フィードバックとの偏差に基づいて所定周期毎にトルク指令を出力してサーボモータを駆動制御する制御装置において、所定時間に亘って前記トルク指令を補正データにより補正しながら前記サーボモータを駆動制御するようにしたことを特徴とするサーボモータ駆動制御装置。
【請求項８】
前記トルク指令の補正データは学習制御により求めることを特徴とする請求項７に記載のサーボモータ駆動制御装置。
【請求項９】
前記サーボモータで駆動される被駆動部の所定区間を繰り返して駆動して所定周期に亘る位置偏差を求め、該位置偏差に基づいて学習制御を行い、該学習制御によって得られたトルク指令から、前記位置指令を２階微分した微分値を差し引いて、前記所定時間に亘るトルク指令の補正データを求めることを特徴とする請求項８に記載のサーボモータ駆動制御装置。
【請求項１０】
前記補正データは、位置指令反転時より所定時間の補正データとし、前記位置指令の反転を検出する手段を有し、該位置指令反転後、所定時間に亘って前記トルク指令を補正データに基づいて補正することを特徴とする請求項７乃至９の内いずれか１項に記載のサーボモータ駆動制御装置。
【請求項１１】
前記所定時間に亘るトルク指令の補正データを解析し、第２の補正データを作成し、該第２の補正データを、前記トルク指令を補正する補正データとすることを特徴とする請求項７乃至１０に記載のサーボモータ駆動制御装置。
【請求項１２】
前記サーボモータの駆動制御装置にコンピュータを接続し、該コンピュータによって前記トルク指令の補正データ或いは第２の補正データを作成することを特徴とする請求項７乃至１１に記載のサーボモータ駆動制御装置。
【請求項１３】
前記位置指令の反転を検出する手段を有し、前記制御装置の制御対象に働く摩擦のモデルを前記速度指令から前記トルク指令を作成するまでのオープンループ伝達関数の逆関数へ入力した場合の出力を、位置指令の反転から所定時間における前記速度指令の補正データとすることを特徴とする請求項１に記載のサーボモータ駆動制御装置。
【請求項１４】
前記逆関数の出力にフィルタを適用し、前記フィルタの出力を前記速度指令の補正データとすることを特徴とする請求項１３に記載のサーボモータ駆動制御装置。
【請求項１５】
前記補正データを前記フィルタの遅れ時間分早めてフィルタによる遅れを補正した補正データとすることを特徴とする請求項１３に記載のサーボモータ駆動制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、工作機械のテーブル等の送り軸を駆動するサーボモータの駆動制御装置に関し、テーブルに取り付けられた被加工物を加工する際に、送り軸の移動方向が反転する際に加工面に生じる突起を少なくするサーボモータの駆動制御装置に関する。
【０００２】
【従来の技術】
工作機械等において、テーブルを移動させる送り軸を駆動するサーボモータの駆動方向が反転する際、通常、送りねじ軸のバックラッシュや摩擦のためにテーブルは即座に反転することができない。そのためテーブルに取り付けられた被加工物に対して円弧切削等を行っているとき、この駆動方向反転時の円弧切削面に突起が生じる。
【０００３】
例えば、Ｘ軸，Ｙ軸の直交平面上を移動するテーブルに取り付けた被加工物に対して円弧切削を行っている場合において、Ｘ軸はプラス方向に移動し、Ｙ軸はマイナス方向に移動して円弧切削を行っている途中で象限が変わり（なお、円弧中心を座標系の原点とする）、Ｙ軸はそのままマイナス方向に移動するがＸ軸は移動方向が変わりマイナス方向に移動するものとする。この場合、Ｙ軸に対してはそれまでの駆動速度で駆動され切削がなされるが、Ｘ軸は方向反転時、位置偏差が「０」となりトルク指令が小さくなり、摩擦の影響で即座には反転できない。さらに、送りねじのバックラッシュにより、このバックラッシュ分、テーブルのＸ軸方向への移動は遅れる。その結果、この象限が変わるときに切削面に突起が生じる。以下この突起を象限突起という。
【０００４】
この象限突起を減らす方法として様々な補正方法が提案されている（例えば、特許文献１等）。
【０００５】
【特許文献１】
特開平７−１１０７１７号公報
【０００６】
【発明が解決しようとする課題】
しかし、これら提案されている方法は、象限突起を減少させるために付加する補正量を、この補正の効果を確認しながら補正量の大きさを調整するもので、この調整に多くの時間を必要としていた。
【０００７】
そこで、本発明の目的は、この象限突起を減少させる補正を容易にできるようにしたサーボモータの駆動制御装置を提供することにある。
【０００８】
【課題を解決するための手段】
本願請求項１に係わる発明は、上位制御装置あるいは上位制御部から所定サンプリング周期で送られる位置指令と位置検出器からの位置フィードバックとの偏差に基づいて所定周期毎に速度指令を出力してサーボモータを駆動制御する制御装置において、所定時間に亘って前記速度指令を補正データにより補正しながら前記サーボモータを駆動制御するようにすることによって、加工精度を向上させたものである。又、請求項２に係わる発明は、前記速度指令の補正データは学習制御により求めるようにしたものである。
さらに、請求項３に係わる発明は、前記サーボモータで駆動される被駆動部の所定区間を繰り返して駆動して所定周期に亘る位置偏差を求め、該位置偏差に基づいて学習制御を行い、該学習制御によって得られた速度指令から、前記位置指令を微分した微分値を差し引いて、前記所定時間に亘る速度指令の補正データを求め、この補正データを前記速度指令の補正データとしたものである。
【０００９】
又、請求項４に係わる発明は、前記補正データを、位置指令反転時より所定時間の補正データとし、前記位置指令の反転を検出する手段を備え、該位置指令反転時より所定時間に亘って前記補正データより補正量を求めて速度指令を補正するようにした。又、請求項５に係わる発明は、前記所定時間に亘る速度指令の補正データを解析し、第２の補正データを作成し、該第２の補正データを、前記速度指令を補正する補正データとするものである。さらに、請求項６に係わる発明は、前記サーボモータの駆動制御装置にコンピュータを接続し、該コンピュータによって前記速度指令の補正データ或いは第２の補正データを作成するものとした。
【００１０】
請求項７に係わる発明は、上位制御装置あるいは上位制御部から所定サンプリング周期で送られる位置指令と位置検出器からの位置フィードバックとの偏差に基づいて所定周期毎に速度指令を出力し、前記速度指令と速度検出器からの速度フィードバックとの偏差に基づいて所定周期毎にトルク指令を出力してサーボモータを駆動制御する制御装置において、所定時間に亘って前記トルク指令を補正データにより補正しながら前記サーボモータを駆動制御するようにした。請求項８に係わる発明は、前記トルク指令の補正データを学習制御により求めることとした。さらに、請求項９に係わる発明は、前記サーボモータで駆動される被駆動部の所定区間を繰り返して駆動して所定周期に亘る位置偏差を求め、該位置偏差に基づいて学習制御を行い、該学習制御によって得られたトルク指令から、前記位置指令を２階微分した微分値を差し引いて、前記所定時間に亘るトルク指令の補正データとした。
【００１１】
請求項１０に係わる発明は、前記補正データを、位置指令反転時より所定時間の補正データとし、前記位置指令の反転を検出する手段を備え、位置指令反転後、所定時間に亘って前記トルク指令を該補正データに基づいて補正するようにした。請求項１１に係わる発明は、前記所定時間に亘るトルク指令の補正データを解析し、第２の補正データを作成し、該第２の補正データを、前記トルク指令を補正する補正データとした。また、請求項１２に係わる発明は、前記サーボモータの駆動制御装置にコンピュータを接続し、該コンピュータによって前記トルク指令の補正データ或いは第２の補正データを作成するものとした。
【００１２】
請求項１３に係わる発明は、前記位置指令の反転を検出する手段を備え、前記制御装置の制御対象に働く摩擦のモデルを前記速度指令から前記トルク指令を作成するまでのオープンループ伝達関数の逆関数へ入力した場合の出力を、位置指令の反転から所定時間における前記速度指令の補正データとした。さらに、請求項１４に係わる発明は、この逆関数の出力にフィルタを適用し、前記フィルタの出力を前記速度指令の補正データとした。さらに、請求項１５に係わる発明は、このフィルタ処理された補正データを前記フィルタの遅れ時間分早めてフィルタによる遅れを補正した補正データとした。
【００１３】
【発明の実施の形態】
図１は本発明の第１の実施形態におけるサーボモータの駆動制御装置の要部ブロック図である。
数値制御装置等の上位制御装置又は上位制御部から指令される位置指令から、制御対象５であるサーボモータ、もしくは該サーボモータで駆動させるテーブル等の可動部の実際位置の位置フィードバックを減算器１で減算し、位置偏差を求める。該位置偏差にポジションゲインＫｐ（要素２）を乗じて速度指令を求め該速度指令に速度オフセット手段４に予め設定されている補正データから求められる補正量を加算器３で加算して補正された速度指令を求め、制御対象５のサーボモータを駆動する。なお、符号６は、制御対象に設けられた速度検出器からの速度フィードバックを積分して位置を求める項である。
【００１４】
図２は、本発明の第２の実施形態におけるサーボモータの駆動制御装置の要部ブロック図である。この第２の実施形態と第１の実施形態との差異は、位置指令の極性が反転することを検出し速度オフセット手段４に補正開始指令を出力する位置指令の反転検出手段７が設けられている点である。そして、この第２の実施形態では、位置指令の反転検出手段７から出力される補正開始指令から所定時間だけ、予め設定されている速度補正データに基づく補正量を速度指令に加算して補正された速度指令として制御対象５のサーボモータを駆動制御するものである。
【００１５】
図３、図４は、速度オフセット手段４に格納される速度補正データを作成するときのブロック図である。
図３に示す補正データ作成方法は、位置ループ制御系に学習コントローラ１０を追加し、学習制御を行って得られる速度指令を速度オフセット手段４に設定する速度補正データとするものである。すなわち、数値制御装置等の上位制御装置から指令される位置指令から、制御対象５であるサーボモータ、もしくは該サーボモータで駆動させる可動部の実際位置の位置フィードバックを減算器１で減算し、位置偏差を求める。又、学習コントローラ１０はこの位置偏差を格納すると共に、繰り返し指令される周期１周期前の位置偏差に基づいて補正量を求め、位置偏差に加算器１１で加算し、補正した位置偏差を求め、この位置偏差にポジションゲインＫｐ（要素２）を乗じて速度指令を求め制御対象５を駆動制御する。
【００１６】
学習コントローラ１０はすでに周知慣用のものであり、同一形状を加工するために繰り返し指令される同一パターンの位置指令の１パターン周期間に所定周期毎求められる位置偏差に相当するデータを記憶する記憶部を備え、当該周期で求められた位置偏差と１パターン周期前の位置偏差に基づいて記憶したデータとを加算し、フィルタ処理した後当該周期のデータとして記憶する。また、１パターン周期前の記憶データを動特性補償処理して出力し位置偏差に加算するものである。この学習制御を繰り返すことによって、位置偏差が零に収束することが知られている。
【００１７】
この学習制御を行いながら（象限突起が発生するような所定区間を加工するために）繰り返し指令される（所定区間の）パターンを複数回繰り返し実行すると、位置偏差は零に収束する。こうして位置偏差が零に収束した段階で、この学習コントローラ１０により位置偏差が補正され、この補正された位置偏差にポジションゲインＫｐが乗じられて求められた速度指令を速度オフセット手段４の速度補正データとして取得する。この速度補正データは、高い精度を得るための速度指令とみなすことができる。この速度補正データを速度指令に加算して補正することは、フィードフォワードを適用することと同じ効果が得られる。
【００１８】
フィードフォワードは位置指令の微分値を速度指令に加算することで、ポジションゲインによる位置制御の遅れを補償し、位置偏差量を零に近づけることができるものであるが、位置指令の微分値は速度制御が十分な追従特性を持っている場合に限り、理想的な速度指令となり、制御対象に働くバックラッシの影響が強い場合には、方向反転時に付加トルクが急激に変化するために十分な速度追従性が得られず、位置偏差（象限突起）が発生する。
【００１９】
学習制御を適用した場合には速度制御が十分な追従特性を持っている場合だけでなく、象限突起も十分に抑える効果を持っており、学習制御を適用して出力される速度指令は、従来のフィードフォワード制御を越えた実用上の理想的な速度指令とみなすことができる。図３に示した方法により、取得した速度補正データは、この理想的な速度指令（補正データ）に等しく、この取得した速度補正データを学習制御と同じタイミングで速度指令を補正すれば、高い形状精度の加工ができる。
【００２０】
図４は、もう１つの補正データ取得方法のブロック図である。この図４に示す例も学習コントローラ１０を用い、繰り返し指令される同一パターンの位置指令に対して学習コントローラ１０による学習制御を適用することによって所定パターンの位置指令の処理を複数回繰り返し実行する点までは、図３と同一であるが、この学習コントローラ１０を用いて位置偏差が零に収束した段階で、位置偏差を学習制御による補正量で補正した位置偏差にポジションゲインＫｐを乗じて得られた速度指令から、位置指令を微分（要素１３）して得られた指令速度を減算器１２で減算し、得られた速度差を速度オフセット手段４の速度補正データとして取得する。
【００２１】
この図４に示す方法は、学習制御で得られた速度指令からフィードフォワード制御による制御量に相当する位置指令の微分値を減算している。これは、学習制御で得られた速度指令から速度制御が追従しない外乱要素を補償している要素だけを取り出すものである。この取り出したデータのうち位置指令が反転した後のデータは、バックラッシの影響により発生する象限突起を補正するものと見なせるから、これを元にした速度補正量を作成し、適用することは、最適な象限突起補正を実現することになる。
【００２２】
以上のようにして得られた速度補正データをそのまま使用してもよいが、採取したままの補正データにはノイズが含まれており、これらノイズを除去して、第２の補正データを作成する方がよい。
図５は、このノイズを除去した第２の補正データ作成方法を示す図である。図５において、符号２０は、学習制御を適用し位置偏差が零に収束した状態で移動方向が変わる領域における採取した速度補正データである。この符号２０で示す例は、図４に示した指令速度と実際の速度指令との差より求めた速度補正データの例を示している。この採取補正データの図において、横軸は時間、縦軸は速度補正データの大きさで、左上から右下の斜め直線は速度指令を意味する。この補正データにはノイズが含まれ、移動方向が反転したとき、大きな速度差が生じていることがわかる。この採取した補正データをフィルタ２１にかけてノイズ成分を除去し、符号２２に示すような第２の速度補正データを得る。
【００２３】
又、図６に示すように、採取補正データ２０を解析し、符号２３に示すように、直線近似した第２の速度補正データ２３を得るようにしてもよい。
なお、図１に示した実施形態では、移動指令の繰り返されるパターンの１パターン周期分を速度補正データとするものであるから、採取した速度補正データをそのまま設定する速度補正データとするか、もしくは前述したようにして、移動指令が反転する区間を解析したデータとし、他の区間は採取データもしくは「０」として第２の速度補正データとして、速度オフセット手段４に設定する。又、図２に示した実施形態では、位置指令が反転した所定区間だけ速度補正データを補正するものであるから、位置指令が反転した後の所定区間を速度補正データとして選択する。又、上述したように、位置指令の反転から所定区間の速度補正データを解析して得られた第２の速度補正データを速度オフセット手段４に格納する速度補正データとする。
【００２４】
このような第２の補正データ２２，２３を得る場合には、図７に示すように、上位制御装置３０や外部のコンピュータ３１を利用して解析する。図７に示す例では、図４に示した方法によって得られた採取補正データを数値制御装置等の上位制御装置３０に転送し、さらに、この上位制御装置３０からコンピュータ３１に転送し、該コンピュータ３１によって、フィルタ処理又は直線近似処理を行って、第２の補正データ２２，２３を作成する。直線近似処理を行った場合には図１１に示すように、直線近似の直線の始点、終点の補正量の大きさ（例えば、Ａ０，Ａ１，Ａ２）と該点の補正を開始からの時間（例えば、ｔ１，ｔ２，ｔ３）を補正データとする。又、直線近似しない場合は、図１０に示すように、補正データを最大の大きさ１、補正開始から終了までの時間を１とする正規化したデータとする。そして、その結果を上位制御装置３０に転送して、サーボモータ駆動制御装置に送り速度オフセット手段４にセットするようにすればよい。なお、上位制御装置３０によってこの第２の補正データを作成するようにしてもよい。
【００２５】
上述した実施形態では、速度オフセット手段４による補正データの作成を、学習制御を行って得られた速度指令等から求めるようにしたが、移動方向反転時の摩擦モデルを作成し、この摩擦モデルから補正データを得るようにしてもよい。図８は、この場合の一例で、横軸を時間、縦軸を摩擦力とした、移動方向反転時の摩擦モデル３２を作成し、このモデル３２に速度指令からトルク指令までのオープンループ伝達関数の逆関数３３を乗じて速度補正データ２４を得るようにする。すなわち、速度指令に基づいて速度ループ制御処理等を行う速度コントローラを設けてトルク指令を求めるものであれば（例えば、後述する図１５に示すように、位置ループ、速度ループ制御処理を行うサーボモータ駆動制御装置において、位置ループから出力される速度指令より速度ループ処理を行う速度コントローラによりトルク指令を求めるもの）、この速度コントローラの伝達関数Ｃｖ（Ｓ）の逆関数Ｃｖ（Ｓ）−１を乗じて、速度補正データ２４を得る。
【００２６】
又、速度コントローラの逆関数を用いて摩擦モデルより速度補正データを求めたとき、高周波成分を含むことから、急激に変化する補正量を速度指令に加算するおそれがあることから、図９に示すように、フィルタ３４によって高周波成分を取り除き速度制御が追従できる程度の補正データ２５としてもよい。この場合、フィルタ処理することによって、時間遅れが発生する。例えば、フィルタ３４の伝達関数が１／（ＴＳ＋１）で表される１次のフィルタの場合、立ち上がりの時間Ｔを遅れ時間とみなすか、又は、設定フィルタの入力波形を周波数分析し、振幅が最も大きい周波数での位相遅れから時間遅れを計算する等の方法で遅れ時間を求める等により遅れ時間を推定する。又は、Ｍ次のＦＩＲフィルタの場合、Ｍ／２サンプリング時間程度遅れるため、これを遅れ時間とする。こうして求められた遅れ時間分だけ、時間を早めて、速度補正データを速度オフセット手段に設定するようにする。
【００２７】
また、この速度補正データを解析して図１１に示す直線近似した補正データ、又は図１０に示す正規化した補正データとする。この速度補正データは、上位制御装置３０や外部のコンピュータで作成し、サーボモータ駆動制御装置に送り速度オフセット手段４にセットするようにすればよい。
【００２８】
図１２は、上述したような補正データを用いて、サーボモータ駆動制御装置のプロセッサが実施する、図１に示す速度補正処理のフローチャートである。
サーボモータ駆動制御装置のプロセッサは位置ループ処理周期毎、図１２に示す処理を実行する。
まず、数値制御装置等の上位制御装置から指令される位置指令と位置フィードバックにより位置偏差を求め、該位置偏差にポジションゲインＫｐを乗じて速度指令Ｖｃを求める（ステップ１００）。次に、フラグＦが「１」にセットされ、速度指令の補正を行っている期間かを判断し（ステップ１０１）、フラグＦが「１」にセットされていなければ、補正データ読み込み指令が入力されているか判別し（ステップ１０２）、補正データ読み込み指令が入力されていなければ、ステップ１０９に移行して、ステップ１００で求めた速度指令Ｖｃを次の速度ループ制御処理へ引き渡す。
【００２９】
又、補正データ読み込み指令が入力されていると、カウンタＣをクリアし、フラグＦを「１」にセットする（ステップ１０３）。そして、カウンタＣを「１」インクリメントし（ステップ１０４）、速度補正データを記憶する記憶部（速度オフセット手段）からカウンタＣの値に対応する速度補正データを読み出し、これを補正量Ａとし、ステップ１００で求めた速度指令Ｖｃにこの補正量Ａを加算し補正された速度指令Ｖｃとする（ステップ１０５，１０６）。次に、カウンタの値が速度指令を補正する区間に対応する設定された値Ｃ０に達したか判断し（ステップ１０７）、達してなければ、ステップ１０９に移行して、この補正された速度指令Ｖｃを出力する。
【００３０】
次の周期からは、フラグＦが「１」にセットされているから、ステップ１００で位置ループ処理して速度指令Ｖｃを求めた後、ステップ１０１からステップ１０４に移行して、ステップ１０４〜１０９の処理を行う。かくして、位置ループ処理で求められた速度指令Ｖｃは、速度オフセット手段に格納されている速度補正データにより補正されて、次の速度ループ処理等における速度指令とされる。
【００３１】
上述した速度指令の補正処理を位置ループ処理周期毎行い、カウンタＣの値が設定されたＣ０に達すると（ステップ１０７）、フラグＦを「０」にリセットし、ステップ１０９に移行する。次の周期からは、フラグＦが「１」にセットされていないから、補正データ読み込み指令が再び入力されない限りステップ１００，１０１，１０２，１０９の処理を繰り返し実行することになる。
【００３２】
以上の通り、この実施形態では、補正データ読み込み指令が入力されてから所定区間速度補正データに基づいて速度指令が補正されることになり、これによって、象限突起等を減少させ、加工精度の高い加工を行うことができる。
【００３３】
図１３は、図２に示す方法によりサーボモータ駆動制御装置のプロセッサが位置ループ処理周期毎に実行する本発明に関係する部分の処理のフローチャートである。なお、この図１３に示す例では、速度補正データとして、図１０に示したような移動方向が反転する区間の直線近似されていない正規化された補正データを用いるものとしている。
【００３４】
まず、位置ループ処理して速度指令Ｖｃを求める（ステップ２００）。すなわち、位置指令と位置フィードバックにより位置偏差を求め、該位置偏差にポジションゲインを乗じて速度指令Ｖｃを求める。次に、フラグＦが「１」にセットされ、速度指令の補正を行っている期間かを判断し（ステップ２０１）、フラグＦが「１」にセットされていなければ、上位制御装置（数値制御装置等）からの位置指令の符号が反転（移動方向の反転）したか判断し（ステップ２０２）、反転していなければ、ステップ２１１に移行し、ステップ２００の位置ループ処理によって得られた速度指令Ｖｃを次の処理（速度ループ処理等）へ引き渡す。
【００３５】
一方、ステップ２０２で上位制御装置からの位置指令の符号が反転したと判断されたとき、すなわち加工位置の象限が変わるとき、ステップ２００の位置ループ処理で求めた速度指令が設定速度Ｖ０より小さくなっているか判断し（ステップ２０４）、小さくなっていなければ、ステップ２１０に移行する。小さくなっていれば、フラグＦを「１」にセットし（ステップ２０５）、カウンタＣをリセットする（ステップ２０６）。
【００３６】
そして、カウンタＣを「１」インクリメントし（ステップ２０７）、カウンタＣの値に対応する速度補正データの値に比例係数Ａ０を乗じて補正量Ａを求め、この補正量Ａをステップ２００で求めた速度指令Ｖｃに加算して補正された新たな速度指令とする（ステップ２０８）。
【００３７】
次に、カウンタＣの値が補正期間に対応する設定された値Ｃ０（補正期間の位置ループ処理周期の数）以上か判断し（ステップ２０９）、この値Ｃ０に達していなければ、ステップ２１１に移行して、ステップ２０８で補正された速度指令Ｖｃを出力する。
【００３８】
次の周期からは、フラグＦが「１」にセットされているから、ステップ２０１からステップ２０７に移行し、補正量Ａを求め、該補正量Ａを位置ループ処理で求めた速度指令に加算して補正された速度指令を出力するステップ２００，２０１，２０７，２０８，２０９，２１１の処理を繰り返し実行し、補正データに基づく補正量が位置ループ処理で求めた速度指令に加算されて補正されて速度指令とされる。そしてカウンタＣの値が設定値Ｃ０以上となるとステップ２０９からステップ２１０に移行し、フラグＦを「０」にリセットし、ステップ２１１でステップ２０８で補正された速度指令を出力する。
【００３９】
以後の処理周期では、フラグＦが「０」にリセットされているから、ステップ２０１からステップ２０２に移行し、前述した処理を行うことになる。このようにして、位置指令の符号が反転し、移動方向指令が反転した後、さらに速度指令が所定値より小さくなった後、所定区間だけ速度補正データに基づく速度指令の補正を行って、象限が変わるときに発生する突起を減少させるようにした。
【００４０】
上述した図１３に示す処理は、補正データとして、図１０に示すようなデータがサーボモータ駆動制御装置のメモリ（速度オフセット手段）内に格納されている場合であるが、図１１に示すような直線近似したデータが速度オフセット手段としてのメモリに格納されている場合においては、図１４に示す処理がなされる。
【００４１】
この処理はステップ３００〜３０５までの処理は、ステップ２００〜２０５の処理と同一である。そして、ステップ２０６〜２１１の処理がステップ３０６〜３１５の処理に変わっている点で相違するものである。
すなわち、位置指令の符号が反転し、速度指令Ｖｃが所定値Ｖ０より小さくなるまでは、各位置ループ処理周期毎、ステップ３００〜３０４、３１５の処理がなされ、通常の位置ループ処理（ステップ３００）によって求められた速度指令Ｖｃが出力される。一方、位置指令の符号が反転し、速度指令Ｖｃが所定値Ｖ０より小さくなり加工の象限が変わる位置となると、タイマｔをリセットしスタートさせた後（ステップ３０６）、サーボモータ駆動制御装置のプロセッサは、タイマｔの計時時間が速度補正データとして記憶する最初の記憶時間ｔ１以下か判断し（ステップ３０７）、以下ならば、該記憶時間ｔ１に対応して記憶する補正量の大きさＡ０に（ｔ／ｔ１）を乗じて補正量Ａを求め、該補正量Ａをステップ３００で求めた速度指令Ｖｃに加算して補正された速度指令を求める（ステップ３０８）。
【００４２】
また、タイマｔの計時時間が速度補正データとして記憶する第１と第２の記憶時間ｔ１、ｔ２の間であれば、すなわちｔ１＜ｔ≦ｔ２であれば（ステップ３０９）、第１と第２の記憶時間ｔ１、ｔ２に対応して記憶する補正量の大きさＡ０，Ａ１に基づいて、次式により内挿補間して補正量Ａを求める。
Ａ＝Ａ０＋（Ａ１−Ａ０）×（ｔ−ｔ１）／（ｔ２−ｔ１）
こうして求められた補正量Ａをステップ３００で求めた速度指令Ｖｃに加算して補正された速度指令を求める（ステップ３１０）。
【００４３】
又、タイマｔの計時時間が速度補正データとして記憶する第２と第３の記憶時間ｔ２、ｔ３の間であれば、すなわちｔ２＜ｔ≦ｔ３であれば（ステップ３１１）、第２と第３の記憶時間ｔ２、ｔ３に対応して記憶する補正量の大きさＡ１，Ａ２に基づいて、次式により内挿補間して補正量Ａを求める。
Ａ＝Ａ１＋（Ａ２−Ａ１）×（ｔ−ｔ２）／（ｔ３−ｔ２）
こうして求められた補正量Ａをステップ３００で求めた速度指令Ｖｃに加算して補正された速度指令を求める（ステップ３１２）。
【００４４】
こうして求められた速度指令はステップ３１５で、次の処理（速度ループ処理、電流ループ処理等）に引き渡される。
又、タイマｔの計時時間が補正期間のｔ３をこえると（ステップ３１３）、フラグＦを「０」にセットして（ステップ３１４）、ステップ３１５に移行する。
【００４５】
以上のようにして、加工位置の象限が変わるとき、補正データに基づく補正が速度指令になされて象限突起の発生を防止する。
【００４６】
上述した各実施形態では、速度指令を補正することによって、象限突起の発生を防止したが、トルク指令を補正することによっても同様に象限突起の発生を防止することができる。
【００４７】
図１５は、このトルク指令を補正することによって象限突起の発生を防止した第３の実施形態のサーボモータ制御系のブロック図である。この第３の実施形態と図１の実施形態と相違する点は、この図１５に示す実施形態には速度コントローラ１４が加わっていることと、該速度コントローラ１４から出力されるトルク指令にトルクオフセット手段１５からトルク補正量が加算され制御対象５に出力される点である。
【００４８】
すなわち、上位制御装置から指令される位置指令から、制御対象５であるサーボモータもしくは、該サーボモータで駆動させるテーブル等の可動部の実位置の位置フィードバックを減算器１で減算し、位置偏差を求め、該位置偏差にポジションゲインＫｐ（要素２）を乗じて速度指令を求め、該速度指令から速度フィードバックを減算器１６で減算して速度偏差を求め、速度コントローラ１４でＰＩ（比例積分）制御等を行ってトルク指令を求め、該トルク指令にトルクオフセット手段１５に予め設定されているトルク補正データから求められるトルク補正量を加算器１７で加算して補正されたトルク指令を求め、制御対象５のサーボモータを駆動する。これによって、象限突起の発生を防止する。
【００４９】
又、図１６は第４の実施形態のブロック図で、図１５に示した第３の実施形態と相違する点は、位置指令の極性が反転することを検出しトルクオフセット手段１５に補正開始指令を出力する位置指令の反転検出手段７が設けられている点である。そして、この実施形態では、位置指令の反転検出手段７から出力される補正開始指令から所定時間だけ、予め設定されているトルク補正データに基づくトルク補正量をトルク指令に加算して補正されたトルク指令として制御対象のサーボモータを駆動制御するものである。
【００５０】
図１７は、このトルク指令を補正するトルク補正データの作成方法を示すブロック図である。この方法は、図４に示す速度の補正量を求めるときの方法と比較し、速度制御コントローラ１４が加わった点と、位置指令を微分する要素１３の代わりに位置指令を２階微分して加速度を求める要素１８に変わった点である。学習コントローラ１０は、図３，図４に示す実施形態で説明したものと同様で、同一パターンの位置指令の１パターン周期間における所定周期毎求められる位置偏差に相当するデータを記憶する記憶部を備え、当該周期で求められた位置偏差と１パターン周期前の位置偏差に基づいて記憶したデータとを加算し、フィルタ処理した後当該周期のデータとして記憶する。また、１パターン周期前の記憶データを動特性補償処理して出力し位置偏差に加算するものである。
【００５１】
上位制御装置から指令される位置指令から、制御対象５からの位置フィードバックを減算器１で減算し、位置偏差を求める。又、学習コントローラ１０はこの位置偏差を格納すると共に、繰り返し指令される周期１周期前の位置偏差に基づいて補正量を求め位置偏差に加算器１１で加算し、補正した位置偏差を求めこの位置偏差にポジションゲインＫｐ（要素２）を乗じて速度指令を求め、該速度指令から速度フィードバック量を減算器１６で減算して速度偏差を求め、該速度偏差に基づき速度コントローラ１４が速度ループ処理を行いトルク指令（加速度指令）を求めて制御対象５を駆動制御する。
【００５２】
この学習制御を行いながら（象限突起が発生するような所定区間を加工するために）繰り返し指令される（所定区間の）パターンを複数回繰り返し実行すると、位置偏差は零に収束する。こうして位置偏差が零に収束した段階で、この学習コントローラ１０により位置偏差が補正され、この補正された位置偏差にポジションゲインＫｐが乗じられて求められた速度指令と速度フィードバックにより速度制御コントローラ１４によって速度ループ制御処理がなされトルク指令から、位置指令を２階微分（要素１８）した指令加速度を減算器１９で減じてその差を求め、これをトルクオフセット手段にセットするトルク補正データとする。なお、この場合も前述した第１、第２の実施形態と同様に、トルク指令と指令加速度との差から求められたトルク補正データをフィルタ処理してノズルを除去して第２のトルク補正データとしても、又、直線近似して第２のトルク補正データとしてもよい。
【００５３】
こうして求めたトルク補正データを規格化、又は直線近似して速度補正データと同様な形式とする。
こうして求めたトルク補正データをトルクオフセット手段１５に格納し、トルク指令に対して補正することによって象限突起発生を防止する。
【００５４】
このトルク指令を補正することによって、象限突起の発生を防止する実施形態における、サーボモータ駆動制御装置の位置、速度ループ処理周期毎の処理は、図１２、図１３、図１４に示したフローチャートとほぼ同一であり、相違する点は、ステップ１００，２００，３００において、従来と同様に、位置ループ処理して速度指令を求め、さらに該速度指令と速度フィードバックに基づいて速度ループ処理を行いトルク指令を求める点と、ステップ１０５、２０８，３０８，３１０，３１２で求める補正量Ａがトルク補正データに基づいて求められ、ステップ１００，２００，３００で求めたトルク指令に加算される点、及び、ステップ１０９，２１１、３１５が速度指令の出力ではなくトルク指令の出力に代わるだけである。他は、図１２，図１３，１４に示すフローチャートの処理と同様であるので、詳細は省略する。
【００５５】
図１８は、本発明の効果を検証するために行った実験結果を表す図である。図１８において、（ａ）は象限突起を減少させるための補正を行わずに円弧加工したときの図である。（ｂ）は従来から行われている象限突起を減少させるための補正を行って同一円弧形状を加工したときの図である。（ｃ）は学習制御を行って同一円弧形状を加工したときの図である。（ｄ）は本発明の第１の実施形態により同一円弧形状を加工したときの図である。（ｅ）は本発明の第２の実施形態により同一円弧形状を加工したときの図である。なお、図１８（ａ）〜（ｅ）において、メモリは、円弧の加工部分において誤差表示を２μｍ単位で表したものである。又、円で囲んだ部分は象限が変わる点における誤差を拡大表示したものであり、拡大縮尺は（ａ）〜（ｅ）において同じである。
【００５６】
この図１８の実験結果、象限突起補正がない場合（ａ）が、象限が変わると加工面に生じる突起（指令値に対する誤差）が最も大きい。又、従来から行われている象限突起補正による方法を適用したとき（ｂ）が、次に象限突起が大きくなっている。学習制御を適用したときには（ｃ）、象限突起は小さくなっている。さらに、本発明を適用した（ｄ）、（ｅ）では象限突起の発生はほとんどなく、象限が変化しないときの加工精度と格別差異がない程度となっている。
【００５７】
【発明の効果】
本発明は、加工精度を向上させ、円弧加工等において象限が変わるときに生じ易い象限突起の発生を防止して、該象限突起を減少させることができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態におけるサーボモータの駆動制御装置の要部ブロック図である。
【図２】本発明の第２の実施形態におけるサーボモータの駆動制御装置の要部ブロック図である。
【図３】学習制御により各実施形態における速度補正データを作成するときのブロック図である。
【図４】学習制御により各実施形態における速度補正データを作成する別の方法のブロック図である。
【図５】学習制御によって得られた速度補正データからノイズを除去して第２の速度補正データを得るときの説明図である。
【図６】学習制御によって得られた速度補正データを直線近似して第２の速度補正データを得るときの説明図である。
【図７】採取した速度補正データを解析して最終的な速度補正データを得るためのブロック図である。
【図８】摩擦モデルより速度補正データを作成するブロック図である。
【図９】摩擦モデルよりノイズを除去した速度補正データを作成するブロック図である。
【図１０】正規化した速度補正データの説明図である。
【図１１】直線近似した速度補正データの説明図である。
【図１２】第１の実施形態における速度補正の処理フローチャートである。
【図１３】第２の実施形態における速度補正の処理フローチャートである。
【図１４】第２の実施形態における別の速度補正の処理フローチャートである。
【図１５】トルク指令を補正することによって象限突起の発生等を防止した第３の実施形態におけるサーボモータ制御系のブロック図である。
【図１６】トルク指令を補正することによって象限突起の発生を防止した第４の実施形態におけるサーボモータ制御系のブロック図である。
【図１７】第３、第４の実施形態におけるトルク補正データの作成方法の説明図である。
【図１８】本発明の効果を確認するために行った実験結果を示す図である。
【符号の説明】
１  減算器
２  位置ループのポジションゲインの要素
３  加算器
４  速度オフセット手段
５  制御対象
６  積分要素
７  位置指令反転検出手段
１０  学習コントローラ
【図１】
2004234327.tif 000003
【図２】
2004234327.tif 000004
【図３】
2004234327.tif 000005
【図４】
2004234327.tif 000006
【図５】
2004234327.tif 000007
【図６】
2004234327.tif 000008
【図７】
2004234327.tif 000009
【図８】
2004234327.tif 000010
【図９】
2004234327.tif 000011
【図１０】
2004234327.tif 000012
【図１１】
2004234327.tif 000013
【図１２】
2004234327.tif 000014
【図１３】
2004234327.tif 000015
【図１４】
2004234327.tif 000016
【図１５】
2004234327.tif 000017
【図１６】
2004234327.tif 000018
【図１７】
2004234327.tif 000019
【図１８】
2004234327.tif 000020